学习3D游戏开发进阶之路
筆者從事IT行業15年了,一直奮斗在一線編程,從普通程序員逐步成長到上市公司技術總監,目前在創業公司擔任技術合伙人,主要負責公司整個項目團隊的技術管理。在網上或者論壇上很多同學請教過我關于如何學習3D游戲編程,大部分人都是剛踏入游戲行業的,也有從2D程序轉向3D程序的開發者。在這里我將自己的學習3D游戲開發的經驗積累分享給讀者。學習3D游戲開發我將其分為五個階段:
第一階段是學習3D相關的基礎知識,首先要學會一門編程語言,這個是必要條件,在游戲開發中使用的最多的是C++編程,3D引擎開發使用的圖形庫,一般都是OpenGL或者DirectX,其中OpenGL是可以跨平臺使用的,其應用最廣,DirectX是微軟研發的主要是面向PC端的,圖形庫的主要功能是渲染,所以大家還需要掌握一門Shader的編程語言,主要是CG和HLSL,3D編程會涉及到很多向量運算和矩陣運算,在真正學習3D游戲開發之前需要將這些熟練掌握,為你以后技術的提升打好基礎。將結構圖展示給讀者如下所示:
?
第二階段是學習3D游戲開發的基本流程,換句話說就是如果將一個3D模型渲染到屏幕上顯示出來需要經過那幾個步驟?這就是我們經常說的固定流水線和可編程流水線,其中固定流水線是最基本的,可編程流水線主要是將固定流水線中的一些運算放到了GPU中執行。固定流水線包含的知識點如下所示:
?
第三階段就是要真正涉及到游戲編程開發了,我們在這里將其分解成多個知識點,開發者要將其分開掌握。需要掌握的知識點如下圖所示:
?
第四階段告訴讀者如何自己去封裝一款弱小的引擎,筆者利用業余時間封裝過幾款3D游戲引擎,為此還寫過一本專門介紹引擎封裝的書,對于初級程序來說,掌握起來比較容易。書的名字是《手把手教你架構3D游戲引擎》。當然對于市面上比較流行的QQ靚號買賣引擎,UE4引擎,它們的知識點絕對不止這些,3D引擎的功能還是非常龐大的,引擎開發的投入也是需要一定的人力和財力。現將書中的主要的知識點給讀者展示如下所示:
第五階段主要是學習圖形學編程算法,這也是3D引擎的核心功能,其實做的事情就是把在CPU運行的程序轉到了GPU中運行,也就是通常說的可編程流水線。引擎實現的主要是針對場景的后處理渲染,需要讀者掌握的知識點如下所示:
?
最后筆者將自己獨立實現的引擎效果圖展示給讀者,該海水仿真引擎對海水的模擬接近了CG效果。如下圖所示:
實時生成水中動態效果
?
海水仿真的反射和折射效果
?
總結
以上是生活随笔為你收集整理的学习3D游戏开发进阶之路的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 游戏与算法的必经之路
- 下一篇: 再次聊聊游戏测试中的bug:bug层级划