OpenGL学习27——伽马校正

2021-08-05  本文已影响0人  蓬篙人

伽马校正(Gamma Correction)

1. 伽马校正

glEnable(GL_FRAMEBUFFER_SRGB);
void main()
{
    // do lighting in linear space
    ...

    // gamma correction
    float gamma = 2.2;
    FragColor.rgb = pow(fragcolor, vec3(1/gamma));
}

2. sRGB纹理

float gamma = 2.2;
vec3 diffuseColor = pow(texture(diffuse, texcoords).rgb, vec3(gamma));
glTexImage2D(GL_TEXTURE_2D, 0, GL_SRGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);

3. 衰减(attenuation)

float attenuation = 1 / (distance * distance);
float attenuation = 1 / distance;

4. 小结

上一篇 下一篇

猜你喜欢

热点阅读