Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.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
Node.js 如何在three.js中使用外部生成的纹理_Node.js_Three.js_Textures - Fatal编程技术网

Node.js 如何在three.js中使用外部生成的纹理

Node.js 如何在three.js中使用外部生成的纹理,node.js,three.js,textures,Node.js,Three.js,Textures,我正在使用node.js上托管的three.js。我使用它的相机可以生成opengl纹理作为输出帧。我想在three.js中使用这个实时纹理流。我已经能够在camera和three.js之间创建共享上下文,并且我可以确认纹理存在于camera上下文和three.js上下文中。我不太确定如何让three.js尊重外部维护的纹理。现有的videotexture对象不是正确的方式,它从浏览器dom对象复制帧数据,我想直接使用摄影机生成的纹理 由于这类似于threejs对纹理的渲染支持,仅当渲染发生在t

我正在使用node.js上托管的three.js。我使用它的相机可以生成opengl纹理作为输出帧。我想在three.js中使用这个实时纹理流。我已经能够在camera和three.js之间创建共享上下文,并且我可以确认纹理存在于camera上下文和three.js上下文中。我不太确定如何让three.js尊重外部维护的纹理。现有的videotexture对象不是正确的方式,它从浏览器dom对象复制帧数据,我想直接使用摄影机生成的纹理

由于这类似于threejs对纹理的渲染支持,仅当渲染发生在threejs之外时,我尝试修改代码以支持外部纹理,但这似乎有点费劲


我目前认为应该实现shadermaterial对象的一个变体,它可以理解如何处理外部生成的纹理,但我想知道是否有更好的路径。

好的,我已经解决了这个问题。一个人需要采取的步骤

首先,在创建threejs渲染器之前,在目标平台上使用GLFW调用或等效调用创建GL上下文 然后,在threejs场景创建过程中,使用映射纹理在threejs中创建材质。我将MeshBasicMaterial与映射的jpg文件一起使用,但不管怎样。 现在,使用前面创建的一个gl上下文作为参数来创建webglrenderer 执行一次渲染过程。这将实例化所有webgl纹理和程序,并将它们附加到材质。 现在看一下前面创建的材质,“贴图”属性将包含webgl纹理索引。您可以将其传递到其他上下文中的GL代码,并将其渲染到此纹理,渲染结果将显示在threejs材质中。