We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.

Modern 3D Gaussian Splatting (LOD + Spark Renderer) Completely Unusable in Verge3D Due to Disabled W

Home Forums Bug Reports and Feature Requests Modern 3D Gaussian Splatting (LOD + Spark Renderer) Completely Unusable in Verge3D Due to Disabled W

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #85450
    QiangGe
    Participant

    Hello Verge3D team and community,
    I’ve been trying to integrate a high-performance 3D Gaussian Splatting viewer with LOD support (using the popular @sparkjsdev/spark renderer and large .spz scenes ~150 million splats) into a Verge3D project.
    Unfortunately it is currently impossible to get it running properly in Verge3D, even though the exact same code works perfectly at 60+ FPS with zero warnings when using original three.js r170+.
    After in-depth debugging, the root causes are:

    === Verge3D Full Compatibility Diagnostic Report (English) ===
    Date : 2025-11-20
    Verge3D version : v3d.module49.js (based on three.js ~r122)
    Browser : Windows NT 10.0; Win64; x64
    GPU : ANGLE (NVIDIA, NVIDIA GeForce RTX 3080 (0x0000220A) Direct3D11 vs_5_0 ps_5_0, D3D11) (Google Inc. (NVIDIA))

    — Critical WebGL2 Extensions (Required by Spark / 3DGS / three-gs etc.) —
    OES_texture_half_float : ✗ DISABLED by Verge3D
    OES_texture_half_float_linear : ✗ DISABLED by Verge3D
    EXT_color_buffer_half_float : ✓ Supported
    WEBGL_color_buffer_float : ✗ Disabled (fallback)
    OES_standard_derivatives : ✗ DISABLED by Verge3D
    OES_texture_float : ✗ Disabled
    OES_texture_float_linear : ✓ Supported

    — Required three.js Modern APIs (Missing in old Verge3D fork) —
    WebGLRenderer.prototype.readRenderTargetPixelsAsync : ✗ MISSING → needs polyfill
    InstancedBufferAttribute.prototype.addUpdateRange : ✗ MISSING → needs polyfill

    — Summary —
    • All 5 core half-float extensions are deliberately disabled by Verge3D.
    • Two essential three.js APIs (introduced after r130) are completely missing.
    • Modern Gaussian Splatting renderers (Spark, three-gs, etc.) cannot run without heavy polyfills or will fail entirely.
    • The same hardware + browser + original three.js r170+ runs these renderers at full 60+ FPS with zero warnings.

    Conclusion for Verge3D team:
    Please either:
    1. Remove the internal extension blacklist, or
    2. Update the embedded three.js to at least r160+ and enable standard WebGL2 features.

    This prevents the entire 2024–2025 generation of high-performance point-cloud / Gaussian Splatting viewers from working in Verge3D applications.

    Report generated automatically for official feedback.

    #85452

    Hi,

    1) There might be some inconsistencies in the code that detect WebGL extensions, because we have not blacklisted any of those. Moreover, these are used extensively to implement HDR rendering and image-based lighting in Verge3D.

    2) Unfortunately, Verge3D and Three.js code bases diverged a lot since r122 when the last sync was performed. API differences are not so significant, but still might require refactoring of the apps being ported from Three.js to Verge.

    Soft8Soft Tech Chief
    X | FB | LinkedIn

Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.