mrsuicide
20-10-2004, 09:59
Ich habe ein komisches Performance-Problem mit Vertex Arrays...
Ich habe mir eine Implementierung geschrieben, wobei Objekte mit Display Lists ( glCallList() ) oder Vertex Arrays (bzw. VBOs, wenn die unterstützt werden, glDrawArrays() ) gerendert werden. Beides wird vorkalkuliert.
Wenn 100 Objekte mit DLs rendere komme ich auf 57 fps.
Wenn ich dann die Kamera von den Objekten wegdrehe, bekomme ich 571 fps.
Bei 100 Objekten und VBOs sind es 43 fps.
Wenn ich die Kamera dann wegdrehe sind es 130 fps. :mad:
Mein Problem sind nicht die 14 fps beim rendern der Objekte, aber mein Problem sind die 441 fps, wenn ich die Kamera wegdrehe. Wie soll das denn dann im fertigen Spiel aussehen?
Es werden ja auch nicht immer alle Objekte gezeigt. Dann würde die Performance wohl durch die unsichtbaren Objekte entschieden, oder?
Wann sind nun eindeutig VBOs zu bevorzugen, und wann nicht?
Kann es daran liegen, dass mein Objekt ein einfaches Mesh ist? Würden die Performanceverhältnisse bei großen Objekten wie z.B. dem Level anders liegen?
Hilfe!
:confused: :confused: :confused:
Ich habe mir eine Implementierung geschrieben, wobei Objekte mit Display Lists ( glCallList() ) oder Vertex Arrays (bzw. VBOs, wenn die unterstützt werden, glDrawArrays() ) gerendert werden. Beides wird vorkalkuliert.
Wenn 100 Objekte mit DLs rendere komme ich auf 57 fps.
Wenn ich dann die Kamera von den Objekten wegdrehe, bekomme ich 571 fps.
Bei 100 Objekten und VBOs sind es 43 fps.
Wenn ich die Kamera dann wegdrehe sind es 130 fps. :mad:
Mein Problem sind nicht die 14 fps beim rendern der Objekte, aber mein Problem sind die 441 fps, wenn ich die Kamera wegdrehe. Wie soll das denn dann im fertigen Spiel aussehen?
Es werden ja auch nicht immer alle Objekte gezeigt. Dann würde die Performance wohl durch die unsichtbaren Objekte entschieden, oder?
Wann sind nun eindeutig VBOs zu bevorzugen, und wann nicht?
Kann es daran liegen, dass mein Objekt ein einfaches Mesh ist? Würden die Performanceverhältnisse bei großen Objekten wie z.B. dem Level anders liegen?
Hilfe!
:confused: :confused: :confused: