---------------------------西昌.何雨鋒 將x檔案綁在mdl手上
有乙個函式是attach,但是實際上不用這個來繫結,因為這是骨骼之間做繫結的。
這裡用的是矩陣繫結法,被繫結的物體的位置、動作、大小決定了繫結的東西的這些。
所以連大小設定都沒必要了。
***************
首先在h檔案中找到d3dvector定義的位置(實際這個結構在dx中是有的,但是由於這些結構都
比較簡單,完全沒必要再去包括d8d.h檔案),所以再參考了vb中的d3dmatrix結構後,就直接在
vector的定義附近自己寫乙個d3dmatrix結構就可以了,結構定義如下:
#ifndef d3dmatrix_defined
typedef struct d3dmatrix
d3dmatrix;
定義好以後,就可以在cpp檔案中定義matrix了。
itvmesh mesh1; //用來讀取**
d3dvector vector1; //用來得到手的位置,這個位置是用不上的,而且也是錯誤的
d3dmatrix matrix1; //用來得到手的矩陣
mesh1=scene1->createmeshbuilder("sword");
mesh1->loadxfile("..//..//..//media//sword.x",tvtrue,tvtrue);
//注意,這個x檔案必須要能在程式中正常顯示出來,而且最好是自帶紋理的。(即x檔案中已指明了紋理位置)
mesh1->setmaterial(0,-1); //這好象是預設值。
//在渲染迴圈中不斷得到actor2的某個骨骼矩陣給矩陣變數,然後把這個矩陣設給mesh.
man2->getbonematrix(man2->getboneid("bip01 r hand"),&vector1,&matrix1);
//man2是個actor2或actor.
mesh1->setmatrix(&matrix1);
mesh1->render();
********************
這樣就可以了,這個x檔案形成的mesh將隨著actor2的動作而動作,大小而大小。
以下是要點:
1、先要定義d3dmatrix;
2、怎樣得到骨骼呢?用id的話恐怕記不住,用actor2->getboneid("名稱")當然好,
但是怎麼知道骨骼的名稱呢?簡單,用milkshape3d將mdl檔案反編譯後再開啟身體的mds檔案,然後找到
骨骼的名稱就可以了,一般用手掌。
3、這裡的那個vector好象返回值是錯的,但是不用擔心,反正這裡用不著。
4、mesh1->rotatex(...),這樣的函式可以保證mesh先旋轉一定的度數再跟著matrix轉,如果用setrotate(...),那麼渲染出的mesh就會方向始終不變。
5、mesh1->moverelative(up,left,straf)是用來進行繫結位移的,即繫結後的物體會動作仍然跟隨,而位置不再固定於被綁物上面了,front代表前後,up代表上下,straf代表平移.
檢視md檔案
使用命令將md檔案轉為html,在瀏覽器中演示 通過npm安裝i5ting toc 安裝好node之後,可以直接使用npm。windows r開啟執行框,輸入cmd,開啟命令視窗。連網的情況下,輸入如下命令 npm install g i5ting toc 2.使用i5ting toc命令將md檔案...
寫了個指令碼將json換成md
用python 指令碼將protocol.json中的json按照templete.md模版生成,結果在protocol.md中 python usr bin python coding utf 8 import json import sysimport osreload sys sys.setd...
將AJAX通話延遲X秒
jquery 段將ajax呼叫延遲x秒。可用於需要通過ajax從伺服器端獲取資料之前需要採取措施的事件。更新 通過使用settimeout 函式,有一種更簡單的方法可以執行此操作 參見以下示例。請享用!var pendingcall li a click function e error funct...