WebGL:使用单通道纹理格式是否确实节省了(纹理)内存?

WebGL:使用单通道纹理格式是否确实节省了(纹理)内存?,webgl,Webgl,从: GL_亮度:每个元素都是一个亮度值。德国劳埃德船级社 将其转换为浮点,然后将其组装为RGBA元素 通过将红色、绿色和绿色的亮度值复制三次 蓝色,字母为1 这是否也适用于WebGL?如果是,这是否意味着与使用RGBA相比,使用较少通道(如亮度)格式化的纹理不会节省VRAM RAM呢?GL\u LUMINANCE在OpenGL 3.2中被弃用并删除。现在,您可以使用诸如GL\u R8之类的枚举明确指定内部格式。实现以指定的格式分配其内部存储(即使OpenGL规范中没有这一保证,按照假设规则)。

从:

GL_亮度:每个元素都是一个亮度值。德国劳埃德船级社 将其转换为浮点,然后将其组装为RGBA元素 通过将红色、绿色和绿色的亮度值复制三次 蓝色,字母为1

这是否也适用于WebGL?如果是,这是否意味着与使用RGBA相比,使用较少通道(如亮度)格式化的纹理不会节省VRAM


RAM呢?

GL\u LUMINANCE
在OpenGL 3.2中被弃用并删除。现在,您可以使用诸如
GL\u R8
之类的枚举明确指定内部格式。实现以指定的格式分配其内部存储(即使OpenGL规范中没有这一保证,按照假设规则)。我建议不要在WebGL中使用
GL\u亮度
。只需使用显式内部格式,并根据需要在着色器中展开它,或者通过纹理切换。

GL\u LUMINANCE
在OpenGL 3.2中被弃用并删除。现在,您可以使用诸如
GL\u R8
之类的枚举明确指定内部格式。实现以指定的格式分配其内部存储(即使OpenGL规范中没有这一保证,按照假设规则)。我建议不要在WebGL中使用
GL\u亮度
。只需使用显式内部格式并根据需要在着色器中展开它,或者通过纹理旋转

这是否也适用于WebGL

是的

这是否意味着与使用RGBA相比,使用较少通道(如亮度)格式化的纹理不会节省VRAM

不,虽然这是特定于实现的(有些实现确实选择在上传之前将数据扩展到RGBA),但扩展应该在运行中进行,基本上只是在着色器中从此类纹理采样时为每个颜色组件提供一个相同的值

那拉姆呢

调用
texImage2D
后,数据将上载到VRAM,只要您不这样做(例如,通过保持数据的引用),数据就不会保存在RAM中

这是否也适用于WebGL

是的

这是否意味着与使用RGBA相比,使用较少通道(如亮度)格式化的纹理不会节省VRAM

不,虽然这是特定于实现的(有些实现确实选择在上传之前将数据扩展到RGBA),但扩展应该在运行中进行,基本上只是在着色器中从此类纹理采样时为每个颜色组件提供一个相同的值

那拉姆呢

调用
texImage2D
后,数据将上载到VRAM,只要您不这样做(例如,通过保持数据的引用),数据就不会保存在RAM中