Pārlūkot izejas kodu

TAA : Added keep alpha option

TothBenoit 2 mēneši atpakaļ
vecāks
revīzija
2dd54d1c01
1 mainītis faili ar 7 papildinājumiem un 1 dzēšanām
  1. 7 1
      hrt/prefab/rfx/TemporalFiltering.hx

+ 7 - 1
hrt/prefab/rfx/TemporalFiltering.hx

@@ -22,6 +22,7 @@ class TemporalFilteringShader extends h3d.shader.ScreenShader {
 		@param var depthChannel : Channel;
 		@param var depthTexture : Sampler2D;
 
+		@const var KEEP_ALPHA : Bool;
 		@const var KEEP_SKY_ALPHA : Bool;
 
 		var isSky : Bool;
@@ -155,7 +156,9 @@ class TemporalFilteringShader extends h3d.shader.ScreenShader {
 
 			pixelColor.rgb = ycocg2rgb(mix(curColor, prevColor, blendFactor));
 
-			if ( KEEP_SKY_ALPHA )
+			if ( KEEP_ALPHA )
+				pixelColor.a = curSample.a;
+			else if ( KEEP_SKY_ALPHA )
 				pixelColor.a = isSky ? curSample.a : 1.0;
 			else
 				pixelColor.a = 1.0;
@@ -173,6 +176,7 @@ class TemporalFiltering extends hrt.prefab.rfx.RendererFX {
 	@:s public var jitterPattern : FrustumJitter.Pattern = Halton_2_3_x8;
 	@:s public var jitterScale : Float = 0.5;
 	@:s public var renderMode : String = "AfterTonemapping";
+	@:s public var keepAlpha : Bool = false;
 	@:s public var keepSkyAlpha : Bool = false;
 
 	public var frustumJitter = new FrustumJitter();
@@ -259,6 +263,7 @@ class TemporalFiltering extends hrt.prefab.rfx.RendererFX {
 			}
 			s.VELOCITY = useVelocity;
 
+			s.KEEP_ALPHA = keepAlpha;
 			s.KEEP_SKY_ALPHA = keepSkyAlpha;
 
 			r.setTarget(output, NotBound);
@@ -314,6 +319,7 @@ class TemporalFiltering extends hrt.prefab.rfx.RendererFX {
 							<option value="BeforeTonemapping">Before Tonemapping</option>
 							<option value="AfterTonemapping">After Tonemapping</option>
 						</select></dd>
+					<dt>Keep alpha</dt><dd><input type="checkbox" field="keepAlpha"/></dd>
 					<dt>Keep sky alpha</dt><dd><input type="checkbox" field="keepSkyAlpha"/></dd>
 				</div>
 			</dl>