Opengl ES如何在运行时导入3D模型并将纹理映射到它

时间:2011-05-19 13:39:05

标签: iphone graphics opengl-es

这有点作弊,因为标题中实际上有两个问题。

关于如何导入3D模型的说法,我认为我可以通过这一点。

然而,我的问题是:我可以在运行时将纹理映射到导入的模型吗?

这不叫做UV-Mapping吗?

3D模型基本上是一个球体,使用OpenGL ES生成球体效果更好吗?

但是我如何将纹理映射到它呢?

抱歉对大多数基础知识一无所知。

2 个答案:

答案 0 :(得分:4)

您使用的是直接OpenGL还是引擎?如果您正在使用引擎,其中一些可能已经为您解决了。

如果您使用的是直接OpenGL,则必须记住它“仅仅”是一个渲染API。所以你仍然需要自己做很多腿部工作。

要导入3D模型,您必须

  • 创建某种网格数据结构
  • 编写一个加载器(OBJ文件格式是一个不错的起点),它接受一个文件并将其加载到您的数据结构中
  • 编写渲染代码,该代码将获取您已加载的数据并将其呈现出来。

是的,您可以对网格进行纹理贴图。你需要的是纹理(UV)坐标。这些基本上将网格中的顶点映射到2D纹理上的位置。想象一个球体为地球建模,UV坐标将顶点映射到地球2D地图上的特定位置。

您可以在3D球体的代码中generate those,但建模包也可以帮助您,特别是对于更复杂的3D对象。对于某些视觉介绍,请查看与Blender相关的tutorial on UV mapping

可以找到关于纹理和纹理映射的OpenGL ES教程here

答案 1 :(得分:3)

您可以使用两种方式加载3D模型

然后加载模型并应用纹理..

获取您的信息

阅读这些tutorials ..

我希望这可以帮助你...