如果使用SRGB纹理格式,您只能通过采样器在现代GPU的纹理读取中免费获得SRGB转换,这是否正确?

因此,如果我想通过具有图像加载/存储功能的图像访问相同的SRGB纹理,我将不得不手动执行任何SRGB /线性转换吗?

IE做的事情例如:

float LinearToSRGB(float value)
{
    if( value< 0.0031308 )
        value*= 12.92;
    else
        val = 1.055 * pow(value, 1.0/2.4) - 0.055;

    return value;
}

最佳答案

究竟。
只要您不使用sRGB纹理,OpenGL就会假定所有纹理数据都位于线性空间中。

10-06 01:27