Effective talk: Simulating light in the sky and how it is reflected.
Year of Talk: -
This isn't a specific talk from GDC but is based on some research I did on some of the lighting systems from Ubisofts 'Far Cry 6.' This was because I was working on the second part of the procedural weather in 'Far Cry' and I wanted to better understand some of the systems that are talked about during their 2022 talk.
Over the years many game devs have tried to solve the problem of simulating light coming from the sky, especially when doing day/night cycles. Most game devs dont try directly solving this problem as there are a lot of extra calculations to properly do so. But as games become more complex and computers have an easier time computing more complex simulations, it allows for even better and more realistic games.
Currently, there are a few different options for how a game dev can render light from the night sky. One side of the spectrum is through complexity using systems like Ray Tracing compared to simpler solutions like having a sky box with a general illumination. However, part of the format for lighting used in Far Cry is called Multi-Scattering Diffusion, which is how the light gets diffused over a general area in which it hits multiple see-through items (Usually sky and air molecules). I was unable to find the exact resource or calculations used at Ubisoft but I found the following research paper called “Modal evaluation of the anthropogenic night sky brightness at arbitrary distances from a light source,” which presents a couple of equations that can be used to determine the atmosphere effect on light. The paper was originally done to help better determine light pollution and its effects it has on the night sky.
The part of the paper I want to concentrate on is the initial explanation section where they have the equation and how it is meant to be used. The equation was initially constructed based on only one light source that reacts with an observer and the night sky. The following equation B(x)=(x0)Q(x,x0)d2x0 is the main extrapolation of the figure also presented in the paper which can be seen below. The equation is meant to grab the brightness from the night sky (Q(x,x0)) which x0 determines the point where the light source is located, while also taking into consideration a small section of a 2D represented by d2x0. The initial two integrations in the equation are meant to take into consideration all other light sources in the area that may be affecting the sky. This leaves (x0) which is the principal equation used to determine the effects of light on the sky. If there is a known amount of light sources then the equation can be rewritten as follows B(x)=s=1S(x0,s)Q(x,x0,s) to better take into consideration all the ways the sky can be affected by multiple light sources.
These basic equations and the concept presented in the paper allow for easier and quicker calculations, especially for computers. Allowing for game dev to create better day/night cycles. At the same time, these calculations can be used to create better light simulations that rely on passing through clear and semi-clear objects.
The equations I talk about here are only the rudimentary version and you can find more in-depth explanations in the research paper linked below. https://iopscience.iop.org/article/10.1088/2040-8978/17/10/105607
Meanwhile, the other lighting system I want to talk about is called Bidirectional Reflectance Distribution Function (BRDF). This is an important function also used in ‘Far Cry 6’ in which it is used to calculate light reflections off of surfaces and how the angle of reflection affects how it looks. This system is principally used to better represent how light is reflected and can change the amount of shadow and look of objects when changing the viewing angle concerning a light source.
Depending on how accurate the values the designers and artists want they can take into consideration anything between the angle of the light source, the angle of the observer, the wavelength of light, any polarization, and what properties the material in question has. By considering all of these different values it allows for computers to better determine how light is being affected by the environment. Even though BRDF seems to be doing a similar job to ray tracing, from what I was able to understand BRDF is used when you are calculating the path of light after it hits an object and how it can affect the light. Meanwhile, ray tracing is used to determine how light is perceived by the user and will calculate multiple collisions between objects before it reaches the user.
Comments