Prechádzať zdrojové kódy

Adding Sao start fade.

clementlandrin 3 mesiacov pred
rodič
commit
8b68deae9c
1 zmenil súbory, kde vykonal 9 pridanie a 2 odobranie
  1. 9 2
      h3d/shader/SAO.hx

+ 9 - 2
h3d/shader/SAO.hx

@@ -15,6 +15,7 @@ class SAO extends ScreenShader {
 		@range(4,30) @const(127) var numSamples : Int;
 		@range(1,10) @const(16) var numSpiralTurns : Int;
 		@const var useWorldUV : Bool;
+		@const var USE_START_FADE : Bool = false;
 		@const var USE_FADE : Bool = false;
 		@const var USE_SCALABLE_BIAS : Bool = false;
 
@@ -32,6 +33,9 @@ class SAO extends ScreenShader {
 		@ignore @param var screenRatio : Vec2;
 		@ignore @param var fovTan : Float;
 
+		@param var startFadeStart : Float;
+		@param var startFadeEnd : Float;
+
 		@param var fadeStart : Float;
 		@param var fadeEnd : Float;
 
@@ -94,9 +98,12 @@ class SAO extends ScreenShader {
 			occlusion = 1.0 - occlusion / float(numSamples);
 			occlusion = pow(occlusion, 1.0 + intensity).saturate();
 
-			if ( USE_FADE ) {
+			if ( USE_START_FADE || USE_FADE ) {
 				var dist = distance(origin, camera.position);
-				occlusion = mix(occlusion, 1.0, saturate((dist - fadeStart) / (fadeEnd - fadeStart)));
+				if ( USE_START_FADE )
+					occlusion = mix(1.0, occlusion, saturate((dist - startFadeStart) / (startFadeEnd - startFadeStart)));
+				if ( USE_FADE )
+					occlusion = mix(occlusion, 1.0, saturate((dist - fadeStart) / (fadeEnd - fadeStart)));
 			}
 
 			output.color = vec4(occlusion.xxx, 1.);