Created
February 3, 2010 23:23
-
-
Save auroranockert/294178 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
float sample_delta(sampler src, float x, float y) { | |
return 1.0 - sample(src, samplerCoord(src) + vec2(x, y)).r; | |
} | |
float fun_a(float p2, float p3, float p4, float p5, float p6, float p7, float p8, float p9) { | |
float b1 = step(0.5, p3 - p2); | |
float b2 = step(0.5, p4 - p3); | |
float b3 = step(0.5, p5 - p4); | |
float b4 = step(0.5, p6 - p5); | |
float b5 = step(0.5, p7 - p6); | |
float b6 = step(0.5, p8 - p7); | |
float b7 = step(0.5, p9 - p8); | |
float b8 = step(0.5, p2 - p9); | |
return b1 + b2 + b3 + b4 + b5 + b6 + b7 + b8; | |
} | |
float fun_b(float p2, float p3, float p4, float p5, float p6, float p7, float p8, float p9) { | |
return p2 + p3 + p4 + p5 + p6 + p7 + p8 + p9; | |
} | |
kernel vec4 thinEffectStepOne(sampler src) { | |
float p2 = sample_delta(src, 0.0, 1.0); | |
float p3 = sample_delta(src, 1.0, 1.0); | |
float p4 = sample_delta(src, 1.0, 0.0); | |
float p5 = sample_delta(src, 1.0, -1.0); | |
float p6 = sample_delta(src, 0.0, -1.0); | |
float p7 = sample_delta(src, -1.0, -1.0); | |
float p8 = sample_delta(src, -1.0, 0.0); | |
float p9 = sample_delta(src, -1.0, 1.0); | |
// COMMON | |
float c1 = 1.0 - step(2.5, abs(fun_b(p2, p3, p4, p5, p6, p7, p8, p9) - 4.0)); | |
float c2 = 1.0 - step(0.5, abs(fun_a(p2, p3, p4, p5, p6, p7, p8, p9) - 1.0)); | |
// FIRST | |
float c1_3 = 1.0 - p2 * p4 * p6; | |
float c1_4 = 1.0 - p4 * p6 * p8; | |
// SECOND | |
// float c2_3 = 1.0 - p2 * p4 * p8; | |
// float c2_4 = 1.0 - p2 * p6 * p8; | |
float color = sample_delta(src, 0.0, 0.0); | |
// RESULT | |
float result = 1.0 - color * (1.0 - c1 * c2 * c1_3 * c1_4); | |
// float result = 1.0 - color * (1.0 - c1 * c2 * c2_3 * c2_4); | |
return vec4(result, result, result, 1.0); | |
} | |
kernel vec4 thinEffectStepTwo(sampler src) { | |
float p2 = sample_delta(src, 0.0, 1.0); | |
float p3 = sample_delta(src, 1.0, 1.0); | |
float p4 = sample_delta(src, 1.0, 0.0); | |
float p5 = sample_delta(src, 1.0, -1.0); | |
float p6 = sample_delta(src, 0.0, -1.0); | |
float p7 = sample_delta(src, -1.0, -1.0); | |
float p8 = sample_delta(src, -1.0, 0.0); | |
float p9 = sample_delta(src, -1.0, 1.0); | |
// COMMON | |
float c1 = 1.0 - step(2.5, abs(fun_b(p2, p3, p4, p5, p6, p7, p8, p9) - 4.0)); | |
float c2 = 1.0 - step(0.5, abs(fun_a(p2, p3, p4, p5, p6, p7, p8, p9) - 1.0)); | |
// FIRST | |
// float c1_3 = 1.0 - p2 * p4 * p6; | |
// float c1_4 = 1.0 - p4 * p6 * p8; | |
// SECOND | |
float c2_3 = 1.0 - p2 * p4 * p8; | |
float c2_4 = 1.0 - p2 * p6 * p8; | |
float color = sample_delta(src, 0.0, 0.0); | |
// RESULT | |
// float result = 1.0 - color * (1.0 - c1 * c2 * c1_3 * c1_4); | |
float result = 1.0 - color * (1.0 - c1 * c2 * c2_3 * c2_4); | |
return vec4(result, result, result, 1.0); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment