Color Grading Reference
Scope
For developers and technical artists who need field ranges, method contracts, and GPU mapping details.
This page covers exact API lookup after you already know the workflow.
It complements the canonical Color Grading Quick Start.
Purpose
Use this reference for the current color grading API on GaussianSplatNode3D, including runtime grading and bake/restore workflows.
Usage
| Task |
Action |
Source |
| Assign grading to a node |
Call set_color_grading() or set rendering/color_grading with a ColorGradingResource |
modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:190, modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:192 |
| Apply grading in real time |
Keep resource enabled=true; renderer packs values into tile render params each frame |
modules/gaussian_splatting/resources/color_grading_resource.h:10, modules/gaussian_splatting/renderer/tile_render_stages.cpp:323 |
| Bake grading into splat data |
Call bake_color_grading() to update SH DC coefficients in GaussianData |
modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:1794, modules/gaussian_splatting/core/gaussian_data.cpp:1816 |
| Restore original colors |
Call restore_color_grading() to restore pre-bake SH DC values |
modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:1821, modules/gaussian_splatting/core/gaussian_data.cpp:1855 |
API
| Resource field |
Type |
Range/default |
Source |
enabled |
bool |
default true |
modules/gaussian_splatting/resources/color_grading_resource.h:10 |
exposure |
float |
[-5.0, 5.0], default 0.0 |
modules/gaussian_splatting/resources/color_grading_resource.h:11 |
contrast |
float |
[0.0, 2.0], default 1.0 |
modules/gaussian_splatting/resources/color_grading_resource.h:12 |
saturation |
float |
[0.0, 2.0], default 1.0 |
modules/gaussian_splatting/resources/color_grading_resource.h:13 |
temperature |
float |
[-100.0, 100.0], default 0.0 |
modules/gaussian_splatting/resources/color_grading_resource.h:14 |
tint |
float |
[-100.0, 100.0], default 0.0 |
modules/gaussian_splatting/resources/color_grading_resource.h:15 |
hue_shift |
float |
[-180.0, 180.0], default 0.0 |
modules/gaussian_splatting/resources/color_grading_resource.h:16 |
| Node method |
Return |
Behavior |
set_color_grading(grading) |
void |
Assigns resource and marks render state dirty |
bake_color_grading() |
Error |
Applies CPU grading to SH DC and disables runtime grading to avoid double-apply |
restore_color_grading() |
void |
Restores backed-up SH DC and re-enables runtime grading |
is_color_grading_baked() |
bool |
Returns bake state from underlying GaussianData |
| GPU mapping |
Layout |
color_grading_primary |
x=enabled, y=exposure, z=contrast, w=saturation (TileRenderParamsGPU) |
color_grading_secondary |
x=temperature, y=tint, z=hue_shift, w=reserved (TileRenderParamsGPU) |
Source: modules/gaussian_splatting/renderer/gaussian_gpu_layout.h:354, modules/gaussian_splatting/renderer/tile_render_stages.cpp:323, modules/gaussian_splatting/shaders/includes/color_grading_binning.glsl:30.
Examples
var grading := ColorGradingResource.new()
grading.enabled = true
grading.exposure = 0.25
grading.contrast = 1.1
grading.saturation = 1.05
grading.temperature = 8.0
grading.tint = -4.0
grading.hue_shift = 6.0
var splat_node := $GaussianSplatNode3D
splat_node.set_color_grading(grading)
var err := splat_node.bake_color_grading()
if err != OK:
push_error("Bake failed: %s" % err)
if splat_node.is_color_grading_baked():
splat_node.restore_color_grading()
Troubleshooting
| Symptom |
Cause |
Action |
bake_color_grading() returns ERR_UNCONFIGURED |
Node has no grading resource or no loaded gaussian data |
Assign a ColorGradingResource and load data before baking (modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:1795, modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:1800) |
| Colors look doubly graded |
Runtime grading was re-enabled while baked colors are still applied |
Call restore_color_grading() before re-baking and keep runtime grading disabled during baked mode (modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:1813) |
| Runtime sliders do not change output |
Resource is unset or disabled |
Confirm node property rendering/color_grading and enabled state (modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:192, modules/gaussian_splatting/resources/color_grading_resource.h:10) |