在XNA中使用panda外掛程式匯出的 X檔案注意事項

2021-05-07 13:47:24 字數 1437 閱讀 5411

引起這些問題的原因很多,先說說座標系,xna採用右手座標系,3dsmax也採用右手座標系,這是一樣的,但是不要忘了,當我們使用dxsdk自帶的模型檢視器觀察模型的時候,d3d用的可是左手座標系,而panda作為.x檔案匯出器,自然對d3d的座標系格外照顧,這樣看起來問題有一些複雜,好在我們不需要糾纏這些,只要對上述座標系有個數就可以了。

因為xna和3dsmax的座標系相同,都是右手座標系,這樣就好辦了。不過要是你認為只需要把座標系一一對應再匯出就可以了,那你就錯了,仔細看看3dsmax的座標系,你會發現他的z是朝上的,美工建模時採用的都是這種座標系,也就是說和我們平時常用的以y為上向量不符,暈了吧,不要著急,下面就將關鍵的,嘿嘿。

1.通過alt加滑鼠拖動3dsmax世界系,使得x軸指向左邊,y正對著你,z朝上。

上圖中左下角就是3dsmax世界座標系,中間有個模型,這個模型的紅綠藍三軸分別對應了xna中的世界x,y,z軸,即這個模型匯出後載入到xna顯示的就是xna的世界座標系。明白了吧,這樣我們只要讓美工按照這個3dsmax座標系建模就可以了,下面說panda匯出引數的設定。

2.主要修改兩處

a)確認3ds max objects頁中的use local object space沒有被鉤選

b)確認x file settings頁中的left handed axis被鉤選

經過這樣的處理就大功告成了,你可能會迷惑,命名xna是右手座標系,為什麼要選擇左手座標系匯出呢?其實道理很簡單,為了相容性,.x不是微軟為了xna而設計的,他出現的比xna早的多,都可以當xna的爺爺了,.x本來是針對d3d開發的,而d3d預設的是左手座標系,因此.x檔案也採用左手座標系,這時你可能又要問,那為什麼左手座標系匯出的.x檔案可以在xna正確使用呢,解鈴還需繫鈴人,答案在微軟的素材匯入器中,xna預設提供的.x匯入器會在那個階段自動把左手座標系轉換成xna支援的右手座標系,這樣不就皆大歡喜了,^_^。開啟微軟自帶的.x模型瀏覽器,看起來應該是這樣的:

把模型加入到xna中去看看吧,你會有新的收穫。

在ATS外掛程式中使用互斥鎖

有時候因為業務需要,對某些非執行緒函式,比如mktime,需要使用互斥鎖,可以參照example blacklist 1或者channel stats裡面的用法 首先外掛程式頂部宣告 static tsmutex sites mutex 在tsplugininit 中初始化 sites mutex ...

thinkphp中使用PHPEXCEL匯入資料

匯入方法比較簡單 但必須考慮到excel本身單元格格式問題 例如以0開頭的字串讀出來被去掉了前導0 成為float型而丟失一位 必須進行處理 author lizhaoyao add time 2015 08 26 php excel import 使用者匯入excel param type fil...

react中使用swiper外掛程式

最近在寫react的demo,遇到了需要滑動的功能,引入了swiper,但是在引入的時候一直報錯 安裝的時候是這樣的 npm install swiper網上查的是這樣引入的 import swiper from swiper dist js swiper.js import swiper dist...