LightsprintSDK 2021.08.08
Offline calculations

Features

All Lightsprint SDK features documented in Calculation and outputs are available for offline calculations.

Note that some offline featues are disabled if you load Fireball for realtime lighting.

Speed

Estimate of time to build all lightmaps in scene (using RRSolver::updateLightmaps()) is

log( number of triangles in scene )
* ( quality + number of lights in scene + 10 )
* ( number of mapped pixels in per-pixel lightmaps + number of vertices in per-vertex lightmaps )

Building multiple layers of information at once (e.g. directional lightmaps and bent normals) has negligible overhead, count pixels in one layer only.

Looking at formula, it's clear that quality is major performance factor, number of lights has only minor impact (it's usually much lower). If you can split scene in two parts and build them separately (light won't travel from one part to another), time complexity won't change much, but problem will be better parallelized, you will be able to build the parts on different computers.

Note that this is only estimate, faster or slower paths are used in specific cases, depending on scene data.

Samples

Offline calculations are demonstrated in CPULightmaps and BuildLightmaps samples. CPULightmaps is purely console application, BuildLightmaps displays results in simple interactive viewer.