私はいくつかのProgram3D
オブジェクト(それ自身の頂点シェーダとフラグメントシェーダでそれぞれそれ自身のレンダリングタスクを担当する)を持っている場合、彼らはデータのみを保存するように、私は新しいVertexBuffer3D
をインスタンス化する必要があるとIndexBuffer3D
ん対応するProgram3D
によって使用される頂点データ形式に関連していますか?例えば新しいVertexBuffer3D&IndexBuffer3Dを使用する各Program3Dに対して作成する必要がありますか?
、Iのような、異なる頂点データフォーマットでクワッドを定義するために計画していた場合:
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
];
IはフォーマットA、別を記憶するための1つVertexBuffer3D
とIndexBuffer3D
を作成する必要がありますフォーマットB、さらにもう1つはフォーマットCです。あるいは、さまざまな形式を同じVertexBuffer3D
の中に混ぜて、IndexBuffer3D
という単一のものを使って三角形を描くのは、巧妙な(または混乱を招く)ものでしょうか?