Iphone Opengl演示了如何在运行时导入3D模型并将纹理映射到该模型

Iphone Opengl演示了如何在运行时导入3D模型并将纹理映射到该模型,iphone,graphics,opengl-es,Iphone,Graphics,Opengl Es,这有点作弊,因为标题中实际上有两个问题 关于如何导入3D模型,我想我可以通过这一点 但是,我的问题是:能否在运行时将纹理映射到导入的模型 这不是UV贴图吗 3D模型基本上是一个球体,使用OpenGL ES生成球体是否更好 但是我如何将纹理映射到它呢 很抱歉对大多数基础知识一无所知。您使用的是纯OpenGL还是引擎?如果您使用的是引擎,其中一些问题可能已经为您解决了 如果您使用的是纯OpenGL,您必须记住它“仅仅”是一个渲染API。所以你仍然需要自己做很多腿部训练 要导入三维模型,您必须 创建

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

关于如何导入3D模型,我想我可以通过这一点

但是,我的问题是:能否在运行时将纹理映射到导入的模型

这不是UV贴图吗

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

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


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

您使用的是纯OpenGL还是引擎?如果您使用的是引擎,其中一些问题可能已经为您解决了

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

要导入三维模型,您必须

  • 创建某种网格数据结构
  • 编写一个加载程序(文件格式是一个很好的开始),它接收一个文件并将其加载到数据结构中
  • 编写渲染代码,该代码将获取加载的数据并渲染出来
是的,您可以对网格进行纹理贴图。你需要的是纹理(UV)坐标。这些基本上将网格中的顶点映射到2D纹理上的某个位置。想象一个球体模拟地球,UV坐标将顶点映射到地球2D地图上的特定位置

您可能可以在三维球体的代码中进行建模,但建模包也可以在这方面提供帮助,尤其是对于更复杂的三维对象。对于某种程度上的视觉介绍,请看一下与Blender相关的内容


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

您可以使用两种方式加载三维模型

一,。编写一个解析所有顶点的 和纹理坐标
2.使用你的模型 作为头文件

  • 将三维模型转换为波前对象格式。使用/编写库将obj文件解析为顶点和纹理坐标

    • (C,C++)
    • (Swift)
  • 使用以下库生成C头文件并导入到项目中

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

    试着学习一些基础知识

    读这些

    我不维护这些链接,我不能保证这些链接在未来的存在。在更新这些答案时,这些链接是有效的。如果你发现这些链接被破坏了,做一个明智的编辑,而不是抱怨


    我无法回答,我对iPhone上的工具一无所知,但你想要的是uv映射,是的。至于“世代”,我不知道它是否“更好”,但如果你真的只有一个球体,它将更容易实现。无用的评论。所有链接都已断开。@StamenRakov我同意这些链接(2011年回答)已断开,因为这些链接背后的opengl博客已被删除。我会尽量找到最好的链接来匹配上下文(你也可以用谷歌搜索)。