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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top