gpt4 book ai didi

node.js - 如何通过 Three.js 使用外部生成的纹理

转载 作者:太空宇宙 更新时间:2023-11-04 02:27:04 29 4
gpt4 key购买 nike

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

由于这类似于 Threejs 渲染到纹理支持,仅渲染发生在 Threejs 外部,因此我尝试修改该代码以支持外部纹理,但这似乎有点麻烦。

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

最佳答案

好的,我已经弄清楚了。需要采取的步骤

  • 首先,在创建 Threejs 渲染器之前,使用 GLFW 调用或目标平台上的等效函数创建 GL 上下文
  • 然后,在 ThreeJS 中创建具有映射纹理的 Material ,作为 ThreeJS 场景创建的一部分。我正在将 MeshBasicMaterial 与映射的 jpg 文件一起使用,但无论如何。
  • 现在使用您之前创建的 gl 上下文之一作为参数来创建 webglrenderer
  • 执行一次渲染过程。这将实例化所有 webgl 纹理和程序并将它们附加到您的 Material 。
  • 现在看看您之前创建的 Material ,贴图属性将包含 webgl 纹理索引。您可以将其传递给其他上下文中的 GL 代码,并让它渲染到该纹理,渲染结果将显示在您的 Threejs Material 中。

关于node.js - 如何通过 Three.js 使用外部生成的纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29738736/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com