### Light & Rendering Maths

Rendering equations are a mathematical representation for an** amount of light** emitting **from a point** along a **specific viewing** direction. (*That is a fancy way of saying how a light-beam moves in space and bumps from surfaces.)*

The equations root to light pyhsics in a straight-forward manner: due to energy conservation, no ‘light is lost’ – thus, calculating its distribution is fairly (?) simple.

**Bidirectional reflectance distribution functions** (**BRDF**) define how light is reflected at an opaque – that is, ‘normal’, tangible, not-all-absorbing – surface. That is, how light behaves when confronting an obstacle.

As the example from Coding Labs suggests, a way of modelling the behaviour of light is making a distinction between **diffuse reflection** and **specular reflection**. “The idea is that the material we are simulating reflects a certain amount of light in all directions and another amount in a specular way (like a mirror).”

However, re-constructing these phenomena of light that are “obvious” in the real world, is is a tardy process in the world of 3D graphics. Namely, simulated lights do not automatically cast shadows. And, even if an object itself may be shiny and nicely lit, it likely won’t reflect the scene around it. Reflections have to be made either manually or with computer assistance.

As an example, the sky is blue and so is the water in Minecraft, but it doesn’t reflect land objects. Though, this is likely done on purpose – no reflection is much less rendering, obviously.

Taking a swing in the maths behind 3D graphs leads immediately to matrices – as those are the way of representing an object moving from point A to point B in a linear way.

This video (~ 10 minutes) opens the foundational mathematics thoroughly yet very visually. If you’d like the fast-lane, this is a compact representation.

We’ll finish with this sweet-bite: a 12-minute video covering many of the key topics of the 3D game industry domain, e.g. scanline-rendering, anti-aliasing, rendering algotirhms – and shading. I enojoyed & learned a lot!

## Responses