Hardwareaccelerated Pointbased Rendering of Surfaces and Volumes Eduardo
Hardware-accelerated Point-based Rendering of Surfaces and Volumes Eduardo Tejada, Tobias Schafhitzel, Thomas Ertl Universität Stuttgart, Germany
Motivation § Point-bases Surfaces § § No explicit connectivity or topology information. Easy manipulation (modeling). Easy serializability. Compact storing. § Point Set Surfaces (Alexa et al. , 2003). § Smooth surfaces. § Low-frequency noise handling. § User-defined minimum feature size. Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 2
Motivation § Graphics hardware new capabilities. § Shader Model 3: Dynamic flow control. § Floating-point textures (also as RT). § Numerical algorithms on the GPU. § Ray-tracing PSS slow on the CPU: on the GPU? Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 3
Point-based Rendering Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 4
Point-based Rendering Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 5
Point-based Rendering Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 6
Our Method - Idea § Normal vectors: covariance analysis Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 7
Our Method - Idea § Polynomial approximation: MLS. Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 8
Our Method - Idea Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 9
Our Method - Idea Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 10
Our Method - Idea Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 11
Our Method - Textures Texture positions Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 12
Our Method - Textures Texture positions Texture neighbors Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 13
Our Method – Pre-processing (Render Pass) Texture positions Texture base_a Texture base_b Render a single quad of size equal to texture positions’ For each fragment 1. Calculate texture coordinates Texture base_c Texture neighbors 2. Access positions and neighbors 3. Estimate normal (n) with covariance analysis Texture cpolynomial 4. Create local system {a, b, c}, where =n 5. Transform neighbors positions to local system 6. Calculate local approximation gi (A, B, C, D) Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 14
Our Method – Rendering (First Render Pass) Texture base_a Texture base_b Texture base_c Texture polynomial Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 15
Our Method – Rendering (First Render Pass) Texture base_a Texture intersection Texture base_b Render a viewport aligned disc for each pi Texture normal For each fragment of point pi Texture base_c 1. Fetch texture coordinates 2. Fetch the base {ai, bi, ci} and polynomial gi 3. Transform the ray to the base {ai, bi, ci} Texture polynomial 4. Find intersection of the ray with gi 5. Calculate the normal (derivative of gi) 6. Write intersection, normal and depth Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 16
Results – First Intersection 28 fps 20 fps Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 17
Our Method – Introducing Refraction Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 18
Our Method – Introducing Refraction Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 19
Our Method – Introducing Refraction Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 20
Our Method – Introducing Refraction Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 21
Our Method – Introducing Refraction Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 22
Our Method – Introducing Refraction Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 23
Our Method – Introducing Refraction Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 24
Our Method – Introducing Refraction Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 25
Our Method – Introducing Refraction Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 26
Our Method – Buckets Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 27
Our Method – Buckets Texture pointers Texture positions Texture buckets Texture neighbors Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 28
Our Method – Rendering (Iterative Render Pass) Texture buckets Texture current_position Texture pointers Texture current_direction Render a single quad covering the viewport Forbase_a each fragment Texture 1. Fetch the points in the cell. Texture base_b 3. Find the nearest intersection. Texture current_cell 4. If an intersection is found Texture base_c 4. 1 Update position, direction and color Texture accumulated_color 5. Otherwise determine next cell. Texture polynomial Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 29
Results – Shadows 10 fps Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 30
Results – Refraction 1. 33 fps 2. 16 fps Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 31
Results – Multiple Indices of Refraction 0. 25 fps 0. 22 fps Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 32
Our Method – Introducing Volumetric Effects Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 33
Results – Volumetric Effects 1. 08 fps 0. 96 fps Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 34
Conclusion § We do not use specialized HW (e. g. Wald and Seidel). § Neighbors search on the GPU not solved. § Kd-trees better than grid for ray-intersection, but for neighbors search? § Future: full PSS computation. Eduardo Tejada - Hardware-accelerated point-based rendering of surfaces and volumes 35
Questions?
- Slides: 36