This thesis presents new methods for the inverse reflector design problem. We have focused on three main topics that are deeply related with the problem: the use of real and complex light sources, the definition of a fast lighting simulation algorithm to compute the reflector lighting in a fast way, and the definition of an optimization algorithm to more efficiently find the desired reflector.
To achieve accuracy and realism in the lighting simulations, we have used near-field light sources. We present a method for compressing measured datasets of the near-field emission of physical light sources. We create a mesh on the bounding surface of the light source that stores illumination information. The mesh is augmented with information about directional distribution and energy density. We have developed a new approach to smoothly generate random samples on the illumination distribution represented by the mesh, and to efficiently handle importance sampling of points and directions. We show that our representation can compress a 10 million particle rayset into a mesh of a few hundred triangles. We also show that the error of this representation is low, even for very close objects.
Then, we have proposed a fast method to obtain the outgoing light distribution of a parameterized reflector, and then compare it with the desired illumination. The new method works completely in the GPU. We trace millions of rays using a hierarchical height-field representation of the reflector, and multiple reflections are taken into account. We show that our method can calculate a reflector lighting at least one order of magnitude faster than previous methods, even with millions of rays, complex geometries and light sources.
Finally, a new global optimization algorithm has been specifically tailored to minimize the function that calculates the difference between the reflector lighting and the desired one. The optimization is an iterative process where each step evaluates the difference between a reflector illumination and the desired one. We have proposed a tree-based stochastic method that drives the optimization process, using heuristic rules to reach a minimum below a threshold that satisfies the user-provided requirements. We show that our method reaches a solution in less steps than most other classic optimization methods, also avoiding many local minima.