OpenGL 3.3 规范似乎没有要求 mipmap 生成在线性空间中完成。我能找到的只有以下内容:
派生的 mipmap 数组的内部格式都与
levelbase 数组和派生数组的维度如下
第 3.8.14 节中描述的要求。的内容
派生数组是通过重复、过滤减少来计算的
水平基数组。对于一维和二维数组纹理,每个
层被独立过滤。没有特定的过滤算法
必需的,但建议使用盒式过滤器作为默认过滤器。
我知道如果原始图像是 sRGB 格式,调用 glGenerateMipMap 的结果是 sRGB 格式,我对此没有问题。但中间会发生什么?当然,我们不想对对数刻度上的颜色进行平均。这是特定于实现的吗?
相关答案可以在OpenGL规范第3.8.17节中找到:
3.8.17 sRGB纹理颜色转换
如果当前绑定的纹理的内部格式是SRGB、SRGB8、SRGB_ALPHA之一,
SRGB8_ALPHA8、COMPRESSED_SRGB 或 COMPRESSED_SRGB_ALPHA、
红色、绿色和蓝色分量是从 sRGB 色彩空间转换为
线性色彩空间作为过滤的一部分分节描述3.8.11 and 3.8.12。任何
alpha 分量保持不变。理想情况下,实现应该执行此操作
在过滤之前对每个样本进行颜色转换,但允许实施
Mipmap 生成在第 3.8.11 节中进行了描述,因此受到颜色空间线性化的影响。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)