This project is a hobby lightmapper completely based on Houdini geometry nodes. Basically it grew out of a re-implementation of Matt's The Baking Lab with some modification. It's my first personal Houdini project (still learning), so there is no magic (no GPU acceleration, no progressive, just brute force) :)
There are only four nodes inside the obj tab:
Lock the viewport with the CAM_MAIN node. Change the environment map inside the ENV_LIGHT node (all HDRI textures are from HDRI Haven).
The SCENE_ROOM node is responsible for setting up the scene geometries (click the "Room Object" menu to change different scenes, toggle the "Enable Light" to enable or hide the area light on the top):
The RENDERER node is responsible for all the calculating. Change the "Shading Method" menu to switch between path tracer and lightmapper. More detail settings are under "Ground Truth" and "Lightmap Baker" tabs:
We compare the lighting results of all the methods. As usual, ground truth goes first.
Cornell | Toy | Shaderball | Path Tracer |
---|---|---|---|
Diffuse & Specular | |||
Diffuse Only | |||
Specular Only |
"Diffuse" uses a single RGB value containing the result of applying a standard diffuse BRDF to the incoming lighting, with an albedo of 1.0 (3 floats per point).
Cornell | Toy | Shaderball | Diffuse |
---|---|---|---|
Diffuse & Specular | |||
-- | -- | -- | Diffuse Only |
No Specular | No Specular | No Specular | Specular Only |
"Directional" bakes irradiance based on Enlighten's directional approach, with 3 floats for color, 3 for lighting main direction information, and 1 float to ensure that the directional term evaluates to 1 when the surface normal aligns with normal used when baking (7 floats per point)
Cornell | Toy | Shaderball | Directional |
---|---|---|---|
Diffuse & Specular | |||
Diffuse Only | |||
Specular Only |
"Half-Life 2" bakes irradiance projected onto the Half-Life 2 basis, making for a total of 3 sets of RGB coefficients (9 floats per point).
Cornell | Toy | Shaderball | Half-Life 2 |
---|---|---|---|
Diffuse & Specular | |||
-- | -- | -- | Diffuse Only |
No Specular | No Specular | No Specular | Specular Only |
"SH" bakes irradiance projected onto L1 SH (12 floats per point) or L2 SH basis (27 floats per point). SH spports 3 diffuse modes and 5 specular modes to shading. There are many possible combinations of diffuse and specular modes (3 x 5), so we just use the default modes (convolution for both diffuse and specular) for the first row. Here we only show SH L2 results.
- More baking methods, like H-basis L1/L2, spherical gaussians and spherical harmonics windowed
- Volumetric lightmap (light probes)
- Dynamic lights update
- Performance optimization