From 74cdd144cf35c403d9a8a3f35420f1eaa3d84cc4 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Tue, 2 Oct 2012 14:32:48 +0200 Subject: [PATCH] Revert "Move calculation of normalized position for the vignette into the vertex shader." This is not correct, since tc can be changed by the fragment shader _and_ by later vertex shaders. We need to do some rethinking here, seemingly. This reverts commit 2b4a7d868112b4995bf6699f5b3aa68e9ec2b308. --- vignette_effect.cpp | 5 ----- vignette_effect.frag | 5 +++-- vignette_effect.h | 1 - vignette_effect.vert | 9 --------- 4 files changed, 3 insertions(+), 17 deletions(-) delete mode 100644 vignette_effect.vert diff --git a/vignette_effect.cpp b/vignette_effect.cpp index e140310..f1449ae 100644 --- a/vignette_effect.cpp +++ b/vignette_effect.cpp @@ -17,11 +17,6 @@ VignetteEffect::VignetteEffect() register_float("inner_radius", (float *)&inner_radius); } -std::string VignetteEffect::output_vertex_shader() -{ - return read_file("vignette_effect.vert"); -} - std::string VignetteEffect::output_fragment_shader() { return read_file("vignette_effect.frag"); diff --git a/vignette_effect.frag b/vignette_effect.frag index c7e1d61..bc84516 100644 --- a/vignette_effect.frag +++ b/vignette_effect.frag @@ -1,14 +1,15 @@ // A simple, circular vignette, with a cos² falloff. uniform float PREFIX(inv_radius); -varying vec2 PREFIX(normalized_pos); +uniform vec2 PREFIX(aspect_correction); vec4 FUNCNAME(vec2 tc) { vec4 x = LAST_INPUT(tc); const float pihalf = 0.5 * 3.14159265358979324; - float dist = (length(PREFIX(normalized_pos)) - PREFIX(inner_radius)) * PREFIX(inv_radius); + vec2 normalized_pos = (tc - PREFIX(center)) * PREFIX(aspect_correction); + float dist = (length(normalized_pos) - PREFIX(inner_radius)) * PREFIX(inv_radius); float linear_falloff = clamp(dist, 0.0, 1.0) * pihalf; float falloff = cos(linear_falloff) * cos(linear_falloff); x.rgb *= vec3(falloff); diff --git a/vignette_effect.h b/vignette_effect.h index 1d75f7e..b8e0f68 100644 --- a/vignette_effect.h +++ b/vignette_effect.h @@ -6,7 +6,6 @@ class VignetteEffect : public Effect { public: VignetteEffect(); - std::string output_vertex_shader(); std::string output_fragment_shader(); void set_uniforms(GLuint glsl_program_num, const std::string &prefix); diff --git a/vignette_effect.vert b/vignette_effect.vert deleted file mode 100644 index 44edeb8..0000000 --- a/vignette_effect.vert +++ /dev/null @@ -1,9 +0,0 @@ -uniform vec2 PREFIX(aspect_correction); -varying vec2 PREFIX(normalized_pos); - -vec2 FUNCNAME() -{ - vec2 temp = LAST_INPUT(); - PREFIX(normalized_pos) = (temp - PREFIX(center)) * PREFIX(aspect_correction); - return temp; -} -- 2.39.2