@liveroom-tech/react-immersive 1.2.1 → 1.3.1
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 +33 -0
- package/dist/bvhWorkerCode-JRKQF4QH.mjs +7 -0
- package/dist/index.js +387 -157
- package/dist/index.mjs +328 -108
- package/package.json +4 -2
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.
|