在 SceneKit 中导入带有纹理的 .obj 文件

Importing .obj files with textures in SceneKit

我正在尝试渲染从网上下载的 3D 模型 .obj 文件,但我在将纹理应用到模型时遇到问题。 .mlt、.obj 和纹理 .jpg 文件都在同一个文件夹中(例如 car.obj、car.mtl、car.jpg、carDark.jpg)。

纹理应该由模型 I/O 自动应用吗?我应该如何使用模型 I/O 导入纹理?

在 art.scnassets

中添加您的纹理图像文件

Select 您的场景和 select 您在 Material 属性中的纹理

您是否检查了 .obj 文件中 .mtl 文件的文件路径? 如果此路径不正确,则不会加载材料。 OBJ 和 MTL 文件是文本文件,因此您可以使用文本编辑器打开它们。 .mtl 文件的路径应该在 .obj 文件的顶部:

mtllib mymtlfile.mtl

如果它们在同一个文件夹中,您可以去掉路径。

如果此路径没问题,那么您应该检查 .mtl 文件中纹理的路径。查找以 map_ 开头的行。例如:

map_Kd mydiffusetexture.png
map_Ka /path/to/myambienttexture.tga
map_bump mybumptexture.jpg

如果删除所有路径,则文件导入应该可以。