Quake3 Maps Rendern
-
Hi!
Folgendes, eine Q3Map besteht aus sagen wir mal 20.000 Triangles.
Jetzt ist ja die Map als ein BSP-Tree aufgebaut, die Blätter dieses Baumes sind sogenannte Leafs. Diese Leafs enthalten eine Liste von Faces. Ein Face hat dabei durchschnittlich 15 Triangles.
Man kann sich das jetzt so vorstellen:Map + Leaf0 + Face0 - Triangle0 - Triangle1 - Triangle2 + Face1 - Triangle3 - Triangle4 + Leaf1 + Face2 - Triangle5 - Triangle6 + Face3 - Triangle7 - Triangle8 - Triangle9Bei Rendern werden von den 20.000 Triangles sagen wir mal ca. nur 1500 gerendert auf Grund des PVS und danach nochmal mit Frustumclipping.
Die Frage ist jetzt, wie sollte man das dann am günstigsten rendern? Wäre es sinnvoll ALLE Vertices und Indices via VertexBufferObjects und IndexBufferObjects praktisch in den VRAM zu laden, und dann bei jedem Face mit glDrawRangeElements zu arbeiten? Oder sollte man vllt. für JEDES Face EIN VBO und IBO anlegen? Vllt. wäre hier sinnvoll gar nur VertexArrays und IndexArrays im WRAM zu nehmen?
Wie sieht es aus, ist es für OpenGL schneller, wenn man statts GL_POLYGONS die Indices selber berechnet, und daraus GL_TRIANGLES macht?
mfg olli
-
-
Apollon schrieb:
Mehr wollte ich auch gar nicht dazu sagen...

Die Blätter sind sogenannte Blätter...

-
An Deiner Stelle würd ich die ganze Geometrie in einen Vertexbuffer schieben. In den Blättern steht dann nur noch die Information, wo sich die GEometrie im VB befindet. Damit spart man sich das Umschalten nach jedem Blatt, was dann eigentlich schneller sein sollte.
-
0x00000001: Danke, das erspart mir aufwendige Tests.
Apollon & Sgt. Nukem: Denkt ihr, mir ist nicht bewusst, das Leaf Blatt heißt? Dennoch werden sie auch Leafs in deutschen Tutorials genannt(obwohl sie in englischen Tutorials klein geschrieben werden).
mfg olli
-
Vertex schrieb:
Apollon & Sgt. Nukem: Denkt ihr, mir ist nicht bewusst, das Leaf Blatt heißt? Dennoch werden sie auch Leafs in deutschen Tutorials genannt(obwohl sie in englischen Tutorials klein geschrieben werden).
_MIR_ ging es ja auch nur um das unnötige
#define Blatt Leaf
Statt
Jetzt ist ja die Map als ein BSP-Tree aufgebaut, die Blätter dieses Baumes sind sogenannte Leafs. Diese Leafs enthalten eine Liste von Faces.
hättest Du auch direkt
Jetzt ist ja die Map als ein BSP-Tree aufgebaut. Die Leafs dieses Trees enthalten eine Liste von Faces.
schreiben können...
Aber genug korinthengekackt.

-
Übrigens ist jedes Blatt ein Knoten.

Bye, TGGC (Demo or Die)
-
TGGC schrieb:
Übrigens ist jedes Blatt ein Knoten.

Bye, TGGC (Demo or Die)
Und jeder Knoten wiederrum ein Baum.
-
Apollon schrieb:
TGGC schrieb:
Übrigens ist jedes Blatt ein Knoten.

Bye, TGGC (Demo or Die)
Und jeder Knoten wiederrum ein Baum.
Und jeder Baum ein Graph.
