1. 緒論
最近研究WebGL,看了《WebGL編程指南》這本書,結合自己的專業知識寫的一系列教程。之前在看OpenGL/WebGL的時候總是感覺OpenGL/WebGL看的時候懂,實際用起來卻挺難,感覺中間總是隔着很多東西。現在一路邊學邊寫,才明白這中間缺少的其實就是總結,是實踐;把這個過程寫出來,既是幫助他人,也是幫助自己。
現在這一系列文章也寫了不少了,就寫個目錄匯總一下,方便查閱,以后增添了新的文章也會隨之更新。這一系列教程由淺入深,知識也是循序漸進的,前后關聯。實例也逐漸復雜,最終完成一個地形渲染的實例:


2. 目錄
1.WebGL簡易教程(一):第一個簡單示例
概述了這篇教程的目的,編寫了WebGL的第一個示例。
2.WebGL簡易教程(二):向着色器傳輸數據
改進了繪制一個點的實例,講述了WebGL中向着色器(shader)傳輸數據的問題。
3.WebGL簡易教程(三):繪制一個三角形(緩沖區對象)
通過一個繪制三角形的具體實例,詳解了WebGL中緩沖區對象(buffer object)的使用。
4.WebGL簡易教程(四):顏色
通過繪制彩色三角形的示例,介紹了varying變量,頂點着色器與片元着色器之間數據傳輸的過程:頂點裝配與光柵化。
5.WebGL簡易教程(五):圖形變換(模型、視圖、投影變換)
詳細講解了OpenGL\WebGL關於繪制場景的圖形變換過程,並推導了其圖形變換矩陣。主要包括模型變換、視圖變換以及投影變換。
6.WebGL簡易教程(六):第一個三維示例(使用模型視圖投影變換)
通過使用模型視圖投影變換,完成第一個真正三維場景的示例:顯示一組由遠及近的三角形。
7.WebGL簡易教程(七):繪制一個矩形體
通過一個繪制矩形包圍盒的實例,進一步理解了模型視圖投影變換。
8.WebGL簡易教程(八):三維場景交互
基於之前教程的知識,實現了一個三維場景的瀏覽實例:通過鼠標實現場景的旋轉和縮放。
9.WebGL簡易教程(九):綜合實例:地形的繪制
綜合WebGL的知識,實現了繪制一張地形圖的實例。
10.WebGL簡易教程(十):光照
講述了WebGL光照生成的原理,並作出了實際案例。
11.WebGL簡易教程(十一):紋理
WebGL中使用紋理的實例:給地形貼上一張真實的紋理。
12.WebGL簡易教程(十二):包圍球與投影
通過包圍球來設置模型視圖投影變換,顯示合適的渲染位置。
13.WebGL簡易教程(十三):幀緩存對象(離屏渲染)
詳細論述了WebGL中幀緩沖區技術的實現。
14.WebGL簡易教程(十四):陰影
詳述了WebGL中生成陰影的ShadowMap算法。
15.WebGL簡易教程(十五):加載gltf模型
詳述了通過WebGL讀取、解析並顯示glTF格式數據的過程。
3. 資源
其代碼已經上傳到GitHub:地址。個人見解難免有所疏漏,歡迎大家來互相交流。