WebGL 的 MAX_TEXTURE_SIZE 是最大面积、直径还是字节数?

Cra*_*ney 1 webgl

有多少文档避免消除WebGLRenderingContext#getParameter(WebGLRenderingContext.MAX_TEXTURE_SIZE)含义的歧义,这有点有趣。“大小”不是很具体。

它是以字节为单位的纹理的最大存储大小,意味着降低位深度或使用较少的颜色通道会增加最大尺寸吗?它是否是纹理像素的最大直径,这意味着如果您的纹理是高度矩形的,那么您在可寻址区域方面会受到更多限制?它是最大像素数吗?

gma*_*man 5

正如它在WebGL 规范第 1.1 节中所说的那样

本文档的其余部分旨在与 OpenGL ES 2.0 规范(在撰写本文时为 2.0.25,可从 Khronos OpenGL ES API Registry 获得)一起阅读。除非另有说明,每种方法的行为均由 OpenGL ES 2.0 规范定义

OpenGL ES的2.0.25规范,第3.7.1节说:

二维纹理图像的最大允许宽度和高度必须至少2^(k?lod)是级别 0 到 k 的图像阵列,其中 k 是 2 的对数底数MAX_TEXTURE_SIZE,lod 是图像阵列的细节级别。

它是您可以为纹理指定的最大宽度和/或高度。请注意,这与@Strilanc 指出的内存无关。因此,虽然您可能可以创建一个1 x MAX_TEXTURE_SIZE或一个MAX_TEXTURE_SIZE x 1纹理MAX_TEXTURE_SIZE x MAX_TEXTURE_SIZE,但由于内存不足,您可能无法创建一个纹理