最近刚刚研究了一下自定义渲染这块,留下一些注释,希望对你有帮助。
`
// 每个2d渲染单元里的有:
// 4个顶点属性数据
// 6个顶点索引 -> 三角剖分成2个三角形
// 每个顶点属性由5个32位数据组成
// 顶点属性声明:
// var vfmtPosUvColor = new gfx.VertexFormat([
// { name: gfx.ATTR_POSITION, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },
// { name: gfx.ATTR_UV0, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },
// { name: gfx.ATTR_COLOR, type: gfx.ATTR_TYPE_UINT8, num: 4, normalize: true }, // 4个uint8
// ]);
// 顶点属性数据排列,每一格是32位 (float32/uint32)
// x|y|u|v|color|x|y|u|v|color|...
// 其中uv在一组数据中的偏移是2,color的偏移是4
verticesCount = 4;
indicesCount = 6;
uvOffset = 2;
colorOffset = 4;
floatsPerVert = 5;
`
_renderData.vDatas[0]数组长度为什么是20?
–> 一个节点4个顶点 * 每个顶点5个数据(每个数据32位)
5,10,15,20位置上显示NAN?
–> 第5,10,15,20位是color值,如果没有修改过颜色,那么他是#FFFFFFFF,即纯白。这个值比较大,调试的时候会显示NAN,实际上是uint32位的 1^32 - 1