【问题标题】:C# WPF HELIX 3D How to get a model's material and make it a usable materialC# WPF HELIX 3D 如何获取模型的材质并使其成为可用的材质
【发布时间】:2013-12-22 22:50:33
【问题描述】:

我有一个有头发的人头模型……别担心流血,我只是想弄一个用于更改网格和东西的基本程序。

这是一个 .OBJ 模型,我正在使用 Helix 3D 工具包加载它。我尝试了各种方法来获取用于头发的材料(加载模型后)。头发是子网格,是子 0。我将导入的模型称为“开始”,它的加载方式如下:

 ObjReader CurrentHelixObjReader = new ObjReader();
 start = CurrentHelixObjReader.Read("C:/Users/Roger/Desktop/head/base_med_.obj");

模型可以成功加载,但是当我尝试这样做时会出现问题:

 Material matty = (MaterialGroup)((GeometryModel3D)start.Children[0]).Material;

我想做的是从原始模型中获取材料。这是从现有材料创建新材料的正确方法吗?

一旦我有了材料,我就想在以后使用它。

我欢迎任何建议,并感谢您的关注。

编辑:错误消息是:

"PresentationFramework.dll 中出现“System.Windows.Markup.XamlParseException”类型的未处理异常 附加信息:“对与指定绑定约束匹配的“HelixTrial.MainWindow”类型的构造函数的调用引发了异常。行号“4”和行位置“9”。 如果有这个异常的处理程序,程序可以安全地继续。"

【问题讨论】:

  • 你得到什么错误?任何堆栈跟踪?你也用快速手表检查过吗?
  • 对不起,我忘记添加错误了,我现在在上面添加了。我是 C# 新手,主要是做网络编程,所以我不确定 Stack Trace 和 Quick watch 是什么,抱歉。

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


【解决方案1】:

好的,我想我找到了解决方案,我将我的代码简化为这个,它现在可以工作了。

 Material matty = (MaterialGroup)((GeometryModel3D)start.Children[0]).Material;

改为:

 Material matty = ((GeometryModel3D)start.Children[0]).Material;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-23
    • 2018-06-17
    • 2023-03-21
    • 2012-07-10
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 2017-10-07
    相关资源
    最近更新 更多