Soft Particles
description
Transcript of Soft Particles
Soft ParticlesPetter Börjesson, Mattias Thell
Particle Effects
• Smoke, fire, explosions, clouds, etc
• Camera-aligned 2D quads– Gives the illusion of a 3D volume
Illusion breakers
• Intersection with world geometry
To the rescue!
• Soft Particles– Soften the edges
• Use depth information to blend the sprite with the background
Compare Z values
• Compare Sprite Z vs World Z
• Check distance and blendif needed
Blending
• Simple approach:D = saturate((Zscene – Zparticle) * scale)
• Can produce artifacts
• Better approach:D = 0.5 * saturate(2*X)Contrast
Where X =1 – input if input > 0.5
Input otherwise
Depth Values
• How do we get depth information?
• Paper presents two ways:– Access depth buffer in pixel shader (DX 10)– Use a render target to read depth information
Read Z in pixel shader
Vertex Shader
Geo. Shader
Pixel Shader
Depth Buffer
Color Buffer
Pass 1
Vertex Shader
Geo. Shadercreates sprites
Pixel Shader
Color Buffer
Pass 2
Sprite Z
Scene Z
Render target
Vertex Shader
Geo. Shader
Pixel Shader
Depth Buffer
Color Buffer
Pass 1
Vertex Shader
Geo. Shadercreates sprites
Pixel Shader
Color Buffer
Pass 2
Sprite Z
Scene Z
Render Target
2D Particles with depth
• Store extra depth values in spritetexture
• During comparisonadd extra depth
2D Particles with depth
Billboards Billboards with depth
Volumetric Particles
• Enclose sprite in an imaginary sphere and trace rays through each pixel.
Sprite
Sphere
Ray
Camera
Volumetric Particles
• Find intersections with the sphere and step through.
Sprite
Sphere
Ray
Camera
Volumetric Particles
• Stop if we collide with the depth buffer.• Do blending as before.
Ray
Camera
Depth buffer
Volumetric Particles
Billboards with depth Volumetric
Demo!
Performance
• FPS with GTX 260 – 1280x1024
SoftHard
Mountain 215 215
Billboard 480 360
Tank demo:
With depth 420 330
Volumetric 65 60
Questions?