0

相关阅读: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 呢?

4

1 回答 1

0

在我看来,拥有 GL_RGB32、GL_RGBA_SNORM 等标记是有充分理由的:精度将超过专用浮点格式,如 GL_RGB32F。

你刚刚回答了你自己的问题。他们不允许这样做,因为允许这意味着要么在转换为单精度浮点数时丢弃 8 位额外精度,要么将那些 32 位标准化整数转换为双精度浮点数。

您会注意到,甚至 GL 4.2 也不允许双精度浮点纹理。

这是不允许的,因为它在当前硬件上根本没有用。当前的硬件不支持它,因为支持它意味着从纹理中获取双精度值。

于 2012-08-03T22:13:04.303 回答