WebGL:确定每个绘制调用的最大数量 gl.POINTS

WebGL: Determining maximum number of gl.POINTS per draw call

我正在处理一个场景,我想在每个绘图调用中挤入尽可能多的 gl.POINTS。我想我记得听说大多数设备每次绘制调用只允许一个绘制 2**16 个顶点,但我已经能够在我的本地计算机上每次绘制调用绘制 ~250,000 个点!

检查了 MDN's list of gl parameters 并查询了许多这些值后,我仍然不确定:如何确定单个绘制调用中可以包含的最大 gl.POINTS 数?当使用其他几何图元(例如三角形带)时,此值是否与每次绘制调用可以包含的最大顶点数有某种不同?其他人可以就此问题提供的任何见解将不胜感激!

限制仅在索引中 (gl.drawElements)。默认情况下,索引只能是 16 位值(0 到 65535)。普通缓冲区没有限制 (gl.drawArrays)。好吧,"no limit" 仍然意味着内存、32 位值和时间有限制。

对于 gl.drawElements,您可以通过检查并启用扩展 OES_element_index_uint.

来切换到使用 32 位索引