2013-12-15 72 views
1

因此,我使我所有的模型都是Blender,然後使用文件 - >導出將其導出爲.fbx格式,然後檢查XNA嚴格選項。除了當我將模型放在XNA中時,它的工作原理非常棒,它沿着上下軸延伸,並且總是具有相同的比例。無論我在Blender中調整多少,它在遊戲中的大小始終相同。有任何想法嗎?另外,我不確定這是否相關,但如果我有一個包含多個部分的模型,它將只顯示其中的一部分。任何幫助表示讚賞!XNA 3D攪拌機模型不保持規模

回答

1

我比3ds max更熟悉攪拌機,但是如果這種情況發生在max中,我會知道發生了什麼,所以我會說Blender以相似的方式工作。

當您修改3D建模應用程序中的某些內容(如縮放特定軸上的模型)時,它實際上不會像您想象的那樣更改頂點的位置。它只創建一個變換矩陣,可以在渲染時應用到原始頂點位置,使其看起來像您期望的那樣。 因此,當您將模型導入到Xna中時,您將導入帶有未縮放頂點位置的模型以及它按照您預期的方式渲染模型所需的所有變換矩陣。但是你必須在你的Xna代碼中應用這些轉換,否則模型將不會像你在建模應用中那樣出現。 (您遇到的問題)

您應用轉換的方式是通過調用Xna Model.CopyAbsoluteBoneTransformsTo(Matrix[])。確保你不要撥打Model.CopyBoneTransformsTo(Matrix[]),你需要一個單詞'絕對'在其中。

這裏是一個教程,顯示如何實現一個方法:http://msdn.microsoft.com/en-us/library/bb203933(v=xnagamestudio.40).aspx

+0

很抱歉打擾你,但我想,它給了我一個小麻煩。球體在它的側面,並且視圖全都搞砸了。如果你可以看看我有的代碼,看看我有沒有什麼可能會有所作爲,那太棒了!非常感謝!鏈接是:https://www.dropbox.com/s/8lzynqtfs9x7ksw/3d%20test.txt – SupremeSteak1

+0

您正在渲染2d項目(通過spritebatch)和3D項目(模型)。調用spritebatch會影響在3d渲染正常工作之前必須正確重置的渲染測試。看到這個鏈接:http://blogs.msdn.com/b/shawnhar/archive/2010/06/18/spritebatch-and-renderstates-in-xna-game-studio-4-0.aspx –

+0

非常感謝!我一直試圖讓它工作一段時間,而且我不認爲我會找到。 – SupremeSteak1