Particle Systems (Motion Machines of 2D Objects with Textures) Matthew K. Bowles Advanced Computer Graphics Spring 2004.

Slides:



Advertisements
Similar presentations
8.1si31_2001 SI31 Advanced Computer Graphics AGR Lecture 8 Polygon Rendering.
Advertisements

Lecture 8 Transparency, Mirroring
Compositing and Blending Ed Angel Professor Emeritus of Computer Science University of New Mexico 1 E. Angel and D. Shreiner: Interactive Computer Graphics.
Texture Mapping. Texturing  process that modifies the appearance of each point on a surface using an image or function  any aspect of appearance can.
Week 7 - Monday.  What did we talk about last time?  Specular shading  Aliasing and antialiasing.
Compositing and Blending Mohan Sridharan Based on slides created by Edward Angel 1 CS4395: Computer Graphics.
Blending MAE152 Computer Graphics for Engineers and Scientists Fall 03.
Compositing and Blending - Chapter 8 modified by Ray Wisman Ed Angel Professor of Computer Science, Electrical and Computer Engineering,
Image Compositing Angel 8.11 Angel: Interactive Computer Graphics5E © Addison-Wesley
1 Computer Graphics Chapter 7 3D Object Modeling.
Computer Graphics - Class 10
1Notes  Textbook: matchmove 6.7.2, B.9. 2 Match Move  For combining CG effects with real footage, need to match synthetic camera to real camera: “matchmove”
Chapter 6: Vertices to Fragments Part 2 E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley Mohan Sridharan Based on Slides.
Particle Systems 1 Adapted from: E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012.
Particle Systems and Fuzzy Shapes Presented by Dan Cogswell.
Particle Systems GPU Graphics. Sample Particle System Fire and SmokeWater.
1 CSCE 441: Computer Graphics Hidden Surface Removal (Cont.) Jinxiang Chai.
1cs426-winter-2008 Notes. 2 Velocity fields  Velocity field could be a combination of pre-designed velocity elements E.g. explosions, vortices, …  Or.
7/2/2006Based on: Angel (4th Edition) & Akeine-Möller & Haines (2nd Edition)1 CSC345: Advanced Graphics & Virtual Environments Lecture 4: Visual Appearance.
1cs426-winter-2008 Notes  Assignment 1 is out, due immediately after reading week (Feb 25)  Please read: William T. Reeves, "Particle systems: a technique.
09/18/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Bump Mapping Multi-pass algorithms.
Shadows Computer Graphics. Shadows Shadows Extended light sources produce penumbras In real-time, we only use point light sources –Extended light sources.
1 Perception, Illusion and VR HNRS 299, Spring 2008 Lecture 19 Other Graphics Considerations Review.
CO1301: Games Concepts Dr Nick Mitchell (Room CM 226) Material originally prepared by Gareth Bellaby.
Programmable Pipelines. Objectives Introduce programmable pipelines ­Vertex shaders ­Fragment shaders Introduce shading languages ­Needed to describe.
Programmable Pipelines. 2 Objectives Introduce programmable pipelines ­Vertex shaders ­Fragment shaders Introduce shading languages ­Needed to describe.
Particle Systems – Technique for Modeling a Class of Fuzzy Objects Craig Schroeder Computer Graphics I April 22, 2004.
Particle Systems Simulation for special effects.
Advanced 3D Computer Graphics Behzad akbari Professor Burton Ma CSE 4431, Winter 2011 PARTICLE SYSTEMS.
Applications of Computer Graphics. Business applications Maps Industrial applications Consumer applications Entertainment Education.
CSC505 Particle Systems. CSC505 Object Representations So far we have represented (rendered) objects with –Lines –Polygons (triangles) –Curves These techniques.
Game Programming 06 The Rendering Engine
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,
1 Perception and VR MONT 104S, Fall 2008 Lecture 21 More Graphics for VR.
CS559: Computer Graphics Lecture 27: Texture Mapping Li Zhang Spring 2008 Many slides from Ravi Ramamoorthi, Columbia Univ, Greg Humphreys, UVA and Rosalee.
09/16/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Environment mapping Light mapping Project Goals for Stage 1.
Particles Paul Taylor Polygons are not so hot! Good for representing objects like A Cup A Robot A Pyramid Not so hot for creating Hair Snowflakes.
Point Sprites Course Information CVG: Programming 4 My Name: Mark Walsh Website: Recommended.
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
Digital Media Dr. Jim Rowan ITEC 2110 Vector Graphics II.
Global Illumination. Local Illumination  the GPU pipeline is designed for local illumination  only the surface data at the visible point is needed to.
Multimedia Programming 21: Particle Animation Departments of Digital Contents Sang Il Park.
MSIM 842 VISUALIZATION II INSTRUCTOR: JESSICA R. CROUCH 1 A Particle System for Interactive Visualization of 3D Flows Jens Krüger Peter Kipfer.
UniS CS297 Graphics with Java and OpenGL Blending.
Graphics Lecture 17: Slide 1 Interactive Computer Graphics Lecture 17: Fire.
Particles and their home in Geometry Shaders Paul Taylor 2010.
Particle Systems Reference: Reeves W.: "Particle Systems -- A Technique for Modelling a Class of Fuzzy Objets", Computer Graphics, 17(3), pp ,
Graphics for Games Particle Systems CO2301 Games Development 1 Week 23.
Compositing and Blending Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico.
Digital Media Dr. Jim Rowan ITEC 2110 Vector Graphics II.
Computer Graphics I, Fall 2008 Compositing and Blending.
1 Particle Systems for Games Particle System 3D MIM, hyeon.
Volume Rendering (3) Hardware Texture Mapping Methods.
Introduction to Computer Graphics with WebGL
Modeling 101 For the moment assume that all geometry consists of points, lines and faces Line: A segment between two endpoints Face: A planar area bounded.
Using Flow Textures to Visualize Unsteady Vector Fields
Reflections from Bumpy Surfaces
Making the Applications Interesting
Angel: Interactive Computer Graphics5E © Addison-Wesley 2009
ATCM 6317Procedural Animation
Procedural Animation Lecture 8: Particle systems
CO1301: Games Concepts Lecture 22 Particle Systems
Dr. Jim Rowan ITEC 2110 Vector Graphics II
CSCE 441: Computer Graphics Hidden Surface Removal (Cont.)
Computer Graphics Lecture 15.
RADEON™ 9700 Architecture and 3D Performance
Particle Systems - A Technique for Modeling a Class of Fuzzy Objects
CO Games Concepts Week 22 Particle systems
Dr. Jim Rowan ITEC 2110 Vector Graphics II
Presentation transcript:

