@drawcall/lod 0.1.2 → 0.2.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.
Files changed (144) hide show
  1. package/README.md +10 -69
  2. package/dist/at.d.ts +2 -0
  3. package/dist/at.js +8 -0
  4. package/dist/at.js.map +1 -0
  5. package/dist/baked/codec.d.ts +6 -3
  6. package/dist/baked/codec.js +22 -16
  7. package/dist/baked/codec.js.map +1 -1
  8. package/dist/baked/index.d.ts +4 -0
  9. package/dist/baked/index.js +2 -2
  10. package/dist/baked/index.js.map +1 -1
  11. package/dist/baked/low.d.ts +2 -2
  12. package/dist/baked/low.js +4 -4
  13. package/dist/baked/low.js.map +1 -1
  14. package/dist/bounds.d.ts +12 -2
  15. package/dist/bounds.js +72 -10
  16. package/dist/bounds.js.map +1 -1
  17. package/dist/compile.d.ts +4 -0
  18. package/dist/compile.js +100 -0
  19. package/dist/compile.js.map +1 -0
  20. package/dist/deferred.d.ts +12 -0
  21. package/dist/deferred.js +27 -0
  22. package/dist/deferred.js.map +1 -0
  23. package/dist/dispose.d.ts +7 -3
  24. package/dist/dispose.js +33 -4
  25. package/dist/dispose.js.map +1 -1
  26. package/dist/fade.d.ts +5 -13
  27. package/dist/fade.js +62 -28
  28. package/dist/fade.js.map +1 -1
  29. package/dist/impostor/bake/index.d.ts +1 -0
  30. package/dist/impostor/bake/index.js +1 -0
  31. package/dist/impostor/bake/index.js.map +1 -1
  32. package/dist/impostor/bake/materials.js +11 -1
  33. package/dist/impostor/bake/materials.js.map +1 -1
  34. package/dist/impostor/codec.d.ts +2 -7
  35. package/dist/impostor/codec.js +16 -27
  36. package/dist/impostor/codec.js.map +1 -1
  37. package/dist/impostor/mesh/card.js +4 -1
  38. package/dist/impostor/mesh/card.js.map +1 -1
  39. package/dist/impostor/mesh/index.d.ts +6 -4
  40. package/dist/impostor/mesh/index.js +8 -10
  41. package/dist/impostor/mesh/index.js.map +1 -1
  42. package/dist/impostor/mesh/material.d.ts +7 -5
  43. package/dist/impostor/mesh/material.js +29 -26
  44. package/dist/impostor/mesh/material.js.map +1 -1
  45. package/dist/impostor/mesh/surface.d.ts +20 -16
  46. package/dist/impostor/mesh/surface.js +74 -55
  47. package/dist/impostor/mesh/surface.js.map +1 -1
  48. package/dist/impostor/octahedral.d.ts +1 -8
  49. package/dist/impostor/octahedral.js +3 -18
  50. package/dist/impostor/octahedral.js.map +1 -1
  51. package/dist/index.d.ts +7 -6
  52. package/dist/index.js +5 -4
  53. package/dist/index.js.map +1 -1
  54. package/dist/instanced/args.js +2 -2
  55. package/dist/instanced/args.js.map +1 -1
  56. package/dist/instanced/{bounds.d.ts → blocks.d.ts} +25 -9
  57. package/dist/instanced/{bounds.js → blocks.js} +76 -53
  58. package/dist/instanced/blocks.js.map +1 -0
  59. package/dist/instanced/dirty.d.ts +3 -0
  60. package/dist/instanced/dirty.js +40 -5
  61. package/dist/instanced/dirty.js.map +1 -1
  62. package/dist/instanced/index.d.ts +25 -51
  63. package/dist/instanced/index.js +189 -413
  64. package/dist/instanced/index.js.map +1 -1
  65. package/dist/instanced/meshes.d.ts +54 -13
  66. package/dist/instanced/meshes.js +178 -41
  67. package/dist/instanced/meshes.js.map +1 -1
  68. package/dist/instanced/parts.d.ts +14 -0
  69. package/dist/instanced/parts.js +79 -0
  70. package/dist/instanced/parts.js.map +1 -0
  71. package/dist/instanced/raycast.d.ts +13 -0
  72. package/dist/instanced/raycast.js +53 -0
  73. package/dist/instanced/raycast.js.map +1 -0
  74. package/dist/instanced/select.d.ts +17 -9
  75. package/dist/instanced/select.js +114 -63
  76. package/dist/instanced/select.js.map +1 -1
  77. package/dist/instanced/store.d.ts +31 -0
  78. package/dist/instanced/store.js +96 -0
  79. package/dist/instanced/store.js.map +1 -0
  80. package/dist/levels.d.ts +71 -48
  81. package/dist/levels.js +99 -74
  82. package/dist/levels.js.map +1 -1
  83. package/dist/loader/bundle.d.ts +25 -0
  84. package/dist/loader/bundle.js +241 -0
  85. package/dist/loader/bundle.js.map +1 -0
  86. package/dist/loader/cache.d.ts +15 -15
  87. package/dist/loader/cache.js +71 -33
  88. package/dist/loader/cache.js.map +1 -1
  89. package/dist/loader/provenance.d.ts +30 -0
  90. package/dist/loader/provenance.js +105 -0
  91. package/dist/loader/provenance.js.map +1 -0
  92. package/dist/loader/url.d.ts +13 -0
  93. package/dist/loader/url.js +31 -0
  94. package/dist/loader/url.js.map +1 -0
  95. package/dist/loader.d.ts +30 -74
  96. package/dist/loader.js +191 -186
  97. package/dist/loader.js.map +1 -1
  98. package/dist/lod.d.ts +20 -31
  99. package/dist/lod.js +105 -96
  100. package/dist/lod.js.map +1 -1
  101. package/dist/material.js +9 -4
  102. package/dist/material.js.map +1 -1
  103. package/dist/mesh/codec.d.ts +4 -0
  104. package/dist/mesh/codec.js +192 -0
  105. package/dist/mesh/codec.js.map +1 -0
  106. package/dist/queue.d.ts +2 -0
  107. package/dist/queue.js +33 -0
  108. package/dist/queue.js.map +1 -0
  109. package/dist/residency.d.ts +44 -0
  110. package/dist/residency.js +205 -0
  111. package/dist/residency.js.map +1 -0
  112. package/dist/simplify.js +5 -3
  113. package/dist/simplify.js.map +1 -1
  114. package/dist/source/{error.d.ts → deviation.d.ts} +3 -3
  115. package/dist/source/{error.js → deviation.js} +6 -6
  116. package/dist/source/deviation.js.map +1 -0
  117. package/dist/source/source.d.ts +1 -1
  118. package/dist/source/source.js +1 -1
  119. package/dist/three.d.ts +17 -5
  120. package/dist/three.js +24 -3
  121. package/dist/three.js.map +1 -1
  122. package/dist/tsl.d.ts +5 -5
  123. package/dist/tsl.js +12 -19
  124. package/dist/tsl.js.map +1 -1
  125. package/dist/view.d.ts +16 -1
  126. package/dist/view.js +57 -1
  127. package/dist/view.js.map +1 -1
  128. package/dist/wind/index.d.ts +2 -2
  129. package/dist/wind/index.js +31 -28
  130. package/dist/wind/index.js.map +1 -1
  131. package/dist/wind/sway.d.ts +2 -1
  132. package/package.json +9 -3
  133. package/skills/lod/SKILL.md +71 -109
  134. package/dist/impostor/cache.d.ts +0 -15
  135. package/dist/impostor/cache.js +0 -44
  136. package/dist/impostor/cache.js.map +0 -1
  137. package/dist/instanced/bounds.js.map +0 -1
  138. package/dist/lazy.d.ts +0 -64
  139. package/dist/lazy.js +0 -187
  140. package/dist/lazy.js.map +0 -1
  141. package/dist/loader/dispose.d.ts +0 -3
  142. package/dist/loader/dispose.js +0 -25
  143. package/dist/loader/dispose.js.map +0 -1
  144. package/dist/source/error.js.map +0 -1
