WebGL是否支持超过32位的颜色格式?

时间:2015-04-15 18:39:22

标签: colors format webgl

我似乎找不到任何超过32位的纹理格式(GL.RGBA)。 WebGL不支持这个吗?

1 个答案:

答案 0 :(得分:3)

32位你的意思是每个元素本身是32位,或者每个元素是8位,总和它们是32位(8位红色,8位绿色,8位蓝色,8位alpha)?

在任何情况下,WebGL中都有32位浮点格式的扩展,因此32位红色,32位绿色,32位蓝色,32位alpha,这是128位纹理格式。

这些扩展名是

要使用其中任何一项,您必须按照

启用每项
var ext = gl.getExtension("OES_texture_float");
if (!ext) {
   alertNoFloatSupportOrFallbackToOtherOption();
}

几乎所有桌面GPU都支持所有4.移动设备通常只支持半格式,有时不支持过滤。

此外,大多数移动设备不允许渲染浮动或半浮动纹理,就像台式机一样。要检查它们是否存在,请以所需格式创建纹理,将其附加到帧缓冲区并调用gl.checkFramebufferStatus。如果它返回gl.FRAMEBUFFER_COMPLETE,那么您可以渲染到纹理。否则,您只能将其用作来源。