将 PBR 模型导入 Xcode 会导致不正确的着色器属性

Posted

技术标签:

【中文标题】将 PBR 模型导入 Xcode 会导致不正确的着色器属性【英文标题】:Importing PBR models into Xcode results in incorrect shader properties 【发布时间】:2020-09-01 01:23:52 【问题描述】:

我一直在 Xcode 中试验不同的 3D 模型文件格式,主要是 .obj.dae

但是,在我从 Blender 导出这些文件后,它们要么没有任何关联的光照,要么所有值(尤其是它们的金属度和粗糙度)都不是它们最初设置的值。

.obj 导出, .dae 导出, 然后是搅拌机版本。

问题是我如何从 Blender 导出模型、模型本身还是其他什么?

【问题讨论】:

【参考方案1】:

对象

如果您在 Blender(或 Maya)中创建模型,请记住,每个应用程序都有自己的内部着色器,这些着色器可能与 SceneKit 的着色器不同。当您将任何模型导出为 .obj 时,您还会获得相应的 uv 映射 .mtl 纹理文件。 .obj 内部没有灯光,因为这种格式只支持几何体(具有平滑度、法线和 UV ID)。还有一件事——.obj 不支持动画。

.dae 格式不仅允许您导出带有动画的 3D 几何体,还允许您导出带有颜色和纹理的相应着色器(如 Phong、Blinn 或 Lambert)(但是,不支持 Blender 或 Maya 的程序纹理)。并且所有在 3D 场景中的灯光也会被导出。

usdz

导出的最佳候选者是.usdz 文件。并非所有 3D 创作工具都有 export usdz 选项,但 Autodesk Maya 2022 有 USD 插件。

.usdz 格式具有.dae 格式的所有功能,但除此之外,我可以说它是 RealityKit、SceneKit、Reality Composer 和 QuickLook 的原生格式,它的分层系统适用于更大的场景,并且支持 Python USDZ 架构。

【讨论】:

以上是关于将 PBR 模型导入 Xcode 会导致不正确的着色器属性的主要内容,如果未能解决你的问题,请参考以下文章

为啥颤振无法导入我的模型?

为啥导入 ViewController 会导致 Xcode 无法找到另一个 ViewController?

记一次企业高级组网中不正确配置PBR引发的环路排错

XCode 7.2 在协议扩展实现功能不正确时崩溃

quickbi不自动导入数据

在 iOS 7 上纵向裁剪图像会导致方向不正确