For my Game Architecture final project (@RPI), I worked on a glossy screen space reflection (SSR) tech demo. Specular (mirror like) SSR was originally (to the best of my knowledge) brought up at beyond3d, and Crytek also had a few slides on it in their Secrets of CryENGINE 3 Graphics Technology presentation.
Implementation Details
SSR image pass
Pretty standard, except randomly jitter the reflection ray according to roughness
I weighted every direction equally, but you can definitely weight it according to some direction generation probability density (and generate reflection directions accordingly)
Blur pass
Splat the reflection samples in world space based on reflection distance
Convert the world space splat to screen space splat based on distance from eye to surface
Can't splat (scatter) that well, so gather (essentially a bilateral blur)
Weight each nearby sample by
Reflection distance (we want to blur more the longer the reflection is)
Reflection distance similarity
Depth similarity
Normal similarity
Apply Fresnel incidence effects
Notes
The standard issue with SSR not having enough information is present.
No comments:
Post a Comment