0
如果我有幾個Program3D
對象(每個都有它自己的頂點着色器和片段着色器負責它自己的渲染任務),我需要實例化一個新的VertexBuffer3D
和IndexBuffer3D
讓他們只存儲數據與其對應的頂點數據格式相關的Program3D
?應該爲每個使用的Program3D創建一個新的VertexBuffer3D&IndexBuffer3D嗎?
例如,如果我打算來定義不同的頂點數據格式四邊形,如:
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
和IndexBuffer3D
存儲格式中的,另一一個用於格式B,還有一個用於格式C?或者可以將各種格式混合在同一個VertexBuffer3D
之內,然後使用一個單一的IndexBuffer3D
來繪製三角形(或混淆!)?