Skip to content

[KHR_gaussian_splatting] Proposal to specify anti-aliasing filter #2564

@tomas2211

Description

@tomas2211

Hi, thanks for proposing to bring 3DGS to glTF - this extension looks very promising for interoperability.

While the specification goes into substantial detail on kernel shape, projection, lighting, and rendering order, I noticed that it does not currently address anti‑aliasing behavior. In practice, AA choice significantly affects fidelity, especially across varying viewing distances and resolutions.

The original Inria 3DGS implementation applies a dilation filter (size = 0.3) to the projected 2D ellipse splats, even though this detail is not explicitly discussed in the paper. This behavior can be seen directly in the rasterizer code.

Subsequent work - notably Mip-Splatting: Alias-free 3D Gaussian Splatting by Yu Z. et al. - shows that dilation filtering produces artifacts when changing resolution. They propose replacing the dilation filter with a Mip filter (size = 0.1), which removes these artifacts and ensures resolution‑consistent appearance. Since publication, Mip filtering has been widely adopted e.g.:

In real scenes, this difference can be visually dramatic. When rendering splats trained with mip filtering, using dilation filtering in the renderer inflates fine structures as distance increases, while mip filtering preserves geometry consistently. The following example of a scene trained with mip filter and rendered with both options shows the effect:

Dilation filter Mip filter
Image Image

Proposal - add antiAliasing property

I propose adding a new optional property to KHR_gaussian_splatting that would define both filter type and (optionally) size:

"extensions": {
  "KHR_gaussian_splatting": {
    "kernel": "ellipse",
    "colorSpace": "srgb_rec709_display",
    "sortingMethod": "cameraDistance",
    "projection": "perspective",

    // New property
    "antiAliasing": {
      "filter": "dilation" | "mip",
      "size": <number> // optional
    }
  }
}

If not specified, default size should respect the values proposed by respective papers i.e. 0.3 for dilation and 0.1 for mip.

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