Skip to content
Snippets Groups Projects
Commit bcf60463 authored by Tofu Linden's avatar Tofu Linden
Browse files

port class1 ssreflections tweaks to class2 and class3

(transplanted from 19036fc277d88c364e957019a66b4cdf4cce8b53)
parent 5dce63d9
No related branches found
No related tags found
No related merge requests found
......@@ -298,17 +298,14 @@ void main()
// The goal of the blur is to soften reflections in surfaces
// with low shinyness, and also to disguise our lameness.
float checkerboard = floor(mod(tc.x+tc.y, 2.0)); // 0.0, 1.0
vec2 checkoffset = normalize(ref2d)*9.0*(1.0-spec.a)*(checkerboard-0.5);
ref2d += checkoffset;
float checkoffset = 1.0 + (7.0*(1.0-spec.a))*(checkerboard-0.5);
ref2d += vec2(checkoffset, checkoffset);
ref2d += tc.xy; // use as offset from destination
// Get attributes from the 2D guess point.
// We average two samples of diffuse (not of anything else) per
// pixel to try to reduce aliasing some more.
// ---------------------
// ^ ^ ^ ^ ^
// a . b o c . d check=0:avg(a,b) check=1:avg(c,d)
vec3 refcol = 0.5 * (texture2DRect(diffuseRect, ref2d).rgb +
texture2DRect(diffuseRect, ref2d + checkoffset*2.0).rgb);
vec3 refcol = 0.5 * (texture2DRect(diffuseRect, ref2d + vec2(0.0, -checkoffset)).rgb +
texture2DRect(diffuseRect, ref2d + vec2(-checkoffset, 0.0)).rgb);
float refdepth = texture2DRect(depthMap, ref2d).a;
vec3 refpos = getPosition_d(ref2d, refdepth).xyz;
float refshad = texture2DRect(lightMap, ref2d).r;
......
......@@ -301,17 +301,14 @@ void main()
// The goal of the blur is to soften reflections in surfaces
// with low shinyness, and also to disguise our lameness.
float checkerboard = floor(mod(tc.x+tc.y, 2.0)); // 0.0, 1.0
vec2 checkoffset = normalize(ref2d)*9.0*(1.0-spec.a)*(checkerboard-0.5);
ref2d += checkoffset;
float checkoffset = 1.0 + (7.0*(1.0-spec.a))*(checkerboard-0.5);
ref2d += vec2(checkoffset, checkoffset);
ref2d += tc.xy; // use as offset from destination
// Get attributes from the 2D guess point.
// We average two samples of diffuse (not of anything else) per
// pixel to try to reduce aliasing some more.
// ---------------------
// ^ ^ ^ ^ ^
// a . b o c . d check=0:avg(a,b) check=1:avg(c,d)
vec3 refcol = 0.5 * (texture2DRect(diffuseRect, ref2d).rgb +
texture2DRect(diffuseRect, ref2d + checkoffset*2.0).rgb);
vec3 refcol = 0.5 * (texture2DRect(diffuseRect, ref2d + vec2(0.0, -checkoffset)).rgb +
texture2DRect(diffuseRect, ref2d + vec2(-checkoffset, 0.0)).rgb);
float refdepth = texture2DRect(depthMap, ref2d).a;
vec3 refpos = getPosition_d(ref2d, refdepth).xyz;
float refshad = texture2DRect(lightMap, ref2d).r;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment