- - Komplette Welt mit Umgebungsfarbe zeichnen Schwarz (0,0,0) und Blendoperation GL_ONE, GL_ZERO und Tiefentest GL_LESS
- - Tiefenfunktion GL_EQUAL und Tiefenmaske aus
- { Für jedes punktlicht
- - Lichtintensität mit (1D+2D = 3D Texture) in den Alphakanal schreiben ohne Blendoperation mit TexEnvf Alpha befehlen.
- TexEnvf:
- SetTextureStageAlpha(GL_PREVIOUS_ARB,GL_SUBTRACT,GL_TEXTURE1_ARB); // 1D LichtTexture
- SetTextureStageAlpha(GL_PRIMARY_COLOR_ARB,GL_SUBTRACT,GL_TEXTURE0_ARB); // 2D LichtTexture
- - Normalization Cubemap und Bumpmap in den Alphakanal schreiben mit Blendoperation GL_DST_ALPHA, GL_ONE und TexEnvf Alpha befehlen.
- TexEnvf:
- SetTextureStageAlpha(GL_PREVIOUS_ARB,GL_DOT3_RGB,GL_TEXTURE1_ARB); // Normal Cubemap
- SetTextureStageAlpha(GL_PRIMARY_COLOR_ARB,GL_MODULATE,GL_TEXTURE0_ARB); // Bumpmap
- - Diffuse Texture zeichen mit Blendoperation GL_DST_ALPHA, GL_one und glColor wert vom Licht.
- }
- - Tiefenfunktion GL_LESS und Tiefenmaske an