いくつかのProgram3D
オブジェクトがある場合(それぞれが独自のレンダリングタスクを担当する独自のVertex-ShaderとFragment-ShaderVertexBuffer3D
を備えています)、新しいをインスタンス化しIndexBuffer3D
て、によって使用される頂点データ形式にのみ関連するデータを格納するようにする必要がありますか?それらの対応するProgram3D
?
たとえば、次のようなさまざまな頂点データ形式でクワッドを定義することを計画している場合:
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
];
VertexBuffer3D
1つを作成し、フォーマットAIndexBuffer3D
を保存し、もう1つをフォーマットBに、さらにもう1つをフォーマットCに保存する必要がありますか?または、さまざまな形式を同じものの中に混ぜて、三角形を描くために1つを巧妙に(または混乱させて!)使用することはできますか?VertexBuffer3D
IndexBuffer3D