From 7116847ffbb2e1d5af7aba4eed3088cbc13cc423 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Thu, 16 Jul 2026 20:40:23 +0100 Subject: [PATCH] Restore fog history alpha contract --- Assets/Editor/AetheriaGravityFogVerifier.cs | 6 ++++++ Assets/Shaders/Raymarching/CloudShader.shader | 8 +++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Assets/Editor/AetheriaGravityFogVerifier.cs b/Assets/Editor/AetheriaGravityFogVerifier.cs index d9d380725..27eddd009 100644 --- a/Assets/Editor/AetheriaGravityFogVerifier.cs +++ b/Assets/Editor/AetheriaGravityFogVerifier.cs @@ -30,6 +30,12 @@ namespace Aetheria.Editor if (second < 0) throw new InvalidOperationException( "Gravity-fog raymarching and temporal reprojection must both use the historical positive-Z Unity shader camera transform."); + + const string directHistoryDensity = "saturate(currSample.a) * _CompositeOpacity"; + if (source.IndexOf(directHistoryDensity, StringComparison.Ordinal) < 0 || + source.IndexOf("unpack(currSample.a", StringComparison.Ordinal) >= 0) + throw new InvalidOperationException( + "Gravity-fog composite must consume the temporal history's direct density alpha without unpacking it as a raymarch payload."); } } } diff --git a/Assets/Shaders/Raymarching/CloudShader.shader b/Assets/Shaders/Raymarching/CloudShader.shader index 12efb6a55..fd48147e6 100644 --- a/Assets/Shaders/Raymarching/CloudShader.shader +++ b/Assets/Shaders/Raymarching/CloudShader.shader @@ -339,7 +339,6 @@ Shader "Aetheria/CloudShader" #pragma fragment frag #include "UnityCG.cginc" - #include "Assets/Shaders/PackFloat.cginc" sampler2D _CloudTex; //The full resolution cloud tex we generated. sampler2D _CameraDepthTexture; @@ -369,10 +368,9 @@ Shader "Aetheria/CloudShader" half4 frag(v2f i) : SV_Target { float4 currSample = tex2D(_CloudTex, i.uv); - float distance; - float density; - unpack(currSample.a, distance, density); - return half4(currSample.rgb * _CompositeOpacity, saturate(density) * _CompositeOpacity); + return half4( + currSample.rgb * _CompositeOpacity, + saturate(currSample.a) * _CompositeOpacity); } ENDCG }