Rendering internals in Archaica - lighting step by step.

Posted by Marcin_Turecki on Dec 20th, 2016

Here is a short and general description about how the lighting in Archaica is generated.

Note:

On all the screens there are transparent and emissive materials (we just didn’t hide them). Archaica renderer evolved from light-pre pass to more deferred (for performance reasons - less draw calls). There is still option for computing lighting per-material (for example crystals use this).

Final effect

At first let’s take a look at indirect diffuse lighting (~ambient)

Every next screen shows another light technique added



Only height ambient (two colors interpolated by height):

Shadow color (fake secondary diffuse term). Takes into account scene height and normal (and it’s also colorized):

With SSAO applied:

And the last component: secondary directional light without shadows (fake simulation of the reflected light). So this is the full indirect lighting (diffuse; only secondary light adds something to the specular lighting term):

SSAO alone:

Indirect specular lighting (exaggerated)

Computed as a single fullscreen pass:

The direct lighting (diffuse and specular)

Direct light without shadows:

Shadows alone:

And mixed - full direct lighting:

Additionally - full (direct and indirect) diffuse and specular lighting alone:

Final Light composition

The final lighting in Archaica:

Bloom alone:

Mixed - final lighting and bloom:

As a curiosity - a final lighting without tonemapping:

Final scene

Without fog:

FINAL SCENE - with fog and godrays:

Additional comparison - Without colorgrading (colorgrading adds only a small correction to final look):

And as a bonus - Archaica gbuffer

Diffuse:

Normal:

Depth:

Reflectance (exaggerated):

Roughness:

Hope this is useful and interesting :)

Fell free to ask if You are interested in any part of computing the light (and final scene look) in Archaica!