Dear list,<br><br><br>Below I'm pasting some code that attempts to build a more advanced "house" with a sloped instead of a pointy roof using "build-polygons". Geometrically this seems fine, if a bit on the verbose side for now, but it looks wrong; the lighting is very different between the standard cube and my own roof. The manual notes that indexed polygons will have uniform lighting but doesn't seem to mention how we would cure that. It's not so clear to me how I'd go about generating shapes that *aren't* indexed either. So; what is the fundamental difference here between my "roof" and the standard cube with regard to lighting? How would I get rid of that difference?<br>
<br>Yours,<br>Kas.<br><br>(clear-colour (vector 0 0 1))<br>(clear)<br><br><br>(with-primitive (build-plane)<br>(scale 8)<br>(colour (vector 0 1 0)))<br><br>(with-state<br>(translate (vector 0 0 .5))<br>(build-cube))<br><br>
<br><br>(with-state<br>    (translate (vector 0 0 1))<br>    (with-primitive (build-polygons 8 'quad-list)<br>        (pdata-set! "p" 0 (vector   0  .5 .5))<br>        (pdata-set! "p" 1 (vector -.5  .5  0))<br>
        (pdata-set! "p" 2 (vector -.5 -.5  0))<br>        (pdata-set! "p" 3 (vector   0 -.5 .5))<br><br>        (pdata-set! "p" 4 (vector   0  .5  .5))<br>        (pdata-set! "p" 5 (vector   0  -.5 .5))<br>
        (pdata-set! "p" 6 (vector  .5 -.5  0))<br>        (pdata-set! "p" 7 (vector  .5  .5  0))<br>        <br><br>        (pdata-set! "c" 0 (vector   1  0   0))<br>        (pdata-set! "c" 1 (vector   1  0   0))<br>
        (pdata-set! "c" 2 (vector   1  0   0))<br>        (pdata-set! "c" 3 (vector   1  0   0))<br>        (pdata-set! "c" 4 (vector   1  0   0))<br>        (pdata-set! "c" 5 (vector   1  0   0))<br>
        (pdata-set! "c" 6 (vector   1  0   0))<br>        (pdata-set! "c" 7 (vector   1  0   0))<br>    (hint-vertcols)<br><br>    )<br><br>    (with-primitive (build-polygons 3 'triangel-list)<br>
        (pdata-set! "p" 0 (vector   0 -.5  .5))<br>        (pdata-set! "p" 1 (vector -.5 -.5 0))<br>        (pdata-set! "p" 2 (vector   .5  -.5  0))<br><br>        (pdata-set! "c" 0 (vector 1 1 1))<br>
        (pdata-set! "c" 1 (vector 1 1 1))<br>        (pdata-set! "c" 2 (vector 1 1 1))<br>    (hint-vertcols)<br>    )<br><br>    (with-primitive (build-polygons 3 'triangel-list)<br>        (pdata-set! "p" 0 (vector   0 .5  .5))<br>
        (pdata-set! "p" 1 (vector   .5  .5  0))<br>        (pdata-set! "p" 2 (vector -.5 .5 0))<br>        <br>        (pdata-set! "c" 0 (vector 1 1 1))<br>        (pdata-set! "c" 1 (vector 1 1 1))<br>
        (pdata-set! "c" 2 (vector 1 1 1))<br>    (hint-vertcols)<br>    )     <br><br>)<br>