3D 遊戲程式設計大師技巧系列 讀書筆記

2021-04-03 01:51:27 字數 1409 閱讀 8779

初入3d遊戲程式設計,便躍躍欲試在這裡寫點東西,一是方便自己日後查閱,二是為有需要的朋友提供一些便利.

第一章 3d遊戲程式設計入門

乙個簡化的遊戲迴圈

1)初始化,主要針對記憶體分配,資源獲取,從磁碟或者檔案中載入資料等

2)進入遊戲迴圈,這裡指的迴圈是指主遊戲迴圈,使用者在這裡一般多是執行動作,並且直到遊戲迴圈結束和退出.

3)讀取遊戲玩家輸入,處理來自鍵盤,滑鼠以及搖桿等輸入的資訊.

4)執行ai和遊戲邏輯,關注於人工智慧,物理系統和通用遊戲邏輯,並且根據結果在螢幕上繪製下一幀.

5)渲染下一幀,根據遊戲玩家輸入,以及遊戲ai和邏輯的執行結果,生成下乙個遊戲動畫幀,因為通常在offscreen buffer中進行的緣故,一般不為使用者所見.下一幀圖象被快速地複製到可視區域,產生動畫影像.在乙個3d軟體的引擎中,一般使用非常複雜的3d graphics pipelining(亦為3d圖形管線)[**於http://www.extremetech.com/article2/0,1558,9722,00.asp]來渲染生成數個多邊形.,但在基於opengl或direct3d硬體加速引擎中,大部分工作都由硬體在承擔.

6)同步顯示,很多時候,計算機的速度經常被遊戲的複雜度所降低或者提高.相應地遊戲幀頻也是這樣的.在這種情況下,一般採用定時函式或者等待函式,同步遊戲到某個最大幀頻,並且保持該幀頻.一般使用者可以接受的幀頻是30~60,超過60或者低於30都是不便於使用者接受的.

7)迴圈,主要又回到遊戲迴圈開頭,然後重新開始遊戲.

8)關閉遊戲,主要做的是清理工作,在返回作業系統之前釋放占用的所有資源,並清理系統.

個人看法,隨著遊戲的發展,我越來越覺得遊戲在填鴉一樣,因為框架是固定的,如這本書中列出來的,記得在我最初的簡易賽車遊戲中(仍為腹中胎兒)就是由幾個簡單的類組成,cgame,cdraw,cinput,以及csound.很簡易的,每個類分工很清楚,在前面的(1)中,我一般採用兩種方法來進行初始化,a)在各個類中設定建構函式,這個建構函式一般完成一些該類的成員變數的初始化工作,b)create函式主要完成一些資源載入.以及其它工作.(2)一般在主函式winmain中進行.其中主要的流程在後面的內容有詳細介紹.3)一般是由cinput控制.4)通常是由cgame完成,主要的ai以及遊戲邏輯都在這裡完成.5)應該是由cdraw來完成?8)主要是各個類中對應的析構函式完成.等,

因而你應該努力避免使用基於win32api的高階函式,而求助於更加接近低層的技術.書本中就提示了使用_a**關鍵字,其中包括所要使用的組合語言.其實在c++中也用到這中做法,用英文說linkage specification(翻譯過來就是連線說明),其中的關鍵字就是extern"c"再在大括號中加入你要使用的c函式原型,顯然c的程式設計實現效率總體上還是勝於c++的,所以,這也是乙個這個話題的應用.

參考文獻:

林麗閩,褚尚軍,標準c++程式設計教程,電子工業出版社p67-p70

《3D遊戲程式設計大師技巧》讀書筆記

轉轉悠悠,這個坑,還沒有爬出來,之前做遊戲的時候以為不需要了,現在做渲染又繞回來,從另外乙個角度說明,我面對的問題本質上是一類的。目錄看了幾遍,決定還是用 曳光彈 打法,從當前最需要的地方入手。這書翻譯的不咋滴,以後看看原版 2020年4月23日 13點04分 第7章 渲染3d線框世界 線框引擎的總...

3D遊戲程式設計大師技巧 環境搭建

剛開微博,想借助這個平台與大家交流,寫下自己的學習記錄,希望得到大家的批評指正。好了,進入主題。這段時間對遊戲程式設計很感興趣,於是在的推薦下開始學習 3d遊戲程式設計大師技巧 這本書。今天來說一下環境搭建。由於這本書還是有點年代的,而且它的 是基於作者的前一本書 windows遊戲程式設計大師技巧...

3D遊戲引擎系列一

筆者介紹 姜雪偉,it公司技術合夥人,it高階講師,csdn 社群專家,特邀編輯,暢銷書作者,國家專利發明人 已出版書籍 手把手教你 架構 3d遊戲引擎 電子工業出版社 和 unity3d 實戰核心技術詳解 電子工業出版社等。為了能讓開發者重視引擎開發,最近一直在寫一些關於學習引擎的一些博文,為此還...