notes
DESCRIPTION
Notes. If you’re interested, read Bridson, Hourihan, Nordenstam, “Curl noise for procedural fluid flow”, SIGGRAPH ‘07. Time integration woes. For rotational motion, immediately find serious flaw with Forward Euler: instability Better off using a more accurate, more stable Runge-Kutta method - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Notes](https://reader035.vdocuments.us/reader035/viewer/2022071807/56812ca5550346895d914d8d/html5/thumbnails/1.jpg)
1cs426-winter-2008
NotesNotes
If you’re interested, readBridson, Hourihan, Nordenstam, “Curl noise for procedural fluid flow”, SIGGRAPH ‘07
![Page 2: Notes](https://reader035.vdocuments.us/reader035/viewer/2022071807/56812ca5550346895d914d8d/html5/thumbnails/2.jpg)
2cs426-winter-2008
Time integration woesTime integration woes
For rotational motion, immediately find serious flaw with Forward Euler: instability
Better off using a more accurate, more stable Runge-Kutta method• For example: 3rd order
k1 =v x( )
k2 =v x+ 12 Δtk1( )
k3 =v x+ 34 Δtk2( )
xnew =x+ 29 Δtk1 +
39 Δtk2 +
49 Δtk3
![Page 3: Notes](https://reader035.vdocuments.us/reader035/viewer/2022071807/56812ca5550346895d914d8d/html5/thumbnails/3.jpg)
3cs426-winter-2008
Second order motionSecond order motion
Real particles move due to forces• Newton’s law F=ma• Need to specify force F (gravity, collisions, …)• Divide by particle mass to get acceleration a• Update velocity v by acceleration• Update position x by velocity
€
v inew = v i + Δt
F(x i,v i, t)
mi
x inew = x i + Δtv i
new
![Page 4: Notes](https://reader035.vdocuments.us/reader035/viewer/2022071807/56812ca5550346895d914d8d/html5/thumbnails/4.jpg)
4cs426-winter-2008
Basic renderingBasic rendering
Draw a dot for each particle But what do you do with several particles per
pixel?• Add: models each point emitting (but not absorbing)
light -- good for sparks, fire, …• More generally, compute depth order, do alpha-
compositing (and worry about shadows etc.)• Can fit into Reyes very easily
Anti-aliasing• Blur edges of particle, make sure blurred to cover at
least a pixel Particle with radius: kernel function
![Page 5: Notes](https://reader035.vdocuments.us/reader035/viewer/2022071807/56812ca5550346895d914d8d/html5/thumbnails/5.jpg)
5cs426-winter-2008
Motion blurMotion blur
One case where you can actually do exact solution instead of sampling
Really easy for simple particles• Instead of a dot, draw a line
(from old position to new position - the shutter time)• May involve decrease in alpha• More accurately, draw a spline curve• May need to take into account radius as
well…
![Page 6: Notes](https://reader035.vdocuments.us/reader035/viewer/2022071807/56812ca5550346895d914d8d/html5/thumbnails/6.jpg)
6cs426-winter-2008
More detailed particle More detailed particle renderingrendering
Stick a texture (or even a little movie) on each particle: “sprites” or “billboards”• E.g. a noise function• E.g. a video of real flames
Draw a little object for each particle• Need to keep track of orientation as well, unless spherical• We’ll get into full-fledged rigid bodies later
Draw between particles• curve (hair), surface (cloth)
Implicit surface wrapped around virtual particles(e.g. water)