你們好,本文介紹了開發3D引擎須要的預備知識,給出了相關的資源。html
目前Web 3D是基於WebGL這個Web端3D API的,它的版本歷史爲:程序員
(圖來自於WebGPU 開發狀態與計劃)github
(注:OpenGL是桌面端的3D API,OpenGL ES是移動端的3D API)web
OpenGL ES 2.0引入了可編程着色器,增長了頂點着色器和片斷着色器。編程
WebGL 1.0的發佈和各大瀏覽器的支持,意味着Web 3D時代的來臨。隨後各類Web 3D開源引擎(如three.js、babylon.js等)以及Web 3D商業化方案(如playcanvas)陸續出現,使得Web 3D應用開發變得愈來愈簡單。canvas
移動端3D API繼續加強,升級內容如上圖(「WebGL版本演示」)所示。瀏覽器
WebGL 2.0徹底兼容WebGL 1.0,進行了不少加強:如支持3D紋理、UBO等less
Apple不支持WebGL 2.0的,可是根據知乎上的「狄學長」的回答,谷歌正在提供協助,使得蘋果手機的ios系統在不久後支持它:
Google Chrome team 正在幫Apple的Safari 把ANGLE接入到Webkit
這樣最後的ios上就能支持WebGL2了。預計是2020年末。
WebGL 2.0相關學習資料
WebGL2有什麼新內容
最值得期待的WebGL 2.0功能
WebGL 2.0 for SIGGRAPH Asia 2015
WebGPU是最新的Web 3D API,是WebGL的升級版。
瀏覽器封裝了現代圖形API(Dx十二、Vulkan、Metal),提供給Web 3D程序員WebGPU API。
(圖來自於WebGPU 開發狀態與計劃)
(圖來自於WebGPU 開發狀態與計劃)
WebGPU相關學習資料
WebGPU學習系列目錄
該系列是我寫的WebGPU實戰教程,若是讀者想從0學習WebGPU,瞭解現代圖形API的技術要點,歡迎讀者閱讀它~
本系列使用WebGL 1.0構建3D引擎,所以在本節會介紹相關的學習資源。
《WebGL編程指南》
很是易懂的實戰類書籍,提供了不少具體的Demo,讓讀者能零基礎學習和應用WebGL。
建議讀者先閱讀該書。
進入網站下載代碼:
網站
3D模型的座標須要在多個座標系中進行變換(經過乘以對應的矩陣進行變換),相關資料可參考:
OpenGL座標變換及其數學原理,兩種攝像機交互模型(附源程序) -> 圖形學中的變換模型以及OpenGL的實現
[OpenGL ES 03]3D變換:模型,視圖,投影與Viewport
齊次座標系入門級思考
《3D數學基礎:圖形與遊戲開發》
本書講解矩陣、四元數等跟引擎開發很是相關的數學知識。
建議讀者先大概瀏覽一遍,有一個印象,而後在本系列後面開發引擎的過程當中,遇到問題再查詢該書的對應章節。
在每一幀,GPU會處理從CPU端傳來的3D數據,通過渲染管線的處理,最終繪製到屏幕上。
渲染管線會執行多個着色器,經歷多個處理階段。
能夠經過相關資料進行了解:
《OpenGL超級寶典》
本書詳細介紹了OpenGL 2.0的渲染流水線的各個階段(如深度測試等),通俗易懂,適合入門。
雖然本書介紹OpenGL 2.0,但由於WebGL 1對應OpenGL 2.0,因此本書的知識點也能夠套用在WebGL 1中。
下載pdf-百度網盤連接 提取碼: c212