Mesh(网格)资源参考

    Mesh 资源是渲染网格的必要资源,网格可以由多种方式获取到:

    • 在导入模型到编辑器中的时候由编辑器自动生成
    • 用户从脚本中手动创建或修改网格,通过这种方式可以非常方便的定制自己的网格

    Mesh 资源支持动态修改顶点数据和索引数据,并且提供了两个非常简单易用的 API,详细请参考下面的 API 介绍。

    • setVertices(name, values, index)

    根据传入的顶点属性名 name 来修改对应的数据为 valuesindex 指明修改的是哪一组顶点数据,默认值为 0

    • setIndices(indices, index)

    示例

    当用户需要在代码中动态创建网格时,首先应该指明网格中顶点数据存储的格式。

    1. // 修改 position 顶点数据
    2. cc.v3(-100, 100, 100), cc.v3(-100, -100, 100), cc.v3(100, 100, 100), cc.v3(100, -100, 100),
    3. cc.v3(-100, 100, -100), cc.v3(-100, -100, -100), cc.v3(100, 100, -100), cc.v3(100, -100, -100)
    4. // 修改 color 顶点数据
    5. let color1 = cc.Color.RED;
    6. let color2 = cc.Color.BLUE;
    7. mesh.setVertices(gfx.ATTR_COLOR, [
    8. color1, color1, color1, color1,
    9. color2, color2, color2, color2,
    10. ]);
    11. mesh.setVertices(gfx.ATTR_UV0, [
    12. cc.v2(1,1), cc.v2(1, 0), cc.v2(0, 1), cc.v2(0, 0),
    13. ]);
    14. // 修改索引数据
    15. mesh.setIndices([
    16. 0, 1, 2, 1, 3, 2, // front
    17. 0, 6, 4, 0, 2, 6, // top
    18. 2, 7, 6, 2, 3, 7, // right
    19. 0, 5, 4, 0, 1, 5, // left
    20. 1, 7, 5, 1, 3, 7, // bottom,