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
来绘制三角形(或混淆!)?