2012-08-03 11 views
0

如何在模型的不同部分保留不同材質的屬性的同時,如何應用各種不同的效果?在保留模型材質外觀的同時在XNA模型上應用多種效果

我在xna中使用了Model類,並在blender中創建了模型(使用.fbx文件格式)。據我所知,通過xna內容管道加載模型存儲有關不同材質在各種BasicEffect實例中的信息(例如鏡面光度和漫反射顏色)。我想要做的是將各種不同的自定義效果應用於模型(包括我的世界中的所有點光源),同時仍然使模型的光面部分保持其光澤外觀(作爲示例)。我的想法是從不重映射模型,而是保持BasicEffect實例作爲某些材質外觀的參考。在這種情況下,我需要在應用正確的效果後手動繪製每個ModelMeshPart。我是否正確地思考將很多全局效果應用到我的模型中?在.fbx文件中訪問材料信息可能有更好的方法嗎?我應該用一種效果重新映射我的模型,所有我需要的技術都可以塞進它?

回答

0

在繪製循環中,您將已經遍歷網格併爲每個網格部件調用單獨的繪製。因此,在該循環中,不是使用附加到模型的效果,而是將設置(從模型或其他模型)置於自己的效果上,應用它並使用它來繪製網格。

XNA開發人員已經注意到內容導入器和Model類必須專門用於使初級程序員繪製模型變得簡單。不幸的是,這使得它們不適合你想要實現的技術。如果您想要進行更高級的繪製,您可能需要擴展Model類,並將基底用作幾何/紋理存儲介質。