Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: playcanvas/engine
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v2.19.0
Choose a base ref
...
head repository: playcanvas/engine
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v2.19.1
Choose a head ref
  • 4 commits
  • 41 files changed
  • 3 contributors

Commits on May 28, 2026

  1. docs(gsplat): drop "unified" framing now that it's the default (#8805)

    Follow-up cleanup to the unified-default flip (#8802, #8803, #8804).
    Unified rendering is now the default and the unified property is
    @deprecated/@ignore, so the public API docs and examples shouldn't be
    framed around "unified mode" any more — it's just gsplat rendering.
    
    Engine source:
    - GSplatComponent: remove the "## Unified Rendering" section from the
      class JSDoc; strip the JSDoc blocks from material get/set and
      highQualitySH get/set (both are legacy-only and only documented the
      unified/non-unified distinction). Drop "unified" qualifiers from
      workBufferUpdate, workBufferModifier, setParameter, and
      getInstanceTexture JSDocs.
    - GSplatComponentSystem: drop "in unified mode" from the
      material:created and frame:ready event JSDocs, and from the
      getMaterial JSDoc.
    - GSplatParams: rename "Parameters for GSplat unified system" to
      "Parameters for the GSplat system"; drop "unified" qualifier from
      dataFormat, material, and format JSDocs.
    - GSplatContainer: drop "non-unified rendering" from the class example
      comment, drop unified: true from the addComponent example, drop
      "unified" qualifier from the centers JSDoc.
    
    Examples (gaussian-splatting folder):
    - Remove unified: true from every addComponent('gsplat', { ... }) call
      (~40 occurrences across 29 files) — it's now the default and the
      property is deprecated.
    - Reword/remove comments that mention "unified" framing now that it's
      just the standard path (e.g. "Create hotel gsplat with unified set
      to true" → "Create hotel gsplat").
    - Drop three stale orbit-pivot comments ("unified gsplats have no mesh
      AABB for focusEntity framing") — these became factually incorrect
      once #8803 made orbit-camera unified-aware.
    - Update global-sorting example header from "demonstrates unified
      gsplat rendering" to "demonstrates global gsplat sorting" to reflect
      what the example actually shows.
    
    Remaining "unified" mentions in the engine are all either internal
    (private fields, code comments, code branches), runtime warning strings
    (which must keep the property name), @ignore'd JSDoc, or directory
    names — none render in public docs.
    
    Co-authored-by: Martin Valigursky <mvaligursky@snapchat.com>
    mvaligursky and Martin Valigursky committed May 28, 2026
    Configuration menu
    Copy the full SHA
    11313e3 View commit details
    Browse the repository at this point in the history

Commits on May 29, 2026

  1. feat(gsplat): support GSPLAT_AA in the hybrid renderer (#8807)

    The quad gsplat renderer applies an anti-aliasing opacity factor when
    GSPLAT_AA is enabled, but the hybrid (GPU-sort) renderer ignored it.
    Since the hybrid path projects in a compute pass and rasterizes from a
    cache, the AA factor is computed in the projector and baked into the
    cached alpha, so the hybrid VS and cache layout are unchanged.
    
    The AA variant is gated to non-pick mode (picking only gates on a binary
    opacity threshold), keeping the projector variant count to 12 not 16.
    
    Also adds an Anti-alias toggle to the gsplat viewer example's Renderer
    panel, wired to GSplatParams#antiAlias.
    
    Co-authored-by: Martin Valigursky <mvaligursky@snapchat.com>
    Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
    3 people committed May 29, 2026
    Configuration menu
    Copy the full SHA
    af650a7 View commit details
    Browse the repository at this point in the history
  2. fix(gsplat): sort worker ReferenceError after esbuild migration (#8808)

    GSplatSortBinWeights is stringified via toString() and injected into the
    unified sorter's Worker blob. With esbuild's target: 'es2020', public
    class fields are transpiled into __publicField() helper calls (minified
    to n). The helper lives only in the main bundle, so when the class runs
    inside the worker the constructor throws "ReferenceError: n is not
    defined" on its first field assignment.
    
    Move all five instance fields into the constructor as plain
    this.x = ... assignments so the class stays self-contained when
    stringified.
    
    Fixes #8806.
    
    Co-authored-by: Martin Valigursky <mvaligursky@snapchat.com>
    mvaligursky and Martin Valigursky committed May 29, 2026
    Configuration menu
    Copy the full SHA
    9ad6519 View commit details
    Browse the repository at this point in the history
  3. 2.19.1

    Martin Valigursky committed May 29, 2026
    Configuration menu
    Copy the full SHA
    9069deb View commit details
    Browse the repository at this point in the history
Loading