+ All Categories
Transcript
Page 1: Realishtime Radiosity And Next Shooter Selection

Realishtime RadiosityAnd Next Shooter Selection

Jeff PoolCOMP 870 Final

December 4, 2008UNC Dept. of Computer Science

Page 2: Realishtime Radiosity And Next Shooter Selection

Approaches to Radiosity

• CPU matrix solving

• GPU gathering• GPU scattering• GPU scatter/gathering

• Hemicubes• Hemispheres

Page 3: Realishtime Radiosity And Next Shooter Selection

I tried:

• GPU gathering• Hemicubes – 5 renders per subelement– No form factor calculations, though

• FBOs• Hemispheres• Scatter/Gather

Page 4: Realishtime Radiosity And Next Shooter Selection

Approach 1 - Hemicubes

• Gathering– 50x50 elements

• Hemicubes– 5 renders per element

• CPU processing– Bandwidth issues

~24 hours

Page 5: Realishtime Radiosity And Next Shooter Selection

Approach 2 – Hemicubes w/ FBO

• Gathering• Hemicubes• FBO– No sending data

back and forth

~5 minutes

Page 6: Realishtime Radiosity And Next Shooter Selection

Approach 3 – Coombe, et al.

• Scatter/Gather• Hemispheres• FBO

~1/2 second

Page 7: Realishtime Radiosity And Next Shooter Selection

Key Points

• ID Buffer• Hemispheres• Progressive refinement– Next shooter selection– (fp MipMap generation)

• Texture packing for residual/full textures– (HW now has MRT)

Page 8: Realishtime Radiosity And Next Shooter Selection

ID Buffer

• Elements rendered with ID colors for visibility (hard part of form factors)

• Correlated to hemisphere rendered by shooter

Page 9: Realishtime Radiosity And Next Shooter Selection

Hemispheres

• Only one pass, not 5• Can be some distortion,

so target framebuffer must be large for accurate visibility

Page 10: Realishtime Radiosity And Next Shooter Selection

ID texture size

Page 11: Realishtime Radiosity And Next Shooter Selection

Shooting Pass

• Scene rendered into hemisphere by shooter• Each element is rendered as a quad• Per fragment:– Form factor computation– Visibility = Idcolor==hemisphere(projectedPos) – Energy = FF * Reflectance * Visibility

Page 12: Realishtime Radiosity And Next Shooter Selection

Updating the elements

• Easy: Blend 1 + 1 (src + dst) = additive rendering

• Render to multiple targets – residual AND full• Shooter’s residual framebuffer is simply

cleared

Page 13: Realishtime Radiosity And Next Shooter Selection

Next Shooter Selection

• Trivial to select element with most energy left– Multiply lowest mipmap level by area

• HOWEVER, two things to consider– Visual impact of color bleeding– Frame-frame coherence

Page 14: Realishtime Radiosity And Next Shooter Selection

Problem #1

Importance of color over brightness6 shots over 64x64 (~0.3 seconds)

Page 15: Realishtime Radiosity And Next Shooter Selection

Problem #2

Note the flickering as the light source descends, which can be pretty distracting

Page 16: Realishtime Radiosity And Next Shooter Selection

Problem #2 (2)

Page 17: Realishtime Radiosity And Next Shooter Selection

Different Preference Measures

• Sum of components• Max of components• Variance (+mean)• Luminance

Page 18: Realishtime Radiosity And Next Shooter Selection

SO:

• Radiosity at realtime framerates (1-10 fps)

• Quality tradeoffs for speed:– Size of hemisphere

texture– Subdivision size– Aggregate shooting

• Preferential next shooter selection– Brightness– Color– Coherence


Top Related