Auf Thema antworten

Bei 1000 Vertices ist das nicht kritisch, sodass Du bedenkenlos die Variante nehmen kannst, die in Deinem Code "sauberer" ist. Im Allgemeinen wird pro VBO ein Richtwert von etwa 4  MB angegeben, bei "normalen" Attributen also etwa 125k Vertices. Wenn das VBO lange lebt, auch mehr. Das Umschalten zwischen VAOs/VBOs "kostet" ein wenig, sodass weniger VAOs/VBOs schneller sein können.


Dasselbe VBO mit anderen Parametern in einem anderen VAO wieder zu verwenden, könnte nützlich sein, wenn man eine multi pass Renderschleife nutzt. Bei single pass braucht man das aber ihmo nicht.


Juhu, das Wiki ist wieder da: Vertex Specification, Vertex Specification Best Practices


 



Ja, das kann dazu führen, dass der OpenGL Treiber die GPU mit der CPU synchronisieren muss und das bremst dann beide aus. Es gibt aber Techniken, mit denen das zumindest eingedämmt werden kann: Buffer Object Streaming


Grundsätzlich ist es aber eine gute Idee die VAOs/VBOs unangetastet zu lassen und notwenige Veränderungen im Shader durchzuführen. Aber gerade als Einsteiger kann das manchmal etwas schwierig sein.




Ist ja nichts schlimmes. Niemand kommt als Allwissender zur Welt. ;)


Viele Grüße,

Fancy



Oben