¿Debería crearse un nuevo VERTEXBUFFER3D & IndexBuffer3D para cada programa 3D?
-
29-10-2019 - |
Pregunta
Si tengo algunos Program3D
objetos (cada uno con su propio Shader de vértice y Fragmento de fragmento responsable de su propia tarea de renderizado), ¿necesito instanciar una nueva? VertexBuffer3D
y IndexBuffer3D
para que almacenen los datos solo relevantes para el formato de datos de vértice utilizado por su correspondiente Program3D
?
Por ejemplo, si planeaba definir quads en diferentes formatos de datos de vértices, como:
var vertexData:Vector.<Number>;
//Vertex-Format A:
vertexData = new <Number>[
//X, Y, U, V
-.5, -.5, 0, 0,
.5, -.5, 1, 0,
.5, .5, 1, 1,
-.5, .5, 0, 1
];
//Vertex-Format B:
vertexData = new <Number>[
//X, Y, U, V, Matrix-Constant ID, Color
-.5, -.5, 0, 0, 3, 0xff0000,
.5, -.5, 1, 0 , 3, 0x00ff00,
.5, .5, 1, 1, 3, 0x0000ff,
-.5, .5, 0, 1, 3, 0xffff00
];
//Vertex-Format C:
vertexData = new <Number>[
//X, Y, Matrix-Constant ID
-.5, -.5, 3,
.5, -.5, 3,
.5, .5, 3,
-.5, .5, 3
];
¿Necesitaría crear uno? VertexBuffer3D
y IndexBuffer3D
Almacenar formatear a, otro para Formato B, y otro más para Formato C? O se pueden mezclar los diversos formatos dentro del mismo VertexBuffer3D
y luego haga un uso inteligente (¡o confuso!) IndexBuffer3D
para dibujar los triángulos?
No hay solución correcta