Skip to content

Exported HTML/ZIP viewer renders visibly darker/patchier than Editor for the same SOG data (unified vs non-unified GSplat renderer mismatch) #1004

Description

@BernardoI

Summary
The Editor's own live view and a directly-exported/re-imported .sog file both render a splat scene correctly. But exporting that same scene as an HTML or ZIP Viewer package produces visibly darker/patchier results in dense, high-overlap regions (e.g. wall corners with many overlapping camera passes) — even with SH bands at max, SOG iterations at max, tonemapping matched to the Editor's default (linear), and High Precision Rendering on.

Root cause found

The Editor explicitly loads splats with unified: false on the gsplat component (src/splat.ts), i.e. the legacy/non-unified GSplat renderer.
The exported HTML/ZIP viewer is generated by @playcanvas/splat-transform, which bundles its own separate, embedded copy of the PlayCanvas engine (older build, 2.20.6 vs the Editor's 2.21.1). That embedded engine's GSplatComponent defaults to unified: true, and nothing in the generated viewer app overrides it.
So the exact same SOG data is rendered through two different splat sorting/blending implementations depending on whether you're looking at it in the Editor or in the exported Viewer, and the "unified" path produces visibly different (worse-looking, in our case) output in high-overlap regions.
Repro

Train/clean a splat scene with a region of many overlapping Gaussians (e.g. a wall corner captured by multiple camera passes).
Confirm it looks correct in the Editor's live view.
Export as SOG, re-import into the Editor — still looks correct (rules out SOG compression/iteration count as the cause).
Export as HTML (Viewer) with the same source data, open the exported file — visibly darker/patchier in the same region.
Ask
Is unified: true intentional for the exported Viewer's default, and is there a documented way to override it (e.g. exposed in ExperienceSettings/the export dialog)? If not, would you consider either exposing it, or aligning the exported Viewer's default with the Editor's (unified: false) until the unified renderer's quality parity is confirmed?

Environment: SuperSplat v2.32.3, SplatTransform v3.1.7, Engine v2.21.1 (Editor) / embedded 2.20.6 (exported Viewer), Windows 11, Chrome, NVIDIA RTX 4090.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions