mirror of
https://github.com/Leo501/CocosCreatorTutorial.git
synced 2026-06-05 19:28:10 +08:00
添加一个介绍,并如何使用的demo
This commit is contained in:
59
MeshDemo/README.md
Normal file
59
MeshDemo/README.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# 网格Mesh 入门
|
||||
> Mesh 资源是渲染网格的必要资源
|
||||
|
||||
### 组成
|
||||
* 顶点数据
|
||||
* uv 顶点数据
|
||||
* 索引数据
|
||||
|
||||
### 初始化
|
||||
~~~
|
||||
let gfx = cc.renderer.renderEngine.gfx;
|
||||
|
||||
// 定义顶点数据格式,只需要指明所需的属性,避免造成存储空间的浪费
|
||||
var vfmtPosColor = new gfx.VertexFormat([
|
||||
// 用户需要创建一个三维的盒子,所以需要三个值来保存位置信息
|
||||
{name: gfx.ATTR_POSITION, type: gfx.ATTR_TYPE_FLOAT32, num: 3},
|
||||
{name: gfx.ATTR_UV0, type: gfx.ATTR_TYPE_FLOAT32, num: 2},
|
||||
{name: gfx.ATTR_COLOR, type: gfx.ATTR_TYPE_UINT8, num: 4, normalize: true},
|
||||
]);
|
||||
|
||||
let mesh = new cc.Mesh();
|
||||
// 初始化网格信息
|
||||
mesh.init(vfmtPosColor, 8, true);
|
||||
// 修改 position 顶点数据
|
||||
mesh.setVertices(gfx.ATTR_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,
|
||||
]);
|
||||
|
||||
// 修改 uv 顶点数据
|
||||
mesh.setVertices(gfx.ATTR_UV0, [
|
||||
cc.v2(0,0), cc.v2(0, 1), cc.v2(1, 0), cc.v2(1, 1),
|
||||
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,
|
||||
4, 5, 6, 5, 7, 6, // back
|
||||
]);
|
||||
~~~
|
||||
|
||||
### 使用
|
||||
需要使用到cc.MeshRenderer组件,并设置mesh属性
|
||||
|
||||
### 参考
|
||||
* https://docs.cocos.com/creator/manual/zh/3d/mesh.html
|
||||
Reference in New Issue
Block a user