openGL Fläche von Vertices rendern

Cromon

Erfahrenes Mitglied
Hallo zusammen!

Ich stehe hier momentan gerade vor einem kleinen theoretischen Problem. Und zwar habe ich folgende Ausgangssituation:

Ich möchte Boden rendern. Ich habe dazu Modelldateien, die immer ein paar Quadrate beinhalten und zwar folgendermassen aufgebaut:
Code:
1         2             3           4          5            6            7            8             9
    10         11           12       13         14          15         16          17
18      19          20          21        22         23          24          25          26
... usw

(also so pyramidenartig, ich hoffe man kann es erkennen. Immer versetzt 9 und 8)

Hier noch ein Bild dazu:
0444745001251540473_vertices.JPG


Die Nummern sind so wie oben.

Die Zahlen sind Vertices. Die x und y-Koordinaten kann ich leicht berechnen, da die Abstände wagerecht und senkrecht gleich sind. Ich habe ausserdem aus der Modelldatei 145 floats (so viele Vertices sind es pro Quadrat) mit den entsprechenden Höhenangaben.

Mein Problem ist nun, wie und ich welcher Reihenfolge ich diese Vertices nach ihrer Berechnung optimal abspeichern kann und wie der optimale Rendervorgang dazu aussehen würde.

Ich habe anfänglich an einen Trianglestrip gedacht, allerdings frage ich mich, wie ich da die Vertices wohl am geschicktesten "reinpumpen" könnte.

Beste Grüsse
Cromon
 
Zuletzt bearbeitet:
Hallo Cromon,

du könntest eine Reihe von Triangle Fans zeichnen, die du entlang einer Z-Kurve abläufst, um den Vertex Cache auszunutzen:
triangle_fans_z_order.jpg

Man könnte sich aber auch eine schlaue Reihenfolge überlegen, bei der die Vertices, die zu 8 Dreiecken adjazent sind, die Mittelpunkte der Fans bilden.

Grüße, Matthias
 
/Edit:
Habe es mittlerweile mit Hilfe eines Bekannten auch entsprechend umsetzen können. Dabei habe ich auch gemerkt, dass ich meine Modelle effizienter Rendern muss. Während ich riesige Geländeflächen performancemässig problemlos rendern kann habe ich bei vielen Modellen sehr schnell Probleme :D
 
Zuletzt bearbeitet:
Zurück