1

我正在尝试使用“现有的”Webgl 屏幕(我将其称为 S2)-我不想迁移到 THREE.js 的逻辑-生成可以在某些基于 THREE.js 的(R47 ) 屏幕(我将其称为 S1)。

我成功做的唯一一件事就是将 S1 和 S2 渲染成两个单独的画布实例(使用 2 个单独的 WebGl 上下文实例)并覆盖结果: http ://www.wothke.ch/webglTests/MixWebGlTest.htm

其他各种方法都不起作用: - 首先,我尝试让 S2 渲染到单独的帧缓冲区(而不是在屏幕中),然后直接在 S1 中使用相应的纹理。(参见 wavefront.js 文件中的 initTextureFramebuffer(w, h) ..)

  • 当失败时,我试图让 S1 从 S2 已将其数据输出到的单独画布中获取数据。(参见 scrolltext.js 中的 getTextureFromCanvas (ctx, c))——这个逻辑在上面的版本中仍然有效(除了简单的叠加),但是从中心的立方体上可以看出,纹理实际上是从画布错误..)

  • 尝试使用相同的 gl 实例(即重用由 THREE.js 创建的实例)或使用单独的实例并没有成功。我的印象是,一旦使用共享实例,THREE.js 就会破坏由普通 WebGL 逻辑设置的内容。

我该怎么做才能从 S2 获得正确的纹理,然后可以在 S1 中使用?

4

0 回答 0