Method for calculating the reflection function of global illumination with perturbation functions
DOI:
https://doi.org/10.15276/hait.01.2021.4Keywords:
Perturbation functions, geometric objects, global illumination, radiance, reflections, photon maps, ray tracingAbstract
The advent of new hardware and the ever-increasing demands on the complexity of scenes are forcing the development of new approaches for calculating lighting. Modern visualization requires not only photorealistic, but also physically correct calculation of lighting. The core of any algorithm for calculating global illumination is the calculation of the illumination integral over the hemisphere. The aim of the work is to develop an effective visualization method based on the radiance caching and reprojection. This paper presents a modified method that eliminates the shortcomings of the reprojection algorithm for the radiation cache. Reprojection is not a fast procedure, since it is necessary to normalize the vector and calculate the inverse trigonometric functions if spherical coordinates are used to parameterize the hemisphere. In addition, it is necessary to use the z-buffer and solve the problem with the voids that will remain after the projection. In addition, for the calculation of illumination from extended sources, the known algorithms have certain disadvantages and are designed for a very limited number of cases. Therefore, in this paper, a universal algorithm is developed for calculating scenes of great complexity that have extended light sources, as well as secondary sources. The difficulty lies in the fact that the same point of the surface can be completely in the shadow or completely in the light from some light sources (the rays to such sources are coherent) and is in the penumbra from other sources (where the coherence of the rays is small). Therefore, simple methods of interpolation or extrapolation of lighting is not suitable. Additional difficulties arise with secondary light sources, which are implicitly represented in the scene and their location is not known in advance. The proposed method caches the incident radiation function and uses the calculated values at adjacent surface points, which significantly reduces the number of ray traces and the calculation of the reflection function. Unlike other radiation caching algorithms, the proposed method can work with high-frequency data. In comparison with the classical implementation of the Monte Carlo method, the method gives an acceleration of an order of magnitude with comparable calculation accuracy. The method can be used to calculate the final collection in the methods of photon maps and emissivity, illumination from an environment map set with a large dynamic range, shadows from large area light sources, “blurred” reflections, etc.