首页 > 解决方案 > 如何在 C# 中加载带有关联 MTL(纹理)的 Obj

问题描述

我尝试使用 mtl(纹理)加载 obj。我正在使用 helixtoolkit

        ObjReader CurrentHelixObjReader = new ObjReader();
        objmodel.Content = CurrentHelixObjReader.Read(@"C:...");

.obj 有效,但总是灰色

.mtl 文件位于同一文件夹中。

任何人都知道如何实现这一点...

标签: c#textureshelix-3d-toolkit

解决方案


我使用 Helix 加载 .obj 文件的方式如下。

首先,我创建一个ModelImporter对象。ModelImporter 对象处理从文件中加载模型。

然后,我只需调用新 ModelImporter 对象的Load方法,将要导入的 .obj 文件的文件路径作为字符串传递。Load方法返回一个Model3DGroup ,因此我在 Model3DGroup 对象中捕获返回值。

ModelImporter importer = new ModelImporter(); 

Model3DGroup group = importer.Load(filePath);

这里的所有都是它的。ModelImporter的Load方法可以正确处理 .obj 文件的导入。该方法中有确定您要导入的文件的逻辑,因此您不必自己担心。

至于 .mtl 文件,只要 .mtl 文件与 .obj 文件位于同一目录中,HelixToolkit 也应该为您处理。我不需要做任何其他事情来让它工作。


推荐阅读