1 Interactive Volume Rendering Aurora on the GPU Orion Sky Lawlor, Jon Genetti University of Alaska Fairbanks
Structure of talk: (1) What are the Aurora? (2) How do we represent Aurora on the GPU? (3) How do we render Aurora efficiently? (4) How do we render Aurora on a powerwall? (5) Conclusions & future work
(1) What are the Aurora?
Charged particles from the Sun Image credit: NASA
Particles intersect Magnetosphere Image credit: Wikipedia
What are the Aurora? Sheets of electrons coming down Earth's magnetic field lines, and hitting the upper atmosphere
What are the Aurora? electrons: 1-20kV, millions of amps magnetic field: inclined to surface atmosphere: km up
Aurora: Best Viewed From Orbit Image credit: NASA (ISS)
(2) Representing Aurora on the GPU
Prior Aurora Representations Nonphysical hacks [e.g., screensavers] 100% phemonological No planet, no units, no atmosphere, etc. But it looks good Individual Charged Particles [Baranoski, Rokne, et al] Easy to physically transport through magnetosphere Nearly zero data storage requirements Difficult to render from arbitrary viewpoint (sampling!) Volume-Rendered Voxel Grid [Genetti] Easy to render from arbitrary viewpoint (raycasting) km * km * 500 km thick = serious RAM! Only feasible with hierarchical storage (slow render)
Our Aurora Representation Factor 3D aurora display into 2D * height 2D is electron intensity map: “curtain footprints” Stored as D texture (polar coordinates) Currently generated with phenomological fluid hack Working on output from a real HPC simulation Height-dependent electron deposition function Given electron intensity and height, return emission Also stored as a 2D texture, Computed from particle scattering laws [Lazarev] Uses MSIS upper atmosphere model Auroral electrons are moving at relativistic speeds (60000 km/s for 10KeV), so this approximation is quite accurate
2D Curtain Footprints: Fluids Hack
Deposition Function: MSIS Atmosphere
Deposition Function vs Altitude
“Height” includes Magnetic Inclination
(3) Speeding up Rendering
Explicit list of compositing orders Don't use Recursive Raytracing!
Begin with 2D Curtain Footprints
Build Distance Field to find Curtains Algorithm: Jump Flooding [Rong & Tan]
Algorithm: Proximity Clouds [Cohen & Sheffer] Use Distance Field to Render Curtains
Measured “Performance Image” White = 200ns/pixel Black = 10ns/pixel
Compounding Speedups Factor 3D into 2D + height: 2x Use GPU instead of CPU: 100x Non-recursive raytracer: 3x Distance field acceleration: 3.5x Old version: 10 minutes/frame New version: frames/sec
(4) MPIglut & 1x10 9 rays/second Powerwall Aurora Rendering
Sequential OpenGL Application
Parallel Powerwall Application
Compounding Speedups Factor 3D into 2D + height: 2x Use GPU instead of CPU: 100x Non-recursive raytracer: 3x Distance field acceleration: 3.5x Use ten GPUs with MPIglut: 8x Old version: p New version: x4200
Powerwall Aurora Rendering Demo Movie
(5) Future Work: Moving curtains! Red slow-glow Terrain Geometry Clouds & Sunrise Planetarium Show
Questions?