《WebGL程式設計指南》學習筆記——1.WebGL概述
《WebGL程式設計指南》學習筆記——1.WebGL概述
此係列用來記錄我學習《WebGL程式設計指南》這本書後的心得,重點內容和總結
WebGL概述
WebGL,是一項用來在網頁上繪製和渲染複雜三維圖形(3D圖形),並允許使用者與之互動的技術。隨著個人計算機和瀏覽器的效能越來越強,我們能夠在Web上建立越來越精美、越來越複雜的3D圖形。http://webglsamples.org/ 這個網址展示了Google釋出的一些示例WebGL程式,在驚歎美輪美奐的效果的同時,我們發現釋出和執行也變得非常簡單。
從傳統意義上來說,為了顯示三維圖形,開發者需要使用C或C++語言,輔以專門的計算機圖形庫,如OpenGL或Direct3D,來開發一個獨立的應用程式。現在有了WebGL,我們只需要向已經熟悉的HTML和JS中新增一些額外的三維圖形學的程式碼,就可以在網頁上顯示三維圖形了。
WebGL是內嵌在瀏覽器中的,你不必安裝外掛和庫就可以直接使用它。而且,因為它是基於瀏覽器的,你可以在多種平臺上執行WebGL程式,而且使用起來有諸多便利點:
- 你只需要一個文字編輯器和一個瀏覽器,就可以開始編寫三維圖形程式了。
- 你可以使用通用的Web技術釋出三維圖形程式,展示給你的朋友和其他開發者
- 你可以充分利用瀏覽器的功能。
- 網際網路上有大量現成的資料,它們可以幫助你學習WebGL,編寫三維程式等。
WebGL起源
在個人計算機上使用最廣泛的兩種三維圖形渲染技術是Direct3D和OpenGL。
Direct3D是微軟DirectX技術的一部分,是一套由微軟控制的程式設計介面API,主要用在Windows平臺。
OpenGL由於其開發和免費的特性,在多種平臺上都有廣泛的使用。Windows對OpenGL也提供了良好的支援,開發者也可以用它來代替Direct3D。
OpenGL最初由SGI開發,並在1992年釋出為開源標準。多年以來,OpenGL發展了數個版本,並對三維圖形開發,軟體產品開發,甚至電影製作產生了深遠影響。
雖然WebGL根植於OpenGL,但它實際上是從OpenGL的一個特殊版本OpenGL ES中派生出來的,後者專用於嵌入式計算機、智慧手機、家用遊戲機等裝置。OpenGL ES於2003-2004年被首次提出,並在2007年(ES 2.0)和2012年(ES 3.0)進行了兩次升級,WebGL是基於OpenGL ES 2.0的。
下圖顯示了OpenGL、OpenGL ES 1.1/2.0/3.0和WebGL的關係。
從2.0版本開始,OpenGL支援了一項非常重要的特性,即可程式設計著色器方法。該特性被OpenGL ES 2.0繼承,併成為了WebGL 1.0標準的核心部分。
著色器,使用一種類似於C的程式語言實現了精美的視覺效果。編寫著色器的語言又稱為著色器語言。WebGL基於OpenGL ES 2.0,使用GLSL ES語言編寫著色器。
雖然WebGL強大到令人驚歎,但使用這項技術進行開發卻異常簡單:只需要一個文字編輯器(Notepad或TextEdit)和一個瀏覽器(Chrome)即可;並且不需要去搭建開發環境,因為WebGL是內嵌在瀏覽器中的。
下圖顯示了WebGL程式的結構:
由於GLSL ES通常是以字串的形式在JavaScript中編寫的,所以雖然WebGL網頁更加複雜,但它仍然保持著與傳統的動態網頁相同的結構:只用到HTML檔案和JavaScript檔案。
文章內容借鑑於:
《WebGL程式設計指南》
https://www.cnblogs.com/mirror-pc/p/4178897.html
相關文章
- 《WebGL程式設計指南》學習筆記——2.使用< canvas >元素Web程式設計筆記Canvas
- Java設計模式學習筆記(一) 設計模式概述Java設計模式筆記
- 《高質量C/C++程式設計指南》學習筆記C++程式設計筆記
- WebGL程式設計指南(6)光照Web程式設計
- 網路程式設計學習筆記程式設計筆記
- 系統程式設計學習筆記程式設計筆記
- WebGL程式設計指南(1)簡介Web程式設計
- CUDA C 程式設計權威指南 學習筆記:第二章 CUDA程式設計模型程式設計筆記模型
- 程式設計師生存指南讀書筆記-第三篇(學習)程式設計師筆記
- Boltdb學習筆記之〇--概述筆記
- Golang 學習筆記——tun/tap 程式設計Golang筆記程式設計
- 結構化程式設計--學習筆記程式設計筆記
- Javascript高階程式設計 學習筆記JavaScript程式設計筆記
- ROS串列埠程式設計學習筆記ROS串列埠程式設計筆記
- spark學習筆記--進階程式設計Spark筆記程式設計
- Linux Shell 程式設計學習筆記Linux程式設計筆記
- 《Windows 程式設計》學習筆記(五) (轉)Windows程式設計筆記
- 《Windows 程式設計》學習筆記(四) (轉)Windows程式設計筆記
- 《Windows 程式設計》學習筆記(三) (轉)Windows程式設計筆記
- 《JAVA學習指南》學習筆記Java筆記
- WebGL程式設計指南(7)層次模型Web程式設計模型
- 四. 文字程式設計--Windows程式設計課程學習筆記程式設計Windows筆記
- 好程式設計師web前端培訓學習筆記Vue學習筆記一程式設計師Web前端筆記Vue
- 設計模式學習筆記設計模式筆記
- 學習筆記-設計模式筆記設計模式
- bootstrap學習筆記 外掛概述boot筆記
- 《JavaScript權威指南第六版》學習筆記-JavaScript概述JavaScript筆記
- Linux核心學習筆記(5)– 程式排程概述Linux筆記
- 好程式設計師學習筆記:函式程式設計師筆記函式
- Vue學習筆記(九):元件化程式設計Vue筆記元件化程式設計
- nginx學習筆記(6):程式模型的設計Nginx筆記模型
- Java學習筆記--網路程式設計SocketJava筆記程式設計
- WebGL程式設計指南(8)高階技術Web程式設計
- 好程式設計師web前端培訓學習筆記Vue學習筆記之二程式設計師Web前端筆記Vue
- Node.js 設計模式 學習筆記 之 流程式設計Node.js設計模式筆記程式設計
- Web開發學習筆記——HTTP 概述Web筆記HTTP
- angular學習筆記(三十)-指令(1)-概述Angular筆記
- 《Shell指令碼學習指南》學習筆記指令碼筆記