顶点:
这里说的顶点实际上包括组成物体的所有点、贴图UV坐标信息、该点的法线信息、该点的颜色信息等。
var vbV:Vector.<Number> = Vector.<Number>([ // X Y Z U V R G B A -1, 1,0,0,0,0.1,0.1,0.1,1, // 左上角的点 1, 1,0,1,0,0.1,0.1,0.1,1, // 右上角的点 1,-1,0,1,1,0.1,0.1,0.1,1, // 右下角的点 -1,-1,0,0,1,0.1,0.1,0.1,1 // 左下角的点 ]);
vb = context3D.createVertexBuffer(vbV.length/9,9); // 这里的9表示一个顶点含有的9个Number信息
vb.uploadFromVector(vbV,0,vbV.length/9); // 上传,不上传以后就无法使用这个vb(VertexBuffer3D)
context3D.clear(); // 清除绘制 context3D.setVertexBufferAt(0,Actor.vb,0,Context3DVertexBufferFormat.FLOAT_3); // xyz 代码中可使用va0 context3D.setVertexBufferAt(2,Actor.vb,5,Context3DVertexBufferFormat.FLOAT_4); // rgba 代码中可使用va2 context3D.setProgram(program1); // 该次绘制使用program1代码来绘制 context3D.drawTriangles(ib,0); // 绘制,物体的索引ib
// VERTEX着色语言 "m44 op va0 vc0 \n" + // 输出顶点 = 该物体的原始顶点 * 该物体的最终矩阵 "mov v1 va2\n"+ // 将顶点的颜色信息传输到中转站,方便FRAGMENT着色语言用 // FRAGMENT着色语言 "mov oc v1 \n" + // 输出颜色,每个顶点不是都有颜色么