首页 > 解决方案 > WebGl 无法在“WebGLRenderingContext”上执行“texImage2D”

问题描述

当我运行下面的示例代码时,我在 Google chrome 中出现黑屏并出现错误:

未捕获的 DOMException:无法在“WebGLRenderingContext”上执行“texImage2D”:图像元素包含跨域数据,可能无法加载。在handleLoadedTexture

但是当我在网络服务器上运行代码时,我没有收到任何错误。

function handleLoadedTexture(texture) {
    gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);
    gl.bindTexture(gl.TEXTURE_2D, texture);
    gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, texture.image);
    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_NEAREST);
    gl.generateMipmap(gl.TEXTURE_2D);

    gl.bindTexture(gl.TEXTURE_2D, null);
}


var moonTexture;

function initTexture() {
    moonTexture = gl.createTexture();
    moonTexture.image = new Image();
    moonTexture.image.onload = function () {
        handleLoadedTexture(moonTexture)
    }

    moonTexture.image.src = "moon.gif";
}

我错过了什么或者你能告诉我为什么我会收到这个错误吗?

提前致谢

标签: google-chromecross-domainwebgltexturessame-origin-policy

解决方案


推荐阅读