180 likes | 323 Views
Real-time Multi-perspective Rendering on Graphics Hardware. Xianyou Hou, Li-Yi Wei, Heung-Yeung Shum, Baining Guo. Teaser. Real-time near object reflection off curved surface. Environment map. Ray tracing. Our technique. Camera Projection Model. Single-perspective
E N D
Real-time Multi-perspective Rendering on Graphics Hardware Xianyou Hou, Li-Yi Wei, Heung-Yeung Shum, Baining Guo
Teaser • Real-time near object reflection off curved surface Environment map Ray tracing Our technique
Camera Projection Model • Single-perspective • Projection directions merge at a single point • Pin-hole, orthographic, oblique, etc • Supported on graphics hardware • Multi-perspective • Arbitrary projection directions • General linear camera [Yu and McMillan 2004 - 2005] • Not directly supported on graphics hardware
may not intersect at one point! Why Multi-perspective Projection? • Model many natural phenomena curved reflection refraction caustics
Our Methodology • Multi-perspective projection on feed-forward pipeline • Similar to beam tracing • Handles only planlar reflection • Curved reflection via polygon rasterization • (as opposed to ray tracing on GPU) • Custom vertex and fragment program • Non-linear rasterization
Algorithm Overview • Build coarse triangle mesh • Determine projection directions at mesh vertices • Render each camera triangle via polygon rasterization • Multi-perspective projection • Custom vertex/fragment program
Parameterization • Barycentric interpolation • C0 continuity d = w1d1 + w2d2 + w3d3 d3 d1 d v1 d2 w2 p v3 w3 w1 v2
shaded killed p11 p13 p12 Rasterize one scene △ in one camera △ • Vertex program: bounding triangle estimation • Fragment program: ray-triangle intersection d3 d2 v1 pij = projection of vj under di v2 v3 d1
Limitations and Acceleration • Very brute force • Rasterize every scene △ in every camera △ • Bounding △ over-estimation • No Zcull • Acceleration object culling bounding △ culling camera tessellation level
faster Camera Tessellation Level • Smaller camera △ provides better bounding △ estimation Ray tracing 26 (51 fps) 26x4 (63 fps) 26x4x4 (5 fps)
Applications reflection refraction caustics visualization
Refraction Only C0 continuity Ray tracing Our result
Caustics • Multi-perspective rendering into light point • Photon splatting photon location map reflector light caustic receiver
Future Work • Speed improvement • Tighter bounding △ estimation • Multiple reflections/refractions (i.e. beam tracing) • Ck continuity with k > 0 • Ride with polygon rasterization! • GPU is not designed for ray tracing [Purcell et al 2002] • CPU ray tracing [Wald et al 2006] ?