今天第一次試了試newton的物理引擎,在directx環(huán)境下寫(xiě)了寫(xiě),竟然一次成功,沒(méi)想到這么容易就上手了
還以為萬(wàn)事開(kāi)頭難,但有時(shí)還并非如此
物理引擎和渲染是沒(méi)有直接關(guān)系的,但考慮到跨平臺(tái),幾乎所有的物理引擎都選擇在GL環(huán)境下編寫(xiě)
我擔(dān)心沒(méi)學(xué)過(guò)GL,學(xué)引物理擎會(huì)產(chǎn)生很大的障礙,對(duì)此望而生畏
然后昨天在newton論壇上發(fā)貼求助,一個(gè)老外很熱心跟我說(shuō),你不用去看gl的任何代碼,只要和newton sdk有關(guān)的代碼你才去看。
果然如此,第一個(gè)例子關(guān)鍵的部分看了5分鐘,基本上思路就很清楚了。
接下來(lái),把sdk里面的某些部分給摳出來(lái),想不到出奇般的順利,
方法是除去和gl相關(guān)的一系列代碼
把他的toolbox下的一系列和dVector dMatrix等等代碼搬過(guò)來(lái),有兩個(gè)和gl有關(guān)的類(lèi)直接刪掉了,
然后把D:\Program Files\NewtonSDK\sdk\dll 下的lib 導(dǎo)入,dll拷貝到編譯后的exe目錄下,另外一個(gè)newton.h也拷貝到toolbox下面去。
呵呵經(jīng)過(guò)一系列配置,環(huán)境搭建起來(lái)了,試試一個(gè)函數(shù)看看
NewtonWorld nWorld = NewtonCreate (NULL, NULL);
編譯竟然沒(méi)出錯(cuò),一次成功,信心大增
然后按照sdk里面第一個(gè)例子的思路迅速寫(xiě)完第一個(gè)demo
當(dāng)然其中涉及到D3DXMATRIX和dMatrix的轉(zhuǎn)換,其實(shí)兩個(gè)結(jié)構(gòu)完全一致的,很容易理解。
然后運(yùn)行,也是一次成功,模仿第一個(gè)例子,我在空間放了一個(gè)按一定角速度旋轉(zhuǎn)的方塊。
所有的工作都是一次成功,真有點(diǎn)不感相信自己的眼睛。
看來(lái)之前的確是太浮躁了,如果真能靜下心來(lái),其實(shí)很多事情并沒(méi)想象中那么復(fù)雜的。
最后還是非常感謝那個(gè)老外給我的這點(diǎn)提示,短短幾句話(huà)卻給了我一條光明大道。
接下來(lái)的很多例子也許會(huì)碰到更多的問(wèn)題,但最起碼我有了可用的環(huán)境,更加有了信心
posted on 2008-05-30 11:29 李侃 閱讀(4683) 評(píng)論(11) 編輯 收藏 引用 所屬分類(lèi): 物理引擎