genshin-engine 4.0.0 → 4.1.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/dist/index.d.ts CHANGED
@@ -1,10 +1,69 @@
1
- import { BufferAttribute, BufferGeometry, Camera, CanvasTexture, Color, ColorRepresentation, Data3DTexture, DataTexture, DirectionalLight, Frustum, HemisphereLight, InstancedBufferGeometry, Matrix4, OrthographicCamera, Scene, Sprite, Texture, ToneMapping, Vector2, Vector3, Vector3Like } from "three";
2
- import { LightingModel, LightingModelDirectInput, MeshBasicNodeMaterial, MeshToonNodeMaterial, MeshToonNodeMaterialParameters, Node, NodeBuilder, NodeMaterial, RenderPipeline, RenderTarget, Renderer, TextureNode, UniformArrayNode, UniformNode, WebGPURenderer } from "three/webgpu";
3
- import { CSMShadowNode } from "three/examples/jsm/csm/CSMShadowNode.js";
1
+ import { A as CliffFeature, C as GroundLayerField, D as GroundBand, E as GroundLayers, O as GaussianHills, S as GroundPathSegment, T as GroundLayer, _ as TerrainOptions, a as createTerrainShapeHeight, b as PlateauFeature, c as computeTerrainTile, d as TerrainTileOptions, f as TerrainShape, g as TerrainResidualClearing, h as TerrainResidualFade, i as getTerrainTileColumn, j as TerrainFeatureKind, k as GaussianHill, l as createSeededRandom, m as TerrainResidual, n as getTerrainTileRow, o as createGroundPaintColor, p as TerrainTile, r as getTerrainTileLevel, s as createGroundLayerWeights, t as computeScatterPoints, u as ScatterOptions, v as TerrainFeature, w as GroundLayerColors, x as GroundPaint, y as RidgeFeature } from "./terrainWorker-CLOYYKT1.js";
2
+ import { Box3, BufferAttribute, BufferGeometry, Camera, CanvasTexture, Color, ColorRepresentation, Data3DTexture, DataTexture, DirectionalLight, Frustum, HemisphereLight, InstancedBufferGeometry, InstancedMesh, Material, Matrix3, Matrix4, Mesh, Object3D, OrthographicCamera, PerspectiveCamera, Quaternion, Scene, Skeleton, SkinnedMesh, Sprite, Texture, ToneMapping, Vector2, Vector3, Vector3Like, Vector3Tuple, Vector4Tuple } from "three";
3
+ import { LightingModel, LightingModelDirectInput, Material as Material$1, MeshBasicNodeMaterial, MeshToonNodeMaterial, MeshToonNodeMaterialParameters, Node, NodeBuilder, NodeFrame, NodeMaterial, PassNode, RenderPipeline, RenderTarget, Renderer, Texture as Texture$1, TextureNode, ToonOutlinePassNode, UniformArrayNode, UniformNode, WebGPURenderer } from "three/webgpu";
4
+ import { CSMShadowNode, CSMShadowNodeData } from "three/examples/jsm/csm/CSMShadowNode.js";
5
+ import { Capsule } from "three/examples/jsm/math/Capsule.js";
4
6
  import GTAONode from "three/examples/jsm/tsl/display/GTAONode.js";
5
7
  import BloomNode from "three/examples/jsm/tsl/display/BloomNode.js";
6
8
  import GodraysNode from "three/examples/jsm/tsl/display/GodraysNode.js";
7
9
  import { Inspector } from "three/examples/jsm/inspector/Inspector.js";
10
+ //#region src/models/atmosphere/SkyUniforms.d.ts
11
+ export interface SkyUniforms {
12
+ cloudCoverage: UniformNode<"float", number>;
13
+ cloudDrift: UniformNode<"vec2", Vector2>;
14
+ cloudFrontBackBlend: UniformNode<"float", number>;
15
+ cloudLitBackColor: UniformNode<"color", Color>;
16
+ cloudLitColor: UniformNode<"color", Color>;
17
+ cloudShadeBackColor: UniformNode<"color", Color>;
18
+ cloudShadeColor: UniformNode<"color", Color>;
19
+ cloudSunBrighten: UniformNode<"float", number>;
20
+ frontBackBlend: UniformNode<"float", number>;
21
+ haloColor: UniformNode<"color", Color>;
22
+ haloHeight: UniformNode<"float", number>;
23
+ horizonBackColor: UniformNode<"color", Color>;
24
+ horizonBand: UniformNode<"float", number>;
25
+ horizonColor: UniformNode<"color", Color>;
26
+ lightColor: UniformNode<"color", Color>;
27
+ moonDirection: UniformNode<"vec3", Vector3>;
28
+ moonGlowColor: UniformNode<"color", Color>;
29
+ moonSize: UniformNode<"float", number>;
30
+ starIntensity: UniformNode<"float", number>;
31
+ sunDirection: UniformNode<"vec3", Vector3>;
32
+ sunHaloColor: UniformNode<"color", Color>;
33
+ sunHaloSize: UniformNode<"float", number>;
34
+ zenithBackColor: UniformNode<"color", Color>;
35
+ zenithColor: UniformNode<"color", Color>;
36
+ }
37
+ //#endregion
38
+ //#region src/atmosphere/applyLightningFlash.d.ts
39
+ export declare const applyLightningFlash: (flash: number, flashColor: Color, skyUniforms: SkyUniforms, hemisphere: HemisphereLight) => void;
40
+ //#endregion
41
+ //#region src/models/atmosphere/PrecipitationSettings.d.ts
42
+ export interface PrecipitationSettings {
43
+ fallSpeed: number;
44
+ length: number;
45
+ opacity: number;
46
+ sway: number;
47
+ width: number;
48
+ windDrift: number;
49
+ }
50
+ //#endregion
51
+ //#region src/models/atmosphere/PrecipitationUniforms.d.ts
52
+ export interface PrecipitationUniforms {
53
+ density: UniformNode<"float", number>;
54
+ eye: UniformNode<"vec3", Vector3>;
55
+ fallSpeed: UniformNode<"float", number>;
56
+ length: UniformNode<"float", number>;
57
+ opacity: UniformNode<"float", number>;
58
+ splashDensity: UniformNode<"float", number>;
59
+ sway: UniformNode<"float", number>;
60
+ width: UniformNode<"float", number>;
61
+ windDrift: UniformNode<"float", number>;
62
+ }
63
+ //#endregion
64
+ //#region src/atmosphere/applyPrecipitationSettings.d.ts
65
+ export declare const applyPrecipitationSettings: ({ fallSpeed, length, opacity, sway, width, windDrift }: PrecipitationSettings, precipitationUniforms: PrecipitationUniforms) => void;
66
+ //#endregion
8
67
  //#region src/models/atmosphere/BaseSkyState.d.ts
