@liveroom-tech/react-immersive 1.2.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1802,6 +1802,39 @@ To use this library successfully, your GLB/GLTF asset should follow these expect
1802
1802
 
1803
1803
  If a node name or material name does not match, that object will not render through the interactive binding flow.
1804
1804
 
1805
+ ### Large models
1806
+
1807
+ Viewport picking (click/hover) is accelerated by a BVH index built in a
1808
+ background worker, so even multi-million-triangle models stay responsive to
1809
+ the pointer. Models above roughly **12 million triangles** are too large to
1810
+ index without a significant memory cost, and the viewer degrades gracefully
1811
+ instead of freezing:
1812
+
1813
+ - viewport click/hover picking is disabled (`onObjectSelect` / `onObjectHover`
1814
+ do not fire from the canvas); selection through the scene objects panel
1815
+ still works
1816
+ - a dismissible banner tells the user the model is very large, may render
1817
+ slowly on their device, and that selection is available through the panel
1818
+ - the loading overlay calls out the extra work — uploading that much geometry
1819
+ to the GPU is a single synchronous operation that can block the page for
1820
+ tens of seconds in any WebGL viewer
1821
+
1822
+ Orbit, zoom, animations, annotations, and the panels keep working. There is no
1823
+ viewer-side way to make models of this size feel fast — the per-frame cost is
1824
+ inherent, and on mobile devices the decoded geometry alone can exceed the
1825
+ tab's memory budget. Decimate such assets at ingestion (to roughly 2–3M
1826
+ triangles) instead of shipping the raw export; note that very large
1827
+ Draco-compressed files need Blender or native tooling to decimate — the WASM
1828
+ builds of `gltf-transform` and `gltfpack` cannot decode them within their 4GB
1829
+ address space.
1830
+
1831
+ Two related picking notes that apply to models of every size:
1832
+
1833
+ - clicks resolve the front-most surface under the pointer; a mesh with
1834
+ `selectable: false` does not pass the click through to meshes behind it
1835
+ - `SimpleModelViewer` renders on demand — an idle viewer draws no frames, so
1836
+ it costs no GPU time or battery until something changes
1837
+
1805
1838
  ## License
1806
1839
 
1807
1840
  Proprietary — see [LICENSE](./LICENSE). Installing the package does not itself grant a right to use it in production; a valid `licenseKey` from the [Developer Portal](https://react-immersive.liveroom.dev) is required, and usage is bound to the terms of your license tier.