某些加载的 FBX 文件的纹理映射失败

Posted

技术标签:

【中文标题】某些加载的 FBX 文件的纹理映射失败【英文标题】:Texture mapping fails for some loaded FBX files 【发布时间】:2016-07-31 19:18:29 【问题描述】:

我仍在使用我的自定义游戏引擎开发我的游戏,并且我仍然取得了不错的进展。我目前正在研究的主题之一是内容预处理器。这个独立工具的目的是读取流行的文件格式并将它们转换为我自己设计的文件格式,我将在我的游戏(引擎)中使用。我使用 Autodesk 开发人员提供的官方 FBX SDK 编写了一个纤薄的 C++ 应用程序来读取 FBX 文件并提取我需要的信息。结果是使用我提到的自定义文件格式编写的。

大多数事情都能完美运行。但是,我在网上购买的模型遇到了一些问题,如下图所示。例如,左侧椅子的上半部分未正确进行三角剖分,并且纹理有时是错误的(参见椅子的下半部分)。床的右侧部分也应该有不同的颜色。

这些资源在 Unity 资源商店中看起来很完美,所以我想知道我做错了什么。在我没有看到的一些 FBX 节点中是否隐藏了某种几何或纹理信息? Unity 是否将其他映射信息存储在其他文件中,例如 *.prefabs 文件?

我购买的几项资产都有这个问题。其他一些资产可以完美运行,所以我高度假设我忘记了一些东西并且没有犯一般性错误。

任何提示都会很棒!

【问题讨论】:

有人知道吗?我仍然无法弄清楚问题所在。 :'-( 【参考方案1】:

我终于找到了解决问题的方法。我没有任何几何问题,只有纹理问题。我使用了从 FBX 文件中读取的 V 坐标。但是,对于某些网格,我不得不使用“1.0 - V”而不是仅使用 V 坐标。我调整了我的内容导入器,使其反映这些模型的 V 坐标,现在一切看起来都很好。 :-)

【讨论】:

以上是关于某些加载的 FBX 文件的纹理映射失败的主要内容,如果未能解决你的问题,请参考以下文章

像素区域的OpenGL纹理映射

Assimp FBX 加载器和 PBR 纹理

Unity3D使用 FBX 格式的外部模型 ③ ( FBX 模型中的材质重映射 | FBX 模型使用外部材质 | FBX 模型的分解重组 )

LibGDX fbx 导出不显示图像纹理 - 显示为黑色

OpenGL的纹理映射问题

使用vue学习three.js之加载和使用纹理- 通过设置纹理的wrapSwrapTrepeat属性实现纹理的重复平铺,纹理的重复映射