LightsprintSDK 2021.08.08
|
In our real world, we see visible light coming mostly from special surfaces (LED diode, hot wolfram fibre in lightbulb, luminofor of fluorescent lamp) or from whole volumes of plasma (sun, fire). We call these surfaces and volumes source of direct illumination.
Light from sources of direct illumination reaches other surfaces where part of light gets absorbed and part reflected. Reflected part is what we see and what makes objects look lit by direct illumination. When we see the reflected part, we say that object has direct illumination.
Reflected light from direct illumination reaches other surfaces, partially reflects, reaches other surfaces, partially reflects etc. When we see sum of these reflected parts, we say that object has indirect illumination.
Illumination we see in real world is sum of direct and indirect illumination.
Computer graphics tries to simulate this process in order to generate realistic images. This is however very time consuming process. So realtime computer graphics in 99% of cases resigns to real-world sources of direct illumination and uses imaginary "point", "spot" or "directional" lights. These fictitious sources of direct illumination allow realtime computer graphics to calculate direct illumination very quickly. This process includes calculation of shadows in direct illumination. There are many realtime techniques for calculating shadows in direct illumination, most notably shadow mapping, volumetric/stencil shadows and projected/texture based shadows.
There is still problem with indirect illumination, which remains hard to compute quickly.