2012-02-11 48 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; 
    } 
} 

希望幫助。