HDR是为了解决颜色被限制在0-1之间 让亮的更亮 暗的更暗
需要浮点帧缓冲
glBindTexture(GL_TEXTURE_2D, colorBuffer);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB16F, SCR_WIDTH, SCR_HEIGHT, 0, GL_RGB, GL_FLOAT, NULL);
GL_RGB16F这个需要注意
但是 这样子还是不能解决很多1.0的地方就全白 细节不见了 就需要toneMapping操作
先在颜色公式计算允许暂时大于1 最后映射到0-1 final/(final+vec3(1.0));
然后gamma矫正
总体操作 就是先使用FBO把场景绘制到纹理中 对纹理进行这一系列处理之后贴在quad上 显示出来
具体可以自己看看learnOpenGL