終於決定,還是通過wow model viewer起手,研究一下wow的資料型別,從另乙個角度,體驗一把這
個唯一讓我充過值的遊戲。
這將是一系列隨筆,即在讀**的時候,順便記錄,以理清思路和加深映象。 其中會有很多讓人費
解的地方,如果有幸被某位兄弟看見,請勿見笑。
上次弄到nattachlookup就不行了,這次繼續弄。
最近四川**了,所以弄得比較慢。
好吧,我們接著nattachlookup說。
讀完掛接資料後,我們接著讀了堆nattachlookup個的uint16資料。這串資料最後被存了下來。在
wmv中用了乙個uint16的陣列來儲存,叫attlookup
經過多方面分析,這個attlookup正如其名字一樣,是用來查詢掛接點的。
而attlookup的值可以是以下列舉成員
enum position_slots
; 上面這個列舉成員,定義了wow中乙個帶動畫的模型可以掛接物體的位置。又可以說,是骨頭id。在
先前我們的modelattachment或者modelattachmentdef結構體中定義的id,就正好是上面的列舉值中
的乙個。
讀完掛接資訊以後,就是顏色和透明度資料了,wow的模型中,乙個模型可以持有由若干顏色和透明
度組成的序列,在每幀渲染的時候,動態插值計算出當前的值。 即可以實現顏色閃爍和透明度變化
的效果。 幽靈虎和鳳凰什麼的,就是用到了這個。
//這是顏色結構體的定義,可以看出,它定義了乙個顏色值,和乙個16位的透明度值
struct modelcolordef ;
//這是透明度結構體的定義,也是乙個16位的透明度值。
struct modeltransdef ;
這兩個定義,導致了模型透明度的重複。 而在wmv中的**,也確實是這樣寫的。先將顏色進行了
插值,而後又用透明佇列的值對顏色中的alpha通道進行修改。
讀取完了上面的資料後,接下來的,就是模型的lod資料。 lod中則包含了對應的材質資料。 在wmv
中,只讀取了lod0的模型。
讀取完lod後,wmv對模型的頂點資料建立了乙個索引。
if (nindices) {
indicetoverts = new size_t[nindices+2];
for (size_t i=0;i今天暫時寫到這裡,改天繼續。。。
posted @
2013-04-24 00:47
麒麟子(alex) 閱讀(
...)
編輯收藏
Zookeeper客戶端(二) 原生客戶端
在zookeeper客戶端 一 原生客戶端中我們主要介紹了使用zookeeper客戶端對節點的增刪改查等操作,但是別忘了還有acl許可權控制,這裡我們就再來看一看在zookeeper客戶端中,我們是如何使用acl許可權控制的。首先我們需要先連線我們的服務端,這裡和之前類似,有一點不同的是,這裡我們沒...
核心研究 Binder客戶端設計
要想使用服務端,首先要獲取服務端在binder驅動中對應的mremote變數的引用。獲得該變數的引用後,就可以呼叫該變數的transact 方法。該方法的函式原型如下 public final boolean transact int code,parcel data,parcel reply,in...
JS讀取客戶端檔案研究
都知道js沒辦法直接讀取客戶端檔案 除了特定目錄下邊的檔案外 但總是有人問,怎麼使用js去讀客戶端檔案。於是就有人出主意使用activexobject,activexobject作為ie特有的外掛程式,幾乎可以幹任何c s的事,安全性問題很嚴重,所以其他瀏覽器都不支援,說句實話,這就是乙個雞肋,現在...