已将Blender中的模型导出到.obj文件。我设法创建了一个非常简单的 将顶点和索引加载到数组的类。我的问题是我也想要纹理坐标(vt)和法线(vn)。因此,例如,我需要4个顶点* 6个面来创建一个简单的多维数据集才能使用纹理,但我的.obj文件中仅获得8个顶点,而且我不知道如何处理索引vt,因为我只能为索引提供一个数组/缓冲区,但是我在.obj文件中得到了两个不同的v / vt。

有没有只返回顶点,纹理,法线和一个索引数组的数组的加载程序?还是例子怎么写一个?到目前为止,IV只在完整的3D引擎中找到了装载机,而这并不是我想要的。

有帮助吗?

解决方案

4个顶点* 6个面超出了您的需要。实际上,它不会高效。使用索引对已导出的顶点进行了优化。使用Opengl-es,您可以指向从何处获取顶点(数组),然后使用它们在另一个数组中的索引来绘制顶点。结果,您得到8个顶点,而可能有24个顶点,因此需要更少的内存来存储。因此效率为16/24 * 100%。想象一下,您将拥有一个具有1000个顶点的模型。

顶点索引意味着在另一个具有适当偏移量的数组中,GPU将获得一个顶点(size_of_vertex(3个浮点)*索引)和一个适当的UV坐标偏移(size_of_UVcoord(2个浮点)*索引)

此代码适用于opengl ES 2.0,但您可以了解一下: 通用标签

sqTEx是TexturedSquare的一个实例: 通用标签

其他提示

看起来是PCT(或jPCT-AE),它是Java(和/或Android)的出色3D库。它支持开箱即用的3ds / obj加载。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top