9
68
  export interface BaseSkyState {
10
69
  cloudLitColor: Color;
@@ -28,6 +87,12 @@ export interface SkyShape {
28
87
  sunHaloSize: number;
29
88
  }
30
89
  //#endregion
90
+ //#region src/models/post/WhiteBalance.d.ts
91
+ export interface WhiteBalance {
92
+ temperature: number;
93
+ tint: number;
94
+ }
95
+ //#endregion
31
96
  //#region src/models/atmosphere/SkyState.d.ts
32
97
  export interface SkyState extends BaseSkyState {
33
98
  cloudLitBackColor?: Color;
@@ -44,43 +109,17 @@ export interface SkyState extends BaseSkyState {
44
109
  shape?: SkyShape;
45
110
  sunDirection: Vector3;
46
111
  sunHaloColor?: Color;
112
+ whiteBalance?: WhiteBalance;
47
113
  zenithBackColor?: Color;
48
114
  }
49
115
  //#endregion
50
- //#region src/models/atmosphere/SkyUniforms.d.ts
51
- export interface SkyUniforms {
52
- cloudCoverage: UniformNode<"float", number>;
53
- cloudDrift: UniformNode<"vec2", Vector2>;
54
- cloudFrontBackBlend: UniformNode<"float", number>;
55
- cloudLitBackColor: UniformNode<"color", Color>;
56
- cloudLitColor: UniformNode<"color", Color>;
57
- cloudShadeBackColor: UniformNode<"color", Color>;
58
- cloudShadeColor: UniformNode<"color", Color>;
59
- cloudSunBrighten: UniformNode<"float", number>;
60
- frontBackBlend: UniformNode<"float", number>;
61
- haloColor: UniformNode<"color", Color>;
62
- haloHeight: UniformNode<"float", number>;
63
- horizonBackColor: UniformNode<"color", Color>;
64
- horizonBand: UniformNode<"float", number>;
65
- horizonColor: UniformNode<"color", Color>;
66
- lightColor: UniformNode<"color", Color>;
67
- moonDirection: UniformNode<"vec3", Vector3>;
68
- moonGlowColor: UniformNode<"color", Color>;
69
- moonSize: UniformNode<"float", number>;
70
- starIntensity: UniformNode<"float", number>;
71
- sunDirection: UniformNode<"vec3", Vector3>;
72
- sunHaloColor: UniformNode<"color", Color>;
73
- sunHaloSize: UniformNode<"float", number>;
74
- zenithBackColor: UniformNode<"color", Color>;
75
- zenithColor: UniformNode<"color", Color>;
76
- }
77
- //#endregion
78
116
  //#region src/models/nodes/LightUniforms.d.ts
79
117
  export interface LightUniforms {
80
118
  lightColor: UniformNode<"color", Color>;
81
119
  rimColor: UniformNode<"color", Color>;
82
120
  rimStrength: UniformNode<"float", number>;
83
121
  sunDirection: UniformNode<"vec3", Vector3>;
122
+ wetness: UniformNode<"float", number>;
84
123
  }
85
124
  //#endregion
86
125
  //#region src/models/post/FogUniforms.d.ts
@@ -104,6 +143,7 @@ export interface PostUniforms {
104
143
  outlineColor: UniformNode<"color", Color>;
105
144
  outlineFadeDistance: UniformNode<"float", number>;
106
145
  outlineThickness: UniformNode<"float", number>;
146
+ whiteBalance: UniformNode<"mat3", Matrix3>;
107
147
  }
108
148
  //#endregion
109
149
  //#region src/models/atmosphere/SkyTargets.d.ts
@@ -121,18 +161,136 @@ export interface SkyTargets {
121
161
  //#region src/atmosphere/applySkyState.d.ts
122
162
  export declare const applySkyState: (skyState: SkyState, { fogUniforms, godraysLight, hemisphere, light, lightDistance, lightUniforms, postUniforms, skyUniforms }: SkyTargets) => void;
123
163
  //#endregion
164
+ //#region src/models/atmosphere/PrecipitationKind.d.ts
165
+ export declare enum PrecipitationKind {
166
+ Rain = "Rain",
167
+ Sand = "Sand",
168
+ Snow = "Snow"
169
+ }
170
+ //#endregion
171
+ //#region src/models/atmosphere/WeatherState.d.ts
172
+ export interface WeatherState {
173
+ cloudCoverage: number;
174
+ fogColor: number;
175
+ fogColorAmount: number;
176
+ fogDensity: number;
177
+ lightningRate: number;
178
+ precipitationDensity: number;
179
+ precipitationKind: PrecipitationKind;
180
+ wetness: number;
181
+ }
182
+ //#endregion
183
+ //#region src/models/atmosphere/WeatherTargets.d.ts
184
+ export interface WeatherTargets {
185
+ fogUniforms: FogUniforms;
186
+ lightUniforms: LightUniforms;
187
+ precipitationUniforms: PrecipitationUniforms;
188
+ skyUniforms: SkyUniforms;
189
+ }
190
+ //#endregion
191
+ //#region src/atmosphere/applyWeatherState.d.ts
192
+ export declare const applyWeatherState: ({ cloudCoverage, fogDensity, precipitationDensity, precipitationKind, wetness }: WeatherState, { fogUniforms, lightUniforms, precipitationUniforms, skyUniforms }: WeatherTargets, baseCloudCoverage: number, baseFogDensity: number) => void;
193
+ //#endregion
194
+ //#region src/models/atmosphere/WeatherPrecipitation.d.ts
195
+ export interface WeatherPrecipitation {
196
+ density: number;
197
+ kind: PrecipitationKind;
198
+ }
199
+ //#endregion
200
+ //#region src/models/atmosphere/WeatherSettings.d.ts
201
+ export interface WeatherSettings {
202
+ cloudCoverage: number;
203
+ fogColor?: number;
204
+ fogDensity: number;
205
+ lightningRate?: number;
206
+ precipitation?: WeatherPrecipitation;
207
+ wetness: number;
208
+ }
209
+ //#endregion
210
+ //#region src/atmosphere/blendWeatherState.d.ts
211
+ export declare const blendWeatherState: (from: Readonly<WeatherState>, { cloudCoverage, fogColor, fogDensity, lightningRate, precipitation, wetness }: WeatherSettings, amount: number, weatherState: WeatherState) => void;
212
+ //#endregion
213
+ //#region src/atmosphere/checkSunTurned.d.ts
214
+ export declare const checkSunTurned: (drawnDirection: Vector3, direction: Vector3) => boolean;
215
+ //#endregion
216
+ //#region src/models/atmosphere/LightningBolt.d.ts
217
+ export interface LightningBolt {
218
+ directions: Float32Array;
219
+ indices: Uint32Array;
220
+ positions: Float32Array;
221
+ sides: Float32Array;
222
+ }
223
+ //#endregion
224
+ //#region src/models/atmosphere/LightningBoltOptions.d.ts
225
+ export interface LightningBoltOptions {
226
+ branchCount: number;
227
+ height: number;
228
+ roughness: number;
229
+ seed: number;
230
+ segmentCount: number;
231
+ width: number;
232
+ }
233
+ //#endregion
234
+ //#region src/atmosphere/computeLightningBolt.d.ts
235
+ export declare const computeLightningBolt: ({ branchCount, height, roughness, seed, segmentCount, width }: LightningBoltOptions) => LightningBolt;
236
+ //#endregion
237
+ //#region src/atmosphere/computeLightningFlash.d.ts
238
+ export declare const computeLightningFlash: (elapsed: number) => number;
239
+ //#endregion
124
240
  //#region src/atmosphere/computeSunDirection.d.ts
125
241
  export declare const computeSunDirection: (minutes: number, tilt: number, sunDirection: Vector3) => Vector3;
126
242
  //#endregion
243
+ //#region src/models/atmosphere/LightningFlashPulse.d.ts
244
+ export interface LightningFlashPulse {
245
+ seconds: number;
246
+ strength: number;
247
+ }
248
+ //#endregion
127
249
  //#region src/models/atmosphere/SkyGradient.d.ts
128
250
  export interface SkyGradient {
129
251
  green: readonly number[];
130
252
  red: readonly number[];
131
253
  }
132
254
  //#endregion
255
+ //#region src/models/atmosphere/WeatherKind.d.ts
256
+ export declare enum WeatherKind {
257
+ Clear = "Clear",
258
+ Cloudy = "Cloudy",
259
+ Fog = "Fog",
260
+ Rain = "Rain",
261
+ Sandstorm = "Sandstorm",
262
+ Snow = "Snow",
263
+ Thunderstorm = "Thunderstorm"
264
+ }
265
+ //#endregion
133
266
  //#region src/atmosphere/constants.d.ts
267
+ export declare const SUN_REDRAW_COSINE: number;
134
268
  export declare const DEFAULT_SKY_SHAPE: Readonly<SkyShape>;
135
269
  export declare const DEFAULT_SKY_GRADIENT: SkyGradient;
270
+ export declare const PRECIPITATION_COUNT = 2048;
271
+ export declare const PRECIPITATION_VOLUME_SIZE = 60;
272
+ export declare const PRECIPITATION_VOLUME_HEIGHT = 30;
273
+ export declare const PRECIPITATION_SWAY_SPEED = 1.3;
274
+ export declare const PRECIPITATION_SETTINGS_MAP: Readonly<Record<PrecipitationKind, PrecipitationSettings>>;
275
+ export declare const WEATHER_SETTINGS_MAP: Readonly<Record<WeatherKind, WeatherSettings>>;
276
+ export declare const WEATHER_TRANSITION_SECONDS = 9;
277
+ export declare const LIGHTNING_FLASH_PULSES: readonly LightningFlashPulse[];
278
+ export declare const LIGHTNING_FLASH_DECAY_SECONDS = .08;
279
+ export declare const LIGHTNING_FLASH_COLOR = 14344191;
280
+ export declare const LIGHTNING_FLASH_SKY = .6;
281
+ export declare const LIGHTNING_FLASH_AMBIENT = 1.2;
282
+ export declare const LIGHTNING_FLASH_END = .01;
283
+ export declare const LIGHTNING_BOLT_OPTIONS: Readonly<Pick<LightningBoltOptions, "branchCount" | "height" | "roughness" | "segmentCount" | "width">>;
284
+ export declare const LIGHTNING_BOLT_COLOR = 15263487;
285
+ export declare const LIGHTNING_BOLT_BRIGHTNESS = 3;
286
+ export declare const LIGHTNING_MIN_DISTANCE = 150;
287
+ export declare const LIGHTNING_MAX_DISTANCE = 600;
288
+ export declare const SPLASH_COUNT = 768;
289
+ export declare const SPLASH_RADIUS = 16;
290
+ export declare const SPLASH_LIFETIME = .35;
291
+ export declare const SPLASH_SIZE = .4;
292
+ export declare const SPLASH_OPACITY = .5;
293
+ export declare const SPLASH_LIFT = .03;
136
294
  //#endregion
137
295
  //#region src/models/atmosphere/CloudSprite.d.ts
138
296
  export interface CloudSprite {
@@ -167,6 +325,102 @@ export interface CloudPlacement {
167
325
  //#region src/atmosphere/createCloudBandSprite.d.ts
168
326
  export declare const createCloudBandSprite: (atlas: Texture, clouds: readonly CloudPlacement[], { aspect, spriteCount }: CloudBandSpriteOptions, skyUniforms: SkyUniforms) => CloudBandSprite;
169
327
  //#endregion
328
+ //#region src/models/atmosphere/CloudLayerDome.d.ts
329
+ export interface CloudLayerDome {
330
+ center: readonly number[];
331
+ elevations: readonly number[];
332
+ far: readonly number[];
333
+ near: readonly number[];
334
+ normalElevations: readonly number[];
335
+ turn: number;
336
+ wisps: readonly number[];
337
+ wispsTurn: number;
338
+ }
339
+ //#endregion
340
+ //#region src/atmosphere/createCloudLayerProfileTexture.d.ts
341
+ export declare const createCloudLayerProfileTexture: ({ elevations, far, near, normalElevations, wisps }: Pick<CloudLayerDome, "elevations" | "far" | "near" | "normalElevations" | "wisps">) => DataTexture;
342
+ //#endregion
343
+ //#region src/models/noise/SpectralNoiseChannel.d.ts
344
+ export interface SpectralNoiseChannel {
345
+ amplitudes: number[];
346
+ correlation?: {
347
+ channel: number;
348
+ share: number;
349
+ };
350
+ mean: number;
351
+ quantiles?: number[][];
352
+ }
353
+ //#endregion
354
+ //#region src/models/noise/SpectralNoiseProfile.d.ts
355
+ export interface SpectralNoiseProfile {
356
+ channels: SpectralNoiseChannel[];
357
+ height: number;
358
+ width: number;
359
+ }
360
+ //#endregion
361
+ //#region src/atmosphere/createCloudLayerTexture.d.ts
362
+ export declare const createCloudLayerTexture: ({ height, width }: Pick<SpectralNoiseProfile, "height" | "width">) => DataTexture;
363
+ //#endregion
364
+ //#region src/models/atmosphere/CloudLayerTextureProfiles.d.ts
365
+ export interface CloudLayerTextureProfiles {
366
+ curl: SpectralNoiseProfile;
367
+ density: SpectralNoiseProfile;
368
+ normal: {
369
+ bias: number[];
370
+ height: SpectralNoiseProfile;
371
+ };
372
+ wisps: SpectralNoiseProfile;
373
+ }
374
+ //#endregion
375
+ //#region src/atmosphere/createCloudLayerTextures.d.ts
376
+ export declare const createCloudLayerTextures: ({ curl, density, normal, wisps }: CloudLayerTextureProfiles) => {
377
+ curl: DataTexture;
378
+ density: DataTexture;
379
+ normal: DataTexture;
380
+ wisps: DataTexture;
381
+ };
382
+ //#endregion
383
+ //#region src/models/atmosphere/CloudLayerUniforms.d.ts
384
+ export interface CloudLayerUniforms {
385
+ center: UniformNode<"vec2", Vector2>;
386
+ curl: TextureNode;
387
+ curlAmplitude: UniformNode<"float", number>;
388
+ curlSpeed: UniformNode<"float", number>;
389
+ curlTiling: UniformNode<"float", number>;
390
+ density: TextureNode;
391
+ direction: UniformNode<"vec2", Vector2>;
392
+ elapsedTime: UniformNode<"float", number>;
393
+ height: UniformNode<"float", number>;
394
+ lightDirection: UniformNode<"vec3", Vector3>;
395
+ normal: TextureNode;
396
+ normalYScale: UniformNode<"float", number>;
397
+ opacity: UniformNode<"float", number>;
398
+ profile: TextureNode;
399
+ smoothness: UniformNode<"vec2", Vector2>;
400
+ sunBrightness: UniformNode<"float", number>;
401
+ sunRimLightRadius: UniformNode<"float", number>;
402
+ tiling: UniformNode<"float", number>;
403
+ turn: UniformNode<"float", number>;
404
+ weather: UniformNode<"vec3", Vector3>;
405
+ wisps: TextureNode;
406
+ wispsCoverage: UniformNode<"float", number>;
407
+ wispsElapsedTime: UniformNode<"float", number>;
408
+ wispsOpacity: UniformNode<"float", number>;
409
+ wispsTurn: UniformNode<"float", number>;
410
+ }
411
+ //#endregion
412
+ //#region src/atmosphere/createCloudLayerUniforms.d.ts
413
+ export declare const createCloudLayerUniforms: ({ center, turn, wispsTurn, ...profiles }: CloudLayerDome, textures: Record<"curl" | "density" | "normal" | "wisps", Texture>) => CloudLayerUniforms;
414
+ //#endregion
415
+ //#region src/atmosphere/createLightningBoltGeometry.d.ts
416
+ export declare const createLightningBoltGeometry: ({ directions, indices, positions, sides }: LightningBolt) => BufferGeometry;
417
+ //#endregion
418
+ //#region src/atmosphere/createPrecipitationGeometry.d.ts
419
+ export declare const createPrecipitationGeometry: (particleCount: number) => InstancedBufferGeometry;
420
+ //#endregion
421
+ //#region src/atmosphere/createPrecipitationUniforms.d.ts
422
+ export declare const createPrecipitationUniforms: () => PrecipitationUniforms;
423
+ //#endregion
170
424
  //#region src/atmosphere/createSkyGradientTexture.d.ts
171
425
  export declare const createSkyGradientTexture: ({ green, red }: SkyGradient) => DataTexture;
172
426
  //#endregion
@@ -176,9 +430,17 @@ export declare const createSkyState: () => SkyState;
176
430
  //#region src/atmosphere/createSkyUniforms.d.ts
177
431
  export declare const createSkyUniforms: () => SkyUniforms;
178
432
  //#endregion
433
+ //#region src/models/nodes/AnchoredCascadeShadowNode.d.ts
434
+ export declare class AnchoredCascadeShadowNode extends CSMShadowNode {
435
+ #private;
436
+ anchor: Vector3;
437
+ constructor(light: DirectionalLight, data: CSMShadowNodeData);
438
+ override updateBefore(frame: NodeFrame): undefined;
439
+ }
440
+ //#endregion
179
441
  //#region src/models/atmosphere/SunLight.d.ts
180
442
  export interface SunLight {
181
- cascadedShadowNode: CSMShadowNode;
443
+ cascadedShadowNode: AnchoredCascadeShadowNode;
182
444
  light: DirectionalLight;
183
445
  }
184
446
  //#endregion
@@ -218,6 +480,12 @@ export interface SkyKeyframe extends BaseSkyState {
218
480
  //#region src/atmosphere/sampleSkyState.d.ts
219
481
  export declare const sampleSkyState: (skyKeyframes: readonly SkyKeyframe[], minutes: number, tilt: number, skyState: SkyState) => SkyState;
220
482
  //#endregion
483
+ //#region src/atmosphere/synthesizeCloudLayerTextures.d.ts
484
+ export declare const synthesizeCloudLayerTextures: ({ curl, density, normal, wisps }: CloudLayerTextureProfiles, textures: Record<"curl" | "density" | "normal" | "wisps", DataTexture>) => Promise<void>;
485
+ //#endregion
486
+ //#region src/atmosphere/writeCloudLayerTexture.d.ts
487
+ export declare const writeCloudLayerTexture: (texture: DataTexture, readTexel: (index: number) => readonly number[]) => void;
488
+ //#endregion
221
489
  //#region src/models/audio/MusicNote.d.ts
222
490
  export interface MusicNote {
223
491
  duration: number;
@@ -226,6 +494,22 @@ export interface MusicNote {
226
494
  velocity: number;
227
495
  }
228
496
  //#endregion
497
+ //#region src/models/audio/MusicSampleRange.d.ts
498
+ export interface MusicSampleRange {
499
+ highKey: number;
500
+ highVelocity: number;
501
+ lowKey: number;
502
+ lowVelocity: number;
503
+ }
504
+ //#endregion
505
+ //#region src/models/audio/MusicRecording.d.ts
506
+ export interface MusicRecording extends MusicSampleRange {
507
+ file: string;
508
+ gain: number;
509
+ keyCenter: number;
510
+ tune: number;
511
+ }
512
+ //#endregion
229
513
  //#region src/models/audio/Instrument.d.ts
230
514
  export interface Instrument {
231
515
  attack: number;
@@ -233,6 +517,8 @@ export interface Instrument {
233
517
  harmonics: number[];
234
518
  level: number;
235
519
  noiseBands: number[];
520
+ recordingLevel: number;
521
+ recordings: MusicRecording[];
236
522
  release: number;
237
523
  sustain: number;
238
524
  tuning: number;
@@ -256,6 +542,7 @@ export interface MusicSegment {
256
542
  duration: number;
257
543
  expression: number[];
258
544
  voices: MusicVoice[];
545
+ volume: number;
259
546
  }
260
547
  //#endregion
261
548
  //#region src/models/audio/ScheduledMusicSegment.d.ts
@@ -283,11 +570,13 @@ export declare const computeNoiseSamples: (noiseBands: readonly number[], sample
283
570
  //#region src/models/audio/SoundEffect.d.ts
284
571
  export interface SoundEffect {
285
572
  frameSeconds: number;
286
- levels: number[][];
573
+ leftLevels: number[][];
574
+ rightLevels: number[][];
575
+ sharedLevels: number[][];
287
576
  }
288
577
  //#endregion
289
578
  //#region src/audio/computeSoundEffectSamples.d.ts
290
- export declare const computeSoundEffectSamples: ({ frameSeconds, levels }: SoundEffect, sampleRate: number) => Float32Array;
579
+ export declare const computeSoundEffectSamples: ({ frameSeconds, leftLevels, rightLevels, sharedLevels }: SoundEffect, sampleRate: number, seed?: number) => [Float32Array, Float32Array];
291
580
  //#endregion
292
581
  //#region src/audio/constants.d.ts
293
582
  export declare const MUSIC_LOOKAHEAD_SECONDS = 2;
@@ -299,6 +588,8 @@ export declare const MUSIC_EXPRESSION_WINDOW_SECONDS = 8;
299
588
  export declare const A4_PITCH = 69;
300
589
  export declare const A4_FREQUENCY = 440;
301
590
  export declare const MIDI_VELOCITY_MAX = 127;
591
+ export declare const SOUND_EFFECT_BAND_EDGES: number[];
592
+ export declare const SOUND_EFFECT_FRAME_LENGTH = 2048;
302
593
  //#endregion
303
594
  //#region src/audio/createInstrumentWave.d.ts
304
595
  export declare const createInstrumentWave: (context: BaseAudioContext, harmonics: number[]) => PeriodicWave;
@@ -310,7 +601,7 @@ export interface MusicPlayer {
310
601
  }
311
602
  //#endregion
312
603
  //#region src/audio/createMusicPlayer.d.ts
313
- export declare const createMusicPlayer: (context: AudioContext, music: Music, destination?: AudioNode) => MusicPlayer;
604
+ export declare const createMusicPlayer: (context: AudioContext, music: Music, recordingBufferMap: ReadonlyMap<string, AudioBuffer>, destination?: AudioNode) => MusicPlayer;
314
605
  //#endregion
315
606
  //#region src/audio/createNoiseBuffer.d.ts
316
607
  export declare const createNoiseBuffer: (context: BaseAudioContext, noiseBands: number[]) => AudioBuffer | undefined;
@@ -318,8 +609,17 @@ export declare const createNoiseBuffer: (context: BaseAudioContext, noiseBands:
318
609
  //#region src/audio/createSoundEffectBuffer.d.ts
319
610
  export declare const createSoundEffectBuffer: (context: BaseAudioContext, soundEffect: SoundEffect) => AudioBuffer;
320
611
  //#endregion
612
+ //#region src/audio/getMusicRecordingGain.d.ts
613
+ export declare const getMusicRecordingGain: ({ gain }: Pick<MusicRecording, "gain">, velocity: number) => number;
614
+ //#endregion
615
+ //#region src/audio/getMusicRecordingRate.d.ts
616
+ export declare const getMusicRecordingRate: ({ keyCenter, tune }: Pick<MusicRecording, "keyCenter" | "tune">, pitch: number, tuning: number) => number;
617
+ //#endregion
618
+ //#region src/audio/getSoundEffectBandBins.d.ts
619
+ export declare const getSoundEffectBandBins: (sampleRate: number) => (readonly [number, number])[];
620
+ //#endregion
321
621
  //#region src/audio/renderMusicSegment.d.ts
322
- export declare const renderMusicSegment: (music: Music, segmentIndex: number, sampleRate: number) => Promise<AudioBuffer>;
622
+ export declare const renderMusicSegment: (music: Music, segmentIndex: number, sampleRate: number, recordingBufferMap: ReadonlyMap<string, AudioBuffer>) => Promise<AudioBuffer>;
323
623
  //#endregion
324
624
  //#region src/audio/scheduleMusicExpression.d.ts
325
625
  export declare const scheduleMusicExpression: (gain: AudioParam, expression: number[], start: number) => void;
@@ -327,13 +627,8 @@ export declare const scheduleMusicExpression: (gain: AudioParam, expression: num
327
627
  //#region src/audio/scheduleMusicNote.d.ts
328
628
  export declare const scheduleMusicNote: (context: BaseAudioContext, destination: AudioNode, wave: PeriodicWave, noiseBuffer: AudioBuffer | undefined, { attack, decay, level, release, sustain, tuning }: Instrument, { duration, pitch, velocity }: MusicNote, time: number) => void;
329
629
  //#endregion
330
- //#region src/models/audio/MusicSampleRange.d.ts
331
- export interface MusicSampleRange {
332
- highKey: number;
333
- highVelocity: number;
334
- lowKey: number;
335
- lowVelocity: number;
336
- }
630
+ //#region src/audio/scheduleMusicRecording.d.ts
631
+ export declare const scheduleMusicRecording: (context: BaseAudioContext, destination: AudioNode, recordingBufferMap: ReadonlyMap<string, AudioBuffer>, { recordingLevel, recordings, release, tuning }: Instrument, { duration, pitch, velocity }: MusicNote, time: number) => void;
337
632
  //#endregion
338
633
  //#region src/audio/selectMusicSample.d.ts
339
634
  export declare const selectMusicSample: <T extends MusicSampleRange>(samples: T[], pitch: number, velocity: number) => T | undefined;
@@ -341,6 +636,744 @@ export declare const selectMusicSample: <T extends MusicSampleRange>(samples: T[
341
636
  //#region src/audio/transformFourier.d.ts
342
637
  export declare const transformFourier: (real: Float64Array, imaginary: Float64Array) => void;
343
638
  //#endregion
639
+ //#region src/models/camera/FollowCameraSettings.d.ts
640
+ export interface FollowCameraSettings {
641
+ defaultDistance: number;
642
+ horizontalSensitivity: number;
643
+ verticalSensitivity: number;
644
+ }
645
+ //#endregion
646
+ //#region src/camera/constants.d.ts
647
+ export declare const FREE_CAMERA_BASE_SPEED = 8;
648
+ export declare const FREE_CAMERA_SPEED_PER_HEIGHT = .5;
649
+ export declare const FREE_CAMERA_CLEARANCE = 1.5;
650
+ export declare const FREE_CAMERA_MAX_PITCH: number;
651
+ export declare const FOLLOW_CAMERA_DEFAULT_SETTINGS: FollowCameraSettings;
652
+ export declare const FOLLOW_CAMERA_NEUTRAL_SENSITIVITY = 3;
653
+ export declare const FOLLOW_CAMERA_PIVOT_SHARE = .7;
654
+ export declare const FOLLOW_CAMERA_FOV = 45;
655
+ export declare const FOLLOW_CAMERA_MIN_PITCH: number;
656
+ export declare const FOLLOW_CAMERA_MAX_PITCH: number;
657
+ export declare const FOLLOW_CAMERA_MIN_DISTANCE = 1;
658
+ export declare const FOLLOW_CAMERA_MAX_DISTANCE = 6;
659
+ export declare const FOLLOW_CAMERA_DISTANCE_PER_ZOOM_STEP = .5;
660
+ export declare const FOLLOW_CAMERA_EASE_OUT_SPEED = 4;
661
+ export declare const FOLLOW_CAMERA_CLEARANCE = .2;
662
+ export declare const FOLLOW_CAMERA_ARM_STEP = .25;
663
+ //#endregion
664
+ //#region src/models/input/InputAction.d.ts
665
+ export declare enum InputAction {
666
+ Aim = "Aim",
667
+ Cancel = "Cancel",
668
+ Confirm = "Confirm",
669
+ Drop = "Drop",
670
+ ElementalBurst = "ElementalBurst",
671
+ ElementalSight = "ElementalSight",
672
+ ElementalSkill = "ElementalSkill",
673
+ HideInterface = "HideInterface",
674
+ Interact = "Interact",
675
+ Jump = "Jump",
676
+ NormalAttack = "NormalAttack",
677
+ OpenAdventurerHandbook = "OpenAdventurerHandbook",
678
+ OpenBattlePass = "OpenBattlePass",
679
+ OpenCharacter = "OpenCharacter",
680
+ OpenChat = "OpenChat",
681
+ OpenCoOp = "OpenCoOp",
682
+ OpenEvents = "OpenEvents",
683
+ OpenFriends = "OpenFriends",
684
+ OpenInventory = "OpenInventory",
685
+ OpenMap = "OpenMap",
686
+ OpenPaimonMenu = "OpenPaimonMenu",
687
+ OpenPartySetup = "OpenPartySetup",
688
+ OpenQuests = "OpenQuests",
689
+ OpenShortcutWheel = "OpenShortcutWheel",
690
+ OpenWish = "OpenWish",
691
+ QuestNavigation = "QuestNavigation",
692
+ QuickUseGadget = "QuickUseGadget",
693
+ ResetCamera = "ResetCamera",
694
+ ShowCursor = "ShowCursor",
695
+ Sprint = "Sprint",
696
+ SwitchToPartyMember1 = "SwitchToPartyMember1",
697
+ SwitchToPartyMember2 = "SwitchToPartyMember2",
698
+ SwitchToPartyMember3 = "SwitchToPartyMember3",
699
+ SwitchToPartyMember4 = "SwitchToPartyMember4",
700
+ SwitchToPartyMemberAndBurst1 = "SwitchToPartyMemberAndBurst1",
701
+ SwitchToPartyMemberAndBurst2 = "SwitchToPartyMemberAndBurst2",
702
+ SwitchToPartyMemberAndBurst3 = "SwitchToPartyMemberAndBurst3",
703
+ SwitchToPartyMemberAndBurst4 = "SwitchToPartyMemberAndBurst4",
704
+ SwitchWalkRun = "SwitchWalkRun"
705
+ }
706
+ export declare const InputActions: readonly InputAction[];
707
+ //#endregion
708
+ //#region src/models/input/InputState.d.ts
709
+ export interface InputState {
710
+ heldActions: ReadonlySet<InputAction>;
711
+ lookPitch: number;
712
+ lookYaw: number;
713
+ moveForward: number;
714
+ moveRight: number;
715
+ moveUp: number;
716
+ pressedActions: ReadonlySet<InputAction>;
717
+ zoomSteps: number;
718
+ }
719
+ //#endregion
720
+ //#region src/models/camera/FollowCamera.d.ts
721
+ export interface FollowCamera {
722
+ follow: (pivot: Vector3, origin: Vector3, frameSeconds: number) => void;
723
+ look: (input: InputState, facing: number) => void;
724
+ reset: (facing: number) => void;
725
+ readonly yaw: number;
726
+ }
727
+ //#endregion
728
+ //#region src/models/collision/GroundSample.d.ts
729
+ export interface GroundSample {
730
+ height: number;
731
+ normal: Vector3;
732
+ }
733
+ //#endregion
734
+ //#region src/models/collision/GroundQuery.d.ts
735
+ export interface GroundQuery {
736
+ getGround: (x: number, z: number) => GroundSample;
737
+ getWaterLevel: () => number;
738
+ }
739
+ //#endregion
740
+ //#region src/models/collision/CapsulePush.d.ts
741
+ export interface CapsulePush {
742
+ depth: number;
743
+ normal: Vector3;
744
+ }
745
+ //#endregion
746
+ //#region src/models/collision/LandmarkCollider.d.ts
747
+ export interface LandmarkCollider {
748
+ castSphere: (origin: Vector3, direction: Vector3, distance: number, radius: number) => number;
749
+ pushCapsule: (capsule: Capsule) => CapsulePush | undefined;
750
+ syncLandmarks: (root: Object3D) => void;
751
+ }
752
+ //#endregion
753
+ //#region src/models/camera/FollowCameraOptions.d.ts
754
+ export interface FollowCameraOptions {
755
+ camera: PerspectiveCamera;
756
+ ground: GroundQuery;
757
+ landmarkCollider: LandmarkCollider;
758
+ settings: FollowCameraSettings;
759
+ }
760
+ //#endregion
761
+ //#region src/camera/createFollowCamera.d.ts
762
+ export declare const createFollowCamera: ({ camera, ground, landmarkCollider, settings }: FollowCameraOptions) => FollowCamera;
763
+ //#endregion
764
+ //#region src/models/camera/FreeCamera.d.ts
765
+ export interface FreeCamera {
766
+ look: (input: InputState) => void;
767
+ step: (input: InputState, stepSeconds: number) => void;
768
+ }
769
+ //#endregion
770
+ //#region src/models/camera/FreeCameraOptions.d.ts
771
+ export interface FreeCameraOptions {
772
+ camera: PerspectiveCamera;
773
+ ground: GroundQuery;
774
+ }
775
+ //#endregion
776
+ //#region src/camera/createFreeCamera.d.ts
777
+ export declare const createFreeCamera: ({ camera, ground }: FreeCameraOptions) => FreeCamera;
778
+ //#endregion
779
+ //#region src/character/checkTransparentTexels.d.ts
780
+ export declare const checkTransparentTexels: (image: ImageBitmap) => boolean;
781
+ //#endregion
782
+ //#region src/character/constants.d.ts
783
+ export declare const PMX_UNIT_METRES = .08;
784
+ export declare const SHARED_TOON_RAMP_SHADES: readonly number[];
785
+ //#endregion
786
+ //#region src/models/character/CharacterMaterialKind.d.ts
787
+ export declare enum CharacterMaterialKind {
788
+ Body = 0,
789
+ Face = 1,
790
+ Hair = 2
791
+ }
792
+ //#endregion
793
+ //#region src/models/character/FaceDraw.d.ts
794
+ export interface FaceDraw {
795
+ flip: UniformNode<"float", number>;
796
+ flipFactor: number;
797
+ rotateOffset: number;
798
+ threshold: UniformNode<"float", number>;
799
+ }
800
+ //#endregion
801
+ //#region src/models/character/ShadingRegionColours.d.ts
802
+ export type ShadingRegionColours = Record<"five" | "four" | "one" | "three" | "two", Vector3Tuple>;
803
+ //#endregion
804
+ //#region src/models/character/OutlineRegions.d.ts
805
+ export interface OutlineRegions {
806
+ colors: ShadingRegionColours;
807
+ intensities: Record<keyof ShadingRegionColours, number>;
808
+ }
809
+ //#endregion
810
+ //#region src/models/character/RampLayout.d.ts
811
+ export declare enum RampLayout {
812
+ Horizontal = 0,
813
+ Vertical = 1
814
+ }
815
+ //#endregion
816
+ //#region src/models/character/ShadingRegionToggles.d.ts
817
+ export interface ShadingRegionToggles {
818
+ five: boolean;
819
+ four: boolean;
820
+ three: boolean;
821
+ two: boolean;
822
+ }
823
+ //#endregion
824
+ //#region src/models/character/CharacterShadingInputs.d.ts
825
+ export interface CharacterShadingInputs {
826
+ brightness: number;
827
+ color: Vector3Tuple;
828
+ contrastScale: number;
829
+ coolShadowMultiplyColors: ShadingRegionColours;
830
+ coolShadowTone: number;
831
+ desaturateScale: number;
832
+ emissionColor: Vector3Tuple;
833
+ emissionScaler: number;
834
+ faceDraw: FaceDraw;
835
+ faceMap?: Texture;
836
+ faceSoftness: number;
837
+ isCoolShadow: boolean;
838
+ isEmissionFromAlpha: boolean;
839
+ isLightMapAo: boolean;
840
+ isOutlineVertexWeighted: boolean;
841
+ isVertexAo: boolean;
842
+ isVertexRampWidth: boolean;
843
+ kind: CharacterMaterialKind;
844
+ lightArea: number;
845
+ lightMapTexture?: Texture;
846
+ mainTexture?: Texture;
847
+ metalDarkColor: Vector3Tuple;
848
+ metalLightColor: Vector3Tuple;
849
+ metalTexture?: Texture;
850
+ outlineDepths: Vector3Tuple;
851
+ outlineOffset?: {
852
+ blockBChannel: number;
853
+ size: number;
854
+ };
855
+ outlineRegions?: OutlineRegions;
856
+ outlineScales: Vector3Tuple;
857
+ rampLayout: RampLayout;
858
+ rampTexture: Texture;
859
+ rampWidth: number;
860
+ regionTints: Record<"five" | "four" | "three" | "two", Vector3Tuple>;
861
+ regionToggles: ShadingRegionToggles;
862
+ shadowMultiplyColors: ShadingRegionColours;
863
+ shininess: number;
864
+ specularColor: Vector3Tuple;
865
+ specularInShadow: number;
866
+ specularMultiplier: number;
867
+ vertexAo: number;
868
+ vertexRampWidth: number;
869
+ }
870
+ //#endregion
871
+ //#region src/models/character/PmxSphereMode.d.ts
872
+ export declare enum PmxSphereMode {
873
+ Disabled = 0,
874
+ Multiply = 1,
875
+ Add = 2,
876
+ AdditionalUv = 3
877
+ }
878
+ //#endregion
879
+ //#region src/models/character/PmxMaterial.d.ts
880
+ export interface PmxMaterial {
881
+ ambientColor: Vector3Tuple;
882
+ diffuseColor: Vector4Tuple;
883
+ edgeColor: Vector4Tuple;
884
+ edgeSize: number;
885
+ indexCount: number;
886
+ isDoubleSided: boolean;
887
+ isOutlined: boolean;
888
+ isToonShared: boolean;
889
+ name: string;
890
+ specularColor: Vector3Tuple;
891
+ specularity: number;
892
+ sphereMode: PmxSphereMode;
893
+ sphereTextureIndex: number;
894
+ textureIndex: number;
895
+ toonIndex: number;
896
+ }
897
+ //#endregion
898
+ //#region src/models/character/CharacterMaterialOptions.d.ts
899
+ export interface CharacterMaterialOptions {
900
+ isTextureTransparent?: boolean;
901
+ lightUniforms: LightUniforms;
902
+ pmxMaterial: PmxMaterial;
903
+ rampTexture: DataTexture;
904
+ shadingInputs?: Partial<CharacterShadingInputs>;
905
+ sphereTexture?: Texture;
906
+ texture?: Texture;
907
+ toonTexture?: Texture;
908
+ }
909
+ //#endregion
910
+ //#region src/models/nodes/OutlineWidthKnots.d.ts
911
+ export interface OutlineWidthKnots {
912
+ depths: Vector3Tuple;
913
+ scales: Vector3Tuple;
914
+ }
915
+ //#endregion
916
+ //#region src/models/nodes/ToonEdge.d.ts
917
+ export interface ToonEdge {
918
+ color: Node<"vec4"> | Vector4Tuple;
919
+ isVertexWeighted?: boolean;
920
+ offset?: {
921
+ blockBChannel: number;
922
+ size: number;
923
+ };
924
+ size: number;
925
+ widthKnots: OutlineWidthKnots;
926
+ }
927
+ //#endregion
928
+ //#region src/models/nodes/ToonNodeMaterial.d.ts
929
+ export declare class ToonNodeMaterial extends MeshToonNodeMaterial {
930
+ edge?: ToonEdge;
931
+ emissiveNode: Node | null;
932
+ readonly isMeshToonMaterial: boolean;
933
+ override readonly isMeshToonNodeMaterial: boolean;
934
+ sphereMap?: Texture$1;
935
+ constructor(parameters: MeshToonNodeMaterialParameters, isOutlined: boolean, edge?: ToonEdge);
936
+ }
937
+ //#endregion
938
+ //#region src/character/createCharacterMaterial.d.ts
939
+ export declare const createCharacterMaterial: ({ isTextureTransparent, lightUniforms, pmxMaterial: { diffuseColor: [red, green, blue, opacity], edgeColor, edgeSize, isDoubleSided, isOutlined, isToonShared, specularColor, specularity, sphereMode, toonIndex }, rampTexture, shadingInputs: gameShadingInputs, sphereTexture, texture: diffuseTexture, toonTexture }: CharacterMaterialOptions) => ToonNodeMaterial;
940
+ //#endregion
941
+ //#region src/character/createCharacterShadingInputs.d.ts
942
+ export type CharacterShadingOverrides = Partial<CharacterShadingInputs> & {
943
+ rampTexture: Texture;
944
+ };
945
+ export declare const createCharacterShadingInputs: (overrides: CharacterShadingOverrides) => CharacterShadingInputs;
946
+ //#endregion
947
+ //#region src/models/character/PmxBone.d.ts
948
+ export interface PmxBone {
949
+ name: string;
950
+ parentIndex: number;
951
+ position: Vector3Tuple;
952
+ }
953
+ //#endregion
954
+ //#region src/models/character/PmxJointKind.d.ts
955
+ export declare enum PmxJointKind {
956
+ SpringSixDegreesOfFreedom = 0,
957
+ SixDegreesOfFreedom = 1,
958
+ PointToPoint = 2,
959
+ ConeTwist = 3,
960
+ Slider = 4,
961
+ Hinge = 5
962
+ }
963
+ //#endregion
964
+ //#region src/models/character/PmxJoint.d.ts
965
+ export interface PmxJoint {
966
+ firstRigidBodyIndex: number;
967
+ kind: PmxJointKind;
968
+ name: string;
969
+ position: Vector3Tuple;
970
+ rotation: Vector3Tuple;
971
+ rotationMaximum: Vector3Tuple;
972
+ rotationMinimum: Vector3Tuple;
973
+ rotationSpring: Vector3Tuple;
974
+ secondRigidBodyIndex: number;
975
+ translationMaximum: Vector3Tuple;
976
+ translationMinimum: Vector3Tuple;
977
+ translationSpring: Vector3Tuple;
978
+ }
979
+ //#endregion
980
+ //#region src/models/character/PmxMorphKind.d.ts
981
+ export declare enum PmxMorphKind {
982
+ Group = 0,
983
+ Vertex = 1,
984
+ Bone = 2,
985
+ Uv = 3,
986
+ AdditionalUv1 = 4,
987
+ AdditionalUv2 = 5,
988
+ AdditionalUv3 = 6,
989
+ AdditionalUv4 = 7,
990
+ Material = 8,
991
+ Flip = 9,
992
+ Impulse = 10
993
+ }
994
+ //#endregion
995
+ //#region src/models/character/PmxMorph.d.ts
996
+ export interface PmxMorph {
997
+ indices: Uint32Array;
998
+ kind: PmxMorphKind;
999
+ name: string;
1000
+ values: Float32Array;
1001
+ }
1002
+ //#endregion
1003
+ //#region src/models/character/PmxPhysicsMode.d.ts
1004
+ export declare enum PmxPhysicsMode {
1005
+ FollowBone = 0,
1006
+ Physics = 1,
1007
+ PhysicsWithBone = 2
1008
+ }
1009
+ //#endregion
1010
+ //#region src/models/character/PmxRigidBodyShape.d.ts
1011
+ export declare enum PmxRigidBodyShape {
1012
+ Sphere = 0,
1013
+ Box = 1,
1014
+ Capsule = 2
1015
+ }
1016
+ //#endregion
1017
+ //#region src/models/character/PmxRigidBody.d.ts
1018
+ export interface PmxRigidBody {
1019
+ angularDamping: number;
1020
+ boneIndex: number;
1021
+ friction: number;
1022
+ group: number;
1023
+ linearDamping: number;
1024
+ mass: number;
1025
+ name: string;
1026
+ nonCollidingGroups: number;
1027
+ physicsMode: PmxPhysicsMode;
1028
+ position: Vector3Tuple;
1029
+ restitution: number;
1030
+ rotation: Vector3Tuple;
1031
+ shape: PmxRigidBodyShape;
1032
+ size: Vector3Tuple;
1033
+ }
1034
+ //#endregion
1035
+ //#region src/models/character/PmxVertices.d.ts
1036
+ export interface PmxVertices {
1037
+ normals: Float32Array;
1038
+ positions: Float32Array;
1039
+ skinIndices: Uint16Array;
1040
+ skinWeights: Float32Array;
1041
+ subUvs: Float32Array;
1042
+ uvs: Float32Array;
1043
+ }
1044
+ //#endregion
1045
+ //#region src/models/character/PmxModel.d.ts
1046
+ export interface PmxModel {
1047
+ bones: PmxBone[];
1048
+ indices: Uint32Array;
1049
+ joints: PmxJoint[];
1050
+ materials: PmxMaterial[];
1051
+ morphs: PmxMorph[];
1052
+ name: string;
1053
+ rigidBodies: PmxRigidBody[];
1054
+ textures: string[];
1055
+ vertices: PmxVertices;
1056
+ }
1057
+ //#endregion
1058
+ //#region src/character/createPmxGeometry.d.ts
1059
+ export declare const createPmxGeometry: ({ indices, materials, vertices: { normals, positions, skinIndices, skinWeights, subUvs, uvs } }: Pick<PmxModel, "indices" | "materials" | "vertices">) => BufferGeometry;
1060
+ //#endregion
1061
+ //#region src/character/createPmxMesh.d.ts
1062
+ export declare const createPmxMesh: <TMaterial extends Material>(pmxModel: PmxModel, materials: TMaterial[]) => SkinnedMesh<BufferGeometry, TMaterial[]>;
1063
+ //#endregion
1064
+ //#region src/character/createPmxSkeleton.d.ts
1065
+ export declare const createPmxSkeleton: (pmxBones: readonly PmxBone[]) => Skeleton;
1066
+ //#endregion
1067
+ //#region src/character/createPmxTexture.d.ts
1068
+ export declare const createPmxTexture: (blob: Blob) => Promise<Texture>;
1069
+ export declare const createPmxToonTexture: (blob: Blob) => Promise<Texture>;
1070
+ //#endregion
1071
+ //#region src/character/getSharedToonRamp.d.ts
1072
+ export declare const getSharedToonRamp: (toonIndex: number) => DataTexture | undefined;
1073
+ //#endregion
1074
+ //#region src/character/parsePmx.d.ts
1075
+ export declare const parsePmx: (buffer: ArrayBuffer) => PmxModel;
1076
+ //#endregion
1077
+ //#region src/models/character/PmxReader.d.ts
1078
+ export declare class PmxReader {
1079
+ #private;
1080
+ readonly additionalVectorCount: number;
1081
+ readonly boneIndexSize: number;
1082
+ readonly materialIndexSize: number;
1083
+ readonly morphIndexSize: number;
1084
+ readonly rigidBodyIndexSize: number;
1085
+ readonly textureIndexSize: number;
1086
+ readonly vertexIndexSize: number;
1087
+ constructor(buffer: ArrayBuffer);
1088
+ readBoneIndex(): number;
1089
+ readFloat32(): number;
1090
+ readInt32(): number;
1091
+ readMaterialIndex(): number;
1092
+ readMirroredRotation(): Vector3Tuple;
1093
+ readMirroredVector3(): Vector3Tuple;
1094
+ readMirroredVector3Into(target: Float32Array, offset: number): void;
1095
+ readMorphIndex(): number;
1096
+ readRigidBodyIndex(): number;
1097
+ readText(): string;
1098
+ readTextureIndex(): number;
1099
+ readUint8(): number;
1100
+ readUint16(): number;
1101
+ readVector3(): Vector3Tuple;
1102
+ readVertexIndex(): number;
1103
+ skip(byteCount: number): void;
1104
+ }
1105
+ //#endregion
1106
+ //#region src/character/parsePmxBones.d.ts
1107
+ export declare const parsePmxBones: (reader: PmxReader) => PmxBone[];
1108
+ //#endregion
1109
+ //#region src/character/parsePmxJoints.d.ts
1110
+ export declare const parsePmxJoints: (reader: PmxReader) => PmxJoint[];
1111
+ //#endregion
1112
+ //#region src/character/parsePmxMaterials.d.ts
1113
+ export declare const parsePmxMaterials: (reader: PmxReader) => PmxMaterial[];
1114
+ //#endregion
1115
+ //#region src/character/parsePmxMorphs.d.ts
1116
+ export declare const parsePmxMorphs: (reader: PmxReader) => PmxMorph[];
1117
+ //#endregion
1118
+ //#region src/character/parsePmxRigidBodies.d.ts
1119
+ export declare const parsePmxRigidBodies: (reader: PmxReader) => PmxRigidBody[];
1120
+ //#endregion
1121
+ //#region src/character/parsePmxVertices.d.ts
1122
+ export declare const parsePmxVertices: (reader: PmxReader) => PmxVertices;
1123
+ //#endregion
1124
+ //#region src/character/pose/advanceStridePhase.d.ts
1125
+ export declare const advanceStridePhase: (stridePhase: number, speed: number, strideMetres: number, delta: number) => number;
1126
+ //#endregion
1127
+ //#region src/models/locomotion/LocomotionState.d.ts
1128
+ export declare enum LocomotionState {
1129
+ Climb = "Climb",
1130
+ ClimbJump = "ClimbJump",
1131
+ Dash = "Dash",
1132
+ Drown = "Drown",
1133
+ Fall = "Fall",
1134
+ Glide = "Glide",
1135
+ Idle = "Idle",
1136
+ Jump = "Jump",
1137
+ Plunge = "Plunge",
1138
+ Run = "Run",
1139
+ Sprint = "Sprint",
1140
+ Swim = "Swim",
1141
+ SwimDash = "SwimDash",
1142
+ Walk = "Walk"
1143
+ }
1144
+ //#endregion
1145
+ //#region src/models/character/CharacterPoseInput.d.ts
1146
+ export interface CharacterPoseInput {
1147
+ elapsed: number;
1148
+ state: LocomotionState;
1149
+ stridePhase: number;
1150
+ }
1151
+ //#endregion
1152
+ //#region src/models/character/MmdBoneName.d.ts
1153
+ export declare enum MmdBoneName {
1154
+ Center = "センター",
1155
+ Head = "頭",
1156
+ LeftAnkle = "左足首",
1157
+ LeftArm = "左腕",
1158
+ LeftElbow = "左ひじ",
1159
+ LeftKnee = "左ひざ",
1160
+ LeftLeg = "左足",
1161
+ LeftShoulder = "左肩",
1162
+ LeftWrist = "左手首",
1163
+ Lower = "下半身",
1164
+ Neck = "首",
1165
+ RightAnkle = "右足首",
1166
+ RightArm = "右腕",
1167
+ RightElbow = "右ひじ",
1168
+ RightKnee = "右ひざ",
1169
+ RightLeg = "右足",
1170
+ RightShoulder = "右肩",
1171
+ RightWrist = "右手首",
1172
+ Upper = "上半身",
1173
+ Upper2 = "上半身2"
1174
+ }
1175
+ //#endregion
1176
+ //#region src/models/character/CharacterPoseRotations.d.ts
1177
+ export type CharacterPoseRotations = Record<MmdBoneName, Quaternion>;
1178
+ //#endregion
1179
+ //#region src/character/pose/computeCharacterPose.d.ts
1180
+ export declare const computeCharacterPose: ({ elapsed, state, stridePhase }: CharacterPoseInput, rotations: CharacterPoseRotations) => void;
1181
+ //#endregion
1182
+ //#region src/character/pose/constants.d.ts
1183
+ export declare const POSE_BREATH_SECONDS = 4;
1184
+ export declare const POSE_CHEST_BREATH_RADIANS = .02;
1185
+ export declare const POSE_SHOULDER_BREATH_RADIANS = .02;
1186
+ export declare const POSE_ARM_LOWER_RADIANS = 1.2;
1187
+ export declare const POSE_ARM_CHAINS: readonly {
1188
+ arm: MmdBoneName;
1189
+ elbow: MmdBoneName;
1190
+ tDirection: Vector3Tuple;
1191
+ }[];
1192
+ export declare const POSE_ARM_BEND_RADIANS = .2;
1193
+ export declare const POSE_CROSSFADE_SECONDS = .25;
1194
+ export interface PoseGait {
1195
+ armBendRadians: number;
1196
+ armSwingRadians: number;
1197
+ kneeBendRadians: number;
1198
+ leanRadians: number;
1199
+ legSwingRadians: number;
1200
+ strideMetres: number;
1201
+ }
1202
+ export declare const POSE_GAITS: Partial<Record<LocomotionState, PoseGait>>;
1203
+ export interface PoseAirStance {
1204
+ armLowerRadians: number;
1205
+ kneeBendRadians: number;
1206
+ leanRadians: number;
1207
+ }
1208
+ export declare const POSE_AIR_STANCES: Partial<Record<LocomotionState, PoseAirStance>>;
1209
+ export declare const MMD_BONE_NAME_MAP: Record<MmdBoneName, string>;
1210
+ //#endregion
1211
+ //#region src/character/pose/createCharacterPoseRotations.d.ts
1212
+ export declare const createCharacterPoseRotations: () => CharacterPoseRotations;
1213
+ //#endregion
1214
+ //#region src/models/character/CharacterBoneNameMap.d.ts
1215
+ export type CharacterBoneNameMap = Partial<Record<MmdBoneName, string>>;
1216
+ //#endregion
1217
+ //#region src/models/locomotion/Locomotion.d.ts
1218
+ export interface Locomotion {
1219
+ capsuleHeight: number;
1220
+ capsuleRadius: number;
1221
+ climbJumpHeight: number;
1222
+ climbJumpSeconds: number;
1223
+ climbSpeed: number;
1224
+ dashSeconds: number;
1225
+ dashSpeed: number;
1226
+ drownSeconds: number;
1227
+ glideForwardSpeed: number;
1228
+ glideMinHeight: number;
1229
+ glideSinkSpeed: number;
1230
+ gravity: number;
1231
+ jumpHeight: number;
1232
+ maxFallSpeed: number;
1233
+ maxWalkableSlope: number;
1234
+ plungeSpeed: number;
1235
+ runSpeed: number;
1236
+ sprintSpeed: number;
1237
+ stepHeight: number;
1238
+ swimDashSpeed: number;
1239
+ swimDepth: number;
1240
+ swimSpeed: number;
1241
+ walkSpeed: number;
1242
+ }
1243
+ //#endregion
1244
+ //#region src/models/locomotion/LocomotionPhase.d.ts
1245
+ export interface LocomotionPhase {
1246
+ state: LocomotionState;
1247
+ stateSeconds: number;
1248
+ }
1249
+ //#endregion
1250
+ //#region src/character/pose/createCharacterPoser.d.ts
1251
+ export interface CharacterPoser {
1252
+ update: (update: CharacterPoseUpdate) => void;
1253
+ }
1254
+ export interface CharacterPoseUpdate {
1255
+ delta: number;
1256
+ locomotion: Locomotion;
1257
+ phase: LocomotionPhase;
1258
+ }
1259
+ export declare const createCharacterPoser: (skinnedMesh: SkinnedMesh, boneNameMap?: CharacterBoneNameMap) => CharacterPoser;
1260
+ //#endregion
1261
+ //#region src/character/pose/findSkinnedMesh.d.ts
1262
+ export declare const findSkinnedMesh: (object: Object3D) => SkinnedMesh | undefined;
1263
+ //#endregion
1264
+ //#region src/character/shading/constants.d.ts
1265
+ export declare const REGION_FLOORS: {
1266
+ readonly five: 0.6;
1267
+ readonly four: 0.2;
1268
+ readonly three: 0.4;
1269
+ readonly two: 0.8;
1270
+ };
1271
+ export declare const RAMP_ROW_BASE = .05;
1272
+ export declare const COOL_RAMP_ROW_BASE = .55;
1273
+ export declare const RAMP_ROW_STEP = .1;
1274
+ export declare const NEUTRAL_LIGHT_MAP_GREEN = .5;
1275
+ export declare const EMISSION_ALPHA_FLOOR = .01;
1276
+ export declare const TOON_LOW = .05;
1277
+ export declare const TOON_HIGH = .95;
1278
+ export declare const MINIMUM_RAMP_WIDTH_VERTEX = .01;
1279
+ export declare const MINIMUM_OUTLINE_KNOT_SPAN = .001;
1280
+ export declare const OUTLINE_PROJECTION_SCALE = 2.414;
1281
+ export declare const OUTLINE_WIDTH_SCALE = .41425;
1282
+ export declare const OUTLINE_MAIN_TEXTURE_SHARE = .2;
1283
+ export declare const DESATURATION_WEIGHTS: readonly [number, number, number];
1284
+ export declare const HALF_LAMBERT_SCALE = .4975;
1285
+ export declare const HALF_LAMBERT_OFFSET = .5;
1286
+ export declare const DEFAULT_LIGHT_AREA: number;
1287
+ export declare const DEFAULT_RAMP_WIDTH: number;
1288
+ export declare const MINIMUM_FACE_THRESHOLD = 1e-4;
1289
+ export declare const MAXIMUM_FACE_THRESHOLD = .9999;
1290
+ export declare const MAXIMUM_WINDOW_FLOOR = .9989;
1291
+ export declare const FLAT_LIGHT_MAP: Readonly<[number, number, number, number]>;
1292
+ //#endregion
1293
+ //#region src/character/shading/createCharacterShadingNode.d.ts
1294
+ export declare const createCharacterShadingNode: (inputs: CharacterShadingInputs, { lightColor, sunDirection }: Pick<LightUniforms, "lightColor" | "sunDirection">) => Node<"vec3">;
1295
+ //#endregion
1296
+ //#region src/character/shading/createFaceShadeNode.d.ts
1297
+ export declare const createFaceShadeNode: (faceMap: Texture | undefined, softness: number, { flip, threshold }: FaceDraw) => Node<"float">;
1298
+ //#endregion
1299
+ //#region src/character/shading/createOutlineColorNode.d.ts
1300
+ export declare const createOutlineColorNode: ({ color, contrastScale, desaturateScale, lightMapTexture, mainTexture, regionTints, regionToggles }: CharacterShadingInputs, { colors, intensities }: OutlineRegions) => Node<"vec3">;
1301
+ //#endregion
1302
+ //#region src/character/shading/createOutlineScaleNode.d.ts
1303
+ export declare const createOutlineScaleNode: (depths: Vector3Tuple, scales: Vector3Tuple) => Node<"float">;
1304
+ //#endregion
1305
+ //#region src/character/shading/createRampColumnNode.d.ts
1306
+ export declare const createRampColumnNode: (threshold: Node<"float">, lightArea: number, rampWidth: Node<"float">) => Node<"float">;
1307
+ //#endregion
1308
+ //#region src/character/shading/createRampUvNode.d.ts
1309
+ export declare const createRampUvNode: (layout: RampLayout, column: Node<"float">, row: Node<"float">) => Node<"vec2">;
1310
+ //#endregion
1311
+ //#region src/character/shading/createShadingRegionNode.d.ts
1312
+ export declare const createShadingRegionNode: (alpha: Node<"float">, toggles: ShadingRegionToggles) => Node<"float">;
1313
+ //#endregion
1314
+ //#region src/character/shading/createToneNode.d.ts
1315
+ export declare const createToneNode: (colour: Node<"vec3">, desaturateScale: number, contrastScale: number) => Node<"vec3">;
1316
+ //#endregion
1317
+ //#region src/models/character/ToonThresholdNodeInputs.d.ts
1318
+ export interface ToonThresholdNodeInputs {
1319
+ isLightMapAo: boolean;
1320
+ isVertexAo: boolean;
1321
+ lightMapGreen: Node<"float">;
1322
+ sunTerm: Node<"float">;
1323
+ vertexAo: number;
1324
+ }
1325
+ //#endregion
1326
+ //#region src/character/shading/createToonThresholdNode.d.ts
1327
+ export declare const createToonThresholdNode: ({ isLightMapAo, isVertexAo, lightMapGreen, sunTerm, vertexAo }: ToonThresholdNodeInputs) => Node<"float">;
1328
+ //#endregion
1329
+ //#region src/character/shading/getDesaturatedColour.d.ts
1330
+ export declare const getDesaturatedColour: (colour: Vector3, desaturateScale: number) => Vector3;
1331
+ //#endregion
1332
+ //#region src/character/shading/getOutlineDepth.d.ts
1333
+ export declare const getOutlineDepth: (viewZ: number, projectionYScale: number) => number;
1334
+ //#endregion
1335
+ //#region src/character/shading/getOutlineScale.d.ts
1336
+ export declare const getOutlineScale: (depth: number, knotDepths: Vector3, knotScales: Vector3) => number;
1337
+ //#endregion
1338
+ //#region src/character/shading/getRampColumn.d.ts
1339
+ export declare const getRampColumn: (threshold: number, lightArea: number, rampWidth: number) => number;
1340
+ //#endregion
1341
+ //#region src/character/shading/getRampRow.d.ts
1342
+ export declare const getRampRow: (region: number, isCoolShadow: boolean) => number;
1343
+ //#endregion
1344
+ //#region src/models/character/RampWidthInputs.d.ts
1345
+ export interface RampWidthInputs {
1346
+ isVertexRampWidth: boolean;
1347
+ rampWidth: number;
1348
+ vertexRampWidth: number;
1349
+ }
1350
+ //#endregion
1351
+ //#region src/character/shading/getRampWidth.d.ts
1352
+ export declare const getRampWidth: ({ isVertexRampWidth, rampWidth, vertexRampWidth }: RampWidthInputs) => number;
1353
+ //#endregion
1354
+ //#region src/character/shading/getShadingRegion.d.ts
1355
+ export declare const getShadingRegion: (alpha: number, toggles: ShadingRegionToggles) => number;
1356
+ //#endregion
1357
+ //#region src/character/shading/getToneColour.d.ts
1358
+ export declare const getToneColour: (colour: Vector3, desaturateScale: number, contrastScale: number) => Vector3;
1359
+ //#endregion
1360
+ //#region src/character/shading/getToonThreshold.d.ts
1361
+ export interface ToonThresholdInputs {
1362
+ isLightMapAo: boolean;
1363
+ isVertexAo: boolean;
1364
+ lightMapGreen: number;
1365
+ sunTerm: number;
1366
+ vertexAo: number;
1367
+ }
1368
+ export declare const getToonThreshold: ({ isLightMapAo, isVertexAo, lightMapGreen, sunTerm, vertexAo }: ToonThresholdInputs) => number;
1369
+ //#endregion
1370
+ //#region src/character/shading/selectRegionNode.d.ts
1371
+ export declare const selectRegionNode: <TNodeType>(region: Node<"float">, toRegionNode: (regionName: keyof ShadingRegionColours) => Node<TNodeType>) => Node<TNodeType>;
1372
+ //#endregion
1373
+ //#region src/character/shading/updateFaceDraw.d.ts
1374
+ export declare const createFaceDraw: ({ flipFactor, rotateOffset }?: Partial<Pick<FaceDraw, "flipFactor" | "rotateOffset">>) => FaceDraw;
1375
+ export declare const updateFaceDraw: (faceDraw: FaceDraw, lightDirection: Vector3, rootRotation: Quaternion) => void;
1376
+ //#endregion
344
1377
  //#region src/models/clock/GameClock.d.ts
345
1378
  export interface GameClock {
346
1379
  minutes: number;
@@ -354,12 +1387,101 @@ export declare const advanceGameClock: (gameClock: GameClock, deltaSeconds: numb
354
1387
  export declare const MINUTES_PER_DAY = 1440;
355
1388
  export declare const GAME_MINUTES_PER_SECOND = 1;
356
1389
  //#endregion
1390
+ //#region src/collision/constants.d.ts
1391
+ export declare const GROUND_NORMAL_SPAN = .1;
1392
+ export declare const SPHERE_CAST_STRIDE_SHARE = .5;
1393
+ //#endregion
1394
+ //#region src/collision/createGroundQuery.d.ts
1395
+ export declare const createGroundQuery: (getHeight: (x: number, z: number) => number, waterLevel: number) => GroundQuery;
1396
+ //#endregion
1397
+ //#region src/collision/createLandmarkCollider.d.ts
1398
+ export declare const createLandmarkCollider: () => LandmarkCollider;
1399
+ //#endregion
357
1400
  //#region src/constants.d.ts
358
1401
  export declare const MAX_BYTE = 255;
359
1402
  //#endregion
1403
+ //#region src/input/InputActionBindingMap.d.ts
1404
+ export declare const InputActionBindingMap: Readonly<Record<InputAction, readonly (readonly string[])[]>>;
1405
+ //#endregion
1406
+ //#region src/models/input/GamepadButton.d.ts
1407
+ export declare enum GamepadButton {
1408
+ Back = "GamepadBack",
1409
+ DirectionalPadDown = "GamepadDirectionalPadDown",
1410
+ DirectionalPadLeft = "GamepadDirectionalPadLeft",
1411
+ DirectionalPadRight = "GamepadDirectionalPadRight",
1412
+ DirectionalPadUp = "GamepadDirectionalPadUp",
1413
+ FaceBottom = "GamepadFaceBottom",
1414
+ FaceLeft = "GamepadFaceLeft",
1415
+ FaceRight = "GamepadFaceRight",
1416
+ FaceTop = "GamepadFaceTop",
1417
+ LeftBumper = "GamepadLeftBumper",
1418
+ LeftStick = "GamepadLeftStick",
1419
+ LeftTrigger = "GamepadLeftTrigger",
1420
+ RightBumper = "GamepadRightBumper",
1421
+ RightStick = "GamepadRightStick",
1422
+ RightTrigger = "GamepadRightTrigger",
1423
+ Start = "GamepadStart"
1424
+ }
1425
+ //#endregion
1426
+ //#region src/models/input/MouseButton.d.ts
1427
+ export declare enum MouseButton {
1428
+ Auxiliary = "MouseAuxiliary",
1429
+ Primary = "MousePrimary",
1430
+ Secondary = "MouseSecondary"
1431
+ }
1432
+ //#endregion
1433
+ //#region src/input/constants.d.ts
1434
+ export declare const KEY_CODE_FORWARD = "KeyW";
1435
+ export declare const KEY_CODE_BACKWARD = "KeyS";
1436
+ export declare const KEY_CODE_LEFT = "KeyA";
1437
+ export declare const KEY_CODE_RIGHT = "KeyD";
1438
+ export declare const KEY_CODE_UP = "Space";
1439
+ export declare const KEY_CODE_DOWN = "ShiftLeft";
1440
+ export declare const FOCUS_KEY_CODES: readonly string[];
1441
+ export declare const FIELD_SELECTOR = "input, select, textarea, [contenteditable=\"true\"]";
1442
+ export declare const GAMEPAD_BUTTONS: readonly GamepadButton[];
1443
+ export declare const MOUSE_BUTTONS: readonly MouseButton[];
1444
+ export declare const MOUSE_LOOK_RADIANS_PER_PIXEL = .002;
1445
+ export declare const MOUSE_LOOK_MAX_PIXELS_PER_EVENT: number;
1446
+ export declare const GAMEPAD_LOOK_RADIANS_PER_SECOND = 2.5;
1447
+ export declare const GAMEPAD_STICK_DEADZONE = .15;
1448
+ //#endregion
1449
+ //#region src/models/input/Input.d.ts
1450
+ export interface Input {
1451
+ dispose: () => void;
1452
+ press: (code: string) => void;
1453
+ readInput: (frameSeconds: number) => InputState;
1454
+ release: (code: string) => void;
1455
+ setTouchStick: (x: number, y: number) => void;
1456
+ turn: (lookYaw: number, lookPitch: number) => void;
1457
+ }
1458
+ //#endregion
1459
+ //#region src/input/createInput.d.ts
1460
+ export declare const createInput: (target: Window) => Input;
1461
+ //#endregion
360
1462
  //#region src/kits/architecture/createBoxesGeometry.d.ts
361
1463
  export declare const createBoxesGeometry: (boxes: readonly (readonly number[])[]) => BufferGeometry;
362
1464
  //#endregion
1465
+ //#region src/models/kits/architecture/RoofKind.d.ts
1466
+ export declare enum RoofKind {
1467
+ Conical = "Conical",
1468
+ Flat = "Flat"
1469
+ }
1470
+ //#endregion
1471
+ //#region src/models/kits/architecture/BuildingOptions.d.ts
1472
+ export interface BuildingOptions {
1473
+ depth: number;
1474
+ platformHeight: number;
1475
+ roofHeight: number;
1476
+ roofKind: RoofKind;
1477
+ wallHeight: number;
1478
+ wallThickness: number;
1479
+ width: number;
1480
+ }
1481
+ //#endregion
1482
+ //#region src/kits/architecture/createBuildingGeometry.d.ts
1483
+ export declare const createBuildingGeometry: ({ depth, platformHeight, roofHeight, roofKind, wallHeight, wallThickness, width }: BuildingOptions) => BufferGeometry;
1484
+ //#endregion
363
1485
  //#region src/models/kits/architecture/LatheSection.d.ts
364
1486
  export interface LatheSection {
365
1487
  bottomRadius: number;
@@ -377,11 +1499,26 @@ export interface LatheStackOptions {
377
1499
  //#region src/kits/architecture/createLatheStackGeometry.d.ts
378
1500
  export declare const createLatheStackGeometry: ({ isFaceted, radialSegments, sections }: LatheStackOptions) => BufferGeometry;
379
1501
  //#endregion
380
- //#region src/kits/mergeGeometryParts.d.ts
381
- export declare const mergeGeometryParts: (parts: BufferGeometry[]) => BufferGeometry;
1502
+ //#region src/models/kits/architecture/PavingStoneShape.d.ts
1503
+ export interface PavingStoneShape {
1504
+ bottom: number;
1505
+ radii: readonly number[];
1506
+ top: number;
1507
+ }
1508
+ //#endregion
1509
+ //#region src/models/kits/architecture/PavingStone.d.ts
1510
+ export interface PavingStone {
1511
+ position: readonly number[];
1512
+ quaternion: readonly number[];
1513
+ scale: readonly number[];
1514
+ shape: PavingStoneShape;
1515
+ }
1516
+ //#endregion
1517
+ //#region src/kits/architecture/createPavingGeometry.d.ts
1518
+ export declare const createPavingGeometry: (stones: readonly PavingStone[]) => BufferGeometry;
382
1519
  //#endregion
383
- //#region src/kits/statue/createStatueGeometry.d.ts
384
- export declare const createStatueGeometry: () => BufferGeometry;
1520
+ //#region src/kits/architecture/createPavingStoneGeometry.d.ts
1521
+ export declare const createPavingStoneGeometry: ({ bottom, radii, top }: PavingStoneShape) => BufferGeometry;
385
1522
  //#endregion
386
1523
  //#region src/models/kits/tree/LeafCards.d.ts
387
1524
  export interface LeafCards {
@@ -391,37 +1528,97 @@ export interface LeafCards {
391
1528
  uvs: Float32Array;
392
1529
  }
393
1530
  //#endregion
1531
+ //#region src/kits/createIndexedGeometry.d.ts
1532
+ export declare const createIndexedGeometry: ({ indices, normals, positions, uvs }: LeafCards) => BufferGeometry;
1533
+ //#endregion
1534
+ //#region src/kits/mergeGeometryParts.d.ts
1535
+ export declare const mergeGeometryParts: (parts: BufferGeometry[]) => BufferGeometry;
1536
+ //#endregion
1537
+ //#region src/models/kits/statue/StatueSection.d.ts
1538
+ export interface StatueSection {
1539
+ centre: readonly number[];
1540
+ colors: readonly number[];
1541
+ height: number;
1542
+ radii: readonly number[];
1543
+ }
1544
+ //#endregion
1545
+ //#region src/models/kits/statue/StatueSurface.d.ts
1546
+ export interface StatueSurface {
1547
+ colors: Float32Array;
1548
+ indices: Uint32Array;
1549
+ positions: Float32Array;
1550
+ }
1551
+ //#endregion
1552
+ //#region src/kits/statue/computeStatueSurface.d.ts
1553
+ export declare const computeStatueSurface: (sections: readonly StatueSection[]) => StatueSurface;
1554
+ //#endregion
1555
+ //#region src/models/kits/statue/StatueStack.d.ts
1556
+ export interface StatueStack {
1557
+ position: readonly number[];
1558
+ rotation: readonly number[];
1559
+ sections: StatueSection[];
1560
+ }
1561
+ //#endregion
1562
+ //#region src/models/kits/statue/StatuePart.d.ts
1563
+ export interface StatuePart extends StatueStack {
1564
+ part: string;
1565
+ }
1566
+ //#endregion
1567
+ //#region src/kits/statue/createStatueGeometries.d.ts
1568
+ export declare const createStatueGeometries: (parts: readonly StatuePart[]) => Record<string, BufferGeometry>;
1569
+ //#endregion
1570
+ //#region src/models/kits/tree/TreeCluster.d.ts
1571
+ export interface TreeCluster {
1572
+ leafArea: number;
1573
+ radius: number;
1574
+ x: number;
1575
+ y: number;
1576
+ z: number;
1577
+ }
1578
+ //#endregion
1579
+ //#region src/models/kits/tree/TreeNormalField.d.ts
1580
+ export interface TreeNormalField {
1581
+ cellSize: number;
1582
+ normals: readonly number[];
1583
+ origin: readonly number[];
1584
+ size: readonly number[];
1585
+ }
1586
+ //#endregion
1587
+ //#region src/models/kits/tree/TreeTubePoint.d.ts
1588
+ export interface TreeTubePoint {
1589
+ radius: number;
1590
+ x: number;
1591
+ y: number;
1592
+ z: number;
1593
+ }
1594
+ //#endregion
1595
+ //#region src/models/kits/tree/TreeTube.d.ts
1596
+ export type TreeTube = readonly [TreeTubePoint, TreeTubePoint, ...TreeTubePoint[]];
1597
+ //#endregion
394
1598
  //#region src/models/kits/tree/TreeOptions.d.ts
395
1599
  export interface TreeOptions {
396
- branchLength: number;
397
1600
  cardSize: number;
398
- cardsPerCluster: number;
399
- clusterRadius: number;
400
- mainBranchCount: number;
1601
+ clusters: readonly TreeCluster[];
1602
+ leafAreaScale: number;
1603
+ limbs: readonly TreeTube[];
1604
+ normalField?: TreeNormalField;
1605
+ roots: readonly TreeTube[];
401
1606
  seed: number;
402
- trunkHeight: number;
403
- trunkRadius: number;
404
1607
  }
405
1608
  //#endregion
406
1609
  //#region src/kits/tree/computeLeafCards.d.ts
407
- export declare const computeLeafCards: (clusterCenters: readonly Vector3[], { cardSize, cardsPerCluster, clusterRadius, seed }: Pick<TreeOptions, "cardSize" | "cardsPerCluster" | "clusterRadius" | "seed">) => LeafCards;
408
- //#endregion
409
- //#region src/models/kits/tree/BranchSegment.d.ts
410
- export interface BranchSegment {
411
- end: Vector3;
412
- endRadius: number;
413
- start: Vector3;
414
- startRadius: number;
415
- }
1610
+ export declare const computeLeafCards: (clusters: readonly TreeCluster[], { cardSize, leafAreaScale, normalField, seed }: Pick<TreeOptions, "cardSize" | "leafAreaScale" | "normalField" | "seed">) => LeafCards;
416
1611
  //#endregion
417
- //#region src/models/kits/tree/TreeSkeleton.d.ts
418
- export interface TreeSkeleton {
419
- branchSegments: BranchSegment[];
420
- clusterCenters: Vector3[];
1612
+ //#region src/models/kits/tree/TreeTubes.d.ts
1613
+ export interface TreeTubes {
1614
+ indices: Uint32Array;
1615
+ normals: Float32Array;
1616
+ positions: Float32Array;
1617
+ uvs: Float32Array;
421
1618
  }
422
1619
  //#endregion
423
- //#region src/kits/tree/computeTreeSkeleton.d.ts
424
- export declare const computeTreeSkeleton: ({ branchLength, mainBranchCount, seed, trunkHeight, trunkRadius }: Pick<TreeOptions, "branchLength" | "mainBranchCount" | "seed" | "trunkHeight" | "trunkRadius">) => TreeSkeleton;
1620
+ //#region src/kits/tree/computeTreeTubes.d.ts
1621
+ export declare const computeTreeTubes: (tubes: readonly TreeTube[]) => TreeTubes;
425
1622
  //#endregion
426
1623
  //#region src/models/kits/tree/TreeGeometry.d.ts
427
1624
  export interface TreeGeometry {
@@ -430,7 +1627,100 @@ export interface TreeGeometry {
430
1627
  }
431
1628
  //#endregion
432
1629
  //#region src/kits/tree/createTreeGeometry.d.ts
433
- export declare const createTreeGeometry: (treeOptions: TreeOptions) => TreeGeometry;
1630
+ export declare const createTreeGeometry: ({ limbs, roots, ...treeOptions }: TreeOptions) => TreeGeometry;
1631
+ //#endregion
1632
+ //#region src/kits/tree/sampleTreeNormalField.d.ts
1633
+ export declare const sampleTreeNormalField: ({ cellSize, normals, origin, size }: TreeNormalField, position: [number, number, number]) => [number, number, number] | undefined;
1634
+ //#endregion
1635
+ //#region src/kits/writeQuadIndices.d.ts
1636
+ export declare const writeQuadIndices: (indices: Uint32Array, indexStart: number, vertexStart: number) => void;
1637
+ //#endregion
1638
+ //#region src/models/locomotion/LocomotionContact.d.ts
1639
+ export interface LocomotionContact {
1640
+ isFacingWall: boolean;
1641
+ isGrounded: boolean;
1642
+ isHighAboveGround: boolean;
1643
+ isInDeepWater: boolean;
1644
+ isRising: boolean;
1645
+ }
1646
+ //#endregion
1647
+ //#region src/models/locomotion/LocomotionInput.d.ts
1648
+ export interface LocomotionInput {
1649
+ isSprintHeld: boolean;
1650
+ isWalking: boolean;
1651
+ moveForward: number;
1652
+ moveRight: number;
1653
+ pressedActions: ReadonlySet<InputAction>;
1654
+ }
1655
+ //#endregion
1656
+ //#region src/locomotion/computeLocomotionState.d.ts
1657
+ export declare const computeLocomotionState: (phase: LocomotionPhase, input: LocomotionInput, contact: LocomotionContact, stamina: number, locomotion: Locomotion) => LocomotionState;
1658
+ //#endregion
1659
+ //#region src/locomotion/constants.d.ts
1660
+ export declare const STAMINA_MAX = 100;
1661
+ export declare const STAMINA_REFILL_PER_SECOND = 25;
1662
+ export declare const STAMINA_REFILL_DELAY_SECONDS = 1.5;
1663
+ export declare const DASH_STAMINA_COST = 18;
1664
+ export declare const SPRINT_STAMINA_PER_SECOND = 18;
1665
+ export declare const CLIMB_JUMP_STAMINA_COST = 25;
1666
+ export declare const SWIM_STROKE_STAMINA_COST = 4;
1667
+ export declare const SWIM_DASH_STAMINA_COST = 2;
1668
+ export declare const SWIM_DASH_STAMINA_PER_SECOND = 10.2;
1669
+ export declare const CLIMB_START_STAMINA = 5;
1670
+ export declare const GLIDE_STAMINA_PER_SECOND = 3;
1671
+ export declare const CLIMB_STAMINA_PER_SECOND = 2;
1672
+ export declare const SWIM_STROKE_SECONDS = 1.67;
1673
+ export declare const STAMINA_REFILL_STATES: readonly LocomotionState[];
1674
+ export declare const AIR_LOCOMOTION_STATES: readonly LocomotionState[];
1675
+ export declare const CLIMB_LOCOMOTION_STATES: readonly LocomotionState[];
1676
+ export declare const WATER_LOCOMOTION_STATES: readonly LocomotionState[];
1677
+ export declare const GROUND_LOCOMOTION_STATES: readonly LocomotionState[];
1678
+ export declare const WALK_MOVE_MAGNITUDE = .5;
1679
+ export declare const GROUND_CONTACT_DISTANCE = .05;
1680
+ export declare const GROUND_PRESS_SPEED = 1;
1681
+ export declare const WALL_PRESS_SPEED = 1;
1682
+ export declare const WALL_PROBE_DISTANCE = .1;
1683
+ export declare const STEEP_SLIDE_SPEED = 4;
1684
+ export declare const CLIMB_REGRAB_SECONDS = .5;
1685
+ //#endregion
1686
+ //#region src/models/locomotion/Stamina.d.ts
1687
+ export interface Stamina {
1688
+ checkCanSpend: (amount: number) => boolean;
1689
+ maximum: number;
1690
+ refill: () => void;
1691
+ spend: (amount: number) => void;
1692
+ step: (phase: LocomotionPhase, isEntered: boolean, isMoving: boolean, stepSeconds: number) => void;
1693
+ value: number;
1694
+ }
1695
+ //#endregion
1696
+ //#region src/models/locomotion/CharacterController.d.ts
1697
+ export interface CharacterController {
1698
+ face: (facing: number) => void;
1699
+ readonly facing: number;
1700
+ readonly heldPresses: ReadonlySet<InputAction>;
1701
+ holdPresses: (input: InputState) => void;
1702
+ readonly phase: Readonly<LocomotionPhase>;
1703
+ place: (position: Vector3, facing: number) => void;
1704
+ readonly position: Vector3;
1705
+ readonly previousPosition: Vector3;
1706
+ readonly stamina: Stamina;
1707
+ step: (input: InputState, cameraYaw: number, locomotion: Locomotion, stepSeconds: number) => void;
1708
+ }
1709
+ //#endregion
1710
+ //#region src/models/locomotion/CharacterControllerOptions.d.ts
1711
+ export interface CharacterControllerOptions {
1712
+ getStaminaConsumptionMultiplier?: () => number;
1713
+ ground: GroundQuery;
1714
+ landmarkCollider: LandmarkCollider;
1715
+ position: Vector3;
1716
+ staminaMaximum: number;
1717
+ }
1718
+ //#endregion
1719
+ //#region src/locomotion/createCharacterController.d.ts
1720
+ export declare const createCharacterController: ({ getStaminaConsumptionMultiplier, ground, landmarkCollider, position, staminaMaximum }: CharacterControllerOptions) => CharacterController;
1721
+ //#endregion
1722
+ //#region src/locomotion/createStamina.d.ts
1723
+ export declare const createStamina: (maximum: number, getStaminaConsumptionMultiplier?: () => number) => Stamina;
434
1724
  //#endregion
435
1725
  //#region src/materials/addSmoothLoop.d.ts
436
1726
  export declare const addSmoothLoop: (path: Path2D, points: readonly (readonly [number, number])[]) => void;
@@ -438,21 +1728,137 @@ export declare const addSmoothLoop: (path: Path2D, points: readonly (readonly [n
438
1728
  //#region src/models/materials/RampOptions.d.ts
439
1729
  export interface RampOptions {
440
1730
  resolution: number;
1731
+ shade: number;
441
1732
  softness: number;
442
1733
  terminator: number;
443
1734
  }
444
1735
  //#endregion
445
1736
  //#region src/materials/computeRampValues.d.ts
446
- export declare const computeRampValues: ({ resolution, softness, terminator }: RampOptions) => Uint8Array;
1737
+ export declare const computeRampValues: ({ resolution, shade, softness, terminator }: RampOptions) => Uint8Array;
447
1738
  //#endregion
448
1739
  //#region src/materials/createRampTexture.d.ts
449
1740
  export declare const createRampTexture: (rampOptions: RampOptions) => DataTexture;
450
1741
  //#endregion
1742
+ //#region src/models/character/PmxBoneFlag.d.ts
1743
+ export declare enum PmxBoneFlag {
1744
+ IndexedTail = 1,
1745
+ InverseKinematics = 32,
1746
+ InheritRotation = 256,
1747
+ InheritTranslation = 512,
1748
+ FixedAxis = 1024,
1749
+ LocalAxes = 2048,
1750
+ ExternalParent = 8192
1751
+ }
1752
+ //#endregion
1753
+ //#region src/models/character/PmxMaterialFlag.d.ts
1754
+ export declare enum PmxMaterialFlag {
1755
+ DoubleSided = 1,
1756
+ Outlined = 16
1757
+ }
1758
+ //#endregion
1759
+ //#region src/models/character/PmxTextEncoding.d.ts
1760
+ export declare enum PmxTextEncoding {
1761
+ Utf16LittleEndian = 0,
1762
+ Utf8 = 1
1763
+ }
1764
+ //#endregion
1765
+ //#region src/models/character/PmxWeightDeform.d.ts
1766
+ export declare enum PmxWeightDeform {
1767
+ OneBone = 0,
1768
+ TwoBones = 1,
1769
+ FourBones = 2,
1770
+ Spherical = 3,
1771
+ DualQuaternion = 4
1772
+ }
1773
+ //#endregion
1774
+ //#region src/models/vegetation/Impostor.d.ts
1775
+ export interface Impostor {
1776
+ albedoTarget: RenderTarget;
1777
+ bottom: number;
1778
+ height: number;
1779
+ normalTarget: RenderTarget;
1780
+ width: number;
1781
+ }
1782
+ //#endregion
1783
+ //#region src/models/nodes/ImpostorMaterialOptions.d.ts
1784
+ export interface ImpostorMaterialOptions {
1785
+ fade: Node<"float">;
1786
+ impostor: Impostor;
1787
+ lightUniforms: LightUniforms;
1788
+ rampTexture: DataTexture;
1789
+ }
1790
+ //#endregion
1791
+ //#region src/models/nodes/ObjectSurface.d.ts
1792
+ export declare class ObjectSurface {
1793
+ amplitudes: number[];
1794
+ color: Color;
1795
+ texelsPerMetre: number;
1796
+ constructor(color: Color, amplitudes: number[], texelsPerMetre: number);
1797
+ }
1798
+ //#endregion
1799
+ //#region src/models/wind/WindUniforms.d.ts
1800
+ export interface WindUniforms {
1801
+ direction: UniformNode<"vec2", Vector2>;
1802
+ gustSpeed: UniformNode<"float", number>;
1803
+ gustStrength: UniformNode<"float", number>;
1804
+ gustWidth: UniformNode<"float", number>;
1805
+ strength: UniformNode<"float", number>;
1806
+ }
1807
+ //#endregion
1808
+ //#region src/models/nodes/PrecipitationMaterialOptions.d.ts
1809
+ export interface PrecipitationMaterialOptions {
1810
+ lightUniforms: LightUniforms;
1811
+ precipitationUniforms: PrecipitationUniforms;
1812
+ windUniforms: WindUniforms;
1813
+ }
1814
+ //#endregion
1815
+ //#region src/models/nodes/SharedToonOutlinePassNode.d.ts
1816
+ export declare class SharedToonOutlinePassNode extends ToonOutlinePassNode {
1817
+ #private;
1818
+ alphaNode: Node<"float">;
1819
+ colorNode: Node<"vec3">;
1820
+ thicknessNode: Node<"float">;
1821
+ _getOutlineMaterial(originalMaterial: Material$1): NodeMaterial;
1822
+ override compileAsync(renderer: Renderer): Promise<void>;
1823
+ override updateBefore(frame: NodeFrame): boolean | undefined;
1824
+ }
1825
+ //#endregion
1826
+ //#region src/models/vegetation/GroundCapture.d.ts
1827
+ export interface GroundCapture {
1828
+ camera: OrthographicCamera;
1829
+ center: UniformNode<"vec2", Vector2>;
1830
+ material: MeshBasicNodeMaterial;
1831
+ renderTarget: RenderTarget;
1832
+ size: number;
1833
+ }
1834
+ //#endregion
1835
+ //#region src/models/water/WaterUniforms.d.ts
1836
+ export interface WaterUniforms {
1837
+ causticStrength: UniformNode<"float", number>;
1838
+ deepColor: UniformNode<"color", Color>;
1839
+ deepDepth: UniformNode<"float", number>;
1840
+ foamColor: UniformNode<"color", Color>;
1841
+ foamDepth: UniformNode<"float", number>;
1842
+ level: UniformNode<"float", number>;
1843
+ shallowColor: UniformNode<"color", Color>;
1844
+ underwaterFogColor: UniformNode<"color", Color>;
1845
+ underwaterFogDensity: UniformNode<"float", number>;
1846
+ }
1847
+ //#endregion
1848
+ //#region src/models/nodes/SplashMaterialOptions.d.ts
1849
+ export interface SplashMaterialOptions {
1850
+ groundCapture: GroundCapture;
1851
+ lightUniforms: LightUniforms;
1852
+ precipitationUniforms: PrecipitationUniforms;
1853
+ waterUniforms: WaterUniforms;
1854
+ }
1855
+ //#endregion
451
1856
  //#region src/models/nodes/StoneLight.d.ts
452
1857
  export interface StoneLight {
453
1858
  harmonics: (readonly number[])[];
454
1859
  hazeColor: readonly number[];
455
1860
  hazeScatterColor: readonly number[];
1861
+ heightDarkening: number;
456
1862
  heightFade: readonly number[];
457
1863
  ramp: (readonly number[])[];
458
1864
  }
@@ -462,6 +1868,7 @@ export interface StoneLightUniforms {
462
1868
  harmonics: UniformArrayNode<"vec3">;
463
1869
  hazeColor: UniformNode<"color", Color>;
464
1870
  hazeScatterColor: UniformNode<"color", Color>;
1871
+ heightDarkening: UniformNode<"float", number>;
465
1872
  heightFade: UniformNode<"color", Color>;
466
1873
  ramp: DataTexture;
467
1874
  sunRadiance: UniformNode<"color", Color>;
@@ -471,6 +1878,7 @@ export interface StoneLightUniforms {
471
1878
  export declare class StoneLightingModel extends LightingModel {
472
1879
  readonly stoneLight: StoneLightUniforms;
473
1880
  constructor(stoneLight: StoneLightUniforms);
1881
+ createDarkeningNode(): Node<"float">;
474
1882
  override direct({ lightColor, lightDirection, reflectedLight }: LightingModelDirectInput): void;
475
1883
  override indirect(builder: NodeBuilder): void;
476
1884
  }
@@ -478,6 +1886,7 @@ export declare class StoneLightingModel extends LightingModel {
478
1886
  //#region src/models/nodes/StoneMaterialOptions.d.ts
479
1887
  export interface StoneMaterialOptions {
480
1888
  albedo: string;
1889
+ glowRange: number;
481
1890
  rimColor: readonly number[];
482
1891
  rimPower: number;
483
1892
  rimStrength: number;
@@ -493,21 +1902,30 @@ export declare class StoneNodeMaterial extends NodeMaterial {
493
1902
  override setupLightingModel(): StoneLightingModel;
494
1903
  }
495
1904
  //#endregion
1905
+ //#region src/models/nodes/SurfaceDetail.d.ts
1906
+ export interface SurfaceDetail {
1907
+ bands: number[];
1908
+ metresPerTexel: number;
1909
+ variance: number;
1910
+ }
1911
+ //#endregion
496
1912
  //#region src/models/nodes/ToonMaterialOptions.d.ts
497
1913
  export interface ToonMaterialOptions {
498
1914
  color?: ColorRepresentation;
1915
+ detail?: SurfaceDetail;
1916
+ isObjectSurface?: boolean;
499
1917
  isOutlined?: boolean;
500
1918
  isVertexColors?: boolean;
501
1919
  lightUniforms: LightUniforms;
502
1920
  rampTexture: DataTexture;
503
1921
  }
504
1922
  //#endregion
505
- //#region src/models/nodes/ToonNodeMaterial.d.ts
506
- export declare class ToonNodeMaterial extends MeshToonNodeMaterial {
507
- emissiveNode: Node | null;
508
- override readonly isMeshToonNodeMaterial: boolean;
509
- constructor(parameters: MeshToonNodeMaterialParameters, isOutlined: boolean);
510
- }
1923
+ //#region src/models/nodes/createOutlineMaterial.d.ts
1924
+ export declare const createOutlineMaterial: (colorNode: Node<"vec4">, thicknessNode: Node<"float">) => NodeMaterial;
1925
+ export declare const createGameOutlineMaterial: (colorNode: Node<"vec4">, widthNode: Node<"float">, offsetNode: Node<"float">) => NodeMaterial;
1926
+ //#endregion
1927
+ //#region src/models/nodes/getGameOutlineOffset.d.ts
1928
+ export declare const getGameOutlineOffset: (viewPosition: Vector3, blue: number, blockBChannel: number, size: number) => Vector3;
511
1929
  //#endregion
512
1930
  //#region src/models/post/GradeOptions.d.ts
513
1931
  export interface GradeOptions {
@@ -521,11 +1939,19 @@ export interface GradeOptions {
521
1939
  //#region src/models/post/PostPipeline.d.ts
522
1940
  export interface PostPipeline {
523
1941
  bloomNode?: BloomNode;
1942
+ compileAsync: () => Promise<void>;
524
1943
  dispose: () => void;
525
1944
  godraysNode?: GodraysNode;
526
1945
  renderPipeline: RenderPipeline;
527
1946
  }
528
1947
  //#endregion
1948
+ //#region src/models/post/SightUniforms.d.ts
1949
+ export interface SightUniforms {
1950
+ origin: UniformNode<"vec2", Vector2>;
1951
+ radius: UniformNode<"float", number>;
1952
+ strength: UniformNode<"float", number>;
1953
+ }
1954
+ //#endregion
529
1955
  //#region src/models/renderer/AntialiasingMode.d.ts
530
1956
  export declare enum AntialiasingMode {
531
1957
  Smaa = "Smaa",
@@ -556,6 +1982,10 @@ export interface PostPipelineOptions {
556
1982
  qualityTierSettings: QualityTierSettings;
557
1983
  renderer: Renderer;
558
1984
  scene: Scene;
1985
+ sight?: {
1986
+ litScene: Scene;
1987
+ uniforms: SightUniforms;
1988
+ };
559
1989
  stoneLight?: StoneLightUniforms;
560
1990
  }
561
1991
  //#endregion
@@ -578,7 +2008,9 @@ export interface ScreenCamera {
578
2008
  export interface SceneMaterial {
579
2009
  colors: Record<string, [number, number, number, number]>;
580
2010
  floats: Record<string, number>;
2011
+ keywords: string[];
581
2012
  name: string;
2013
+ shader?: string;
582
2014
  textures: Record<string, {
583
2015
  name: string;
584
2016
  offset: [number, number];
@@ -601,6 +2033,12 @@ export interface SceneLayout {
601
2033
  placements: ScenePlacement[];
602
2034
  }
603
2035
  //#endregion
2036
+ //#region src/models/simulation/FixedStepLoop.d.ts
2037
+ export interface FixedStepLoop {
2038
+ advance: (deltaSeconds: number) => void;
2039
+ getStepShare: () => number;
2040
+ }
2041
+ //#endregion
604
2042
  //#region src/models/terrain/TerrainSelection.d.ts
605
2043
  export interface TerrainSelection {
606
2044
  count: number;
@@ -610,9 +2048,13 @@ export interface TerrainSelection {
610
2048
  //#region src/models/streaming/TileStreamer.d.ts
611
2049
  export interface TileStreamer<TTile> {
612
2050
  dispose: () => void;
2051
+ fail: (key: number) => boolean;
613
2052
  get: (key: number) => TTile | undefined;
614
2053
  has: (key: number) => boolean;
2054
+ isSettled: (key: number) => boolean;
2055
+ pendingKeys: () => number[];
615
2056
  receive: (key: number, tile: TTile) => void;
2057
+ refresh: (checkIsChanged: (key: number) => boolean) => void;
616
2058
  update: (wanted: TerrainSelection, drawn: TerrainSelection, surrounding: TerrainSelection) => void;
617
2059
  }
618
2060
  //#endregion
@@ -624,46 +2066,25 @@ export interface TileStreamerOptions<TTile> {
624
2066
  requestTile: (key: number) => void;
625
2067
  }
626
2068
  //#endregion
627
- //#region src/models/terrain/GaussianHill.d.ts
628
- export interface GaussianHill {
629
- height: number;
630
- width: number;
631
- x: number;
632
- z: number;
2069
+ //#region src/models/terrain/TerrainBounds.d.ts
2070
+ export interface TerrainBounds {
2071
+ maxX: number;
2072
+ maxZ: number;
2073
+ minX: number;
2074
+ minZ: number;
633
2075
  }
634
2076
  //#endregion
635
- //#region src/models/terrain/GaussianHills.d.ts
636
- export interface GaussianHills {
637
- base: number;
638
- hills: GaussianHill[];
639
- }
640
- //#endregion
641
- //#region src/models/terrain/TerrainOptions.d.ts
642
- export interface TerrainOptions {
643
- cellsPerSide: number;
644
- finestRange: number;
645
- finestTileSize: number;
646
- levelCount: number;
647
- maxHeight: number;
648
- minHeight: number;
649
- morphShare: number;
650
- }
651
- //#endregion
652
- //#region src/models/terrain/TerrainTile.d.ts
653
- export interface TerrainTile {
654
- coarsePositions: Float32Array;
655
- colors: Float32Array;
656
- key: number;
657
- normals: Float32Array;
658
- positions: Float32Array;
2077
+ //#region src/models/terrain/TerrainRing.d.ts
2078
+ export interface TerrainRing {
2079
+ add: (tile: TerrainTile) => void;
2080
+ dispose: () => void;
2081
+ draw: (keys: readonly number[]) => void;
2082
+ mesh: Mesh;
2083
+ remove: (key: number) => void;
659
2084
  }
660
2085
  //#endregion
661
- //#region src/models/terrain/TerrainTileOptions.d.ts
662
- export interface TerrainTileOptions extends Pick<TerrainOptions, "cellsPerSide" | "finestTileSize"> {
663
- getHeight: (x: number, z: number) => number;
664
- key: number;
665
- writeColor: (colors: Float32Array, offset: number, height: number, slope: number, x: number, z: number) => void;
666
- }
2086
+ //#region src/models/terrain/TerrainTileArrays.d.ts
2087
+ export type TerrainTileArrays = Pick<TerrainTile, "coarseColors" | "coarseNormals" | "coarsePositions" | "colors" | "normals" | "positions">;
667
2088
  //#endregion
668
2089
  //#region src/models/vegetation/GrassBlade.d.ts
669
2090
  export interface GrassBlade {
@@ -681,37 +2102,6 @@ export interface GrassRing {
681
2102
  spacing: number;
682
2103
  }
683
2104
  //#endregion
684
- //#region src/models/vegetation/GroundCapture.d.ts
685
- export interface GroundCapture {
686
- camera: OrthographicCamera;
687
- center: UniformNode<"vec2", Vector2>;
688
- material: MeshBasicNodeMaterial;
689
- renderTarget: RenderTarget;
690
- size: number;
691
- }
692
- //#endregion
693
- //#region src/models/water/WaterUniforms.d.ts
694
- export interface WaterUniforms {
695
- causticStrength: UniformNode<"float", number>;
696
- deepColor: UniformNode<"color", Color>;
697
- deepDepth: UniformNode<"float", number>;
698
- foamColor: UniformNode<"color", Color>;
699
- foamDepth: UniformNode<"float", number>;
700
- level: UniformNode<"float", number>;
701
- shallowColor: UniformNode<"color", Color>;
702
- underwaterFogColor: UniformNode<"color", Color>;
703
- underwaterFogDensity: UniformNode<"float", number>;
704
- }
705
- //#endregion
706
- //#region src/models/wind/WindUniforms.d.ts
707
- export interface WindUniforms {
708
- direction: UniformNode<"vec2", Vector2>;
709
- gustSpeed: UniformNode<"float", number>;
710
- gustStrength: UniformNode<"float", number>;
711
- gustWidth: UniformNode<"float", number>;
712
- strength: UniformNode<"float", number>;
713
- }
714
- //#endregion
715
2105
  //#region src/models/vegetation/GrassOptions.d.ts
716
2106
  export interface GrassOptions {
717
2107
  bladeHeight: number;
@@ -726,6 +2116,21 @@ export interface GrassOptions {
726
2116
  windUniforms: WindUniforms;
727
2117
  }
728
2118
  //#endregion
2119
+ //#region src/models/vegetation/ImpostorPart.d.ts
2120
+ export interface ImpostorPart {
2121
+ color: ColorRepresentation;
2122
+ geometry: BufferGeometry;
2123
+ opacityNode?: Node<"float">;
2124
+ }
2125
+ //#endregion
2126
+ //#region src/models/water/RiverCoursePoint.d.ts
2127
+ export interface RiverCoursePoint {
2128
+ level: number;
2129
+ width: number;
2130
+ x: number;
2131
+ z: number;
2132
+ }
2133
+ //#endregion
729
2134
  //#region src/models/water/UnderwaterFogState.d.ts
730
2135
  export interface UnderwaterFogState {
731
2136
  aboveDensity: number;
@@ -733,6 +2138,21 @@ export interface UnderwaterFogState {
733
2138
  aboveMaxOpacity: number;
734
2139
  aboveStartDistance: number;
735
2140
  isUnderwater: boolean;
2141
+ underwaterDensity: number;
2142
+ }
2143
+ //#endregion
2144
+ //#region src/models/water/WaterFlow.d.ts
2145
+ export interface WaterFlow {
2146
+ direction: UniformNode<"vec2", Vector2>;
2147
+ speed: UniformNode<"float", number>;
2148
+ }
2149
+ //#endregion
2150
+ //#region src/models/water/WaterfallSheet.d.ts
2151
+ export interface WaterfallSheet {
2152
+ across: Vector3;
2153
+ drop: number;
2154
+ lip: Vector3;
2155
+ width: number;
736
2156
  }
737
2157
  //#endregion
738
2158
  //#region src/models/world/GroundPoint.d.ts
@@ -742,7 +2162,10 @@ export interface GroundPoint {
742
2162
  }
743
2163
  //#endregion
744
2164
  //#region src/nodes/applyStoneLight.d.ts
745
- export declare const applyStoneLight: ({ harmonics, hazeColor, hazeScatterColor, heightFade, ramp }: StoneLight, { harmonics: harmonicsUniform, hazeColor: hazeColorUniform, hazeScatterColor: hazeScatterColorUniform, heightFade: heightFadeUniform, ramp: rampTexture, sunRadiance }: StoneLightUniforms, light: DirectionalLight) => void;
2165
+ export declare const applyStoneLight: ({ harmonics, hazeColor, hazeScatterColor, heightDarkening, heightFade, ramp }: StoneLight, { harmonics: harmonicsUniform, hazeColor: hazeColorUniform, hazeScatterColor: hazeScatterColorUniform, heightDarkening: heightDarkeningUniform, heightFade: heightFadeUniform, ramp: rampTexture, sunRadiance }: StoneLightUniforms, light: DirectionalLight) => void;
2166
+ //#endregion
2167
+ //#region src/nodes/computeStoneDarkening.d.ts
2168
+ export declare const computeStoneDarkening: (height: number, heightDarkening: number) => number;
746
2169
  //#endregion
747
2170
  //#region src/nodes/computeStoneHarmonics.d.ts
748
2171
  export declare const computeStoneHarmonics: ([x, y, z]: readonly number[], harmonics: number[]) => void;
@@ -750,6 +2173,13 @@ export declare const computeStoneHarmonics: ([x, y, z]: readonly number[], harmo
750
2173
  //#region src/nodes/computeStoneRampCoordinate.d.ts
751
2174
  export declare const computeStoneRampCoordinate: (facing: number, visibility: number) => number;
752
2175
  //#endregion
2176
+ //#region src/nodes/computeSurfaceOctaves.d.ts
2177
+ export interface SurfaceOctave {
2178
+ amplitude: number;
2179
+ frequency: number;
2180
+ }
2181
+ export declare const computeSurfaceOctaves: ({ bands, metresPerTexel, variance }: SurfaceDetail) => SurfaceOctave[];
2182
+ //#endregion
753
2183
  //#region src/nodes/constants.d.ts
754
2184
  export declare const LEAST_DIVISOR = 1e-4;
755
2185
  export declare const STONE_SHADOW_EXPONENT = .2;
@@ -757,16 +2187,51 @@ export declare const STONE_RAMP_KNOT_COUNT = 16;
757
2187
  export declare const STONE_HARMONIC_COUNT = 9;
758
2188
  export declare const STONE_MASK_OUTPUT = "stoneMask";
759
2189
  export declare const STONE_HEIGHT_FALLOFF = .05;
2190
+ export declare const STONE_DARKENING_TOP = 20;
2191
+ export declare const WET_DARKENING = .35;
2192
+ export declare const WET_SHEEN_POWER = 32;
2193
+ export declare const WET_SHEEN_STRENGTH = .25;
2194
+ export declare const SURFACE_DETAIL_BAND_SIGMAS: number[];
2195
+ export declare const SURFACE_OCTAVE_TEXEL_FREQUENCIES: number[];
2196
+ export declare const SURFACE_DETAIL_RENDER_GAIN = 4;
2197
+ export declare const OBJECT_SURFACE_KEY = "surface";
2198
+ export declare const OBJECT_FADE_KEY = "fade";
2199
+ export declare const LEAF_SHAPE_WIDTH = .8;
2200
+ export declare const LEAF_SHAPE_KEPT_SHARE: number;
760
2201
  //#endregion
761
2202
  //#region src/nodes/createCausticsNode.d.ts
762
2203
  export declare const createCausticsNode: ({ lightColor }: Pick<LightUniforms, "lightColor">, { causticStrength, deepDepth, level }: Pick<WaterUniforms, "causticStrength" | "deepDepth" | "level">) => Node<"vec3">;
763
2204
  //#endregion
2205
+ //#region src/nodes/createCloudLayerNode.d.ts
2206
+ export declare const createCloudLayerNode: ({ center, curl, curlAmplitude, curlSpeed, curlTiling, density, direction: cloudDirection, elapsedTime, height: layerHeight, lightDirection, normal, normalYScale, opacity, profile, smoothness, sunBrightness, sunRimLightRadius, tiling, turn, weather, wisps, wispsCoverage, wispsElapsedTime, wispsOpacity, wispsTurn }: CloudLayerUniforms, { cloudCoverage, cloudFrontBackBlend, cloudLitBackColor, cloudLitColor, cloudShadeBackColor, cloudShadeColor, cloudSunBrighten, moonDirection, moonGlowColor, sunDirection, sunHaloColor, sunHaloSize }: SkyUniforms, direction: Node<"vec3">) => Node<"vec4">;
2207
+ //#endregion
2208
+ //#region src/nodes/createDitherFadeNode.d.ts
2209
+ export declare const createDitherFadeNode: (visibility: Node<"float">) => Node<"bool">;
2210
+ //#endregion
2211
+ //#region src/nodes/createImpostorMaterial.d.ts
2212
+ export declare const createImpostorMaterial: ({ fade, impostor, lightUniforms, rampTexture }: ImpostorMaterialOptions) => ToonNodeMaterial;
2213
+ //#endregion
764
2214
  //#region src/nodes/createLeafMaterial.d.ts
765
2215
  export declare const createLeafMaterial: (toonMaterialOptions: ToonMaterialOptions, windUniforms?: WindUniforms) => ToonNodeMaterial;
766
2216
  //#endregion
2217
+ //#region src/nodes/createLeafShapeNode.d.ts
2218
+ export declare const createLeafShapeNode: () => Node<"float">;
2219
+ //#endregion
767
2220
  //#region src/nodes/createLightUniforms.d.ts
768
2221
  export declare const createLightUniforms: () => LightUniforms;
769
2222
  //#endregion
2223
+ //#region src/nodes/createLightningBoltMaterial.d.ts
2224
+ export declare const createLightningBoltMaterial: (flash: UniformNode<"float", number>) => MeshBasicNodeMaterial;
2225
+ //#endregion
2226
+ //#region src/nodes/createObjectFadeNode.d.ts
2227
+ export declare const createObjectFadeNode: () => Node<"float">;
2228
+ //#endregion
2229
+ //#region src/nodes/createObjectSurfaceNode.d.ts
2230
+ export declare const createObjectSurfaceNode: () => Node<"vec3">;
2231
+ //#endregion
2232
+ //#region src/nodes/createPrecipitationMaterial.d.ts
2233
+ export declare const createPrecipitationMaterial: ({ lightUniforms, precipitationUniforms, windUniforms }: PrecipitationMaterialOptions) => MeshBasicNodeMaterial;
2234
+ //#endregion
770
2235
  //#region src/nodes/createRimNode.d.ts
771
2236
  export declare const createRimNode: ({ rimColor, rimStrength, sunDirection }: LightUniforms) => Node<"vec3">;
772
2237
  //#endregion
@@ -774,32 +2239,84 @@ export declare const createRimNode: ({ rimColor, rimStrength, sunDirection }: Li
774
2239
  export declare const createSkyColorNode: ({ frontBackBlend, haloColor, haloHeight, horizonBackColor, horizonBand, horizonColor, sunDirection, sunHaloColor, sunHaloSize, zenithBackColor, zenithColor }: SkyUniforms, gradient: Texture, direction: Node<"vec3">) => Node<"vec3">;
775
2240
  //#endregion
776
2241
  //#region src/nodes/createSkyNode.d.ts
777
- export declare const createSkyNode: (uniforms: SkyUniforms, gradient: Texture) => Node<"vec3">;
2242
+ export declare const createSkyNode: (uniforms: SkyUniforms, gradient: Texture, cloudLayer?: CloudLayerUniforms) => Node<"vec3">;
2243
+ //#endregion
2244
+ //#region src/nodes/createSplashMaterial.d.ts
2245
+ export declare const createSplashMaterial: ({ groundCapture, lightUniforms, precipitationUniforms, waterUniforms }: SplashMaterialOptions) => MeshBasicNodeMaterial;
2246
+ //#endregion
2247
+ //#region src/nodes/createStoneGlowNode.d.ts
2248
+ export declare const createStoneGlowNode: ({ glowRange, rimColor, rimPower, rimStrength }: Pick<StoneMaterialOptions, "glowRange" | "rimColor" | "rimPower" | "rimStrength">) => Node<"vec3">;
778
2249
  //#endregion
779
2250
  //#region src/nodes/createStoneLightUniforms.d.ts
780
2251
  export declare const createStoneLightUniforms: () => StoneLightUniforms;
781
2252
  //#endregion
782
2253
  //#region src/nodes/createStoneMaterial.d.ts
783
- export declare const createStoneMaterial: ({ albedo, rimColor, rimPower, rimStrength }: StoneMaterialOptions, stoneLight: StoneLightUniforms, glowNode?: Node<"vec3">) => StoneNodeMaterial;
2254
+ export declare const createStoneMaterial: (options: StoneMaterialOptions, stoneLight: StoneLightUniforms, glowNode?: Node<"vec3">) => StoneNodeMaterial;
784
2255
  //#endregion
785
2256
  //#region src/nodes/createSunVisibilityNode.d.ts
786
2257
  export declare const createSunVisibilityNode: (lightColor: Node, sunRadiance: UniformNode<"color", Color>) => Node<"float">;
787
2258
  //#endregion
2259
+ //#region src/nodes/createSurfaceDetailNode.d.ts
2260
+ export declare const createSurfaceDetailNode: (amplitudes: Node<"float">[], texelsPerMetre: Node<"float">) => Node<"float">;
2261
+ //#endregion
788
2262
  //#region src/nodes/createToonMaterial.d.ts
789
- export declare const createToonMaterial: ({ color, isOutlined, isVertexColors, lightUniforms, rampTexture }: ToonMaterialOptions) => ToonNodeMaterial;
2263
+ export declare const createToonMaterial: ({ color, detail, isObjectSurface, isOutlined, isVertexColors, lightUniforms, rampTexture }: ToonMaterialOptions) => ToonNodeMaterial;
790
2264
  //#endregion
791
2265
  //#region src/nodes/createWaterMaterial.d.ts
792
- export declare const createWaterMaterial: ({ lightColor, sunDirection }: Pick<LightUniforms, "lightColor" | "sunDirection">, { horizonColor, zenithColor }: Pick<SkyUniforms, "horizonColor" | "zenithColor">, { deepColor, deepDepth, foamColor, foamDepth, shallowColor }: WaterUniforms) => MeshBasicNodeMaterial;
2266
+ export declare const createWaterMaterial: ({ lightColor, sunDirection }: Pick<LightUniforms, "lightColor" | "sunDirection">, { horizonColor, zenithColor }: Pick<SkyUniforms, "horizonColor" | "zenithColor">, { deepColor, deepDepth, foamColor, foamDepth, shallowColor }: WaterUniforms, { direction, speed }: WaterFlow, bendFoam?: Node<"float">) => MeshBasicNodeMaterial;
2267
+ //#endregion
2268
+ //#region src/nodes/createWaterfallMaterial.d.ts
2269
+ export declare const createWaterfallMaterial: ({ foamColor }: Pick<WaterUniforms, "foamColor">) => MeshBasicNodeMaterial;
2270
+ //#endregion
2271
+ //#region src/nodes/createWetDarkeningNode.d.ts
2272
+ export declare const createWetDarkeningNode: ({ wetness }: Pick<LightUniforms, "wetness">) => Node<"float">;
2273
+ //#endregion
2274
+ //#region src/nodes/createWetSheenNode.d.ts
2275
+ export declare const createWetSheenNode: ({ lightColor, sunDirection, wetness }: LightUniforms) => Node<"vec3">;
793
2276
  //#endregion
794
2277
  //#region src/nodes/createWindNode.d.ts
795
2278
  export declare const createWindNode: ({ direction, gustSpeed, gustStrength, gustWidth, strength }: WindUniforms, groundPosition: Node<"vec2">) => Node<"vec2">;
796
2279
  //#endregion
2280
+ //#region src/nodes/getCloudSunColors.d.ts
2281
+ export declare const getCloudSunColors: ({ cloudFrontBackBlend, cloudLitBackColor, cloudLitColor, cloudShadeBackColor, cloudShadeColor }: Pick<SkyUniforms, "cloudFrontBackBlend" | "cloudLitBackColor" | "cloudLitColor" | "cloudShadeBackColor" | "cloudShadeColor">, sunCosine: Node<"float">) => {
2282
+ lit: Node<"vec3">;
2283
+ shade: Node<"vec3">;
2284
+ };
2285
+ //#endregion
2286
+ //#region src/nodes/sampleGroundCapture.d.ts
2287
+ export declare const sampleGroundCapture: (groundCapture: GroundCapture, ground: Node<"vec2">) => {
2288
+ captured: Node<"vec4">;
2289
+ isInsideCapture: Node<"float">;
2290
+ };
2291
+ //#endregion
2292
+ //#region src/nodes/setObjectFade.d.ts
2293
+ export declare const setObjectFade: (object: Object3D, fade: number) => void;
2294
+ //#endregion
2295
+ //#region src/nodes/setObjectSurface.d.ts
2296
+ export declare const setObjectSurface: (object: Object3D, color: ColorRepresentation, detail?: SurfaceDetail) => void;
2297
+ //#endregion
2298
+ //#region src/noise/constants.d.ts
2299
+ export declare const SPECTRAL_RADIAL_BIN_COUNT = 16;
2300
+ export declare const SPECTRAL_ANGULAR_BIN_COUNT = 8;
2301
+ //#endregion
797
2302
  //#region src/noise/createSimplexNoise.d.ts
798
2303
  export declare const createSimplexNoise: (seed: number) => ((x: number, y: number) => number);
799
2304
  //#endregion
2305
+ //#region src/noise/getSpectralBin.d.ts
2306
+ export declare const getSpectralBin: (column: number, row: number, width: number, height: number) => number | undefined;
2307
+ //#endregion
2308
+ //#region src/noise/synthesizeSpectralNoise.d.ts
2309
+ export declare const synthesizeSpectralNoise: ({ channels, height, width }: SpectralNoiseProfile, random: () => number) => Float32Array[];
2310
+ //#endregion
2311
+ //#region src/noise/transformFourierGrid.d.ts
2312
+ export declare const transformFourierGrid: (real: Float64Array, imaginary: Float64Array, width: number, height: number) => void;
2313
+ //#endregion
800
2314
  //#region src/post/computeGradeLut.d.ts
801
2315
  export declare const computeGradeLut: ({ contrast, highlightTint, saturation, shadowTint, size }: GradeOptions) => Uint8Array;
802
2316
  //#endregion
2317
+ //#region src/post/computeWhiteBalance.d.ts
2318
+ export declare const computeWhiteBalance: ({ temperature, tint }: WhiteBalance, whiteBalance?: Matrix3) => Matrix3;
2319
+ //#endregion
803
2320
  //#region src/post/createFogUniforms.d.ts
804
2321
  export declare const createFogUniforms: () => FogUniforms;
805
2322
  //#endregion
@@ -818,19 +2335,25 @@ export declare const createHeightFogNode: (colorNode: Node<"vec4">, depthNode: T
818
2335
  export declare const createOcclusionNode: (depthNode: TextureNode, camera: Camera, radius: number) => GTAONode;
819
2336
  //#endregion
820
2337
  //#region src/post/createPostPipeline.d.ts
821
- export declare const createPostPipeline: ({ camera, fogUniforms, godraysLight, gradeLutTexture, isBloomed, occlusionRadius, postUniforms: { godraysColor, gradeIntensity, outlineColor, outlineFadeDistance, outlineThickness }, qualityTierSettings: { antialiasingMode, godraysStepCount, isBloomEnabled, isOcclusionEnabled }, renderer, scene, stoneLight }: PostPipelineOptions) => PostPipeline;
2338
+ export declare const createPostPipeline: ({ camera, fogUniforms, godraysLight, gradeLutTexture, isBloomed, occlusionRadius, postUniforms: { godraysColor, gradeIntensity, outlineColor, outlineFadeDistance, outlineThickness, whiteBalance }, qualityTierSettings: { antialiasingMode, godraysStepCount, isBloomEnabled, isOcclusionEnabled }, renderer, scene, sight, stoneLight }: PostPipelineOptions) => PostPipeline;
822
2339
  //#endregion
823
2340
  //#region src/post/createPostUniforms.d.ts
824
2341
  export declare const createPostUniforms: () => PostUniforms;
825
2342
  //#endregion
2343
+ //#region src/post/createSightNode.d.ts
2344
+ export declare const createSightNode: (colorNode: Node<"vec4">, depthNode: TextureNode, camera: Camera, litPass: PassNode, { origin, radius, strength }: SightUniforms) => Node<"vec4">;
2345
+ //#endregion
2346
+ //#region src/post/createSightUniforms.d.ts
2347
+ export declare const createSightUniforms: () => SightUniforms;
2348
+ //#endregion
826
2349
  //#region src/post/toSceneColor.d.ts
827
2350
  export declare const toSceneColor: (displayColor: Color, sceneColor?: Color) => Color;
828
2351
  //#endregion
829
- //#region src/post/toneMapNeutral.d.ts
830
- export declare const toneMapNeutral: ([red, green, blue]: readonly [number, number, number], toneMapped?: [number, number, number]) => [number, number, number];
2352
+ //#region src/post/toneMapGenshin.d.ts
2353
+ export declare const toneMapGenshin: (sceneColor: readonly [number, number, number], toneMapped?: [number, number, number]) => [number, number, number];
831
2354
  //#endregion
832
- //#region src/random/createSeededRandom.d.ts
833
- export declare const createSeededRandom: (seed: number) => (() => number);
2355
+ //#region src/post/toneMapGenshinNode.d.ts
2356
+ export declare const toneMapGenshinNode: (sceneColor: Node<"vec3">) => Node<"vec3">;
834
2357
  //#endregion
835
2358
  //#region src/renderer/QualityTierSettingsMap.d.ts
836
2359
  export declare const QualityTierSettingsMap: Readonly<Record<QualityTier, QualityTierSettings>>;
@@ -840,63 +2363,169 @@ export declare const attachInspector: (renderer: Renderer) => Promise<Inspector>
840
2363
  //#endregion
841
2364
  //#region src/renderer/constants.d.ts
842
2365
  export declare const GENSHIN_TONE_MAPPING: ToneMapping;
2366
+ export declare const GENSHIN_TONE_CONTRAST = .5;
2367
+ export declare const GENSHIN_TONE_EXPOSURE = 1;
2368
+ export declare const TONE_CONTRAST_OFFSET = .01;
2369
+ export declare const TONE_CURVE_LIFT = 1e-4;
2370
+ export declare const TONE_CURVE_FLOOR: number;
843
2371
  //#endregion
844
2372
  //#region src/renderer/createGenshinRenderer.d.ts
845
2373
  export declare const createGenshinRenderer: (canvas: HTMLCanvasElement) => WebGPURenderer;
846
2374
  //#endregion
2375
+ //#region src/renderer/createInstancedMesh.d.ts
2376
+ export declare const createInstancedMesh: <TGeometry extends BufferGeometry, TMaterial extends Material | Material[]>(geometry: TGeometry, material: TMaterial, count: number) => InstancedMesh<TGeometry, TMaterial>;
2377
+ //#endregion
847
2378
  //#region src/renderer/getScreenDirection.d.ts
848
2379
  export declare const getScreenDirection: ({ aspect, fov, pitch, yaw }: ScreenCamera, [x, y]: [number, number]) => Vector3;
849
2380
  //#endregion
2381
+ //#region src/simulation/constants.d.ts
2382
+ export declare const MAX_STEPS_PER_FRAME = 5;
2383
+ //#endregion
2384
+ //#region src/simulation/createFixedStepLoop.d.ts
2385
+ export declare const createFixedStepLoop: (stepSeconds: number, step: () => void) => FixedStepLoop;
2386
+ //#endregion
2387
+ //#region src/streaming/constants.d.ts
2388
+ export declare const MAX_TILE_ATTEMPTS = 3;
2389
+ //#endregion
850
2390
  //#region src/streaming/createTileStreamer.d.ts
851
2391
  export declare const createTileStreamer: <TTile>({ disposeTile, maxCachedCount, maxPendingCount, requestTile }: TileStreamerOptions<TTile>) => TileStreamer<TTile>;
852
2392
  //#endregion
2393
+ //#region src/terrain/TerrainFeatureKindBlendMap.d.ts
2394
+ export declare const TerrainFeatureKindBlendMap: { [K in TerrainFeatureKind]: (feature: Extract<TerrainFeature, {
2395
+ kind: K;
2396
+ }>, x: number, z: number) => number; };
2397
+ //#endregion
2398
+ //#region src/terrain/blendGridNodes.d.ts
2399
+ export declare const blendGridNodes: (values: readonly number[], sizeX: number, sizeZ: number, column: number, row: number) => number;
2400
+ //#endregion
2401
+ //#region src/terrain/checkTerrainBoundsOverlap.d.ts
2402
+ export declare const checkTerrainBoundsOverlap: (first: TerrainBounds, second: TerrainBounds) => boolean;
2403
+ //#endregion
2404
+ //#region src/terrain/checkTerrainDrawsChanged.d.ts
2405
+ export declare const checkTerrainDrawsChanged: ({ finestTileSize }: Pick<TerrainOptions, "finestTileSize">, previous: TerrainSelection, next: TerrainSelection, center: Vector3Like, halfSize: number) => boolean;
2406
+ //#endregion
2407
+ //#region src/terrain/checkTerrainTileCasts.d.ts
2408
+ export declare const checkTerrainTileCasts: ({ finestRange }: Pick<TerrainOptions, "finestRange">, key: number, shadowReach: number) => boolean;
2409
+ //#endregion
853
2410
  //#region src/terrain/computeTerrainIndices.d.ts
854
2411
  export declare const computeTerrainIndices: (cellsPerSide: number) => Uint16Array | Uint32Array;
855
2412
  //#endregion
856
- //#region src/terrain/computeTerrainTile.d.ts
857
- export declare const computeTerrainTile: ({ cellsPerSide, finestTileSize, getHeight, key, writeColor }: TerrainTileOptions) => TerrainTile;
858
- //#endregion
859
2413
  //#region src/terrain/constants.d.ts
860
2414
  export declare const TILE_INDEX_OFFSET: number;
861
2415
  export declare const TILE_INDEX_SPAN: number;
862
2416
  export declare const TERRAIN_LAYER = 1;
2417
+ export declare const TERRAIN_RING_INITIAL_TILE_COUNT = 64;
2418
+ export declare const TERRAIN_CELL_SIZE = 64;
2419
+ export declare const GAUSSIAN_REACH_WIDTHS = 3;
2420
+ export declare const TERRAIN_HEIGHT_PADDING = 2;
863
2421
  //#endregion
864
2422
  //#region src/terrain/createGaussianHillsHeight.d.ts
865
2423
  export declare const createGaussianHillsHeight: ({ base, hills }: GaussianHills) => ((x: number, z: number) => number);
866
2424
  //#endregion
2425
+ //#region src/terrain/createResidualHeight.d.ts
2426
+ export declare const createResidualHeight: ({ amplitude, fade, octaves, scale, seed }: TerrainResidual) => ((x: number, z: number) => number);
2427
+ //#endregion
2428
+ //#region src/terrain/createTerrainFeaturesBlend.d.ts
2429
+ export declare const createTerrainFeaturesBlend: (features: readonly TerrainFeature[]) => ((x: number, z: number) => number);
2430
+ //#endregion
2431
+ //#region src/terrain/createTerrainFeaturesHeight.d.ts
2432
+ export declare const createTerrainFeaturesHeight: (features: readonly TerrainFeature[]) => ((x: number, z: number) => number);
2433
+ //#endregion
867
2434
  //#region src/terrain/createTerrainMaterial.d.ts
868
- export declare const createTerrainMaterial: ({ finestRange, morphShare }: Pick<TerrainOptions, "finestRange" | "morphShare">, toonMaterialOptions: Pick<ToonMaterialOptions, "color" | "lightUniforms" | "rampTexture">, waterUniforms?: WaterUniforms) => ToonNodeMaterial;
2435
+ export declare const createTerrainMaterial: (terrainOptions: Pick<TerrainOptions, "finestRange" | "finestTileSize" | "maxHeight" | "minHeight">, eye: UniformNode<"vec3", Vector3>, toonMaterialOptions: Pick<ToonMaterialOptions, "lightUniforms" | "rampTexture">, waterUniforms?: WaterUniforms) => ToonNodeMaterial;
2436
+ //#endregion
2437
+ //#region src/terrain/createTerrainRing.d.ts
2438
+ export declare const createTerrainRing: ({ cellsPerSide, finestTileSize }: Pick<TerrainOptions, "cellsPerSide" | "finestTileSize">, tileIndices: Uint16Array | Uint32Array, material: Material) => TerrainRing;
869
2439
  //#endregion
870
2440
  //#region src/terrain/createTerrainSelection.d.ts
871
2441
  export declare const createTerrainSelection: (capacity: number) => TerrainSelection;
872
2442
  //#endregion
873
2443
  //#region src/terrain/createTerrainTileGeometry.d.ts
874
- export declare const createTerrainTileGeometry: ({ coarsePositions, colors, normals, positions }: TerrainTile, index: BufferAttribute) => BufferGeometry;
2444
+ export declare const createTerrainTileGeometry: ({ coarseColors, coarseNormals, coarsePositions, colors, normals, positions }: TerrainTileArrays, index: BufferAttribute, boundingBox: Box3) => BufferGeometry;
2445
+ //#endregion
2446
+ //#region src/terrain/fileByCell.d.ts
2447
+ export declare const fileByCell: <T>(items: readonly T[], getBounds: (item: T) => TerrainBounds) => ((x: number, z: number) => readonly T[]);
2448
+ //#endregion
2449
+ //#region src/terrain/getCliffBlend.d.ts
2450
+ export declare const getCliffBlend: (feature: CliffFeature, x: number, z: number) => number;
2451
+ //#endregion
2452
+ //#region src/terrain/getGaussianHillBlend.d.ts
2453
+ export declare const getGaussianHillBlend: ({ width, x: hillX, z: hillZ }: Pick<GaussianHill, "width" | "x" | "z">, x: number, z: number) => number;
875
2454
  //#endregion
876
2455
  //#region src/terrain/getParentTerrainTileKey.d.ts
877
2456
  export declare const getParentTerrainTileKey: (key: number) => number;
878
2457
  //#endregion
879
- //#region src/terrain/getTerrainTileColumn.d.ts
880
- export declare const getTerrainTileColumn: (key: number) => number;
2458
+ //#region src/terrain/getPlateauBlend.d.ts
2459
+ export declare const getPlateauBlend: (feature: PlateauFeature, x: number, z: number) => number;
2460
+ //#endregion
2461
+ //#region src/terrain/getRidgeBlend.d.ts
2462
+ export declare const getRidgeBlend: (feature: RidgeFeature, x: number, z: number) => number;
2463
+ //#endregion
2464
+ //#region src/terrain/getSegmentBounds.d.ts
2465
+ export declare const getSegmentBounds: (startX: number, startZ: number, endX: number, endZ: number, reach: number) => TerrainBounds;
2466
+ //#endregion
2467
+ //#region src/terrain/getTerrainFeatureBounds.d.ts
2468
+ export declare const getTerrainFeatureBounds: (feature: TerrainFeature) => TerrainBounds;
2469
+ //#endregion
2470
+ //#region src/terrain/getTerrainMorphStart.d.ts
2471
+ export declare const getTerrainMorphStart: ({ finestRange, finestTileSize }: Pick<TerrainOptions, "finestRange" | "finestTileSize">) => number;
2472
+ //#endregion
2473
+ //#region src/terrain/getTerrainOverlayBounds.d.ts
2474
+ export declare const getTerrainOverlayBounds: (shape: TerrainShape) => TerrainBounds;
2475
+ //#endregion
2476
+ //#region src/terrain/getTerrainShapeLevel.d.ts
2477
+ export declare const getTerrainShapeLevel: ({ base, hills }: GaussianHills, baseUnder: number) => PlateauFeature | undefined;
2478
+ //#endregion
2479
+ //#region src/terrain/getTerrainTileBounds.d.ts
2480
+ export declare const getTerrainTileBounds: (key: number, finestTileSize: number, cellsPerSide: number) => TerrainBounds;
881
2481
  //#endregion
882
2482
  //#region src/terrain/getTerrainTileKey.d.ts
883
2483
  export declare const getTerrainTileKey: (level: number, column: number, row: number) => number;
884
2484
  //#endregion
885
- //#region src/terrain/getTerrainTileLevel.d.ts
886
- export declare const getTerrainTileLevel: (key: number) => number;
887
- //#endregion
888
- //#region src/terrain/getTerrainTileRow.d.ts
889
- export declare const getTerrainTileRow: (key: number) => number;
2485
+ //#region src/terrain/measureSegment.d.ts
2486
+ export declare const measureSegment: ({ endX, endZ, startX, startZ }: Pick<RidgeFeature, "endX" | "endZ" | "startX" | "startZ">, x: number, z: number) => Float64Array;
890
2487
  //#endregion
891
2488
  //#region src/terrain/resolveTerrainDraws.d.ts
892
2489
  export declare const resolveTerrainDraws: ({ levelCount }: Pick<TerrainOptions, "levelCount">, wanted: TerrainSelection, checkTileLoaded: (key: number) => boolean, draws: TerrainSelection) => TerrainSelection;
893
2490
  //#endregion
2491
+ //#region src/terrain/sampleGroundLayerField.d.ts
2492
+ export declare const sampleGroundLayerField: ({ cellSize, layers, origin, size }: GroundLayerField, x: number, z: number, weights: Record<GroundLayer, number>) => void;
2493
+ //#endregion
2494
+ //#region src/terrain/sampleTerrainResidualFade.d.ts
2495
+ export declare const sampleTerrainResidualFade: ({ cellSize, clearings, origin, size, weights }: TerrainResidualFade, x: number, z: number) => number;
2496
+ //#endregion
894
2497
  //#region src/terrain/selectTerrainTiles.d.ts
895
2498
  export declare const selectTerrainTiles: (terrainOptions: TerrainOptions, eye: Vector3Like, frustum: Frustum | undefined, selection: TerrainSelection) => TerrainSelection;
896
2499
  //#endregion
2500
+ //#region src/terrain/writeTerrainRingIndices.d.ts
2501
+ export declare const writeTerrainRingIndices: (ringIndices: Uint32Array, tileIndices: Uint16Array | Uint32Array, drawnOrdinals: readonly number[], vertexCount: number) => number;
2502
+ //#endregion
2503
+ //#region src/terrain/writeTerrainRingTile.d.ts
2504
+ export declare const writeTerrainRingTile: (ring: TerrainTileArrays, base: number, tile: TerrainTile, finestTileSize: number) => void;
2505
+ //#endregion
2506
+ //#region src/vegetation/bakeImpostor.d.ts
2507
+ export declare const bakeImpostor: (renderer: Renderer, parts: readonly ImpostorPart[], resolution: number) => Impostor;
2508
+ //#endregion
897
2509
  //#region src/vegetation/computeGrassBlade.d.ts
898
2510
  export declare const computeGrassBlade: (segmentCount: number) => GrassBlade;
899
2511
  //#endregion
2512
+ //#region src/vegetation/constants.d.ts
2513
+ export declare const IMPOSTOR_RESOLUTION = 256;
2514
+ export declare const IMPOSTOR_SWITCH_HEIGHTS = 10;
2515
+ export declare const IMPOSTOR_CROSSFADE_SHARE = .1;
2516
+ export declare const FLOWER_BEND_PER_WIND = .12;
2517
+ export declare const FLOWER_MATRIX_ATTRIBUTE_NAMES: readonly ["flowerMatrix0", "flowerMatrix1", "flowerMatrix2", "flowerMatrix3"];
2518
+ export declare const FLOWER_COLOR_ATTRIBUTE_NAME = "flowerColor";
2519
+ //#endregion
2520
+ //#region src/vegetation/createFlowerGeometry.d.ts
2521
+ export declare const createFlowerGeometry: () => BufferGeometry;
2522
+ //#endregion
2523
+ //#region src/vegetation/createFlowerMaterial.d.ts
2524
+ export declare const createFlowerMaterial: (toonMaterialOptions: Pick<ToonMaterialOptions, "lightUniforms" | "rampTexture">, windUniforms: WindUniforms) => ToonNodeMaterial;
2525
+ //#endregion
2526
+ //#region src/vegetation/createFlowerTileGeometry.d.ts
2527
+ export declare const createFlowerTileGeometry: (matrices: Float32Array, colors: Float32Array) => InstancedBufferGeometry;
2528
+ //#endregion
900
2529
  //#region src/vegetation/createGrassGeometry.d.ts
901
2530
  export declare const createGrassGeometry: (segmentCount: number, bladeCount: number) => InstancedBufferGeometry;
902
2531
  //#endregion
@@ -909,12 +2538,25 @@ export declare const createGroundCapture: (size: number, resolution: number) =>
909
2538
  //#region src/vegetation/renderGroundCapture.d.ts
910
2539
  export declare const renderGroundCapture: (renderer: Renderer, scene: Scene, { camera, center, material, renderTarget }: GroundCapture, { maxHeight }: Pick<TerrainOptions, "maxHeight">, worldCenter: Vector3Like, origin: Vector3Like) => void;
911
2540
  //#endregion
2541
+ //#region src/water/constants.d.ts
2542
+ export declare const RIVER_BEND_FOAM_ATTRIBUTE = "bendFoam";
2543
+ export declare const BEND_FOAM_FULL_RADIUS_WIDTHS = 2;
2544
+ //#endregion
2545
+ //#region src/water/createRiverGeometry.d.ts
2546
+ export declare const createRiverGeometry: (course: readonly RiverCoursePoint[]) => BufferGeometry;
2547
+ //#endregion
912
2548
  //#region src/water/createUnderwaterFogState.d.ts
913
2549
  export declare const createUnderwaterFogState: () => UnderwaterFogState;
914
2550
  //#endregion
2551
+ //#region src/water/createWaterFlowUniforms.d.ts
2552
+ export declare const createWaterFlowUniforms: () => WaterFlow;
2553
+ //#endregion
915
2554
  //#region src/water/createWaterUniforms.d.ts
916
2555
  export declare const createWaterUniforms: () => WaterUniforms;
917
2556
  //#endregion
2557
+ //#region src/water/createWaterfallGeometry.d.ts
2558
+ export declare const createWaterfallGeometry: ({ across, drop, lip, width }: WaterfallSheet) => BufferGeometry;
2559
+ //#endregion
918
2560
  //#region src/water/updateUnderwaterFog.d.ts
919
2561
  export declare const updateUnderwaterFog: (eyeHeight: number, { level, underwaterFogColor, underwaterFogDensity }: Pick<WaterUniforms, "level" | "underwaterFogColor" | "underwaterFogDensity">, { color, density, heightFalloff, maxOpacity, startDistance }: FogUniforms, underwaterFogState: UnderwaterFogState) => void;
920
2562
  //#endregion
@@ -926,4 +2568,5 @@ export declare const computeOriginShift: (cameraPosition: Vector3, threshold: nu
926
2568
  //#endregion
927
2569
  //#region src/world/computeOutlineDistance.d.ts
928
2570
  export declare const computeOutlineDistance: (outline: readonly GroundPoint[], x: number, z: number) => number;
929
- //#endregion
2571
+ //#endregion
2572
+ export { CliffFeature, GaussianHill, GaussianHills, GroundBand, GroundLayer, GroundLayerColors, GroundLayerField, GroundLayers, GroundPaint, GroundPathSegment, PlateauFeature, RidgeFeature, ScatterOptions, TerrainFeature, TerrainFeatureKind, TerrainOptions, TerrainResidual, TerrainResidualClearing, TerrainResidualFade, TerrainShape, TerrainTile, TerrainTileOptions, computeScatterPoints, computeTerrainTile, createGroundLayerWeights, createGroundPaintColor, createSeededRandom, createTerrainShapeHeight, getTerrainTileColumn, getTerrainTileLevel, getTerrainTileRow };