原创 GB學習【5】--座標系和基本幾何變化

第五個例子。變換 這一張終於有點意思了。場景終於動起來了。 實例重載了UpdateFrame() 用來每幀更新。也爲我們以後的更新找到了入口。 函數簡單的對直升機模型做了一些變換。隨着時間沿着Z軸轉動 NiTransform 是用來變化的

原创 GB學習【9】--渲染流程

GB第9個例子也是最後一個基本例子。 講了GB的frame render system 和renderTexture 通過重載createframe來加入自己需要的渲染。 m_spScene->GetObjectByName("Displ

原创 GameBryo 碰撞系統[1]

越來越感覺一個引擎真不是一個人應付的了的。但是現在的情況只能先應着頭皮去弄。 看了GB的靜態碰碰撞這個例子。看得頭都大了。引申出來的東西太多了。從GB本身的概念。再到GB和maya.max等的結合。現在依然還是沒全通。但是先記錄着吧。不然

原创 gamebryo--NiStream和NiMesh和NiMeshModifier的關係

GB裏面的自定義幾何體幾乎都是用NiMesh。要添加程序方式的數據的時候需要用到。 比如編輯器的刷水。就需要程序動態產生。 首先定義Mesh的圖元方式 NiMesh* pkMesh = NiNew NiMesh(); pkMesh->Se

原创 gamebryo的Badsushi例子學習

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

原创 GB學習【7】--鼠標鍵盤

第7個例子講了一下怎麼使用鍵盤和鼠標 例子很簡單在上一個基礎上加入和一些鍵盤控制。   NiInputKeyboard* pkKeyboard = m_pkGameApp->GetInputSystem()->GetKeyboard()

原创 GB後臺加載

看GB的demo了。前段時間懷疑的事情還好只是懷疑。我可以繼續GB了。 GB的NiStream::BackgroundLoadBegin提供後臺加載功能。基本上都可以用這個來實現。自己重載已經提供的一些虛函數就好。 每幀簡單的調用  Ni

原创 GB學習【8】--屏幕元素和紋理基礎

第八個例子。 講了如何在屏幕上貼圖。以及GB的紋理類。例子基本和以前的例子沒啥區別。 首先通過NiSourceTexture來加載磁盤文件。 然後通過ConvertFromNDCToPixels計算了長寬。目的是爲了讓圖片能以原來的尺寸展

原创 sm2.0和sm3.0的差異

我們先來看看下面的表格,從中可以清楚的瞭解到Shader Model 3.0所具備的新功能。 Pixel Shader功能 Shader 2.0 Shader 3.0 描述 Shader長度 96 655

原创 GB學習【4】--場景管理--節點方式

教程的第四個例子。講述了怎麼把一個模型掛到場景上。 個人覺得GB這種全部資源都叫nif非常噁心。不區分後綴不區分資源類型,都按照他的那個讀取流程。 比如我的某個資源就是不想要header不想弄那麼多對象是啥。node是啥的還不能直接用他的

原创 gamebryo--Instance

今天看了GB的instance。看文檔貌似支持cpu和gpu的instance但是很奇怪的是他的例子卻沒有例舉那麼多。 Meshinstacing是用了cpu來做動畫。gpu來instace.其實這個我一直沒完全搞明白。特別是floodg

原创 gamebryo--如何應用shader

gamebryo的shader幾乎支持所有已知類型。前面一篇已經說過了。這裏說下他的流程: 首先對於一種shader方式要先 new 一個NiDefaultClickRenderStep可以設置爲不激活NiDefaultClickRend

原创 Gamebryo 一句話技巧

遍歷所有節點做一件事情可以: NiTNodeTraversal 有三個函數。可以根據具體的函數來做一些事情。需要自己實現一個函數去做事情。 函數類似如下 struct RemoveAlphaBlending{    void operat

原创 gamebryo--NiMetrics性能剖析

Gamebryo提供一個叫NiMetrics的東西來幫助剖析性能。 可以保存爲xml格式以後查看。也可以顯示爲先線段波形式運行時查看。 一開始我還以爲是n卡那個perfHud.原來是他自己的。他還真有閒心啊。 應用程序的app自己實現Cr

原创 GameBryo NiNode層次

覺得有必要弄清楚NiNode的層次 1. NiMemObject  不用說。所有需要讓GB內存管理的都集成自這個           |     NiRefObject    引用計數的封裝。繼承這個的可以使用智能指針。 NiPointe