@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/instanced/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/instanced/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Sphere, Vector3 } from "three/webgpu";
|
|
2
|
+
import type { d } from "typegpu";
|
|
3
|
+
import type { DrawLevels } from "../levels/draw.js";
|
|
4
|
+
import type { Cull } from "./cull.js";
|
|
5
|
+
/** The values something last ran with, written again in place each time it may run, telling whether any differs. */
|
|
6
|
+
export declare class Key {
|
|
7
|
+
private readonly values;
|
|
8
|
+
private length;
|
|
9
|
+
private changed;
|
|
10
|
+
/** Starts writing the values anew. */
|
|
11
|
+
start(): this;
|
|
12
|
+
put(value: number): this;
|
|
13
|
+
/** Whether the values written since start differ from the last ones. */
|
|
14
|
+
end(): boolean;
|
|
15
|
+
/** A camera's inputs, everything in the InstancedLod's space: what loading and sorting for it both read. */
|
|
16
|
+
camera(eye: Vector3, scale: number, ortho: boolean, levels: d.Infer<typeof DrawLevels>, cull: Cull | null, source: Sphere): this;
|
|
17
|
+
/** A camera's inputs but where it looks from: all an orthographic camera measures heights by. */
|
|
18
|
+
screen(scale: number, ortho: boolean, levels: d.Infer<typeof DrawLevels>, cull: Cull | null, source: Sphere): this;
|
|
19
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// What a camera's sort or loading last ran with, so that it is skipped while nothing it reads changed.
|
|
2
|
+
/** The values something last ran with, written again in place each time it may run, telling whether any differs. */
|
|
3
|
+
export class Key {
|
|
4
|
+
values = [];
|
|
5
|
+
length = 0;
|
|
6
|
+
changed = false;
|
|
7
|
+
/** Starts writing the values anew. */
|
|
8
|
+
start() {
|
|
9
|
+
this.length = 0;
|
|
10
|
+
this.changed = false;
|
|
11
|
+
return this;
|
|
12
|
+
}
|
|
13
|
+
put(value) {
|
|
14
|
+
if (this.values[this.length] !== value) {
|
|
15
|
+
this.values[this.length] = value;
|
|
16
|
+
this.changed = true;
|
|
17
|
+
}
|
|
18
|
+
this.length++;
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
/** Whether the values written since start differ from the last ones. */
|
|
22
|
+
end() {
|
|
23
|
+
if (this.values.length !== this.length) {
|
|
24
|
+
this.values.length = this.length;
|
|
25
|
+
this.changed = true;
|
|
26
|
+
}
|
|
27
|
+
return this.changed;
|
|
28
|
+
}
|
|
29
|
+
/** A camera's inputs, everything in the InstancedLod's space: what loading and sorting for it both read. */
|
|
30
|
+
camera(eye, scale, ortho, levels, cull, source) {
|
|
31
|
+
return this.put(eye.x).put(eye.y).put(eye.z).screen(scale, ortho, levels, cull, source);
|
|
32
|
+
}
|
|
33
|
+
/** A camera's inputs but where it looks from: all an orthographic camera measures heights by. */
|
|
34
|
+
screen(scale, ortho, levels, cull, source) {
|
|
35
|
+
this.put(scale).put(Number(ortho));
|
|
36
|
+
this.put(levels.count).put(levels.empty).put(levels.coarsest).put(levels.forced).put(levels.fades);
|
|
37
|
+
for (const pixels of levels.maxPixels)
|
|
38
|
+
this.put(pixels);
|
|
39
|
+
this.put(Number(cull !== null));
|
|
40
|
+
if (cull)
|
|
41
|
+
this.put(cull.eye.x).put(cull.eye.y).put(cull.eye.z).put(cull.near).put(cull.far).put(Number(cull.survivors));
|
|
42
|
+
return this.put(source.center.x).put(source.center.y).put(source.center.z).put(source.radius);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key.js","sourceRoot":"","sources":["../../src/instanced/key.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Object3D, type Box3, type Camera, type Mesh, type Sphere } from "three/webgpu";
|
|
2
|
+
import { type ThresholdedLevel } from "../levels/index.js";
|
|
3
|
+
import type { DrawnInstances } from "../levels/fade.js";
|
|
4
|
+
import type { PreparedLevel } from "../levels/manager.js";
|
|
5
|
+
import type { InstanceLists } from "./lists.js";
|
|
6
|
+
import { type Part } from "./meshes.js";
|
|
7
|
+
import type { InstanceShape } from "./shape.js";
|
|
8
|
+
/** What an InstancedLod's level meshes draw with: its shape, lists and the instances they draw. */
|
|
9
|
+
export interface Drawing {
|
|
10
|
+
readonly shape: InstanceShape;
|
|
11
|
+
readonly lists: InstanceLists;
|
|
12
|
+
/** What the level meshes draw: the pool's instances, or while survivors scale, their scaled matrices. */
|
|
13
|
+
readonly drawn: DrawnInstances;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* An InstancedLod's level meshes: per level, the meshes drawing it with its debug tint, made from the level's object
|
|
17
|
+
* once there is one and added to the InstancedLod, and the source level's parts, which a raycast hits.
|
|
18
|
+
*/
|
|
19
|
+
export declare class MeshesByLevel {
|
|
20
|
+
/** The InstancedLod, which holds the meshes. */
|
|
21
|
+
private readonly parent;
|
|
22
|
+
/** Its levels: a level that joins gets its object. */
|
|
23
|
+
private readonly levels;
|
|
24
|
+
private readonly drawing;
|
|
25
|
+
/** Around every instance, survivors grown: what every level mesh is culled and boxed by. */
|
|
26
|
+
private readonly bounds;
|
|
27
|
+
/** Sorts `camera`'s lists as a mesh draws for it with `renderer`. */
|
|
28
|
+
private readonly drawFor;
|
|
29
|
+
private readonly tints;
|
|
30
|
+
private readonly byLevel;
|
|
31
|
+
private sourceParts;
|
|
32
|
+
constructor(
|
|
33
|
+
/** The InstancedLod, which holds the meshes. */
|
|
34
|
+
parent: Object3D,
|
|
35
|
+
/** Its levels: a level that joins gets its object. */
|
|
36
|
+
levels: readonly ThresholdedLevel[], drawing: Drawing,
|
|
37
|
+
/** Around every instance, survivors grown: what every level mesh is culled and boxed by. */
|
|
38
|
+
bounds: {
|
|
39
|
+
readonly sphere: Sphere;
|
|
40
|
+
readonly box: Box3;
|
|
41
|
+
},
|
|
42
|
+
/** Sorts `camera`'s lists as a mesh draws for it with `renderer`. */
|
|
43
|
+
drawFor: (renderer: unknown, camera: Camera) => void);
|
|
44
|
+
/** The source level's parts, which a raycast hits. */
|
|
45
|
+
get source(): readonly Part[];
|
|
46
|
+
/** The meshes drawing level `level`. */
|
|
47
|
+
of(level: number): readonly Mesh[];
|
|
48
|
+
/** Every level's meshes. */
|
|
49
|
+
all(): Mesh[];
|
|
50
|
+
/** Tint each level as Lod.debug, `debug`, has it. */
|
|
51
|
+
tint(debug: boolean): void;
|
|
52
|
+
/** Show the meshes of the levels of the bits `levels`, and hide the others. */
|
|
53
|
+
show(levels: number): void;
|
|
54
|
+
/** The meshes drawing `parts` of level `level` for the cameras of the lists. */
|
|
55
|
+
private meshesOf;
|
|
56
|
+
/** Level meshes of `loaded`, level `index`'s object, staged for wind and compiling. */
|
|
57
|
+
prepare(index: number, loaded: Object3D): PreparedLevel;
|
|
58
|
+
/** Take every mesh out of the InstancedLod and free it. */
|
|
59
|
+
dispose(): void;
|
|
60
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { Color, Object3D } from "three/webgpu";
|
|
2
|
+
import { at } from "../at.js";
|
|
3
|
+
import { prepareBounds } from "../levels/bounds.js";
|
|
4
|
+
import { disposeCopies } from "../dispose.js";
|
|
5
|
+
import { tintOf } from "../levels/index.js";
|
|
6
|
+
import { has } from "../levels/draw.js";
|
|
7
|
+
import { refreshWind } from "../wind/index.js";
|
|
8
|
+
import { freeMesh, levelMeshes, partsOf } from "./meshes.js";
|
|
9
|
+
/**
|
|
10
|
+
* An InstancedLod's level meshes: per level, the meshes drawing it with its debug tint, made from the level's object
|
|
11
|
+
* once there is one and added to the InstancedLod, and the source level's parts, which a raycast hits.
|
|
12
|
+
*/
|
|
13
|
+
export class MeshesByLevel {
|
|
14
|
+
parent;
|
|
15
|
+
levels;
|
|
16
|
+
drawing;
|
|
17
|
+
bounds;
|
|
18
|
+
drawFor;
|
|
19
|
+
tints;
|
|
20
|
+
byLevel = [];
|
|
21
|
+
sourceParts = [];
|
|
22
|
+
constructor(
|
|
23
|
+
/** The InstancedLod, which holds the meshes. */
|
|
24
|
+
parent,
|
|
25
|
+
/** Its levels: a level that joins gets its object. */
|
|
26
|
+
levels, drawing,
|
|
27
|
+
/** Around every instance, survivors grown: what every level mesh is culled and boxed by. */
|
|
28
|
+
bounds,
|
|
29
|
+
/** Sorts `camera`'s lists as a mesh draws for it with `renderer`. */
|
|
30
|
+
drawFor) {
|
|
31
|
+
this.parent = parent;
|
|
32
|
+
this.levels = levels;
|
|
33
|
+
this.drawing = drawing;
|
|
34
|
+
this.bounds = bounds;
|
|
35
|
+
this.drawFor = drawFor;
|
|
36
|
+
this.tints = levels.map(() => new Color(1, 1, 1));
|
|
37
|
+
levels.forEach(({ object }, i) => {
|
|
38
|
+
const parts = object ? partsOf(object, i) : [];
|
|
39
|
+
if (i === 0)
|
|
40
|
+
this.sourceParts = parts;
|
|
41
|
+
const made = this.meshesOf(parts, i);
|
|
42
|
+
drawInto(drawing.lists, made);
|
|
43
|
+
this.byLevel.push(made.meshes);
|
|
44
|
+
for (const mesh of made.meshes)
|
|
45
|
+
parent.add(mesh);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/** The source level's parts, which a raycast hits. */
|
|
49
|
+
get source() {
|
|
50
|
+
return this.sourceParts;
|
|
51
|
+
}
|
|
52
|
+
/** The meshes drawing level `level`. */
|
|
53
|
+
of(level) {
|
|
54
|
+
return at(this.byLevel, level);
|
|
55
|
+
}
|
|
56
|
+
/** Every level's meshes. */
|
|
57
|
+
all() {
|
|
58
|
+
return this.byLevel.flat();
|
|
59
|
+
}
|
|
60
|
+
/** Tint each level as Lod.debug, `debug`, has it. */
|
|
61
|
+
tint(debug) {
|
|
62
|
+
this.levels.forEach((_, i) => at(this.tints, i).copy(tintOf(i, debug)));
|
|
63
|
+
}
|
|
64
|
+
/** Show the meshes of the levels of the bits `levels`, and hide the others. */
|
|
65
|
+
show(levels) {
|
|
66
|
+
this.byLevel.forEach((meshes, level) => {
|
|
67
|
+
for (const mesh of meshes)
|
|
68
|
+
mesh.visible = has(levels, level);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/** The meshes drawing `parts` of level `level` for the cameras of the lists. */
|
|
72
|
+
meshesOf(parts, level) {
|
|
73
|
+
const { lists, drawn, shape } = this.drawing;
|
|
74
|
+
return levelMeshes(parts, at(this.tints, level), {
|
|
75
|
+
instances: drawn,
|
|
76
|
+
bounds: this.bounds.sphere,
|
|
77
|
+
box: this.bounds.box,
|
|
78
|
+
slots: (camera) => lists.slots(camera),
|
|
79
|
+
radius: shape.fadeRadius,
|
|
80
|
+
drawFor: (renderer, camera) => {
|
|
81
|
+
this.drawFor(renderer, camera);
|
|
82
|
+
return lists.slots(camera).args;
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/** Level meshes of `loaded`, level `index`'s object, staged for wind and compiling. */
|
|
87
|
+
prepare(index, loaded) {
|
|
88
|
+
const level = at(this.levels, index);
|
|
89
|
+
const object = loaded.clone();
|
|
90
|
+
if (level.box)
|
|
91
|
+
prepareBounds(object, level.box);
|
|
92
|
+
const parts = partsOf(object, index);
|
|
93
|
+
const made = this.meshesOf(parts, index);
|
|
94
|
+
const staged = new Object3D();
|
|
95
|
+
for (const mesh of made.meshes)
|
|
96
|
+
staged.add(mesh);
|
|
97
|
+
refreshWind(this.parent, staged);
|
|
98
|
+
return {
|
|
99
|
+
object: staged,
|
|
100
|
+
join: () => {
|
|
101
|
+
level.object = object;
|
|
102
|
+
drawInto(this.drawing.lists, made);
|
|
103
|
+
this.byLevel[index] = made.meshes;
|
|
104
|
+
if (index === 0)
|
|
105
|
+
this.sourceParts = parts;
|
|
106
|
+
for (const mesh of made.meshes)
|
|
107
|
+
this.parent.add(mesh);
|
|
108
|
+
},
|
|
109
|
+
discard: () => {
|
|
110
|
+
for (const mesh of made.meshes)
|
|
111
|
+
freeMesh(mesh);
|
|
112
|
+
disposeCopies(object);
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/** Take every mesh out of the InstancedLod and free it. */
|
|
117
|
+
dispose() {
|
|
118
|
+
for (const mesh of this.byLevel.flat()) {
|
|
119
|
+
mesh.removeFromParent();
|
|
120
|
+
freeMesh(mesh);
|
|
121
|
+
}
|
|
122
|
+
this.byLevel.length = 0;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/** Let `made` draw for the cameras of `lists`, its draws appended to theirs. */
|
|
126
|
+
function drawInto(lists, made) {
|
|
127
|
+
if (made.draws.length > 0)
|
|
128
|
+
made.drawFrom(lists.appendDraws(made.draws));
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=levels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"levels.js","sourceRoot":"","sources":["../../src/instanced/levels.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Frustum, Matrix4, type Box3, type Camera, type Sphere } from "three/webgpu";
|
|
2
|
+
import type { InstanceSlots } from "../levels/fade.js";
|
|
3
|
+
import { type LodLevel } from "../levels/index.js";
|
|
4
|
+
import { Key } from "./key.js";
|
|
5
|
+
import type { RowValues, Sorter } from "./sort.js";
|
|
6
|
+
import type { IndirectDraw } from "./rows.js";
|
|
7
|
+
/** What one camera's sort reads besides its lists, everything in the InstancedLod's space. */
|
|
8
|
+
export interface SortInputs extends Omit<RowValues, "frustum"> {
|
|
9
|
+
/** Around every instance, survivors grown: no instance outside it is drawn. */
|
|
10
|
+
bounds: Sphere;
|
|
11
|
+
/** The same, as a box. */
|
|
12
|
+
box: Box3;
|
|
13
|
+
/**
|
|
14
|
+
* The bit of the one level each instance draws, without a fade, at any height its chunk's instances can have, with
|
|
15
|
+
* no cullDistance and no arrival under way; else 0. Inside the camera's frustum, its lists then hold every instance
|
|
16
|
+
* at that level however the camera moves.
|
|
17
|
+
*/
|
|
18
|
+
onlyLevel: number;
|
|
19
|
+
/** Bumped whenever its chunks changed: what its pages hold. */
|
|
20
|
+
chunks: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* One camera's lists: what it last sorted with, which a sort is skipped for, and the levels it wants loaded with what
|
|
24
|
+
* they were worked out from.
|
|
25
|
+
*/
|
|
26
|
+
export interface CameraLists {
|
|
27
|
+
/** The camera's frustum in the InstancedLod's space, as its last update found it (see `frustumIn`). */
|
|
28
|
+
readonly frustum: Frustum;
|
|
29
|
+
/** Whether a sort was written for the camera: until then the level meshes draw nothing for it. */
|
|
30
|
+
written: boolean;
|
|
31
|
+
sortKey: Key;
|
|
32
|
+
heightsKey: Key;
|
|
33
|
+
/** The heights its chunks' instances can have on the camera's screen (see `ChunkSet.heights`), for heightsKey's inputs. */
|
|
34
|
+
heights: [shortest: number, tallest: number][];
|
|
35
|
+
/** How often `heights` was worked out: what shownKey reads of them. */
|
|
36
|
+
heightsVersion: number;
|
|
37
|
+
/** The levels the camera needs loaded, as a mask, for `heights`. */
|
|
38
|
+
wanted: number;
|
|
39
|
+
shownKey: Key;
|
|
40
|
+
/** The levels whose meshes draw for the camera, as a mask, for `heights` and what shownKey holds. */
|
|
41
|
+
shown: number;
|
|
42
|
+
/** The bit of the one level that every chunk's heights draw, without a fade, while no arrival is under way; else 0. */
|
|
43
|
+
onlyLevel: number;
|
|
44
|
+
}
|
|
45
|
+
/** The lists of every camera drawing one InstancedLod: its row of a LodGpu's sorts (see sort.ts). */
|
|
46
|
+
export declare class InstanceLists {
|
|
47
|
+
private readonly sorter;
|
|
48
|
+
private readonly cameras;
|
|
49
|
+
readonly row: number;
|
|
50
|
+
/** `listed` tells per level whether it has an instance list: whether it draws something; each lists `listSize` instances. */
|
|
51
|
+
constructor(sorter: Sorter, listed: readonly boolean[], listSize: number);
|
|
52
|
+
/** `camera`'s lists, made the first time it asks. */
|
|
53
|
+
of(camera: Camera): CameraLists;
|
|
54
|
+
/** Where `camera`'s lists and indirect draws lie. */
|
|
55
|
+
slots(camera: Camera): InstanceSlots;
|
|
56
|
+
/** Every camera draws `draws` too, after the draws it has; where they start. */
|
|
57
|
+
appendDraws(draws: readonly IndirectDraw[]): number;
|
|
58
|
+
/** Sort for `camera` at its next draw, unless nothing it sorts by changed since its last sort. */
|
|
59
|
+
sort(camera: Camera, sort: SortInputs): void;
|
|
60
|
+
/** Sort every InstancedLod due for `camera`: before a level mesh draws for it. */
|
|
61
|
+
drawFor(camera: Camera): void;
|
|
62
|
+
/** Give back the lists of every camera other than `camera` that `rendering` says stopped drawing, as a clone made for one frame does. */
|
|
63
|
+
prune(camera: Camera, rendering: (camera: Camera) => boolean): void;
|
|
64
|
+
dispose(): void;
|
|
65
|
+
private forget;
|
|
66
|
+
}
|
|
67
|
+
/** Set `lists`' frustum to `camera`'s in the space of `space`, a world matrix, and return it. */
|
|
68
|
+
export declare function frustumIn(lists: CameraLists, camera: Camera, space: Matrix4): Frustum;
|
|
69
|
+
/** Per level of `inputs`, whether it has an instance list: whether it draws something. */
|
|
70
|
+
export declare function listedOf(inputs: readonly LodLevel[]): boolean[];
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { Frustum, Matrix4 } from "three/webgpu";
|
|
2
|
+
import { has } from "../levels/draw.js";
|
|
3
|
+
import { emptyLevels } from "../levels/index.js";
|
|
4
|
+
import { Key } from "./key.js";
|
|
5
|
+
const projection = new Matrix4();
|
|
6
|
+
/** What a camera's sort key starts with: how it lies to the instances' bounds, which says what else the key holds. */
|
|
7
|
+
const MODE = {
|
|
8
|
+
/** Outside the camera's frustum: nothing draws, and no sort runs. */
|
|
9
|
+
hidden: 0,
|
|
10
|
+
/** In it: the key holds everything the sort reads. */
|
|
11
|
+
seen: 1,
|
|
12
|
+
/** Wholly inside it, every instance drawing one level without a fade and none culled: the key holds the level. */
|
|
13
|
+
oneLevel: 2,
|
|
14
|
+
/** Wholly inside an orthographic camera's frustum, none culled: heights are alike from anywhere, so no eye. */
|
|
15
|
+
orthoInside: 3,
|
|
16
|
+
};
|
|
17
|
+
/** The lists of every camera drawing one InstancedLod: its row of a LodGpu's sorts (see sort.ts). */
|
|
18
|
+
export class InstanceLists {
|
|
19
|
+
sorter;
|
|
20
|
+
cameras = new Map();
|
|
21
|
+
row;
|
|
22
|
+
/** `listed` tells per level whether it has an instance list: whether it draws something; each lists `listSize` instances. */
|
|
23
|
+
constructor(sorter, listed, listSize) {
|
|
24
|
+
this.sorter = sorter;
|
|
25
|
+
this.row = sorter.register(listed.reduce((mask, on, i) => (on ? mask | (1 << i) : mask), 0), listSize);
|
|
26
|
+
}
|
|
27
|
+
/** `camera`'s lists, made the first time it asks. */
|
|
28
|
+
of(camera) {
|
|
29
|
+
const found = this.cameras.get(camera);
|
|
30
|
+
if (found)
|
|
31
|
+
return found;
|
|
32
|
+
this.sorter.hold(camera);
|
|
33
|
+
const lists = {
|
|
34
|
+
frustum: new Frustum(),
|
|
35
|
+
written: false,
|
|
36
|
+
sortKey: new Key(),
|
|
37
|
+
heightsKey: new Key(),
|
|
38
|
+
heights: [],
|
|
39
|
+
heightsVersion: 0,
|
|
40
|
+
wanted: 0,
|
|
41
|
+
shownKey: new Key(),
|
|
42
|
+
shown: 0,
|
|
43
|
+
onlyLevel: 0,
|
|
44
|
+
};
|
|
45
|
+
this.cameras.set(camera, lists);
|
|
46
|
+
return lists;
|
|
47
|
+
}
|
|
48
|
+
/** Where `camera`'s lists and indirect draws lie. */
|
|
49
|
+
slots(camera) {
|
|
50
|
+
this.of(camera);
|
|
51
|
+
return this.sorter.slotsOf(camera, this.row);
|
|
52
|
+
}
|
|
53
|
+
/** Every camera draws `draws` too, after the draws it has; where they start. */
|
|
54
|
+
appendDraws(draws) {
|
|
55
|
+
return this.sorter.appendDraws(this.row, draws);
|
|
56
|
+
}
|
|
57
|
+
/** Sort for `camera` at its next draw, unless nothing it sorts by changed since its last sort. */
|
|
58
|
+
sort(camera, sort) {
|
|
59
|
+
const lists = this.of(camera);
|
|
60
|
+
const { levels, eye, scale, ortho, cull, loaded, before, progress, source, reach } = sort;
|
|
61
|
+
const { frustum } = lists;
|
|
62
|
+
const mode = modeOf(frustum, sort);
|
|
63
|
+
// No level mesh draws for the camera (see InstancedLod.sort): its lists are not read. The key still holds what the
|
|
64
|
+
// last sort read, which a camera that looks back at the instances as it was matches: that sort's lists still hold.
|
|
65
|
+
if (mode === MODE.hidden)
|
|
66
|
+
return;
|
|
67
|
+
const key = lists.sortKey.start().put(mode).put(sort.chunks);
|
|
68
|
+
if (mode === MODE.oneLevel)
|
|
69
|
+
key.put(sort.onlyLevel);
|
|
70
|
+
else if (mode === MODE.orthoInside)
|
|
71
|
+
key.screen(scale, ortho, levels, cull, source).put(loaded).put(before).put(progress).put(reach);
|
|
72
|
+
else if (mode === MODE.seen) {
|
|
73
|
+
for (const { normal, constant } of frustum.planes)
|
|
74
|
+
key.put(normal.x).put(normal.y).put(normal.z).put(constant);
|
|
75
|
+
key.camera(eye, scale, ortho, levels, cull, source).put(loaded).put(before).put(progress).put(reach);
|
|
76
|
+
}
|
|
77
|
+
if (!key.end())
|
|
78
|
+
return;
|
|
79
|
+
this.sorter.write(camera, this.row, { levels, eye, scale, ortho, cull, loaded, before, progress, source, reach, frustum });
|
|
80
|
+
lists.written = true;
|
|
81
|
+
}
|
|
82
|
+
/** Sort every InstancedLod due for `camera`: before a level mesh draws for it. */
|
|
83
|
+
drawFor(camera) {
|
|
84
|
+
this.sorter.run(camera);
|
|
85
|
+
}
|
|
86
|
+
/** Give back the lists of every camera other than `camera` that `rendering` says stopped drawing, as a clone made for one frame does. */
|
|
87
|
+
prune(camera, rendering) {
|
|
88
|
+
for (const other of [...this.cameras.keys()])
|
|
89
|
+
if (other !== camera && !rendering(other))
|
|
90
|
+
this.forget(other);
|
|
91
|
+
}
|
|
92
|
+
dispose() {
|
|
93
|
+
for (const camera of [...this.cameras.keys()])
|
|
94
|
+
this.forget(camera);
|
|
95
|
+
this.sorter.unregister(this.row);
|
|
96
|
+
}
|
|
97
|
+
forget(camera) {
|
|
98
|
+
this.cameras.delete(camera);
|
|
99
|
+
this.sorter.release(camera, this.row);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/** Set `lists`' frustum to `camera`'s in the space of `space`, a world matrix, and return it. */
|
|
103
|
+
export function frustumIn(lists, camera, space) {
|
|
104
|
+
projection.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse).multiply(space);
|
|
105
|
+
return lists.frustum.setFromProjectionMatrix(projection, camera.coordinateSystem, camera.reversedDepth);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* How `frustum` lies to `sort`'s instances (see MODE). Wholly inside it, with no cullDistance, no instance is culled
|
|
109
|
+
* wherever the camera is: instances that all draw one level fill its list alike, and an orthographic camera measures
|
|
110
|
+
* their heights alike from anywhere.
|
|
111
|
+
*/
|
|
112
|
+
function modeOf(frustum, { bounds, box, cull, onlyLevel, ortho }) {
|
|
113
|
+
if (!frustum.intersectsSphere(bounds))
|
|
114
|
+
return MODE.hidden;
|
|
115
|
+
if (cull !== null || !inside(frustum, box))
|
|
116
|
+
return MODE.seen;
|
|
117
|
+
return onlyLevel !== 0 ? MODE.oneLevel : ortho ? MODE.orthoInside : MODE.seen;
|
|
118
|
+
}
|
|
119
|
+
/** Whether `box` lies wholly inside `frustum`: its corner nearest each plane's outside lies inside. */
|
|
120
|
+
function inside(frustum, box) {
|
|
121
|
+
return frustum.planes.every(({ normal, constant }) => {
|
|
122
|
+
const x = normal.x > 0 ? box.min.x : box.max.x;
|
|
123
|
+
const y = normal.y > 0 ? box.min.y : box.max.y;
|
|
124
|
+
const z = normal.z > 0 ? box.min.z : box.max.z;
|
|
125
|
+
return normal.x * x + normal.y * y + normal.z * z + constant > 0;
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
/** Per level of `inputs`, whether it has an instance list: whether it draws something. */
|
|
129
|
+
export function listedOf(inputs) {
|
|
130
|
+
const empty = emptyLevels(inputs);
|
|
131
|
+
return inputs.map((_, i) => !has(empty, i));
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=lists.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lists.js","sourceRoot":"","sources":["../../src/instanced/lists.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAuC,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,WAAW,EAAiB,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAgD/B,MAAM,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;AAEjC,sHAAsH;AACtH,MAAM,IAAI,GAAG;IACX,qEAAqE;IACrE,MAAM,EAAE,CAAC;IACT,sDAAsD;IACtD,IAAI,EAAE,CAAC;IACP,kHAAkH;IAClH,QAAQ,EAAE,CAAC;IACX,+GAA+G;IAC/G,WAAW,EAAE,CAAC;CACN,CAAC;AAEX,qGAAqG;AACrG,MAAM,OAAO,aAAa;IAML;IALF,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;IACjD,GAAG,CAAS;IAErB,6HAA6H;IAC7H,YACmB,MAAc,EAC/B,MAA0B,EAC1B,QAAgB;QAFC,WAAM,GAAN,MAAM,CAAQ;QAI/B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,CACxB,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAChE,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,qDAAqD;IACrD,EAAE,CAAC,MAAc;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,MAAM,KAAK,GAAgB;YACzB,OAAO,EAAE,IAAI,OAAO,EAAE;YACtB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,IAAI,GAAG,EAAE;YAClB,UAAU,EAAE,IAAI,GAAG,EAAE;YACrB,OAAO,EAAE,EAAE;YACX,cAAc,EAAE,CAAC;YACjB,MAAM,EAAE,CAAC;YACT,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,CAAC;SACb,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qDAAqD;IACrD,KAAK,CAAC,MAAc;QAClB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,gFAAgF;IAChF,WAAW,CAAC,KAA8B;QACxC,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,kGAAkG;IAClG,IAAI,CAAC,MAAc,EAAE,IAAgB;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC1F,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACnC,mHAAmH;QACnH,mHAAmH;QACnH,IAAI,IAAI,KAAK,IAAI,CAAC,MAAM;YAAE,OAAO;QACjC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ;YAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC/C,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW;YAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAC/H,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,KAAK,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,OAAO,CAAC,MAAM;gBAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/G,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvG,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;YAAE,OAAO;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3H,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,kFAAkF;IAClF,OAAO,CAAC,MAAc;QACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,yIAAyI;IACzI,KAAK,CAAC,MAAc,EAAE,SAAsC;QAC1D,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAAE,IAAI,KAAK,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9G,CAAC;IAED,OAAO;QACL,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAEO,MAAM,CAAC,MAAc;QAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;CACF;AAED,iGAAiG;AACjG,MAAM,UAAU,SAAS,CAAC,KAAkB,EAAE,MAAc,EAAE,KAAc;IAC1E,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChG,OAAO,KAAK,CAAC,OAAO,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;AAC1G,CAAC;AAED;;;;GAIG;AACH,SAAS,MAAM,CAAC,OAAgB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAc;IACnF,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC,MAAM,CAAC;IAC1D,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAC7D,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAChF,CAAC;AAED,uGAAuG;AACvG,SAAS,MAAM,CAAC,OAAgB,EAAE,GAAS;IACzC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;QACnD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,QAAQ,CAAC,MAA2B;IAClD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type Sphere } from "three/webgpu";
|
|
2
|
+
import { d } from "typegpu";
|
|
3
|
+
import type { LocalCamera } from "./camera.js";
|
|
4
|
+
import type { Cull } from "./cull.js";
|
|
5
|
+
/** The largest a survivor of `cullDistance` grows: what it reaches where 1/64 of the instances draw. */
|
|
6
|
+
export declare const MAX_SURVIVOR_SCALE = 8;
|
|
7
|
+
/**
|
|
8
|
+
* The bits of `origin`, an instance's translation, hashed into [0, 1): what thins it out (see `CullDistance`), the
|
|
9
|
+
* same on the CPU and the GPU.
|
|
10
|
+
*/
|
|
11
|
+
export declare const originHash: import("typegpu").TgpuFn<(origin: d.Vec3f) => d.F32>;
|
|
12
|
+
/**
|
|
13
|
+
* How an instance at `origin`, `distance` from the cullDistance camera, draws (see `CullDistance`): 0 thinned out,
|
|
14
|
+
* else the scale it draws at: 1, or with `survivors` 1/√share, share the share of instances drawn at its distance.
|
|
15
|
+
*/
|
|
16
|
+
export declare const cullScale: import("typegpu").TgpuFn<(origin: d.Vec3f, distance: d.F32, near: d.F32, far: d.F32, survivors: d.U32) => d.F32>;
|
|
17
|
+
/**
|
|
18
|
+
* Where an instance at `matrix` stands for a camera, `source` the source's sphere (centre, radius) grown by `grow`:
|
|
19
|
+
* the source's centre (xyz), and its height on screen (w) seen from `eye` with `scale` pixels per unit of subtense, or
|
|
20
|
+
* of size with `ortho` 1, as a Lod measures its own on the CPU (see screen.ts: 2 r q / d).
|
|
21
|
+
*/
|
|
22
|
+
export declare const instanceOnScreen: import("typegpu").TgpuFn<(matrix: d.Mat4x4f, source: d.Vec4f, grow: d.F32, eye: d.Vec3f, scale: d.F32, ortho: d.U32) => d.Vec4f>;
|
|
23
|
+
/**
|
|
24
|
+
* The level the instance at `offset` of `matrices` draws most of its pixels with (see `InstancedLodChunk.getLevelAt`),
|
|
25
|
+
* thinned out by `cull` and seen by `camera`, both in the InstancedLod's space, of the levels of `loaded`, `source` the
|
|
26
|
+
* source's sphere; null if it draws nothing.
|
|
27
|
+
*/
|
|
28
|
+
export declare function instanceLevel(matrices: ArrayLike<number>, offset: number, cull: Cull | null, camera: LocalCamera, source: Sphere, loaded: number): number | null;
|