Ist es besser, alle Scheitelpunktdaten in einer Struktur wie dieser zu haben:
class MyVertex
{
int x,y,z;
int u,v;
int normalx, normaly, normalz;
}
Oder um jede Komponente (Position, Normal, Texturkoordinaten) in separaten Arrays / Puffern zu haben? Für mich schien es immer logisch, die Daten in einer Struktur zusammenzufassen, da sie für jede Instanz eines gemeinsamen Scheitelpunkts immer gleich sind, und dies scheint für Dinge wie Zeichenmodelle zu gelten (z. B. sollte der Normalwert ein Durchschnitt sein benachbarter Normalen für eine gleichmäßige Beleuchtung). Ein Fall, in dem dies nicht zu funktionieren scheint, sind andere Arten von Netzen, z. B. ein Würfel, bei dem die Texturkoordinaten für jeden gleich sind, dies jedoch dazu führt, dass sie unterschiedlich sind, wenn die Scheitelpunkte gemeinsam genutzt werden.
Werden sie normalerweise getrennt gehalten? Werden sie dadurch nicht weniger platzsparend, wenn für jeden Scheitelpunkt eine Instanz von Texturkoordinaten und Normalen vorhanden sein muss (sie werden nicht indiziert)? Kann OpenGL diese Mischung aus indizierten (für den Standort) und nicht indizierten Puffern in demselben VBO überhaupt verarbeiten?