相关阅读:http://www.opengl.org/wiki/Image_Format#Color_formats
规范化纹理格式(例如,GL_RGB8_SNORM和GL_RGB16)存储映射到浮点范围的整数( - [1.0,1.0]用于有符号规范化,[0.0,1.0]用于无符号规范化)。
在我看来,有一个很好的理由有GL_RGB32,GL_RGBA_SNORM等令牌:精度将超过专用浮点格式,如GL_RGB32F。另外,为了完整性:为什么有8位和16位的标准化格式,但不是32?
那么,为什么不存在GL_RGB32,GL_RGBA32?
答案 0 :(得分:0)
在我看来,有一个很好的理由有GL_RGB32,GL_RGBA_SNORM等令牌:精度将超过专用浮点格式,如GL_RGB32F。
你刚回答了自己的问题。他们不允许它,因为允许它意味着在转换为单精度浮点数时丢弃8位额外的精度,或者将这些32位标准化整数转换为双精度浮点数。
你会发现即使GL 4.2也不允许双精度浮动纹理。
这是不允许的,因为它在当前的硬件上根本没用。当前的硬件不支持它,因为支持它意味着从纹理中获取双精度值。