- Ambient Zeichnen (Schwarz)
- Für jedes Punktlicht {
- Culling:
- Wenn Object BB nicht im Frustum liegt dann nächstes licht verarbeiten, sofern Frustum Culling aktiviert ist
- Wenn Camera BB nicht Object BB schneidet dann nächstes licht verarbeiten, sofern Cubig Clipping aktiviert ist
- Wenn Licht BB nicht Object BB schneidet dann nächstes licht verarbeiten, sofern Light Cube Culling aktiviert ist
- Wenn Licht Sphere nicht im Frustum liegt dann nächstes licht verarbeiten, sofern Light Sphere Culling aktiviert ist
- Stencil Schatten Zeichnen, Carmacks Reverse:
- Plane vom Aktuellem Polygon Invertieren (war in der version wo ich gestern hochgeladen habe ausgeklammert)
- Wenn eine Ray Intersects Poly mit dem Start (Licht Pos) und Ende (Camera Pos) das aktuelle Polygon schneidet wird die StencilShadowReferenceValue dekrimiert.
- // Vordere seite rendern
- glCullFace(GL_BACK);
- glStencilOp(GL_KEEP, GL_KEEP, GL_INCR);
- // Rück seite rendern
- glCullFace(GL_FRONT);
- glStencilOp(GL_KEEP, GL_KEEP, GL_DECR);
- Die Geometrie der Schatten wird als Quad_Strip gerendert.
- Lichtintesität Zeichnen in den Alphakanal :
- Bei Register Combiners support, register combiners verwenden und 2D Attenuation map auf Tex0 und Tex1 binden,
- keine combiners dann nur die [b]Invertierte[/b] 2D Attenuation map auf Tex0 und Tex1 binden.
- Diffuse Bumpmapping Zeichnen in den Alpha Kanal:
- Normalization Cubemap auf Tex1 binden
- TexEnv auf GL_TEXTURE0_ARB, GL_DOT3_RGBA, GL_TEXTURE1_ARB);
- Normal/Bump map auf Tex0 binden
- TexEnv auf GL_TEXTURE0_ARB, GL_REPLACE, GL_TEXTURE1_ARB);
- Decal/Normale Texture Zeichnen
- }