gamebryo的Badsushi例子學習

2021-05-22 09:14:29 字數 1078 閱讀 1751

估計是我看的順序不對還是咋的。這個例子實在是包含太多了。搞得我研究了半天。但是發現太多以至於要是把全部弄清楚細節。那可以等到來年花開時。。。所以大概研究了一下他這個例子的框架和想要表達的主要東西。

例子根據使用者指定來產生很多魚。所有魚按照異性的曲線游動。螢幕正中心有乙個nimeshscreenelements用來pick這些魚。

主要用到的幾個技術:

1.螢幕到世界的射線拾取。

2.動畫。沒看是頂點變換動畫。還是骨骼動作。以後專門在專門寫一篇吧。

3.紋理效果。環境貼圖。就是簡單的環境映**。

4.那麼多的魚居然不是instance。gb還真牛。這一切都是nifloodgate這個東西的效果。具體沒研究。一樣專門寫一篇吧。

這裡說一下這4點的相關gb類和介面呼叫流程吧。

1.nipick

可以看出有很豐富的屬性來pick.基本都是字面意思沒啥需要在解釋了。

通過nicamera::windowpointtoray()可以換算出螢幕到的射線

nipick::settarget 來設定pick檢查的範圍。為這個節點開始找

nipick::pickobjects 就是查詢剛才設定的目標是否被點到了

可以通過設定自己的pick策略來自己實現拾取pickobjectpolicy

可以用nipick::getresults來得到所有拾取結果。感覺pick設定的還行差不多也夠用了.

1.動畫.這裡所講述動畫只包括這個例子所表達的。不代表整個gb.

gb的動畫儲存在.kfm檔案裡面。看見寫貌似是關鍵幀模型的意思。

他讀取動畫使用niactormanager::create

得到乙個niactormanager他就是動畫管理器。

niactormanager::settargetanimation用來設定當前使用啥動作。

3.紋理特效這個例子展示了環境貼圖

nitextureeffect::settexturetype 設定紋理使用啥技術

nitextureeffect::settexturecoordgen 設定使用什麼紋理座標方式。(以後詳細研究)

4. 很牛的nifloodgate......下回分解

Gamebryo 引擎的RITI機制

一 什麼是riti 通過執行時型別識別 rtti run time type identification 程式能夠使用基類的指標或引用來檢查這些指標或引用所指的物件的實際派生型別,在c 中,riti最大的用處是通過虛函式來實現多型。不過有些時候我們必須在執行時期確切的知道基類指標實際所指的型別,而...

gamebryo 空間扭曲效果

看了一下 金屬戰爭這個demo.裡面有好多的特殊效果啊。甚至貌似還用到了ds。很牛叉。看了一天也沒看完乙個demo.只能說這個demo實在是太多東西了。集中火力看了一下他的扭曲怎麼實現的。所有帶有扭曲的物體有個標識。用的標識的物體會被渲染到乙個 shimmer buffer 這個buffer和螢幕一...

用了一段時間Gamebryo了

用了一段時間gamebryo了 做了2個月的demo,由於一些不可抗拒的因素,demo被迫喊停,我和另外乙個同事被調到了專案組,做了2個月的東西完全被否決掉,心頭總是有些失落的。最近在反思的同時也想把使用gamebryo的感受記錄下來。首先說明,在3d方面我就是一打醬油的,也就知道那麼點基礎概念,所...