FXAA GLSL
#version 300 es precision mediump float; out vec4 FragColor; in vec2 TexCoords; uniform sampler2D screenTexture; uniform vec2 screenSize; float FXAA_SPAN_MAX = 8.0f; float FXAA_REDUCE_MUL = 1.0f/8.0f; float FXAA_REDUCE_MIN = 1.0f/128.0f; vec3 computeToneMapping(vec2 texCoords); vec3 computeFxaa(); void main() { const float gamma = 2.2; vec3 hdrColor = computeFxaa(); // gamma correction hdrColor = pow(hdrColor, vec3(1.0/gamma)); float contrast = 1.5; // 增加对比度 float brightness = 0.0; // 亮度偏移量 hdrColor = (hdrColor - vec3(0.2)) * vec3(contrast) + vec3(brightness); FragColor = vec4(hdrColor, 1.0); } vec3 computeToneMapping(vec2 texCoords) { const float exposure = 1.0; vec3 hdrColor = texture(screenTexture, texCoords).xyz; return vec3(1.0) - exp(-hdrColor * exposure); } vec3 computeFxaa() { vec2 screenTextureOffset = 1.0 / screenSize; vec...