gl.createTexture(); gl.bindTexture(gl.TEXTURE_2D, tex); gl.texStorage2D(gl.TEXTURE_2D, 6, internalFormat.index, 64, 64); gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 64, 64 gl.RGBA, gl.UNSIGNED_BYTE, data[0]); if (generateMipmap) { gl.generateMipmap(gl.TEXTURE_2D); } else { gl.texSubImage2D(gl.TEXTURE_2D, 1, 0, 0, 32, 32, gl.RGBA, gl.UNSIGNED_BYTE, data[1]); gl.texSubImage2D(gl.TEXTURE_2D, 2, 0, 0, 16, 16, gl.RGBA, gl.UNSIGNED_BYTE, data[2]); gl.texSubImage2D(gl.TEXTURE_2D, 3, 0, 0, 8, 8, gl.RGBA, gl.UNSIGNED_BYTE, data[3]); gl.texSubImage2D(gl.TEXTURE_2D, 4, 0, 0, 4, 4 gl.RGBA, gl.UNSIGNED_BYTE, data[4]); gl.texSubImage2D(gl.TEXTURE_2D, 5, 0, 0, 2, 2, gl.RGBA, gl.UNSIGNED_BYTE, data[5]); gl.texSubImage2D(gl.TEXTURE_2D, 6, 0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, data[6]); } gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, wrapS.index); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, wrapT.index); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, magFilter.index); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter.index); gl.bindTexture2D(null); gl.texStorage2Dでサイズと内部フォーマットを指定した後は、 gl.texSubImage2Dを使って実際のテクスチャのピクセルデータを転送できます。 詳しくはMDN(https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/texSubImage2D)を参照