OpenGL 纹理格式 GL_R11F_G11F_B10F - 选择数据类型

OpenGL texture format GL_R11F_G11F_B10F - choosing data type

我想使用内部格式为 GL_R11F_G11F_B10F 的纹理作为帧缓冲区附件(后处理效果、HDR 渲染)。我不确定应该选择哪种数据类型 - glTexImage2D 第 8 个参数。以下是可能的选项:

能否请您解释一下我应该根据什么标准选择该类型?

glTexImage2Dformattype 指示 OpenGL 如何解释通过 data 参数传递给该函数的图像。由于您只是分配纹理而不指定任何图像(即设置 data = NULL),因此 formattype 的确切值无关紧要。对它们的唯一要求是与 internalformat 兼容,否则 glTexImage2D 将在验证参数时生成 GL_INVALID_OPERATION

但是,由于您没有指定图像,因此最好在此处使用 glTexStorage2D。此函数具有更简单的语义,您根本不需要指定 formattypedata