Texture也是WebGL中重要的概念,使用起來(lái)也很簡(jiǎn)單。但有句話叫大道至簡(jiǎn),如果真的想要用好紋理,里面的水其實(shí)也是很深的。下面我們來(lái)一探究竟。

       下面是WebGL中創(chuàng)建一個(gè)紋理的最簡(jiǎn)過(guò)程:

Android培訓(xùn),安卓培訓(xùn),手機(jī)開(kāi)發(fā)培訓(xùn),移動(dòng)開(kāi)發(fā)培訓(xùn),云培訓(xùn)培訓(xùn)

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);

Android培訓(xùn),安卓培訓(xùn),手機(jī)開(kāi)發(fā)培訓(xùn),移動(dòng)開(kāi)發(fā)培訓(xùn),云培訓(xùn)培訓(xùn)

       如果你覺(jué)得上面的這段代碼簡(jiǎn)單易懂,不妨在看看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);

     一個(gè)再簡(jiǎn)單的紋理調(diào)用,在實(shí)際中也會(huì)有變

網(wǎng)友評(píng)論