%%%%%%%%%%%%%%%%%%%%%%%%%%
Calculating the radiance \texttt{L} at a surface point \texttt{x} can be a costly operation as the number of lights increases. The lightcuts approach attempts to reduce the cost of this operation by approximating the contribution of a group of lights. It is defined a cluster of lights, with one of the lights in the cluster being the representative light, the cluster reuses its material, geometric and visibility terms, the emitted radiance is now a sum of the contribution of the other lights in that cluster. \\
-The cluster intensity can be precomputed and stored, thus turning the cost of evaluating each light to the cost of evaluating a single one. These approximations leads to some error, which must be relatively low in order to produce an image with no visible artifacts. The challenge is to group lights in a way so that the error is sufficiently low. \\
+The cluster intensity can be precomputed and stored, thus turning the cost of evaluating each light to the cost of evaluating a single one. These approximations lead to some error, which must be relatively low in order to produce an image with no visible artifacts. The challenge is to group lights in a way so that the error is sufficiently low. \\
Because the cuts can vary from point to point, visual artifacts can occur. Figure \ref{fig:lightCut} depicts some cuts and the visual error produced. A lightcut is chosen when the relative error for that cut is below a threshold. The program starts with a coarse cut and then progressively refines it until the error threshold is reached. For each node in the cut both its cluster contribution and an upper bound on its error are estimated. An additional stopping criteria was made, a maximum cut size, so that the algorithm would stop, eventually. \\
-The implementation supports three types of point lights: omni, oriented, and directional, each having its own light tree. Ideally the light tree would group the point lights that have similar orientation and spacial proximity in order to improve the groups quality. The cluster error bounds (difference between the exact and approximate representations) is calculated by multiplying the upper bounds on the material, geometric and visibility terms. This is further explained in section \ref{metrics}. \\
+The implementation supports three types of point lights: omni, oriented, and directional, each having its own light tree. Ideally the light tree would group the point lights that have similar orientation and spatial proximity in order to improve the groups quality. The cluster error bounds (difference between the exact and approximate representations) is calculated by multiplying the upper bounds on the material, geometric and visibility terms. This is further explained in section \ref{metrics}. \\
The reconstruction cuts technique attempts to further reduce computational costs when going down the light tree (to reduce the amount of error). When calculating the lightcut for a shading point, given a set of nearby samples (locations where lightcuts have already been calculated), if all of them agree that a node is occluded, it is discarded. If a node's illumination is very similar across those samples, then that node is cheaply interpolated using impostor lights. Otherwise, if the nodes disaggre on the visibility, a shadow ray is cast and the normal lightcuts algorithm goes on. Figure \ref{fig:ReconCut} provides an example of this method. \\
lightcuts_presentation.pptx