如何计算出 WebGL 中帧缓冲区的最大数量

How to figure out the maximum number of framebuffers in WebGL

如何获得 WebGL 中可能分配的帧缓冲区的最大数量?我假设您使用 getParameter 但我不知道要传递什么。对于最大数量的颜色附件,我知道我可以通过 MAX_DRAW_BUFFERS_WEBGL,但我不知道分配的帧缓冲区。

此外,WebGL 1.0 和 2.0 规范对于可能分配的帧缓冲区的最小所需数量以及可以一次绘制和附加的颜色附件有何规定?

提前致谢!

帧缓冲区没有硬性限制,毕竟它们不是资源密集型的,它们的附件是。

至于支持的颜色附件数量,根据section 6.8 in the WebGL 1 spec

The following combinations of framebuffer object attachments, when all of the attachments are framebuffer attachment complete, non-zero, and have the same width and height, must result in the framebuffer being framebuffer complete:

COLOR_ATTACHMENT0 = RGBA/UNSIGNED_BYTE texture
COLOR_ATTACHMENT0 = RGBA/UNSIGNED_BYTE texture + DEPTH_ATTACHMENT = DEPTH_COMPONENT16 renderbuffer
COLOR_ATTACHMENT0 = RGBA/UNSIGNED_BYTE texture + DEPTH_STENCIL_ATTACHMENT = DEPTH_STENCIL renderbuffer

所以这是最低要求的颜色附件数:1

WebGL 2 spec nor in the ES 3.0 spec 中没有启用绘制缓冲区(=附件)的最小数量要求,而是特定于实现的,需要通过您已经提到的方式进行查询,我相信事实上的最小数量是 4虽然。