0

如何在模型的不同部分仍然保持不同材料的属性的同时将各种不同的效果应用于模型?

我在 xna 中使用 Model 类,并在搅拌机中创建了模型(使用 .fbx 文件格式)。据我所知,通过 xna 的内容管道加载模型会在各种 BasicEffect 实例中存储有关不同材质的信息(例如镜面反射功率和漫反射颜色)。我想要做的是对模型应用各种不同的自定义效果(包括我世界中的所有点光源),同时仍然让模型的光泽部分保持其闪亮的外观(例如)。我的想法是永远不要重新映射模型,而是保留 BasicEffect 实例作为某些材料外观的参考。在这种情况下,我需要在应用正确的效果后手动绘制每个 ModelMeshPart。我是否按照正确的思路将大量全局效应应用于我的模型?是否有更好的方法来访问 .fbx 文件中的材料信息?我是否应该用一种效果重新映射我的模型,并将我可能需要的所有技术塞进其中?

4

1 回答 1

0

在绘图循环中,您已经在迭代网格并为每个网格部分调用单独的绘图。因此,在该循环中,不要使用附加到模型的效果,而是将设置(来自模型或其他)放到您自己的效果上,应用它,然后使用它来绘制网格。

XNA 开发人员已经注意到,内容导入器和模型类必须是专门的,以使初级程序员可以简单地绘制模型。不幸的是,这使得它们不适合您想要实现的技术。如果您想做更高级的绘图,您可能需要扩展 Model 类,并将基础用作几何/纹理存储介质。

于 2012-08-03T21:03:53.870 回答