Question

Si j'en ai quelques-uns Program3D objets (chacun avec lui-même Vertex-shadder et Fragment-shadder Responsable de sa propre tâche de rendu), ai-je besoin d'instancier un nouveau VertexBuffer3D et IndexBuffer3D afin qu'ils stockent les données uniquement pertinentes pour le format de données vertex utilisées par leur correspondant Program3D?

Par exemple, si je prévoyais de définir des quads dans différents formats de données de sommet, comme:

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
];

Aurais-je besoin d'en créer un VertexBuffer3D et IndexBuffer3D ranger format a, un autre pour format b, et encore un autre pour format c? Ou les différents formats peuvent-ils être mélangés à l'intérieur de la même VertexBuffer3D puis faire une utilisation intelligente (ou déroutante!) IndexBuffer3D pour dessiner les triangles?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top