package/README.md CHANGED
@@ -1,84 +1,25 @@
1
1
  # @drawcall/lod
2
2
 
3
- Level of detail for three.js. Load a model, get cheaper levels built for it — an
4
- octahedral impostor, a simplified mesh, a baked low-poly mesh — and switch between them
5
- by on-screen size, with a dithered fade so the switch does not pop.
3
+ Level of detail for Three.js. Build simplified meshes, baked low-poly meshes, and impostors, then switch between them by on-screen size with smooth dithered fades. Supports individual objects and instanced scenes.
6
4
 
7
- **WebGPURenderer only** (`three/webgpu`): levels draw with three's node materials, and an
8
- `InstancedLod` selects its instances' levels on the GPU.
5
+ Requires Three.js `WebGPURenderer` (`three/webgpu`).
9
6
 
10
7
  ```sh
11
8
  npm install @drawcall/lod three
12
9
  ```
13
10
 
14
- ## Usage
11
+ Load a model into an existing Three.js scene. With a warm cache, the coarse level draws first and finer levels load as the camera approaches:
15
12
 
16
13
  ```ts
17
- import { LodLoader } from "@drawcall/lod";
14
+ import { Lod, LodLoader } from "@drawcall/lod";
18
15
 
19
- const loader = new LodLoader(manager); // a three.js Loader
20
- const tree = await loader.loadAsync("/models/tree.glb"); // source → impostor
21
- scene.add(tree); // the renderer switches levels by itself, shadows included
22
-
23
- const rock = await loader.loadAsync({ url: "/models/rock.glb", levels: [{ type: "simplified" }, { type: "impostor" }] });
24
- const house = await loader.loadAsync({
25
- url: "/models/house.glb",
26
- levels: [
27
- { type: "baked", low: "/models/house-low.glb" },
28
- { type: "impostor", layout: "hemi" },
29
- ],
30
- });
31
- ```
32
-
33
- ### Which levels for which asset
34
-
35
- | Asset | Levels |
36
- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
37
- | Foliage: trees, bushes, grass, plants — anything of alpha-tested leaf cards | the default: straight to an `impostor` (`layout: "hemi"` if it stands upright). Never a `simplified` level: decimation tears leaf cards apart |
38
- | Closed hard-surface meshes: props, rocks, vehicles | `simplified`, then `impostor` |
39
- | Buildings and large hard surfaces | `baked` onto an authored or generated low mesh, then `impostor`; with `interior: "/models/house-rooms.glts"` its windows show the rooms behind them |
40
- | Low-poly props | `simplified`, or none: an impostor costs more than the mesh |
41
-
42
- A `"baked"` level (experimental) is one low-poly mesh with the source's colour, normals
43
- and material values baked into its own textures. Its low mesh has to keep the silhouette
44
- (eaves, chimneys): only surface detail moves into its textures.
45
-
46
- `.glb`/`.gltf` load through the manager's handler when one is registered (a GLTFLoader
47
- with Draco), `.glts` through a registered `GLTSLoader` from `@drawcall/glts`. Levels are
48
- built at load time.
49
-
50
- For many copies, `loader.loadInstancesAsync(url, count)` gives an `InstancedLod`: one
51
- draw per level and mesh, each instance switching by its own size on screen; place them
52
- with `setMatrixAt`.
53
-
54
- For vegetation, apply one shared breeze after building the levels:
55
-
56
- ```ts
57
- import { Wind } from "@drawcall/lod";
58
-
59
- const wind = new Wind({ direction: [1, 0.3], speed: 0.25 });
60
- wind.apply(tree, { amplitude: 0.2 }); // source, cheaper levels and shadows sway together
61
- // Before rendering each frame:
62
- wind.time = elapsedSeconds;
16
+ const loader = new LodLoader();
17
+ const levels = await loader.loadAsync("/models/tree.glb");
18
+ scene.add(new Lod(levels));
63
19
  ```
