不同组件使用不同数据类型的纹理
Textures using different data types for different components
OpenGL 4.5 文档和规范提到 glTextureLevelParameter*
的参数名称 GL_TEXTURE_RED_TYPE, GL_TEXTURE_GREEN_TYPE, GL_TEXTURE_BLUE_TYPE, GL_TEXTURE_ALPHA_TYPE, GL_TEXTURE_DEPTH_TYPE
的存在,说它们 return 每个单独组件的数据类型。我理解深度和模板组件的吸引力,但 RGBA 呢?是否有可能有一个纹理,比如为了争论,有符号的红色,浮点绿色,无符号的蓝色和有符号的固定 alpha ?或者红色、绿色、蓝色和 alpha 分量是否保证始终 return 相同的数据类型?不确定如何向纹理请求这样的内部格式。
请注意,我理解 GL_TEXTURE_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE, GL_TEXTURE_DEPTH_SIZE
的要点,特别是对于 R5G6B5 或 RGB10A2 等格式。
没有允许不同颜色组件具有不同类型的内部格式。理论上,查询 API 允许这样做,但据我所知,没有允许这样做的内部格式。
OpenGL 4.5 文档和规范提到 glTextureLevelParameter*
的参数名称 GL_TEXTURE_RED_TYPE, GL_TEXTURE_GREEN_TYPE, GL_TEXTURE_BLUE_TYPE, GL_TEXTURE_ALPHA_TYPE, GL_TEXTURE_DEPTH_TYPE
的存在,说它们 return 每个单独组件的数据类型。我理解深度和模板组件的吸引力,但 RGBA 呢?是否有可能有一个纹理,比如为了争论,有符号的红色,浮点绿色,无符号的蓝色和有符号的固定 alpha ?或者红色、绿色、蓝色和 alpha 分量是否保证始终 return 相同的数据类型?不确定如何向纹理请求这样的内部格式。
请注意,我理解 GL_TEXTURE_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE, GL_TEXTURE_DEPTH_SIZE
的要点,特别是对于 R5G6B5 或 RGB10A2 等格式。
没有允许不同颜色组件具有不同类型的内部格式。理论上,查询 API 允许这样做,但据我所知,没有允许这样做的内部格式。