@drawcall/lod 0.1.2 → 0.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 +13 -70
- package/dist/at.d.ts +2 -0
- package/dist/at.js +8 -0
- package/dist/at.js.map +1 -0
- package/dist/bake.d.ts +22 -0
- package/dist/bake.js +88 -0
- package/dist/bake.js.map +1 -0
- package/dist/baked/codec.d.ts +5 -5
- package/dist/baked/codec.js +58 -158
- package/dist/baked/codec.js.map +1 -1
- package/dist/baked/coverage.d.ts +6 -3
- package/dist/baked/coverage.js +6 -3
- package/dist/baked/coverage.js.map +1 -1
- package/dist/baked/fields.d.ts +9 -0
- package/dist/baked/fields.js +22 -0
- package/dist/baked/fields.js.map +1 -0
- package/dist/baked/index.d.ts +16 -6
- package/dist/baked/index.js +23 -21
- package/dist/baked/index.js.map +1 -1
- package/dist/baked/interior/faces.d.ts +4 -3
- package/dist/baked/interior/faces.js +13 -10
- package/dist/baked/interior/faces.js.map +1 -1
- package/dist/baked/interior/material.d.ts +7 -10
- package/dist/baked/interior/material.js +29 -36
- package/dist/baked/interior/material.js.map +1 -1
- package/dist/baked/interior/rooms.js +1 -1
- package/dist/baked/interior/rooms.js.map +1 -1
- package/dist/baked/low.d.ts +2 -2
- package/dist/baked/low.js +9 -8
- package/dist/baked/low.js.map +1 -1
- package/dist/baked/raster.js +6 -6
- package/dist/baked/raster.js.map +1 -1
- package/dist/baked/textures.d.ts +17 -0
- package/dist/baked/textures.js +95 -0
- package/dist/baked/textures.js.map +1 -0
- package/dist/baked/transfer.js +19 -18
- package/dist/baked/transfer.js.map +1 -1
- package/dist/baked/unwrap.js +4 -3
- package/dist/baked/unwrap.js.map +1 -1
- package/dist/baked/xatlas.js.map +1 -1
- package/dist/codec/container.d.ts +8 -0
- package/dist/codec/container.js +63 -0
- package/dist/codec/container.js.map +1 -0
- package/dist/codec/mesh.d.ts +8 -0
- package/dist/codec/mesh.js +220 -0
- package/dist/codec/mesh.js.map +1 -0
- package/dist/dispose.d.ts +11 -4
- package/dist/dispose.js +39 -12
- package/dist/dispose.js.map +1 -1
- package/dist/gpu.d.ts +39 -0
- package/dist/gpu.js +41 -0
- package/dist/gpu.js.map +1 -0
- package/dist/impostor/bake/atlas.d.ts +4 -4
- package/dist/impostor/bake/atlas.js +12 -12
- package/dist/impostor/bake/atlas.js.map +1 -1
- package/dist/impostor/bake/fit.d.ts +8 -0
- package/dist/impostor/bake/fit.js +28 -0
- package/dist/impostor/bake/fit.js.map +1 -0
- package/dist/impostor/bake/index.d.ts +23 -14
- package/dist/impostor/bake/index.js +42 -134
- package/dist/impostor/bake/index.js.map +1 -1
- package/dist/impostor/bake/materials.d.ts +3 -3
- package/dist/impostor/bake/materials.js +60 -12
- package/dist/impostor/bake/materials.js.map +1 -1
- package/dist/impostor/bake/sheet.d.ts +8 -0
- package/dist/impostor/bake/sheet.js +90 -0
- package/dist/impostor/bake/sheet.js.map +1 -0
- package/dist/impostor/bake/source.d.ts +2 -2
- package/dist/impostor/bake/source.js +8 -19
- package/dist/impostor/bake/source.js.map +1 -1
- package/dist/impostor/codec.d.ts +5 -11
- package/dist/impostor/codec.js +37 -121
- package/dist/impostor/codec.js.map +1 -1
- package/dist/impostor/impostor.d.ts +31 -7
- package/dist/impostor/impostor.js +21 -6
- package/dist/impostor/impostor.js.map +1 -1
- package/dist/impostor/ktx2/encode.d.ts +26 -0
- package/dist/impostor/ktx2/encode.js +117 -0
- package/dist/impostor/ktx2/encode.js.map +1 -0
- package/dist/impostor/ktx2/transcode.d.ts +3 -0
- package/dist/impostor/ktx2/transcode.js +99 -0
- package/dist/impostor/ktx2/transcode.js.map +1 -0
- package/dist/impostor/ktx2/uastc.d.ts +7 -0
- package/dist/impostor/ktx2/uastc.js +64 -0
- package/dist/impostor/ktx2/uastc.js.map +1 -0
- package/dist/impostor/ktx2/wasm/encoder.d.ts +4 -0
- package/dist/impostor/ktx2/wasm/encoder.js +10 -0
- package/dist/impostor/ktx2/wasm/encoder.js.map +1 -0
- package/dist/impostor/ktx2/wasm/transcoder.d.ts +3 -0
- package/dist/impostor/ktx2/wasm/transcoder.js +9 -0
- package/dist/impostor/ktx2/wasm/transcoder.js.map +1 -0
- package/dist/impostor/ktx2/worker.d.ts +1 -0
- package/dist/impostor/ktx2/worker.js +12 -0
- package/dist/impostor/ktx2/worker.js.map +1 -0
- package/dist/impostor/mesh/card.d.ts +3 -3
- package/dist/impostor/mesh/card.js +11 -8
- package/dist/impostor/mesh/card.js.map +1 -1
- package/dist/impostor/mesh/index.d.ts +10 -7
- package/dist/impostor/mesh/index.js +15 -18
- package/dist/impostor/mesh/index.js.map +1 -1
- package/dist/impostor/mesh/material.d.ts +24 -13
- package/dist/impostor/mesh/material.js +67 -51
- package/dist/impostor/mesh/material.js.map +1 -1
- package/dist/impostor/mesh/surface.d.ts +20 -16
- package/dist/impostor/mesh/surface.js +81 -58
- package/dist/impostor/mesh/surface.js.map +1 -1
- package/dist/impostor/mesh/textures.d.ts +3 -3
- package/dist/impostor/mesh/textures.js +24 -34
- package/dist/impostor/mesh/textures.js.map +1 -1
- package/dist/impostor/octahedral.d.ts +1 -8
- package/dist/impostor/octahedral.js +3 -18
- package/dist/impostor/octahedral.js.map +1 -1
- package/dist/index.d.ts +16 -10
- package/dist/index.js +14 -8
- package/dist/index.js.map +1 -1
- package/dist/instanced/camera.d.ts +46 -0
- package/dist/instanced/camera.js +70 -0
- package/dist/instanced/camera.js.map +1 -0
- package/dist/instanced/chunk.d.ts +97 -0
- package/dist/instanced/chunk.js +156 -0
- package/dist/instanced/chunk.js.map +1 -0
- package/dist/instanced/chunks.d.ts +60 -0
- package/dist/instanced/chunks.js +208 -0
- package/dist/instanced/chunks.js.map +1 -0
- package/dist/instanced/cull.d.ts +28 -0
- package/dist/instanced/cull.js +22 -0
- package/dist/instanced/cull.js.map +1 -0
- package/dist/instanced/index.d.ts +96 -92
- package/dist/instanced/index.js +229 -512
- package/dist/instanced/index.js.map +1 -1
- package/dist/instanced/key.d.ts +19 -0
- package/dist/instanced/key.js +45 -0
- package/dist/instanced/key.js.map +1 -0
- package/dist/instanced/levels.d.ts +60 -0
- package/dist/instanced/levels.js +130 -0
- package/dist/instanced/levels.js.map +1 -0
- package/dist/instanced/lists.d.ts +70 -0
- package/dist/instanced/lists.js +133 -0
- package/dist/instanced/lists.js.map +1 -0
- package/dist/instanced/measure.d.ts +28 -0
- package/dist/instanced/measure.js +203 -0
- package/dist/instanced/measure.js.map +1 -0
- package/dist/instanced/meshes.d.ts +46 -14
- package/dist/instanced/meshes.js +137 -22
- package/dist/instanced/meshes.js.map +1 -1
- package/dist/instanced/mirror.d.ts +20 -0
- package/dist/instanced/mirror.js +37 -0
- package/dist/instanced/mirror.js.map +1 -0
- package/dist/instanced/pages/buffers.d.ts +37 -0
- package/dist/instanced/pages/buffers.js +15 -0
- package/dist/instanced/pages/buffers.js.map +1 -0
- package/dist/instanced/pages/chunk.d.ts +51 -0
- package/dist/instanced/pages/chunk.js +81 -0
- package/dist/instanced/pages/chunk.js.map +1 -0
- package/dist/instanced/pages/index.d.ts +74 -0
- package/dist/instanced/pages/index.js +269 -0
- package/dist/instanced/pages/index.js.map +1 -0
- package/dist/instanced/pages/passes.d.ts +21 -0
- package/dist/instanced/pages/passes.js +52 -0
- package/dist/instanced/pages/passes.js.map +1 -0
- package/dist/instanced/pages/slots.d.ts +11 -0
- package/dist/instanced/pages/slots.js +90 -0
- package/dist/instanced/pages/slots.js.map +1 -0
- package/dist/instanced/pages/workgroup.d.ts +14 -0
- package/dist/instanced/pages/workgroup.js +38 -0
- package/dist/instanced/pages/workgroup.js.map +1 -0
- package/dist/instanced/raycast.d.ts +15 -0
- package/dist/instanced/raycast.js +46 -0
- package/dist/instanced/raycast.js.map +1 -0
- package/dist/instanced/rows.d.ts +108 -0
- package/dist/instanced/rows.js +209 -0
- package/dist/instanced/rows.js.map +1 -0
- package/dist/instanced/shape.d.ts +25 -0
- package/dist/instanced/shape.js +51 -0
- package/dist/instanced/shape.js.map +1 -0
- package/dist/instanced/sort.d.ts +63 -0
- package/dist/instanced/sort.js +162 -0
- package/dist/instanced/sort.js.map +1 -0
- package/dist/instanced/update.d.ts +30 -0
- package/dist/instanced/update.js +207 -0
- package/dist/instanced/update.js.map +1 -0
- package/dist/levels/bounds.d.ts +21 -0
- package/dist/levels/bounds.js +42 -0
- package/dist/levels/bounds.js.map +1 -0
- package/dist/levels/cameras.d.ts +48 -0
- package/dist/levels/cameras.js +122 -0
- package/dist/levels/cameras.js.map +1 -0
- package/dist/levels/compile/contexts.d.ts +30 -0
- package/dist/levels/compile/contexts.js +18 -0
- package/dist/levels/compile/contexts.js.map +1 -0
- package/dist/levels/compile/index.d.ts +39 -0
- package/dist/levels/compile/index.js +185 -0
- package/dist/levels/compile/index.js.map +1 -0
- package/dist/levels/compile/pipelines.d.ts +26 -0
- package/dist/levels/compile/pipelines.js +177 -0
- package/dist/levels/compile/pipelines.js.map +1 -0
- package/dist/levels/compiles.d.ts +29 -0
- package/dist/levels/compiles.js +50 -0
- package/dist/levels/compiles.js.map +1 -0
- package/dist/levels/draw.d.ts +102 -0
- package/dist/levels/draw.js +401 -0
- package/dist/levels/draw.js.map +1 -0
- package/dist/levels/fade.d.ts +69 -0
- package/dist/levels/fade.js +150 -0
- package/dist/levels/fade.js.map +1 -0
- package/dist/levels/index.d.ts +99 -0
- package/dist/levels/index.js +155 -0
- package/dist/levels/index.js.map +1 -0
- package/dist/levels/item.d.ts +38 -0
- package/dist/levels/item.js +97 -0
- package/dist/levels/item.js.map +1 -0
- package/dist/levels/load.d.ts +31 -0
- package/dist/levels/load.js +142 -0
- package/dist/levels/load.js.map +1 -0
- package/dist/levels/manager.d.ts +159 -0
- package/dist/levels/manager.js +339 -0
- package/dist/levels/manager.js.map +1 -0
- package/dist/{material.js → levels/material.js} +13 -7
- package/dist/levels/material.js.map +1 -0
- package/dist/levels/renderer.d.ts +29 -0
- package/dist/levels/renderer.js +41 -0
- package/dist/levels/renderer.js.map +1 -0
- package/dist/levels/requests.d.ts +49 -0
- package/dist/levels/requests.js +95 -0
- package/dist/levels/requests.js.map +1 -0
- package/dist/levels/screen.d.ts +14 -0
- package/dist/levels/screen.js +21 -0
- package/dist/levels/screen.js.map +1 -0
- package/dist/levels/wait.d.ts +27 -0
- package/dist/levels/wait.js +61 -0
- package/dist/levels/wait.js.map +1 -0
- package/dist/loader/build.d.ts +10 -0
- package/dist/loader/build.js +28 -0
- package/dist/loader/build.js.map +1 -0
- package/dist/loader/cache.d.ts +12 -15
- package/dist/loader/cache.js +64 -33
- package/dist/loader/cache.js.map +1 -1
- package/dist/loader/context.d.ts +46 -0
- package/dist/loader/context.js +91 -0
- package/dist/loader/context.js.map +1 -0
- package/dist/loader/dependencies.d.ts +32 -0
- package/dist/loader/dependencies.js +113 -0
- package/dist/loader/dependencies.js.map +1 -0
- package/dist/loader/index.d.ts +62 -0
- package/dist/loader/index.js +284 -0
- package/dist/loader/index.js.map +1 -0
- package/dist/loader/level.d.ts +41 -0
- package/dist/loader/level.js +140 -0
- package/dist/loader/level.js.map +1 -0
- package/dist/loader/request.d.ts +87 -0
- package/dist/loader/request.js +59 -0
- package/dist/loader/request.js.map +1 -0
- package/dist/loader/url.d.ts +16 -0
- package/dist/loader/url.js +35 -0
- package/dist/loader/url.js.map +1 -0
- package/dist/lod.d.ts +79 -49
- package/dist/lod.js +209 -153
- package/dist/lod.js.map +1 -1
- package/dist/meshopt.d.ts +6 -0
- package/dist/meshopt.js +19 -0
- package/dist/meshopt.js.map +1 -0
- package/dist/simplify/cards.d.ts +14 -0
- package/dist/simplify/cards.js +128 -0
- package/dist/simplify/cards.js.map +1 -0
- package/dist/{simplify.d.ts → simplify/index.d.ts} +7 -4
- package/dist/{simplify.js → simplify/index.js} +42 -22
- package/dist/simplify/index.js.map +1 -0
- package/dist/{bounds.d.ts → source/detail.d.ts} +4 -13
- package/dist/{bounds.js → source/detail.js} +62 -32
- package/dist/source/detail.js.map +1 -0
- package/dist/source/{error.d.ts → deviation.d.ts} +3 -3
- package/dist/source/{error.js → deviation.js} +12 -12
- package/dist/source/deviation.js.map +1 -0
- package/dist/source/{shading.d.ts → evaluator.d.ts} +10 -10
- package/dist/source/{shading.js → evaluator.js} +5 -5
- package/dist/source/evaluator.js.map +1 -0
- package/dist/source/{trace.d.ts → raycaster.d.ts} +6 -6
- package/dist/source/{trace.js → raycaster.js} +8 -8
- package/dist/source/raycaster.js.map +1 -0
- package/dist/source/{texels.d.ts → sampler.d.ts} +1 -1
- package/dist/source/{texels.js → sampler.js} +3 -3
- package/dist/source/sampler.js.map +1 -0
- package/dist/source/source.d.ts +2 -2
- package/dist/source/source.js +2 -2
- package/dist/source/source.js.map +1 -1
- package/dist/source/surface.js +1 -1
- package/dist/source/surface.js.map +1 -1
- package/dist/task.d.ts +6 -0
- package/dist/{pause.js → task.js} +5 -5
- package/dist/task.js.map +1 -0
- package/dist/three.d.ts +20 -19
- package/dist/three.js +29 -35
- package/dist/three.js.map +1 -1
- package/dist/tsl.d.ts +10 -14
- package/dist/tsl.js +12 -47
- package/dist/tsl.js.map +1 -1
- package/dist/typegpu.d.ts +37 -0
- package/dist/typegpu.js +37 -0
- package/dist/typegpu.js.map +1 -0
- package/dist/wind/bounds.js +2 -2
- package/dist/wind/bounds.js.map +1 -1
- package/dist/wind/hooks.d.ts +7 -4
- package/dist/wind/hooks.js +5 -2
- package/dist/wind/hooks.js.map +1 -1
- package/dist/wind/index.d.ts +4 -4
- package/dist/wind/index.js +43 -40
- package/dist/wind/index.js.map +1 -1
- package/dist/wind/sway.d.ts +4 -1
- package/dist/wind/sway.js +4 -1
- package/dist/wind/sway.js.map +1 -1
- package/package.json +24 -8
- package/skills/lod/SKILL.md +147 -108
- package/dist/bounds.js.map +0 -1
- package/dist/fade.d.ts +0 -44
- package/dist/fade.js +0 -78
- package/dist/fade.js.map +0 -1
- package/dist/impostor/cache.d.ts +0 -15
- package/dist/impostor/cache.js +0 -44
- package/dist/impostor/cache.js.map +0 -1
- package/dist/instanced/args.d.ts +0 -20
- package/dist/instanced/args.js +0 -77
- package/dist/instanced/args.js.map +0 -1
- package/dist/instanced/bounds.d.ts +0 -50
- package/dist/instanced/bounds.js +0 -271
- package/dist/instanced/bounds.js.map +0 -1
- package/dist/instanced/dirty.d.ts +0 -12
- package/dist/instanced/dirty.js +0 -61
- package/dist/instanced/dirty.js.map +0 -1
- package/dist/instanced/select.d.ts +0 -84
- package/dist/instanced/select.js +0 -264
- package/dist/instanced/select.js.map +0 -1
- package/dist/lazy.d.ts +0 -64
- package/dist/lazy.js +0 -187
- package/dist/lazy.js.map +0 -1
- package/dist/levels.d.ts +0 -72
- package/dist/levels.js +0 -146
- package/dist/levels.js.map +0 -1
- package/dist/loader/dispose.d.ts +0 -3
- package/dist/loader/dispose.js +0 -25
- package/dist/loader/dispose.js.map +0 -1
- package/dist/loader.d.ts +0 -99
- package/dist/loader.js +0 -234
- package/dist/loader.js.map +0 -1
- package/dist/material.js.map +0 -1
- package/dist/pause.d.ts +0 -6
- package/dist/pause.js.map +0 -1
- package/dist/renderer.d.ts +0 -21
- package/dist/renderer.js +0 -83
- package/dist/renderer.js.map +0 -1
- package/dist/simplify.js.map +0 -1
- package/dist/source/error.js.map +0 -1
- package/dist/source/shading.js.map +0 -1
- package/dist/source/texels.js.map +0 -1
- package/dist/source/trace.js.map +0 -1
- package/dist/view.d.ts +0 -30
- package/dist/view.js +0 -75
- package/dist/view.js.map +0 -1
- /package/dist/{material.d.ts → levels/material.d.ts} +0 -0
package/dist/levels.d.ts
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { Color, type Object3D } from "three/webgpu";
|
|
2
|
-
/**
|
|
3
|
-
* A fade dithers over the top of a level's range: from maxPixels × (1 - FADE) to
|
|
4
|
-
* maxPixels. Instances inside it draw twice; a narrower fade pops no more visibly, as
|
|
5
|
-
* the dither spreads the switch over the frames an approach takes to cross it.
|
|
6
|
-
*/
|
|
7
|
-
export declare const FADE = 0.1;
|
|
8
|
-
/** One entry of `Lod.levels`. */
|
|
9
|
-
export interface LodLevel {
|
|
10
|
-
readonly object: Object3D;
|
|
11
|
-
/**
|
|
12
|
-
* The largest on-screen height, in CSS pixels, at which this level is used
|
|
13
|
-
* (heights are × `Lod.quality`). Level 0, the source, has Infinity.
|
|
14
|
-
* Every further level's must be at most 0.9 of the previous one's, so that one fade has
|
|
15
|
-
* ended before the next begins.
|
|
16
|
-
*
|
|
17
|
-
* Unless set, it is where the level is about a pixel off: for a level `simplify` or
|
|
18
|
-
* `bakeMesh` returned, where its measured error reaches a pixel (a clone you make of
|
|
19
|
-
* it does not carry the error; a cloned Lod keeps it); for an ImpostorMesh, where two
|
|
20
|
-
* atlas texels span one pixel; else half the previous level's (512 px for level 1).
|
|
21
|
-
* Such defaults are raised to twice the next level's where they would leave no room
|
|
22
|
-
* for the fades.
|
|
23
|
-
*/
|
|
24
|
-
maxPixels: number;
|
|
25
|
-
}
|
|
26
|
-
export declare class Level implements LodLevel {
|
|
27
|
-
readonly object: Object3D;
|
|
28
|
-
readonly index: number;
|
|
29
|
-
/** A nested LOD switches its own levels and fades by them, not by its parent. */
|
|
30
|
-
readonly nested: boolean;
|
|
31
|
-
/** The levels this one is in, which its default depends on. */
|
|
32
|
-
private readonly ladder;
|
|
33
|
-
/** Debug tint (see `Lod.debug`), white when off; shared by every draw of the level. */
|
|
34
|
-
readonly tint: Color;
|
|
35
|
-
/** maxPixels as set, or null for the default */
|
|
36
|
-
explicit: number | null;
|
|
37
|
-
/** The default before raising for the fades: see `resolve`. */
|
|
38
|
-
base: number;
|
|
39
|
-
/** maxPixels as resolved; see `resolve` */
|
|
40
|
-
value: number;
|
|
41
|
-
constructor(object: Object3D, index: number,
|
|
42
|
-
/** A nested LOD switches its own levels and fades by them, not by its parent. */
|
|
43
|
-
nested: boolean,
|
|
44
|
-
/** The levels this one is in, which its default depends on. */
|
|
45
|
-
ladder: readonly Level[]);
|
|
46
|
-
get maxPixels(): number;
|
|
47
|
-
set maxPixels(value: number);
|
|
48
|
-
}
|
|
49
|
-
/** Record that `level` is `error` off its source (see `errors`). */
|
|
50
|
-
export declare const recordError: (level: Object3D, error: number) => void;
|
|
51
|
-
/** The error recorded for `level`, if any. */
|
|
52
|
-
export declare const errorOf: (level: Object3D) => number | undefined;
|
|
53
|
-
/** Clones of `levels`' objects, which keep the errors recorded for them. */
|
|
54
|
-
export declare function cloneLevels(levels: readonly Level[]): Object3D[];
|
|
55
|
-
/** Give `to` the maxPixels set on `from`, level by level. */
|
|
56
|
-
export declare function copyThresholds(from: readonly Level[], to: readonly Level[]): void;
|
|
57
|
-
/**
|
|
58
|
-
* Give each level its default `base`, for a source of bounding diameter `diameter` in its
|
|
59
|
-
* own units, and resolve the thresholds (see `LodLevel.maxPixels`).
|
|
60
|
-
*/
|
|
61
|
-
export declare function estimate(levels: readonly Level[], diameter: number): void;
|
|
62
|
-
/** Throws unless each level's fade ends before the next one's begins (see `LodLevel.maxPixels`). */
|
|
63
|
-
export declare function validate(levels: readonly LodLevel[]): void;
|
|
64
|
-
/** The level drawn at `height`: the last one it fits, or `forceLevel`. */
|
|
65
|
-
export declare function levelAt(levels: readonly Level[], height: number, forceLevel: number | null): Level;
|
|
66
|
-
/**
|
|
67
|
-
* How far `level` has faded in over its finer neighbour at `height`, in [0, 1): 0 when
|
|
68
|
-
* no fade is under way (the finer level is gone). See fade.ts for how both draw it.
|
|
69
|
-
*/
|
|
70
|
-
export declare function fadeProgress(levels: readonly Level[], level: Level, height: number): number;
|
|
71
|
-
/** Give each level its debug tint, or white. */
|
|
72
|
-
export declare function tintLevels(levels: readonly Level[], debug: boolean): void;
|
package/dist/levels.js
DELETED
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import { Color } from "three/webgpu";
|
|
2
|
-
import { texelPixels } from "./impostor/impostor.js";
|
|
3
|
-
import { isLazyImpostor, isImpostorMesh } from "./three.js";
|
|
4
|
-
// The levels Lod and InstancedLod share: their thresholds, the defaults of those, which
|
|
5
|
-
// level a height picks and how far it has faded in (see fade.ts).
|
|
6
|
-
/**
|
|
7
|
-
* A fade dithers over the top of a level's range: from maxPixels × (1 - FADE) to
|
|
8
|
-
* maxPixels. Instances inside it draw twice; a narrower fade pops no more visibly, as
|
|
9
|
-
* the dither spreads the switch over the frames an approach takes to cross it.
|
|
10
|
-
*/
|
|
11
|
-
export const FADE = 0.1;
|
|
12
|
-
export class Level {
|
|
13
|
-
object;
|
|
14
|
-
index;
|
|
15
|
-
nested;
|
|
16
|
-
ladder;
|
|
17
|
-
/** Debug tint (see `Lod.debug`), white when off; shared by every draw of the level. */
|
|
18
|
-
tint = new Color(1, 1, 1);
|
|
19
|
-
/** maxPixels as set, or null for the default */
|
|
20
|
-
explicit = null;
|
|
21
|
-
/** The default before raising for the fades: see `resolve`. */
|
|
22
|
-
base = Infinity;
|
|
23
|
-
/** maxPixels as resolved; see `resolve` */
|
|
24
|
-
value = Infinity;
|
|
25
|
-
constructor(object, index,
|
|
26
|
-
/** A nested LOD switches its own levels and fades by them, not by its parent. */
|
|
27
|
-
nested,
|
|
28
|
-
/** The levels this one is in, which its default depends on. */
|
|
29
|
-
ladder) {
|
|
30
|
-
this.object = object;
|
|
31
|
-
this.index = index;
|
|
32
|
-
this.nested = nested;
|
|
33
|
-
this.ladder = ladder;
|
|
34
|
-
if (isLazyImpostor(object))
|
|
35
|
-
this.explicit = object.maxPixels;
|
|
36
|
-
}
|
|
37
|
-
get maxPixels() {
|
|
38
|
-
return this.value;
|
|
39
|
-
}
|
|
40
|
-
set maxPixels(value) {
|
|
41
|
-
if (this.index === 0 && value !== Infinity)
|
|
42
|
-
throw new Error(`Lod: level 0, the source, is used at any height: its maxPixels is Infinity, not ${value}`);
|
|
43
|
-
if (this.index === 0)
|
|
44
|
-
return;
|
|
45
|
-
if (!(value > 0))
|
|
46
|
-
throw new Error(`Lod: maxPixels must be > 0, got ${value}`);
|
|
47
|
-
this.explicit = value;
|
|
48
|
-
resolve(this.ladder);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
/** Error a built level reports: how far its surface is from its source's, in the source's units. */
|
|
52
|
-
const errors = new WeakMap();
|
|
53
|
-
/** Record that `level` is `error` off its source (see `errors`). */
|
|
54
|
-
export const recordError = (level, error) => void errors.set(level, error);
|
|
55
|
-
/** The error recorded for `level`, if any. */
|
|
56
|
-
export const errorOf = (level) => errors.get(level);
|
|
57
|
-
/** Clones of `levels`' objects, which keep the errors recorded for them. */
|
|
58
|
-
export function cloneLevels(levels) {
|
|
59
|
-
return levels.map(({ object }) => {
|
|
60
|
-
const clone = object.clone();
|
|
61
|
-
const error = errorOf(object);
|
|
62
|
-
if (error !== undefined)
|
|
63
|
-
errors.set(clone, error);
|
|
64
|
-
return clone;
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
/** Give `to` the maxPixels set on `from`, level by level. */
|
|
68
|
-
export function copyThresholds(from, to) {
|
|
69
|
-
to.forEach((level, i) => {
|
|
70
|
-
const explicit = from[i]?.explicit ?? null;
|
|
71
|
-
if (explicit !== null)
|
|
72
|
-
level.maxPixels = explicit;
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Give each level its default `base`, for a source of bounding diameter `diameter` in its
|
|
77
|
-
* own units, and resolve the thresholds (see `LodLevel.maxPixels`).
|
|
78
|
-
*/
|
|
79
|
-
export function estimate(levels, diameter) {
|
|
80
|
-
let finer = 1024;
|
|
81
|
-
for (const level of levels.slice(1)) {
|
|
82
|
-
const error = errorOf(level.object);
|
|
83
|
-
if (isLazyImpostor(level.object))
|
|
84
|
-
level.base = level.object.maxPixels;
|
|
85
|
-
else if (error !== undefined)
|
|
86
|
-
level.base = diameter / Math.max(error, diameter * 1e-4);
|
|
87
|
-
else if (isImpostorMesh(level.object))
|
|
88
|
-
level.base = texelPixels(level.object.impostor);
|
|
89
|
-
else
|
|
90
|
-
level.base = finer / 2;
|
|
91
|
-
finer = level.base;
|
|
92
|
-
}
|
|
93
|
-
resolve(levels);
|
|
94
|
-
}
|
|
95
|
-
/** Each level's maxPixels: as set, else its base raised to twice the next level's, from the cheapest up. */
|
|
96
|
-
function resolve(levels) {
|
|
97
|
-
let next = 0;
|
|
98
|
-
for (const level of [...levels].reverse()) {
|
|
99
|
-
level.value = level.index === 0 ? Infinity : (level.explicit ?? Math.max(level.base, 2 * next));
|
|
100
|
-
next = level.value;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
/** Throws unless each level's fade ends before the next one's begins (see `LodLevel.maxPixels`). */
|
|
104
|
-
export function validate(levels) {
|
|
105
|
-
levels.forEach((level, i) => {
|
|
106
|
-
const finer = levels[i - 1];
|
|
107
|
-
if (finer && level.maxPixels > finer.maxPixels * (1 - FADE))
|
|
108
|
-
throw new Error(`Lod: level ${i} has maxPixels ${level.maxPixels}, but at most ${finer.maxPixels * (1 - FADE)} (${1 - FADE} × level ${i - 1}'s ${finer.maxPixels}) leaves room for the fades`);
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
/** The level drawn at `height`: the last one it fits, or `forceLevel`. */
|
|
112
|
-
export function levelAt(levels, height, forceLevel) {
|
|
113
|
-
const level = levels[forceLevel ?? lastFitting(levels, height)];
|
|
114
|
-
if (!level)
|
|
115
|
-
throw new Error(`Lod: forceLevel ${forceLevel} is not a level`);
|
|
116
|
-
return level;
|
|
117
|
-
}
|
|
118
|
-
function lastFitting(levels, height) {
|
|
119
|
-
for (let i = levels.length - 1; i > 0; i--) {
|
|
120
|
-
const level = levels[i];
|
|
121
|
-
if (level && height <= level.maxPixels)
|
|
122
|
-
return i;
|
|
123
|
-
}
|
|
124
|
-
return 0;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* How far `level` has faded in over its finer neighbour at `height`, in [0, 1): 0 when
|
|
128
|
-
* no fade is under way (the finer level is gone). See fade.ts for how both draw it.
|
|
129
|
-
*/
|
|
130
|
-
export function fadeProgress(levels, level, height) {
|
|
131
|
-
const finer = levels[level.index - 1];
|
|
132
|
-
if (!finer || level.nested || finer.nested)
|
|
133
|
-
return 0;
|
|
134
|
-
const top = level.maxPixels;
|
|
135
|
-
const t = Math.min(Math.max((height - top * (1 - FADE)) / (top * FADE), 0), 1);
|
|
136
|
-
// smoothstep, as the GPU's selection computes it
|
|
137
|
-
return t * t * (3 - 2 * t);
|
|
138
|
-
}
|
|
139
|
-
/** Debug tints by level index, see `Lod.debug`. */
|
|
140
|
-
const TINTS = [0xff6060, 0x60ff60, 0x6080ff, 0xffd040, 0xff60ff, 0x60ffff].map((hex) => new Color(hex));
|
|
141
|
-
/** Give each level its debug tint, or white. */
|
|
142
|
-
export function tintLevels(levels, debug) {
|
|
143
|
-
for (const level of levels)
|
|
144
|
-
level.tint.set(debug ? (TINTS[level.index % TINTS.length] ?? 0xffffff) : 0xffffff);
|
|
145
|
-
}
|
|
146
|
-
//# sourceMappingURL=levels.js.map
|
package/dist/levels.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"levels.js","sourceRoot":"","sources":["../src/levels.ts"],"names":[],"mappings":"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"}
|
package/dist/loader/dispose.d.ts
DELETED
package/dist/loader/dispose.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { isImpostorMesh, isInstancedMesh, isLazyImpostor, isMesh } from "../three.js";
|
|
2
|
-
/** Failed simplifications own new geometry, but borrow source materials and untouched geometry. */
|
|
3
|
-
export function disposeSimplified(copy, source) {
|
|
4
|
-
const kept = new Set();
|
|
5
|
-
source.traverse((node) => {
|
|
6
|
-
if (isMesh(node))
|
|
7
|
-
kept.add(node.geometry);
|
|
8
|
-
});
|
|
9
|
-
copy.traverse((node) => {
|
|
10
|
-
// These clones retain their own references; their disposal releases only those.
|
|
11
|
-
if (isImpostorMesh(node) || isLazyImpostor(node)) {
|
|
12
|
-
node.dispose();
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
if (!isMesh(node))
|
|
16
|
-
return;
|
|
17
|
-
if (!kept.has(node.geometry)) {
|
|
18
|
-
node.geometry.dispose();
|
|
19
|
-
kept.add(node.geometry);
|
|
20
|
-
}
|
|
21
|
-
if (isInstancedMesh(node))
|
|
22
|
-
node.dispose();
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=dispose.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dispose.js","sourceRoot":"","sources":["../../src/loader/dispose.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEtF,mGAAmG;AACnG,MAAM,UAAU,iBAAiB,CAAC,IAAc,EAAE,MAAgB;IAChE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE;QACvB,IAAI,MAAM,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,gFAAgF;QAChF,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,OAAO;QAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,eAAe,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/loader.d.ts
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { Loader, type LoadingManager, type Object3D } from "three/webgpu";
|
|
2
|
-
import type { BakeImpostorOptions } from "./impostor/bake/index.js";
|
|
3
|
-
import { InstancedLod } from "./instanced/index.js";
|
|
4
|
-
import { Lod } from "./lod.js";
|
|
5
|
-
import { type LodCacheOptions } from "./loader/cache.js";
|
|
6
|
-
export type { LodCacheOptions } from "./loader/cache.js";
|
|
7
|
-
import { type SimplifyOptions } from "./simplify.js";
|
|
8
|
-
/** A level the loader builds from the source, cheapest last; `maxPixels` overrides its default (see `LodLevel.maxPixels`). */
|
|
9
|
-
export type LevelRequest = ({
|
|
10
|
-
type: "simplified";
|
|
11
|
-
maxPixels?: number;
|
|
12
|
-
} & SimplifyOptions) | ({
|
|
13
|
-
type: "baked";
|
|
14
|
-
maxPixels?: number;
|
|
15
|
-
textureSize?: number;
|
|
16
|
-
/**
|
|
17
|
-
* URL of the rooms to show through the model's glass (see `BakeMeshOptions.interior`),
|
|
18
|
-
* loaded like the model and relative to it. It is added to the model after every
|
|
19
|
-
* level is built, so up close the real rooms show through the real glass. Only one
|
|
20
|
-
* baked level of a model may have one.
|
|
21
|
-
*/
|
|
22
|
-
interior?: string;
|
|
23
|
-
} & ({
|
|
24
|
-
/**
|
|
25
|
-
* URL of the mesh to bake onto (.glts, .glb or .gltf), loaded like the model. A
|
|
26
|
-
* relative URL is relative to the model's: a model and its low mesh live together.
|
|
27
|
-
*/
|
|
28
|
-
low: string;
|
|
29
|
-
ratio?: never;
|
|
30
|
-
} | {
|
|
31
|
-
low?: never;
|
|
32
|
-
ratio?: number;
|
|
33
|
-
})) | ({
|
|
34
|
-
type: "impostor";
|
|
35
|
-
/** Build only when needed; requires an explicit positive maxPixels. Default false. */
|
|
36
|
-
lazy?: boolean;
|
|
37
|
-
} & BakeImpostorOptions);
|
|
38
|
-
/**
|
|
39
|
-
* A model URL (.glb, .gltf or .glts), or the complete asset passed from its active GLTS
|
|
40
|
-
* script. The whole GLTS asset is the cache unit, not individual parts of its scene.
|
|
41
|
-
* GLTS impostors persist through vitecache; its Vite plugin tracks the script and its
|
|
42
|
-
* dependency files. Pass an object only after its dependency loads have finished;
|
|
43
|
-
* deferred impostors read retained dependencies when loading begins.
|
|
44
|
-
*/
|
|
45
|
-
export type LodRequest = string | Object3D | {
|
|
46
|
-
url: string;
|
|
47
|
-
levels?: readonly LevelRequest[];
|
|
48
|
-
} | {
|
|
49
|
-
source: Object3D;
|
|
50
|
-
levels?: readonly LevelRequest[];
|
|
51
|
-
};
|
|
52
|
-
/**
|
|
53
|
-
* Loads a model and builds a `Lod` of it: the model as level 0, then the requested
|
|
54
|
-
* levels (default: an impostor). Unless explicitly lazy, building runs at load time; impostors bake on a
|
|
55
|
-
* renderer this package keeps for that. Each level's maxPixels is its default (see
|
|
56
|
-
* `LodLevel.maxPixels`) unless the request sets it; a failed load frees what it built.
|
|
57
|
-
*
|
|
58
|
-
* Models load through the manager's handler for the URL if one is registered: a
|
|
59
|
-
* GLTFLoader with Draco or meshopt decoders, or for .glts a GLTSLoader from
|
|
60
|
-
* @drawcall/glts (inside a .glts script, the contextual `gltsLoader`, registered on the
|
|
61
|
-
* contextual `loadingManager`). Without one, .glb/.gltf load with a plain GLTFLoader and
|
|
62
|
-
* .glts fails. URLs resolve against `path` as GLTFLoader's do; a baked level's `low` and
|
|
63
|
-
* `interior` URLs load the same way, relative to the model's URL.
|
|
64
|
-
*/
|
|
65
|
-
export declare class LodLoader extends Loader<Lod, LodRequest> {
|
|
66
|
-
private readonly cacheOptions?;
|
|
67
|
-
private gltf;
|
|
68
|
-
constructor(manager?: LoadingManager, cacheOptions?: LodCacheOptions | undefined);
|
|
69
|
-
load(request: LodRequest, onLoad: (lod: Lod) => void, _onProgress?: (event: ProgressEvent) => void, onError?: (error: unknown) => void): void;
|
|
70
|
-
loadAsync(request: LodRequest): Promise<Lod>;
|
|
71
|
-
/** Load `request` as `count` instances: an `InstancedLod`. */
|
|
72
|
-
loadInstancesAsync(request: LodRequest, count: number): Promise<InstancedLod>;
|
|
73
|
-
/** Build a `Lod` of the complete `object` inside GLTS. Relative low/interior URLs use the script's directory. */
|
|
74
|
-
parseAsync(object: Object3D, levels?: readonly LevelRequest[]): Promise<Lod>;
|
|
75
|
-
/** Build an `InstancedLod` of the complete `object` inside GLTS. */
|
|
76
|
-
parseInstancesAsync(object: Object3D, count: number, levels?: readonly LevelRequest[]): Promise<InstancedLod>;
|
|
77
|
-
/**
|
|
78
|
-
* `make` of `object` and its requested levels, with the maxPixels requested; `low` and
|
|
79
|
-
* `interior` URLs resolve against `base`. On failure, the levels built and interiors
|
|
80
|
-
* loaded are freed and `object` is left out of any Lod.
|
|
81
|
-
*/
|
|
82
|
-
private build;
|
|
83
|
-
/** The level `request` asks for, and the interior a baked level loaded for the source. */
|
|
84
|
-
private buildLevel;
|
|
85
|
-
/**
|
|
86
|
-
* Bake `source` as `request` asks, loading its low mesh and interior relative to `base`.
|
|
87
|
-
* The low mesh is freed after: only the bake keeps it. The interior is returned for the
|
|
88
|
-
* source, or freed if the bake fails.
|
|
89
|
-
*/
|
|
90
|
-
private bake;
|
|
91
|
-
/**
|
|
92
|
-
* Load `request`'s model and `build` it, reporting to the manager as one item; `build`
|
|
93
|
-
* gets the model's directory. On failure, the model is freed.
|
|
94
|
-
*/
|
|
95
|
-
private loading;
|
|
96
|
-
private loadSource;
|
|
97
|
-
/** `loader` with this loader's request settings. */
|
|
98
|
-
private configure;
|
|
99
|
-
}
|
package/dist/loader.js
DELETED
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
import { Loader, LoaderUtils } from "three/webgpu";
|
|
2
|
-
import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";
|
|
3
|
-
import { getGLTSSource } from "@drawcall/glts";
|
|
4
|
-
import { bakeMesh } from "./baked/index.js";
|
|
5
|
-
import { measureLevels } from "./bounds.js";
|
|
6
|
-
import { disposeTree } from "./dispose.js";
|
|
7
|
-
import { ImpostorMesh } from "./impostor/mesh/index.js";
|
|
8
|
-
import { InstancedLod } from "./instanced/index.js";
|
|
9
|
-
import { estimate, Level, validate } from "./levels.js";
|
|
10
|
-
import { Lod } from "./lod.js";
|
|
11
|
-
import { LazyImpostor } from "./lazy.js";
|
|
12
|
-
import { impostor, originOf } from "./loader/cache.js";
|
|
13
|
-
import { disposeSimplified } from "./loader/dispose.js";
|
|
14
|
-
import { simplify } from "./simplify.js";
|
|
15
|
-
import { isLOD, isObject3D, placeLike, rejectSkinned } from "./three.js";
|
|
16
|
-
const DEFAULT_LEVELS = [{ type: "impostor" }];
|
|
17
|
-
/**
|
|
18
|
-
* Loads a model and builds a `Lod` of it: the model as level 0, then the requested
|
|
19
|
-
* levels (default: an impostor). Unless explicitly lazy, building runs at load time; impostors bake on a
|
|
20
|
-
* renderer this package keeps for that. Each level's maxPixels is its default (see
|
|
21
|
-
* `LodLevel.maxPixels`) unless the request sets it; a failed load frees what it built.
|
|
22
|
-
*
|
|
23
|
-
* Models load through the manager's handler for the URL if one is registered: a
|
|
24
|
-
* GLTFLoader with Draco or meshopt decoders, or for .glts a GLTSLoader from
|
|
25
|
-
* @drawcall/glts (inside a .glts script, the contextual `gltsLoader`, registered on the
|
|
26
|
-
* contextual `loadingManager`). Without one, .glb/.gltf load with a plain GLTFLoader and
|
|
27
|
-
* .glts fails. URLs resolve against `path` as GLTFLoader's do; a baked level's `low` and
|
|
28
|
-
* `interior` URLs load the same way, relative to the model's URL.
|
|
29
|
-
*/
|
|
30
|
-
export class LodLoader extends Loader {
|
|
31
|
-
cacheOptions;
|
|
32
|
-
gltf;
|
|
33
|
-
constructor(manager, cacheOptions) {
|
|
34
|
-
super(manager);
|
|
35
|
-
this.cacheOptions = cacheOptions;
|
|
36
|
-
}
|
|
37
|
-
load(request, onLoad, _onProgress, onError) {
|
|
38
|
-
// As three's loaders: without onError, the failure goes to the console.
|
|
39
|
-
this.loadAsync(request).then(onLoad, onError ?? ((error) => console.error(error)));
|
|
40
|
-
}
|
|
41
|
-
async loadAsync(request) {
|
|
42
|
-
return this.loading(request, (object, levels, base, origin) => this.build(object, levels, base, (objects) => new Lod(objects), origin));
|
|
43
|
-
}
|
|
44
|
-
/** Load `request` as `count` instances: an `InstancedLod`. */
|
|
45
|
-
async loadInstancesAsync(request, count) {
|
|
46
|
-
return this.loading(request, (object, levels, base, origin) => this.build(object, levels, base, (objects) => new InstancedLod(objects, count), origin));
|
|
47
|
-
}
|
|
48
|
-
/** Build a `Lod` of the complete `object` inside GLTS. Relative low/interior URLs use the script's directory. */
|
|
49
|
-
async parseAsync(object, levels = DEFAULT_LEVELS) {
|
|
50
|
-
return this.loadAsync({ source: object, levels });
|
|
51
|
-
}
|
|
52
|
-
/** Build an `InstancedLod` of the complete `object` inside GLTS. */
|
|
53
|
-
async parseInstancesAsync(object, count, levels = DEFAULT_LEVELS) {
|
|
54
|
-
return this.loadInstancesAsync({ source: object, levels }, count);
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* `make` of `object` and its requested levels, with the maxPixels requested; `low` and
|
|
58
|
-
* `interior` URLs resolve against `base`. On failure, the levels built and interiors
|
|
59
|
-
* loaded are freed and `object` is left out of any Lod.
|
|
60
|
-
*/
|
|
61
|
-
async build(object, requests, base, make, origin) {
|
|
62
|
-
rejectSkinned(object, "LodLoader");
|
|
63
|
-
if (requests.filter((request) => request.type === "baked" && request.interior !== undefined).length > 1)
|
|
64
|
-
throw new Error("LodLoader: give an interior to one baked level only: the source shows one");
|
|
65
|
-
const built = [];
|
|
66
|
-
const interiors = [];
|
|
67
|
-
try {
|
|
68
|
-
// One at a time: bakes share one renderer.
|
|
69
|
-
for (const request of requests) {
|
|
70
|
-
const { level, interior } = await this.buildLevel(object, request, base, origin, interiors);
|
|
71
|
-
built.push(level);
|
|
72
|
-
if (interior)
|
|
73
|
-
interiors.push(interior);
|
|
74
|
-
}
|
|
75
|
-
// Eager bakes have finished; deferred bakes exclude these attached children.
|
|
76
|
-
if (interiors.length > 0)
|
|
77
|
-
object.add(...interiors);
|
|
78
|
-
const objects = [object, ...built];
|
|
79
|
-
// Reject bad overrides before a constructor hooks the caller's source or
|
|
80
|
-
// allocates a crowd's pooled indirect arguments and selection buffers.
|
|
81
|
-
const preview = [];
|
|
82
|
-
objects.forEach((object, i) => preview.push(new Level(object, i, isLOD(object), preview)));
|
|
83
|
-
estimate(preview, 2 * measureLevels(objects, "LodLoader").own.radius);
|
|
84
|
-
requests.forEach(({ maxPixels }, i) => {
|
|
85
|
-
const level = preview[i + 1];
|
|
86
|
-
if (level && maxPixels !== undefined)
|
|
87
|
-
level.maxPixels = maxPixels;
|
|
88
|
-
});
|
|
89
|
-
validate(preview);
|
|
90
|
-
const lod = make(objects);
|
|
91
|
-
for (const [i, { maxPixels }] of requests.entries()) {
|
|
92
|
-
const level = lod.levels[i + 1];
|
|
93
|
-
if (!level)
|
|
94
|
-
throw new Error("LodLoader: a built level is missing");
|
|
95
|
-
if (maxPixels !== undefined)
|
|
96
|
-
level.maxPixels = maxPixels;
|
|
97
|
-
}
|
|
98
|
-
return lod;
|
|
99
|
-
}
|
|
100
|
-
catch (error) {
|
|
101
|
-
built.forEach((level, i) => {
|
|
102
|
-
if (requests[i]?.type === "simplified")
|
|
103
|
-
disposeSimplified(level, object);
|
|
104
|
-
else
|
|
105
|
-
disposeTree(level);
|
|
106
|
-
});
|
|
107
|
-
for (const interior of interiors) {
|
|
108
|
-
object.remove(interior);
|
|
109
|
-
disposeTree(interior);
|
|
110
|
-
}
|
|
111
|
-
throw error;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
/** The level `request` asks for, and the interior a baked level loaded for the source. */
|
|
115
|
-
async buildLevel(source, request, base, origin, interiors = []) {
|
|
116
|
-
switch (request.type) {
|
|
117
|
-
case "simplified": {
|
|
118
|
-
const { type: _, maxPixels: __, ...options } = request;
|
|
119
|
-
return { level: await simplify(source, options) };
|
|
120
|
-
}
|
|
121
|
-
case "baked":
|
|
122
|
-
return this.bake(source, request, base);
|
|
123
|
-
case "impostor": {
|
|
124
|
-
const { type: _, lazy, ...options } = request;
|
|
125
|
-
if (lazy) {
|
|
126
|
-
const { maxPixels } = options;
|
|
127
|
-
if (maxPixels === undefined || !Number.isFinite(maxPixels) || maxPixels <= 0)
|
|
128
|
-
throw new Error("LodLoader: a lazy impostor needs an explicit positive maxPixels");
|
|
129
|
-
const level = new LazyImpostor(() => impostor(source, options, origin, interiors, this.cacheOptions), { maxPixels });
|
|
130
|
-
level.name = `${source.name || "object"} impostor`;
|
|
131
|
-
placeLike(level, source);
|
|
132
|
-
return { level };
|
|
133
|
-
}
|
|
134
|
-
return { level: impostorOf(source, await impostor(source, options, origin, [], this.cacheOptions)) };
|
|
135
|
-
}
|
|
136
|
-
default: {
|
|
137
|
-
const unknown = request;
|
|
138
|
-
throw new Error(`LodLoader: unknown level type in ${JSON.stringify(unknown)}`);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Bake `source` as `request` asks, loading its low mesh and interior relative to `base`.
|
|
144
|
-
* The low mesh is freed after: only the bake keeps it. The interior is returned for the
|
|
145
|
-
* source, or freed if the bake fails.
|
|
146
|
-
*/
|
|
147
|
-
async bake(source, request, base) {
|
|
148
|
-
const { textureSize } = request;
|
|
149
|
-
const load = (url) => (url === undefined ? undefined : this.loadSource(LoaderUtils.resolveURL(url, base)));
|
|
150
|
-
const low = await load(request.low);
|
|
151
|
-
let interior;
|
|
152
|
-
try {
|
|
153
|
-
interior = await load(request.interior);
|
|
154
|
-
const level = await bakeMesh(source, low ? { low, textureSize, interior } : { ratio: request.ratio, textureSize, interior });
|
|
155
|
-
return { level, interior };
|
|
156
|
-
}
|
|
157
|
-
catch (error) {
|
|
158
|
-
if (interior)
|
|
159
|
-
disposeTree(interior);
|
|
160
|
-
throw error;
|
|
161
|
-
}
|
|
162
|
-
finally {
|
|
163
|
-
if (low)
|
|
164
|
-
disposeTree(low);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Load `request`'s model and `build` it, reporting to the manager as one item; `build`
|
|
169
|
-
* gets the model's directory. On failure, the model is freed.
|
|
170
|
-
*/
|
|
171
|
-
async loading(request, build) {
|
|
172
|
-
const input = typeof request === "string" ? { url: request } : isObject3D(request) ? { source: request } : request;
|
|
173
|
-
const { levels = DEFAULT_LEVELS } = input;
|
|
174
|
-
if ("source" in input) {
|
|
175
|
-
// Native async code loses the GLTS execution after its first await.
|
|
176
|
-
const source = getGLTSSource();
|
|
177
|
-
return build(input.source, levels, LoaderUtils.extractUrlBase(source.url), source);
|
|
178
|
-
}
|
|
179
|
-
const { url } = input;
|
|
180
|
-
const full = LoaderUtils.resolveURL(url, this.path);
|
|
181
|
-
this.manager.itemStart(full);
|
|
182
|
-
let object;
|
|
183
|
-
try {
|
|
184
|
-
object = await this.loadSource(full);
|
|
185
|
-
const origin = originOf(object);
|
|
186
|
-
return await build(object, levels, LoaderUtils.extractUrlBase(origin?.url ?? full), origin);
|
|
187
|
-
}
|
|
188
|
-
catch (error) {
|
|
189
|
-
if (object)
|
|
190
|
-
disposeTree(object);
|
|
191
|
-
this.manager.itemError(full);
|
|
192
|
-
throw error;
|
|
193
|
-
}
|
|
194
|
-
finally {
|
|
195
|
-
this.manager.itemEnd(full);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
async loadSource(url) {
|
|
199
|
-
const extension = /\.(glb|gltf|glts)$/i.exec(url.split(/[?#]/)[0] ?? "")?.[1]?.toLowerCase();
|
|
200
|
-
if (!extension)
|
|
201
|
-
throw new Error(`LodLoader: cannot load "${url}": expected a .glb, .gltf or .glts file`);
|
|
202
|
-
const handler = this.manager.getHandler(url);
|
|
203
|
-
if (handler)
|
|
204
|
-
return sceneOf(await handler.loadAsync(url), url);
|
|
205
|
-
// No GLTSLoader of our own: inside a .glts script only the contextual one may load,
|
|
206
|
-
// so the app registers the one to use.
|
|
207
|
-
if (extension === "glts")
|
|
208
|
-
throw new Error(`LodLoader: cannot load "${url}": register a GLTSLoader for .glts on the loading manager`);
|
|
209
|
-
this.gltf ??= new GLTFLoader(this.manager);
|
|
210
|
-
return (await this.configure(this.gltf).loadAsync(url)).scene;
|
|
211
|
-
}
|
|
212
|
-
/** `loader` with this loader's request settings. */
|
|
213
|
-
configure(loader) {
|
|
214
|
-
loader.setCrossOrigin(this.crossOrigin).setWithCredentials(this.withCredentials).setRequestHeader(this.requestHeader);
|
|
215
|
-
return loader;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
/** An ImpostorMesh placed and shadowed like `source`. */
|
|
219
|
-
function impostorOf(source, impostor) {
|
|
220
|
-
const mesh = new ImpostorMesh(impostor);
|
|
221
|
-
mesh.name = `${source.name || "object"} impostor`;
|
|
222
|
-
placeLike(mesh, source);
|
|
223
|
-
return mesh;
|
|
224
|
-
}
|
|
225
|
-
/** The object a handler loaded: an Object3D, or a glTF result's scene. */
|
|
226
|
-
function sceneOf(result, url) {
|
|
227
|
-
if (isObject3D(result))
|
|
228
|
-
return result;
|
|
229
|
-
const scene = typeof result === "object" && result !== null ? Reflect.get(result, "scene") : undefined;
|
|
230
|
-
if (isObject3D(scene))
|
|
231
|
-
return scene;
|
|
232
|
-
throw new Error(`LodLoader: the handler for "${url}" did not load an Object3D or a glTF`);
|
|
233
|
-
}
|
|
234
|
-
//# sourceMappingURL=loader.js.map
|
package/dist/loader.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/material.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"material.js","sourceRoot":"","sources":["../src/material.ts"],"names":[],"mappings":"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"}
|
package/dist/pause.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Yield to the page, so that a long bake does not freeze it: `scheduler.yield()` where
|
|
3
|
-
* there is one, else a message round trip. Unlike setTimeout, neither is throttled to
|
|
4
|
-
* one call a second in a background tab.
|
|
5
|
-
*/
|
|
6
|
-
export declare function pause(): Promise<void>;
|
package/dist/pause.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pause.js","sourceRoot":"","sources":["../src/pause.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,KAAK;IACnB,MAAM,SAAS,GAAY,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnH,IAAI,OAAO,QAAQ,KAAK,UAAU;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAClH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,EAAE;YAC7B,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC"}
|