Colors WebGL是否支持32位以上的颜色格式?

Colors WebGL是否支持32位以上的颜色格式?,colors,format,webgl,Colors,Format,Webgl,我似乎找不到任何超过32位(GL.RGBA)的纹理格式。WebGL不支持这一点吗 32位是指每个元素本身是32位,或者每个元素是8位,加起来是32位(8位红色、8位绿色、8位蓝色、8位阿尔法) 在任何情况下,WebGL中都有32位浮点格式的扩展,即32位红色、32位绿色、32位蓝色、32位alpha(128位纹理格式) 这些扩展是 。让我们创建每个通道32位的浮点纹理 让我们为每个通道创建16位半浮点纹理 。使用浮点纹理时,让我们将过滤设置为除gl.NEAREST之外的其他值 。让我们在使用半

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

32位是指每个元素本身是32位,或者每个元素是8位,加起来是32位(8位红色、8位绿色、8位蓝色、8位阿尔法)

在任何情况下,WebGL中都有32位浮点格式的扩展,即32位红色、32位绿色、32位蓝色、32位alpha(128位纹理格式)

这些扩展是

  • 。让我们创建每个通道32位的浮点纹理
  • 让我们为每个通道创建16位半浮点纹理
  • 。使用浮点纹理时,让我们将过滤设置为除
    gl.NEAREST
    之外的其他值
  • 。让我们在使用半浮点纹理时,将过滤设置为除
    gl.NEAREST
    之外的其他值
要使用其中任何一个,您必须按中所示启用每个选项

var ext = gl.getExtension("OES_texture_float");
if (!ext) {
   alertNoFloatSupportOrFallbackToOtherOption();
}
几乎所有桌面GPU都支持所有4个。移动设备通常只支持半格式,有时不支持过滤


此外,大多数移动设备不允许像桌面那样渲染浮动或半浮动纹理。要检查是否有,请以所需格式创建纹理,将其附加到帧缓冲区,然后调用
gl.checkFramebufferStatus
。如果它返回
gl.FRAMEBUFFER\u COMPLETE
,则可以渲染到纹理。否则,您只能将其用作源。

32位是指每个元素本身为32位,或者每个元素为8位,加起来为32位(8位红色、8位绿色、8位蓝色、8位alpha)

在任何情况下,WebGL中都有32位浮点格式的扩展,即32位红色、32位绿色、32位蓝色、32位alpha(128位纹理格式)

这些扩展是

  • 。让我们创建每个通道32位的浮点纹理
  • 让我们为每个通道创建16位半浮点纹理
  • 。使用浮点纹理时,让我们将过滤设置为除
    gl.NEAREST
    之外的其他值
  • 。让我们在使用半浮点纹理时,将过滤设置为除
    gl.NEAREST
    之外的其他值
要使用其中任何一个,您必须按中所示启用每个选项

var ext = gl.getExtension("OES_texture_float");
if (!ext) {
   alertNoFloatSupportOrFallbackToOtherOption();
}
几乎所有桌面GPU都支持所有4个。移动设备通常只支持半格式,有时不支持过滤


此外,大多数移动设备不允许像桌面那样渲染浮动或半浮动纹理。要检查是否有,请以所需格式创建纹理,将其附加到帧缓冲区,然后调用
gl.checkFramebufferStatus
。如果它返回
gl.FRAMEBUFFER\u COMPLETE
,则可以渲染到纹理。否则,您只能将其用作源。

32位是指每个元素本身为32位,或者每个元素为8位,加起来为32位(8位红色、8位绿色、8位蓝色、8位alpha)

在任何情况下,WebGL中都有32位浮点格式的扩展,即32位红色、32位绿色、32位蓝色、32位alpha(128位纹理格式)

这些扩展是

  • 。让我们创建每个通道32位的浮点纹理
  • 让我们为每个通道创建16位半浮点纹理
  • 。使用浮点纹理时,让我们将过滤设置为除
    gl.NEAREST
    之外的其他值
  • 。让我们在使用半浮点纹理时,将过滤设置为除
    gl.NEAREST
    之外的其他值
要使用其中任何一个,您必须按中所示启用每个选项

var ext = gl.getExtension("OES_texture_float");
if (!ext) {
   alertNoFloatSupportOrFallbackToOtherOption();
}
几乎所有桌面GPU都支持所有4个。移动设备通常只支持半格式,有时不支持过滤


此外,大多数移动设备不允许像桌面那样渲染浮动或半浮动纹理。要检查是否有,请以所需格式创建纹理,将其附加到帧缓冲区,然后调用
gl.checkFramebufferStatus
。如果它返回
gl.FRAMEBUFFER\u COMPLETE
,则可以渲染到纹理。否则,您只能将其用作源。

32位是指每个元素本身为32位,或者每个元素为8位,加起来为32位(8位红色、8位绿色、8位蓝色、8位alpha)

在任何情况下,WebGL中都有32位浮点格式的扩展,即32位红色、32位绿色、32位蓝色、32位alpha(128位纹理格式)

这些扩展是

  • 。让我们创建每个通道32位的浮点纹理
  • 让我们为每个通道创建16位半浮点纹理
  • 。使用浮点纹理时,让我们将过滤设置为除
    gl.NEAREST
    之外的其他值
  • 。让我们在使用半浮点纹理时,将过滤设置为除
    gl.NEAREST
    之外的其他值
要使用其中任何一个,您必须按中所示启用每个选项

var ext = gl.getExtension("OES_texture_float");
if (!ext) {
   alertNoFloatSupportOrFallbackToOtherOption();
}
几乎所有桌面GPU都支持所有4个。移动设备通常只支持半格式,有时不支持过滤

此外,大多数移动设备不允许像桌面那样渲染浮动或半浮动纹理。要检查是否有,请以所需格式创建纹理,将其附加到帧缓冲区,然后调用
gl.checkFramebufferStatus
。如果它返回
gl.FRAMEBUFFER\u COMPLETE
,则可以渲染到纹理。否则,您只能将其用作源