【问题标题】:Importing .obj files with textures in SceneKit在 SceneKit 中导入带有纹理的 .obj 文件
【发布时间】:2019-09-21 02:04:41
【问题描述】:

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

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

【问题讨论】:

    标签: ios swift scenekit arkit


    【解决方案1】:

    在 art.scnassets 中添加您的纹理图像文件

    选择您的场景并在材质属性中选择您的纹理

    【讨论】:

    • 3D 文件是在运行时从服务器下载的,因此在 Xcode 中无法做到这一点。
    【解决方案2】:

    您是否检查了.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
    

    如果你去掉所有路径,那么文件导入应该可以工作。

    【讨论】:

    • 如果您正在处理包含纹理的文件夹的结构,您可以简单地在 mtl 文件中写入“文件夹名称/纹理名称.jpg”作为定义路径。它将在重新启动 Xcode 时更新模型外观
    猜你喜欢
    • 1970-01-01
    • 2017-10-03
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 2019-02-12
    • 2018-08-06
    • 1970-01-01
    相关资源
    最近更新 更多