是否将帧缓冲区数据从一个WebGLRenderingContext复制到另一个?
请参考下面的背景部分,如果以下内容没有多大意义,我省略了大部分上下文,以便尽可能清楚地说明问题 我有两个WebGlrenderingContext,具有以下特征:是否将帧缓冲区数据从一个WebGLRenderingContext复制到另一个?,webgl,unity-webgl,webgl2,webxr,Webgl,Unity Webgl,Webgl2,Webxr,请参考下面的背景部分,如果以下内容没有多大意义,我省略了大部分上下文,以便尽可能清楚地说明问题 我有两个WebGlrenderingContext,具有以下特征: WebGLRenderingContext:InputGL(允许对其帧缓冲区执行读写操作。) WebGLRenderingContext:OutputGL(只允许对其帧缓冲区执行写操作。) 目标:在移动设备上,在33毫秒(30帧)内定期将InputGL的渲染叠加到OutputGL的渲染上 InputGL和OutputGL的帧缓冲区
- WebGLRenderingContext:InputGL(允许对其帧缓冲区执行读写操作。)
- WebGLRenderingContext:OutputGL(只允许对其帧缓冲区执行写操作。)
// customOutputGLFramebuffer is the WebXR API's extended framebuffer which does not allow read operations
let fbo = InputGL.createFramebuffer();
InputGL.bindFramebuffer(InputGL.FRAMEBUFFER, fbo)
// TODO: Somehow get fbo data into OutputGL (I guess?)
OutputGl.bindFramebuffer(OutputGl.FRAMEBUFFER, customOutputGLFramebuffer);
// Drawing to OutputGL here works, and it gets drawn on top of the customOutputGLFramebuffer
我不确定这是否需要某种特定顺序的绑定,或者某种类型的纹理处理,对此的任何帮助都将不胜感激
背景:我正在试验Unity WebGL与unreleased的结合。WebXR使用自己修改的WebGLRenderingContext,不允许从其缓冲区读取数据(出于隐私考虑)。但是,Unity WebGL需要从其缓冲区读取数据。让两者在同一WebGLRenderingContext上运行会导致Unity的读取操作出错,这意味着它们需要分开。其想法是定期将Unity的帧缓冲区数据叠加到WebXR的帧缓冲区上
如果需要,也支持WebGL2。您不能跨上下文共享资源 最好是通过某种方法将一个用作源,然后通过
texImage2D
例如,如果上下文使用画布,则将帧缓冲区绘制到画布,然后
destContext.texImage2D(......., srcContext.canvas);
如果是一个OffscreenRenderingContext
使用transferToImageBitmap
,然后将生成的位图传递到texImage2D