diff options
| author | SmileTheory <SmileTheory@gmail.com> | 2016-03-10 03:44:21 -0800 | 
|---|---|---|
| committer | Tim Angus <tim@ngus.net> | 2016-04-07 11:54:14 +0100 | 
| commit | 46cb9a5112fecbdf152bccf692d89bfca564e987 (patch) | |
| tree | 45ef8756f9fd27d1256500758ad01946ccbf90b6 /src/renderergl2/glsl | |
| parent | 026f8e89306cc9783c40d75f300c77ab8688cf9b (diff) | |
OpenGL2: Fixes to depth blur and ssao.
Diffstat (limited to 'src/renderergl2/glsl')
| -rw-r--r-- | src/renderergl2/glsl/depthblur_fp.glsl | 11 | ||||
| -rw-r--r-- | src/renderergl2/glsl/ssao_fp.glsl | 5 | 
2 files changed, 10 insertions, 6 deletions
diff --git a/src/renderergl2/glsl/depthblur_fp.glsl b/src/renderergl2/glsl/depthblur_fp.glsl index 60a261c5..a5b264fd 100644 --- a/src/renderergl2/glsl/depthblur_fp.glsl +++ b/src/renderergl2/glsl/depthblur_fp.glsl @@ -4,6 +4,7 @@ uniform sampler2D u_ScreenDepthMap;  uniform vec4   u_ViewInfo; // zfar / znear, zfar, 1/width, 1/height  varying vec2   var_ScreenTex; +//float gauss[8] = float[8](0.17, 0.17, 0.16, 0.14, 0.12, 0.1, 0.08, 0.06);  //float gauss[5] = float[5](0.30, 0.23, 0.097, 0.024, 0.0033);  float gauss[4] = float[4](0.40, 0.24, 0.054, 0.0044);  //float gauss[3] = float[3](0.60, 0.19, 0.0066); @@ -11,15 +12,17 @@ float gauss[4] = float[4](0.40, 0.24, 0.054, 0.0044);  float getLinearDepth(sampler2D depthMap, const vec2 tex, const float zFarDivZNear)  { -	float sampleZDivW = texture2D(depthMap, tex).r; +	// depth is upside down? +	float sampleZDivW = texture2D(depthMap, vec2(tex.x, 1.0 - tex.y)).r;  	return 1.0 / mix(zFarDivZNear, 1.0, sampleZDivW);  }  vec4 depthGaussian1D(sampler2D imageMap, sampler2D depthMap, vec2 tex, float zFarDivZNear, float zFar, vec2 scale)  {  	float depthCenter = getLinearDepth(depthMap, tex, zFarDivZNear); -	//scale /= zFarDivZNear * depthCenter; -	//int blurSteps = int(float(BLUR_SIZE) / (zFarDivZNear * depthCenter)); + +	// enable for less blurring for farther objects +	//scale /= min(zFarDivZNear * depthCenter / 32.0, 2.0);  #if defined(USE_HORIZONTAL_BLUR)      vec2 direction = vec2(scale.x, 0.0); @@ -64,5 +67,5 @@ vec4 depthGaussian1D(sampler2D imageMap, sampler2D depthMap, vec2 tex, float zFa  void main()  { -	gl_FragColor = depthGaussian1D(u_ScreenImageMap, u_ScreenDepthMap, var_ScreenTex, u_ViewInfo.x, u_ViewInfo.y, u_ViewInfo.zw); +	gl_FragColor = depthGaussian1D(u_ScreenImageMap, u_ScreenDepthMap, var_ScreenTex, u_ViewInfo.x, u_ViewInfo.y, u_ViewInfo.wz);  } diff --git a/src/renderergl2/glsl/ssao_fp.glsl b/src/renderergl2/glsl/ssao_fp.glsl index 84f18cb7..1714c2be 100644 --- a/src/renderergl2/glsl/ssao_fp.glsl +++ b/src/renderergl2/glsl/ssao_fp.glsl @@ -40,7 +40,8 @@ mat2 randomRotation( const vec2 p )  float getLinearDepth(sampler2D depthMap, const vec2 tex, const float zFarDivZNear)  { -	float sampleZDivW = texture2D(depthMap, tex).r; +	// depth is upside down? +	float sampleZDivW = texture2D(depthMap, vec2(tex.x, 1.0 - tex.y)).r;  	return 1.0 / mix(zFarDivZNear, 1.0, sampleZDivW);  } @@ -80,7 +81,7 @@ float ambientOcclusion(sampler2D depthMap, const vec2 tex, const float zFarDivZN  void main()  { -	float result = ambientOcclusion(u_ScreenDepthMap, var_ScreenTex, u_ViewInfo.x, u_ViewInfo.y, u_ViewInfo.zw); +	float result = ambientOcclusion(u_ScreenDepthMap, var_ScreenTex, u_ViewInfo.x, u_ViewInfo.y, u_ViewInfo.wz);  	gl_FragColor = vec4(vec3(result), 1.0);  }  | 
