SkinnedModelProcessor和带材质的模型

时间:2012-02-11 05:06:58

标签: c# xna

我正在使用XNA 4.0和Blender 1.6.1。我在Blender中构建了一个模型,对其进行了操纵,使用了材料对其进行着色,并将其导出为.fbx。我的模型有所有网格的UV贴图,但它们没有纹理。当我使用BasicEffects的普通模型内容管道时,我可以看到模型很好(包括材料)。

然而,我接着在http://create.msdn.com/en-US/education/catalog/sample/skinned_model使用了SkinnedModelProcessor,现在我的模型要么透明渲染要么根本不渲染。

在查看问题之后,我在http://create.msdn.com/en-US/education/catalog/sample/stock_effects找到了StockEffects教程并用它来查看skinnedeffect是如何渲染像素的。我更改了像素着色器(在所有适用的位置),以便:

float color4 = pin.Diffuse;

我认为这样可以让我的模型在没有SkinnedModelProcessor纹理的情况下正确渲染,但我无法弄清楚如何让处理器使用我更新的效果而不是内置的效果。如果有人知道如何让处理器使用更新的效果文件或其他方式让我的模型使用材料而不是纹理进行渲染,我将非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

在游戏中,只需加载您编写的效果文件,然后将其指定给您的蒙皮模型

public void SetModelEffect(Effect effect)
{
  foreach (ModelMesh mesh in model.Meshes)
    foreach (ModelMeshPart part in mesh.MeshParts)
    {
      part.Effect = effect;
    }
}
希望有所帮助。