From e83849f6a06bae6fd1a0ea093f7dd7b37c47ab69 Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Sat, 20 Dec 2025 20:43:03 -0600 Subject: [PATCH] particle alpha inflkuence on glow --- .../BaseGame/game/core/rendering/shaders/gl/particlesP.glsl | 5 +++-- .../BaseGame/game/core/rendering/shaders/particlesP.hlsl | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Templates/BaseGame/game/core/rendering/shaders/gl/particlesP.glsl b/Templates/BaseGame/game/core/rendering/shaders/gl/particlesP.glsl index b5311267a..5c0463c93 100644 --- a/Templates/BaseGame/game/core/rendering/shaders/gl/particlesP.glsl +++ b/Templates/BaseGame/game/core/rendering/shaders/gl/particlesP.glsl @@ -108,9 +108,10 @@ void main() vec3 colorScale = ( alphaFactor < 0.0 ? IN_color.rgb * diffuse.rgb : vec3( alphaFactor > 0.0 ? IN_color.a * diffuse.a * alphaFactor * softBlend : softBlend ) ); if (glow) { - vec3 glowCol = (IN_color * diffuse).rgb*10;//pow((IN_color * diffuse).rgb*10,3.54406804435); + float alphaLim = IN_color.a * diffuse.a; + vec3 glowCol = (IN_color * diffuse).rgb*10; glowCol*=glowCol*glowCol*0.54406804435; - colorScale *= glowCol.rgb; + colorScale *= glowCol.rgb*alphaLim; } OUT_col = hdrEncode( vec4( IN_color.rgb * diffuse.rgb * colorScale, IN_color.a * diffuse.a * softBlend * alphaScale ) ); diff --git a/Templates/BaseGame/game/core/rendering/shaders/particlesP.hlsl b/Templates/BaseGame/game/core/rendering/shaders/particlesP.hlsl index f6cd1ebb2..87c455136 100644 --- a/Templates/BaseGame/game/core/rendering/shaders/particlesP.hlsl +++ b/Templates/BaseGame/game/core/rendering/shaders/particlesP.hlsl @@ -105,8 +105,9 @@ float4 main( Conn IN ) : TORQUE_TARGET0 float3 colorScale = ( alphaFactor < 0.0 ? IN.color.rgb * diffuse.rgb : ( alphaFactor > 0.0 ? IN.color.a * diffuse.a * alphaFactor * softBlend : softBlend ) ); if (glow) { - float4 glowCol = float4(pow(max((IN.color * diffuse).rgb*10,0.0),3.54406804435),(IN.color * diffuse).a); - colorScale *= glowCol.rgb; + float alphaLim = IN.color.a * diffuse.a; + float3 glowCol = pow(max((IN.color * diffuse).rgb*10,0.0),3.54406804435); + colorScale *= glowCol*alphaLim; } return hdrEncode( float4( IN.color.rgb * diffuse.rgb * colorScale, IN.color.a * diffuse.a * softBlend * alphaScale ) );