@mml-io/3d-web-client-core 0.21.6 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/build/camera/CameraManager.d.ts +7 -4
  2. package/build/character/Character.d.ts +25 -9
  3. package/build/character/CharacterManager.d.ts +79 -15
  4. package/build/character/CharacterModel.d.ts +12 -8
  5. package/build/character/CharacterState.d.ts +0 -10
  6. package/build/character/CharacterTooltip.d.ts +1 -0
  7. package/build/character/LocalController.d.ts +25 -15
  8. package/build/character/LowPolyModel.d.ts +1 -0
  9. package/build/character/RemoteController.d.ts +5 -5
  10. package/build/character/Spawning.d.ts +8 -0
  11. package/build/character/instancing/CharacterColourSamplingUtils.d.ts +14 -0
  12. package/build/character/instancing/CharacterInstances.d.ts +92 -0
  13. package/build/character/instancing/CharacterInstancingAnimationUtils.d.ts +7 -0
  14. package/build/character/instancing/CharacterInstancingUtils.d.ts +3 -0
  15. package/build/character/instancing/vendor/core/InstancedEntity.d.ts +191 -0
  16. package/build/character/instancing/vendor/core/InstancedMesh2.d.ts +361 -0
  17. package/build/character/instancing/vendor/core/InstancedMeshBVH.d.ts +145 -0
  18. package/build/character/instancing/vendor/core/feature/Capacity.d.ts +13 -0
  19. package/build/character/instancing/vendor/core/feature/FrustumCulling.d.ts +37 -0
  20. package/build/character/instancing/vendor/core/feature/Instances.d.ts +49 -0
  21. package/build/character/instancing/vendor/core/feature/LOD.d.ts +89 -0
  22. package/build/character/instancing/vendor/core/feature/Morph.d.ts +18 -0
  23. package/build/character/instancing/vendor/core/feature/Raycasting.d.ts +7 -0
  24. package/build/character/instancing/vendor/core/feature/Skeleton.d.ts +19 -0
  25. package/build/character/instancing/vendor/core/feature/Uniforms.d.ts +42 -0
  26. package/build/character/instancing/vendor/core/utils/GLInstancedBufferAttribute.d.ts +42 -0
  27. package/build/character/instancing/vendor/core/utils/InstancedRenderList.d.ts +25 -0
  28. package/build/character/instancing/vendor/core/utils/SquareDataTexture.d.ts +156 -0
  29. package/build/character/instancing/vendor/index.d.ts +25 -0
  30. package/build/character/instancing/vendor/shaders/ShaderChunk.d.ts +1 -0
  31. package/build/character/instancing/vendor/shaders/chunks/instanced_color_pars_vertex.d.ts +1 -0
  32. package/build/character/instancing/vendor/shaders/chunks/instanced_color_vertex.d.ts +1 -0
  33. package/build/character/instancing/vendor/shaders/chunks/instanced_material_color_pars_vertex.d.ts +1 -0
  34. package/build/character/instancing/vendor/shaders/chunks/instanced_material_color_vertex.d.ts +1 -0
  35. package/build/character/instancing/vendor/shaders/chunks/instanced_pars_vertex.d.ts +1 -0
  36. package/build/character/instancing/vendor/shaders/chunks/instanced_skinning_pars_vertex.d.ts +1 -0
  37. package/build/character/instancing/vendor/shaders/chunks/instanced_vertex.d.ts +1 -0
  38. package/build/character/instancing/vendor/utils/CreateFrom.d.ts +9 -0
  39. package/build/character/instancing/vendor/utils/SortingUtils.d.ts +16 -0
  40. package/build/character/loading/CharacterModelLoader.d.ts +11 -0
  41. package/build/character/loading/GLTFLoadingWorker.worker.d.ts +2 -0
  42. package/build/character/loading/GLTFLoadingWorkerBrowserCache.d.ts +8 -0
  43. package/build/character/loading/GLTFLoadingWorkerPool.d.ts +22 -0
  44. package/build/character/loading/GLTFLoadingWorkerTypes.d.ts +18 -0
  45. package/build/character/url-position.d.ts +7 -5
  46. package/build/collisions/CollisionsManager.d.ts +13 -8
  47. package/build/helpers/math-helpers.d.ts +3 -3
  48. package/build/index.d.ts +6 -3
  49. package/build/index.js +10822 -4088
  50. package/build/index.js.map +4 -4
  51. package/build/input/KeyInputManager.d.ts +1 -0
  52. package/build/math/Box.d.ts +16 -0
  53. package/build/math/EulXYZ.d.ts +24 -0
  54. package/build/math/Line.d.ts +19 -0
  55. package/build/math/Matr4.d.ts +77 -0
  56. package/build/math/Quat.d.ts +57 -0
  57. package/build/math/Ray.d.ts +15 -0
  58. package/build/math/Vect3.d.ts +45 -0
  59. package/build/math/index.d.ts +8 -0
  60. package/build/math/radToDeg.d.ts +2 -0
  61. package/build/mml/MMLCompositionScene.d.ts +1 -1
  62. package/build/rendering/PostProcessingManager.d.ts +92 -0
  63. package/build/rendering/composer.d.ts +27 -25
  64. package/build/time/TimeManager.d.ts +2 -1
  65. package/build/tweakpane/TweakPane.d.ts +10 -5
  66. package/build/tweakpane/blades/{bcsFolder.d.ts → effects/bcsFolder.d.ts} +2 -2
  67. package/build/tweakpane/blades/effects/bloomAndGrain.d.ts +12 -0
  68. package/build/tweakpane/blades/{ssaoFolder.d.ts → effects/ssaoFolder.d.ts} +6 -31
  69. package/build/tweakpane/blades/{toneMappingFolder.d.ts → effects/toneMappingFolder.d.ts} +1 -1
  70. package/build/tweakpane/blades/environmentFolder.d.ts +6 -3
  71. package/build/tweakpane/blades/postProcessingFolder.d.ts +31 -0
  72. package/build/tweakpane/blades/rendererFolder.d.ts +1 -1
  73. package/build/tweakpane/blades/rendererStatsFolder.d.ts +0 -2
  74. package/package.json +16 -11
  75. package/build/character/CharacterModelLoader.d.ts +0 -11
  76. package/build/character/CharacterSpeakingIndicator.d.ts +0 -17
  77. package/build/tweakpane/blades/postExtrasFolder.d.ts +0 -12
@@ -18,6 +18,7 @@ export declare class KeyInputManager {
18
18
  private onKeyUp;
19
19
  isKeyPressed(key: string): boolean;
20
20
  createKeyBinding(key: Key, callback: () => void): void;
21
+ removeKeyBinding(key: Key): void;
21
22
  isMovementKeyPressed(): boolean;
22
23
  private getForward;
23
24
  private getBackward;
@@ -0,0 +1,16 @@
1
+ import { Matr4 } from "./Matr4";
2
+ import { IVect3, Vect3 } from "./Vect3";
3
+ export declare class Box {
4
+ min: Vect3;
5
+ max: Vect3;
6
+ constructor(min?: IVect3, max?: IVect3);
7
+ setStart(min: IVect3): this;
8
+ setEnd(max: IVect3): this;
9
+ length(): number;
10
+ clone(): Box;
11
+ copy(other: Box): this;
12
+ expandByPoint(point: Vect3): this;
13
+ makeEmpty(): this;
14
+ isEmpty(): boolean;
15
+ applyMatrix4(matr4: Matr4): this | undefined;
16
+ }
@@ -0,0 +1,24 @@
1
+ import { Matr4 } from "./Matr4";
2
+ export declare class EulXYZ {
3
+ private static tempMatrix;
4
+ x: number;
5
+ y: number;
6
+ z: number;
7
+ constructor(x?: number | EulXYZ, y?: number, z?: number);
8
+ setFromRotationMatrix(m: Matr4): this;
9
+ setFromQuaternion(q: {
10
+ x: number;
11
+ y: number;
12
+ z: number;
13
+ w: number;
14
+ }): this;
15
+ copy(other: {
16
+ x?: number;
17
+ y?: number;
18
+ z?: number;
19
+ }): this;
20
+ length(): number;
21
+ lengthSquared(): number;
22
+ clone(): EulXYZ;
23
+ set(x: number, y: number, z: number): this;
24
+ }
@@ -0,0 +1,19 @@
1
+ import { Matr4 } from "./Matr4";
2
+ import { IVect3, Vect3 } from "./Vect3";
3
+ export declare class Line {
4
+ start: Vect3;
5
+ end: Vect3;
6
+ constructor(start?: IVect3, end?: IVect3);
7
+ setStart(start: IVect3): this;
8
+ setEnd(end: IVect3): this;
9
+ length(): number;
10
+ lengthSquared(): number;
11
+ clone(): Line;
12
+ copy(other: Line): this;
13
+ applyMatrix4(matr4: Matr4): this;
14
+ distance(): number;
15
+ at(t: number, target: Vect3): Vect3;
16
+ closestPointToPointParameter(point: Vect3, clampToLine: boolean): number;
17
+ closestPointToPoint(point: Vect3, clampToLine: boolean, target: Vect3): Vect3;
18
+ delta(target: Vect3): Vect3;
19
+ }
@@ -0,0 +1,77 @@
1
+ import { Quat } from "./Quat";
2
+ import { Vect3 } from "./Vect3";
3
+ export type Matr4Data = [
4
+ number,
5
+ number,
6
+ number,
7
+ number,
8
+ number,
9
+ number,
10
+ number,
11
+ number,
12
+ number,
13
+ number,
14
+ number,
15
+ number,
16
+ number,
17
+ number,
18
+ number,
19
+ number
20
+ ];
21
+ export declare class Matr4 {
22
+ static tempMatr4: Matr4;
23
+ static tempVect3: Vect3;
24
+ static tempQuat: Quat;
25
+ data: Matr4Data;
26
+ constructor(data?: Matr4Data | Matr4 | Float32Array | Array<number>);
27
+ identity(): this;
28
+ copy(m: Matr4): Matr4;
29
+ set(...args: Matr4Data | [Float32Array] | [Matr4Data] | [Array<number>]): this;
30
+ setRotationFromQuaternion(q: {
31
+ x: number;
32
+ y: number;
33
+ z: number;
34
+ w: number;
35
+ }): this;
36
+ clone(): Matr4;
37
+ determinant(): number;
38
+ makeRotationX(theta: number): this;
39
+ makeRotationY(theta: number): this;
40
+ makeRotationZ(theta: number): this;
41
+ makeTranslation(x: number, y: number, z: number): this;
42
+ makeScale(x: number, y: number, z: number): this;
43
+ compose(position: {
44
+ x: number;
45
+ y: number;
46
+ z: number;
47
+ }, quaternion: {
48
+ x: number;
49
+ y: number;
50
+ z: number;
51
+ w: number;
52
+ }, scale: {
53
+ x: number;
54
+ y: number;
55
+ z: number;
56
+ }): this;
57
+ decompose(position: {
58
+ x: number;
59
+ y: number;
60
+ z: number;
61
+ }, quaternion: {
62
+ x: number;
63
+ y: number;
64
+ z: number;
65
+ w: number;
66
+ }, scale: {
67
+ x: number;
68
+ y: number;
69
+ z: number;
70
+ }): this;
71
+ multiply(m: Matr4): this;
72
+ premultiply(m: Matr4): this;
73
+ multiplyMatrices(a: Matr4, b: Matr4): this;
74
+ invert(): this;
75
+ equals(other: Matr4): boolean;
76
+ setPosition(x: number, y: number, z: number): this;
77
+ }
@@ -0,0 +1,57 @@
1
+ import { Matr4 } from "./Matr4";
2
+ export declare class Quat {
3
+ x: number;
4
+ y: number;
5
+ z: number;
6
+ w: number;
7
+ constructor(x?: number | Quat, y?: number, z?: number, w?: number);
8
+ copy(other: {
9
+ x?: number;
10
+ y?: number;
11
+ z?: number;
12
+ w?: number;
13
+ }): this;
14
+ multiply(q: {
15
+ x: number;
16
+ y: number;
17
+ z: number;
18
+ w: number;
19
+ }): this;
20
+ premultiply(q: {
21
+ x: number;
22
+ y: number;
23
+ z: number;
24
+ w: number;
25
+ }): this;
26
+ multiplyQuaternions(a: {
27
+ x: number;
28
+ y: number;
29
+ z: number;
30
+ w: number;
31
+ }, b: {
32
+ x: number;
33
+ y: number;
34
+ z: number;
35
+ w: number;
36
+ }): this;
37
+ setFromEulerXYZ(euler: {
38
+ x: number;
39
+ y: number;
40
+ z: number;
41
+ }): this;
42
+ setFromRotationMatrix(m: Matr4): this;
43
+ setFromAxisAngle(axis: {
44
+ x: number;
45
+ y: number;
46
+ z: number;
47
+ }, angle: number): this;
48
+ clone(): Quat;
49
+ set(x: number, y: number, z: number, w: number): this;
50
+ invert(): this;
51
+ dot(other: Quat): number;
52
+ rotateTowards(other: Quat, scalar: number): this;
53
+ angleTo(q: Quat): number;
54
+ slerp(qb: Quat, t: number): this;
55
+ length(): number;
56
+ normalize(): this;
57
+ }
@@ -0,0 +1,15 @@
1
+ import { Matr4 } from "./Matr4";
2
+ import { IVect3, Vect3 } from "./Vect3";
3
+ export declare class Ray {
4
+ origin: Vect3;
5
+ direction: Vect3;
6
+ constructor(origin?: IVect3, direction?: IVect3);
7
+ setOrigin(origin: IVect3): this;
8
+ setDirection(direction: IVect3): this;
9
+ clone(): Ray;
10
+ set(origin: IVect3, direction: IVect3): this;
11
+ copy(ray: Ray): this;
12
+ applyMatrix4(matr4: Matr4): this;
13
+ intersectTriangle(a: Vect3, b: Vect3, c: Vect3, backfaceCulling: boolean, target: Vect3): Vect3 | null;
14
+ at(t: number, target: Vect3): Vect3;
15
+ }
@@ -0,0 +1,45 @@
1
+ import { EulXYZ } from "./EulXYZ";
2
+ import { Matr4, Matr4Data } from "./Matr4";
3
+ import { Quat } from "./Quat";
4
+ export type IVect3 = {
5
+ x: number;
6
+ y: number;
7
+ z: number;
8
+ };
9
+ export declare class Vect3 {
10
+ x: number;
11
+ y: number;
12
+ z: number;
13
+ constructor(x?: number | IVect3, y?: number, z?: number);
14
+ copy(other: IVect3): this;
15
+ length(): number;
16
+ lengthSquared(): number;
17
+ clone(): Vect3;
18
+ set(x: number, y: number, z: number): this;
19
+ applyEulerXYZ(euler: EulXYZ): this;
20
+ applyMatrix4(matrix: {
21
+ data: Matr4Data;
22
+ }): this;
23
+ transformDirection(matrix: Matr4): this;
24
+ add(other: IVect3): this;
25
+ sub(other: IVect3): this;
26
+ applyQuat(q: Quat): this;
27
+ multiplyScalar(scalar: number): this;
28
+ normalize(): this;
29
+ addScaledVector(other: Vect3, scalar: number): this;
30
+ distanceTo(other: Vect3): number;
31
+ distanceToSquared(other: Vect3): number;
32
+ applyAxisAngle(axis: IVect3, angle: number): this;
33
+ min(point: IVect3): this;
34
+ max(point: IVect3): this;
35
+ subVectors(a: IVect3, b: IVect3): this;
36
+ dot(v: IVect3): number;
37
+ cross(other: Vect3): this;
38
+ crossVectors(a: Vect3, b: Vect3): this;
39
+ subScalar(s: number): this;
40
+ addScalar(s: number): this;
41
+ multiply(other: IVect3): this;
42
+ lerp(target: IVect3, alpha: number): Vect3;
43
+ lerpVectors(v1: IVect3, v2: IVect3, alpha: number): Vect3;
44
+ toArray(): number[];
45
+ }
@@ -0,0 +1,8 @@
1
+ export * from "./EulXYZ";
2
+ export * from "./Matr4";
3
+ export * from "./Ray";
4
+ export * from "./Line";
5
+ export * from "./Quat";
6
+ export * from "./Box";
7
+ export * from "./radToDeg";
8
+ export * from "./Vect3";
@@ -0,0 +1,2 @@
1
+ export declare function radToDeg(rad: number): number;
2
+ export declare function degToRad(deg: number): number;
@@ -1,6 +1,6 @@
1
1
  import { IMMLScene, MMLDocumentTimeManager, PositionAndRotation } from "@mml-io/mml-web";
2
2
  import { ThreeJSGraphicsAdapter } from "@mml-io/mml-web-threejs";
3
- import { AudioListener, Group, PerspectiveCamera, Scene, WebGLRenderer } from "three";
3
+ import { PerspectiveCamera, Scene, WebGLRenderer, AudioListener, Group } from "three";
4
4
  import { CollisionsManager } from "../collisions/CollisionsManager";
5
5
  type MMLCompositionSceneConfig = {
6
6
  targetElement: HTMLElement;
@@ -0,0 +1,92 @@
1
+ import { BloomEffect, EffectComposer, EffectPass, ToneMappingEffect } from "postprocessing";
2
+ import { PerspectiveCamera, Scene, Vector2, WebGLRenderer } from "three";
3
+ import { TimeManager } from "../time/TimeManager";
4
+ import { BrightnessContrastSaturation } from "./post-effects/bright-contrast-sat";
5
+ import { GaussGrainEffect } from "./post-effects/gauss-grain";
6
+ import { N8SSAOPass } from "./post-effects/n8-ssao/N8SSAOPass";
7
+ export declare const PP_GLOBALLY_ENABLED = false;
8
+ export interface EffectState {
9
+ name: string;
10
+ enabled: boolean;
11
+ wasEnabledBeforeGlobalDisable: boolean;
12
+ instance: any;
13
+ passIndex?: number;
14
+ }
15
+ export interface PostProcessingConfig {
16
+ enabled?: boolean;
17
+ bloom?: {
18
+ intensity?: number;
19
+ };
20
+ bcs?: {
21
+ brightness?: number;
22
+ contrast?: number;
23
+ saturation?: number;
24
+ };
25
+ grain?: {
26
+ amount?: number;
27
+ };
28
+ ssao?: {
29
+ enabled?: boolean;
30
+ halfRes?: boolean;
31
+ aoRadius?: number;
32
+ distanceFalloff?: number;
33
+ intensity?: number;
34
+ aoSamples?: number;
35
+ denoiseSamples?: number;
36
+ denoiseRadius?: number;
37
+ };
38
+ toneMapping?: {
39
+ mode?: number;
40
+ resolution?: number;
41
+ whitePoint?: number;
42
+ middleGrey?: number;
43
+ minLuminance?: number;
44
+ averageLuminance?: number;
45
+ adaptationRate?: number;
46
+ };
47
+ }
48
+ export declare class PostProcessingManager {
49
+ private renderer;
50
+ private scene;
51
+ private camera;
52
+ private width;
53
+ private height;
54
+ isGloballyEnabled: boolean;
55
+ effectComposer: EffectComposer;
56
+ private effectStates;
57
+ private renderPass;
58
+ private fxaaEffect;
59
+ private fxaaPass;
60
+ private bloomEffect;
61
+ private bloomPass;
62
+ private toneMappingEffect;
63
+ private toneMappingPass;
64
+ private n8aopass;
65
+ private bcs;
66
+ private bcsPass;
67
+ private gaussGrainEffect;
68
+ private gaussGrainPass;
69
+ resolution: Vector2;
70
+ constructor(renderer: WebGLRenderer, scene: Scene, camera: PerspectiveCamera, width: number, height: number, initialConfig?: PostProcessingConfig);
71
+ private initializeEffects;
72
+ private registerEffect;
73
+ private setupPipeline;
74
+ private rebuildPipeline;
75
+ enableEffect(name: string): void;
76
+ disableEffect(name: string): void;
77
+ toggleGlobalPostProcessing(enabled?: boolean): void;
78
+ updateEffectConfiguration(config: PostProcessingConfig): void;
79
+ updateCamera(camera: PerspectiveCamera): void;
80
+ resizeActiveEffects(width: number, height: number): void;
81
+ render(timeManager: TimeManager): void;
82
+ getEffectState(name: string): EffectState | undefined;
83
+ getAllEffectStates(): EffectState[];
84
+ isEffectEnabled(name: string): boolean;
85
+ get n8ssaoPass(): N8SSAOPass;
86
+ get toneMappingEffectInstance(): ToneMappingEffect;
87
+ get toneMappingPassInstance(): EffectPass;
88
+ get bcsInstance(): typeof BrightnessContrastSaturation;
89
+ get bloomEffectInstance(): BloomEffect;
90
+ get gaussGrainEffectInstance(): typeof GaussGrainEffect;
91
+ dispose(): void;
92
+ }
@@ -1,5 +1,4 @@
1
- import { EffectComposer } from "postprocessing";
2
- import { Scene, Vector2, WebGLRenderer } from "three";
1
+ import { Scene, WebGLRenderer } from "three";
3
2
  import { CameraManager } from "../camera/CameraManager";
4
3
  import { Sun } from "../sun/Sun";
5
4
  import { TimeManager } from "../time/TimeManager";
@@ -9,6 +8,7 @@ type ComposerContructorArgs = {
9
8
  cameraManager: CameraManager;
10
9
  spawnSun: boolean;
11
10
  environmentConfiguration?: EnvironmentConfiguration;
11
+ postProcessingEnabled?: boolean;
12
12
  };
13
13
  export type EnvironmentConfiguration = {
14
14
  groundPlane?: boolean;
@@ -50,53 +50,55 @@ export declare class Composer {
50
50
  private width;
51
51
  private height;
52
52
  private resizeListener;
53
- resolution: Vector2;
54
53
  private readonly scene;
55
54
  postPostScene: Scene;
56
55
  private readonly cameraManager;
57
56
  readonly renderer: WebGLRenderer;
58
- readonly effectComposer: EffectComposer;
59
- private readonly renderPass;
60
- private readonly normalPass;
61
- private readonly normalTextureEffect;
62
- private readonly ppssaoEffect;
63
- private readonly ppssaoPass;
64
- private readonly n8aopass;
65
- private readonly fxaaEffect;
66
- private readonly fxaaPass;
67
- private readonly bloomEffect;
68
- private readonly bloomPass;
69
- private readonly toneMappingEffect;
70
- private readonly smaaEffect;
71
- private readonly toneMappingPass;
72
- private readonly smaaPass;
73
- private readonly bcs;
74
- private readonly bcsPass;
75
- private readonly gaussGrainEffect;
76
- private readonly gaussGrainPass;
57
+ private postProcessingManager;
58
+ private currentCamera;
77
59
  private ambientLight;
78
60
  private environmentConfiguration?;
79
61
  private skyboxState;
80
62
  sun: Sun | null;
81
63
  spawnSun: boolean;
82
- constructor({ scene, cameraManager, spawnSun, environmentConfiguration, }: ComposerContructorArgs);
64
+ private sky;
65
+ private skyCubeCamera;
66
+ private skyRenderTarget;
67
+ private currentAzimuthalAngle;
68
+ private currentPolarAngle;
69
+ private targetAzimuthalAngle;
70
+ private targetPolarAngle;
71
+ private currentIntensity;
72
+ private targetIntensity;
73
+ private readonly lerpSpeed;
74
+ private postProcessingEnabled;
75
+ constructor({ scene, cameraManager, spawnSun, environmentConfiguration, postProcessingEnabled, }: ComposerContructorArgs);
76
+ private setupSkyShader;
83
77
  updateEnvironmentConfiguration(environmentConfiguration: EnvironmentConfiguration): void;
84
78
  setupTweakPane(tweakPane: TweakPane): void;
85
79
  dispose(): void;
86
80
  fitContainer(): void;
87
81
  render(timeManager: TimeManager): void;
82
+ private hasHDR;
88
83
  updateSkyboxRotation(): void;
89
84
  private loadHDRJPG;
90
85
  private loadHDRi;
91
- useHDRJPG(url: string, fromFile?: boolean): void;
86
+ useHDRJPG(url: string): void;
92
87
  useHDRI(url: string): void;
93
88
  setHDRIFromFile(): void;
94
89
  setFog(): void;
95
90
  setAmbientLight(): void;
96
- private updateSunValues;
91
+ updateSkyShaderValues(): void;
92
+ updateSunValues(): void;
93
+ updateSun(): void;
94
+ private lerp;
95
+ private lerpAngle;
96
+ private updateSkyShaderValuesWithLerpedAngles;
97
97
  private updateFogValues;
98
98
  private updateSkyboxAndEnvValues;
99
+ private updateBloomValues;
99
100
  private updateAmbientLightValues;
101
+ togglePostProcessing(enabled: boolean): void;
100
102
  private applyEnvMap;
101
103
  }
102
104
  export {};
@@ -1,5 +1,4 @@
1
1
  export declare class TimeManager {
2
- private clock;
3
2
  private roundMagnitude;
4
3
  private maxAverageFrames;
5
4
  private deltaTimes;
@@ -7,6 +6,7 @@ export declare class TimeManager {
7
6
  private lerpedAverageMagDelta;
8
7
  private fpsUpdateTime;
9
8
  private framesSinceLastFPSUpdate;
9
+ private previousTime;
10
10
  time: number;
11
11
  deltaTime: number;
12
12
  rawDeltaTime: number;
@@ -15,5 +15,6 @@ export declare class TimeManager {
15
15
  fps: number;
16
16
  averageFPS: number;
17
17
  static maxDeltaTime: number;
18
+ static MILLISECONDS_TO_SECONDS: number;
18
19
  update(): void;
19
20
  }
@@ -1,23 +1,27 @@
1
- import { BloomEffect, EffectComposer, EffectPass, NormalPass, SSAOEffect, ToneMappingEffect } from "postprocessing";
1
+ import { BloomEffect, EffectComposer, EffectPass, ToneMappingEffect } from "postprocessing";
2
2
  import { Scene, WebGLRenderer } from "three";
3
3
  import { CameraManager } from "../camera/CameraManager";
4
4
  import { LocalController } from "../character/LocalController";
5
+ import type { Composer } from "../rendering/composer";
5
6
  import { BrightnessContrastSaturation } from "../rendering/post-effects/bright-contrast-sat";
6
7
  import { GaussGrainEffect } from "../rendering/post-effects/gauss-grain";
7
- import { Sun } from "../sun/Sun";
8
+ import { PostProcessingManager } from "../rendering/PostProcessingManager";
8
9
  import { TimeManager } from "../time/TimeManager";
9
10
  export declare class TweakPane {
10
11
  private holderElement;
11
12
  private renderer;
12
13
  private scene;
13
14
  private composer;
15
+ private postProcessingEnabled;
14
16
  private gui;
15
17
  private renderStatsFolder;
16
18
  private rendererFolder;
19
+ private postProcessingFolder;
20
+ private postProcessingSettingsFolder;
17
21
  private toneMappingFolder;
18
22
  private ssaoFolder;
19
23
  private bcsFolder;
20
- private postExtrasFolder;
24
+ private bloomAndGrainFolder;
21
25
  private character;
22
26
  private environment;
23
27
  private camera;
@@ -27,12 +31,13 @@ export declare class TweakPane {
27
31
  guiVisible: boolean;
28
32
  private tweakPaneWrapper;
29
33
  private eventHandlerCollection;
30
- constructor(holderElement: HTMLElement, renderer: WebGLRenderer, scene: Scene, composer: EffectComposer);
34
+ constructor(holderElement: HTMLElement, renderer: WebGLRenderer, scene: Scene, composer: Composer, postProcessingEnabled: boolean | undefined);
31
35
  private processKey;
32
- setupRenderPane(composer: EffectComposer, normalPass: NormalPass, ppssaoEffect: SSAOEffect, ppssaoPass: EffectPass, n8aopass: any, toneMappingEffect: ToneMappingEffect, toneMappingPass: EffectPass, brightnessContrastSaturation: typeof BrightnessContrastSaturation, bloomEffect: BloomEffect, gaussGrainEffect: typeof GaussGrainEffect, hasLighting: boolean, sun: Sun | null, setHDR: () => void, setSkyboxAzimuthalAngle: (azimuthalAngle: number) => void, setSkyboxPolarAngle: (azimuthalAngle: number) => void, setAmbientLight: () => void, setFog: () => void): void;
36
+ setupRenderPane(composer: EffectComposer, n8aopass: any, toneMappingEffect: ToneMappingEffect, toneMappingPass: EffectPass, brightnessContrastSaturation: typeof BrightnessContrastSaturation, bloomEffect: BloomEffect, gaussGrainEffect: typeof GaussGrainEffect, hasLighting: boolean, updateSunValues: () => void, setHDR: () => void, setSkyboxAzimuthalAngle: (azimuthalAngle: number) => void, setSkyboxPolarAngle: (azimuthalAngle: number) => void, setAmbientLight: () => void, setFog: () => void, setSkyShaderValues: () => void): void;
33
37
  dispose(): void;
34
38
  setupCamPane(cameraManager: CameraManager): void;
35
39
  setupCharacterController(localController: LocalController): void;
40
+ setupPostProcessingPane(postProcessingManager: PostProcessingManager): void;
36
41
  updateStats(timeManager: TimeManager): void;
37
42
  updateCameraData(cameraManager: CameraManager): void;
38
43
  updateCharacterData(localController: LocalController): void;
@@ -1,5 +1,5 @@
1
1
  import { FolderApi } from "tweakpane";
2
- import { BrightnessContrastSaturation } from "../../rendering/post-effects/bright-contrast-sat";
2
+ import { BrightnessContrastSaturation } from "../../../rendering/post-effects/bright-contrast-sat";
3
3
  export declare const bcsValues: {
4
4
  brightness: number;
5
5
  contrast: number;
@@ -8,5 +8,5 @@ export declare const bcsValues: {
8
8
  export declare class BrightnessContrastSaturationFolder {
9
9
  private folder;
10
10
  constructor(parentFolder: FolderApi, expand?: boolean);
11
- setupChangeEvent(brightnessContrastSaturation: typeof BrightnessContrastSaturation): void;
11
+ setupChangeEvent(brightnessContrastSaturation: typeof BrightnessContrastSaturation | any): void;
12
12
  }
@@ -0,0 +1,12 @@
1
+ import { BloomEffect } from "postprocessing";
2
+ import { FolderApi } from "tweakpane";
3
+ import { GaussGrainEffect } from "../../../rendering/post-effects/gauss-grain";
4
+ export declare const bloomAndGrainValues: {
5
+ grain: number;
6
+ bloom: number;
7
+ };
8
+ export declare class BloomAndGrainFolder {
9
+ private folder;
10
+ constructor(parentFolder: FolderApi, expand?: boolean);
11
+ setupChangeEvent(bloomEffect: BloomEffect | any, gaussGrainEffect: typeof GaussGrainEffect | any): void;
12
+ }
@@ -1,34 +1,11 @@
1
- import { BlendFunction, EffectComposer, EffectPass, NormalPass, SSAOEffect } from "postprocessing";
1
+ import { EffectComposer } from "postprocessing";
2
2
  import { FolderApi } from "tweakpane";
3
- export declare const ppssaoValues: {
4
- enabled: boolean;
5
- blendFunction: BlendFunction;
6
- distanceScaling: boolean;
7
- depthAwareUpsampling: boolean;
8
- samples: number;
9
- rings: number;
10
- luminanceInfluence: number;
11
- radius: number;
12
- intensity: number;
13
- bias: number;
14
- fade: number;
15
- resolutionScale: number;
16
- color: {
17
- r: number;
18
- g: number;
19
- b: number;
20
- };
21
- worldDistanceThreshold: number;
22
- worldDistanceFalloff: number;
23
- worldProximityThreshold: number;
24
- worldProximityFalloff: number;
25
- };
26
3
  export declare const n8ssaoValues: {
27
4
  enabled: boolean;
28
5
  halfRes: boolean;
6
+ intensity: number;
29
7
  aoRadius: number;
30
8
  distanceFalloff: number;
31
- intensity: number;
32
9
  color: {
33
10
  r: number;
34
11
  g: number;
@@ -40,17 +17,17 @@ export declare const n8ssaoValues: {
40
17
  viewMode: string;
41
18
  };
42
19
  export declare const n8ssaoOptions: {
43
- radius: {
20
+ intensity: {
44
21
  min: number;
45
22
  max: number;
46
23
  step: number;
47
24
  };
48
- distanceFalloff: {
25
+ radius: {
49
26
  min: number;
50
27
  max: number;
51
28
  step: number;
52
29
  };
53
- intensity: {
30
+ distanceFalloff: {
54
31
  min: number;
55
32
  max: number;
56
33
  step: number;
@@ -62,13 +39,11 @@ export declare const n8ssaoOptions: {
62
39
  };
63
40
  export declare class SSAOFolder {
64
41
  private folder;
65
- private ppssao;
66
- private n8ssao;
67
42
  private aoSamples;
68
43
  private denoiseSamples;
69
44
  private denoiseRadius;
70
45
  private aoDisplay;
71
46
  private postProcessingSSAOIndex;
72
47
  constructor(parentFolder: FolderApi, expand?: boolean);
73
- setupChangeEvent(composer: EffectComposer, normalPass: NormalPass, ppssaoEffect: SSAOEffect, ppssaoPass: EffectPass, n8aopass: any): void;
48
+ setupChangeEvent(composer: EffectComposer | any, n8aopass: any): void;
74
49
  }
@@ -14,5 +14,5 @@ export declare class ToneMappingFolder {
14
14
  private minLuminance;
15
15
  private avgLuminance;
16
16
  constructor(parentFolder: FolderApi, expand?: boolean);
17
- setupChangeEvent(toneMappingEffect: ToneMappingEffect): void;
17
+ setupChangeEvent(toneMappingEffect: ToneMappingEffect | any): void;
18
18
  }
@@ -1,12 +1,15 @@
1
1
  import { Scene } from "three";
2
2
  import { FolderApi } from "tweakpane";
3
- import { Sun } from "../../sun/Sun";
4
3
  export declare const sunValues: {
4
+ sunIntensity: number;
5
5
  sunPosition: {
6
6
  sunAzimuthalAngle: number;
7
7
  sunPolarAngle: number;
8
8
  };
9
- sunIntensity: number;
9
+ skyTurbidity: number;
10
+ skyRayleigh: number;
11
+ skyMieCoefficient: number;
12
+ skyMieDirectionalG: number;
10
13
  sunColor: {
11
14
  r: number;
12
15
  g: number;
@@ -46,5 +49,5 @@ export declare class EnvironmentFolder {
46
49
  private ambient;
47
50
  private fog;
48
51
  constructor(parentFolder: FolderApi, expand?: boolean);
49
- setupChangeEvent(scene: Scene, setHDR: () => void, setSkyboxAzimuthalAngle: (azimuthalAngle: number) => void, setSkyboxPolarAngle: (polarAngle: number) => void, setAmbientLight: () => void, setFog: () => void, sun: Sun | null): void;
52
+ setupChangeEvent(scene: Scene, setHDR: () => void, setSkyboxAzimuthalAngle: (azimuthalAngle: number) => void, setSkyboxPolarAngle: (polarAngle: number) => void, setAmbientLight: () => void, setFog: () => void, updateSkyShaderValues: () => void, updateSunValues: () => void): void;
50
53
  }