MarianSchedenig
18-05-2004, 18:05
Unsere Skybox hat Risse!
http://skydoo.no-ip.org/pics/skybox.png (489kb)
Die Skybox ist ein simpler Würfel (12 Triangles), der mit CW Backface Culling von innen gezeichnet wird. Im Bild sieht man drei schwarze Linien an den Kanten zwischen Skybox-Boden und -Seiten.
Auch sichtbar sind einzelne schwarze Punkte im linken unteren Bereich. Das sind Artefakte des Shadow Volumes. Letzteres wird folgendermassen gezeichnet: Color Buffer deaktivieren, Stencil aktivieren und mit CCW Backface Culling das Shadow Volume zeichnen, Stencil jeweils um 1 erhöhen. Dann Volume mit CW Culling zeichnen und Stencil um 1 erniedrigen. Am Schluß sollte der verbleibende "echte" Schatten im Stencil Buffer stehen und an diesen Stellen wird er gezeichnet (Fullscreen-Face mit Stencil-Op >0).
Unser Verdacht ist nun, daß die "Back Faces" der Polygone (also der "hintere Teil" des Shadow Volumes und die Seiten der von innen gezeichneten Skybox) geringfügig kleiner gezeichnet werden als die Front Faces. Ist das denn normal, und kann man das umgehen?
Danke,
Marian.
http://skydoo.no-ip.org/pics/skybox.png (489kb)
Die Skybox ist ein simpler Würfel (12 Triangles), der mit CW Backface Culling von innen gezeichnet wird. Im Bild sieht man drei schwarze Linien an den Kanten zwischen Skybox-Boden und -Seiten.
Auch sichtbar sind einzelne schwarze Punkte im linken unteren Bereich. Das sind Artefakte des Shadow Volumes. Letzteres wird folgendermassen gezeichnet: Color Buffer deaktivieren, Stencil aktivieren und mit CCW Backface Culling das Shadow Volume zeichnen, Stencil jeweils um 1 erhöhen. Dann Volume mit CW Culling zeichnen und Stencil um 1 erniedrigen. Am Schluß sollte der verbleibende "echte" Schatten im Stencil Buffer stehen und an diesen Stellen wird er gezeichnet (Fullscreen-Face mit Stencil-Op >0).
Unser Verdacht ist nun, daß die "Back Faces" der Polygone (also der "hintere Teil" des Shadow Volumes und die Seiten der von innen gezeichneten Skybox) geringfügig kleiner gezeichnet werden als die Front Faces. Ist das denn normal, und kann man das umgehen?
Danke,
Marian.