About "Precomputed Local Radiance Transfer for Real-Time Lighting Design"

The paper "Precomputed Local Radiance Transfer for Real-Time Lighting Design" extends precomputed radiance transfer (PRT) for distance lighting to local lighting.

This is done by following steps.

  • 0. Dense uniform sampling of light sources in the scene.
  • 1. Precompute the exitant radiance representation X_ij for each vertex.
    • Compute the reflected radiance for each vertex per light using photon mapping or gathering pass.
    • Here are the meaning of the parameters.
      • i : Index of the basis vector.
      • j : Index of the light.
      • n_l : The number of lights.
      • n_b : The number of coefficient per light.
      • X_ij for diffuse surfaces : 1 × n_l matrix
      • X_ij for specular surfaces : n_b × n_l matrix
  • 2. Cluster the light sources
    • Clustering of the dense lights is done by following heuristics.
    • delta_jk = w_1 * | p_j - p_k | + w_2 * max of vertex_c | X^c_ij - X^c_ik | + V_jk
      • i : Index of the first light.
      • j : Index of the second light.
      • p_i : Position of the first light.
      • p_j : Position of the second light.
      • V_jk : Visibility between the first light i and the second light j.
      • w_1, w_2 : weight of the each metrics.
  • 3. Zoning the scene geometry
    • Split the scene recursively along the longest axis of the box until some stopping criteria is met.
  • 4. Compress the surface radiance using CPCA.
    • Compute the initial cluster by k-means.
    • Compute the PCA vertors for each clusters.
    • Redo the clustering of the vertices using the approximation error.
    • X ≒ X_mean + \sigma B_i * z_i
  • 5. Real-Time relighting with the local light
    • Find the m nearest lights of the user defined light.
    • Weight and interpolate them to get the exitant surface radiance.