• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Heath's Blog

            There is no end, it is just the beginning! - A Game Developer's Notes

            寫著玩(2)——WoW角色資源讀取

                早在一年前就計劃把wow的資源利用起來,在業余時間可以自己做些東西。雖然去年5月份就把mpq庫放到MyEngine中了,但一直抽不出整塊時間安心寫代碼,總是在遺忘和重拾之間緩慢前行。年后,越發感覺手上的工作吊不起胃口,便決定擠時間盡快搞定它。

                wow的資源文件關系比較復雜,一個靜態模型至少會涉及三類文件.m2、.skin及.blp,如果不可換膚,texture會在.m2中直接給出blp文件名,否則需要查找對應的XXXDisplayInfo.dbc。對于帶動畫的模型,除了上面提到的三類文件,可能還會涉及到.anim。wow中的動畫大致有下面幾種:骨骼、材質(紋理、顏色、透明)、粒子、條帶、攝像機、光照。為了骨骼數據的復用,wow將可由一個以上模型共用的骨骼數據放到.anim文件中,而模型特有動畫則會直接放在.m2中。動畫的ID與名字等信息放在AnimationData.dbc中。

                wow資源所使用的坐標系與D3D有區別,旋轉角度的定義也與D3D相反,三維、四維向量的轉換代碼如下:

             

            Vector3 Conv2D3DCoordSystem(const Vector3& v)
            {
            	return Vector3(v._x, v._z, v._y);
            }
            
            typedef Vector4 Quaternion;
            
            Quaternion Conv2D3DCoordSystemQuat(const Quaternion& v)
            {
            	return Quaternion(-v._x, -v._z, -v._y, -v._w);
            }

             

             

             

             

             

             

             

             

                對于texture,根據壓縮和非壓縮來處理,如果為壓縮格式(D3DFMT_DXT1、3、5),則先創建對應壓縮格式的Texture,然后直接memory copy LockRect出來的空間;如果為非壓縮格式,則先將texture數據寫到內存,然后簡單調用D3DXCreateTextureFromFileInMemoryEx創建格式為D3DFMT_A8B8G8R8的紋理。

                下圖為整個框架設計的簡易類圖(目前還不是很合理)

            System

            上兩張截圖:

             MyEnine_1

             MyEnine_2

            P.S. 貼圖沒做融合、光照還未處理 :P

             

            參考:

            [1] wowmodelview, www.wowmodelviewer.org

            [2] Game Engine Architecture, Jason Gregory, A K Peters, 2009.7

            posted on 2010-04-24 12:31 Heath 閱讀(2357) 評論(2)  編輯 收藏 引用 所屬分類: Game Development

            Feedback

            # re: 寫著玩(2)&mdash;&mdash;WoW角色資源讀取 2010-04-24 14:43 小時候可靚了

            我也想拿點WOW資源來用,可無從下手,連個資源提取器都下載不到!  回復  更多評論   

            # re: 寫著玩(2)&mdash;&mdash;WoW角色資源讀取 2010-05-19 22:14 dtzleg

            一般搞wow的都會從wowmodelviewer開始  回復  更多評論   

            久久亚洲美女精品国产精品| 久久亚洲精品无码播放| 伊人久久大香线焦AV综合影院| 少妇久久久久久久久久| 青青热久久综合网伊人| 尹人香蕉久久99天天拍| 韩国免费A级毛片久久| 精品久久久久中文字| 人妻精品久久久久中文字幕69| 国产精品亚洲综合专区片高清久久久| 亚洲午夜精品久久久久久app| 久久久精品人妻一区二区三区四 | 久久精品国产一区二区三区不卡 | 久久精品国产免费观看 | 国产精品一区二区久久不卡| 久久久精品久久久久久| 国产一区二区精品久久| 久久久久久精品久久久久| 手机看片久久高清国产日韩 | 色综合久久中文色婷婷| 国产精品无码久久综合 | 伊人久久一区二区三区无码| 国产精品久久永久免费| 伊人久久大香线蕉av不卡| 久久中文字幕精品| 日韩亚洲国产综合久久久| 国内精品久久久久久久涩爱 | 欧美性猛交xxxx免费看久久久| 99久久亚洲综合精品成人| 久久er国产精品免费观看2| 久久人爽人人爽人人片AV | 香蕉久久一区二区不卡无毒影院| 蜜臀久久99精品久久久久久小说| 亚洲精品无码专区久久久| 亚洲精品国精品久久99热一| 亚洲AV日韩精品久久久久| 久久人与动人物a级毛片| 伊人久久大香线蕉av不变影院| 久久精品人人做人人爽电影 | 亚洲AV无码一区东京热久久 | 亚洲国产成人乱码精品女人久久久不卡|