Adaptive Mesh Subdivision for Precomputed Radiance Transfer Jaroslav Křivánek Univ. of Central Florida CTU Prague IRISA – INRIA Rennes Sumanta Pattanaik Univ. of Central Florida Jiří Žára CTU Prague ComputerGraphicsGroup
Goal Decrease the interpolation Error uniformadaptive
Overview Precomputed Radiance Transfer Transfer Operator Sampling Density Subdivision algorithm Triangle error estimate Conclusion
Precomputed Radiance Transfer (PRT) Restrictions Low-frequency directional lighting Soft shadows only Per-vertex precomputation Rigid objects only Precompute global illumination (per-vertex) Display GI in real-time under arbitrary lighting
PRT Terminology
PRT for Diffuse Surfaces L p … exit radiance at point p (displayed intensity) l … light vector (in SH basis) t p … source-to-exit transfer vector at p Computed in preprocess Stored per-vertex or per-texel Non-adaptively
no abrupt change of t p Transfer Vector Abrupt changes of t p Possible abrupt changes of L p l1l1 l2l2 abrupt change of t p
Our Goal Refined Adaptive Sampling of t p, subject to visual error under any lighting is minimized, # of samples of t p (i.e. # verts) is nimimized Per-vertex t p adaptive mesh subdivision Subdivision in pre-process Along with the pre-computation of t p Actual lighting L p is not known Subdivision based only on t p, not on L p
Adaptive Sampling Example 200 verts 246 tris 1565 verts 2548 tris 1188 verts 2828 tris
Adaptive Sampling Example 200 verts 246 tris 1565 verts 2548 tris 1188 verts 2828 tris
Subdivision Algorithm Initial mesh Compute t p for vertices of the initial mesh Compute error estimate for the triangles of the initial mesh Subdivide according to the error estimate Proceed recursively (priority queue), until triangle budget is met
Ideal Error Estimate Ideal error estimate for triangle Error = maximum relative deviation of the interpolated exit radiance from the correct exit radiance over all unit power lighting l and all triangle points x. Or rather: one of possible ‘ideal error estimates’ other possibilities avg instead of max ? smoothness of the Gouraud interpolation instead of deviation from the correct value ?
Practical Error Estimate (1) Subdivision in preprocess Error estimate based uniquely on t p Triangle error = Sum edge errors First edge error estimate (triangle edge v 1 -v 2 ) Development of (1) from the ‘ideal e. e.’ given in the paper (1)
Results with Error Estimate (1) Too much subdivision in shadowed areas. is low is high.
Error Estimate (2) Division by promotes subdivision in shadowed areas. Solution: remove the division by. New error estimate: (2)
Results with Error Estimate (2) worse Better subdivision around the box / box faces. better
Problems with Error Estimate (2) Works fine for flat surfaces Exaggerated on curved surfaces
Rectified Error Estimate for Curved Surfaces Divide by the angle between the normals at v 1 and v 2. (3)
Conclusion Adaptive subdivision Decreased interpolation error Superior quality compared to uniform subdivision Subdivision performed in preprocess no dynamic subdivision in real-time Based on a worst error estimate
Discussion + Future Work Drawbacks Final error estimate is a pure heuristic Requires a lot of tweaking to get good results The absolute value of the error estimate is meaningless Only the ordering is ok Future Work Extend to arbitrary BRDFs Use textures instead of vertices Perceptually based