我有一个有头发的人头模型...不用担心流血,我只是想得到一个基本程序来改变网格和其他东西。
这是一个 .OBJ 模型,我正在使用 Helix 3D 工具包加载它。我尝试了各种方法来获取用于头发的 Material (加载模型后)。头发是子网格并且是子 0。我将导入的模型称为“开始”,它是这样加载的:
ObjReader CurrentHelixObjReader = new ObjReader();
start = CurrentHelixObjReader.Read("C:/Users/Roger/Desktop/head/base_med_.obj");
模型可以成功加载,但是当我尝试这样做时出现问题:
Material matty = (MaterialGroup)((GeometryModel3D)start.Children[0]).Material;
我想做的是从原始模型中获取 Material 。这是从现有 Material 创建新 Material 的正确方法吗?
一旦我有了 Material ,我想在以后的阶段使用它。
我欢迎任何建议,感谢您的关注。
编辑:错误信息是:
“PresentationFramework.dll 中出现类型为‘System.Windows.Markup.XamlParseException’的未处理异常 附加信息:“对与指定绑定(bind)约束匹配的‘HelixTrial.MainWindow’类型的构造函数的调用引发了异常。”行号“4”和行位置“9”。 如果有这个异常的处理程序,程序可以安全地继续。"
最佳答案
好的,我想我找到了解决方案,我将我的代码简化为这样,现在它可以工作了。
Material matty = (MaterialGroup)((GeometryModel3D)start.Children[0]).Material;
更改为:
Material matty = ((GeometryModel3D)start.Children[0]).Material;
关于C# WPF HELIX 3D 如何获取模型的 Material 并使其成为可用 Material ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20409456/