Threes Shader无法编译-各种错误

时间:2018-07-26 22:22:58

标签: three.js

所以我正在尝试加载图像。最初它不在S3 / Cloudfront中,但即时通讯发现它甚至不在本地运行。

    var imageTexture = new THREE.TextureLoader();
    imageTexture.load('/mypicture.jpg');

    imageTexture.minFilter = THREE.LinearFilter;

    var img = new THREE.MeshBasicMaterial({ 
             map:imageTexture
    });
    img.map.needsUpdate = true; 

这是我遇到的错误。

three.js:18053 THREE.WebGLProgram: shader error:  0 gl.VALIDATE_STATUS false gl.getProgramInfoLog invalid shaders  
ERROR: 0:269: 'mapTexelToLinear' : no matching overloaded function found
ERROR: 0:269: '=' : dimension mismatch
ERROR: 0:269: 'assign' : cannot convert from 'const mediump float' to 'highp 4-component vector of float'

当我使用这个

var imageTexture = THREE.ImageUtils.loadTexture('/mypicture');

它可以工作,但是当我尝试在CloudFront上加载图像时,出现CORS错误。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您要将加载程序发送到着色器,而不是纹理。
THREE.TextureLoader()load()函数返回纹理。
尝试这样的事情:

private void stopMedia() {
    if (mediaPlayer == null) return;
    if (mediaPlayer.isPlaying()) {
        mediaPlayer.stop();
    }
}