All shaders now import the GLSLCompat.glsllibnative-compilation-test
parent
12a2f0f63c
commit
d537a1c22e
@ -1,50 +0,0 @@ |
|||||||
#import "Common/ShaderLib/MultiSample.glsllib" |
|
||||||
|
|
||||||
uniform COLORTEXTURE m_Texture; |
|
||||||
uniform float m_SampleDist; |
|
||||||
uniform float m_SampleStrength; |
|
||||||
uniform float m_Samples[10]; |
|
||||||
|
|
||||||
in vec2 texCoord; |
|
||||||
out vec4 outFragColor; |
|
||||||
|
|
||||||
void main(void) |
|
||||||
{ |
|
||||||
// some sample positions |
|
||||||
//float samples[10] = float[](-0.08,-0.05,-0.03,-0.02,-0.01,0.01,0.02,0.03,0.05,0.08); |
|
||||||
|
|
||||||
// 0.5,0.5 is the center of the screen |
|
||||||
// so substracting texCoord from it will result in |
|
||||||
// a vector pointing to the middle of the screen |
|
||||||
vec2 dir = 0.5 - texCoord; |
|
||||||
|
|
||||||
// calculate the distance to the center of the screen |
|
||||||
float dist = sqrt(dir.x*dir.x + dir.y*dir.y); |
|
||||||
|
|
||||||
// normalize the direction (reuse the distance) |
|
||||||
dir = dir/dist; |
|
||||||
|
|
||||||
// this is the original colour of this fragment |
|
||||||
// using only this would result in a nonblurred version |
|
||||||
vec4 colorRes = getColor(m_Texture,texCoord); |
|
||||||
|
|
||||||
vec4 sum = colorRes; |
|
||||||
|
|
||||||
// take 10 additional blur samples in the direction towards |
|
||||||
// the center of the screen |
|
||||||
for (int i = 0; i < 10; i++){ |
|
||||||
sum += getColor( m_Texture, texCoord + dir * m_Samples[i] * m_SampleDist ); |
|
||||||
} |
|
||||||
|
|
||||||
// we have taken eleven samples |
|
||||||
sum *= 1.0/11.0; |
|
||||||
|
|
||||||
// weighten the blur effect with the distance to the |
|
||||||
// center of the screen ( further out is blurred more) |
|
||||||
float t = dist * m_SampleStrength; |
|
||||||
t = clamp( t ,0.0,1.0); //0 <= t <= 1 |
|
||||||
|
|
||||||
//Blend the original color with the averaged pixels |
|
||||||
outFragColor =mix( colorRes, sum, t ); |
|
||||||
|
|
||||||
} |
|
Loading…
Reference in new issue