Texture也是WebGL中重要的概念,使用起来也很简单。但有句话叫大道至简,如果真的想要用好纹理,里面的水其实也是很深的。下面我们来一探究竟。

       下面是WebGL中创建一个纹理的最简过程:

Android培训,安卓培训,手机开发培训,移动开发培训,云培训培训

var canvas = document.getElementById("canvas");var gl = canvas.getContext("webgl");// 创建纹理句柄var texture = gl.createTexture();// 填充纹理内容gl.bindTexture(gl.TEXTURE_2D, texture);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);// 设置纹理参数//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);

Android培训,安卓培训,手机开发培训,移动开发培训,云培训培训

       如果你觉得上面的这段代码简单易懂,不妨在看看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);

     一个再简单的纹理调用,在实际中也会有变