64
20
 
65
- The same call works on an `InstancedLod` or a standalone mesh. Objects without wind
66
- keep their static rendering path.
67
-
68
- Bring your own levels with `new Lod([source, ...levels])` or
69
- `new InstancedLod([source, ...levels], count)`: any `Object3D`, including another `Lod`
70
- (but not inside an `InstancedLod`). `Lod.quality` trades detail for speed globally,
71
- `Lod.debug` tints each level, `lod.forceLevel` pins one.
72
-
73
- ### Building blocks
74
-
75
- The pieces behind the loader are exported too: `simplify` (meshoptimizer), `bakeMesh`
76
- (the baked level), `bakeImpostor` and `ImpostorMesh` (one draw for thousands of
77
- impostors, placed like an `InstancedMesh`'s instances), and `encodeImpostor`/`decodeImpostor` to save
78
- impostors as KTX2.
21
+ Add the [vitecache](https://github.com/drawcall-ai/vitecache) Vite plugin to the host. Loading each asset in the dev server writes its levels as cache files; `vite build` does not generate them, so deploy the cache directory with the app. For procedural assets, register a GLTSLoader on the loading manager and pass a `.glts` URL; the LOD skill below covers caching their expensive generation.
79
22
 
80
- The package ships a skill for coding agents with the details of when to use which part.
23
+ Choose derived levels to suit your assets. The [LOD skill](https://github.com/drawcall-ai/lod/blob/main/packages/lod/skills/lod/SKILL.md) covers asset choices, caching, lazy loading, wind, and scene integration. It also ships with the package at `skills/lod/SKILL.md`.
81
24
 
82
- The showcase, `examples/city` (`pnpm city`), flies over a 4 km world from two
83
- kilometres up down to a ladybird on a corn leaf, every kind of content on the levels
84
- that suit it.
25
+ The [city example](https://github.com/drawcall-ai/lod/tree/main/examples/city) demonstrates a large scene with buildings, vegetation, and small props.
package/dist/at.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ /** `values[index]`, throwing where it is missing. */
2
+ export declare function at<T>(values: ArrayLike<T>, index: number): T;
package/dist/at.js ADDED
@@ -0,0 +1,8 @@
1
+ /** `values[index]`, throwing where it is missing. */
2
+ export function at(values, index) {
3
+ const value = values[index];
4
+ if (value === undefined)
5
+ throw new Error(`index ${index} out of range`);
6
+ return value;
7
+ }
8
+ //# sourceMappingURL=at.js.map
package/dist/at.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"at.js","sourceRoot":"","sources":["../src/at.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,MAAM,UAAU,EAAE,CAAI,MAAoB,EAAE,KAAa;IACvD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,eAAe,CAAC,CAAC;IACxE,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -2,9 +2,12 @@ import { Mesh } from "three/webgpu";
2
2
  /**
3
3
  * Encode an unmodified `bakeMesh` result, before adding it to a Lod or changing its
4
4
  * materials. This is a baked-result format, not an Object3D/NodeMaterial serializer.
5
- * Geometry, map bytes (including cutout mips), rooms, placement and LOD error survive
5
+ * Geometry, map bytes (including cutout mips), rooms, placement and LOD deviation survive
6
6
  * exactly. Decoding owns fresh resources; the input mesh remains owned by its caller.
7
7
  */
8
8
  export declare function encodeBakedMesh(mesh: Mesh): Uint8Array;
9
- /** Decode `encodeBakedMesh` bytes into an independently owned mesh, ready for a Lod. */
10
- export declare function decodeBakedMesh(input: Uint8Array | ArrayBuffer): Mesh;
9
+ /**
10
+ * Decode `encodeBakedMesh` bytes into an independently owned mesh, ready for a Lod. Large
11
+ * entries inflate in fflate workers.
12
+ */
13
+ export declare function decodeBakedMeshAsync(bytes: Uint8Array): Promise<Mesh>;
@@ -1,6 +1,6 @@
1
- import { strFromU8, strToU8, unzipSync, zipSync } from "fflate";
1
+ import { strFromU8, strToU8, unzip, zipSync } from "fflate";
2
2
  import { Box3, BufferAttribute, BufferGeometry, ClampToEdgeWrapping, DataArrayTexture, DataTexture, DoubleSide, FrontSide, LinearFilter, LinearMipmapLinearFilter, Mesh, MeshStandardNodeMaterial, NoColorSpace, RGBAFormat, RGFormat, SRGBColorSpace, UnsignedByteType, UVMapping, Vector3, } from "three/webgpu";
3
- import { errorOf, recordError } from "../levels.js";
3
+ import { deviationOf, recordDeviation } from "../levels.js";
4
4
  import { InteriorMaterial } from "./interior/material.js";
5
5
  function fail(why) {
6
6
  throw new Error(`Invalid baked mesh: ${why}`);
@@ -25,14 +25,14 @@ const file = (files, name) => files[name] ?? fail(`missing ${name}`);
25
25
  /**
26
26
  * Encode an unmodified `bakeMesh` result, before adding it to a Lod or changing its
27
27
  * materials. This is a baked-result format, not an Object3D/NodeMaterial serializer.
28
- * Geometry, map bytes (including cutout mips), rooms, placement and LOD error survive
28
+ * Geometry, map bytes (including cutout mips), rooms, placement and LOD deviation survive
29
29
  * exactly. Decoding owns fresh resources; the input mesh remains owned by its caller.
30
30
  */
31
31
  export function encodeBakedMesh(mesh) {
32
- const error = errorOf(mesh);
32
+ const deviation = deviationOf(mesh);
33
33
  const { geometry, material } = mesh;
34
- if (error === undefined || !(error >= 0) || !Number.isFinite(error))
35
- fail("expected a bakeMesh result with its LOD error");
34
+ if (deviation === undefined || !(deviation >= 0) || !Number.isFinite(deviation))
35
+ fail("expected a bakeMesh result with its LOD deviation");
36
36
  if (mesh.children.length ||
37
37
  !mesh.matrixAutoUpdate ||
38
38
  !mesh.visible ||
@@ -101,9 +101,9 @@ export function encodeBakedMesh(mesh) {
101
101
  files.index = new Uint8Array(index.array.buffer, index.array.byteOffset, index.array.byteLength);
102
102
  const rooms = material instanceof InteriorMaterial ? (material.rooms ?? fail("unfurnished interior")) : null;
103
103
  const meta = {
104
- version: 1,
104
+ version: 2,
105
105
  name: mesh.name,
106
- error,
106
+ deviation,
107
107
  position: mesh.position.toArray(),
108
108
  quaternion: mesh.quaternion.toArray(),
109
109
  scale: mesh.scale.toArray(),
@@ -125,18 +125,24 @@ export function encodeBakedMesh(mesh) {
125
125
  files.meta = strToU8(JSON.stringify(meta));
126
126
  return zipSync(files, { level: 6 });
127
127
  }
128
- /** Decode `encodeBakedMesh` bytes into an independently owned mesh, ready for a Lod. */
129
- export function decodeBakedMesh(input) {
130
- const files = unzipSync(input instanceof Uint8Array ? input : new Uint8Array(input));
128
+ /**
129
+ * Decode `encodeBakedMesh` bytes into an independently owned mesh, ready for a Lod. Large
130
+ * entries inflate in fflate workers.
131
+ */
132
+ export async function decodeBakedMeshAsync(bytes) {
133
+ const files = await new Promise((resolve, reject) => unzip(bytes, (error, files) => (error ? reject(error) : resolve(files))));
134
+ return fromFiles(files);
135
+ }
136
+ function fromFiles(files) {
131
137
  const parsed = JSON.parse(strFromU8(file(files, "meta")));
132
138
  const meta = object(parsed);
133
- if (meta.version !== 1)
139
+ if (meta.version !== 2)
134
140
  fail("unsupported version");
135
141
  if (typeof meta.name !== "string")
136
142
  fail("missing name");
137
- const error = number(meta.error);
138
- if (error < 0)
139
- fail("negative LOD error");
143
+ const deviation = number(meta.deviation);
144
+ if (deviation < 0)
145
+ fail("negative LOD deviation");
140
146
  const position = floats(file(files, "position"));
141
147
  const normal = floats(file(files, "normal"));
142
148
  const uv = floats(file(files, "uv"));
@@ -188,7 +194,7 @@ export function decodeBakedMesh(input) {
188
194
  mesh.scale.fromArray(numbers(meta.scale, 3));
189
195
  mesh.castShadow = boolean(meta.castShadow);
190
196
  mesh.receiveShadow = boolean(meta.receiveShadow);
191
- recordError(mesh, error);
197
+ recordDeviation(mesh, deviation);
192
198
  return mesh;
193
199
  }
194
200
  function floats(bytes) {
@@ -1 +1 @@
1
- {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/baked/codec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/baked/codec.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,10 @@ export type BakeMeshOptions = {
11
11
  * transmissive (texture alpha is not read). Each room is captured from its box's centre
12
12
  * as its colours and its glow; the baked material lights the colours by the indirect
13
13
  * light reaching each window.
14
+ * Rooms must not overlap except at their walls. Put inward-facing walls, floors and
15
+ * ceilings on the box faces, with the box beginning just behind its windows. Furniture
16
+ * away from those faces appears flattened onto them. Glass with no nearby room stays
17
+ * plain; the bake fails if none of the source's glass looks into a room.
14
18
  */
15
19
  interior?: Object3D;
16
20
  } & ({
@@ -1,6 +1,6 @@
1
1
  import { BufferAttribute, BufferGeometry, DataTexture, DoubleSide, FrontSide, LinearFilter, LinearMipmapLinearFilter, Mesh, MeshStandardNodeMaterial, Matrix4, NoColorSpace, RGFormat, RGBAFormat, SRGBColorSpace, UnsignedByteType, Vector3, } from "three/webgpu";
2
2
  import { boundingBox, forEachMesh } from "../bounds.js";
3
- import { recordError } from "../levels.js";
3
+ import { recordDeviation } from "../levels.js";
4
4
  import { sharedRenderer } from "../renderer.js";
5
5
  import { readSource } from "../source/source.js";
6
6
  import { area } from "../source/surface.js";
@@ -102,7 +102,7 @@ async function bake(source, options, interior) {
102
102
  const mesh = new Mesh(geometry, material);
103
103
  mesh.name = `${source.name || "object"} baked`;
104
104
  placeLike(mesh, source);
105
- recordError(mesh, Math.max(texelSize, low.error));
105
+ recordDeviation(mesh, Math.max(texelSize, low.deviation));
106
106
  return mesh;
107
107
  }
108
108
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/baked/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/baked/index.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,8 @@ import { type Raster } from "./raster.js";
6
6
  export interface Low extends Surface {
7
7
  uvs: Float32Array;
8
8
  raster: Raster;
9
- /** How far the low surface is from the source's, in the source's units: see `measureError`. */
10
- error: number;
9
+ /** How far the low surface is from the source's, in the source's units: see `measureDeviation`. */
10
+ deviation: number;
11
11
  widest: number;
12
12
  }
13
13
  /** The source simplified to `ratio` of its triangles, welded first: seams and materials do not matter to a bake. */
package/dist/baked/low.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { BufferAttribute, BufferGeometry, Mesh } from "three/webgpu";
2
2
  import { mergeVertices } from "three/addons/utils/BufferGeometryUtils.js";
3
3
  import { decimate } from "../simplify.js";
4
- import { measureError } from "../source/error.js";
4
+ import { measureDeviation } from "../source/deviation.js";
5
5
  import { merge } from "../source/surface.js";
6
6
  import { rasterize } from "./raster.js";
7
7
  import { unwrap } from "./unwrap.js";
@@ -19,15 +19,15 @@ export function simplified(source, ratio) {
19
19
  */
20
20
  export async function layOut(object, source, size) {
21
21
  const surface = merge(object, "bakeMesh");
22
- const { error, widest } = measureError(source, surface);
22
+ const { deviation, widest } = measureDeviation(source, surface);
23
23
  const { uvs, index } = surface;
24
24
  if (surface.hasUvs && uvs.every((x) => x >= 0 && x <= 1)) {
25
25
  const raster = rasterize(uvs, index, size);
26
26
  if (raster.overlaps === 0 && raster.covered > 0 && separated(raster, charts(uvs, index)))
27
- return { ...surface, raster, error, widest };
27
+ return { ...surface, raster, deviation, widest };
28
28
  }
29
29
  const atlas = await unwrap(surface, size);
30
- return { ...atlas, raster: rasterize(atlas.uvs, atlas.index, size), error, widest };
30
+ return { ...atlas, raster: rasterize(atlas.uvs, atlas.index, size), deviation, widest };
31
31
  }
32
32
  /** Per triangle, its chart: triangles that share a UV point are in one. */
33
33
  function charts(uvs, index) {
@@ -1 +1 @@
1
- {"version":3,"file":"low.js","sourceRoot":"","sources":["../../src/baked/low.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"low.js","sourceRoot":"","sources":["../../src/baked/low.ts"],"names":[],"mappings":"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"}
package/dist/bounds.d.ts CHANGED
@@ -18,7 +18,7 @@ export declare function showDetail(root: Object3D): void;
18
18
  * an ImpostorMesh. `visit` gets one reused vector.
19
19
  */
20
20
  export declare function forEachVertex(root: Object3D, visit: (p: Vector3) => void): void;
21
- /** Bounds of every vertex that draws at full detail, in `root`'s own space. */
21
+ /** Conservative full-detail bounds from cached geometry boxes and deferred metadata, in the root's space. */
22
22
  export declare function boundingBox(root: Object3D): Box3;
23
23
  /** The centre and half diagonal of `boundingBox(root)`: an impostor baked from `root` has the same box. */
24
24
  export declare function boundingSphere(root: Object3D): Sphere;
@@ -27,7 +27,17 @@ export declare function boundingSphere(root: Object3D): Sphere;
27
27
  * first level's that draws anything when level 0 draws nothing; `own` in that level's
28
28
  * own space, `placed` in its parent's (the Lod's). `who` names the caller in the error.
29
29
  */
30
- export declare function measureLevels(levels: readonly Object3D[], who: string): {
30
+ export declare function measureLevels(levels: readonly {
31
+ object?: Object3D;
32
+ box?: Box3;
33
+ }[], who: string): {
31
34
  own: Sphere;
32
35
  placed: Sphere;
33
36
  };
37
+ /** A level's bounds in its owner's space, including an eager object's transform. */
38
+ export declare function levelBox(level: {
39
+ object?: Object3D;
40
+ box?: Box3;
41
+ }): Box3;
42
+ /** Fill absent mesh bounds conservatively from a deferred level's declared box, without reading vertices. */
43
+ export declare function prepareBounds(root: Object3D, box: Box3): void;
package/dist/bounds.js CHANGED
@@ -38,8 +38,8 @@ function walk(node, placement, visit) {
38
38
  export function detailed(node) {
39
39
  if (!isLOD(node))
40
40
  return node.children.filter((child) => child.visible);
41
- const source = node.levels[0];
42
- return source ? [source.object] : [];
41
+ const source = node.levels[0]?.object;
42
+ return source ? [source] : [];
43
43
  }
44
44
  /** `node`'s matrix in its parent's space, up to date. */
45
45
  function local(node) {
@@ -55,7 +55,10 @@ export function showDetail(root) {
55
55
  }
56
56
  if (isLOD(root)) {
57
57
  root.autoUpdate = false;
58
- root.levels.forEach((level, i) => (level.object.visible = i === 0));
58
+ root.levels.forEach((level, i) => {
59
+ if (level.object)
60
+ level.object.visible = i === 0;
61
+ });
59
62
  }
60
63
  for (const child of detailed(root))
61
64
  showDetail(child);
@@ -94,12 +97,52 @@ export function forEachVertex(root, visit) {
94
97
  visit(mesh.getVertexPosition(i, point).applyMatrix4(placement));
95
98
  });
96
99
  }
97
- /** Bounds of every vertex that draws at full detail, in `root`'s own space. */
100
+ /** Conservative full-detail bounds from cached geometry boxes and deferred metadata, in the root's space. */
98
101
  export function boundingBox(root) {
99
102
  const box = new Box3();
100
- forEachVertex(root, (p) => box.expandByPoint(p));
103
+ boxes(root, new Matrix4(), box);
101
104
  return box;
102
105
  }
106
+ function boxes(node, placement, box) {
107
+ if (isInstancedLod(node)) {
108
+ const source = node.levels[0];
109
+ if (!source)
110
+ return;
111
+ const own = levelBox(source);
112
+ const instance = new Matrix4();
113
+ for (let i = 0; i < node.count; i++)
114
+ box.union(own.clone().applyMatrix4(node.getMatrixAt(i, instance).premultiply(placement)));
115
+ return;
116
+ }
117
+ if (isLOD(node) && !node.levels[0]?.object) {
118
+ const metadata = node.levels[0]?.box;
119
+ if (metadata)
120
+ box.union(metadata.clone().applyMatrix4(placement));
121
+ return;
122
+ }
123
+ if (isMesh(node) && [node.material].flat().some((material) => material.visible && material.colorWrite)) {
124
+ if (isBatchedMesh(node)) {
125
+ if (!node.boundingBox)
126
+ node.computeBoundingBox();
127
+ if (node.boundingBox)
128
+ box.union(node.boundingBox.clone().applyMatrix4(placement));
129
+ }
130
+ else {
131
+ if (!node.geometry.boundingBox)
132
+ node.geometry.computeBoundingBox();
133
+ const own = node.geometry.boundingBox;
134
+ if (own && (isInstancedMesh(node) || isImpostorMesh(node))) {
135
+ const instance = new Matrix4();
136
+ for (let i = 0; i < node.count; i++)
137
+ box.union(own.clone().applyMatrix4(node.getMatrixAt(i, instance).premultiply(placement)));
138
+ }
139
+ else if (own)
140
+ box.union(own.clone().applyMatrix4(placement));
141
+ }
142
+ }
143
+ for (const child of detailed(node))
144
+ boxes(child, local(child).premultiply(placement), box);
145
+ }
103
146
  /** The centre and half diagonal of `boundingBox(root)`: an impostor baked from `root` has the same box. */
104
147
  export function boundingSphere(root) {
105
148
  const sphere = sphereOf(boundingBox(root));
@@ -114,14 +157,33 @@ const sphereOf = (box) => (box.isEmpty() ? null : new Sphere(box.getCenter(new V
114
157
  * own space, `placed` in its parent's (the Lod's). `who` names the caller in the error.
115
158
  */
116
159
  export function measureLevels(levels, who) {
117
- for (const level of levels) {
118
- const own = sphereOf(boundingBox(level));
160
+ for (const { object, box } of levels) {
161
+ const own = sphereOf(object ? boundingBox(object) : (box ?? new Box3()));
119
162
  if (!own)
120
163
  continue;
121
- if (level.matrixAutoUpdate)
122
- level.updateMatrix();
123
- return { own, placed: own.clone().applyMatrix4(level.matrix) };
164
+ return { own, placed: object ? own.clone().applyMatrix4(local(object)) : own.clone() };
124
165
  }
125
166
  throw new Error(`${who}: no level has visible geometry to measure`);
126
167
  }
168
+ /** A level's bounds in its owner's space, including an eager object's transform. */
169
+ export function levelBox(level) {
170
+ if (level.box)
171
+ return level.box.clone();
172
+ return level.object ? boundingBox(level.object).applyMatrix4(local(level.object)) : new Box3();
173
+ }
174
+ /** Fill absent mesh bounds conservatively from a deferred level's declared box, without reading vertices. */
175
+ export function prepareBounds(root, box) {
176
+ const visit = (node, placement) => {
177
+ if (isMesh(node)) {
178
+ if (placement.determinant() === 0)
179
+ throw new Error("Lod: mesh placement must be invertible");
180
+ const geometry = node.geometry;
181
+ geometry.boundingBox ??= box.clone().applyMatrix4(placement.clone().invert());
182
+ geometry.boundingSphere ??= geometry.boundingBox.getBoundingSphere(new Sphere());
183
+ }
184
+ for (const child of node.children)
185
+ visit(child, local(child).premultiply(placement));
186
+ };
187
+ visit(root, local(root));
188
+ }
127
189
  //# sourceMappingURL=bounds.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bounds.js","sourceRoot":"","sources":["../src/bounds.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bounds.js","sourceRoot":"","sources":["../src/bounds.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Object3D } from "three/webgpu";
2
+ import type { RenderContext } from "./view.js";
3
+ /** Prepare the same target and MRT as the viewing draw, even if normal rendering has since restored the canvas. */
4
+ export declare function compileLevel(object: Object3D, context: RenderContext): Promise<void>;