@drawcall/lod 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -69
- package/dist/at.d.ts +2 -0
- package/dist/at.js +8 -0
- package/dist/at.js.map +1 -0
- package/dist/baked/codec.d.ts +6 -3
- package/dist/baked/codec.js +22 -16
- package/dist/baked/codec.js.map +1 -1
- package/dist/baked/coverage.d.ts +3 -0
- package/dist/baked/coverage.js +45 -0
- package/dist/baked/coverage.js.map +1 -0
- package/dist/baked/index.d.ts +4 -0
- package/dist/baked/index.js +3 -35
- package/dist/baked/index.js.map +1 -1
- package/dist/baked/low.d.ts +2 -2
- package/dist/baked/low.js +4 -4
- package/dist/baked/low.js.map +1 -1
- package/dist/bounds.d.ts +12 -2
- package/dist/bounds.js +72 -10
- package/dist/bounds.js.map +1 -1
- package/dist/compile.d.ts +4 -0
- package/dist/compile.js +100 -0
- package/dist/compile.js.map +1 -0
- package/dist/deferred.d.ts +12 -0
- package/dist/deferred.js +27 -0
- package/dist/deferred.js.map +1 -0
- package/dist/dispose.d.ts +7 -3
- package/dist/dispose.js +33 -4
- package/dist/dispose.js.map +1 -1
- package/dist/fade.d.ts +5 -13
- package/dist/fade.js +62 -28
- package/dist/fade.js.map +1 -1
- package/dist/impostor/bake/index.d.ts +1 -0
- package/dist/impostor/bake/index.js +1 -0
- package/dist/impostor/bake/index.js.map +1 -1
- package/dist/impostor/bake/materials.js +11 -1
- package/dist/impostor/bake/materials.js.map +1 -1
- package/dist/impostor/codec.d.ts +2 -7
- package/dist/impostor/codec.js +16 -27
- package/dist/impostor/codec.js.map +1 -1
- package/dist/impostor/mesh/card.js +4 -1
- package/dist/impostor/mesh/card.js.map +1 -1
- package/dist/impostor/mesh/index.d.ts +6 -4
- package/dist/impostor/mesh/index.js +8 -10
- package/dist/impostor/mesh/index.js.map +1 -1
- package/dist/impostor/mesh/material.d.ts +7 -5
- package/dist/impostor/mesh/material.js +29 -26
- package/dist/impostor/mesh/material.js.map +1 -1
- package/dist/impostor/mesh/surface.d.ts +20 -16
- package/dist/impostor/mesh/surface.js +74 -55
- package/dist/impostor/mesh/surface.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 +7 -6
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/instanced/args.js +2 -2
- package/dist/instanced/args.js.map +1 -1
- package/dist/instanced/{bounds.d.ts → blocks.d.ts} +25 -9
- package/dist/instanced/{bounds.js → blocks.js} +76 -53
- package/dist/instanced/blocks.js.map +1 -0
- package/dist/instanced/dirty.d.ts +3 -0
- package/dist/instanced/dirty.js +40 -5
- package/dist/instanced/dirty.js.map +1 -1
- package/dist/instanced/index.d.ts +25 -51
- package/dist/instanced/index.js +189 -413
- package/dist/instanced/index.js.map +1 -1
- package/dist/instanced/meshes.d.ts +54 -13
- package/dist/instanced/meshes.js +178 -41
- package/dist/instanced/meshes.js.map +1 -1
- package/dist/instanced/parts.d.ts +14 -0
- package/dist/instanced/parts.js +79 -0
- package/dist/instanced/parts.js.map +1 -0
- package/dist/instanced/raycast.d.ts +13 -0
- package/dist/instanced/raycast.js +53 -0
- package/dist/instanced/raycast.js.map +1 -0
- package/dist/instanced/select.d.ts +17 -9
- package/dist/instanced/select.js +114 -63
- package/dist/instanced/select.js.map +1 -1
- package/dist/instanced/store.d.ts +31 -0
- package/dist/instanced/store.js +96 -0
- package/dist/instanced/store.js.map +1 -0
- package/dist/levels.d.ts +71 -48
- package/dist/levels.js +99 -74
- package/dist/levels.js.map +1 -1
- package/dist/loader/bundle.d.ts +25 -0
- package/dist/loader/bundle.js +241 -0
- package/dist/loader/bundle.js.map +1 -0
- package/dist/loader/cache.d.ts +15 -15
- package/dist/loader/cache.js +71 -33
- package/dist/loader/cache.js.map +1 -1
- package/dist/loader/provenance.d.ts +30 -0
- package/dist/loader/provenance.js +105 -0
- package/dist/loader/provenance.js.map +1 -0
- package/dist/loader/url.d.ts +13 -0
- package/dist/loader/url.js +31 -0
- package/dist/loader/url.js.map +1 -0
- package/dist/loader.d.ts +30 -74
- package/dist/loader.js +191 -186
- package/dist/loader.js.map +1 -1
- package/dist/lod.d.ts +20 -31
- package/dist/lod.js +105 -96
- package/dist/lod.js.map +1 -1
- package/dist/material.js +9 -4
- package/dist/material.js.map +1 -1
- package/dist/mesh/codec.d.ts +4 -0
- package/dist/mesh/codec.js +192 -0
- package/dist/mesh/codec.js.map +1 -0
- package/dist/queue.d.ts +2 -0
- package/dist/queue.js +33 -0
- package/dist/queue.js.map +1 -0
- package/dist/residency.d.ts +44 -0
- package/dist/residency.js +205 -0
- package/dist/residency.js.map +1 -0
- package/dist/simplify.js +5 -3
- package/dist/simplify.js.map +1 -1
- package/dist/source/{error.d.ts → deviation.d.ts} +3 -3
- package/dist/source/{error.js → deviation.js} +6 -6
- package/dist/source/deviation.js.map +1 -0
- package/dist/source/source.d.ts +1 -1
- package/dist/source/source.js +1 -1
- package/dist/three.d.ts +17 -5
- package/dist/three.js +24 -3
- package/dist/three.js.map +1 -1
- package/dist/tsl.d.ts +5 -5
- package/dist/tsl.js +12 -19
- package/dist/tsl.js.map +1 -1
- package/dist/view.d.ts +16 -1
- package/dist/view.js +57 -1
- package/dist/view.js.map +1 -1
- package/dist/wind/index.d.ts +2 -2
- package/dist/wind/index.js +31 -28
- package/dist/wind/index.js.map +1 -1
- package/dist/wind/sway.d.ts +2 -1
- package/package.json +9 -3
- package/skills/lod/SKILL.md +71 -109
- 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/bounds.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/loader/dispose.d.ts +0 -3
- package/dist/loader/dispose.js +0 -25
- package/dist/loader/dispose.js.map +0 -1
- package/dist/source/error.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/impostor/bake/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/impostor/bake/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { DoubleSide, MeshStandardNodeMaterial, NoBlending } from "three/webgpu";
|
|
2
|
-
import { ambientOcclusion, cameraViewMatrix, Fn, clamp, diffuseColor, emissive, faceDirection, float, materialMetalness, materialOpacity, materialRoughness, max, mrt, normalView, normalize, positionView, specularColor, specularF90, step, vec4, } from "three/tsl";
|
|
2
|
+
import { ambientOcclusion, cameraViewMatrix, Fn, clamp, diffuseColor, emissive, faceDirection, float, materialMetalness, materialOpacity, materialRoughness, max, mrt, normalView, normalize, positionView, positionLocal, specularColor, specularF90, step, vec4, } from "three/tsl";
|
|
3
3
|
import { isMesh, isNodeMaterial, isPhysical, isStandard, isStandardNode, toNodeMaterial } from "../../three.js";
|
|
4
4
|
import { affine, biasedTextures, isNodeOf } from "../../tsl.js";
|
|
5
|
+
import { placeInstances } from "../../fade.js";
|
|
5
6
|
import { originalOf } from "../../material.js";
|
|
6
7
|
/**
|
|
7
8
|
* The outputs a bake material writes, by name: one per atlas map, then the second way to
|
|
@@ -91,6 +92,15 @@ const scalar = (node, builder) => {
|
|
|
91
92
|
};
|
|
92
93
|
function bakeMaterial(source, settings) {
|
|
93
94
|
const material = toStandard(source);
|
|
95
|
+
const position = material.positionNode;
|
|
96
|
+
material.positionNode = Fn((builder) => {
|
|
97
|
+
placeInstances(builder);
|
|
98
|
+
if (!position)
|
|
99
|
+
return positionLocal;
|
|
100
|
+
if (!isNodeOf(position, "vec3", builder))
|
|
101
|
+
throw new Error("bakeImpostor: position must build to vec3");
|
|
102
|
+
return position;
|
|
103
|
+
})();
|
|
94
104
|
// A material that draws no colour has no surface to bake.
|
|
95
105
|
material.visible = source.visible && source.colorWrite;
|
|
96
106
|
const emits = material.visible && emitsLight(material);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materials.js","sourceRoot":"","sources":["../../../src/impostor/bake/materials.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"materials.js","sourceRoot":"","sources":["../../../src/impostor/bake/materials.ts"],"names":[],"mappings":"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"}
|
package/dist/impostor/codec.d.ts
CHANGED
|
@@ -5,10 +5,5 @@ import { type Impostor } from "./impostor.js";
|
|
|
5
5
|
* "impostor" key.
|
|
6
6
|
*/
|
|
7
7
|
export declare function encodeImpostor(impostor: Impostor): Uint8Array;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export declare function decodeImpostor(input: Input): Impostor;
|
|
11
|
-
/** Inflate cache files asynchronously with the runtime's native zlib decoder. */
|
|
12
|
-
export declare function decodeImpostorAsync(input: Input): Promise<Impostor>;
|
|
13
|
-
export declare function fromBase64(text: string): Uint8Array;
|
|
14
|
-
export {};
|
|
8
|
+
/** Parses a file written by `encodeImpostor`, inflating its mips off the main thread. */
|
|
9
|
+
export declare function decodeImpostorAsync(bytes: Uint8Array): Promise<Impostor>;
|
package/dist/impostor/codec.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { unzlib, zlibSync } from "fflate";
|
|
2
2
|
import { KHR_DF_CHANNEL_RGBSDA_ALPHA, KHR_DF_CHANNEL_RGBSDA_BLUE, KHR_DF_CHANNEL_RGBSDA_GREEN, KHR_DF_CHANNEL_RGBSDA_RED, KHR_DF_MODEL_RGBSDA, KHR_DF_TRANSFER_LINEAR, KHR_SUPERCOMPRESSION_ZLIB, VK_FORMAT_R8G8B8A8_UNORM, createDefaultContainer, read, write, } from "ktx-parse";
|
|
3
3
|
import { validateImpostor } from "./impostor.js";
|
|
4
4
|
/** Key/value entry holding every non-pixel field as JSON. */
|
|
@@ -47,19 +47,21 @@ export function encodeImpostor(impostor) {
|
|
|
47
47
|
ktx.keyValue[KEY] = JSON.stringify(meta);
|
|
48
48
|
return write(ktx);
|
|
49
49
|
}
|
|
50
|
-
/** Parses a file written by `encodeImpostor`,
|
|
51
|
-
export function
|
|
52
|
-
const file = parse(
|
|
53
|
-
const levels = file.levels.map(({ data, length }, m) =>
|
|
54
|
-
return decoded(file, levels);
|
|
55
|
-
}
|
|
56
|
-
/** Inflate cache files asynchronously with the runtime's native zlib decoder. */
|
|
57
|
-
export async function decodeImpostorAsync(input) {
|
|
58
|
-
if (typeof DecompressionStream === "undefined")
|
|
59
|
-
return decodeImpostor(input);
|
|
60
|
-
const file = parse(input);
|
|
61
|
-
const levels = await Promise.all(file.levels.map(async ({ data }, m) => {
|
|
50
|
+
/** Parses a file written by `encodeImpostor`, inflating its mips off the main thread. */
|
|
51
|
+
export async function decodeImpostorAsync(bytes) {
|
|
52
|
+
const file = parse(bytes);
|
|
53
|
+
const levels = await Promise.all(file.levels.map(async ({ data, length }, m) => {
|
|
62
54
|
try {
|
|
55
|
+
// Move large mips off the main thread; small mips avoid worker startup cost.
|
|
56
|
+
if (length >= 8 * 1024 * 1024)
|
|
57
|
+
return await new Promise((resolve, reject) => {
|
|
58
|
+
unzlib(data.slice(), { consume: true }, (error, raw) => {
|
|
59
|
+
if (error)
|
|
60
|
+
reject(error);
|
|
61
|
+
else
|
|
62
|
+
resolve(raw);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
63
65
|
const stream = new Blob([data.slice()]).stream().pipeThrough(new DecompressionStream("deflate"));
|
|
64
66
|
return new Uint8Array(await new Response(stream).arrayBuffer());
|
|
65
67
|
}
|
|
@@ -69,8 +71,7 @@ export async function decodeImpostorAsync(input) {
|
|
|
69
71
|
}));
|
|
70
72
|
return decoded(file, levels);
|
|
71
73
|
}
|
|
72
|
-
function parse(
|
|
73
|
-
const bytes = typeof input === "string" ? attempt("not base64", () => fromBase64(input)) : input instanceof Uint8Array ? input : new Uint8Array(input);
|
|
74
|
+
function parse(bytes) {
|
|
74
75
|
// ktx-parse reads through `bytes.buffer` without checking the view's end, so a truncated
|
|
75
76
|
// view would read past it; give it a buffer of exactly the file instead.
|
|
76
77
|
const file = bytes.byteLength === bytes.buffer.byteLength ? bytes : bytes.slice();
|
|
@@ -122,16 +123,4 @@ function attempt(why, run) {
|
|
|
122
123
|
function invalid(why, error) {
|
|
123
124
|
return new Error(`Invalid impostor file: ${why} (${error instanceof Error ? error.message : String(error)})`, { cause: error });
|
|
124
125
|
}
|
|
125
|
-
export function fromBase64(text) {
|
|
126
|
-
// Native where available (Node 25+, current browsers); the fallback covers the rest.
|
|
127
|
-
const native = Reflect.get(Uint8Array, "fromBase64");
|
|
128
|
-
const decoded = typeof native === "function" ? Reflect.apply(native, Uint8Array, [text]) : undefined;
|
|
129
|
-
if (decoded instanceof Uint8Array)
|
|
130
|
-
return decoded;
|
|
131
|
-
const binary = atob(text);
|
|
132
|
-
const bytes = new Uint8Array(binary.length);
|
|
133
|
-
for (let i = 0; i < binary.length; i++)
|
|
134
|
-
bytes[i] = binary.charCodeAt(i);
|
|
135
|
-
return bytes;
|
|
136
|
-
}
|
|
137
126
|
//# sourceMappingURL=codec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/impostor/codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/impostor/codec.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,7 +59,10 @@ export function buildCard(inputs, instance, deform) {
|
|
|
59
59
|
// whole surface, and a square frame is mostly empty for a tall plant.
|
|
60
60
|
const box = vec2(dot(tangent.abs(), extent), dot(bitangent.abs(), extent)).add(halfSize.mul(0.06));
|
|
61
61
|
const size = min(box, vec2(halfSize, halfSize)).mul(grow.mul(2));
|
|
62
|
-
const point = centre
|
|
62
|
+
const point = centre
|
|
63
|
+
.add(tangent.mul(positionGeometry.x.mul(size.x)))
|
|
64
|
+
.add(bitangent.mul(positionGeometry.y.mul(size.y)))
|
|
65
|
+
.toVar();
|
|
63
66
|
const last = frames.sub(1);
|
|
64
67
|
// Clamped: rounding can put a horizon view a hair outside the grid.
|
|
65
68
|
const grid = clamp(encodeNode(layout, view).mul(last), vec2(0, 0), vec2(last, last));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.js","sourceRoot":"","sources":["../../../src/impostor/mesh/card.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,EACL,GAAG,EACH,KAAK,EACL,KAAK,EACL,MAAM,EACN,GAAG,EACH,GAAG,EACH,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,MAAM,EACN,eAAe,EACf,IAAI,EACJ,IAAI,EACJ,IAAI,GACL,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAwBzD,wFAAwF;AACxF,uFAAuF;AACvF,wDAAwD;AACxD,MAAM,OAAO,GAAG;IACd,sEAAsE;IACtE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAClD,OAAO,EAAE,eAAe,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpD,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAChD,GAAG,EAAE,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC;IAC5C,UAAU,EAAE,eAAe,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAC1D,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACtD,OAAO,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAU;CAC1J,CAAC;AAEF,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;AAChC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAEnC,wCAAwC;AACxC,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,+EAA+E;IAC/E,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/E,OAAO,EAAE,OAAO,CAAC,OAAO;IACxB,0FAA0F;IAC1F,KAAK,EAAE,OAAO,CAAC,KAAK;IACpB,GAAG,EAAE,OAAO,CAAC,GAAG;IAChB,4FAA4F;IAC5F,UAAU,EAAE,OAAO,CAAC,UAAU;IAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;IAC1B,oFAAoF;IACpF,MAAM,CAAC,MAAoB;QACzB,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QACrC,OAAO,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACpH,CAAC;CACO,CAAC;AAIX;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,MAAkB,EAAE,QAAsB,EAAE,MAA2B;IAC/F,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAC/E,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;IAChF,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IAClD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;IACtD,kFAAkF;IAClF,0CAA0C;IAC1C,MAAM,KAAK,GAAG,cAAc,CAAC,sBAAsB,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACxF,kFAAkF;IAClF,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5F,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/C,uFAAuF;IACvF,qFAAqF;IACrF,sEAAsE;IACtE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACnG,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"card.js","sourceRoot":"","sources":["../../../src/impostor/mesh/card.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,8 @@ export interface ImpostorMeshOptions {
|
|
|
28
28
|
* It draws nothing of an instance into a directional light's shadow map whose texels are
|
|
29
29
|
* wider than the instance. Like an InstancedMesh, it is culled by `boundingSphere`,
|
|
30
30
|
* which `computeBoundingSphere` makes from the instances.
|
|
31
|
+
* On multisampled targets, edges use alpha-to-coverage and leave fractional canvas
|
|
32
|
+
* alpha; use a renderer with `alpha: false` when the page must not show through them.
|
|
31
33
|
*/
|
|
32
34
|
export declare class ImpostorMesh extends Mesh<PlaneGeometry, ImpostorMaterial> {
|
|
33
35
|
readonly isImpostorMesh = true;
|
|
@@ -36,15 +38,15 @@ export declare class ImpostorMesh extends Mesh<PlaneGeometry, ImpostorMaterial>
|
|
|
36
38
|
options: ImpostorMeshOptions;
|
|
37
39
|
/** Instances drawn. */
|
|
38
40
|
count: number;
|
|
39
|
-
/** 16 floats per instance
|
|
41
|
+
/** 16 floats per instance, read from its storage buffer for every draw. */
|
|
40
42
|
instanceMatrix: StorageInstancedBufferAttribute;
|
|
41
43
|
/** RGB (and a pad) per instance, once `setColorAt` was called. */
|
|
42
44
|
instanceColor: StorageInstancedBufferAttribute | null;
|
|
43
45
|
boundingSphere: Sphere | null;
|
|
46
|
+
/** Where the card sits within an instance's space (InstancedLod places it). */
|
|
47
|
+
readonly placement: Matrix4;
|
|
44
48
|
private disposed;
|
|
45
49
|
constructor(impostor: Impostor, count?: number, options?: ImpostorMeshOptions, material?: ImpostorMaterial);
|
|
46
|
-
/** Where the card sits within an instance's space (InstancedLod places it). */
|
|
47
|
-
get placement(): Matrix4;
|
|
48
50
|
setMatrixAt(index: number, matrix: Matrix4): void;
|
|
49
51
|
getMatrixAt(index: number, matrix: Matrix4): Matrix4;
|
|
50
52
|
setColorAt(index: number, color: Color): void;
|
|
@@ -61,6 +63,6 @@ export declare class ImpostorMesh extends Mesh<PlaneGeometry, ImpostorMaterial>
|
|
|
61
63
|
/**
|
|
62
64
|
* An ImpostorMesh like `template` for `count` instances, its card placed by `placement`
|
|
63
65
|
* within each instance's space (instance matrix × placement), as InstancedLod draws it.
|
|
64
|
-
*
|
|
66
|
+
* Materials and runtime shading are shared; placement is per draw.
|
|
65
67
|
*/
|
|
66
68
|
export declare function impostorInstances(template: ImpostorMesh, count: number, placement: Matrix4): ImpostorMesh;
|
|
@@ -31,6 +31,8 @@ const sphere = new Sphere();
|
|
|
31
31
|
* It draws nothing of an instance into a directional light's shadow map whose texels are
|
|
32
32
|
* wider than the instance. Like an InstancedMesh, it is culled by `boundingSphere`,
|
|
33
33
|
* which `computeBoundingSphere` makes from the instances.
|
|
34
|
+
* On multisampled targets, edges use alpha-to-coverage and leave fractional canvas
|
|
35
|
+
* alpha; use a renderer with `alpha: false` when the page must not show through them.
|
|
34
36
|
*/
|
|
35
37
|
export class ImpostorMesh extends Mesh {
|
|
36
38
|
isImpostorMesh = true;
|
|
@@ -39,11 +41,13 @@ export class ImpostorMesh extends Mesh {
|
|
|
39
41
|
options;
|
|
40
42
|
/** Instances drawn. */
|
|
41
43
|
count;
|
|
42
|
-
/** 16 floats per instance
|
|
44
|
+
/** 16 floats per instance, read from its storage buffer for every draw. */
|
|
43
45
|
instanceMatrix;
|
|
44
46
|
/** RGB (and a pad) per instance, once `setColorAt` was called. */
|
|
45
47
|
instanceColor = null;
|
|
46
48
|
boundingSphere = null;
|
|
49
|
+
/** Where the card sits within an instance's space (InstancedLod places it). */
|
|
50
|
+
placement = new Matrix4();
|
|
47
51
|
disposed = false;
|
|
48
52
|
constructor(impostor, count = 1, options = {}, material) {
|
|
49
53
|
validateImpostor(impostor);
|
|
@@ -63,10 +67,6 @@ export class ImpostorMesh extends Mesh {
|
|
|
63
67
|
scratch.identity().toArray(this.instanceMatrix.array, i * 16);
|
|
64
68
|
setDraw(this, { kind: "instances", fades: null, radius: boundingRadius(impostor.box), tint: new Color(1, 1, 1) });
|
|
65
69
|
}
|
|
66
|
-
/** Where the card sits within an instance's space (InstancedLod places it). */
|
|
67
|
-
get placement() {
|
|
68
|
-
return this.material.placement;
|
|
69
|
-
}
|
|
70
70
|
setMatrixAt(index, matrix) {
|
|
71
71
|
matrix.toArray(this.instanceMatrix.array, index * 16);
|
|
72
72
|
this.instanceMatrix.needsUpdate = true;
|
|
@@ -77,8 +77,6 @@ export class ImpostorMesh extends Mesh {
|
|
|
77
77
|
setColorAt(index, color) {
|
|
78
78
|
if (!this.instanceColor) {
|
|
79
79
|
this.instanceColor = new StorageInstancedBufferAttribute(new Float32Array(this.count * 4).fill(1), 4);
|
|
80
|
-
// Instance colours change the shader.
|
|
81
|
-
this.material.needsUpdate = true;
|
|
82
80
|
}
|
|
83
81
|
color.toArray(this.instanceColor.array, index * 4);
|
|
84
82
|
this.instanceColor.needsUpdate = true;
|
|
@@ -109,11 +107,11 @@ export class ImpostorMesh extends Mesh {
|
|
|
109
107
|
}
|
|
110
108
|
this.count = source.count;
|
|
111
109
|
this.options = source.options;
|
|
110
|
+
this.placement.copy(source.placement);
|
|
112
111
|
this.instanceMatrix.dispose();
|
|
113
112
|
this.instanceColor?.dispose();
|
|
114
113
|
this.instanceMatrix = new StorageInstancedBufferAttribute(source.instanceMatrix.array.slice(), 16);
|
|
115
114
|
this.instanceColor = source.instanceColor ? new StorageInstancedBufferAttribute(source.instanceColor.array.slice(), 4) : null;
|
|
116
|
-
this.material.needsUpdate = true;
|
|
117
115
|
this.boundingSphere = source.boundingSphere?.clone() ?? null;
|
|
118
116
|
copyWind(source, this);
|
|
119
117
|
return this;
|
|
@@ -161,10 +159,10 @@ const point = new Vector3();
|
|
|
161
159
|
/**
|
|
162
160
|
* An ImpostorMesh like `template` for `count` instances, its card placed by `placement`
|
|
163
161
|
* within each instance's space (instance matrix × placement), as InstancedLod draws it.
|
|
164
|
-
*
|
|
162
|
+
* Materials and runtime shading are shared; placement is per draw.
|
|
165
163
|
*/
|
|
166
164
|
export function impostorInstances(template, count, placement) {
|
|
167
|
-
const mesh = new ImpostorMesh(template.impostor, count, template.options);
|
|
165
|
+
const mesh = new ImpostorMesh(template.impostor, count, template.options, template.material);
|
|
168
166
|
mesh.placement.copy(placement);
|
|
169
167
|
// A tint and mip bias set on the template, as for a level drawn by a Lod.
|
|
170
168
|
mesh.material.color.copy(template.material.color);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/impostor/mesh/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,KAAK,EACL,OAAO,EACP,IAAI,EACJ,aAAa,EACb,GAAG,EACH,MAAM,EACN,+BAA+B,EAC/B,OAAO,GAGR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAiB,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAmBjD,4CAA4C;AAC5C,SAAS,SAAS,CAAC,OAA4B;IAC7C,MAAM,EAAE,SAAS,GAAG,GAAG,EAAE,QAAQ,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,EAAE,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IACpF,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,SAAS,EAAE,CAAC,CAAC;IACtH,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,QAAQ,EAAE,CAAC,CAAC;IACpI,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,SAAS,EAAE,CAAC,CAAC;IAC/F,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,OAAO,EAAE,CAAC,CAAC;IACzG,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AAE5B
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/impostor/mesh/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,KAAK,EACL,OAAO,EACP,IAAI,EACJ,aAAa,EACb,GAAG,EACH,MAAM,EACN,+BAA+B,EAC/B,OAAO,GAGR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAiB,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAmBjD,4CAA4C;AAC5C,SAAS,SAAS,CAAC,OAA4B;IAC7C,MAAM,EAAE,SAAS,GAAG,GAAG,EAAE,QAAQ,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,EAAE,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IACpF,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,SAAS,EAAE,CAAC,CAAC;IACtH,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,QAAQ,EAAE,CAAC,CAAC;IACpI,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,SAAS,EAAE,CAAC,CAAC;IAC/F,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,OAAO,EAAE,CAAC,CAAC;IACzG,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AAE5B;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,YAAa,SAAQ,IAAqC;IAC5D,cAAc,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAW;IAC5B,iCAAiC;IACjC,OAAO,CAAsB;IAC7B,uBAAuB;IACvB,KAAK,CAAS;IACd,2EAA2E;IAC3E,cAAc,CAAkC;IAChD,kEAAkE;IAClE,aAAa,GAA2C,IAAI,CAAC;IAC7D,cAAc,GAAkB,IAAI,CAAC;IACrC,+EAA+E;IACtE,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;IAC3B,QAAQ,GAAG,KAAK,CAAC;IAEzB,YAAY,QAAkB,EAAE,KAAK,GAAG,CAAC,EAAE,UAA+B,EAAE,EAAE,QAA2B;QACvG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC3B,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACrH,+EAA+E;QAC/E,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,QAAQ,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC7D,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;QAC/E,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,IAAI,IAAI,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,cAAc,GAAG,IAAI,+BAA+B,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE;YAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9F,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACpH,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,MAAe;QACxC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC;IACzC,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,MAAe;QACxC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,UAAU,CAAC,KAAa,EAAE,KAAY;QACpC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,IAAI,+BAA+B,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxG,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;IACxC,CAAC;IAED,UAAU,CAAC,KAAa,EAAE,KAAY;QACpC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3G,CAAC;IAED,gEAAgE;IAChE,qBAAqB;QACnB,IAAI,CAAC,cAAc,KAAK,IAAI,MAAM,EAAE,CAAC;QACrC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACzH,CAAC;IAEQ,IAAI,CAAC,MAAoB,EAAE,SAAmB;QACrD,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QACnH,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACjC,oFAAoF;QACpF,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/B,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,+BAA+B,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACnG,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,+BAA+B,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9H,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC;QAC7D,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,KAAK,CAAC,SAAmB;QAChC,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC7G,mFAAmF;QACnF,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACnG,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8DAA8D;IACrD,OAAO,CAAC,SAAoB,EAAE,UAA0B;QAC/D,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC;gBAAE,SAAS;YAC5C,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC3B,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,QAAQ,GAAG,SAAS,CAAC,IAAI,IAAI,QAAQ,GAAG,SAAS,CAAC,GAAG;gBAAE,SAAS;YACpE,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED,kGAAkG;IAClG,OAAO;QACL,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,wBAAwB;AACxB,MAAM,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;AAC7B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AACtB,MAAM,KAAK,GAAG,IAAI,OAAO,EAAE,CAAC;AAE5B;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAsB,EAAE,KAAa,EAAE,SAAkB;IACzF,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7F,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,0EAA0E;IAC1E,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;IAC9D,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { MeshStandardNodeMaterial, PhysicalLightingModel, type Node, type NodeBuilder } from "three/webgpu";
|
|
2
2
|
import { type Impostor } from "../impostor.js";
|
|
3
3
|
/** How an ImpostorMesh draws: see `ImpostorMeshOptions`. */
|
|
4
|
-
|
|
4
|
+
interface ImpostorShading {
|
|
5
5
|
cutoff: number;
|
|
6
6
|
parallax: number;
|
|
7
7
|
tolerance: number;
|
|
@@ -18,8 +18,6 @@ export declare class ImpostorMaterial extends MeshStandardNodeMaterial {
|
|
|
18
18
|
readonly impostor: Impostor;
|
|
19
19
|
readonly shading: ImpostorShading;
|
|
20
20
|
readonly isImpostorMaterial = true;
|
|
21
|
-
/** Where the card sits within an instance's space; identity except under InstancedLod. */
|
|
22
|
-
readonly placement: Matrix4;
|
|
23
21
|
/** An object-space deformation of every instance (wind), applied before `placement`; null for none. */
|
|
24
22
|
deformNode: Node<"mat4"> | null;
|
|
25
23
|
/** Mip bias of every atlas read: see `ImpostorMeshOptions.mipBias`, which it starts at. */
|
|
@@ -27,6 +25,7 @@ export declare class ImpostorMaterial extends MeshStandardNodeMaterial {
|
|
|
27
25
|
value: number;
|
|
28
26
|
};
|
|
29
27
|
private readonly inputs;
|
|
28
|
+
private readonly specular;
|
|
30
29
|
/**
|
|
31
30
|
* Per build, one surface for every slot that reads it, made when the fragment stage
|
|
32
31
|
* first reads it: TSL adds a node's variables to the stage being built when the node
|
|
@@ -34,10 +33,12 @@ export declare class ImpostorMaterial extends MeshStandardNodeMaterial {
|
|
|
34
33
|
* the builder.
|
|
35
34
|
*/
|
|
36
35
|
private readonly surfaces;
|
|
36
|
+
private readonly multisampled;
|
|
37
37
|
private readonly anchor;
|
|
38
38
|
private users;
|
|
39
39
|
private disposed;
|
|
40
40
|
constructor(impostor: Impostor, shading: ImpostorShading);
|
|
41
|
+
setup(builder: NodeBuilder): void;
|
|
41
42
|
/** One mesh starts or stops sharing this material, including when `copy` replaces it. */
|
|
42
43
|
acquire(): this;
|
|
43
44
|
release(): void;
|
|
@@ -53,7 +54,7 @@ export declare class ImpostorMaterial extends MeshStandardNodeMaterial {
|
|
|
53
54
|
private surface;
|
|
54
55
|
private lit;
|
|
55
56
|
setupLightingModel(): PhysicalLightingModel;
|
|
56
|
-
/**
|
|
57
|
+
/** Baked F0 (RGB) and F90 (A) are uniforms so different asset averages share a shader. */
|
|
57
58
|
setupSpecular(): void;
|
|
58
59
|
/**
|
|
59
60
|
* The view keeps the card's depth, so early depth testing keeps rejecting hidden pixels
|
|
@@ -61,3 +62,4 @@ export declare class ImpostorMaterial extends MeshStandardNodeMaterial {
|
|
|
61
62
|
*/
|
|
62
63
|
setupDepth(builder: NodeBuilder): void;
|
|
63
64
|
}
|
|
65
|
+
export {};
|
|
@@ -1,23 +1,19 @@
|
|
|
1
|
-
import { DoubleSide, Matrix4, MeshStandardNodeMaterial, PhysicalLightingModel, TSL, Vector3 } from "three/webgpu";
|
|
2
|
-
import { Fn, diffuseColor, float,
|
|
3
|
-
import { castPosition,
|
|
1
|
+
import { DoubleSide, Matrix4, MeshStandardNodeMaterial, PhysicalLightingModel, TSL, Vector3, Vector4, } from "three/webgpu";
|
|
2
|
+
import { Fn, diffuseColor, float, materialColor, metalness, mix, specularColor, specularF90, uniform, varyingProperty, vec3, vec4 } from "three/tsl";
|
|
3
|
+
import { castPosition, instanceColor, instanceMatrixOf, tint } from "../../fade.js";
|
|
4
4
|
import { isImpostorMesh, isShadowPass } from "../../three.js";
|
|
5
|
-
import { buildKey,
|
|
5
|
+
import { buildKey, isNodeOf } from "../../tsl.js";
|
|
6
6
|
import { boundingRadius, boxCentre, boxExtent } from "../impostor.js";
|
|
7
7
|
import { buildCard, card } from "./card.js";
|
|
8
8
|
import { buildSurface, cosine } from "./surface.js";
|
|
9
9
|
import { acquireTextures, releaseTextures } from "./textures.js";
|
|
10
|
-
|
|
11
|
-
const singleColor = uniform(new Vector3(1, 1, 1)).onObjectUpdate(({ object }, self) => object && isImpostorMesh(object) && object.instanceColor ? self.value.fromArray(object.instanceColor.array) : self.value.set(1, 1, 1));
|
|
10
|
+
const placement = uniform(new Matrix4()).onObjectUpdate(({ object }, self) => object && isImpostorMesh(object) ? self.value.copy(object.placement) : self.value.identity());
|
|
12
11
|
/** How `object`, an ImpostorMesh, places and colours its instances. */
|
|
13
12
|
function instancesOf(object) {
|
|
14
13
|
const matrix = instanceMatrixOf(object);
|
|
15
14
|
if (!matrix || !isImpostorMesh(object))
|
|
16
15
|
throw new Error(`ImpostorMesh: "${object.name}" is drawn with an impostor's material but is no ImpostorMesh`);
|
|
17
|
-
|
|
18
|
-
return { matrix, color: singleColor };
|
|
19
|
-
const { instanceColor } = object;
|
|
20
|
-
return { matrix, color: instanceColor && varying(instanceColors(instanceColor).element(instanceIndex).xyz).setInterpolation("flat") };
|
|
16
|
+
return { matrix, color: instanceColor };
|
|
21
17
|
}
|
|
22
18
|
/**
|
|
23
19
|
* Draws an impostor: the card (see card.ts) in the vertex stage and the surface (see
|
|
@@ -30,13 +26,12 @@ export class ImpostorMaterial extends MeshStandardNodeMaterial {
|
|
|
30
26
|
impostor;
|
|
31
27
|
shading;
|
|
32
28
|
isImpostorMaterial = true;
|
|
33
|
-
/** Where the card sits within an instance's space; identity except under InstancedLod. */
|
|
34
|
-
placement = new Matrix4();
|
|
35
29
|
/** An object-space deformation of every instance (wind), applied before `placement`; null for none. */
|
|
36
30
|
deformNode = null;
|
|
37
31
|
/** Mip bias of every atlas read: see `ImpostorMeshOptions.mipBias`, which it starts at. */
|
|
38
32
|
mipBias;
|
|
39
33
|
inputs;
|
|
34
|
+
specular;
|
|
40
35
|
/**
|
|
41
36
|
* Per build, one surface for every slot that reads it, made when the fragment stage
|
|
42
37
|
* first reads it: TSL adds a node's variables to the stage being built when the node
|
|
@@ -44,6 +39,7 @@ export class ImpostorMaterial extends MeshStandardNodeMaterial {
|
|
|
44
39
|
* the builder.
|
|
45
40
|
*/
|
|
46
41
|
surfaces = new WeakMap();
|
|
42
|
+
multisampled = new WeakMap();
|
|
47
43
|
anchor = float(0);
|
|
48
44
|
users = 0;
|
|
49
45
|
disposed = false;
|
|
@@ -54,6 +50,7 @@ export class ImpostorMaterial extends MeshStandardNodeMaterial {
|
|
|
54
50
|
this.name = "impostor";
|
|
55
51
|
const textures = acquireTextures(impostor);
|
|
56
52
|
this.mipBias = uniform(shading.mipBias);
|
|
53
|
+
this.specular = uniform(new Vector4().fromArray(impostor.specular ?? [0.04, 0.04, 0.04, 1]));
|
|
57
54
|
const layer = (map) => textures[impostor.maps.indexOf(map)] ?? null;
|
|
58
55
|
const base = layer("base");
|
|
59
56
|
const normalDepth = layer("normalDepth");
|
|
@@ -67,7 +64,7 @@ export class ImpostorMaterial extends MeshStandardNodeMaterial {
|
|
|
67
64
|
radius: uniform(boundingRadius(impostor.box)),
|
|
68
65
|
halfSize: uniform(impostor.halfSize),
|
|
69
66
|
frames: uniform(impostor.frames),
|
|
70
|
-
placement
|
|
67
|
+
placement,
|
|
71
68
|
cell: impostor.size / impostor.frames,
|
|
72
69
|
maps: { base, normalDepth, orm, emissive: layer("emissive") },
|
|
73
70
|
cutoff: shading.cutoff,
|
|
@@ -83,13 +80,13 @@ export class ImpostorMaterial extends MeshStandardNodeMaterial {
|
|
|
83
80
|
return color;
|
|
84
81
|
const rgb = color.rgb.mul(materialColor.rgb).mul(tint);
|
|
85
82
|
const instance = instancesOf(builder.object).color;
|
|
86
|
-
return vec4(
|
|
83
|
+
return vec4(rgb.mul(instance), color.a);
|
|
87
84
|
})();
|
|
88
85
|
this.maskNode = Fn((builder) => this.surface(builder).drawn)();
|
|
89
86
|
this.maskShadowNode = this.maskNode;
|
|
90
87
|
// Shadow passes only (see setupDepth): maps hold the resolved surface, not the card.
|
|
91
|
-
this.depthNode = Fn((builder) => this.surface(builder).depth)();
|
|
92
|
-
this.receivedShadowPositionNode = Fn((builder) => this.surface(builder).shadowPosition)();
|
|
88
|
+
this.depthNode = Fn((builder) => this.surface(builder).resolve().depth)();
|
|
89
|
+
this.receivedShadowPositionNode = Fn((builder) => this.surface(builder).resolve().shadowPosition)();
|
|
93
90
|
this.normalNode = Fn((builder) => this.lit(builder).normal)();
|
|
94
91
|
this.roughnessNode = Fn((builder) => this.lit(builder).roughness)();
|
|
95
92
|
this.metalnessNode = Fn((builder) => this.lit(builder).metalness)();
|
|
@@ -97,6 +94,12 @@ export class ImpostorMaterial extends MeshStandardNodeMaterial {
|
|
|
97
94
|
if (layer("emissive"))
|
|
98
95
|
this.emissiveNode = Fn((builder) => this.lit(builder).emissive ?? vec3(0))();
|
|
99
96
|
}
|
|
97
|
+
setup(builder) {
|
|
98
|
+
// Async shader builds yield between stages; snapshot this pass before the
|
|
99
|
+
// renderer returns to a different target while the fragment stage is pending.
|
|
100
|
+
this.multisampled.set(buildKey(builder, this.anchor), builder.renderer.currentSamples > 1);
|
|
101
|
+
super.setup(builder);
|
|
102
|
+
}
|
|
100
103
|
/** One mesh starts or stops sharing this material, including when `copy` replaces it. */
|
|
101
104
|
acquire() {
|
|
102
105
|
this.users++;
|
|
@@ -133,9 +136,12 @@ export class ImpostorMaterial extends MeshStandardNodeMaterial {
|
|
|
133
136
|
let surface = this.surfaces.get(build);
|
|
134
137
|
if (!surface) {
|
|
135
138
|
const shadow = isShadowPass(builder.material);
|
|
139
|
+
const multisampled = shadow ? false : this.multisampled.get(build);
|
|
140
|
+
if (multisampled === undefined)
|
|
141
|
+
throw new Error("ImpostorMaterial: surface built before pass setup");
|
|
136
142
|
surface = buildSurface(this.inputs, card, {
|
|
137
143
|
parallax: shadow ? 0 : this.shading.parallax,
|
|
138
|
-
multisampled
|
|
144
|
+
multisampled,
|
|
139
145
|
lit: !shadow,
|
|
140
146
|
});
|
|
141
147
|
this.surfaces.set(build, surface);
|
|
@@ -143,23 +149,20 @@ export class ImpostorMaterial extends MeshStandardNodeMaterial {
|
|
|
143
149
|
return surface;
|
|
144
150
|
}
|
|
145
151
|
lit(builder) {
|
|
146
|
-
const
|
|
147
|
-
if (!
|
|
152
|
+
const light = this.surface(builder).light;
|
|
153
|
+
if (!light)
|
|
148
154
|
throw new Error("ImpostorMesh: lighting read in a shadow pass");
|
|
149
|
-
return
|
|
155
|
+
return light();
|
|
150
156
|
}
|
|
151
157
|
setupLightingModel() {
|
|
152
158
|
return new SpreadLighting(Fn((builder) => this.lit(builder).spread)());
|
|
153
159
|
}
|
|
154
|
-
/**
|
|
160
|
+
/** Baked F0 (RGB) and F90 (A) are uniforms so different asset averages share a shader. */
|
|
155
161
|
setupSpecular() {
|
|
156
|
-
const
|
|
157
|
-
if (!specular)
|
|
158
|
-
return super.setupSpecular();
|
|
159
|
-
const f0 = vec3(specular[0], specular[1], specular[2]);
|
|
162
|
+
const f0 = this.specular.rgb;
|
|
160
163
|
specularColor.assign(f0);
|
|
161
164
|
TSL.specularColorBlended.assign(mix(f0, diffuseColor.rgb, metalness));
|
|
162
|
-
specularF90.assign(specular
|
|
165
|
+
specularF90.assign(this.specular.a);
|
|
163
166
|
}
|
|
164
167
|
/**
|
|
165
168
|
* The view keeps the card's depth, so early depth testing keeps rejecting hidden pixels
|