.DAE或.SCN文件在Xcode中无法正确显示。

5

我购买了一些3D模型来使用在我的应用程序中。这些购买的文件格式为.fbx,所以我已经将它们转换成了.dae

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

我找到了这些模型纹理的.tga文件。每个模型都有3个.tga纹理文件(漫反射、环境光遮蔽和法线贴图)。我能否将这些文件合并成一个纹理文件在Xcode中使用?

此外,当选定3D模型时,我无法打开材质检查器,它显示为“不适用”。我一直使用材质检查器将纹理文件应用于特定的模型。


问候! 在将.fbx转换为.dae后,您应该在XCode中将您的.dae文件转换为.scn文件格式。 接下来,您需要在材质检查器中为每个对象部分添加适当的材质。您可以轻松使用.tga作为材质。 这应该可以工作。 祝你好运! - Yevhen
谢谢回复。所以我将.fbx转换为.dae格式,然后将它们拖到.scnassets文件夹中。从那里,我进入编辑器菜单,并将它们转换为.scn文件。不幸的是,无论是.dae还是.scn文件,我都无法打开材质检查器来应用纹理。它只显示为“不适用”。所有其他检查器都正常工作。 - burgoyne
1个回答

5
将一个.dae模型转换成.scnXcode的本地格式后,您需要通过材质检查器中的属性槽来应用所有可用的纹理到您的3D模型。

enter image description here

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

您不应该合并AlbedoAONormals,因为这些渲染通道用于材质检查器的不同插槽:Albedo用于漫反射颜色,AO用于环境光遮蔽软阴影,Normals用于凸起效果。

您可以通过编程方式分配这些纹理:

let material = SCNMaterial()

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

附言:

如果您在Xcode的场景图中无法看到3D模型的任何部分,那么可能是由于多边形的法线问题。您需要在3D制作软件中反转法线。


3
谢谢!我意识到我的材质检查员说“不适用”,是因为在选择模型之后,我需要双击它。此外,要使纹理出现,我需要进入透明度设置(在材质检查员中)并将值更改为1。默认情况下为0。 - burgoyne
对我来说,我必须将光照模型更改为 Blinn - George

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接