我希望能够分享深度和模板缓冲区之间的屏幕上的缓冲区和屏幕外的缓冲区。(或者,用不同的方式来表达,我希望能够使用屏幕上的深度和模板缓冲区来呈现纹理。)
我尝试将共享深度/模板呈现缓冲区绑定到默认的框架缓冲区,但它只能错误地使用“无法修改框架缓冲区0”。好的,所以我不能修改屏幕上的框架缓冲区。
然后,我尝试将默认框架缓冲区的模板/深度缓冲区绑定到辅助呈现缓冲区,但是,它再次错误地使用“无法查询框架缓冲区0”。
我目前的解决办法是创建两个屏幕外框架缓冲区,并在最后通过纹理和全屏四角设置主屏幕外缓冲区。不太漂亮。
不幸的是,webgl是基于OpenGL ES的,而this问题表明OpenGL ES没有办法做到这一点。因此,我怀疑,虽然我希望我错了,但没有“更好”的办法。
发布于 2015-12-07 18:26:30
不可能。
WebGL 1.0规范第5.14.6节:
如果framebuffer为null,则上下文提供的默认框架缓冲区将被绑定,而试图修改或查询目标framebuffer上的状态将生成一个INVALID_OPERATION错误。
https://stackoverflow.com/questions/34134132
复制相似问题