diff --git a/CityGame/Classes/Rendering/Particles/Explosion.cs b/CityGame/Classes/Rendering/Particles/Explosion.cs index a9493d0..55b9656 100644 --- a/CityGame/Classes/Rendering/Particles/Explosion.cs +++ b/CityGame/Classes/Rendering/Particles/Explosion.cs @@ -82,7 +82,7 @@ public sealed class Explosion : ParticleEmitter, IParticleHandler public void Draw(ref ParticleDrawContext context) { context.Effect.Parameters["view_projection"].SetValue(context.View * context.Projection); - context.Effect.Parameters["color"].SetValue(this.Color.ToVector3()); + context.Effect.Parameters["color"].SetValue(this.Color.ToVector4()); diff --git a/CityGame/Classes/Rendering/Particles/explosion.cfx b/CityGame/Classes/Rendering/Particles/explosion.cfx index 63b6f12..acabad6 100644 Binary files a/CityGame/Classes/Rendering/Particles/explosion.cfx and b/CityGame/Classes/Rendering/Particles/explosion.cfx differ diff --git a/CityGame/Classes/Rendering/Particles/explosion.fx b/CityGame/Classes/Rendering/Particles/explosion.fx index 7774a2a..e05b6da 100644 --- a/CityGame/Classes/Rendering/Particles/explosion.fx +++ b/CityGame/Classes/Rendering/Particles/explosion.fx @@ -15,7 +15,7 @@ int pixelSize; float timing; float2 noiseOffset; -float3 color; +float4 color; #define BLUR_KERNEL_X_MIN -0.5 #define BLUR_KERNEL_X_MAX 0.5 @@ -108,7 +108,8 @@ float4 SpritePixelShader(PixelInput p) : SV_TARGET { val = val + calculateAlpha(relPos, noiseCoord); float noiseResult = getNoise(noiseCoord).r; - float3 resultColor = color * lerp(0.5, 1, noiseResult); + float3 resultColor = color.rgb * lerp(0.5, 1, noiseResult); + val *= color.a; return float4(resultColor,val); }