2012-02-11 58 views
1

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

但是,我然后去了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纹理,但我无法弄清楚如何让处理器使用我的更新效果而不是内置的。如果有人知道如何让处理器使用更新后的效果文件,或者让我的模型使用材质而不是纹理渲染的其他方式,我将不胜感激。

回答

0

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

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

希望帮助。