從0開發3D引擎(二):準備預備知識

你們好,本文介紹了開發3D引擎須要的預備知識,給出了相關的資源。html

上一篇博文

從0開發3D引擎(一):開篇ios

下一篇博文

從0開發3D引擎(三):搭建開發環境git

瞭解Web 3D

Web 3D的歷史-WebGL

目前Web 3D是基於WebGL這個Web端3D API的,它的版本歷史爲:程序員

截屏2020-01-06下午2.16.13.png-302.7kB
(圖來自於WebGPU 開發狀態與計劃github

(注:OpenGL是桌面端的3D API,OpenGL ES是移動端的3D API)web

  • 2007年,發佈OpenGL ES 2.0

OpenGL ES 2.0引入了可編程着色器,增長了頂點着色器和片斷着色器。編程

  • 2011年,基於OpenGL ES 2.0,發佈WebGL 1.0

WebGL 1.0的發佈和各大瀏覽器的支持,意味着Web 3D時代的來臨。隨後各類Web 3D開源引擎(如three.js、babylon.js等)以及Web 3D商業化方案(如playcanvas)陸續出現,使得Web 3D應用開發變得愈來愈簡單。canvas

  • 2012年,發佈了OpenGL ES 3.0;2014年和2015年分別發佈了OpenGL ES 3.1和3.2

移動端3D API繼續加強,升級內容如上圖(「WebGL版本演示」)所示。瀏覽器

  • 2017年,基於OpenGL ES 3.0,發佈了WebGL 2.0

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

Web 3D的將來-WebGPU

  • 將來,基於DirectX十二、Vulkan和Metal,將會發布WebGPU

WebGPU是最新的Web 3D API,是WebGL的升級版。
瀏覽器封裝了現代圖形API(Dx十二、Vulkan、Metal),提供給Web 3D程序員WebGPU API。

截屏2019-12-24下午4.44.33.png-119.7kB
(圖來自於WebGPU 開發狀態與計劃

截屏2019-12-24下午4.42.45.png-108.5kB
(圖來自於WebGPU 開發狀態與計劃

WebGPU相關學習資料
WebGPU學習系列目錄
該系列是我寫的WebGPU實戰教程,若是讀者想從0學習WebGPU,瞭解現代圖形API的技術要點,歡迎讀者閱讀它~

瞭解WebGL 1.0的基礎知識

本系列使用WebGL 1.0構建3D引擎,所以在本節會介紹相關的學習資源。

入門學習

《WebGL編程指南》

很是易懂的實戰類書籍,提供了不少具體的Demo,讓讀者能零基礎學習和應用WebGL。
建議讀者先閱讀該書

豆瓣書評

下載地址

進入網站下載代碼:
網站

座標系變換

3D模型的座標須要在多個座標系中進行變換(經過乘以對應的矩陣進行變換),相關資料可參考:
OpenGL座標變換及其數學原理,兩種攝像機交互模型(附源程序) -> 圖形學中的變換模型以及OpenGL的實現
[OpenGL ES 03]3D變換:模型,視圖,投影與Viewport
齊次座標系入門級思考

3D數學

《3D數學基礎:圖形與遊戲開發》

本書講解矩陣、四元數等跟引擎開發很是相關的數學知識。

建議讀者先大概瀏覽一遍,有一個印象,而後在本系列後面開發引擎的過程當中,遇到問題再查詢該書的對應章節。

豆瓣書評

下載地址

渲染管線

在每一幀,GPU會處理從CPU端傳來的3D數據,通過渲染管線的處理,最終繪製到屏幕上。

渲染管線會執行多個着色器,經歷多個處理階段。

能夠經過相關資料進行了解:

本書詳細介紹了OpenGL 2.0的渲染流水線的各個階段(如深度測試等),通俗易懂,適合入門。

雖然本書介紹OpenGL 2.0,但由於WebGL 1對應OpenGL 2.0,因此本書的知識點也能夠套用在WebGL 1中。

豆瓣書評

下載pdf-百度網盤連接 提取碼: c212

相關文章
相關標籤/搜索