Texture也是WebGL中重要的概念,使用起來也很簡單。但有句話叫大道至簡,如果真的想要用好紋理,里面的水其實也是很深的。下面我們來一探究竟。
下面是WebGL中創(chuàng)建一個紋理的最簡過程:
var canvas = document.getElementById("canvas");var gl = canvas.getContext("webgl");// 創(chuàng)建紋理句柄var texture = gl.createTexture();// 填充紋理內(nèi)容gl.bindTexture(gl.TEXTURE_2D, texture); gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);// 設(shè)置紋理參數(shù)//gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);//gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);// 釋放gl.bindTexture(gl.TEXTURE_2D, null);
如果你覺得上面的這段代碼簡單易懂,不妨在看看WebGL中提供的gl.glTexImage2D的重載方法:
void gl.texImage2D(target, level, internalformat, width, height, border, format, type, ArrayBufferView? pixels);void gl.texImage2D(target, level, internalformat, format, type, ImageData? pixels);void gl.texImage2D(target, level, internalformat, format, type, HTMLImageElement? pixels);void gl.texImage2D(target, level, internalformat, format, type, HTMLCanvasElement? pixels);void gl.texImage2D(target, level, internalformat, format, type, HTMLVideoElement? pixels);
一個再簡單的紋理調(diào)用,在實際中也會有變