繁体   English   中英

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

[英]Opengl ES how to import a 3D model and map textures to it on runtime

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

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

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

这不叫紫外线贴图吗?

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

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

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

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

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

要导入3D模型,您必须这样做

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

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

您也许可以在3D球体的代码中生成这些 ,但建模包也可以帮助您,特别是对于更复杂的3D对象。 对于某些视觉介绍,请查看与Blender相关的UV贴图的教程

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

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

1.编写一个加载器来解析所有顶点和纹理坐标。
2.使用blender将模型导出为头文件。

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

  2. 使用以下库生成C头文件并导入到项目中

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

尝试学习一些基础知识

阅读这些教程 ..

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM