genshin-engine 3.9.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,45 +1,84 @@
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 { MeshBasicNodeMaterial, MeshPhysicalNodeMaterial, MeshToonNodeMaterial, MeshToonNodeMaterialParameters, Node, RenderPipeline, RenderTarget, Renderer, TextureNode, 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";
6
+ import GTAONode from "three/examples/jsm/tsl/display/GTAONode.js";
4
7
  import BloomNode from "three/examples/jsm/tsl/display/BloomNode.js";
5
8
  import GodraysNode from "three/examples/jsm/tsl/display/GodraysNode.js";
6
- //#region src/atmosphere/CloudBandOptions.d.ts
7
- export interface CloudBandOptions {
8
- count: number;
9
- distanceRange: [number, number];
10
- heightRange: [number, number];
11
- seed: number;
12
- widthRange: [number, number];
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>;
13
36
  }
14
37
  //#endregion
15
- //#region src/atmosphere/CloudSprite.d.ts
16
- export interface CloudSprite {
17
- lit: [number, number][][];
18
- outline: [number, number][][];
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;
19
49
  }
20
50
  //#endregion
21
- //#region src/atmosphere/SkyKeyframe.d.ts
22
- export interface SkyKeyframe {
23
- cloudLitBackColor?: Color;
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
67
+ //#region src/models/atmosphere/BaseSkyState.d.ts
68
+ export interface BaseSkyState {
24
69
  cloudLitColor: Color;
25
- cloudShadeBackColor?: Color;
26
70
  cloudShadeColor: Color;
27
- haloColor?: Color;
28
71
  hemisphereGroundColor: Color;
29
72
  hemisphereIntensity: number;
30
73
  hemisphereSkyColor: Color;
31
- horizonBackColor?: Color;
32
74
  horizonColor: Color;
33
75
  lightColor: Color;
34
76
  lightIntensity: number;
35
- minutes: number;
36
77
  starIntensity: number;
37
- sunHaloColor?: Color;
38
- zenithBackColor?: Color;
39
78
  zenithColor: Color;
40
79
  }
41
80
  //#endregion
42
- //#region src/atmosphere/SkyShape.d.ts
81
+ //#region src/models/atmosphere/SkyShape.d.ts
43
82
  export interface SkyShape {
44
83
  frontBackBlend: number;
45
84
  haloHeight: number;
@@ -48,58 +87,48 @@ export interface SkyShape {
48
87
  sunHaloSize: number;
49
88
  }
50
89
  //#endregion
51
- //#region src/atmosphere/SkyState.d.ts
52
- export interface SkyState extends Omit<SkyKeyframe, "minutes"> {
90
+ //#region src/models/post/WhiteBalance.d.ts
91
+ export interface WhiteBalance {
92
+ temperature: number;
93
+ tint: number;
94
+ }
95
+ //#endregion
96
+ //#region src/models/atmosphere/SkyState.d.ts
97
+ export interface SkyState extends BaseSkyState {
98
+ cloudLitBackColor?: Color;
99
+ cloudShadeBackColor?: Color;
53
100
  fogColor?: Color;
54
101
  fogDensity?: number;
102
+ fogHeightFalloff?: number;
103
+ fogMaxOpacity?: number;
104
+ haloColor?: Color;
105
+ horizonBackColor?: Color;
55
106
  lightDirection: Vector3;
56
107
  moonDirection: Vector3;
108
+ moonGlowColor?: Color;
57
109
  shape?: SkyShape;
58
110
  sunDirection: Vector3;
111
+ sunHaloColor?: Color;
112
+ whiteBalance?: WhiteBalance;
113
+ zenithBackColor?: Color;
59
114
  }
60
115
  //#endregion
61
- //#region src/atmosphere/SkyUniforms.d.ts
62
- export interface SkyUniforms {
63
- cloudCoverage: UniformNode<"float", number>;
64
- cloudDrift: UniformNode<"vec2", Vector2>;
65
- cloudFrontBackBlend: UniformNode<"float", number>;
66
- cloudLitBackColor: UniformNode<"color", Color>;
67
- cloudLitColor: UniformNode<"color", Color>;
68
- cloudShadeBackColor: UniformNode<"color", Color>;
69
- cloudShadeColor: UniformNode<"color", Color>;
70
- cloudSunBrighten: UniformNode<"float", number>;
71
- frontBackBlend: UniformNode<"float", number>;
72
- haloColor: UniformNode<"color", Color>;
73
- haloHeight: UniformNode<"float", number>;
74
- horizonBackColor: UniformNode<"color", Color>;
75
- horizonBand: UniformNode<"float", number>;
76
- horizonColor: UniformNode<"color", Color>;
77
- lightColor: UniformNode<"color", Color>;
78
- moonDirection: UniformNode<"vec3", Vector3>;
79
- moonGlowColor: UniformNode<"color", Color>;
80
- moonSize: UniformNode<"float", number>;
81
- starIntensity: UniformNode<"float", number>;
82
- sunDirection: UniformNode<"vec3", Vector3>;
83
- sunHaloColor: UniformNode<"color", Color>;
84
- sunHaloSize: UniformNode<"float", number>;
85
- zenithBackColor: UniformNode<"color", Color>;
86
- zenithColor: UniformNode<"color", Color>;
87
- }
88
- //#endregion
89
- //#region src/nodes/LightUniforms.d.ts
116
+ //#region src/models/nodes/LightUniforms.d.ts
90
117
  export interface LightUniforms {
91
118
  lightColor: UniformNode<"color", Color>;
92
119
  rimColor: UniformNode<"color", Color>;
93
120
  rimStrength: UniformNode<"float", number>;
94
121
  sunDirection: UniformNode<"vec3", Vector3>;
122
+ wetness: UniformNode<"float", number>;
95
123
  }
96
124
  //#endregion
97
- //#region src/post/FogUniforms.d.ts
125
+ //#region src/models/post/FogUniforms.d.ts
98
126
  export interface FogUniforms {
99
127
  baseHeight: UniformNode<"float", number>;
100
128
  color: UniformNode<"color", Color>;
101
129
  density: UniformNode<"float", number>;
102
130
  heightFalloff: UniformNode<"float", number>;
131
+ maxOpacity: UniformNode<"float", number>;
103
132
  scatterColor: UniformNode<"color", Color>;
104
133
  scatterDirection: UniformNode<"vec3", Vector3>;
105
134
  scatterPower: UniformNode<"float", number>;
@@ -107,19 +136,20 @@ export interface FogUniforms {
107
136
  startDistance: UniformNode<"float", number>;
108
137
  }
109
138
  //#endregion
110
- //#region src/post/PostUniforms.d.ts
139
+ //#region src/models/post/PostUniforms.d.ts
111
140
  export interface PostUniforms {
112
141
  godraysColor: UniformNode<"color", Color>;
113
142
  gradeIntensity: UniformNode<"float", number>;
114
143
  outlineColor: UniformNode<"color", Color>;
115
144
  outlineFadeDistance: UniformNode<"float", number>;
116
145
  outlineThickness: UniformNode<"float", number>;
146
+ whiteBalance: UniformNode<"mat3", Matrix3>;
117
147
  }
118
148
  //#endregion
119
- //#region src/atmosphere/SkyTargets.d.ts
149
+ //#region src/models/atmosphere/SkyTargets.d.ts
120
150
  export interface SkyTargets {
121
151
  fogUniforms: FogUniforms;
122
- godraysLight: DirectionalLight;
152
+ godraysLight?: DirectionalLight;
123
153
  hemisphere: HemisphereLight;
124
154
  light: DirectionalLight;
125
155
  lightDistance: number;
@@ -128,55 +158,271 @@ export interface SkyTargets {
128
158
  skyUniforms: SkyUniforms;
129
159
  }
130
160
  //#endregion
131
- //#region src/atmosphere/SunLight.d.ts
132
- export interface SunLight {
133
- cascadedShadowNode: CSMShadowNode;
134
- light: DirectionalLight;
161
+ //#region src/atmosphere/applySkyState.d.ts
162
+ export declare const applySkyState: (skyState: SkyState, { fogUniforms, godraysLight, hemisphere, light, lightDistance, lightUniforms, postUniforms, skyUniforms }: SkyTargets) => void;
163
+ //#endregion
164
+ //#region src/models/atmosphere/PrecipitationKind.d.ts
165
+ export declare enum PrecipitationKind {
166
+ Rain = "Rain",
167
+ Sand = "Sand",
168
+ Snow = "Snow"
135
169
  }
136
170
  //#endregion
137
- //#region src/atmosphere/SunLightOptions.d.ts
138
- export interface SunLightOptions {
139
- cascadeCount: number;
140
- maxFar: number;
141
- shadowMapSize: number;
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;
142
181
  }
143
182
  //#endregion
144
- //#region src/atmosphere/applySkyState.d.ts
145
- export declare const applySkyState: (skyState: SkyState, { fogUniforms, godraysLight, hemisphere, light, lightDistance, lightUniforms, postUniforms, skyUniforms }: SkyTargets) => void;
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;
146
239
  //#endregion
147
240
  //#region src/atmosphere/computeSunDirection.d.ts
148
241
  export declare const computeSunDirection: (minutes: number, tilt: number, sunDirection: Vector3) => Vector3;
149
242
  //#endregion
243
+ //#region src/models/atmosphere/LightningFlashPulse.d.ts
244
+ export interface LightningFlashPulse {
245
+ seconds: number;
246
+ strength: number;
247
+ }
248
+ //#endregion
249
+ //#region src/models/atmosphere/SkyGradient.d.ts
250
+ export interface SkyGradient {
251
+ green: readonly number[];
252
+ red: readonly number[];
253
+ }
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
150
266
  //#region src/atmosphere/constants.d.ts
267
+ export declare const SUN_REDRAW_COSINE: number;
151
268
  export declare const DEFAULT_SKY_SHAPE: Readonly<SkyShape>;
152
- export declare const DEFAULT_SKY_GRADIENT: {
153
- green: number[];
154
- red: number[];
155
- };
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;
294
+ //#endregion
295
+ //#region src/models/atmosphere/CloudSprite.d.ts
296
+ export interface CloudSprite {
297
+ lit: [number, number][][];
298
+ outline: [number, number][][];
299
+ }
156
300
  //#endregion
157
301
  //#region src/atmosphere/createCloudAtlasTexture.d.ts
158
- export declare const getCloudAtlasColumns: (spriteCount: number) => number;
159
302
  export declare const createCloudAtlasTexture: (sprites: readonly CloudSprite[], cellSize: number) => CanvasTexture<OffscreenCanvas>;
160
303
  //#endregion
161
- //#region src/atmosphere/createCloudBandSprite.d.ts
162
- export declare const createCloudBandSprite: (atlas: Texture, clouds: readonly {
163
- position: [number, number, number];
164
- spriteIndex: number;
165
- width: number;
166
- }[], { aspect, spriteCount }: {
167
- aspect: number;
168
- spriteCount: number;
169
- }, skyUniforms: SkyUniforms) => {
304
+ //#region src/models/atmosphere/CloudBandSprite.d.ts
305
+ export interface CloudBandSprite {
306
+ cover: UniformNode<"float", number>;
170
307
  dispose: () => void;
171
308
  places: [number, number, number][];
172
309
  sprite: Sprite;
310
+ }
311
+ //#endregion
312
+ //#region src/models/atmosphere/CloudBandSpriteOptions.d.ts
313
+ export interface CloudBandSpriteOptions {
314
+ aspect: number;
315
+ spriteCount: number;
316
+ }
317
+ //#endregion
318
+ //#region src/models/atmosphere/CloudPlacement.d.ts
319
+ export interface CloudPlacement {
320
+ position: [number, number, number];
321
+ spriteIndex: number;
322
+ width: number;
323
+ }
324
+ //#endregion
325
+ //#region src/atmosphere/createCloudBandSprite.d.ts
326
+ export declare const createCloudBandSprite: (atlas: Texture, clouds: readonly CloudPlacement[], { aspect, spriteCount }: CloudBandSpriteOptions, skyUniforms: SkyUniforms) => CloudBandSprite;
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;
173
381
  };
174
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
175
424
  //#region src/atmosphere/createSkyGradientTexture.d.ts
176
- export declare const createSkyGradientTexture: ({ green, red }: {
177
- green: readonly number[];
178
- red: readonly number[];
179
- }) => DataTexture;
425
+ export declare const createSkyGradientTexture: ({ green, red }: SkyGradient) => DataTexture;
180
426
  //#endregion
181
427
  //#region src/atmosphere/createSkyState.d.ts
182
428
  export declare const createSkyState: () => SkyState;
@@ -184,183 +430,1808 @@ export declare const createSkyState: () => SkyState;
184
430
  //#region src/atmosphere/createSkyUniforms.d.ts
185
431
  export declare const createSkyUniforms: () => SkyUniforms;
186
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
441
+ //#region src/models/atmosphere/SunLight.d.ts
442
+ export interface SunLight {
443
+ cascadedShadowNode: AnchoredCascadeShadowNode;
444
+ light: DirectionalLight;
445
+ }
446
+ //#endregion
447
+ //#region src/models/atmosphere/SunLightOptions.d.ts
448
+ export interface SunLightOptions {
449
+ cascadeCount: number;
450
+ maxFar: number;
451
+ shadowMapSize: number;
452
+ }
453
+ //#endregion
187
454
  //#region src/atmosphere/createSunLight.d.ts
188
455
  export declare const createSunLight: ({ cascadeCount, maxFar, shadowMapSize }: SunLightOptions) => SunLight;
189
456
  //#endregion
457
+ //#region src/atmosphere/getCloudAtlasColumns.d.ts
458
+ export declare const getCloudAtlasColumns: (spriteCount: number) => number;
459
+ //#endregion
190
460
  //#region src/atmosphere/orderByViewDepth.d.ts
191
- export declare const orderByViewDepth: (places: readonly (readonly number[])[], { elements }: Matrix4) => number[];
461
+ export declare const orderByViewDepth: (places: readonly (readonly number[])[], { elements }: Matrix4, depths: Float64Array, order: Uint32Array) => boolean;
462
+ //#endregion
463
+ //#region src/models/atmosphere/CloudBandOptions.d.ts
464
+ export interface CloudBandOptions {
465
+ count: number;
466
+ distanceRange: [number, number];
467
+ heightRange: [number, number];
468
+ seed: number;
469
+ widthRange: [number, number];
470
+ }
192
471
  //#endregion
193
472
  //#region src/atmosphere/placeCloudBand.d.ts
194
- export declare const placeCloudBand: ({ count, distanceRange: [near, far], heightRange: [low, high], seed, widthRange: [narrow, wide] }: CloudBandOptions, spriteCount: number) => {
195
- position: [number, number, number];
196
- spriteIndex: number;
197
- width: number;
198
- }[];
473
+ export declare const placeCloudBand: ({ count, distanceRange: [near, far], heightRange: [low, high], seed, widthRange: [narrow, wide] }: CloudBandOptions, spriteCount: number) => CloudPlacement[];
474
+ //#endregion
475
+ //#region src/models/atmosphere/SkyKeyframe.d.ts
476
+ export interface SkyKeyframe extends BaseSkyState {
477
+ minutes: number;
478
+ }
199
479
  //#endregion
200
480
  //#region src/atmosphere/sampleSkyState.d.ts
201
481
  export declare const sampleSkyState: (skyKeyframes: readonly SkyKeyframe[], minutes: number, tilt: number, skyState: SkyState) => SkyState;
202
482
  //#endregion
203
- //#region src/clock/GameClock.d.ts
204
- export interface GameClock {
205
- minutes: number;
206
- minutesPerSecond: number;
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
489
+ //#region src/models/audio/MusicNote.d.ts
490
+ export interface MusicNote {
491
+ duration: number;
492
+ pitch: number;
493
+ start: number;
494
+ velocity: number;
207
495
  }
208
496
  //#endregion
209
- //#region src/clock/advanceGameClock.d.ts
210
- export declare const advanceGameClock: (gameClock: GameClock, deltaSeconds: number) => void;
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
+ }
211
504
  //#endregion
212
- //#region src/clock/constants.d.ts
213
- export declare const MINUTES_PER_DAY = 1440;
214
- export declare const GAME_MINUTES_PER_SECOND = 1;
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
+ }
215
512
  //#endregion
216
- //#region src/kits/architecture/LatheSection.d.ts
217
- export interface LatheSection {
218
- bottomRadius: number;
219
- height: number;
220
- topRadius: number;
513
+ //#region src/models/audio/Instrument.d.ts
514
+ export interface Instrument {
515
+ attack: number;
516
+ decay: number;
517
+ harmonics: number[];
518
+ level: number;
519
+ noiseBands: number[];
520
+ recordingLevel: number;
521
+ recordings: MusicRecording[];
522
+ release: number;
523
+ sustain: number;
524
+ tuning: number;
221
525
  }
222
526
  //#endregion
223
- //#region src/kits/architecture/LatheStackOptions.d.ts
224
- export interface LatheStackOptions {
225
- isFaceted: boolean;
226
- radialSegments: number;
227
- sections: LatheSection[];
527
+ //#region src/models/audio/MusicVoice.d.ts
528
+ export interface MusicVoice {
529
+ instrument: Instrument;
530
+ notes: MusicNote[];
228
531
  }
229
532
  //#endregion
230
- //#region src/kits/architecture/createBoxesGeometry.d.ts
231
- export declare const createBoxesGeometry: (boxes: readonly (readonly number[])[]) => BufferGeometry;
533
+ //#region src/models/audio/ScheduledMusicNote.d.ts
534
+ export interface ScheduledMusicNote {
535
+ note: MusicNote;
536
+ time: number;
537
+ voice: MusicVoice;
538
+ }
232
539
  //#endregion
233
- //#region src/kits/architecture/createLatheStackGeometry.d.ts
234
- export declare const createLatheStackGeometry: ({ isFaceted, radialSegments, sections }: LatheStackOptions) => BufferGeometry;
540
+ //#region src/models/audio/MusicSegment.d.ts
541
+ export interface MusicSegment {
542
+ duration: number;
543
+ expression: number[];
544
+ voices: MusicVoice[];
545
+ volume: number;
546
+ }
547
+ //#endregion
548
+ //#region src/models/audio/ScheduledMusicSegment.d.ts
549
+ export interface ScheduledMusicSegment {
550
+ segment: MusicSegment;
551
+ start: number;
552
+ }
235
553
  //#endregion
236
- //#region src/kits/statue/createStatueGeometry.d.ts
237
- export declare const createStatueGeometry: () => BufferGeometry;
554
+ //#region src/audio/collectMusicNotes.d.ts
555
+ export declare const collectMusicNotes: ({ segment, start }: ScheduledMusicSegment, from: number, to: number) => ScheduledMusicNote[];
238
556
  //#endregion
239
- //#region src/kits/tree/BranchSegment.d.ts
240
- export interface BranchSegment {
241
- end: Vector3;
242
- endRadius: number;
243
- start: Vector3;
244
- startRadius: number;
557
+ //#region src/models/audio/Music.d.ts
558
+ export interface Music {
559
+ isLooping: boolean;
560
+ order: number[];
561
+ segments: MusicSegment[];
245
562
  }
246
563
  //#endregion
247
- //#region src/kits/tree/LeafCards.d.ts
248
- export interface LeafCards {
249
- indices: Uint32Array;
250
- normals: Float32Array;
251
- positions: Float32Array;
252
- uvs: Float32Array;
564
+ //#region src/audio/collectMusicSegments.d.ts
565
+ export declare const collectMusicSegments: ({ isLooping, order, segments }: Music, from: number, to: number) => ScheduledMusicSegment[];
566
+ //#endregion
567
+ //#region src/audio/computeNoiseSamples.d.ts
568
+ export declare const computeNoiseSamples: (noiseBands: readonly number[], sampleRate: number) => Float32Array;
569
+ //#endregion
570
+ //#region src/models/audio/SoundEffect.d.ts
571
+ export interface SoundEffect {
572
+ frameSeconds: number;
573
+ leftLevels: number[][];
574
+ rightLevels: number[][];
575
+ sharedLevels: number[][];
253
576
  }
254
577
  //#endregion
255
- //#region src/kits/tree/TreeGeometry.d.ts
256
- export interface TreeGeometry {
257
- branchGeometry: BufferGeometry;
258
- leafGeometry: BufferGeometry;
578
+ //#region src/audio/computeSoundEffectSamples.d.ts
579
+ export declare const computeSoundEffectSamples: ({ frameSeconds, leftLevels, rightLevels, sharedLevels }: SoundEffect, sampleRate: number, seed?: number) => [Float32Array, Float32Array];
580
+ //#endregion
581
+ //#region src/audio/constants.d.ts
582
+ export declare const MUSIC_LOOKAHEAD_SECONDS = 2;
583
+ export declare const MUSIC_SCHEDULE_INTERVAL_MS = 500;
584
+ export declare const RELEASE_TIME_CONSTANTS = 7;
585
+ export declare const MUSIC_NOISE_LENGTH: number;
586
+ export declare const MUSIC_NOISE_BAND_CENTRES: number[];
587
+ export declare const MUSIC_EXPRESSION_WINDOW_SECONDS = 8;
588
+ export declare const A4_PITCH = 69;
589
+ export declare const A4_FREQUENCY = 440;
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;
593
+ //#endregion
594
+ //#region src/audio/createInstrumentWave.d.ts
595
+ export declare const createInstrumentWave: (context: BaseAudioContext, harmonics: number[]) => PeriodicWave;
596
+ //#endregion
597
+ //#region src/models/audio/MusicPlayer.d.ts
598
+ export interface MusicPlayer {
599
+ start: () => void;
600
+ stop: () => void;
259
601
  }
260
602
  //#endregion
261
- //#region src/kits/tree/TreeOptions.d.ts
262
- export interface TreeOptions {
263
- branchLength: number;
264
- cardSize: number;
265
- cardsPerCluster: number;
266
- clusterRadius: number;
267
- mainBranchCount: number;
268
- seed: number;
269
- trunkHeight: number;
270
- trunkRadius: number;
603
+ //#region src/audio/createMusicPlayer.d.ts
604
+ export declare const createMusicPlayer: (context: AudioContext, music: Music, recordingBufferMap: ReadonlyMap<string, AudioBuffer>, destination?: AudioNode) => MusicPlayer;
605
+ //#endregion
606
+ //#region src/audio/createNoiseBuffer.d.ts
607
+ export declare const createNoiseBuffer: (context: BaseAudioContext, noiseBands: number[]) => AudioBuffer | undefined;
608
+ //#endregion
609
+ //#region src/audio/createSoundEffectBuffer.d.ts
610
+ export declare const createSoundEffectBuffer: (context: BaseAudioContext, soundEffect: SoundEffect) => AudioBuffer;
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
621
+ //#region src/audio/renderMusicSegment.d.ts
622
+ export declare const renderMusicSegment: (music: Music, segmentIndex: number, sampleRate: number, recordingBufferMap: ReadonlyMap<string, AudioBuffer>) => Promise<AudioBuffer>;
623
+ //#endregion
624
+ //#region src/audio/scheduleMusicExpression.d.ts
625
+ export declare const scheduleMusicExpression: (gain: AudioParam, expression: number[], start: number) => void;
626
+ //#endregion
627
+ //#region src/audio/scheduleMusicNote.d.ts
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;
629
+ //#endregion
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;
632
+ //#endregion
633
+ //#region src/audio/selectMusicSample.d.ts
634
+ export declare const selectMusicSample: <T extends MusicSampleRange>(samples: T[], pitch: number, velocity: number) => T | undefined;
635
+ //#endregion
636
+ //#region src/audio/transformFourier.d.ts
637
+ export declare const transformFourier: (real: Float64Array, imaginary: Float64Array) => void;
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
1377
+ //#region src/models/clock/GameClock.d.ts
1378
+ export interface GameClock {
1379
+ minutes: number;
1380
+ minutesPerSecond: number;
1381
+ }
1382
+ //#endregion
1383
+ //#region src/clock/advanceGameClock.d.ts
1384
+ export declare const advanceGameClock: (gameClock: GameClock, deltaSeconds: number) => void;
1385
+ //#endregion
1386
+ //#region src/clock/constants.d.ts
1387
+ export declare const MINUTES_PER_DAY = 1440;
1388
+ export declare const GAME_MINUTES_PER_SECOND = 1;
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
1400
+ //#region src/constants.d.ts
1401
+ export declare const MAX_BYTE = 255;
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
1462
+ //#region src/kits/architecture/createBoxesGeometry.d.ts
1463
+ export declare const createBoxesGeometry: (boxes: readonly (readonly number[])[]) => BufferGeometry;
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
1485
+ //#region src/models/kits/architecture/LatheSection.d.ts
1486
+ export interface LatheSection {
1487
+ bottomRadius: number;
1488
+ height: number;
1489
+ topRadius: number;
1490
+ }
1491
+ //#endregion
1492
+ //#region src/models/kits/architecture/LatheStackOptions.d.ts
1493
+ export interface LatheStackOptions {
1494
+ isFaceted: boolean;
1495
+ radialSegments: number;
1496
+ sections: LatheSection[];
1497
+ }
1498
+ //#endregion
1499
+ //#region src/kits/architecture/createLatheStackGeometry.d.ts
1500
+ export declare const createLatheStackGeometry: ({ isFaceted, radialSegments, sections }: LatheStackOptions) => BufferGeometry;
1501
+ //#endregion
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;
1519
+ //#endregion
1520
+ //#region src/kits/architecture/createPavingStoneGeometry.d.ts
1521
+ export declare const createPavingStoneGeometry: ({ bottom, radii, top }: PavingStoneShape) => BufferGeometry;
1522
+ //#endregion
1523
+ //#region src/models/kits/tree/LeafCards.d.ts
1524
+ export interface LeafCards {
1525
+ indices: Uint32Array;
1526
+ normals: Float32Array;
1527
+ positions: Float32Array;
1528
+ uvs: Float32Array;
1529
+ }
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
1598
+ //#region src/models/kits/tree/TreeOptions.d.ts
1599
+ export interface TreeOptions {
1600
+ cardSize: number;
1601
+ clusters: readonly TreeCluster[];
1602
+ leafAreaScale: number;
1603
+ limbs: readonly TreeTube[];
1604
+ normalField?: TreeNormalField;
1605
+ roots: readonly TreeTube[];
1606
+ seed: number;
1607
+ }
1608
+ //#endregion
1609
+ //#region src/kits/tree/computeLeafCards.d.ts
1610
+ export declare const computeLeafCards: (clusters: readonly TreeCluster[], { cardSize, leafAreaScale, normalField, seed }: Pick<TreeOptions, "cardSize" | "leafAreaScale" | "normalField" | "seed">) => LeafCards;
1611
+ //#endregion
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;
1618
+ }
1619
+ //#endregion
1620
+ //#region src/kits/tree/computeTreeTubes.d.ts
1621
+ export declare const computeTreeTubes: (tubes: readonly TreeTube[]) => TreeTubes;
1622
+ //#endregion
1623
+ //#region src/models/kits/tree/TreeGeometry.d.ts
1624
+ export interface TreeGeometry {
1625
+ branchGeometry: BufferGeometry;
1626
+ leafGeometry: BufferGeometry;
1627
+ }
1628
+ //#endregion
1629
+ //#region src/kits/tree/createTreeGeometry.d.ts
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;
1724
+ //#endregion
1725
+ //#region src/materials/addSmoothLoop.d.ts
1726
+ export declare const addSmoothLoop: (path: Path2D, points: readonly (readonly [number, number])[]) => void;
1727
+ //#endregion
1728
+ //#region src/models/materials/RampOptions.d.ts
1729
+ export interface RampOptions {
1730
+ resolution: number;
1731
+ shade: number;
1732
+ softness: number;
1733
+ terminator: number;
1734
+ }
1735
+ //#endregion
1736
+ //#region src/materials/computeRampValues.d.ts
1737
+ export declare const computeRampValues: ({ resolution, shade, softness, terminator }: RampOptions) => Uint8Array;
1738
+ //#endregion
1739
+ //#region src/materials/createRampTexture.d.ts
1740
+ export declare const createRampTexture: (rampOptions: RampOptions) => DataTexture;
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
1856
+ //#region src/models/nodes/StoneLight.d.ts
1857
+ export interface StoneLight {
1858
+ harmonics: (readonly number[])[];
1859
+ hazeColor: readonly number[];
1860
+ hazeScatterColor: readonly number[];
1861
+ heightDarkening: number;
1862
+ heightFade: readonly number[];
1863
+ ramp: (readonly number[])[];
1864
+ }
1865
+ //#endregion
1866
+ //#region src/models/nodes/StoneLightUniforms.d.ts
1867
+ export interface StoneLightUniforms {
1868
+ harmonics: UniformArrayNode<"vec3">;
1869
+ hazeColor: UniformNode<"color", Color>;
1870
+ hazeScatterColor: UniformNode<"color", Color>;
1871
+ heightDarkening: UniformNode<"float", number>;
1872
+ heightFade: UniformNode<"color", Color>;
1873
+ ramp: DataTexture;
1874
+ sunRadiance: UniformNode<"color", Color>;
1875
+ }
1876
+ //#endregion
1877
+ //#region src/models/nodes/StoneLightingModel.d.ts
1878
+ export declare class StoneLightingModel extends LightingModel {
1879
+ readonly stoneLight: StoneLightUniforms;
1880
+ constructor(stoneLight: StoneLightUniforms);
1881
+ createDarkeningNode(): Node<"float">;
1882
+ override direct({ lightColor, lightDirection, reflectedLight }: LightingModelDirectInput): void;
1883
+ override indirect(builder: NodeBuilder): void;
1884
+ }
1885
+ //#endregion
1886
+ //#region src/models/nodes/StoneMaterialOptions.d.ts
1887
+ export interface StoneMaterialOptions {
1888
+ albedo: string;
1889
+ glowRange: number;
1890
+ rimColor: readonly number[];
1891
+ rimPower: number;
1892
+ rimStrength: number;
1893
+ smoothness: number;
1894
+ specularColor: readonly number[];
1895
+ }
1896
+ //#endregion
1897
+ //#region src/models/nodes/StoneNodeMaterial.d.ts
1898
+ export declare class StoneNodeMaterial extends NodeMaterial {
1899
+ emissiveNode: Node | null;
1900
+ readonly stoneLight: StoneLightUniforms;
1901
+ constructor(stoneLight: StoneLightUniforms);
1902
+ override setupLightingModel(): StoneLightingModel;
1903
+ }
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
1912
+ //#region src/models/nodes/ToonMaterialOptions.d.ts
1913
+ export interface ToonMaterialOptions {
1914
+ color?: ColorRepresentation;
1915
+ detail?: SurfaceDetail;
1916
+ isObjectSurface?: boolean;
1917
+ isOutlined?: boolean;
1918
+ isVertexColors?: boolean;
1919
+ lightUniforms: LightUniforms;
1920
+ rampTexture: DataTexture;
1921
+ }
1922
+ //#endregion
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;
1929
+ //#endregion
1930
+ //#region src/models/post/GradeOptions.d.ts
1931
+ export interface GradeOptions {
1932
+ contrast: number;
1933
+ highlightTint: readonly [number, number, number];
1934
+ saturation: number;
1935
+ shadowTint: readonly [number, number, number];
1936
+ size: number;
1937
+ }
1938
+ //#endregion
1939
+ //#region src/models/post/PostPipeline.d.ts
1940
+ export interface PostPipeline {
1941
+ bloomNode?: BloomNode;
1942
+ compileAsync: () => Promise<void>;
1943
+ dispose: () => void;
1944
+ godraysNode?: GodraysNode;
1945
+ renderPipeline: RenderPipeline;
1946
+ }
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
1955
+ //#region src/models/renderer/AntialiasingMode.d.ts
1956
+ export declare enum AntialiasingMode {
1957
+ Smaa = "Smaa",
1958
+ Traa = "Traa"
1959
+ }
1960
+ //#endregion
1961
+ //#region src/models/renderer/QualityTierSettings.d.ts
1962
+ export interface QualityTierSettings {
1963
+ antialiasingMode: AntialiasingMode;
1964
+ cascadeCount: number;
1965
+ godraysStepCount: number;
1966
+ grassDensity: number;
1967
+ isBloomEnabled: boolean;
1968
+ isOcclusionEnabled: boolean;
1969
+ maxPixelRatio: number;
1970
+ shadowMapSize: number;
1971
+ }
1972
+ //#endregion
1973
+ //#region src/models/post/PostPipelineOptions.d.ts
1974
+ export interface PostPipelineOptions {
1975
+ camera: Camera;
1976
+ fogUniforms: FogUniforms;
1977
+ godraysLight?: DirectionalLight;
1978
+ gradeLutTexture?: Data3DTexture;
1979
+ isBloomed?: boolean;
1980
+ occlusionRadius?: number;
1981
+ postUniforms: PostUniforms;
1982
+ qualityTierSettings: QualityTierSettings;
1983
+ renderer: Renderer;
1984
+ scene: Scene;
1985
+ sight?: {
1986
+ litScene: Scene;
1987
+ uniforms: SightUniforms;
1988
+ };
1989
+ stoneLight?: StoneLightUniforms;
1990
+ }
1991
+ //#endregion
1992
+ //#region src/models/renderer/QualityTier.d.ts
1993
+ export declare enum QualityTier {
1994
+ High = "High",
1995
+ Low = "Low",
1996
+ Medium = "Medium"
1997
+ }
1998
+ //#endregion
1999
+ //#region src/models/renderer/ScreenCamera.d.ts
2000
+ export interface ScreenCamera {
2001
+ aspect: number;
2002
+ fov: number;
2003
+ pitch: number;
2004
+ yaw: number;
2005
+ }
2006
+ //#endregion
2007
+ //#region src/models/scene/SceneMaterial.d.ts
2008
+ export interface SceneMaterial {
2009
+ colors: Record<string, [number, number, number, number]>;
2010
+ floats: Record<string, number>;
2011
+ keywords: string[];
2012
+ name: string;
2013
+ shader?: string;
2014
+ textures: Record<string, {
2015
+ name: string;
2016
+ offset: [number, number];
2017
+ scale: [number, number];
2018
+ }>;
2019
+ }
2020
+ //#endregion
2021
+ //#region src/models/scene/ScenePlacement.d.ts
2022
+ export interface ScenePlacement {
2023
+ materials: string[];
2024
+ mesh: string;
2025
+ position: [number, number, number];
2026
+ rotation: [number, number, number, number];
2027
+ scale: [number, number, number];
2028
+ }
2029
+ //#endregion
2030
+ //#region src/models/scene/SceneLayout.d.ts
2031
+ export interface SceneLayout {
2032
+ materials: Record<string, SceneMaterial>;
2033
+ placements: ScenePlacement[];
2034
+ }
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
2042
+ //#region src/models/terrain/TerrainSelection.d.ts
2043
+ export interface TerrainSelection {
2044
+ count: number;
2045
+ keys: Float64Array;
2046
+ }
2047
+ //#endregion
2048
+ //#region src/models/streaming/TileStreamer.d.ts
2049
+ export interface TileStreamer<TTile> {
2050
+ dispose: () => void;
2051
+ fail: (key: number) => boolean;
2052
+ get: (key: number) => TTile | undefined;
2053
+ has: (key: number) => boolean;
2054
+ isSettled: (key: number) => boolean;
2055
+ pendingKeys: () => number[];
2056
+ receive: (key: number, tile: TTile) => void;
2057
+ refresh: (checkIsChanged: (key: number) => boolean) => void;
2058
+ update: (wanted: TerrainSelection, drawn: TerrainSelection, surrounding: TerrainSelection) => void;
2059
+ }
2060
+ //#endregion
2061
+ //#region src/models/streaming/TileStreamerOptions.d.ts
2062
+ export interface TileStreamerOptions<TTile> {
2063
+ disposeTile: (tile: TTile) => void;
2064
+ maxCachedCount: number;
2065
+ maxPendingCount: number;
2066
+ requestTile: (key: number) => void;
2067
+ }
2068
+ //#endregion
2069
+ //#region src/models/terrain/TerrainBounds.d.ts
2070
+ export interface TerrainBounds {
2071
+ maxX: number;
2072
+ maxZ: number;
2073
+ minX: number;
2074
+ minZ: number;
2075
+ }
2076
+ //#endregion
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;
2084
+ }
2085
+ //#endregion
2086
+ //#region src/models/terrain/TerrainTileArrays.d.ts
2087
+ export type TerrainTileArrays = Pick<TerrainTile, "coarseColors" | "coarseNormals" | "coarsePositions" | "colors" | "normals" | "positions">;
2088
+ //#endregion
2089
+ //#region src/models/vegetation/GrassBlade.d.ts
2090
+ export interface GrassBlade {
2091
+ indices: Uint16Array;
2092
+ positions: Float32Array;
2093
+ }
2094
+ //#endregion
2095
+ //#region src/models/vegetation/GrassRing.d.ts
2096
+ export interface GrassRing {
2097
+ cellsPerSide: number;
2098
+ fadeEnd: number;
2099
+ fadeStart: number;
2100
+ innerRadius: number;
2101
+ scale: number;
2102
+ spacing: number;
2103
+ }
2104
+ //#endregion
2105
+ //#region src/models/vegetation/GrassOptions.d.ts
2106
+ export interface GrassOptions {
2107
+ bladeHeight: number;
2108
+ bladeWidth: number;
2109
+ cameraGround: UniformNode<"vec2", Vector2>;
2110
+ density: UniformNode<"float", number>;
2111
+ groundCapture: GroundCapture;
2112
+ lightUniforms: LightUniforms;
2113
+ rampTexture: DataTexture;
2114
+ ring: GrassRing;
2115
+ waterUniforms: Pick<WaterUniforms, "level">;
2116
+ windUniforms: WindUniforms;
2117
+ }
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;
271
2132
  }
272
2133
  //#endregion
273
- //#region src/kits/tree/TreeSkeleton.d.ts
274
- export interface TreeSkeleton {
275
- branchSegments: BranchSegment[];
276
- clusterCenters: Vector3[];
2134
+ //#region src/models/water/UnderwaterFogState.d.ts
2135
+ export interface UnderwaterFogState {
2136
+ aboveDensity: number;
2137
+ aboveHeightFalloff: number;
2138
+ aboveMaxOpacity: number;
2139
+ aboveStartDistance: number;
2140
+ isUnderwater: boolean;
2141
+ underwaterDensity: number;
277
2142
  }
278
2143
  //#endregion
279
- //#region src/kits/tree/computeLeafCards.d.ts
280
- export declare const computeLeafCards: (clusterCenters: readonly Vector3[], { cardSize, cardsPerCluster, clusterRadius, seed }: Pick<TreeOptions, "cardSize" | "cardsPerCluster" | "clusterRadius" | "seed">) => LeafCards;
281
- //#endregion
282
- //#region src/kits/tree/computeTreeSkeleton.d.ts
283
- export declare const computeTreeSkeleton: ({ branchLength, mainBranchCount, seed, trunkHeight, trunkRadius }: Pick<TreeOptions, "branchLength" | "mainBranchCount" | "seed" | "trunkHeight" | "trunkRadius">) => TreeSkeleton;
284
- //#endregion
285
- //#region src/kits/tree/createTreeGeometry.d.ts
286
- export declare const createTreeGeometry: (treeOptions: TreeOptions) => TreeGeometry;
287
- //#endregion
288
- //#region src/materials/RampOptions.d.ts
289
- export interface RampOptions {
290
- resolution: number;
291
- softness: number;
292
- terminator: number;
2144
+ //#region src/models/water/WaterFlow.d.ts
2145
+ export interface WaterFlow {
2146
+ direction: UniformNode<"vec2", Vector2>;
2147
+ speed: UniformNode<"float", number>;
293
2148
  }
294
2149
  //#endregion
295
- //#region src/materials/addSmoothLoop.d.ts
296
- export declare const addSmoothLoop: (path: Path2D, points: readonly (readonly [number, number])[]) => void;
2150
+ //#region src/models/water/WaterfallSheet.d.ts
2151
+ export interface WaterfallSheet {
2152
+ across: Vector3;
2153
+ drop: number;
2154
+ lip: Vector3;
2155
+ width: number;
2156
+ }
297
2157
  //#endregion
298
- //#region src/materials/computeRampValues.d.ts
299
- export declare const computeRampValues: ({ resolution, softness, terminator }: RampOptions) => Uint8Array;
2158
+ //#region src/models/world/GroundPoint.d.ts
2159
+ export interface GroundPoint {
2160
+ x: number;
2161
+ z: number;
2162
+ }
300
2163
  //#endregion
301
- //#region src/materials/createRampTexture.d.ts
302
- export declare const createRampTexture: (rampOptions: RampOptions) => DataTexture;
2164
+ //#region src/nodes/applyStoneLight.d.ts
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;
303
2166
  //#endregion
304
- //#region src/nodes/StoneMaterialOptions.d.ts
305
- export interface StoneMaterialOptions {
306
- albedo: string;
307
- rimColor: readonly number[];
308
- rimPower: number;
309
- rimStrength: number;
310
- smoothness: number;
311
- specularColor: readonly number[];
312
- }
2167
+ //#region src/nodes/computeStoneDarkening.d.ts
2168
+ export declare const computeStoneDarkening: (height: number, heightDarkening: number) => number;
313
2169
  //#endregion
314
- //#region src/nodes/ToonMaterialOptions.d.ts
315
- export interface ToonMaterialOptions {
316
- color?: ColorRepresentation;
317
- isOutlined?: boolean;
318
- isVertexColors?: boolean;
319
- lightUniforms: LightUniforms;
320
- rampTexture: DataTexture;
321
- }
2170
+ //#region src/nodes/computeStoneHarmonics.d.ts
2171
+ export declare const computeStoneHarmonics: ([x, y, z]: readonly number[], harmonics: number[]) => void;
322
2172
  //#endregion
323
- //#region src/nodes/ToonNodeMaterial.d.ts
324
- export declare class ToonNodeMaterial extends MeshToonNodeMaterial {
325
- emissiveNode: Node | null;
326
- override readonly isMeshToonNodeMaterial: boolean;
327
- constructor(parameters: MeshToonNodeMaterialParameters, isOutlined: boolean);
328
- }
2173
+ //#region src/nodes/computeStoneRampCoordinate.d.ts
2174
+ export declare const computeStoneRampCoordinate: (facing: number, visibility: number) => number;
329
2175
  //#endregion
330
- //#region src/water/WaterUniforms.d.ts
331
- export interface WaterUniforms {
332
- causticStrength: UniformNode<"float", number>;
333
- deepColor: UniformNode<"color", Color>;
334
- deepDepth: UniformNode<"float", number>;
335
- foamColor: UniformNode<"color", Color>;
336
- foamDepth: UniformNode<"float", number>;
337
- level: UniformNode<"float", number>;
338
- shallowColor: UniformNode<"color", Color>;
339
- underwaterFogColor: UniformNode<"color", Color>;
340
- underwaterFogDensity: UniformNode<"float", number>;
2176
+ //#region src/nodes/computeSurfaceOctaves.d.ts
2177
+ export interface SurfaceOctave {
2178
+ amplitude: number;
2179
+ frequency: number;
341
2180
  }
2181
+ export declare const computeSurfaceOctaves: ({ bands, metresPerTexel, variance }: SurfaceDetail) => SurfaceOctave[];
2182
+ //#endregion
2183
+ //#region src/nodes/constants.d.ts
2184
+ export declare const LEAST_DIVISOR = 1e-4;
2185
+ export declare const STONE_SHADOW_EXPONENT = .2;
2186
+ export declare const STONE_RAMP_KNOT_COUNT = 16;
2187
+ export declare const STONE_HARMONIC_COUNT = 9;
2188
+ export declare const STONE_MASK_OUTPUT = "stoneMask";
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;
342
2201
  //#endregion
343
2202
  //#region src/nodes/createCausticsNode.d.ts
344
2203
  export declare const createCausticsNode: ({ lightColor }: Pick<LightUniforms, "lightColor">, { causticStrength, deepDepth, level }: Pick<WaterUniforms, "causticStrength" | "deepDepth" | "level">) => Node<"vec3">;
345
2204
  //#endregion
346
- //#region src/nodes/createGenshinRenderer.d.ts
347
- export declare const createGenshinRenderer: (canvas: HTMLCanvasElement) => WebGPURenderer;
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">;
348
2207
  //#endregion
349
- //#region src/wind/WindUniforms.d.ts
350
- export interface WindUniforms {
351
- direction: UniformNode<"vec2", Vector2>;
352
- gustSpeed: UniformNode<"float", number>;
353
- gustStrength: UniformNode<"float", number>;
354
- gustWidth: UniformNode<"float", number>;
355
- strength: UniformNode<"float", number>;
356
- }
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;
357
2213
  //#endregion
358
2214
  //#region src/nodes/createLeafMaterial.d.ts
359
2215
  export declare const createLeafMaterial: (toonMaterialOptions: ToonMaterialOptions, windUniforms?: WindUniforms) => ToonNodeMaterial;
360
2216
  //#endregion
2217
+ //#region src/nodes/createLeafShapeNode.d.ts
2218
+ export declare const createLeafShapeNode: () => Node<"float">;
2219
+ //#endregion
361
2220
  //#region src/nodes/createLightUniforms.d.ts
362
2221
  export declare const createLightUniforms: () => LightUniforms;
363
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
364
2235
  //#region src/nodes/createRimNode.d.ts
365
2236
  export declare const createRimNode: ({ rimColor, rimStrength, sunDirection }: LightUniforms) => Node<"vec3">;
366
2237
  //#endregion
@@ -368,71 +2239,84 @@ export declare const createRimNode: ({ rimColor, rimStrength, sunDirection }: Li
368
2239
  export declare const createSkyColorNode: ({ frontBackBlend, haloColor, haloHeight, horizonBackColor, horizonBand, horizonColor, sunDirection, sunHaloColor, sunHaloSize, zenithBackColor, zenithColor }: SkyUniforms, gradient: Texture, direction: Node<"vec3">) => Node<"vec3">;
369
2240
  //#endregion
370
2241
  //#region src/nodes/createSkyNode.d.ts
371
- 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">;
2249
+ //#endregion
2250
+ //#region src/nodes/createStoneLightUniforms.d.ts
2251
+ export declare const createStoneLightUniforms: () => StoneLightUniforms;
372
2252
  //#endregion
373
2253
  //#region src/nodes/createStoneMaterial.d.ts
374
- export declare const createStoneMaterial: ({ albedo, rimColor, rimPower, rimStrength, smoothness, specularColor }: StoneMaterialOptions, glowNode?: Node<"vec3">) => MeshPhysicalNodeMaterial;
2254
+ export declare const createStoneMaterial: (options: StoneMaterialOptions, stoneLight: StoneLightUniforms, glowNode?: Node<"vec3">) => StoneNodeMaterial;
2255
+ //#endregion
2256
+ //#region src/nodes/createSunVisibilityNode.d.ts
2257
+ export declare const createSunVisibilityNode: (lightColor: Node, sunRadiance: UniformNode<"color", Color>) => Node<"float">;
2258
+ //#endregion
2259
+ //#region src/nodes/createSurfaceDetailNode.d.ts
2260
+ export declare const createSurfaceDetailNode: (amplitudes: Node<"float">[], texelsPerMetre: Node<"float">) => Node<"float">;
375
2261
  //#endregion
376
2262
  //#region src/nodes/createToonMaterial.d.ts
377
- 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;
378
2264
  //#endregion
379
2265
  //#region src/nodes/createWaterMaterial.d.ts
380
- 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">;
381
2276
  //#endregion
382
2277
  //#region src/nodes/createWindNode.d.ts
383
2278
  export declare const createWindNode: ({ direction, gustSpeed, gustStrength, gustWidth, strength }: WindUniforms, groundPosition: Node<"vec2">) => Node<"vec2">;
384
2279
  //#endregion
385
- //#region src/noise/createSimplexNoise.d.ts
386
- export declare const createSimplexNoise: (seed: number) => ((x: number, y: number) => number);
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
+ };
387
2285
  //#endregion
388
- //#region src/post/GradeOptions.d.ts
389
- export interface GradeOptions {
390
- contrast: number;
391
- highlightTint: readonly [number, number, number];
392
- saturation: number;
393
- shadowTint: readonly [number, number, number];
394
- size: number;
395
- }
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
+ };
396
2291
  //#endregion
397
- //#region src/post/PostPipeline.d.ts
398
- export interface PostPipeline {
399
- bloomNode?: BloomNode;
400
- godraysNode?: GodraysNode;
401
- renderPipeline: RenderPipeline;
402
- }
2292
+ //#region src/nodes/setObjectFade.d.ts
2293
+ export declare const setObjectFade: (object: Object3D, fade: number) => void;
403
2294
  //#endregion
404
- //#region src/renderer/AntialiasingMode.d.ts
405
- export declare enum AntialiasingMode {
406
- Smaa = "Smaa",
407
- Traa = "Traa"
408
- }
2295
+ //#region src/nodes/setObjectSurface.d.ts
2296
+ export declare const setObjectSurface: (object: Object3D, color: ColorRepresentation, detail?: SurfaceDetail) => void;
409
2297
  //#endregion
410
- //#region src/renderer/QualityTierSettings.d.ts
411
- export interface QualityTierSettings {
412
- antialiasingMode: AntialiasingMode;
413
- cascadeCount: number;
414
- godraysStepCount: number;
415
- grassDensity: number;
416
- isBloomEnabled: boolean;
417
- maxPixelRatio: number;
418
- shadowMapSize: number;
419
- }
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;
420
2301
  //#endregion
421
- //#region src/post/PostPipelineOptions.d.ts
422
- export interface PostPipelineOptions {
423
- camera: Camera;
424
- fogUniforms: FogUniforms;
425
- godraysLight: DirectionalLight;
426
- gradeLutTexture: Data3DTexture;
427
- postUniforms: PostUniforms;
428
- qualityTierSettings: QualityTierSettings;
429
- renderer: Renderer;
430
- scene: Scene;
431
- }
2302
+ //#region src/noise/createSimplexNoise.d.ts
2303
+ export declare const createSimplexNoise: (seed: number) => ((x: number, y: number) => number);
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;
432
2313
  //#endregion
433
2314
  //#region src/post/computeGradeLut.d.ts
434
2315
  export declare const computeGradeLut: ({ contrast, highlightTint, saturation, shadowTint, size }: GradeOptions) => Uint8Array;
435
2316
  //#endregion
2317
+ //#region src/post/computeWhiteBalance.d.ts
2318
+ export declare const computeWhiteBalance: ({ temperature, tint }: WhiteBalance, whiteBalance?: Matrix3) => Matrix3;
2319
+ //#endregion
436
2320
  //#region src/post/createFogUniforms.d.ts
437
2321
  export declare const createFogUniforms: () => FogUniforms;
438
2322
  //#endregion
@@ -443,207 +2327,205 @@ export declare const createGodraysLight: (shadowMapSize: number, halfExtent: num
443
2327
  export declare const createGradeLutTexture: (gradeOptions: GradeOptions) => Data3DTexture;
444
2328
  //#endregion
445
2329
  //#region src/post/createHeightFogNode.d.ts
446
- export declare const createHeightFogNode: (colorNode: Node<"vec4">, depthNode: TextureNode, camera: Camera, { baseHeight, color, density, heightFalloff, scatterColor, scatterDirection, scatterPower, scatterStrength, startDistance }: FogUniforms) => Node<"vec4">;
2330
+ export declare const createHeightFogNode: (colorNode: Node<"vec4">, depthNode: TextureNode, camera: Camera, { baseHeight, color, density, heightFalloff, maxOpacity, scatterColor, scatterDirection, scatterPower, scatterStrength, startDistance }: FogUniforms, stoneHaze?: Pick<StoneLightUniforms, "hazeColor" | "hazeScatterColor"> & {
2331
+ maskNode: TextureNode;
2332
+ }) => Node<"vec4">;
2333
+ //#endregion
2334
+ //#region src/post/createOcclusionNode.d.ts
2335
+ export declare const createOcclusionNode: (depthNode: TextureNode, camera: Camera, radius: number) => GTAONode;
447
2336
  //#endregion
448
2337
  //#region src/post/createPostPipeline.d.ts
449
- export declare const createPostPipeline: ({ camera, fogUniforms, godraysLight, gradeLutTexture, postUniforms: { godraysColor, gradeIntensity, outlineColor, outlineFadeDistance, outlineThickness }, qualityTierSettings: { antialiasingMode, godraysStepCount, isBloomEnabled }, renderer, scene }: 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;
450
2339
  //#endregion
451
2340
  //#region src/post/createPostUniforms.d.ts
452
2341
  export declare const createPostUniforms: () => PostUniforms;
453
2342
  //#endregion
454
- //#region src/post/toSceneColor.d.ts
455
- export declare const toSceneColor: (displayColor: Color) => Color;
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">;
456
2345
  //#endregion
457
- //#region src/post/toneMapNeutral.d.ts
458
- export declare const toneMapNeutral: ([red, green, blue]: [number, number, number]) => [number, number, number];
2346
+ //#region src/post/createSightUniforms.d.ts
2347
+ export declare const createSightUniforms: () => SightUniforms;
459
2348
  //#endregion
460
- //#region src/random/createSeededRandom.d.ts
461
- export declare const createSeededRandom: (seed: number) => (() => number);
2349
+ //#region src/post/toSceneColor.d.ts
2350
+ export declare const toSceneColor: (displayColor: Color, sceneColor?: Color) => Color;
462
2351
  //#endregion
463
- //#region src/renderer/QualityTier.d.ts
464
- export declare enum QualityTier {
465
- High = "High",
466
- Low = "Low",
467
- Medium = "Medium"
468
- }
2352
+ //#region src/post/toneMapGenshin.d.ts
2353
+ export declare const toneMapGenshin: (sceneColor: readonly [number, number, number], toneMapped?: [number, number, number]) => [number, number, number];
2354
+ //#endregion
2355
+ //#region src/post/toneMapGenshinNode.d.ts
2356
+ export declare const toneMapGenshinNode: (sceneColor: Node<"vec3">) => Node<"vec3">;
469
2357
  //#endregion
470
2358
  //#region src/renderer/QualityTierSettingsMap.d.ts
471
2359
  export declare const QualityTierSettingsMap: Readonly<Record<QualityTier, QualityTierSettings>>;
472
2360
  //#endregion
2361
+ //#region src/renderer/attachInspector.d.ts
2362
+ export declare const attachInspector: (renderer: Renderer) => Promise<Inspector>;
2363
+ //#endregion
473
2364
  //#region src/renderer/constants.d.ts
474
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;
475
2371
  //#endregion
476
- //#region src/renderer/getScreenDirection.d.ts
477
- export declare const getScreenDirection: ({ aspect, fov, pitch, yaw }: {
478
- aspect: number;
479
- fov: number;
480
- pitch: number;
481
- yaw: number;
482
- }, [x, y]: [number, number]) => Vector3;
483
- //#endregion
484
- //#region src/scene/SceneMaterial.d.ts
485
- export interface SceneMaterial {
486
- colors: Record<string, [number, number, number, number]>;
487
- floats: Record<string, number>;
488
- name: string;
489
- textures: Record<string, {
490
- name: string;
491
- offset: [number, number];
492
- scale: [number, number];
493
- }>;
494
- }
2372
+ //#region src/renderer/createGenshinRenderer.d.ts
2373
+ export declare const createGenshinRenderer: (canvas: HTMLCanvasElement) => WebGPURenderer;
495
2374
  //#endregion
496
- //#region src/scene/ScenePlacement.d.ts
497
- export interface ScenePlacement {
498
- materials: string[];
499
- mesh: string;
500
- position: [number, number, number];
501
- rotation: [number, number, number, number];
502
- scale: [number, number, number];
503
- }
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>;
504
2377
  //#endregion
505
- //#region src/scene/SceneLayout.d.ts
506
- export interface SceneLayout {
507
- materials: Record<string, SceneMaterial>;
508
- placements: ScenePlacement[];
509
- }
2378
+ //#region src/renderer/getScreenDirection.d.ts
2379
+ export declare const getScreenDirection: ({ aspect, fov, pitch, yaw }: ScreenCamera, [x, y]: [number, number]) => Vector3;
510
2380
  //#endregion
511
- //#region src/terrain/TerrainSelection.d.ts
512
- export interface TerrainSelection {
513
- count: number;
514
- keys: Float64Array;
515
- }
2381
+ //#region src/simulation/constants.d.ts
2382
+ export declare const MAX_STEPS_PER_FRAME = 5;
516
2383
  //#endregion
517
- //#region src/streaming/TileStreamer.d.ts
518
- export interface TileStreamer<TTile> {
519
- dispose: () => void;
520
- get: (key: number) => TTile | undefined;
521
- has: (key: number) => boolean;
522
- receive: (key: number, tile: TTile) => void;
523
- update: (wanted: TerrainSelection, drawn: TerrainSelection) => void;
524
- }
2384
+ //#region src/simulation/createFixedStepLoop.d.ts
2385
+ export declare const createFixedStepLoop: (stepSeconds: number, step: () => void) => FixedStepLoop;
525
2386
  //#endregion
526
- //#region src/streaming/TileStreamerOptions.d.ts
527
- export interface TileStreamerOptions<TTile> {
528
- disposeTile: (tile: TTile) => void;
529
- maxCachedCount: number;
530
- maxPendingCount: number;
531
- requestTile: (key: number) => void;
532
- }
2387
+ //#region src/streaming/constants.d.ts
2388
+ export declare const MAX_TILE_ATTEMPTS = 3;
533
2389
  //#endregion
534
2390
  //#region src/streaming/createTileStreamer.d.ts
535
2391
  export declare const createTileStreamer: <TTile>({ disposeTile, maxCachedCount, maxPendingCount, requestTile }: TileStreamerOptions<TTile>) => TileStreamer<TTile>;
536
2392
  //#endregion
537
- //#region src/terrain/TerrainOptions.d.ts
538
- export interface TerrainOptions {
539
- cellsPerSide: number;
540
- finestRange: number;
541
- finestTileSize: number;
542
- levelCount: number;
543
- maxHeight: number;
544
- minHeight: number;
545
- morphShare: number;
546
- }
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; };
547
2397
  //#endregion
548
- //#region src/terrain/TerrainTile.d.ts
549
- export interface TerrainTile {
550
- coarsePositions: Float32Array;
551
- colors: Float32Array;
552
- key: number;
553
- normals: Float32Array;
554
- positions: Float32Array;
555
- }
2398
+ //#region src/terrain/blendGridNodes.d.ts
2399
+ export declare const blendGridNodes: (values: readonly number[], sizeX: number, sizeZ: number, column: number, row: number) => number;
556
2400
  //#endregion
557
- //#region src/terrain/TerrainTileOptions.d.ts
558
- export interface TerrainTileOptions extends Pick<TerrainOptions, "cellsPerSide" | "finestTileSize"> {
559
- getHeight: (x: number, z: number) => number;
560
- key: number;
561
- writeColor: (colors: Float32Array, offset: number, height: number, slope: number, x: number, z: number) => void;
562
- }
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;
563
2409
  //#endregion
564
2410
  //#region src/terrain/computeTerrainIndices.d.ts
565
2411
  export declare const computeTerrainIndices: (cellsPerSide: number) => Uint16Array | Uint32Array;
566
2412
  //#endregion
567
- //#region src/terrain/computeTerrainTile.d.ts
568
- export declare const computeTerrainTile: ({ cellsPerSide, finestTileSize, getHeight, key, writeColor }: TerrainTileOptions) => TerrainTile;
569
- //#endregion
570
2413
  //#region src/terrain/constants.d.ts
571
2414
  export declare const TILE_INDEX_OFFSET: number;
572
2415
  export declare const TILE_INDEX_SPAN: number;
573
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;
2421
+ //#endregion
2422
+ //#region src/terrain/createGaussianHillsHeight.d.ts
2423
+ export declare const createGaussianHillsHeight: ({ base, hills }: GaussianHills) => ((x: number, z: number) => number);
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);
574
2433
  //#endregion
575
2434
  //#region src/terrain/createTerrainMaterial.d.ts
576
- 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;
577
2439
  //#endregion
578
2440
  //#region src/terrain/createTerrainSelection.d.ts
579
2441
  export declare const createTerrainSelection: (capacity: number) => TerrainSelection;
580
2442
  //#endregion
581
2443
  //#region src/terrain/createTerrainTileGeometry.d.ts
582
- 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;
583
2454
  //#endregion
584
2455
  //#region src/terrain/getParentTerrainTileKey.d.ts
585
2456
  export declare const getParentTerrainTileKey: (key: number) => number;
586
2457
  //#endregion
587
- //#region src/terrain/getTerrainTileColumn.d.ts
588
- 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;
589
2481
  //#endregion
590
2482
  //#region src/terrain/getTerrainTileKey.d.ts
591
2483
  export declare const getTerrainTileKey: (level: number, column: number, row: number) => number;
592
2484
  //#endregion
593
- //#region src/terrain/getTerrainTileLevel.d.ts
594
- export declare const getTerrainTileLevel: (key: number) => number;
595
- //#endregion
596
- //#region src/terrain/getTerrainTileRow.d.ts
597
- 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;
598
2487
  //#endregion
599
2488
  //#region src/terrain/resolveTerrainDraws.d.ts
600
2489
  export declare const resolveTerrainDraws: ({ levelCount }: Pick<TerrainOptions, "levelCount">, wanted: TerrainSelection, checkTileLoaded: (key: number) => boolean, draws: TerrainSelection) => TerrainSelection;
601
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
602
2497
  //#region src/terrain/selectTerrainTiles.d.ts
603
2498
  export declare const selectTerrainTiles: (terrainOptions: TerrainOptions, eye: Vector3Like, frustum: Frustum | undefined, selection: TerrainSelection) => TerrainSelection;
604
2499
  //#endregion
605
- //#region src/vegetation/GrassBlade.d.ts
606
- export interface GrassBlade {
607
- indices: Uint16Array;
608
- positions: Float32Array;
609
- }
610
- //#endregion
611
- //#region src/vegetation/GrassRing.d.ts
612
- export interface GrassRing {
613
- cellsPerSide: number;
614
- fadeEnd: number;
615
- fadeStart: number;
616
- innerRadius: number;
617
- scale: number;
618
- spacing: number;
619
- }
2500
+ //#region src/terrain/writeTerrainRingIndices.d.ts
2501
+ export declare const writeTerrainRingIndices: (ringIndices: Uint32Array, tileIndices: Uint16Array | Uint32Array, drawnOrdinals: readonly number[], vertexCount: number) => number;
620
2502
  //#endregion
621
- //#region src/vegetation/GroundCapture.d.ts
622
- export interface GroundCapture {
623
- camera: OrthographicCamera;
624
- center: UniformNode<"vec2", Vector2>;
625
- material: MeshBasicNodeMaterial;
626
- renderTarget: RenderTarget;
627
- size: number;
628
- }
2503
+ //#region src/terrain/writeTerrainRingTile.d.ts
2504
+ export declare const writeTerrainRingTile: (ring: TerrainTileArrays, base: number, tile: TerrainTile, finestTileSize: number) => void;
629
2505
  //#endregion
630
- //#region src/vegetation/GrassOptions.d.ts
631
- export interface GrassOptions {
632
- bladeHeight: number;
633
- bladeWidth: number;
634
- cameraGround: UniformNode<"vec2", Vector2>;
635
- density: UniformNode<"float", number>;
636
- groundCapture: GroundCapture;
637
- lightUniforms: LightUniforms;
638
- rampTexture: DataTexture;
639
- ring: GrassRing;
640
- waterUniforms: Pick<WaterUniforms, "level">;
641
- windUniforms: WindUniforms;
642
- }
2506
+ //#region src/vegetation/bakeImpostor.d.ts
2507
+ export declare const bakeImpostor: (renderer: Renderer, parts: readonly ImpostorPart[], resolution: number) => Impostor;
643
2508
  //#endregion
644
2509
  //#region src/vegetation/computeGrassBlade.d.ts
645
2510
  export declare const computeGrassBlade: (segmentCount: number) => GrassBlade;
646
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
647
2529
  //#region src/vegetation/createGrassGeometry.d.ts
648
2530
  export declare const createGrassGeometry: (segmentCount: number, bladeCount: number) => InstancedBufferGeometry;
649
2531
  //#endregion
@@ -656,35 +2538,35 @@ export declare const createGroundCapture: (size: number, resolution: number) =>
656
2538
  //#region src/vegetation/renderGroundCapture.d.ts
657
2539
  export declare const renderGroundCapture: (renderer: Renderer, scene: Scene, { camera, center, material, renderTarget }: GroundCapture, { maxHeight }: Pick<TerrainOptions, "maxHeight">, worldCenter: Vector3Like, origin: Vector3Like) => void;
658
2540
  //#endregion
659
- //#region src/water/UnderwaterFogState.d.ts
660
- export interface UnderwaterFogState {
661
- aboveDensity: number;
662
- aboveHeightFalloff: number;
663
- aboveStartDistance: number;
664
- isUnderwater: boolean;
665
- }
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;
666
2547
  //#endregion
667
2548
  //#region src/water/createUnderwaterFogState.d.ts
668
2549
  export declare const createUnderwaterFogState: () => UnderwaterFogState;
669
2550
  //#endregion
2551
+ //#region src/water/createWaterFlowUniforms.d.ts
2552
+ export declare const createWaterFlowUniforms: () => WaterFlow;
2553
+ //#endregion
670
2554
  //#region src/water/createWaterUniforms.d.ts
671
2555
  export declare const createWaterUniforms: () => WaterUniforms;
672
2556
  //#endregion
2557
+ //#region src/water/createWaterfallGeometry.d.ts
2558
+ export declare const createWaterfallGeometry: ({ across, drop, lip, width }: WaterfallSheet) => BufferGeometry;
2559
+ //#endregion
673
2560
  //#region src/water/updateUnderwaterFog.d.ts
674
- export declare const updateUnderwaterFog: (eyeHeight: number, { level, underwaterFogColor, underwaterFogDensity }: Pick<WaterUniforms, "level" | "underwaterFogColor" | "underwaterFogDensity">, { color, density, heightFalloff, startDistance }: FogUniforms, underwaterFogState: UnderwaterFogState) => void;
2561
+ export declare const updateUnderwaterFog: (eyeHeight: number, { level, underwaterFogColor, underwaterFogDensity }: Pick<WaterUniforms, "level" | "underwaterFogColor" | "underwaterFogDensity">, { color, density, heightFalloff, maxOpacity, startDistance }: FogUniforms, underwaterFogState: UnderwaterFogState) => void;
675
2562
  //#endregion
676
2563
  //#region src/wind/createWindUniforms.d.ts
677
2564
  export declare const createWindUniforms: () => WindUniforms;
678
2565
  //#endregion
679
- //#region src/world/GroundPoint.d.ts
680
- export interface GroundPoint {
681
- x: number;
682
- z: number;
683
- }
684
- //#endregion
685
2566
  //#region src/world/computeOriginShift.d.ts
686
2567
  export declare const computeOriginShift: (cameraPosition: Vector3, threshold: number, step: number, shift: Vector3) => boolean;
687
2568
  //#endregion
688
2569
  //#region src/world/computeOutlineDistance.d.ts
689
2570
  export declare const computeOutlineDistance: (outline: readonly GroundPoint[], x: number, z: number) => number;
690
- //#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 };