170 likes | 188 Views
Normal Mapping for Surfel-Based Rendering. Mathias Holst Heidrun Schuman. WSCG‘07. Plzen • Czech Republic. University of Rostock. Outline. Introduction Related Work Shaping and Splatting Surfels Texturing Surfels Normal Map Estimation Silhouette Refined Rendering
E N D
Normal Mapping for Surfel-Based Rendering Mathias Holst Heidrun Schuman WSCG‘07 Plzen • Czech Republic University of Rostock
Outline • Introduction • Related Work • Shaping and Splatting Surfels • Texturing Surfels • Normal Map Estimation • Silhouette Refined Rendering • Conclusion and Outlook
IntroductionSurfel Rendering • Surfels (from surface element) are points parametrized with a normal and a radius • describe circular discs in 3D (≈ellipse in image space) • set of surfels can be used to approximate 3D surface
IntroductionSurfel Rendering (2) • LOD using point trees • easy to obtain using subdivision schemes (nearest neighbor, octree)
IntroductionSurfel Rendering (3) Benefits: • effective description of all static 3D surfaces • easy to create various LOD using simplification schemes Drawbacks: • only efficient for objects with many features • not efficient for low tesselated models Our approach: • Increase benefit of large surfels using normal mapping • result: surface approximation with much fewer surfels • important: surfel size approximation for image space as accurate as possible to prevent unrealistic texture scaling
Surfel SplattingSizing • Surfels are rendered as view-plane aligned squares • Sizing by ellipse approximation:
Surfel SplattingShaping • Shaping by using alpha mask • Graphics card computes texture coordinate (tx, ty) [1,-1]2 for each pixel/fragment • Use eye-space normal and texture coordiante to get z-offset of pixel: • if ||t|| > 1, pixel do not belong to surfel ellipse area • ||t|| can be used to calculate alpha value using Gaussian: α = G(||t||)
Normal Mapping • t not sufficiant for texturing • Need additional parameter: • rotation around normal to orient texture • texture position and size in texture atlas • Additional orientation vectors:
Normal MappingSurfel Space Texture Coordiante • S=(o1 o2 n) maps point from surfel space to object space • S' = MS defines mapping from surfel space to eye-space • transform t back to surfel-space by t'=S'-1t • t'[1,-1]2 • Map t' to texture atlas:
Normal Map Estimation • Raycasting Approach 1. rasterize surfel using ist texture size 2. shoot ray aligned with normal for each texel 3. get leaf surfels that ray intersects (consider only leaf surfels which bounding spheres intersect BS of rasterized surfel 4. get weighted average to get texel normal (weight according gaussian alpha value)
Silhouette Refinement • Problem of normal mapping: coarse silhouette • Solution: silhouette refinement • exact global silhouette slow to compute • use contour estimation using normal cones instead
Rendering • use radii limitation for silhouette (rsil) and non-silhouette surfels (rinner) • extension of QSplat algorithm • rinner =ws • Igea example (rsil =2px) * can be fastened using sequential point trees
Demo start video
Conclusion • normal mapping can be used to increase efficiency of surfel-based surface approximations • should be combined with silhouette refinement to increase image quality • can easily be integrated in existing point splatting frameworks • Future Work: • Decrease texture memory 1. find similar textures 2. find textures that can be tiled
Thank you for your attention! Questions?