我正在研究一个WebGL项目,并且所有的纹理渲染都很好。 当我想实现一个立方体贴图时,我开始出现这种类型的错误。 Argument 9 of WebGLRenderingContext.texImage2D does not implement interface ArrayBufferViewOrNull.
在所有浏览器中。 我使用加载纹理的我的代码片段是,WebGLRenderingContext.texImage2D没有实现接口ArrayBufferViewOrNull
var cubeMap = gl.createTexture();
gl.bindTexture(gl.TEXTURE_CUBE_MAP, cubeMap);
for(var i = 0; i < 6; i++)
{
var img = cubeMapArr[i];
console.log(img);
gl.texImage2D(
gl.TEXTURE_CUBE_MAP_POSITIVE_X + i,
0, gl.RGB, 1024, 1024, 0, gl.RGB, gl.UNSIGNED_BYTE,img);
}
的cubeMapArr
保持HTMLImageElements。 有关此问题的任何想法或经验? 使用gl.texImage2D()
例如像这样,
gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,normalMapTexture);
作品没有问题。 再次normalMapTexture
保存HTMLImageElement。
谢谢。
谢谢编辑genpfault这个问题应该标记为opengl-es。 –
不,它不应该被标记为opengl-es,因为错误与opengl-es无关。 OpenGL ES没有ArrayBufferViews或HTMLImageElements的概念 – gman