顶点属性寄存器最多有8个输入,每个寄存器里面输入的数据格式为:
position: x float32
y float32
z float32
u float32
v float32
color: r unsigned byte
g unsigned byte
b unsigned byte
a unsigned byte
其格式为:
var vertexData:Vector.<Number> = Vector.<Number>(
[
// x, y, z r, g, b format
0, 0, 0, 1, 1, 1,
-1, 1, 0, 0, 0,.5,
1, 1, 0, 0, 0, 1,
1,-1, 0, .5, 0, 0,
-1,-1, 0, 1, 0, 0
]
);
以上只写了6位,顶点程序通过VertexBuffer3D类的uploadFromVector方法上传,并通过Context3D类的setVertexBufferAt方法设定位置跟颜色如何取值,具体的实现方法见下面代码:
const dataPerVertex:int = 6;
var vertexData:Vector.<Number> = Vector.<Number>(
[
// x, y, z r, g, b format
0, 0, 0, 1, 1, 1,
-1, 1, 0, 0, 0,.5,
1, 1, 0, 0, 0, 1,
1,-1, 0, .5, 0, 0,
-1,-1, 0, 1, 0, 0
]
);
var vertexes:VertexBuffer3D = renderContext.createVertexBuffer( vertexData.length/dataPerVertex, dataPerVertex );
vertexes.uploadFromVector( vertexData, 0, vertexData.length/dataPerVertex );
//Identify vertex data inputs for vertex program
renderContext.setVertexBufferAt( 0, vertexes, 0, Context3DVertexBufferFormat.FLOAT_3 ); //Defines shader input va0 as the position data
renderContext.setVertexBufferAt( 1, vertexes, 3, Context3DVertexBufferFormat.FLOAT_3 ); //Defines shader input va1 as the color data
顶点属性寄存器(顶点程序)的书写方法
最新推荐文章于 2017-04-15 14:02:50 发布