void drawArrays(enum mode, int first, long count)
mode ? 在WebGL中,模型採用原始型別繪製。使用模式,程式員不得不選擇通過WebGL提供的原始型別。該選項的可能值為 ? gl.POINTS, gl.LINE_STRIP, gl.LINE_LOOP, gl.LINES, gl.TRIANGLE_STRIP, gl.TRIANGLE_FAN, 和 gl.TRIANGLES.
first ? 此選項指定啟用陣列開始元素。它不能是負值。
count ? 此選項指定要呈現的元素數。
var vertices = [-0.5,-0.5, -0.25,0.5, 0.0,-0.5,]; gl.drawArrays(gl.TRIANGLES, 0, 3);
var vertices = [-0.5,-0.5, -0.25,0.5, 0.0,-0.5, 0.0,-0.5, 0.25,0.5, 0.5,-0.5,]; gl.drawArrays(gl.TRIANGLES, 0, 6);
void drawElements(enum mode, long count, enum type, long offset)
mode ? WebGL模型使用的是原始型別繪製。使用模式,程式員必須選擇WebGL提供的原始型別之一。對於此選項可能值的列表是- l.POINTS, gl.LINE_STRIP, gl.LINE_LOOP, gl.LINES, gl.TRIANGLE_STRIP, gl.TRIANGLE_FAN, 和 gl.TRIANGLES.
count ? 此選項指定待渲染的元素數量。
type ? 此選項指定必須是UNSIGNED_BYTE或UNSIGNED_SHORT索引的資料型別。
offset ? 此選項指定渲染起點。它通常是第一個元素(0)。
var vertices =[-0.5,-0.5,0.0,-0.25,0.5,0.0,0.0,-0.5,0.0]; var indices =[0,1,2]; gl.drawElements(gl.TRIANGLES, indices.length, gl.UNSIGNED_SHORT,0);
var vertices =[-0.5,-0.5,0.0,-0.25,0.5,0.0,0.0,-0.5,0.0,0.25,0.5,0.0,0.5,-0.5,0.0]; var indices =[0,1,2,2,3,4]; gl.drawElements(gl.TRIANGLES, indices.length, gl.UNSIGNED_SHORT,0);
它會產生下面的輸出 -
gl.clearColor(0.5, 0.5, .5, 1);
gl.enable(gl.DEPTH_TEST);
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
gl.viewport(0,0,canvas.width,canvas.height);