首页 > 解决方案 > .DAE 或 .SCN 文件在 Xcode 中无法正确显示

问题描述

我购买了一些 3D 模型用于我正在制作的应用程序中。购买的文件有.fbx格式,所以我将它们转换为.dae.

不幸的是,当我将它们放入 Xcode 中的 art.scnassets 文件夹并查看它们时,它们只是显示为模型应该是什么的橙色轮廓。没有质感。如果我选择 .dae 然后转到编辑器,然后“转换为 SceneKit 场景文件格式(.scn),也会发生同样的情况。

我找到了.tga模型纹理的文件。每个模型都有 3 个 .tga 纹理文件(albedo、ao 和 normals)。我可以将这些文件组合成一个纹理以在 Xcode 中使用吗?

Also, when the 3d model is selected, I cannot open the material inspector, it says it is Not Applicable. 我一直使用材质检查器将纹理文件应用于特定模型。

标签: swiftxcodescenekitarkitcollada

解决方案


.dae模型转换为.scnXcode 的原生格式后,您需要通过 Material Inspector 中的 Properties 槽将所有可用的纹理应用到您的 3D 模型。

在此处输入图像描述

Xcode 中纹理的最佳格式可能是.png(不是 a .tga),因为.png文件的大小相对较小并且可以容纳四个通道 - RGBA(.jpg仅容纳 RGB)。

您不能合并Albedo, AO, 和Normals因为这些文件用于 Material Inspector 的不同插槽:Albedo用于漫反射颜色、AO用于 Ambient Occlusion 软阴影、Normals用于凹凸效果。

或者,您可以使用 Swift 4.1 以编程方式分配这些纹理:

let material = SCNMaterial()

material.diffuse.contents = UIImage(named: "Albedo.png")
material.ambientOcclusion.contents = UIImage(named: "AO.png")
material.normal.contents = UIImage(named: "Normals.png")

PS 如果您在 Xcode 的场景图中看不到 3D 模型的任何部分,则有一个normals issue. 您需要在 3D 创作软件中反转多边形的法线。


推荐阅读