adaptive mesh subdivision for precomputed radiance transfer jaroslav křivánek univ. of central...
TRANSCRIPT
Adaptive Mesh Subdivision for Precomputed Radiance Transfer
Jaroslav KřivánekUniv. of Central Florida
CTU Prague
IRISA – INRIA Rennes
Sumanta Pattanaik
Univ. of Central Florida
Jiří ŽáraCTU Prague
ComputerGraphicsGroup
Goal Decrease the interpolation Error
uniform adaptive
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 Terminology
PRT Terminology
PRT for Diffuse Surfaces
lt ppL )(
Lp … exit radiance at point p (displayed intensity) l … light vector (in SH basis) tp … source-to-exit transfer vector at p
Computed in preprocess Stored per-vertex or per-texel
Non-adaptively
no abrupt change of tp
Transfer Vector
Abrupt changes of tp
Possible abrupt changes of Lp
l1
l2
abrupt change of tp
Our Goal Refined
Adaptive Sampling of tp, subject to
visual error under any lighting is minimized,
# of samples of tp (i.e. # verts) is nimimized
Per-vertex tp adaptive mesh subdivision Subdivision in pre-process
Along with the pre-computation of tp Actual lighting Lp is not known
Subdivision based only on tp, not on Lp
Adaptive Sampling Example
200 verts246 tris
1565 verts2548 tris
1188 verts2828 tris
Adaptive Sampling Example
200 verts246 tris
1565 verts2548 tris
1188 verts2828 tris
Subdivision Algorithm Initial mesh Compute tp 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 ?
),(|),(),(| int
,1||||max lxL
lxLlxLxl
Practical Error Estimate (1) Subdivision in preprocess
Error estimate based uniquely on tp Triangle error = Sum edge errors First edge error estimate (triangle edge v1-v2)
Development of (1) from the ‘ideal e. e.’ given in the paper
||||||||2
2),(
1
121
vv
vvvv
tttt
(1)
Results with Error Estimate (1)
Too much subdivision in shadowed areas.
is low is high.|||| 21 vv tt ||||||||2
2
1
1
vv
vv
tttt
Error Estimate (2) Division by promotes subdivision in
shadowed areas. Solution: remove the division by .
New error estimate:
|||| 21 vv tt
|||| 21 vv tt
|||| 2),( 121 vvvv tt (2)
Results with Error Estimate (2)
||||||||2
2),(
1
121
vv
vvvv
tttt
worse
|||| 2),( 121 vvvv tt
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 v1 and v2.
)arccos(1||||
21),(
2121
nntt
vv
vv (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