Skip to content

Expose the Gaussian splat tonemapping setting in the rendering settings #2222

Description

@mvaligursky

Engine 2.22 adds useTonemap to GSplatParams (playcanvas/engine#9229). Splats are unlit, but their stored colors still go through the camera tone curve and Scene.exposure, so changing the exposure to grade the lit content of a scene also shifts the splats. Setting this to false takes splats out of that pipeline, which is what you want when the capture is already graded at its final brightness, or when the exposure is animated and the splats should stay put.

The engine reads it from the scene settings as render.gsplatUseTonemap, defaulting to true. Without an inspector field, a project can only set it from a script.

Suggested change:

  • Add a boolean field for gsplatUseTonemap to the Rendering settings, labelled something like Splat Tonemapping, defaulting to on.
  • The Rendering settings have no Gaussian splat fields at all today, so this likely wants a small Gaussian Splatting group rather than a loose checkbox.

Notes:

  • Worth adding gsplatUseFog (Scene.gsplat.useFog, also defaulting to true) in the same group. It has been in the engine for a while and is equally unexposed, and it is the same kind of decision made at the same time — whether splats participate in the scene's fog and tone response.
  • The tooltip should make clear it only affects splats: every other object keeps using the camera tonemapping and exposure. Turning it off means splats no longer share the tone response of the rest of the scene, so highlights clip instead of rolling off — in scenes that mix splats with lit geometry it is usually better left on.
  • The two settings are independent: with tonemapping off and fog on, splats are still fogged.
  • Needs the render.gsplatUseTonemap (and render.gsplatUseFog) keys in the scene settings schema.
  • Documented in Add a Tonemapping and Exposure page for Gaussian splats developer-site#1164.

Should wait until the engine release containing it is out.

Metadata

Metadata

Assignees

Labels

area: editor interfaceenhancementNew feature or requestrequires: engineBlocked on an engine change not yet in the editor's engine dependencyrequires: schemaRequires a backend schema change before the editor work can land

Type

No type

Projects

Status
Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions