@aura3d/engine 4.1.2 → 4.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 +52 -730
- package/dist/audio/synth/SynthCueBank.d.ts.map +1 -1
- package/dist/audio/synth/SynthCueBank.js +11 -2
- package/dist/audio/synth/SynthCueBank.js.map +1 -1
- package/dist/audio/synth/types.d.ts +4 -0
- package/dist/audio/synth/types.d.ts.map +1 -1
- package/dist/aura3d-cli/cli.d.ts.map +1 -1
- package/dist/aura3d-cli/cli.js +49 -17
- package/dist/aura3d-cli/cli.js.map +1 -1
- package/dist/aura3d-cli/commands/evidence/index.d.ts +3 -0
- package/dist/aura3d-cli/commands/evidence/index.d.ts.map +1 -0
- package/dist/aura3d-cli/commands/evidence/index.js +12 -0
- package/dist/aura3d-cli/commands/evidence/index.js.map +1 -0
- package/dist/aura3d-cli/commands/evidence/judge.d.ts +18 -0
- package/dist/aura3d-cli/commands/evidence/judge.d.ts.map +1 -0
- package/dist/aura3d-cli/commands/evidence/judge.js +194 -0
- package/dist/aura3d-cli/commands/evidence/judge.js.map +1 -0
- package/dist/aura3d-cli/commands/evidence/judgeLib.d.ts +84 -0
- package/dist/aura3d-cli/commands/evidence/judgeLib.d.ts.map +1 -0
- package/dist/aura3d-cli/commands/evidence/judgeLib.js +178 -0
- package/dist/aura3d-cli/commands/evidence/judgeLib.js.map +1 -0
- package/dist/aura3d-cli/commands/registry.d.ts +1 -0
- package/dist/aura3d-cli/commands/registry.d.ts.map +1 -1
- package/dist/aura3d-cli/commands/registry.js +1 -0
- package/dist/aura3d-cli/commands/registry.js.map +1 -1
- package/dist/aura3d-cli/look/capture.d.ts +15 -7
- package/dist/aura3d-cli/look/capture.d.ts.map +1 -1
- package/dist/aura3d-cli/look/capture.js +85 -13
- package/dist/aura3d-cli/look/capture.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge/adapters.d.ts +9 -1
- package/dist/aura3d-cli/pull-bridge/adapters.d.ts.map +1 -1
- package/dist/aura3d-cli/pull-bridge/adapters.js +30 -7
- package/dist/aura3d-cli/pull-bridge/adapters.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge/search.d.ts +5 -0
- package/dist/aura3d-cli/pull-bridge/search.d.ts.map +1 -1
- package/dist/aura3d-cli/pull-bridge/search.js +7 -1
- package/dist/aura3d-cli/pull-bridge/search.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge.js +1 -1
- package/dist/aura3d-cli/pull-bridge.js.map +1 -1
- package/dist/aura3d-cli/resolve-ladder.d.ts +123 -0
- package/dist/aura3d-cli/resolve-ladder.d.ts.map +1 -0
- package/dist/aura3d-cli/resolve-ladder.js +410 -0
- package/dist/aura3d-cli/resolve-ladder.js.map +1 -0
- package/dist/create-aura3d/index.js +1 -1
- package/dist/debug/index.d.ts +2 -2
- package/dist/debug/index.d.ts.map +1 -1
- package/dist/debug/index.js +1 -1
- package/dist/debug/index.js.map +1 -1
- package/dist/debug/safety/frameBoundary.d.ts +33 -0
- package/dist/debug/safety/frameBoundary.d.ts.map +1 -0
- package/dist/debug/safety/frameBoundary.js +40 -0
- package/dist/debug/safety/frameBoundary.js.map +1 -0
- package/dist/debug/safety/index.d.ts +1 -0
- package/dist/debug/safety/index.d.ts.map +1 -1
- package/dist/debug/safety/index.js +1 -0
- package/dist/debug/safety/index.js.map +1 -1
- package/dist/engine/agent-api/app/actorBoneMatrixLookup.d.ts +22 -0
- package/dist/engine/agent-api/app/actorBoneMatrixLookup.d.ts.map +1 -0
- package/dist/engine/agent-api/app/actorBoneMatrixLookup.js +24 -0
- package/dist/engine/agent-api/app/actorBoneMatrixLookup.js.map +1 -0
- package/dist/engine/agent-api/app/canvas.d.ts +16 -0
- package/dist/engine/agent-api/app/canvas.d.ts.map +1 -1
- package/dist/engine/agent-api/app/canvas.js +15 -0
- package/dist/engine/agent-api/app/canvas.js.map +1 -1
- package/dist/engine/agent-api/app/createAuraApp.d.ts.map +1 -1
- package/dist/engine/agent-api/app/createAuraApp.js +21 -3
- package/dist/engine/agent-api/app/createAuraApp.js.map +1 -1
- package/dist/engine/agent-api/app/frameLoop.d.ts.map +1 -1
- package/dist/engine/agent-api/app/frameLoop.js +21 -3
- package/dist/engine/agent-api/app/frameLoop.js.map +1 -1
- package/dist/engine/agent-api/app/mountFailure.d.ts +6 -0
- package/dist/engine/agent-api/app/mountFailure.d.ts.map +1 -0
- package/dist/engine/agent-api/app/mountFailure.js +9 -0
- package/dist/engine/agent-api/app/mountFailure.js.map +1 -0
- package/dist/engine/agent-api/app/parentFit.d.ts +35 -0
- package/dist/engine/agent-api/app/parentFit.d.ts.map +1 -0
- package/dist/engine/agent-api/app/parentFit.js +36 -0
- package/dist/engine/agent-api/app/parentFit.js.map +1 -0
- package/dist/engine/agent-api/compiler/customMaterial.js +3 -2
- package/dist/engine/agent-api/compiler/customMaterial.js.map +1 -1
- package/dist/engine/agent-api/compiler/geometry.d.ts +13 -0
- package/dist/engine/agent-api/compiler/geometry.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/geometry.js +30 -3
- package/dist/engine/agent-api/compiler/geometry.js.map +1 -1
- package/dist/engine/agent-api/compiler/primitives.d.ts +1 -2
- package/dist/engine/agent-api/compiler/primitives.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/primitives.js +21 -4
- package/dist/engine/agent-api/compiler/primitives.js.map +1 -1
- package/dist/engine/agent-api/index.d.ts +4 -0
- package/dist/engine/agent-api/index.d.ts.map +1 -1
- package/dist/engine/agent-api/index.js +1 -0
- package/dist/engine/agent-api/index.js.map +1 -1
- package/dist/engine/agent-api/nodes/batched.d.ts +10 -0
- package/dist/engine/agent-api/nodes/batched.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/batched.js +7 -5
- package/dist/engine/agent-api/nodes/batched.js.map +1 -1
- package/dist/engine/agent-api/nodes/builder.d.ts +13 -0
- package/dist/engine/agent-api/nodes/builder.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/builder.js +7 -3
- package/dist/engine/agent-api/nodes/builder.js.map +1 -1
- package/dist/engine/agent-api/nodes/cameras.d.ts +7 -0
- package/dist/engine/agent-api/nodes/cameras.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/cameras.js +7 -0
- package/dist/engine/agent-api/nodes/cameras.js.map +1 -1
- package/dist/engine/agent-api/nodes/chaseCamera.d.ts +122 -0
- package/dist/engine/agent-api/nodes/chaseCamera.d.ts.map +1 -0
- package/dist/engine/agent-api/nodes/chaseCamera.js +130 -0
- package/dist/engine/agent-api/nodes/chaseCamera.js.map +1 -0
- package/dist/engine/agent-api/nodes/effects.composite.d.ts +1 -0
- package/dist/engine/agent-api/nodes/effects.composite.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/effects.composite.js +2 -0
- package/dist/engine/agent-api/nodes/effects.composite.js.map +1 -1
- package/dist/engine/agent-api/nodes/effects.toon.d.ts +26 -0
- package/dist/engine/agent-api/nodes/effects.toon.d.ts.map +1 -0
- package/dist/engine/agent-api/nodes/effects.toon.js +70 -0
- package/dist/engine/agent-api/nodes/effects.toon.js.map +1 -0
- package/dist/engine/agent-api/nodes/instancedMesh.d.ts +10 -0
- package/dist/engine/agent-api/nodes/instancedMesh.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/instancedMesh.js +7 -5
- package/dist/engine/agent-api/nodes/instancedMesh.js.map +1 -1
- package/dist/engine/agent-api/nodes/prefabs/index.d.ts +3 -0
- package/dist/engine/agent-api/nodes/prefabs/index.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/prefabs/index.js +3 -0
- package/dist/engine/agent-api/nodes/prefabs/index.js.map +1 -1
- package/dist/engine/agent-api/nodes/prefabs/objectiveMarker.d.ts +32 -0
- package/dist/engine/agent-api/nodes/prefabs/objectiveMarker.d.ts.map +1 -0
- package/dist/engine/agent-api/nodes/prefabs/objectiveMarker.js +77 -0
- package/dist/engine/agent-api/nodes/prefabs/objectiveMarker.js.map +1 -0
- package/dist/engine/lanes/prd06.d.ts.map +1 -1
- package/dist/engine/lanes/prd06.js +1 -16
- package/dist/engine/lanes/prd06.js.map +1 -1
- package/dist/engine/production-runtime/actor/ModelTextureShare.d.ts +1 -1
- package/dist/engine/production-runtime/actor/ModelTextureShare.d.ts.map +1 -1
- package/dist/engine/production-runtime/actor/ModelTextureShare.js +1 -1
- package/dist/engine/production-runtime/actor/ModelTextureShare.js.map +1 -1
- package/dist/engine/public/index.d.ts +52 -67
- package/dist/engine/public/index.d.ts.map +1 -1
- package/dist/engine/public/index.js +59 -56
- package/dist/engine/public/index.js.map +1 -1
- package/dist/engine/qa/countedRng.d.ts +2 -0
- package/dist/engine/qa/countedRng.d.ts.map +1 -1
- package/dist/engine/qa/countedRng.js +3 -0
- package/dist/engine/qa/countedRng.js.map +1 -1
- package/dist/engine/qa/fixedStepLoop.d.ts +4 -0
- package/dist/engine/qa/fixedStepLoop.d.ts.map +1 -1
- package/dist/engine/qa/fixedStepLoop.js +6 -0
- package/dist/engine/qa/fixedStepLoop.js.map +1 -1
- package/dist/engine/qa/hooks.js +1 -1
- package/dist/engine/qa/hooks.js.map +1 -1
- package/dist/game/evidence/beacon.d.ts +16 -6
- package/dist/game/evidence/beacon.d.ts.map +1 -1
- package/dist/game/evidence/beacon.js +32 -14
- package/dist/game/evidence/beacon.js.map +1 -1
- package/dist/game/evidence/textureStatus.d.ts +24 -0
- package/dist/game/evidence/textureStatus.d.ts.map +1 -0
- package/dist/game/evidence/textureStatus.js +27 -0
- package/dist/game/evidence/textureStatus.js.map +1 -0
- package/dist/game/hud/canvasMinimap.d.ts +60 -0
- package/dist/game/hud/canvasMinimap.d.ts.map +1 -0
- package/dist/game/hud/canvasMinimap.js +62 -0
- package/dist/game/hud/canvasMinimap.js.map +1 -0
- package/dist/game/hud/compass.d.ts +16 -0
- package/dist/game/hud/compass.d.ts.map +1 -0
- package/dist/game/hud/compass.js +15 -0
- package/dist/game/hud/compass.js.map +1 -0
- package/dist/game/index.d.ts +9 -0
- package/dist/game/index.d.ts.map +1 -1
- package/dist/game/index.js +5 -0
- package/dist/game/index.js.map +1 -1
- package/dist/game/motion/boneAttach.d.ts +42 -0
- package/dist/game/motion/boneAttach.d.ts.map +1 -0
- package/dist/game/motion/boneAttach.js +166 -0
- package/dist/game/motion/boneAttach.js.map +1 -0
- package/dist/game/motion/cameraClear.d.ts +35 -0
- package/dist/game/motion/cameraClear.d.ts.map +1 -0
- package/dist/game/motion/cameraClear.js +64 -0
- package/dist/game/motion/cameraClear.js.map +1 -0
- package/dist/game/motion/doubleFrame.d.ts +37 -0
- package/dist/game/motion/doubleFrame.d.ts.map +1 -0
- package/dist/game/motion/doubleFrame.js +59 -0
- package/dist/game/motion/doubleFrame.js.map +1 -0
- package/dist/game/motion/footSlide.d.ts +32 -0
- package/dist/game/motion/footSlide.d.ts.map +1 -0
- package/dist/game/motion/footSlide.js +59 -0
- package/dist/game/motion/footSlide.js.map +1 -0
- package/dist/game/motion/impact.d.ts +113 -0
- package/dist/game/motion/impact.d.ts.map +1 -0
- package/dist/game/motion/impact.js +233 -0
- package/dist/game/motion/impact.js.map +1 -0
- package/dist/game/motion/index.d.ts +19 -0
- package/dist/game/motion/index.d.ts.map +1 -0
- package/dist/game/motion/index.js +10 -0
- package/dist/game/motion/index.js.map +1 -0
- package/dist/game/motion/locomotion.d.ts +55 -0
- package/dist/game/motion/locomotion.d.ts.map +1 -0
- package/dist/game/motion/locomotion.js +107 -0
- package/dist/game/motion/locomotion.js.map +1 -0
- package/dist/game/motion/motionGate.d.ts +41 -0
- package/dist/game/motion/motionGate.d.ts.map +1 -0
- package/dist/game/motion/motionGate.js +71 -0
- package/dist/game/motion/motionGate.js.map +1 -0
- package/dist/game/motion/presenter.d.ts +37 -0
- package/dist/game/motion/presenter.d.ts.map +1 -0
- package/dist/game/motion/presenter.js +72 -0
- package/dist/game/motion/presenter.js.map +1 -0
- package/dist/game/motion/smoothing.d.ts +34 -0
- package/dist/game/motion/smoothing.d.ts.map +1 -0
- package/dist/game/motion/smoothing.js +92 -0
- package/dist/game/motion/smoothing.js.map +1 -0
- package/dist/game/session/warmPrograms.d.ts +58 -0
- package/dist/game/session/warmPrograms.d.ts.map +1 -0
- package/dist/game/session/warmPrograms.js +63 -0
- package/dist/game/session/warmPrograms.js.map +1 -0
- package/dist/math/Random.d.ts +3 -0
- package/dist/math/Random.d.ts.map +1 -1
- package/dist/math/Random.js +7 -0
- package/dist/math/Random.js.map +1 -1
- package/dist/rendering/WebGL2Device.d.ts.map +1 -1
- package/dist/rendering/WebGL2Device.js +3 -4
- package/dist/rendering/WebGL2Device.js.map +1 -1
- package/dist/rendering/environment/EnvironmentCache.d.ts.map +1 -1
- package/dist/rendering/environment/EnvironmentCache.js +6 -1
- package/dist/rendering/environment/EnvironmentCache.js.map +1 -1
- package/dist/rendering/environment/neutralEmbedded.d.ts +5 -0
- package/dist/rendering/environment/neutralEmbedded.d.ts.map +1 -0
- package/dist/rendering/environment/neutralEmbedded.js +1118 -0
- package/dist/rendering/environment/neutralEmbedded.js.map +1 -0
- package/dist/rendering/environment/neutralEmbeddedLoader.d.ts +5 -0
- package/dist/rendering/environment/neutralEmbeddedLoader.d.ts.map +1 -0
- package/dist/rendering/environment/neutralEmbeddedLoader.js +32 -0
- package/dist/rendering/environment/neutralEmbeddedLoader.js.map +1 -0
- package/dist/rendering/geometry/Primitives.d.ts +4 -1
- package/dist/rendering/geometry/Primitives.d.ts.map +1 -1
- package/dist/rendering/geometry/Primitives.js +5 -1
- package/dist/rendering/geometry/Primitives.js.map +1 -1
- package/dist/rendering/renderer/CullingBatching.d.ts.map +1 -1
- package/dist/rendering/renderer/CullingBatching.js +3 -7
- package/dist/rendering/renderer/CullingBatching.js.map +1 -1
- package/dist/rendering/renderer/InstanceBounds.d.ts +18 -0
- package/dist/rendering/renderer/InstanceBounds.d.ts.map +1 -0
- package/dist/rendering/renderer/InstanceBounds.js +68 -0
- package/dist/rendering/renderer/InstanceBounds.js.map +1 -0
- package/dist/rendering/renderer/RenderShared.d.ts.map +1 -1
- package/dist/rendering/renderer/RenderShared.js +3 -7
- package/dist/rendering/renderer/RenderShared.js.map +1 -1
- package/dist/rendering/shadows/DirectionalCascadeFitter.d.ts.map +1 -1
- package/dist/rendering/shadows/DirectionalCascadeFitter.js +19 -10
- package/dist/rendering/shadows/DirectionalCascadeFitter.js.map +1 -1
- package/dist/rendering/webgl2/LdrPostprocessShader.d.ts +24 -0
- package/dist/rendering/webgl2/LdrPostprocessShader.d.ts.map +1 -0
- package/dist/rendering/webgl2/LdrPostprocessShader.js +233 -0
- package/dist/rendering/webgl2/LdrPostprocessShader.js.map +1 -0
- package/dist/rendering/webgl2/LegacyPost.d.ts +5 -3
- package/dist/rendering/webgl2/LegacyPost.d.ts.map +1 -1
- package/dist/rendering/webgl2/LegacyPost.js +23 -191
- package/dist/rendering/webgl2/LegacyPost.js.map +1 -1
- package/package.json +25 -25
- package/templates/cinematic-scene/package.json +4 -3
- package/templates/mini-game/index.html +3 -1
- package/templates/mini-game/package.json +4 -3
- package/templates/mini-game/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
- package/templates/mini-game/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
- package/templates/mini-game/src/main.ts +1 -1
- package/templates/product-viewer/package.json +4 -3
- package/templates/production-asset-inspector/package.json +1 -1
- package/templates/production-material-studio/package.json +1 -1
- package/templates/production-product-configurator/package.json +1 -1
- package/templates/production-product-viewer/package.json +1 -1
|
@@ -5,10 +5,13 @@ export class AuraNodeBuilder {
|
|
|
5
5
|
this.value = value;
|
|
6
6
|
}
|
|
7
7
|
position(x, y, z) {
|
|
8
|
-
|
|
8
|
+
const v = typeof x === "number" ? [x, y, z] : [x[0], x[1], x[2]];
|
|
9
|
+
return this.with({ position: v });
|
|
9
10
|
}
|
|
10
11
|
rotate(x, y, z, order) {
|
|
11
|
-
|
|
12
|
+
const vec = typeof x === "number" ? [x, y, z] : [x[0], x[1], x[2]];
|
|
13
|
+
const eulerOrder = typeof x === "number" ? order : y;
|
|
14
|
+
return this.with(eulerOrder === undefined ? { rotation: vec } : { rotation: vec, rotationOrder: eulerOrder });
|
|
12
15
|
}
|
|
13
16
|
/** C-06 (PR 0a): quaternion rotation; wins over `rotation` in the compiled transform. */
|
|
14
17
|
quaternion(x, y, z, w) {
|
|
@@ -18,7 +21,8 @@ export class AuraNodeBuilder {
|
|
|
18
21
|
return this.with({ scale: value });
|
|
19
22
|
}
|
|
20
23
|
lookAt(x, y, z) {
|
|
21
|
-
|
|
24
|
+
const v = typeof x === "number" ? [x, y, z] : [x[0], x[1], x[2]];
|
|
25
|
+
return this.with({ lookAt: v });
|
|
22
26
|
}
|
|
23
27
|
material(material) {
|
|
24
28
|
return this.with({ material });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/nodes/builder.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAI/G,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/nodes/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import type { AuraCameraSpec, AuraSceneNode, AuraTransformSpec, AuraVec3 } from "./types.js";
|
|
12
12
|
import { AuraNodeBuilder } from "./builder.js";
|
|
13
|
+
import { type ChaseOptions, type ChaseRig } from "./chaseCamera.js";
|
|
13
14
|
export type AuraStereoLayout = "side-by-side" | "over-under";
|
|
14
15
|
/** Normalized viewport in [0, 1] of the render target, origin bottom-left (three/WebGL convention). */
|
|
15
16
|
export interface AuraCameraViewport {
|
|
@@ -90,6 +91,12 @@ export declare function isAuraCubeCameraNode(node: {
|
|
|
90
91
|
readonly kind: "cube-camera";
|
|
91
92
|
};
|
|
92
93
|
export declare const cameras: {
|
|
94
|
+
/**
|
|
95
|
+
* Gameplay chase camera rig (runtime controller, not a scene node): feed it the followed target each frame and apply
|
|
96
|
+
* the returned pose with `app.camera.setPose`. Offset mode places the eye behind and the look target ahead; framed mode
|
|
97
|
+
* (`wantEye`/`wantLook`) only smooths. See `docs/api/camera-rig.md`.
|
|
98
|
+
*/
|
|
99
|
+
readonly chase: (options?: ChaseOptions) => ChaseRig;
|
|
93
100
|
/**
|
|
94
101
|
* three's `new CubeCamera(near, far, renderTarget)` — cube render target via
|
|
95
102
|
* `Renderer.renderProbeFace`; consume the capture through
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cameras.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/nodes/cameras.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"cameras.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/nodes/cameras.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
import { AuraNodeBuilder } from "./builder.js";
|
|
12
12
|
import { AuraRuntimeError } from "../compiler/errors.js";
|
|
13
13
|
import { STEREO_DEFAULT_EYE_SEPARATION, STEREO_DEFAULT_FOCUS } from "../stereoMath.js";
|
|
14
|
+
import { createChaseRig } from "./chaseCamera.js";
|
|
14
15
|
export function isAuraCameraArrayNode(node) {
|
|
15
16
|
return node.kind === "camera-array";
|
|
16
17
|
}
|
|
@@ -37,6 +38,12 @@ export function isAuraCubeCameraNode(node) {
|
|
|
37
38
|
return node.kind === "cube-camera";
|
|
38
39
|
}
|
|
39
40
|
export const cameras = {
|
|
41
|
+
/**
|
|
42
|
+
* Gameplay chase camera rig (runtime controller, not a scene node): feed it the followed target each frame and apply
|
|
43
|
+
* the returned pose with `app.camera.setPose`. Offset mode places the eye behind and the look target ahead; framed mode
|
|
44
|
+
* (`wantEye`/`wantLook`) only smooths. See `docs/api/camera-rig.md`.
|
|
45
|
+
*/
|
|
46
|
+
chase: (options = {}) => createChaseRig(options),
|
|
40
47
|
/**
|
|
41
48
|
* three's `new CubeCamera(near, far, renderTarget)` — cube render target via
|
|
42
49
|
* `Renderer.renderProbeFace`; consume the capture through
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cameras.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/nodes/cameras.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"cameras.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/nodes/cameras.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `cameras.chase`: the gameplay chase camera rig shared by the Crayon ports.
|
|
3
|
+
*
|
|
4
|
+
* Pure, deterministic math (no DOM, no clock, no randomness): the caller feeds the followed target each frame and
|
|
5
|
+
* applies the returned pose with `app.camera.setPose`. Two ways to drive it:
|
|
6
|
+
* - offset mode: pass `position`, `heading`, `speed` and the rig places the eye behind and the look target ahead using
|
|
7
|
+
* `offset`, smooths the follow heading, eye, look and fov with `lag`, opens the fov with `fovKick` and adds shake;
|
|
8
|
+
* - framed mode: pass `wantEye` / `wantLook` (and optionally `fovTarget`) computed on a road frame, a rail or a menu orbit,
|
|
9
|
+
* and the rig only does the exponential smoothing, the first-frame snap and the cut flag.
|
|
10
|
+
* A lag rate is a per-second exponential rate (`1 - exp(-rate * dt)`); `Infinity` (or an absent lag) follows exactly.
|
|
11
|
+
*/
|
|
12
|
+
export type ChaseVec3 = readonly [number, number, number];
|
|
13
|
+
export interface ChaseOffset {
|
|
14
|
+
/** Distance behind the target along the follow heading. */
|
|
15
|
+
readonly back?: number;
|
|
16
|
+
readonly backPerSpeed?: number;
|
|
17
|
+
/** Extra distance while `boosting`. */
|
|
18
|
+
readonly backBoost?: number;
|
|
19
|
+
/** Eye height above the target. */
|
|
20
|
+
readonly up?: number;
|
|
21
|
+
readonly upPerSpeed?: number;
|
|
22
|
+
/** The eye never drops below `groundAt(x, z) + minAboveGround` when the target supplies `groundAt`. */
|
|
23
|
+
readonly minAboveGround?: number;
|
|
24
|
+
/** Look target lead ahead of the target. */
|
|
25
|
+
readonly lead?: number;
|
|
26
|
+
readonly leadPerSpeed?: number;
|
|
27
|
+
/** Look target height above the target. */
|
|
28
|
+
readonly lookUp?: number;
|
|
29
|
+
}
|
|
30
|
+
export interface ChaseLag {
|
|
31
|
+
readonly eye?: number;
|
|
32
|
+
readonly look?: number;
|
|
33
|
+
readonly fov?: number;
|
|
34
|
+
/** Follow-heading rate at full speed (offset mode). */
|
|
35
|
+
readonly heading?: number;
|
|
36
|
+
/** Fraction of the heading rate applied at standstill (default 1: no speed ramp). */
|
|
37
|
+
readonly headingMinFollow?: number;
|
|
38
|
+
/** Speed at which the heading follow reaches its full rate (default 15). */
|
|
39
|
+
readonly headingFullSpeed?: number;
|
|
40
|
+
}
|
|
41
|
+
export interface ChaseFovKick {
|
|
42
|
+
readonly base?: number;
|
|
43
|
+
readonly perSpeed?: number;
|
|
44
|
+
/** Cap on the speed-driven opening. */
|
|
45
|
+
readonly maxSpeedKick?: number;
|
|
46
|
+
/** Extra fov while `boosting`. */
|
|
47
|
+
readonly boost?: number;
|
|
48
|
+
}
|
|
49
|
+
export interface ChaseShake {
|
|
50
|
+
/** Amplitude per unit of the target's `shake` value. */
|
|
51
|
+
readonly perShake?: number;
|
|
52
|
+
/** Speed above which a speed-driven shake begins, the speed span to full strength and its amplitude. */
|
|
53
|
+
readonly speedStart?: number;
|
|
54
|
+
readonly speedRange?: number;
|
|
55
|
+
readonly speedAmp?: number;
|
|
56
|
+
readonly boostAmp?: number;
|
|
57
|
+
/** Target `shake` values at or below this (with no speed shake) add nothing. */
|
|
58
|
+
readonly threshold?: number;
|
|
59
|
+
/** Vertical share of the amplitude and the wobble phase of the vertical axis. */
|
|
60
|
+
readonly verticalScale?: number;
|
|
61
|
+
readonly verticalPhase?: number;
|
|
62
|
+
/** `accumulate` adds the wobble into the smoothed eye state (a low-passed shake); `overlay` adds it to the output only. */
|
|
63
|
+
readonly mode?: "accumulate" | "overlay";
|
|
64
|
+
}
|
|
65
|
+
export interface ChaseOptions {
|
|
66
|
+
readonly offset?: ChaseOffset;
|
|
67
|
+
readonly lag?: ChaseLag;
|
|
68
|
+
readonly fovKick?: ChaseFovKick;
|
|
69
|
+
readonly shake?: ChaseShake;
|
|
70
|
+
/** Pose used by `snap` in offset mode. */
|
|
71
|
+
readonly snapOffset?: {
|
|
72
|
+
readonly back: number;
|
|
73
|
+
readonly up: number;
|
|
74
|
+
readonly lead: number;
|
|
75
|
+
readonly lookUp: number;
|
|
76
|
+
readonly fov: number;
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
export interface ChaseTarget {
|
|
80
|
+
readonly position?: ChaseVec3;
|
|
81
|
+
/** Heading in radians; forward is `(sin h, cos h)` on x/z. */
|
|
82
|
+
readonly heading?: number;
|
|
83
|
+
readonly speed?: number;
|
|
84
|
+
readonly boosting?: boolean;
|
|
85
|
+
/** Target shake amount, scaled by `shake.perShake`. */
|
|
86
|
+
readonly shake?: number;
|
|
87
|
+
readonly groundAt?: (x: number, z: number) => number;
|
|
88
|
+
/** Framed mode: desired eye and look (replace the offset placement). */
|
|
89
|
+
readonly wantEye?: ChaseVec3;
|
|
90
|
+
readonly wantLook?: ChaseVec3;
|
|
91
|
+
/** Desired fov (replaces the base + kick formula). */
|
|
92
|
+
readonly fovTarget?: number;
|
|
93
|
+
/** Per-step lag override (kid-goku style per-phase rates). */
|
|
94
|
+
readonly lag?: ChaseLag;
|
|
95
|
+
/** Added to the eye after smoothing, never stored (damage shake, camera bob). */
|
|
96
|
+
readonly shakeOffset?: ChaseVec3;
|
|
97
|
+
/** Snap eye, look and fov to their targets this step. */
|
|
98
|
+
readonly cut?: boolean;
|
|
99
|
+
}
|
|
100
|
+
export interface ChasePose {
|
|
101
|
+
eye: [number, number, number];
|
|
102
|
+
look: [number, number, number];
|
|
103
|
+
fov: number;
|
|
104
|
+
/** Smoothed follow heading. */
|
|
105
|
+
heading: number;
|
|
106
|
+
/** Rig clock (sum of dt), drives the shake wobble. */
|
|
107
|
+
time: number;
|
|
108
|
+
/** True when this step snapped instead of smoothing: pass it as `setPose`'s `cut`. */
|
|
109
|
+
cut: boolean;
|
|
110
|
+
}
|
|
111
|
+
export interface ChaseRig {
|
|
112
|
+
readonly pose: ChasePose;
|
|
113
|
+
/** Place the rig exactly on its targets with no smoothing. */
|
|
114
|
+
snap(target: ChaseTarget): ChasePose;
|
|
115
|
+
step(target: ChaseTarget, dt: number): ChasePose;
|
|
116
|
+
/** Forget the pose: the next `step` snaps. */
|
|
117
|
+
reset(): void;
|
|
118
|
+
}
|
|
119
|
+
export declare function approach(current: number, target: number, rate: number, dt: number): number;
|
|
120
|
+
export declare function approachAngle(current: number, target: number, rate: number, dt: number): number;
|
|
121
|
+
export declare function createChaseRig(options?: ChaseOptions): ChaseRig;
|
|
122
|
+
//# sourceMappingURL=chaseCamera.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chaseCamera.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/nodes/chaseCamera.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `cameras.chase`: the gameplay chase camera rig shared by the Crayon ports.
|
|
3
|
+
*
|
|
4
|
+
* Pure, deterministic math (no DOM, no clock, no randomness): the caller feeds the followed target each frame and
|
|
5
|
+
* applies the returned pose with `app.camera.setPose`. Two ways to drive it:
|
|
6
|
+
* - offset mode: pass `position`, `heading`, `speed` and the rig places the eye behind and the look target ahead using
|
|
7
|
+
* `offset`, smooths the follow heading, eye, look and fov with `lag`, opens the fov with `fovKick` and adds shake;
|
|
8
|
+
* - framed mode: pass `wantEye` / `wantLook` (and optionally `fovTarget`) computed on a road frame, a rail or a menu orbit,
|
|
9
|
+
* and the rig only does the exponential smoothing, the first-frame snap and the cut flag.
|
|
10
|
+
* A lag rate is a per-second exponential rate (`1 - exp(-rate * dt)`); `Infinity` (or an absent lag) follows exactly.
|
|
11
|
+
*/
|
|
12
|
+
export function approach(current, target, rate, dt) {
|
|
13
|
+
if (!(rate < Infinity))
|
|
14
|
+
return target;
|
|
15
|
+
return current + (target - current) * (1 - Math.exp(-rate * dt));
|
|
16
|
+
}
|
|
17
|
+
export function approachAngle(current, target, rate, dt) {
|
|
18
|
+
let d = target - current;
|
|
19
|
+
while (d > Math.PI)
|
|
20
|
+
d -= 2 * Math.PI;
|
|
21
|
+
while (d < -Math.PI)
|
|
22
|
+
d += 2 * Math.PI;
|
|
23
|
+
return current + d * (rate < Infinity ? 1 - Math.exp(-rate * dt) : 1);
|
|
24
|
+
}
|
|
25
|
+
const clamp = (v, lo, hi) => Math.min(hi, Math.max(lo, v));
|
|
26
|
+
const wobble = (t, amp, phase) => (0.62 * Math.sin(t * (6.1 + phase)) + 0.38 * Math.sin(t * (11.3 + 1.7 * phase))) * amp;
|
|
27
|
+
export function createChaseRig(options = {}) {
|
|
28
|
+
const o = options.offset ?? {};
|
|
29
|
+
const baseLag = options.lag ?? {};
|
|
30
|
+
const kick = options.fovKick ?? {};
|
|
31
|
+
const sh = options.shake;
|
|
32
|
+
const snapO = options.snapOffset ?? { back: (o.back ?? 6) + 4.7, up: (o.up ?? 2.5) + 1.8, lead: o.lead ?? 5, lookUp: o.lookUp ?? 1.25, fov: kick.base ?? 56 };
|
|
33
|
+
const pose = { eye: [0, 0, 0], look: [0, 0, 0], fov: kick.base ?? 56, heading: 0, time: 0, cut: true };
|
|
34
|
+
let live = false;
|
|
35
|
+
const wantFov = (t, speed) => t.fovTarget ?? (kick.base ?? 56) + clamp((kick.perSpeed ?? 0) * speed, 0, kick.maxSpeedKick ?? Infinity) + (t.boosting ? kick.boost ?? 0 : 0);
|
|
36
|
+
const snap = (t) => {
|
|
37
|
+
const p = t.position ?? [0, 0, 0];
|
|
38
|
+
const h = t.heading ?? 0;
|
|
39
|
+
const s = Math.sin(h);
|
|
40
|
+
const c = Math.cos(h);
|
|
41
|
+
pose.heading = h;
|
|
42
|
+
pose.time = 0;
|
|
43
|
+
pose.cut = true;
|
|
44
|
+
if (t.wantEye && t.wantLook) {
|
|
45
|
+
pose.eye = [t.wantEye[0], t.wantEye[1], t.wantEye[2]];
|
|
46
|
+
pose.look = [t.wantLook[0], t.wantLook[1], t.wantLook[2]];
|
|
47
|
+
pose.fov = wantFov(t, Math.abs(t.speed ?? 0));
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
pose.eye = [p[0] - snapO.back * s, p[1] + snapO.up, p[2] - snapO.back * c];
|
|
51
|
+
pose.look = [p[0] + snapO.lead * s, p[1] + snapO.lookUp, p[2] + snapO.lead * c];
|
|
52
|
+
pose.fov = snapO.fov;
|
|
53
|
+
}
|
|
54
|
+
live = true;
|
|
55
|
+
return pose;
|
|
56
|
+
};
|
|
57
|
+
const step = (t, dt) => {
|
|
58
|
+
if (!live || t.cut) {
|
|
59
|
+
snap(t);
|
|
60
|
+
return finish(t);
|
|
61
|
+
}
|
|
62
|
+
pose.cut = false;
|
|
63
|
+
pose.time += dt;
|
|
64
|
+
const lag = t.lag ? { ...baseLag, ...t.lag } : baseLag;
|
|
65
|
+
const speed = Math.abs(t.speed ?? 0);
|
|
66
|
+
let wantEye;
|
|
67
|
+
let wantLook;
|
|
68
|
+
if (t.wantEye && t.wantLook) {
|
|
69
|
+
wantEye = t.wantEye;
|
|
70
|
+
wantLook = t.wantLook;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
const p = t.position ?? [0, 0, 0];
|
|
74
|
+
const follow = (lag.headingMinFollow ?? 1) + (1 - (lag.headingMinFollow ?? 1)) * clamp(speed / (lag.headingFullSpeed ?? 15), 0, 1);
|
|
75
|
+
pose.heading = approachAngle(pose.heading, t.heading ?? 0, (lag.heading ?? Infinity) * follow, dt);
|
|
76
|
+
const sn = Math.sin(pose.heading);
|
|
77
|
+
const cs = Math.cos(pose.heading);
|
|
78
|
+
const back = (o.back ?? 6) + (o.backPerSpeed ?? 0) * speed + (t.boosting ? o.backBoost ?? 0 : 0);
|
|
79
|
+
let ey = p[1] + (o.up ?? 2.5) + (o.upPerSpeed ?? 0) * speed;
|
|
80
|
+
const tx = p[0] - sn * back;
|
|
81
|
+
const tz = p[2] - cs * back;
|
|
82
|
+
if (t.groundAt && o.minAboveGround !== undefined)
|
|
83
|
+
ey = Math.max(ey, t.groundAt(tx, tz) + o.minAboveGround);
|
|
84
|
+
const lead = (o.lead ?? 5) + (o.leadPerSpeed ?? 0) * speed;
|
|
85
|
+
wantEye = [tx, ey, tz];
|
|
86
|
+
wantLook = [p[0] + sn * lead, p[1] + (o.lookUp ?? 1.25), p[2] + cs * lead];
|
|
87
|
+
}
|
|
88
|
+
const eyeRate = lag.eye ?? Infinity;
|
|
89
|
+
const lookRate = lag.look ?? Infinity;
|
|
90
|
+
pose.eye = [approach(pose.eye[0], wantEye[0], eyeRate, dt), approach(pose.eye[1], wantEye[1], eyeRate, dt), approach(pose.eye[2], wantEye[2], eyeRate, dt)];
|
|
91
|
+
if (sh && (sh.mode ?? "accumulate") === "accumulate") {
|
|
92
|
+
const speedShake = (sh.speedAmp ?? 0) * clamp((speed - (sh.speedStart ?? 0)) / (sh.speedRange ?? 1), 0, 1) + (t.boosting ? sh.boostAmp ?? 0 : 0);
|
|
93
|
+
const shake = t.shake ?? 0;
|
|
94
|
+
if (shake > (sh.threshold ?? 0) || speedShake > 0) {
|
|
95
|
+
const amp = (sh.perShake ?? 1) * shake + speedShake;
|
|
96
|
+
pose.eye[0] += wobble(pose.time, amp, 0);
|
|
97
|
+
pose.eye[1] += wobble(pose.time, (sh.verticalScale ?? 0.7) * amp, sh.verticalPhase ?? 1.3);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
pose.look = [approach(pose.look[0], wantLook[0], lookRate, dt), approach(pose.look[1], wantLook[1], lookRate, dt), approach(pose.look[2], wantLook[2], lookRate, dt)];
|
|
101
|
+
pose.fov = approach(pose.fov, wantFov(t, speed), lag.fov ?? Infinity, dt);
|
|
102
|
+
return finish(t);
|
|
103
|
+
};
|
|
104
|
+
const finish = (t) => {
|
|
105
|
+
if (sh && sh.mode === "overlay") {
|
|
106
|
+
const speed = Math.abs(t.speed ?? 0);
|
|
107
|
+
const speedShake = (sh.speedAmp ?? 0) * clamp((speed - (sh.speedStart ?? 0)) / (sh.speedRange ?? 1), 0, 1) + (t.boosting ? sh.boostAmp ?? 0 : 0);
|
|
108
|
+
const shake = t.shake ?? 0;
|
|
109
|
+
if (shake > (sh.threshold ?? 0) || speedShake > 0) {
|
|
110
|
+
const amp = (sh.perShake ?? 1) * shake + speedShake;
|
|
111
|
+
const out = { ...pose, eye: [pose.eye[0] + wobble(pose.time, amp, 0), pose.eye[1] + wobble(pose.time, (sh.verticalScale ?? 0.7) * amp, sh.verticalPhase ?? 1.3), pose.eye[2]] };
|
|
112
|
+
if (t.shakeOffset)
|
|
113
|
+
out.eye = [out.eye[0] + t.shakeOffset[0], out.eye[1] + t.shakeOffset[1], out.eye[2] + t.shakeOffset[2]];
|
|
114
|
+
return out;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (t.shakeOffset)
|
|
118
|
+
return { ...pose, eye: [pose.eye[0] + t.shakeOffset[0], pose.eye[1] + t.shakeOffset[1], pose.eye[2] + t.shakeOffset[2]] };
|
|
119
|
+
return pose;
|
|
120
|
+
};
|
|
121
|
+
return {
|
|
122
|
+
pose,
|
|
123
|
+
snap: (t) => (snap(t), finish(t)),
|
|
124
|
+
step,
|
|
125
|
+
reset() {
|
|
126
|
+
live = false;
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=chaseCamera.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chaseCamera.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/nodes/chaseCamera.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export declare const effects: {
|
|
2
2
|
readonly contactShadows: (options?: import("./effects.lighting.js").AuraContactShadowOptions) => import("./builder.js").AuraNodeBuilder<import("./types.js").AuraEffectNode>;
|
|
3
|
+
readonly toon: (options?: import("./effects.toon.js").AuraToonOptions) => import("../publishedUnion.js").AuraCustomPostPass;
|
|
3
4
|
readonly bloom: (options?: Omit<import("./types.js").AuraEffectNode, "kind" | "effect">) => import("./builder.js").AuraNodeBuilder<import("./types.js").AuraEffectNode>;
|
|
4
5
|
readonly neonBloom: (options?: Omit<import("./types.js").AuraEffectNode, "kind" | "effect">) => import("./builder.js").AuraNodeBuilder<import("./types.js").AuraEffectNode>;
|
|
5
6
|
readonly ambientOcclusion: (options?: Omit<import("./types.js").AuraEffectNode, "kind" | "effect">) => import("./builder.js").AuraNodeBuilder<import("./types.js").AuraEffectNode>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effects.composite.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/nodes/effects.composite.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"effects.composite.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/nodes/effects.composite.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;sBAMyhR,CAAC;qBAAkC,CAAC;qBAAuD,CAAC;qBAA2B,CAAC;wBAA+B,CAAC;uBAA6B,CAAC;;;;;;;;;CADvtR,CAAC"}
|
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
import { lightingEffectBuilders } from "./effects.lighting.js";
|
|
3
3
|
import { postEffectBuilders } from "./effects.post.js";
|
|
4
4
|
import { vfxEffectBuilders } from "./effects.js";
|
|
5
|
+
import { toonEffectBuilders } from "./effects.toon.js";
|
|
5
6
|
import { lazyNamespace } from "../lazyNamespace.js";
|
|
6
7
|
export const effects = lazyNamespace(() => ({
|
|
7
8
|
...vfxEffectBuilders,
|
|
8
9
|
...postEffectBuilders,
|
|
10
|
+
...toonEffectBuilders,
|
|
9
11
|
...lightingEffectBuilders
|
|
10
12
|
}));
|
|
11
13
|
//# sourceMappingURL=effects.composite.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effects.composite.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/nodes/effects.composite.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAE/G,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1C,GAAG,iBAAiB;IACpB,GAAG,kBAAkB;IACrB,GAAG,sBAAsB;CAChB,CAAA,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"effects.composite.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/nodes/effects.composite.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAE/G,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1C,GAAG,iBAAiB;IACpB,GAAG,kBAAkB;IACrB,GAAG,kBAAkB;IACrB,GAAG,sBAAsB;CAChB,CAAA,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { AuraCustomPostPass, AuraPostPassOrder } from "../../contracts/post.js";
|
|
2
|
+
export interface AuraToonOptions {
|
|
3
|
+
readonly name?: string;
|
|
4
|
+
/** Luma steps (>= 2). Default 5. */
|
|
5
|
+
readonly bands?: number;
|
|
6
|
+
/** 0 keeps the smooth image, 1 is fully banded. Default 0.75. */
|
|
7
|
+
readonly bandMix?: number;
|
|
8
|
+
/** Outline strength 0..1; 0 disables the Sobel outline. Default 0.75. */
|
|
9
|
+
readonly outline?: number;
|
|
10
|
+
/** Outline colour, linear RGB 0..1. Default [0.05, 0.09, 0.11]. */
|
|
11
|
+
readonly ink?: readonly [number, number, number];
|
|
12
|
+
/** Sobel magnitude where the outline starts and where it is fully on. Defaults 0.26 and 0.6. */
|
|
13
|
+
readonly edgeStart?: number;
|
|
14
|
+
readonly edgeEnd?: number;
|
|
15
|
+
/** Render-target size in device px; sets `u_texel`. Update on resize with `toonTexel`. */
|
|
16
|
+
readonly size?: readonly [number, number];
|
|
17
|
+
readonly order?: AuraPostPassOrder;
|
|
18
|
+
}
|
|
19
|
+
export declare const TOON_FRAGMENT = "\nuniform vec2 u_texel;\nuniform float u_bands;\nuniform float u_band_mix;\nuniform float u_outline;\nuniform vec3 u_ink;\nuniform vec2 u_edge;\nfloat lum(vec3 c) { return dot(c, vec3(0.2126, 0.7152, 0.0722)); }\nvoid main() {\n vec4 c = texture(u_color, v_uv);\n float l = lum(c.rgb);\n float banded = floor(l * u_bands + 0.5) / u_bands;\n float target = mix(l, banded, u_band_mix);\n vec3 col = c.rgb * (target / max(l, 0.02));\n float tl = lum(texture(u_color, v_uv + u_texel * vec2(-1.0, 1.0)).rgb);\n float t = lum(texture(u_color, v_uv + u_texel * vec2(0.0, 1.0)).rgb);\n float tr = lum(texture(u_color, v_uv + u_texel * vec2(1.0, 1.0)).rgb);\n float lf = lum(texture(u_color, v_uv + u_texel * vec2(-1.0, 0.0)).rgb);\n float rt = lum(texture(u_color, v_uv + u_texel * vec2(1.0, 0.0)).rgb);\n float bl = lum(texture(u_color, v_uv + u_texel * vec2(-1.0, -1.0)).rgb);\n float b = lum(texture(u_color, v_uv + u_texel * vec2(0.0, -1.0)).rgb);\n float br = lum(texture(u_color, v_uv + u_texel * vec2(1.0, -1.0)).rgb);\n float gx = (tr + 2.0 * rt + br) - (tl + 2.0 * lf + bl);\n float gy = (tl + 2.0 * t + tr) - (bl + 2.0 * b + br);\n float edge = smoothstep(u_edge.x, u_edge.y, sqrt(gx * gx + gy * gy));\n outColor = vec4(mix(col, u_ink, edge * u_outline), c.a);\n}";
|
|
20
|
+
/** `u_texel` value for a render target of `width` x `height` device px; pass it to `app.post.setPassUniform(name, "u_texel", ...)` on resize. */
|
|
21
|
+
export declare function toonTexel(width: number, height: number): number[];
|
|
22
|
+
export declare const toonEffectBuilders: {
|
|
23
|
+
/** Cel pass over the final image: luma banding plus a Sobel outline. Returns a post pass for `app.post.addPostPass(...)`. */
|
|
24
|
+
readonly toon: (options?: AuraToonOptions) => AuraCustomPostPass;
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=effects.toon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects.toon.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/nodes/effects.toon.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGrF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,mEAAmE;IACnE,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,gGAAgG;IAChG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAED,eAAO,MAAM,aAAa,uwCA0BxB,CAAC;AAEH,iJAAiJ;AACjJ,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAEjE;AASD,eAAO,MAAM,kBAAkB;IAC7B,6HAA6H;8BAC7G,eAAe,KAAQ,kBAAkB;CAyBjD,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { AuraRuntimeError } from "../compiler/errors.js";
|
|
2
|
+
import { postEffectBuilders } from "./effects.post.js";
|
|
3
|
+
export const TOON_FRAGMENT = /* glsl */ `
|
|
4
|
+
uniform vec2 u_texel;
|
|
5
|
+
uniform float u_bands;
|
|
6
|
+
uniform float u_band_mix;
|
|
7
|
+
uniform float u_outline;
|
|
8
|
+
uniform vec3 u_ink;
|
|
9
|
+
uniform vec2 u_edge;
|
|
10
|
+
float lum(vec3 c) { return dot(c, vec3(0.2126, 0.7152, 0.0722)); }
|
|
11
|
+
void main() {
|
|
12
|
+
vec4 c = texture(u_color, v_uv);
|
|
13
|
+
float l = lum(c.rgb);
|
|
14
|
+
float banded = floor(l * u_bands + 0.5) / u_bands;
|
|
15
|
+
float target = mix(l, banded, u_band_mix);
|
|
16
|
+
vec3 col = c.rgb * (target / max(l, 0.02));
|
|
17
|
+
float tl = lum(texture(u_color, v_uv + u_texel * vec2(-1.0, 1.0)).rgb);
|
|
18
|
+
float t = lum(texture(u_color, v_uv + u_texel * vec2(0.0, 1.0)).rgb);
|
|
19
|
+
float tr = lum(texture(u_color, v_uv + u_texel * vec2(1.0, 1.0)).rgb);
|
|
20
|
+
float lf = lum(texture(u_color, v_uv + u_texel * vec2(-1.0, 0.0)).rgb);
|
|
21
|
+
float rt = lum(texture(u_color, v_uv + u_texel * vec2(1.0, 0.0)).rgb);
|
|
22
|
+
float bl = lum(texture(u_color, v_uv + u_texel * vec2(-1.0, -1.0)).rgb);
|
|
23
|
+
float b = lum(texture(u_color, v_uv + u_texel * vec2(0.0, -1.0)).rgb);
|
|
24
|
+
float br = lum(texture(u_color, v_uv + u_texel * vec2(1.0, -1.0)).rgb);
|
|
25
|
+
float gx = (tr + 2.0 * rt + br) - (tl + 2.0 * lf + bl);
|
|
26
|
+
float gy = (tl + 2.0 * t + tr) - (bl + 2.0 * b + br);
|
|
27
|
+
float edge = smoothstep(u_edge.x, u_edge.y, sqrt(gx * gx + gy * gy));
|
|
28
|
+
outColor = vec4(mix(col, u_ink, edge * u_outline), c.a);
|
|
29
|
+
}`;
|
|
30
|
+
/** `u_texel` value for a render target of `width` x `height` device px; pass it to `app.post.setPassUniform(name, "u_texel", ...)` on resize. */
|
|
31
|
+
export function toonTexel(width, height) {
|
|
32
|
+
return [1 / Math.max(1, width), 1 / Math.max(1, height)];
|
|
33
|
+
}
|
|
34
|
+
function finiteIn(label, value, min, max) {
|
|
35
|
+
if (!Number.isFinite(value) || value < min || value > max) {
|
|
36
|
+
throw new AuraRuntimeError("invalid-material-spec", `effects.toon ${label} must be a finite number in [${min}, ${max}], got ${String(value)}`);
|
|
37
|
+
}
|
|
38
|
+
return value;
|
|
39
|
+
}
|
|
40
|
+
export const toonEffectBuilders = {
|
|
41
|
+
/** Cel pass over the final image: luma banding plus a Sobel outline. Returns a post pass for `app.post.addPostPass(...)`. */
|
|
42
|
+
toon: (options = {}) => {
|
|
43
|
+
const bands = finiteIn("bands", options.bands ?? 5, 2, 64);
|
|
44
|
+
const bandMix = finiteIn("bandMix", options.bandMix ?? 0.75, 0, 1);
|
|
45
|
+
const outline = finiteIn("outline", options.outline ?? 0.75, 0, 1);
|
|
46
|
+
const ink = options.ink ?? [0.05, 0.09, 0.11];
|
|
47
|
+
if (ink.length !== 3)
|
|
48
|
+
throw new AuraRuntimeError("invalid-material-spec", "effects.toon ink must be [r, g, b]");
|
|
49
|
+
ink.forEach((v) => finiteIn("ink channel", v, 0, 1));
|
|
50
|
+
const edgeStart = finiteIn("edgeStart", options.edgeStart ?? 0.26, 0, 4);
|
|
51
|
+
const edgeEnd = finiteIn("edgeEnd", options.edgeEnd ?? 0.6, 0, 4);
|
|
52
|
+
if (edgeEnd <= edgeStart)
|
|
53
|
+
throw new AuraRuntimeError("invalid-material-spec", "effects.toon edgeEnd must be greater than edgeStart");
|
|
54
|
+
const size = options.size ?? [1280, 720];
|
|
55
|
+
return postEffectBuilders.shaderPass({
|
|
56
|
+
name: options.name ?? "toon",
|
|
57
|
+
order: options.order ?? "after-tonemap",
|
|
58
|
+
glsl: TOON_FRAGMENT,
|
|
59
|
+
uniforms: {
|
|
60
|
+
u_texel: toonTexel(size[0], size[1]),
|
|
61
|
+
u_bands: bands,
|
|
62
|
+
u_band_mix: bandMix,
|
|
63
|
+
u_outline: outline,
|
|
64
|
+
u_ink: [...ink],
|
|
65
|
+
u_edge: [edgeStart, edgeEnd]
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=effects.toon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects.toon.js","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/nodes/effects.toon.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,10 +39,17 @@ export declare class AuraInstancedMeshHandle extends AuraNodeBuilder<AuraBatched
|
|
|
39
39
|
position(x: number, y: number, z: number): AuraNodeBuilder<AuraBatchedNode & {
|
|
40
40
|
readonly position: import("./types.js").AuraVec3;
|
|
41
41
|
}>;
|
|
42
|
+
position(value: import("./types.js").AuraVec3): AuraNodeBuilder<AuraBatchedNode & {
|
|
43
|
+
readonly position: import("./types.js").AuraVec3;
|
|
44
|
+
}>;
|
|
42
45
|
rotate(x: number, y: number, z: number, order?: import("../../contracts/sceneGraph.js").AuraEulerOrder): AuraNodeBuilder<AuraBatchedNode & {
|
|
43
46
|
readonly rotation: import("./types.js").AuraVec3;
|
|
44
47
|
readonly rotationOrder?: import("../../contracts/sceneGraph.js").AuraEulerOrder;
|
|
45
48
|
}>;
|
|
49
|
+
rotate(value: import("./types.js").AuraVec3, order?: import("../../contracts/sceneGraph.js").AuraEulerOrder): AuraNodeBuilder<AuraBatchedNode & {
|
|
50
|
+
readonly rotation: import("./types.js").AuraVec3;
|
|
51
|
+
readonly rotationOrder?: import("../../contracts/sceneGraph.js").AuraEulerOrder;
|
|
52
|
+
}>;
|
|
46
53
|
quaternion(x: number, y: number, z: number, w: number): AuraNodeBuilder<AuraBatchedNode & {
|
|
47
54
|
readonly quaternion: import("../../contracts/sceneGraph.js").AuraQuat;
|
|
48
55
|
}>;
|
|
@@ -52,6 +59,9 @@ export declare class AuraInstancedMeshHandle extends AuraNodeBuilder<AuraBatched
|
|
|
52
59
|
lookAt(x: number, y: number, z: number): AuraNodeBuilder<AuraBatchedNode & {
|
|
53
60
|
readonly lookAt: import("./types.js").AuraVec3;
|
|
54
61
|
}>;
|
|
62
|
+
lookAt(value: import("./types.js").AuraVec3): AuraNodeBuilder<AuraBatchedNode & {
|
|
63
|
+
readonly lookAt: import("./types.js").AuraVec3;
|
|
64
|
+
}>;
|
|
55
65
|
material(spec: AuraMaterialSpec): AuraNodeBuilder<AuraBatchedNode & {
|
|
56
66
|
readonly material: AuraMaterialSpec;
|
|
57
67
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instancedMesh.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/nodes/instancedMesh.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,gBAAgB,EAKhB,KAAK,wBAAwB,EAC9B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,gBAAgB,EAAqB,MAAM,YAAY,CAAC;AAElG,wFAAwF;AACxF,MAAM,MAAM,0BAA0B,GAAG,wBAAwB,CAAC;AAElE,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,2EAA2E;AAC3E,MAAM,WAAW,uBAAuB;IACtC,6FAA6F;IAC7F,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,eAAe,CAAC,eAAe,CAAC;IAC3E,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,uBAAuB,CAAC;IACjD,QAAQ,CAAC,aAAa,EAAE,uBAAuB,CAAC;gBAEpC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB;IAgB1D,OAAO,CAAC,MAAM;IAML,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC,eAAe,GAAG;QAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,YAAY,EAAE,QAAQ,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"instancedMesh.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/nodes/instancedMesh.ts"],"names":[],"mappings":"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"}
|