SkinnedModelProcessor和带有材质的模型

本文关键字:模型 SkinnedModelProcessor | 更新日期: 2023-09-27 18:24:20

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

然而,我随后在http://create.msdn.com/en-US/education/catalog/sample/skinned_model现在,我的模型要么透明地渲染,要么根本不渲染。

在研究了这个问题之后,我在上找到了StockEffects教程http://create.msdn.com/en-US/education/catalog/sample/stock_effects并使用它来查看skinned效果是如何渲染像素的。我更改了像素着色器(在所有适用的地方),以便:

float color4 = pin.Diffuse;

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

SkinnedModelProcessor和带有材质的模型

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

public void SetModelEffect(Effect effect)
{
  foreach (ModelMesh mesh in model.Meshes)
    foreach (ModelMeshPart part in mesh.MeshParts)
    {
      part.Effect = effect;
    }
}

希望能有所帮助。