瀏覽代碼

Update decals

ShiroSmith 6 年之前
父節點
當前提交
c3a4425e17
共有 1 個文件被更改,包括 6 次插入3 次删除
  1. 6 3
      h3d/shader/pbr/VolumeDecal.hx

+ 6 - 3
h3d/shader/pbr/VolumeDecal.hx

@@ -65,7 +65,7 @@ class DecalOverlay extends hxsl.Shader {
 			pixelTransformedPosition = ppos.xyz / ppos.w;
 			var pos = (wpos.xyz / wpos.w);
 			calculatedUV = pos.xy;
-			var fadeFactor = 1 - clamp( pow( max( 0.0, abs(pos.z) - fadeStart) / (fadeEnd - fadeStart), fadePower), 0, 1);
+			var fadeFactor = 1 - clamp( pow( max( 0.0, abs(pos.z * 2) - fadeStart) / (fadeEnd - fadeStart), fadePower), 0, 1);
 
 			if( CENTERED )
 				calculatedUV += 0.5;
@@ -75,6 +75,7 @@ class DecalOverlay extends hxsl.Shader {
 
 			var color = colorTexture.get(calculatedUV);
 			pixelColor = color + color * emissive;
+			pixelColor.a *= fadeFactor;
 		}
 	}
 
@@ -117,6 +118,7 @@ class DecalPBR extends hxsl.Shader {
 			albedoStrength : Float,
 			normalStrength : Float,
 			pbrStrength : Float,
+			emissiveStrength : Float,
 		};
 
 		@const var CENTERED : Bool;
@@ -190,7 +192,7 @@ class DecalPBR extends hxsl.Shader {
 			pixelTransformedPosition = ppos.xyz / ppos.w;
 			var pos = (wpos.xyz / wpos.w);
 			calculatedUV = pos.xy;
-			var fadeFactor = 1 - clamp( pow( max( 0.0, abs(pos.z) - fadeStart) / (fadeEnd - fadeStart), fadePower), 0, 1);
+			var fadeFactor = 1 - clamp( pow( max( 0.0, abs(pos.z * 2) - fadeStart) / (fadeEnd - fadeStart), fadePower), 0, 1);
 
 			if( CENTERED )
 				calculatedUV += 0.5;
@@ -235,10 +237,11 @@ class DecalPBR extends hxsl.Shader {
 			output.metalness = prbValues.r;
 			output.roughness = prbValues.g;
 			output.occlusion = prbValues.b;
-			output.emissive = emissive * pixelColor.a;
+			output.emissive = emissive;
 			output.albedoStrength = strength.r * fadeFactor;
 			output.normalStrength = strength.g * fadeFactor;
 			output.pbrStrength = strength.b * fadeFactor;
+			output.emissiveStrength = fadeFactor;
 		}
 	};