瀏覽代碼

disable ghosting due to sky giving wrong position

Nicolas Cannasse 4 年之前
父節點
當前提交
a0e8d5df46
共有 1 個文件被更改,包括 4 次插入1 次删除
  1. 4 1
      hrt/prefab/rfx/TemporalFiltering.hx

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

@@ -78,10 +78,13 @@ class TemporalFilteringShader extends h3d.shader.ScreenShader {
 			}
 		}
 
+		var isSky : Bool;
+
 		function getPixelPosition( uv : Vec2 ) : Vec3 {
 			var d = PACKED_DEPTH ? unpack(depthTexture.get(uv)) : depthChannel.get(uv).r;
 			var tmp = vec4(uvToScreen(uv), d, 1) * cameraInverseViewProj;
 			tmp.xyz /= tmp.w;
+			isSky = d <= 0;
 			return tmp.xyz;
 		}
 
@@ -112,7 +115,7 @@ class TemporalFilteringShader extends h3d.shader.ScreenShader {
 				m2 = sqrt(m2 / 5.0 - m1 * m1);
 				prevColor = max(vec3(0.0), ycocg2rgb(clipToAABB(rgb2ycocg(prevColor), rgb2ycocg(curColor), m1, m2)));
 			}
-			pixelColor.rgb = mix(curColor, prevColor, amount);
+			pixelColor.rgb = isSky ? curColor : mix(curColor, prevColor, amount);
 			pixelColor.a = 1.0;
 		}
 	}