180 likes | 333 Views
Soft Particles. Petter 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
E N D
Soft Particles Petter Börjesson, Mattias Thell
ParticleEffects • 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 1 – input if input > 0.5 Where X = Input otherwise
DepthValues • 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 Pass 1 Pass 2 VertexShader VertexShader Geo. Shader Geo. Shader creates sprites Scene Z Pixel Shader Sprite Z Pixel Shader Color Buffer DepthBuffer Color Buffer
Rendertarget Pass 1 Pass 2 VertexShader VertexShader Geo. Shader Geo. Shader creates sprites Scene Z Pixel Shader Sprite Z Pixel Shader Render Target Color Buffer DepthBuffer Color Buffer
2D Particles with depth • Store extra depth values in spritetexture • During comparisonadd extra depth
2D Particles with depth Billboards Billboards with depth
VolumetricParticles • Enclose sprite in an imaginary sphere and trace rays through each pixel. Sphere Ray Sprite Camera
VolumetricParticles • Find intersections with the sphere and step through. Sphere Ray Sprite Camera
VolumetricParticles • Stop if we collide with the depth buffer. • Do blending as before. Depth buffer Ray Camera
VolumetricParticles Billboards with depth Volumetric
Performance • FPS with GTX 260 – 1280x1024 Hard Soft Mountain 215 215 Tank demo: Billboard 480 360 With depth 420 330 Volumetric 65 60