From cd48894563052baeddff64f6bbc13ccc7fa6e081 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Thu, 19 Feb 2015 20:10:11 -0500 Subject: Added CRT mesh! Also a character sprite, changed up the map file format, fixed some shader bugs --- shaders/bloom2.fragment | 3 ++- shaders/final.fragment | 12 ++++++------ shaders/final.vertex | 7 ++++--- shaders/ntsc.fragment | 7 ++++--- 4 files changed, 16 insertions(+), 13 deletions(-) (limited to 'shaders') diff --git a/shaders/bloom2.fragment b/shaders/bloom2.fragment index ac18124..aa69f0f 100644 --- a/shaders/bloom2.fragment +++ b/shaders/bloom2.fragment @@ -51,9 +51,10 @@ void main() } vec3 bloom_c = (sum / vec4(NUM_TAPS)).rgb; + bloom_c *= bloom_c; //bloom_c = vec3(bloom_c.r*bloom_c.r, bloom_c.g*bloom_c.g, bloom_c.b*bloom_c.b); //bloom_c = vec3(bloom_c.r*bloom_c.r, bloom_c.g*bloom_c.g, bloom_c.b*bloom_c.b); - bloom_c = max(bloom_c - 0.25, vec3(0,0,0)); + //bloom_c = max(bloom_c - 0.25, vec3(0,0,0)); color = texture(screenTex, UV).rgb + bloom_c; } diff --git a/shaders/final.fragment b/shaders/final.fragment index 5feccb9..7eeb78e 100644 --- a/shaders/final.fragment +++ b/shaders/final.fragment @@ -15,14 +15,14 @@ const vec2 UVScalar = vec2(1.0, 1.0); const vec2 UVOffset = vec2(0.0, 0.0); const vec2 CRTMask_Scale = vec2(85.0, 153.6)*4.0; const vec2 CRTMask_Offset = vec2(0.0, 0.0); -const float Tuning_Overscan = 1.0; +const float Tuning_Overscan = 1.08; const float Tuning_Dimming = 0.0; -const float Tuning_Satur = 1.35; +const float Tuning_Satur = 1.0; const float Tuning_ReflScalar = 0.3; const float Tuning_Barrel = 0; //0.12; -const float Tuning_Scanline_Brightness = 0.5; +const float Tuning_Scanline_Brightness = 0.45; const float Tuning_Scanline_Opacity = 0.5; -const float Tuning_Diff_Brightness = 0.5; +const float Tuning_Diff_Brightness = 0.75; const float Tuning_Spec_Brightness = 0.35; const float Tuning_Spec_Power = 50.0; const float Tuning_Fres_Brightness = 1.0; @@ -86,7 +86,7 @@ void main() vec4 emissive = sampleCRT(UV); vec4 nearfinal = colorfres + colordiff + colorspec + emissive; - vec4 final = nearfinal * mix(vec4(1,1,1,1), vec4(0,0,0,0), Tuning_Dimming); + //vec4 final = nearfinal * mix(vec4(1,1,1,1), vec4(0,0,0, 0), Tuning_Dimming); - color = final.rgb; + color = nearfinal.rgb; } diff --git a/shaders/final.vertex b/shaders/final.vertex index dda8626..4c5b1d5 100644 --- a/shaders/final.vertex +++ b/shaders/final.vertex @@ -2,6 +2,7 @@ layout(location = 0) in vec3 vertexPosition_modelspace; layout(location = 1) in vec3 vertexNormal; +layout(location = 2) in vec2 vertexUV; out vec2 UV; out vec3 normIn; @@ -12,18 +13,18 @@ out vec3 lightDirIn; uniform mat4 MVP; uniform mat4 worldMat; -const vec3 Tuning_LightPos = vec3(1, 1, 1.0); +const vec3 Tuning_LightPos = vec3(1, 1, -1.0); void main() { gl_Position = MVP * vec4(vertexPosition_modelspace,1); - UV = (vertexPosition_modelspace.xy+vec2(1,1))/2.0; + UV = vertexUV; normIn = vertexNormal; mat3 invWorldRot = transpose(mat3(worldMat[0].xyz, worldMat[1].xyz, worldMat[2].xyz)); //mat3 invWorldRot = mat3(1.0f); vec3 worldPos = (worldMat * vec4(vertexPosition_modelspace,1)).xyz; - camDirIn = invWorldRot * (vec3(0,0,1) - worldPos); + camDirIn = invWorldRot * (vec3(2,0,0) - worldPos); //camDir = worldPos; lightDirIn = invWorldRot * (Tuning_LightPos - worldPos); //vec4 vertPos4 = vec4(vertexPosition_modelspace,1); diff --git a/shaders/ntsc.fragment b/shaders/ntsc.fragment index 12d6873..ceab64d 100644 --- a/shaders/ntsc.fragment +++ b/shaders/ntsc.fragment @@ -8,8 +8,8 @@ uniform sampler2D curFrameSampler; uniform sampler2D NTSCArtifactSampler; uniform sampler2D prevFrameSampler; -const float Tuning_Sharp = 0.8; -const vec4 Tuning_Persistence = vec4(0.7,0.7,0.7,0.7); +const float Tuning_Sharp = 0.25; +const vec4 Tuning_Persistence = vec4(1.0) * 0.5; const float Tuning_Bleed = 0.5; const float Tuning_NTSC = 0.35; uniform float NTSCLerp; @@ -29,6 +29,7 @@ void main() vec4 NTSCArtifact1 = texture(NTSCArtifactSampler, UV); vec4 NTSCArtifact2 = texture(NTSCArtifactSampler, UV + RcpScrHeight); vec4 NTSCArtifact = mix(NTSCArtifact1, NTSCArtifact2, NTSCLerp); + vec4 TunedNTSC = NTSCArtifact * Tuning_NTSC; vec2 LeftUV = UV - RcpScrWidth; vec2 RightUV = UV + RcpScrWidth; @@ -41,7 +42,7 @@ void main() vec4 Prev_Local = texture(prevFrameSampler, UV); vec4 Prev_Right = texture(prevFrameSampler, RightUV); - Cur_Local = clamp(Cur_Local + (((Cur_Left - Cur_Local) + (Cur_Right - Cur_Local)) * Tuning_NTSC), vec4(0,0,0,0), vec4(1,1,1,1)); + Cur_Local = clamp(Cur_Local + (((Cur_Left - Cur_Local) + (Cur_Right - Cur_Local)) * TunedNTSC), vec4(0,0,0,0), vec4(1,1,1,1)); float curBrt = Brightness(Cur_Local); float offset = 0; -- cgit 1.4.1