Particle Systems (Motion Machines of 2D Objects with Textures) Matthew K. Bowles Advanced Computer Graphics Spring 2004

Particle Systems What are particle systems used for? Why do we care?

Particle Systems Properties: –Evolves (not static). –Procedural (state machines). –Non-deterministic (randomness). –Simple (computationally efficient). –LOD is easy (particle count & size). –Good at complex objects (grass). –Good at amorphous objects (fire). –Good at complex behaviour (explosions).

Particle Systems Process: 1.Generate new particles with initial attributes. 2.Kill off particles destined to die. 3.Modify particle attributes. 4.Render remaining particles.

Particle Motion State Machines Two primary methods for modeling transitions. –Age- State transitions due to the temporal plane –Collision Planes- State transitions due to the spatial plane

Particle Systems Variance: –For all particle attributes we want to provide some randomness in order to make the system seem more natural. –Result = Mean + Variance * Rand()

Particle Motion Position(x, y, z): –Position = Position + Velocity * Delta_Time High variance = Rain & Star field Med variance = Fire & Grass Low variance = Fireworks & Fountains –We only draw living particles.

Particle Motion Velocity(vx, vy, vz): –Velocity = Velocity – Acceleration * Delta_Time High variance = Fireworks & Fountains Med variance = Fire & Grass Low variance = Rain & Starfield –The motion is dependent on the relative velocity of each component.

Particle Motion Acceleration(ax, ay, az): –Models the sum of the forces on a particle (typically constant over an entire set of particles). Might change as a function of the current state. –X and Z often differentiated from Y (i.e., most 3D models maintain Y as the dimension with Earth’s gravity).

Particle Motion What about using a direction vector and a velocity magnitude for modeling motion? (d,|m|) –More useful for 3D objects, which must maintain an orientation. –Particles have no orientation.

Particle Motion What about using global accelerations? –Pros – Uses less space and easier to maintain. –Cons – Supports a limited set of particle sets.

Particle Objects Idea – –A particle’s shape is essentially the same, no matter what side of the particle we are looking at. Result – –We render a particle as a 2D object. Problem – –What about the change in shape due to the camera view?

Particle Objects Bill Boarding –Rendering a 2D object so that the surface of the object is always perpendicular to the camera view vector. –v0 = vCenter + ((-vRight - vUp) * (particle_size / 2)); –v1 = vCenter + (( vRight - vUp) * (particle_size / 2)); –v2 = vCenter + (( vRight + vUp) * (particle_size / 2)); –v3 = vCenter + ((-vRight + vUp) * (particle_size / 2)); –Where vCenter is the location of our particle, and vRight and vUp are taken from the model-view matrix.

Particle Objects Do we have to build a quad for a particle? Building the quad and executing the Bill Boarding algorithm takes some overhead processing.

Particle Objects Many graphic languages (DirectX and openGL) implement point sprites. Point sprites –Build the quad and execute the Bill Boarding algorithm on the GPU, thus saving CPU processing time.

Particle Textures RGBA – –Red, Green, Blue, and Alpha… –What is alpha? Alpha used to model opacity (solid objects) and translucence (i.e., glass, water, etc…) Lower Alpha  Greater Opacity Higher Alpha  Greater Translucence Is Alpha all that we need?

Particle Textures We must enable blending and specify how to blend with a blending factor for source and destination. –Source Incoming Fragment Color (Rs,Gs,Bs,As) –Destination Stored Pixel Color (Rd,Gd,Bd,Ad) –Source Blending Factor (Sr, Sg, Sb, Sa) –Destination Blending Factor (Dr, Dg, Db, Da), –(RsSr+RdDr, GsSg+GdDg, BsSb+BdDb, AsSa+AdDa)

Particle Textures We model the particle as a quad (i.e., a square). However, most particles don’t look like squares… What’s the deal? In our particle texture we render some portions invisible. We do this by specifying a clear color and setting the invisible portions of the texture to the same RGB values of the clear color.

Particle Textures What about RGB? –We modulate the particle color with the particle texture so that we can have a dynamic color variance between particles (i.e., we would like to use a limited amount of textures, so we can’t support to many different colors with just texture).

Particle Textures Other considerations? –Disable hidden-surface removal. Particles must blend colors with the objects behind them. Therefore, we must consider all objects that are hidden by particles.

Particle Systems Advanced Work –Modeling complex physical phenomena using real world physics. –Flocking (modeling particles as boids) Remember the limitations on motion and shape we stated earlier. We lied. There is a whole other world out there.

Particle System References William T. Reeves, Particle Systems - A Technique for Modeling a Class of Fuzzy Objects”, Computer Graphics 17:3 pp , 1983 (SIGGRAPH 83) OpenGL Programming Guide (Addison-Wesley Publishing Company) Second Edition 1997