WebGL(Web圖形庫)是一個(gè)JavaScript API,可在任何兼容的Web瀏覽器中渲染高性能的交互式3D和2D圖形恋技,而無需使用插件券时。WebGL通過引入一個(gè)與OpenGL ES 2.0非常一致的API來做到這一點(diǎn)谴餐,該API可以在HTML5
<canvas>
元素可被用來通過JavaScript(Canvas API 或 WebGL API)繪制圖形及圖形動(dòng)畫妙蔗。")元素中使用。 這種一致性使API可以利用用戶設(shè)備提供的硬件圖形加速免猾。
(PS: 引用來源于mdn官方文檔)
WebGL可以簡(jiǎn)單理解為主要是對(duì)3D繪制在網(wǎng)頁端的圖形規(guī)范是辕,只需支持的瀏覽器即可進(jìn)行訪問體驗(yàn),無需額外的插件or本地應(yīng)用程序猎提。
基礎(chǔ)概念
- 三維坐標(biāo)系(x/y/z軸)获三;頂點(diǎn)→多邊形→網(wǎng)格/模型;紋理映射(位圖)、材質(zhì)(凹凸效果疙教、輝光效果等)棺聊、光源;變換(模型縮放贞谓、旋轉(zhuǎn)躺屁、位移等)通過矩陣;相機(jī)经宏、透視、視口驯击、投影(三維需要投射成二維展示)烁兰;著色器。
- 使用WebGL把圖形渲染到頁面中徊都,至少需要執(zhí)行以下步驟
- 創(chuàng)建一個(gè)畫布元素(canvas)沪斟;
- 獲取畫布的上下文(content);
- 初始化視口暇矫;
- 創(chuàng)建一個(gè)或者多個(gè)包含渲染數(shù)據(jù)的數(shù)組(通常是頂定數(shù)組)主之;
- 創(chuàng)建一個(gè)或者多個(gè)矩陣,將頂點(diǎn)數(shù)組變換到屏幕空間中李根;
- 創(chuàng)建一個(gè)或者多個(gè)著色器來實(shí)現(xiàn)繪制算法槽奕;
- 繪制。
參考書目
- 《WebGL入門指南》