WebGL基礎函數庫下載:
鏈接:https://pan.baidu.com/s/1LFA89_zXU7In52oA5q1FFQ
密碼:cmq3
資料參考:《WebGL編程指南》
1. getWebGLContext(element, [, debug])
(1) 獲取WebGL繪圖上下文,如果開啟了debug屬性,遇到錯誤時將在控制台顯示錯誤信息。
(2) Element:指定<canvas>元素
(3) Debug:默認為false,設置為true的話則開啟錯誤列印。
(4) 返回值:non-null:返回了WebGL繪圖上下文(也叫繪圖環境);null:表示WebGL不可用
例:
var canvas = document.getElementById(『canvasid』);
var gl = getWebGLContext(canvas);
2. gl.clearColor(red, green, blue, alpha)
(1) 設置指定繪圖區域的背景色,這是在清空繪圖區的必需條件(可以理解為填充背景的意思)。以RGBA格式設置背景色。
(2) Red:指定紅色值(0.0-1.0),越高顏色越亮
(3) Green:指定綠色值(0.0-1.0),越高顏色越亮
(4) Blue:指定藍色值(0.0-1.0),越高顏色越亮
(5) Alpha:指定透明度值(0.0-1.0),越高越不透明
(6) 無返回值。如需獲取錯誤信息在第1個函數中開啟錯誤提示。
(7) 一旦設置了背景色後該背景色就會儲存在WebGL系統中,在之後無需重複指定;如需改變則再次設置。
3. gl.clear(buffer)
(1) 將指定緩衝區(buffer)設定為預定的值。
(2) gl.COLOR_BUFFER_BIT:顏色緩衝區。當buffer為此值時將使用gl.clearColor()設定的顏色去清空顏色緩衝區。默認:(0.0, 0.0, 0.0, 0.0)。
(3) gl.DEPTH_BUFFER_BIT:深度緩衝區。使用gl.clearDepth(),默認:1.0。
(4) gl.STENCIL_BUFFER_BIT:模板緩衝區。使用gl.clearStencil(),默認:0。
(5) 正確返回:無;錯誤返回:INVALID_VALUE
4. initShaders(gl, vshader, fshader)
(1) 該函數被定義在cuon.util.js中(開頭網盤地址可下載),用於在WebGL系統內部建立和初始化著色器。
(2) gl:指定要渲染的繪圖環境。
(3) Vshader:指定頂點著色器程序代碼。
(4) Fshader:指定片元著色器程序代碼。
(5) 返回值:true,表示初始化成功;false,失敗。
例:
//頂點著色器程序
var VSHADER_SOURCE = void main() {
+ gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
+//設置坐標,四個浮點數組成的矢量 gl_PointSize = 10.0;
+ //設置尺寸 }
;//片元著色器程序var FSHADER_SOURCE = void main() {
+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
+//設置顏色
}
;
//獲取環境var canvas = document.getElementById(example); var gl = getWebGLContext(canvas);//初始化著色器 if(!initShaders(gl, VSHADER_SOURCE, FSHADER_SOURCE)) { console.log(初始化著色器失敗!); return; }
5. gl.drawArrays(mode, first, count)
(1) 執行頂點著色器,按照mode參數指定的方式繪製圖形。
(2) Mode:指定繪製的方式,可設為:gl.POINTS(一系列點),gl.LINES(一系列單獨的線段),gl.LINE_STRIP(一系列連接的線段),gl.LINE_LOOP(一系列連接的線段並最後一個點與第一個點連接),gl.TRIANGLES(一系列單獨的三角形), gl.TRIANGLE_STRIP(一系列帶狀的三角形),gl.TRIANGLE_FAN(一系列三角形組成的類似於扇形的圖形)