C# WPF HELIX 3D 如何获取模型的 Material 并使其成为可用 Material

标签 c# wpf 3d helix-3d-toolkit

我有一个有头发的人头模型...不用担心流血,我只是想得到一个基本程序来改变网格和其他东西。

enter image description here

这是一个 .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/

相关文章:

c# - AxAcroPDF 控件窗口窗体在关闭窗体时挂起

c# - 如何更改 telerik WPF RadGridView 列过滤 View 模板

c# - 为什么在调用提交函数时 SqlTransaction 可能会提交失败?

c# - 无法在 Visual Studio 2017 中构建我的单元测试项目

wpf - 在 tabControl 中为 TabItems 使用数据模板

javascript - 如何在嵌入 WinForm 的 WebBrowser 控件中启用 JavaScript,而 WinForm 又嵌入 XBAP 页面?

wpf - 对于复杂的应用程序,WPF 3D 是 DirectX 和 OpenGL 的良好替代品吗?

c# - C# 中的 Powershell 命令

WPF BitmapImage 宽度/高度始终为 1?

javascript - 使用 D3.js 的 3 维(X、Y 和 Z)图