man*_*eak 5 3d mesh collada indices
我为COLLADA文件格式编写了一个简单的阅读器,它似乎工作正常.现在,我有一个Blender导出的立方体网格边缘分割和三角形,所以它应该有12个三角形(每个面2个),24个顶点(每个面4个)和36个索引(每个面6个).此网格还具有普通数据和UV贴图.
该COLLADA文件有24个顶点,12个法线和36个UV,所以我假设法线是每个三角形,UV是每个索引.polylist三角形的数量是12,这是正确的,并且vcount有12个'3',所以这也是正确的.现在,<p>哪个是索引列表有108个条目,其中0,3,6等是顶点索引,1,4,7等是正常索引,而2,5,8等是UV索引.
我有一个顶点的内部结构,它由position(vec3),normal(vec3)和UV坐标(vec2)组成.要绘制网格,我使用OpenGL的顶点缓冲区,并有一个单独的索引列表.
问题是,加载网格后我不应该有24个顶点吗?108个条目<p>转换为36个顶点.这里的指数有什么问题?
我可能会遗漏一些非常简单的东西,但不能只看到它.
该COLLADA文件在这里.
好的,我找到了解决方案,不得不用一架简单的飞机清除我的想法.由于每个面都是三角形,因此顶点的最终计数是polylist的count属性中描述的计数的三倍.因此,对于立方体,它是36而不是24.最后,36确实正确地绘制了立方体.所以,主要是我的大脑疯了.
| 归档时间: |
|
| 查看次数: |
2796 次 |
| 最近记录: |