Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将three.js纹理传递为";WebGLTexture“;到WEBGL代码?_Javascript_Three.js_Webgl_Textures - Fatal编程技术网

Javascript 如何将three.js纹理传递为";WebGLTexture“;到WEBGL代码?

Javascript 如何将three.js纹理传递为";WebGLTexture“;到WEBGL代码?,javascript,three.js,webgl,textures,Javascript,Three.js,Webgl,Textures,我试图将three.js纹理传递给gl.texSubImage WEBGL函数,但出现以下错误: 在Chrome上: 在Firefox上: 代码如下-目标texture2被传递到gl.bindTexture bellow,无法识别。源纹理1是加载了图像的纹理 我尝试过:texture2,texture2.image,texture2.image.data, 使用datatexture和加载图像作为texture2的普通纹理。 有什么想法吗 var gl = renderer.getCont

我试图将three.js纹理传递给gl.texSubImage WEBGL函数,但出现以下错误:

在Chrome上:

在Firefox上:

代码如下-目标texture2被传递到gl.bindTexture bellow,无法识别。源纹理1是加载了图像的纹理

我尝试过:texture2,texture2.image,texture2.image.data, 使用datatexture和加载图像作为texture2的普通纹理。 有什么想法吗

var gl = renderer.getContext();
var position = new THREE.Vector2(0,0);

renderer.setTexture2D( texture2, 0 ); 

gl.bindTexture(gl.TEXTURE_2D, texture2.image.data); //<<< problem

gl.texSubImage2D( gl.TEXTURE_2D, 
                  0, 
                  position.x, 
                  position.y, 
                  gl.RGB, 
                  gl.UNSIGNED_BYTE, 
                  texture1.image);
var gl=renderer.getContext();
变量位置=新的三个向量2(0,0);
renderer.setTexture2D(texture2,0);

gl.bindTexture(gl.TEXTURE_2D,texture2.image.data)// 我建议你看看。它在内部使用
texSubImage
。还有一个示例显示了该方法的用法:

顺便说一句:在
bindTexture
中使用
image.data
不起作用,因为API调用需要一个
WebGLTexture
对象作为第二个参数。您可以访问以下纹理的原始
WebGLTexture
对象

var textureProperties = renderer.properties.get( texture );
console.log( textureProperties.__webglTexture );

谢谢,我已经在这里尝试了copyTextureToTexture:问题是在复制之后,目标纹理在过滤minFilter和magFilter时无法正常工作,和/或各向异性只能部分工作。您可以在该帖子的代码段上看到瑕疵。因此,我正在尝试核心WEBGL,以防某个地方出现three.js错误,但经过您的更正后,它可以工作,但我得到了相同的结果。bug可能在three.js或WEBGL代码的其他地方。您可能希望在不使用
three.js
的情况下创建一个简化的测试用例,以查看它是否是WEBGL的默认行为。