Mesh(网格)资源参考
Mesh 资源是渲染网格的必要资源,网格可以由多种方式获取到:
- 在导入模型到编辑器中的时候由编辑器自动生成
- 用户从脚本中手动创建或修改网格,通过这种方式可以非常方便的定制自己的网格
Mesh 资源支持动态修改顶点数据和索引数据,并且提供了两个非常简单易用的 API,详细请参考下面的 API 介绍。
setVertices(name, values, index)
根据传入的顶点属性名 name
来修改对应的数据为 values
。index
指明修改的是哪一组顶点数据,默认值为 0。
setIndices(indices, index)
示例
当用户需要在代码中动态创建网格时,首先应该指明网格中顶点数据存储的格式。
// 修改 position 顶点数据
cc.v3(-100, 100, 100), cc.v3(-100, -100, 100), cc.v3(100, 100, 100), cc.v3(100, -100, 100),
cc.v3(-100, 100, -100), cc.v3(-100, -100, -100), cc.v3(100, 100, -100), cc.v3(100, -100, -100)
// 修改 color 顶点数据
let color1 = cc.Color.RED;
let color2 = cc.Color.BLUE;
mesh.setVertices(gfx.ATTR_COLOR, [
color1, color1, color1, color1,
color2, color2, color2, color2,
]);
mesh.setVertices(gfx.ATTR_UV0, [
cc.v2(1,1), cc.v2(1, 0), cc.v2(0, 1), cc.v2(0, 0),
]);
// 修改索引数据
mesh.setIndices([
0, 1, 2, 1, 3, 2, // front
0, 6, 4, 0, 2, 6, // top
2, 7, 6, 2, 3, 7, // right
0, 5, 4, 0, 1, 5, // left
1, 7, 5, 1, 3, 7, // bottom,