- Renderloop {
- Camera setzten via gluLookat.
- Frustum berechnen
- Sichtbarkeiten der octreenodes und objekts berechnen via Frustum.
- Farbpuffer und Tiefenpuffer leeren
- Ambientpass {
- Octreenodes > Sichtbare Nodes > Sichtbare Objekte > Zeichnen {
- Pushmatrix
- Objekt transformationsmatrix einlegen
- Vertex/Normal und Texcoord Client Array aktivieren
- Für jede Oberfläche {
- VBO Binden and aktivieren
- Vertex/Normal und Texcoord Pointer setzten
- Farbe schwarz setzen
- via glDrawArrays() die Dreiecke zeichnen
- VBO deaktivieren
- }
- Vertex/Normal und Texcoord Client Array deaktivieren
- Popmatrix
- }
- }
- Für jedes Licht {
- Octreenodes > Sichtbare Nodes > Sichtbare Objekte > Zeichnen {
- Objekt cullen, wenn Licht Sphere nicht die Objekt AABB schneidet.
- Pushmatrix
- Objekt transformationsmatrix einlegen
- Vertex/Normal und Texcoord Client Array aktivieren
- Für jede Oberfläche {
- VBO Binden and aktivieren
- Vertex/Normal und Texcoord Pointer setzten
- Texturen binden and aktivieren
- GLSL Shader binden und aktivieren
- VertexAttribPointer setzten
- Farbe weiss setzten
- via glDrawArrays() die Dreiecke zeichnen
- GLSL Shader deaktivieren
- Texturen entbinden und deaktivieren
- VBO deaktivieren
- }
- Vertex/Normal und Texcoord Client Array deaktivieren
- Popmatrix
- }
- }
- }