Max匯出外掛程式

2022-06-23 07:18:08 字數 991 閱讀 8766

編寫max匯出外掛程式目前有兩種選擇,一種是使用max指令碼,另一種就是使用max sdk了。

使用max sdk又分為使用max標準api和igame介面。

我使用igame介面編寫max匯出外掛程式。

igame介面就是在max標準api的基礎上有針對性地對遊戲匯出進行了封裝,將通常繁瑣的操作呼叫簡化成乙個函式,與此同時還可以通過igame介面獲得標準api的資料結構從而使用標準api進行一些複雜的操作。

要想編寫max匯出外掛程式首先需要對max內部對資料的組織形式有乙個大致的了解。

max的資料不論是材質還是骨骼還是網格都是使用樹結構儲存,每個資料都在相應的節點上,通過便利節點,獲得節點型別並作相應的轉換便可那到相應的資料,從而進一步匯出。

這裡需要注意的是,針對遊戲常用的匯出(材質,動畫,網格)是這樣的。材質使用一顆獨立的樹,並且每個材質都有子材質,匯出時需要注意。骨骼和網格都儲存在場景樹下,並通過標示來區分該節點是網格節點還是骨骼節點(或其他節點,遊戲一般只關注網格和骨骼),網格節點轉換為網格型別,並呼叫pmesh->setcreateoptimizednormallist(); pmesh->initializedata();函式,這樣光滑組才能夠生效。骨骼節點那就是拿出該節點的變換矩陣就行了,這既是骨骼動畫的矩陣,同時需要注意的是setstaticframe(),函式之影響骨骼變換矩陣,也就是說要想到處骨骼動畫需要呼叫該函式來設定動畫貞,這樣得到的骨骼變換矩陣才是當貞的。

這裡說一下.x檔案和ogre的.xml各式的區別

.x檔案可以指定到每個三角形使用的材質,因此它能夠看到網格(或者子網格)使用不同的材質,表現上比較靈活,但是這樣帶來的後果是dp會比較高,因為網格內由於三角面使用的材質不同,而無法一次渲染,也就是說它的渲染單位是三角面而不是網格。

在有就是.x檔案對於手字母不能是數字,各種名稱不能出現中文等比較敏感,搞不好會無法顯示(ms的mview.exe).

ogre則是必須要子網格內所有三角形只能使用同乙個材質,因此對美術製作有一定要求,但它能夠保證乙個子網格在乙個dp就畫出,效率較高。

MAX匯入匯出外掛程式略

下午的時候假裝很無聊,於是就無聊到去寫當時說的匯入外掛程式。用嚮導生成匯入外掛程式的 雛形,鑑於嚮導生成 的冗餘,便對 進行精簡。首先嚮導生成的 都不能直接執行,通常的錯誤表現為 1 巨集定義重複使用了相同的數值 2 類描述中的create方法應修改為 3 類描述中的createmanipulato...

M2及WMO匯入外掛程式 Max8

m2模型匯入目前還不支援骨架動畫的正確匯入,匯入骨骼的旋轉關鍵楨資料後會使模型變形,另外骨骼動畫也未與蒙皮聯絡上。wmo檔案只載入了該場景的幾何資料和 portal 面,portal 載入到max 中表示為乙個平面。燈光,其他模型物件擺放資料和霧等未匯入。由於blizzard 使用的貼 件格式為 b...

葡萄外掛程式 整理2 資料匯出

page title language c masterpagefile wijmo.master autoeventwireup true codebehind exportingexcel.aspx.cs inherits controlexplorer.c1gridview.exporting...