genshin-engine 3.9.0 → 4.0.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,25 @@
1
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";
2
+ import { LightingModel, LightingModelDirectInput, MeshBasicNodeMaterial, MeshToonNodeMaterial, MeshToonNodeMaterialParameters, Node, NodeBuilder, NodeMaterial, RenderPipeline, RenderTarget, Renderer, TextureNode, UniformArrayNode, UniformNode, WebGPURenderer } from "three/webgpu";
3
3
  import { CSMShadowNode } from "three/examples/jsm/csm/CSMShadowNode.js";
4
+ import GTAONode from "three/examples/jsm/tsl/display/GTAONode.js";
4
5
  import BloomNode from "three/examples/jsm/tsl/display/BloomNode.js";
5
6
  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];
13
- }
14
- //#endregion
15
- //#region src/atmosphere/CloudSprite.d.ts
16
- export interface CloudSprite {
17
- lit: [number, number][][];
18
- outline: [number, number][][];
19
- }
20
- //#endregion
21
- //#region src/atmosphere/SkyKeyframe.d.ts
22
- export interface SkyKeyframe {
23
- cloudLitBackColor?: Color;
7
+ import { Inspector } from "three/examples/jsm/inspector/Inspector.js";
8
+ //#region src/models/atmosphere/BaseSkyState.d.ts
9
+ export interface BaseSkyState {
24
10
  cloudLitColor: Color;
25
- cloudShadeBackColor?: Color;
26
11
  cloudShadeColor: Color;
27
- haloColor?: Color;
28
12
  hemisphereGroundColor: Color;
29
13
  hemisphereIntensity: number;
30
14
  hemisphereSkyColor: Color;
31
- horizonBackColor?: Color;
32
15
  horizonColor: Color;
33
16
  lightColor: Color;
34
17
  lightIntensity: number;
35
- minutes: number;
36
18
  starIntensity: number;
37
- sunHaloColor?: Color;
38
- zenithBackColor?: Color;
39
19
  zenithColor: Color;
40
20
  }
41
21
  //#endregion
42
- //#region src/atmosphere/SkyShape.d.ts
22
+ //#region src/models/atmosphere/SkyShape.d.ts
43
23
  export interface SkyShape {
44
24
  frontBackBlend: number;
45
25
  haloHeight: number;
@@ -48,17 +28,26 @@ export interface SkyShape {
48
28
  sunHaloSize: number;
49
29
  }
50
30
  //#endregion
51
- //#region src/atmosphere/SkyState.d.ts
52
- export interface SkyState extends Omit<SkyKeyframe, "minutes"> {
31
+ //#region src/models/atmosphere/SkyState.d.ts
32
+ export interface SkyState extends BaseSkyState {
33
+ cloudLitBackColor?: Color;
34
+ cloudShadeBackColor?: Color;
53
35
  fogColor?: Color;
54
36
  fogDensity?: number;
37
+ fogHeightFalloff?: number;
38
+ fogMaxOpacity?: number;
39
+ haloColor?: Color;
40
+ horizonBackColor?: Color;
55
41
  lightDirection: Vector3;
56
42
  moonDirection: Vector3;
43
+ moonGlowColor?: Color;
57
44
  shape?: SkyShape;
58
45
  sunDirection: Vector3;
46
+ sunHaloColor?: Color;
47
+ zenithBackColor?: Color;
59
48
  }
60
49
  //#endregion
61
- //#region src/atmosphere/SkyUniforms.d.ts
50
+ //#region src/models/atmosphere/SkyUniforms.d.ts
62
51
  export interface SkyUniforms {
63
52
  cloudCoverage: UniformNode<"float", number>;
64
53
  cloudDrift: UniformNode<"vec2", Vector2>;
@@ -86,7 +75,7 @@ export interface SkyUniforms {
86
75
  zenithColor: UniformNode<"color", Color>;
87
76
  }
88
77
  //#endregion
89
- //#region src/nodes/LightUniforms.d.ts
78
+ //#region src/models/nodes/LightUniforms.d.ts
90
79
  export interface LightUniforms {
91
80
  lightColor: UniformNode<"color", Color>;
92
81
  rimColor: UniformNode<"color", Color>;
@@ -94,12 +83,13 @@ export interface LightUniforms {
94
83
  sunDirection: UniformNode<"vec3", Vector3>;
95
84
  }
96
85
  //#endregion
97
- //#region src/post/FogUniforms.d.ts
86
+ //#region src/models/post/FogUniforms.d.ts
98
87
  export interface FogUniforms {
99
88
  baseHeight: UniformNode<"float", number>;
100
89
  color: UniformNode<"color", Color>;
101
90
  density: UniformNode<"float", number>;
102
91
  heightFalloff: UniformNode<"float", number>;
92
+ maxOpacity: UniformNode<"float", number>;
103
93
  scatterColor: UniformNode<"color", Color>;
104
94
  scatterDirection: UniformNode<"vec3", Vector3>;
105
95
  scatterPower: UniformNode<"float", number>;
@@ -107,7 +97,7 @@ export interface FogUniforms {
107
97
  startDistance: UniformNode<"float", number>;
108
98
  }
109
99
  //#endregion
110
- //#region src/post/PostUniforms.d.ts
100
+ //#region src/models/post/PostUniforms.d.ts
111
101
  export interface PostUniforms {
112
102
  godraysColor: UniformNode<"color", Color>;
113
103
  gradeIntensity: UniformNode<"float", number>;
@@ -116,10 +106,10 @@ export interface PostUniforms {
116
106
  outlineThickness: UniformNode<"float", number>;
117
107
  }
118
108
  //#endregion
119
- //#region src/atmosphere/SkyTargets.d.ts
109
+ //#region src/models/atmosphere/SkyTargets.d.ts
120
110
  export interface SkyTargets {
121
111
  fogUniforms: FogUniforms;
122
- godraysLight: DirectionalLight;
112
+ godraysLight?: DirectionalLight;
123
113
  hemisphere: HemisphereLight;
124
114
  light: DirectionalLight;
125
115
  lightDistance: number;
@@ -128,55 +118,57 @@ export interface SkyTargets {
128
118
  skyUniforms: SkyUniforms;
129
119
  }
130
120
  //#endregion
131
- //#region src/atmosphere/SunLight.d.ts
132
- export interface SunLight {
133
- cascadedShadowNode: CSMShadowNode;
134
- light: DirectionalLight;
135
- }
136
- //#endregion
137
- //#region src/atmosphere/SunLightOptions.d.ts
138
- export interface SunLightOptions {
139
- cascadeCount: number;
140
- maxFar: number;
141
- shadowMapSize: number;
142
- }
143
- //#endregion
144
121
  //#region src/atmosphere/applySkyState.d.ts
145
122
  export declare const applySkyState: (skyState: SkyState, { fogUniforms, godraysLight, hemisphere, light, lightDistance, lightUniforms, postUniforms, skyUniforms }: SkyTargets) => void;
146
123
  //#endregion
147
124
  //#region src/atmosphere/computeSunDirection.d.ts
148
125
  export declare const computeSunDirection: (minutes: number, tilt: number, sunDirection: Vector3) => Vector3;
149
126
  //#endregion
127
+ //#region src/models/atmosphere/SkyGradient.d.ts
128
+ export interface SkyGradient {
129
+ green: readonly number[];
130
+ red: readonly number[];
131
+ }
132
+ //#endregion
150
133
  //#region src/atmosphere/constants.d.ts
151
134
  export declare const DEFAULT_SKY_SHAPE: Readonly<SkyShape>;
152
- export declare const DEFAULT_SKY_GRADIENT: {
153
- green: number[];
154
- red: number[];
155
- };
135
+ export declare const DEFAULT_SKY_GRADIENT: SkyGradient;
136
+ //#endregion
137
+ //#region src/models/atmosphere/CloudSprite.d.ts
138
+ export interface CloudSprite {
139
+ lit: [number, number][][];
140
+ outline: [number, number][][];
141
+ }
156
142
  //#endregion
157
143
  //#region src/atmosphere/createCloudAtlasTexture.d.ts
158
- export declare const getCloudAtlasColumns: (spriteCount: number) => number;
159
144
  export declare const createCloudAtlasTexture: (sprites: readonly CloudSprite[], cellSize: number) => CanvasTexture<OffscreenCanvas>;
160
145
  //#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) => {
146
+ //#region src/models/atmosphere/CloudBandSprite.d.ts
147
+ export interface CloudBandSprite {
148
+ cover: UniformNode<"float", number>;
170
149
  dispose: () => void;
171
150
  places: [number, number, number][];
172
151
  sprite: Sprite;
173
- };
152
+ }
153
+ //#endregion
154
+ //#region src/models/atmosphere/CloudBandSpriteOptions.d.ts
155
+ export interface CloudBandSpriteOptions {
156
+ aspect: number;
157
+ spriteCount: number;
158
+ }
159
+ //#endregion
160
+ //#region src/models/atmosphere/CloudPlacement.d.ts
161
+ export interface CloudPlacement {
162
+ position: [number, number, number];
163
+ spriteIndex: number;
164
+ width: number;
165
+ }
166
+ //#endregion
167
+ //#region src/atmosphere/createCloudBandSprite.d.ts
168
+ export declare const createCloudBandSprite: (atlas: Texture, clouds: readonly CloudPlacement[], { aspect, spriteCount }: CloudBandSpriteOptions, skyUniforms: SkyUniforms) => CloudBandSprite;
174
169
  //#endregion
175
170
  //#region src/atmosphere/createSkyGradientTexture.d.ts
176
- export declare const createSkyGradientTexture: ({ green, red }: {
177
- green: readonly number[];
178
- red: readonly number[];
179
- }) => DataTexture;
171
+ export declare const createSkyGradientTexture: ({ green, red }: SkyGradient) => DataTexture;
180
172
  //#endregion
181
173
  //#region src/atmosphere/createSkyState.d.ts
182
174
  export declare const createSkyState: () => SkyState;
@@ -184,23 +176,172 @@ export declare const createSkyState: () => SkyState;
184
176
  //#region src/atmosphere/createSkyUniforms.d.ts
185
177
  export declare const createSkyUniforms: () => SkyUniforms;
186
178
  //#endregion
179
+ //#region src/models/atmosphere/SunLight.d.ts
180
+ export interface SunLight {
181
+ cascadedShadowNode: CSMShadowNode;
182
+ light: DirectionalLight;
183
+ }
184
+ //#endregion
185
+ //#region src/models/atmosphere/SunLightOptions.d.ts
186
+ export interface SunLightOptions {
187
+ cascadeCount: number;
188
+ maxFar: number;
189
+ shadowMapSize: number;
190
+ }
191
+ //#endregion
187
192
  //#region src/atmosphere/createSunLight.d.ts
188
193
  export declare const createSunLight: ({ cascadeCount, maxFar, shadowMapSize }: SunLightOptions) => SunLight;
189
194
  //#endregion
195
+ //#region src/atmosphere/getCloudAtlasColumns.d.ts
196
+ export declare const getCloudAtlasColumns: (spriteCount: number) => number;
197
+ //#endregion
190
198
  //#region src/atmosphere/orderByViewDepth.d.ts
191
- export declare const orderByViewDepth: (places: readonly (readonly number[])[], { elements }: Matrix4) => number[];
199
+ export declare const orderByViewDepth: (places: readonly (readonly number[])[], { elements }: Matrix4, depths: Float64Array, order: Uint32Array) => boolean;
200
+ //#endregion
201
+ //#region src/models/atmosphere/CloudBandOptions.d.ts
202
+ export interface CloudBandOptions {
203
+ count: number;
204
+ distanceRange: [number, number];
205
+ heightRange: [number, number];
206
+ seed: number;
207
+ widthRange: [number, number];
208
+ }
192
209
  //#endregion
193
210
  //#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
- }[];
211
+ export declare const placeCloudBand: ({ count, distanceRange: [near, far], heightRange: [low, high], seed, widthRange: [narrow, wide] }: CloudBandOptions, spriteCount: number) => CloudPlacement[];
212
+ //#endregion
213
+ //#region src/models/atmosphere/SkyKeyframe.d.ts
214
+ export interface SkyKeyframe extends BaseSkyState {
215
+ minutes: number;
216
+ }
199
217
  //#endregion
200
218
  //#region src/atmosphere/sampleSkyState.d.ts
201
219
  export declare const sampleSkyState: (skyKeyframes: readonly SkyKeyframe[], minutes: number, tilt: number, skyState: SkyState) => SkyState;
202
220
  //#endregion
203
- //#region src/clock/GameClock.d.ts
221
+ //#region src/models/audio/MusicNote.d.ts
222
+ export interface MusicNote {
223
+ duration: number;
224
+ pitch: number;
225
+ start: number;
226
+ velocity: number;
227
+ }
228
+ //#endregion
229
+ //#region src/models/audio/Instrument.d.ts
230
+ export interface Instrument {
231
+ attack: number;
232
+ decay: number;
233
+ harmonics: number[];
234
+ level: number;
235
+ noiseBands: number[];
236
+ release: number;
237
+ sustain: number;
238
+ tuning: number;
239
+ }
240
+ //#endregion
241
+ //#region src/models/audio/MusicVoice.d.ts
242
+ export interface MusicVoice {
243
+ instrument: Instrument;
244
+ notes: MusicNote[];
245
+ }
246
+ //#endregion
247
+ //#region src/models/audio/ScheduledMusicNote.d.ts
248
+ export interface ScheduledMusicNote {
249
+ note: MusicNote;
250
+ time: number;
251
+ voice: MusicVoice;
252
+ }
253
+ //#endregion
254
+ //#region src/models/audio/MusicSegment.d.ts
255
+ export interface MusicSegment {
256
+ duration: number;
257
+ expression: number[];
258
+ voices: MusicVoice[];
259
+ }
260
+ //#endregion
261
+ //#region src/models/audio/ScheduledMusicSegment.d.ts
262
+ export interface ScheduledMusicSegment {
263
+ segment: MusicSegment;
264
+ start: number;
265
+ }
266
+ //#endregion
267
+ //#region src/audio/collectMusicNotes.d.ts
268
+ export declare const collectMusicNotes: ({ segment, start }: ScheduledMusicSegment, from: number, to: number) => ScheduledMusicNote[];
269
+ //#endregion
270
+ //#region src/models/audio/Music.d.ts
271
+ export interface Music {
272
+ isLooping: boolean;
273
+ order: number[];
274
+ segments: MusicSegment[];
275
+ }
276
+ //#endregion
277
+ //#region src/audio/collectMusicSegments.d.ts
278
+ export declare const collectMusicSegments: ({ isLooping, order, segments }: Music, from: number, to: number) => ScheduledMusicSegment[];
279
+ //#endregion
280
+ //#region src/audio/computeNoiseSamples.d.ts
281
+ export declare const computeNoiseSamples: (noiseBands: readonly number[], sampleRate: number) => Float32Array;
282
+ //#endregion
283
+ //#region src/models/audio/SoundEffect.d.ts
284
+ export interface SoundEffect {
285
+ frameSeconds: number;
286
+ levels: number[][];
287
+ }
288
+ //#endregion
289
+ //#region src/audio/computeSoundEffectSamples.d.ts
290
+ export declare const computeSoundEffectSamples: ({ frameSeconds, levels }: SoundEffect, sampleRate: number) => Float32Array;
291
+ //#endregion
292
+ //#region src/audio/constants.d.ts
293
+ export declare const MUSIC_LOOKAHEAD_SECONDS = 2;
294
+ export declare const MUSIC_SCHEDULE_INTERVAL_MS = 500;
295
+ export declare const RELEASE_TIME_CONSTANTS = 7;
296
+ export declare const MUSIC_NOISE_LENGTH: number;
297
+ export declare const MUSIC_NOISE_BAND_CENTRES: number[];
298
+ export declare const MUSIC_EXPRESSION_WINDOW_SECONDS = 8;
299
+ export declare const A4_PITCH = 69;
300
+ export declare const A4_FREQUENCY = 440;
301
+ export declare const MIDI_VELOCITY_MAX = 127;
302
+ //#endregion
303
+ //#region src/audio/createInstrumentWave.d.ts
304
+ export declare const createInstrumentWave: (context: BaseAudioContext, harmonics: number[]) => PeriodicWave;
305
+ //#endregion
306
+ //#region src/models/audio/MusicPlayer.d.ts
307
+ export interface MusicPlayer {
308
+ start: () => void;
309
+ stop: () => void;
310
+ }
311
+ //#endregion
312
+ //#region src/audio/createMusicPlayer.d.ts
313
+ export declare const createMusicPlayer: (context: AudioContext, music: Music, destination?: AudioNode) => MusicPlayer;
314
+ //#endregion
315
+ //#region src/audio/createNoiseBuffer.d.ts
316
+ export declare const createNoiseBuffer: (context: BaseAudioContext, noiseBands: number[]) => AudioBuffer | undefined;
317
+ //#endregion
318
+ //#region src/audio/createSoundEffectBuffer.d.ts
319
+ export declare const createSoundEffectBuffer: (context: BaseAudioContext, soundEffect: SoundEffect) => AudioBuffer;
320
+ //#endregion
321
+ //#region src/audio/renderMusicSegment.d.ts
322
+ export declare const renderMusicSegment: (music: Music, segmentIndex: number, sampleRate: number) => Promise<AudioBuffer>;
323
+ //#endregion
324
+ //#region src/audio/scheduleMusicExpression.d.ts
325
+ export declare const scheduleMusicExpression: (gain: AudioParam, expression: number[], start: number) => void;
326
+ //#endregion
327
+ //#region src/audio/scheduleMusicNote.d.ts
328
+ export declare const scheduleMusicNote: (context: BaseAudioContext, destination: AudioNode, wave: PeriodicWave, noiseBuffer: AudioBuffer | undefined, { attack, decay, level, release, sustain, tuning }: Instrument, { duration, pitch, velocity }: MusicNote, time: number) => void;
329
+ //#endregion
330
+ //#region src/models/audio/MusicSampleRange.d.ts
331
+ export interface MusicSampleRange {
332
+ highKey: number;
333
+ highVelocity: number;
334
+ lowKey: number;
335
+ lowVelocity: number;
336
+ }
337
+ //#endregion
338
+ //#region src/audio/selectMusicSample.d.ts
339
+ export declare const selectMusicSample: <T extends MusicSampleRange>(samples: T[], pitch: number, velocity: number) => T | undefined;
340
+ //#endregion
341
+ //#region src/audio/transformFourier.d.ts
342
+ export declare const transformFourier: (real: Float64Array, imaginary: Float64Array) => void;
343
+ //#endregion
344
+ //#region src/models/clock/GameClock.d.ts
204
345
  export interface GameClock {
205
346
  minutes: number;
206
347
  minutesPerSecond: number;
@@ -213,38 +354,36 @@ export declare const advanceGameClock: (gameClock: GameClock, deltaSeconds: numb
213
354
  export declare const MINUTES_PER_DAY = 1440;
214
355
  export declare const GAME_MINUTES_PER_SECOND = 1;
215
356
  //#endregion
216
- //#region src/kits/architecture/LatheSection.d.ts
357
+ //#region src/constants.d.ts
358
+ export declare const MAX_BYTE = 255;
359
+ //#endregion
360
+ //#region src/kits/architecture/createBoxesGeometry.d.ts
361
+ export declare const createBoxesGeometry: (boxes: readonly (readonly number[])[]) => BufferGeometry;
362
+ //#endregion
363
+ //#region src/models/kits/architecture/LatheSection.d.ts
217
364
  export interface LatheSection {
218
365
  bottomRadius: number;
219
366
  height: number;
220
367
  topRadius: number;
221
368
  }
222
369
  //#endregion
223
- //#region src/kits/architecture/LatheStackOptions.d.ts
370
+ //#region src/models/kits/architecture/LatheStackOptions.d.ts
224
371
  export interface LatheStackOptions {
225
372
  isFaceted: boolean;
226
373
  radialSegments: number;
227
374
  sections: LatheSection[];
228
375
  }
229
376
  //#endregion
230
- //#region src/kits/architecture/createBoxesGeometry.d.ts
231
- export declare const createBoxesGeometry: (boxes: readonly (readonly number[])[]) => BufferGeometry;
232
- //#endregion
233
377
  //#region src/kits/architecture/createLatheStackGeometry.d.ts
234
378
  export declare const createLatheStackGeometry: ({ isFaceted, radialSegments, sections }: LatheStackOptions) => BufferGeometry;
235
379
  //#endregion
380
+ //#region src/kits/mergeGeometryParts.d.ts
381
+ export declare const mergeGeometryParts: (parts: BufferGeometry[]) => BufferGeometry;
382
+ //#endregion
236
383
  //#region src/kits/statue/createStatueGeometry.d.ts
237
384
  export declare const createStatueGeometry: () => BufferGeometry;
238
385
  //#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;
245
- }
246
- //#endregion
247
- //#region src/kits/tree/LeafCards.d.ts
386
+ //#region src/models/kits/tree/LeafCards.d.ts
248
387
  export interface LeafCards {
249
388
  indices: Uint32Array;
250
389
  normals: Float32Array;
@@ -252,13 +391,7 @@ export interface LeafCards {
252
391
  uvs: Float32Array;
253
392
  }
254
393
  //#endregion
255
- //#region src/kits/tree/TreeGeometry.d.ts
256
- export interface TreeGeometry {
257
- branchGeometry: BufferGeometry;
258
- leafGeometry: BufferGeometry;
259
- }
260
- //#endregion
261
- //#region src/kits/tree/TreeOptions.d.ts
394
+ //#region src/models/kits/tree/TreeOptions.d.ts
262
395
  export interface TreeOptions {
263
396
  branchLength: number;
264
397
  cardSize: number;
@@ -270,38 +403,79 @@ export interface TreeOptions {
270
403
  trunkRadius: number;
271
404
  }
272
405
  //#endregion
273
- //#region src/kits/tree/TreeSkeleton.d.ts
406
+ //#region src/kits/tree/computeLeafCards.d.ts
407
+ export declare const computeLeafCards: (clusterCenters: readonly Vector3[], { cardSize, cardsPerCluster, clusterRadius, seed }: Pick<TreeOptions, "cardSize" | "cardsPerCluster" | "clusterRadius" | "seed">) => LeafCards;
408
+ //#endregion
409
+ //#region src/models/kits/tree/BranchSegment.d.ts
410
+ export interface BranchSegment {
411
+ end: Vector3;
412
+ endRadius: number;
413
+ start: Vector3;
414
+ startRadius: number;
415
+ }
416
+ //#endregion
417
+ //#region src/models/kits/tree/TreeSkeleton.d.ts
274
418
  export interface TreeSkeleton {
275
419
  branchSegments: BranchSegment[];
276
420
  clusterCenters: Vector3[];
277
421
  }
278
422
  //#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
423
  //#region src/kits/tree/computeTreeSkeleton.d.ts
283
424
  export declare const computeTreeSkeleton: ({ branchLength, mainBranchCount, seed, trunkHeight, trunkRadius }: Pick<TreeOptions, "branchLength" | "mainBranchCount" | "seed" | "trunkHeight" | "trunkRadius">) => TreeSkeleton;
284
425
  //#endregion
426
+ //#region src/models/kits/tree/TreeGeometry.d.ts
427
+ export interface TreeGeometry {
428
+ branchGeometry: BufferGeometry;
429
+ leafGeometry: BufferGeometry;
430
+ }
431
+ //#endregion
285
432
  //#region src/kits/tree/createTreeGeometry.d.ts
286
433
  export declare const createTreeGeometry: (treeOptions: TreeOptions) => TreeGeometry;
287
434
  //#endregion
288
- //#region src/materials/RampOptions.d.ts
435
+ //#region src/materials/addSmoothLoop.d.ts
436
+ export declare const addSmoothLoop: (path: Path2D, points: readonly (readonly [number, number])[]) => void;
437
+ //#endregion
438
+ //#region src/models/materials/RampOptions.d.ts
289
439
  export interface RampOptions {
290
440
  resolution: number;
291
441
  softness: number;
292
442
  terminator: number;
293
443
  }
294
444
  //#endregion
295
- //#region src/materials/addSmoothLoop.d.ts
296
- export declare const addSmoothLoop: (path: Path2D, points: readonly (readonly [number, number])[]) => void;
297
- //#endregion
298
445
  //#region src/materials/computeRampValues.d.ts
299
446
  export declare const computeRampValues: ({ resolution, softness, terminator }: RampOptions) => Uint8Array;
300
447
  //#endregion
301
448
  //#region src/materials/createRampTexture.d.ts
302
449
  export declare const createRampTexture: (rampOptions: RampOptions) => DataTexture;
303
450
  //#endregion
304
- //#region src/nodes/StoneMaterialOptions.d.ts
451
+ //#region src/models/nodes/StoneLight.d.ts
452
+ export interface StoneLight {
453
+ harmonics: (readonly number[])[];
454
+ hazeColor: readonly number[];
455
+ hazeScatterColor: readonly number[];
456
+ heightFade: readonly number[];
457
+ ramp: (readonly number[])[];
458
+ }
459
+ //#endregion
460
+ //#region src/models/nodes/StoneLightUniforms.d.ts
461
+ export interface StoneLightUniforms {
462
+ harmonics: UniformArrayNode<"vec3">;
463
+ hazeColor: UniformNode<"color", Color>;
464
+ hazeScatterColor: UniformNode<"color", Color>;
465
+ heightFade: UniformNode<"color", Color>;
466
+ ramp: DataTexture;
467
+ sunRadiance: UniformNode<"color", Color>;
468
+ }
469
+ //#endregion
470
+ //#region src/models/nodes/StoneLightingModel.d.ts
471
+ export declare class StoneLightingModel extends LightingModel {
472
+ readonly stoneLight: StoneLightUniforms;
473
+ constructor(stoneLight: StoneLightUniforms);
474
+ override direct({ lightColor, lightDirection, reflectedLight }: LightingModelDirectInput): void;
475
+ override indirect(builder: NodeBuilder): void;
476
+ }
477
+ //#endregion
478
+ //#region src/models/nodes/StoneMaterialOptions.d.ts
305
479
  export interface StoneMaterialOptions {
306
480
  albedo: string;
307
481
  rimColor: readonly number[];
@@ -311,7 +485,15 @@ export interface StoneMaterialOptions {
311
485
  specularColor: readonly number[];
312
486
  }
313
487
  //#endregion
314
- //#region src/nodes/ToonMaterialOptions.d.ts
488
+ //#region src/models/nodes/StoneNodeMaterial.d.ts
489
+ export declare class StoneNodeMaterial extends NodeMaterial {
490
+ emissiveNode: Node | null;
491
+ readonly stoneLight: StoneLightUniforms;
492
+ constructor(stoneLight: StoneLightUniforms);
493
+ override setupLightingModel(): StoneLightingModel;
494
+ }
495
+ //#endregion
496
+ //#region src/models/nodes/ToonMaterialOptions.d.ts
315
497
  export interface ToonMaterialOptions {
316
498
  color?: ColorRepresentation;
317
499
  isOutlined?: boolean;
@@ -320,72 +502,14 @@ export interface ToonMaterialOptions {
320
502
  rampTexture: DataTexture;
321
503
  }
322
504
  //#endregion
323
- //#region src/nodes/ToonNodeMaterial.d.ts
505
+ //#region src/models/nodes/ToonNodeMaterial.d.ts
324
506
  export declare class ToonNodeMaterial extends MeshToonNodeMaterial {
325
507
  emissiveNode: Node | null;
326
508
  override readonly isMeshToonNodeMaterial: boolean;
327
509
  constructor(parameters: MeshToonNodeMaterialParameters, isOutlined: boolean);
328
510
  }
329
511
  //#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>;
341
- }
342
- //#endregion
343
- //#region src/nodes/createCausticsNode.d.ts
344
- export declare const createCausticsNode: ({ lightColor }: Pick<LightUniforms, "lightColor">, { causticStrength, deepDepth, level }: Pick<WaterUniforms, "causticStrength" | "deepDepth" | "level">) => Node<"vec3">;
345
- //#endregion
346
- //#region src/nodes/createGenshinRenderer.d.ts
347
- export declare const createGenshinRenderer: (canvas: HTMLCanvasElement) => WebGPURenderer;
348
- //#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
- }
357
- //#endregion
358
- //#region src/nodes/createLeafMaterial.d.ts
359
- export declare const createLeafMaterial: (toonMaterialOptions: ToonMaterialOptions, windUniforms?: WindUniforms) => ToonNodeMaterial;
360
- //#endregion
361
- //#region src/nodes/createLightUniforms.d.ts
362
- export declare const createLightUniforms: () => LightUniforms;
363
- //#endregion
364
- //#region src/nodes/createRimNode.d.ts
365
- export declare const createRimNode: ({ rimColor, rimStrength, sunDirection }: LightUniforms) => Node<"vec3">;
366
- //#endregion
367
- //#region src/nodes/createSkyColorNode.d.ts
368
- export declare const createSkyColorNode: ({ frontBackBlend, haloColor, haloHeight, horizonBackColor, horizonBand, horizonColor, sunDirection, sunHaloColor, sunHaloSize, zenithBackColor, zenithColor }: SkyUniforms, gradient: Texture, direction: Node<"vec3">) => Node<"vec3">;
369
- //#endregion
370
- //#region src/nodes/createSkyNode.d.ts
371
- export declare const createSkyNode: (uniforms: SkyUniforms, gradient: Texture) => Node<"vec3">;
372
- //#endregion
373
- //#region src/nodes/createStoneMaterial.d.ts
374
- export declare const createStoneMaterial: ({ albedo, rimColor, rimPower, rimStrength, smoothness, specularColor }: StoneMaterialOptions, glowNode?: Node<"vec3">) => MeshPhysicalNodeMaterial;
375
- //#endregion
376
- //#region src/nodes/createToonMaterial.d.ts
377
- export declare const createToonMaterial: ({ color, isOutlined, isVertexColors, lightUniforms, rampTexture }: ToonMaterialOptions) => ToonNodeMaterial;
378
- //#endregion
379
- //#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;
381
- //#endregion
382
- //#region src/nodes/createWindNode.d.ts
383
- export declare const createWindNode: ({ direction, gustSpeed, gustStrength, gustWidth, strength }: WindUniforms, groundPosition: Node<"vec2">) => Node<"vec2">;
384
- //#endregion
385
- //#region src/noise/createSimplexNoise.d.ts
386
- export declare const createSimplexNoise: (seed: number) => ((x: number, y: number) => number);
387
- //#endregion
388
- //#region src/post/GradeOptions.d.ts
512
+ //#region src/models/post/GradeOptions.d.ts
389
513
  export interface GradeOptions {
390
514
  contrast: number;
391
515
  highlightTint: readonly [number, number, number];
@@ -394,94 +518,63 @@ export interface GradeOptions {
394
518
  size: number;
395
519
  }
396
520
  //#endregion
397
- //#region src/post/PostPipeline.d.ts
521
+ //#region src/models/post/PostPipeline.d.ts
398
522
  export interface PostPipeline {
399
523
  bloomNode?: BloomNode;
524
+ dispose: () => void;
400
525
  godraysNode?: GodraysNode;
401
526
  renderPipeline: RenderPipeline;
402
527
  }
403
528
  //#endregion
404
- //#region src/renderer/AntialiasingMode.d.ts
529
+ //#region src/models/renderer/AntialiasingMode.d.ts
405
530
  export declare enum AntialiasingMode {
406
531
  Smaa = "Smaa",
407
532
  Traa = "Traa"
408
533
  }
409
534
  //#endregion
410
- //#region src/renderer/QualityTierSettings.d.ts
535
+ //#region src/models/renderer/QualityTierSettings.d.ts
411
536
  export interface QualityTierSettings {
412
537
  antialiasingMode: AntialiasingMode;
413
538
  cascadeCount: number;
414
539
  godraysStepCount: number;
415
540
  grassDensity: number;
416
541
  isBloomEnabled: boolean;
542
+ isOcclusionEnabled: boolean;
417
543
  maxPixelRatio: number;
418
544
  shadowMapSize: number;
419
545
  }
420
546
  //#endregion
421
- //#region src/post/PostPipelineOptions.d.ts
547
+ //#region src/models/post/PostPipelineOptions.d.ts
422
548
  export interface PostPipelineOptions {
423
549
  camera: Camera;
424
550
  fogUniforms: FogUniforms;
425
- godraysLight: DirectionalLight;
426
- gradeLutTexture: Data3DTexture;
551
+ godraysLight?: DirectionalLight;
552
+ gradeLutTexture?: Data3DTexture;
553
+ isBloomed?: boolean;
554
+ occlusionRadius?: number;
427
555
  postUniforms: PostUniforms;
428
556
  qualityTierSettings: QualityTierSettings;
429
557
  renderer: Renderer;
430
558
  scene: Scene;
559
+ stoneLight?: StoneLightUniforms;
431
560
  }
432
561
  //#endregion
433
- //#region src/post/computeGradeLut.d.ts
434
- export declare const computeGradeLut: ({ contrast, highlightTint, saturation, shadowTint, size }: GradeOptions) => Uint8Array;
435
- //#endregion
436
- //#region src/post/createFogUniforms.d.ts
437
- export declare const createFogUniforms: () => FogUniforms;
438
- //#endregion
439
- //#region src/post/createGodraysLight.d.ts
440
- export declare const createGodraysLight: (shadowMapSize: number, halfExtent: number) => DirectionalLight;
441
- //#endregion
442
- //#region src/post/createGradeLutTexture.d.ts
443
- export declare const createGradeLutTexture: (gradeOptions: GradeOptions) => Data3DTexture;
444
- //#endregion
445
- //#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">;
447
- //#endregion
448
- //#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;
450
- //#endregion
451
- //#region src/post/createPostUniforms.d.ts
452
- export declare const createPostUniforms: () => PostUniforms;
453
- //#endregion
454
- //#region src/post/toSceneColor.d.ts
455
- export declare const toSceneColor: (displayColor: Color) => Color;
456
- //#endregion
457
- //#region src/post/toneMapNeutral.d.ts
458
- export declare const toneMapNeutral: ([red, green, blue]: [number, number, number]) => [number, number, number];
459
- //#endregion
460
- //#region src/random/createSeededRandom.d.ts
461
- export declare const createSeededRandom: (seed: number) => (() => number);
462
- //#endregion
463
- //#region src/renderer/QualityTier.d.ts
562
+ //#region src/models/renderer/QualityTier.d.ts
464
563
  export declare enum QualityTier {
465
564
  High = "High",
466
565
  Low = "Low",
467
566
  Medium = "Medium"
468
567
  }
469
568
  //#endregion
470
- //#region src/renderer/QualityTierSettingsMap.d.ts
471
- export declare const QualityTierSettingsMap: Readonly<Record<QualityTier, QualityTierSettings>>;
472
- //#endregion
473
- //#region src/renderer/constants.d.ts
474
- export declare const GENSHIN_TONE_MAPPING: ToneMapping;
475
- //#endregion
476
- //#region src/renderer/getScreenDirection.d.ts
477
- export declare const getScreenDirection: ({ aspect, fov, pitch, yaw }: {
569
+ //#region src/models/renderer/ScreenCamera.d.ts
570
+ export interface ScreenCamera {
478
571
  aspect: number;
479
572
  fov: number;
480
573
  pitch: number;
481
574
  yaw: number;
482
- }, [x, y]: [number, number]) => Vector3;
575
+ }
483
576
  //#endregion
484
- //#region src/scene/SceneMaterial.d.ts
577
+ //#region src/models/scene/SceneMaterial.d.ts
485
578
  export interface SceneMaterial {
486
579
  colors: Record<string, [number, number, number, number]>;
487
580
  floats: Record<string, number>;
@@ -493,7 +586,7 @@ export interface SceneMaterial {
493
586
  }>;
494
587
  }
495
588
  //#endregion
496
- //#region src/scene/ScenePlacement.d.ts
589
+ //#region src/models/scene/ScenePlacement.d.ts
497
590
  export interface ScenePlacement {
498
591
  materials: string[];
499
592
  mesh: string;
@@ -502,28 +595,28 @@ export interface ScenePlacement {
502
595
  scale: [number, number, number];
503
596
  }
504
597
  //#endregion
505
- //#region src/scene/SceneLayout.d.ts
598
+ //#region src/models/scene/SceneLayout.d.ts
506
599
  export interface SceneLayout {
507
600
  materials: Record<string, SceneMaterial>;
508
601
  placements: ScenePlacement[];
509
602
  }
510
603
  //#endregion
511
- //#region src/terrain/TerrainSelection.d.ts
604
+ //#region src/models/terrain/TerrainSelection.d.ts
512
605
  export interface TerrainSelection {
513
606
  count: number;
514
607
  keys: Float64Array;
515
608
  }
516
609
  //#endregion
517
- //#region src/streaming/TileStreamer.d.ts
610
+ //#region src/models/streaming/TileStreamer.d.ts
518
611
  export interface TileStreamer<TTile> {
519
612
  dispose: () => void;
520
613
  get: (key: number) => TTile | undefined;
521
614
  has: (key: number) => boolean;
522
615
  receive: (key: number, tile: TTile) => void;
523
- update: (wanted: TerrainSelection, drawn: TerrainSelection) => void;
616
+ update: (wanted: TerrainSelection, drawn: TerrainSelection, surrounding: TerrainSelection) => void;
524
617
  }
525
618
  //#endregion
526
- //#region src/streaming/TileStreamerOptions.d.ts
619
+ //#region src/models/streaming/TileStreamerOptions.d.ts
527
620
  export interface TileStreamerOptions<TTile> {
528
621
  disposeTile: (tile: TTile) => void;
529
622
  maxCachedCount: number;
@@ -531,10 +624,21 @@ export interface TileStreamerOptions<TTile> {
531
624
  requestTile: (key: number) => void;
532
625
  }
533
626
  //#endregion
534
- //#region src/streaming/createTileStreamer.d.ts
535
- export declare const createTileStreamer: <TTile>({ disposeTile, maxCachedCount, maxPendingCount, requestTile }: TileStreamerOptions<TTile>) => TileStreamer<TTile>;
627
+ //#region src/models/terrain/GaussianHill.d.ts
628
+ export interface GaussianHill {
629
+ height: number;
630
+ width: number;
631
+ x: number;
632
+ z: number;
633
+ }
536
634
  //#endregion
537
- //#region src/terrain/TerrainOptions.d.ts
635
+ //#region src/models/terrain/GaussianHills.d.ts
636
+ export interface GaussianHills {
637
+ base: number;
638
+ hills: GaussianHill[];
639
+ }
640
+ //#endregion
641
+ //#region src/models/terrain/TerrainOptions.d.ts
538
642
  export interface TerrainOptions {
539
643
  cellsPerSide: number;
540
644
  finestRange: number;
@@ -545,7 +649,7 @@ export interface TerrainOptions {
545
649
  morphShare: number;
546
650
  }
547
651
  //#endregion
548
- //#region src/terrain/TerrainTile.d.ts
652
+ //#region src/models/terrain/TerrainTile.d.ts
549
653
  export interface TerrainTile {
550
654
  coarsePositions: Float32Array;
551
655
  colors: Float32Array;
@@ -554,13 +658,198 @@ export interface TerrainTile {
554
658
  positions: Float32Array;
555
659
  }
556
660
  //#endregion
557
- //#region src/terrain/TerrainTileOptions.d.ts
661
+ //#region src/models/terrain/TerrainTileOptions.d.ts
558
662
  export interface TerrainTileOptions extends Pick<TerrainOptions, "cellsPerSide" | "finestTileSize"> {
559
663
  getHeight: (x: number, z: number) => number;
560
664
  key: number;
561
665
  writeColor: (colors: Float32Array, offset: number, height: number, slope: number, x: number, z: number) => void;
562
666
  }
563
667
  //#endregion
668
+ //#region src/models/vegetation/GrassBlade.d.ts
669
+ export interface GrassBlade {
670
+ indices: Uint16Array;
671
+ positions: Float32Array;
672
+ }
673
+ //#endregion
674
+ //#region src/models/vegetation/GrassRing.d.ts
675
+ export interface GrassRing {
676
+ cellsPerSide: number;
677
+ fadeEnd: number;
678
+ fadeStart: number;
679
+ innerRadius: number;
680
+ scale: number;
681
+ spacing: number;
682
+ }
683
+ //#endregion
684
+ //#region src/models/vegetation/GroundCapture.d.ts
685
+ export interface GroundCapture {
686
+ camera: OrthographicCamera;
687
+ center: UniformNode<"vec2", Vector2>;
688
+ material: MeshBasicNodeMaterial;
689
+ renderTarget: RenderTarget;
690
+ size: number;
691
+ }
692
+ //#endregion
693
+ //#region src/models/water/WaterUniforms.d.ts
694
+ export interface WaterUniforms {
695
+ causticStrength: UniformNode<"float", number>;
696
+ deepColor: UniformNode<"color", Color>;
697
+ deepDepth: UniformNode<"float", number>;
698
+ foamColor: UniformNode<"color", Color>;
699
+ foamDepth: UniformNode<"float", number>;
700
+ level: UniformNode<"float", number>;
701
+ shallowColor: UniformNode<"color", Color>;
702
+ underwaterFogColor: UniformNode<"color", Color>;
703
+ underwaterFogDensity: UniformNode<"float", number>;
704
+ }
705
+ //#endregion
706
+ //#region src/models/wind/WindUniforms.d.ts
707
+ export interface WindUniforms {
708
+ direction: UniformNode<"vec2", Vector2>;
709
+ gustSpeed: UniformNode<"float", number>;
710
+ gustStrength: UniformNode<"float", number>;
711
+ gustWidth: UniformNode<"float", number>;
712
+ strength: UniformNode<"float", number>;
713
+ }
714
+ //#endregion
715
+ //#region src/models/vegetation/GrassOptions.d.ts
716
+ export interface GrassOptions {
717
+ bladeHeight: number;
718
+ bladeWidth: number;
719
+ cameraGround: UniformNode<"vec2", Vector2>;
720
+ density: UniformNode<"float", number>;
721
+ groundCapture: GroundCapture;
722
+ lightUniforms: LightUniforms;
723
+ rampTexture: DataTexture;
724
+ ring: GrassRing;
725
+ waterUniforms: Pick<WaterUniforms, "level">;
726
+ windUniforms: WindUniforms;
727
+ }
728
+ //#endregion
729
+ //#region src/models/water/UnderwaterFogState.d.ts
730
+ export interface UnderwaterFogState {
731
+ aboveDensity: number;
732
+ aboveHeightFalloff: number;
733
+ aboveMaxOpacity: number;
734
+ aboveStartDistance: number;
735
+ isUnderwater: boolean;
736
+ }
737
+ //#endregion
738
+ //#region src/models/world/GroundPoint.d.ts
739
+ export interface GroundPoint {
740
+ x: number;
741
+ z: number;
742
+ }
743
+ //#endregion
744
+ //#region src/nodes/applyStoneLight.d.ts
745
+ export declare const applyStoneLight: ({ harmonics, hazeColor, hazeScatterColor, heightFade, ramp }: StoneLight, { harmonics: harmonicsUniform, hazeColor: hazeColorUniform, hazeScatterColor: hazeScatterColorUniform, heightFade: heightFadeUniform, ramp: rampTexture, sunRadiance }: StoneLightUniforms, light: DirectionalLight) => void;
746
+ //#endregion
747
+ //#region src/nodes/computeStoneHarmonics.d.ts
748
+ export declare const computeStoneHarmonics: ([x, y, z]: readonly number[], harmonics: number[]) => void;
749
+ //#endregion
750
+ //#region src/nodes/computeStoneRampCoordinate.d.ts
751
+ export declare const computeStoneRampCoordinate: (facing: number, visibility: number) => number;
752
+ //#endregion
753
+ //#region src/nodes/constants.d.ts
754
+ export declare const LEAST_DIVISOR = 1e-4;
755
+ export declare const STONE_SHADOW_EXPONENT = .2;
756
+ export declare const STONE_RAMP_KNOT_COUNT = 16;
757
+ export declare const STONE_HARMONIC_COUNT = 9;
758
+ export declare const STONE_MASK_OUTPUT = "stoneMask";
759
+ export declare const STONE_HEIGHT_FALLOFF = .05;
760
+ //#endregion
761
+ //#region src/nodes/createCausticsNode.d.ts
762
+ export declare const createCausticsNode: ({ lightColor }: Pick<LightUniforms, "lightColor">, { causticStrength, deepDepth, level }: Pick<WaterUniforms, "causticStrength" | "deepDepth" | "level">) => Node<"vec3">;
763
+ //#endregion
764
+ //#region src/nodes/createLeafMaterial.d.ts
765
+ export declare const createLeafMaterial: (toonMaterialOptions: ToonMaterialOptions, windUniforms?: WindUniforms) => ToonNodeMaterial;
766
+ //#endregion
767
+ //#region src/nodes/createLightUniforms.d.ts
768
+ export declare const createLightUniforms: () => LightUniforms;
769
+ //#endregion
770
+ //#region src/nodes/createRimNode.d.ts
771
+ export declare const createRimNode: ({ rimColor, rimStrength, sunDirection }: LightUniforms) => Node<"vec3">;
772
+ //#endregion
773
+ //#region src/nodes/createSkyColorNode.d.ts
774
+ export declare const createSkyColorNode: ({ frontBackBlend, haloColor, haloHeight, horizonBackColor, horizonBand, horizonColor, sunDirection, sunHaloColor, sunHaloSize, zenithBackColor, zenithColor }: SkyUniforms, gradient: Texture, direction: Node<"vec3">) => Node<"vec3">;
775
+ //#endregion
776
+ //#region src/nodes/createSkyNode.d.ts
777
+ export declare const createSkyNode: (uniforms: SkyUniforms, gradient: Texture) => Node<"vec3">;
778
+ //#endregion
779
+ //#region src/nodes/createStoneLightUniforms.d.ts
780
+ export declare const createStoneLightUniforms: () => StoneLightUniforms;
781
+ //#endregion
782
+ //#region src/nodes/createStoneMaterial.d.ts
783
+ export declare const createStoneMaterial: ({ albedo, rimColor, rimPower, rimStrength }: StoneMaterialOptions, stoneLight: StoneLightUniforms, glowNode?: Node<"vec3">) => StoneNodeMaterial;
784
+ //#endregion
785
+ //#region src/nodes/createSunVisibilityNode.d.ts
786
+ export declare const createSunVisibilityNode: (lightColor: Node, sunRadiance: UniformNode<"color", Color>) => Node<"float">;
787
+ //#endregion
788
+ //#region src/nodes/createToonMaterial.d.ts
789
+ export declare const createToonMaterial: ({ color, isOutlined, isVertexColors, lightUniforms, rampTexture }: ToonMaterialOptions) => ToonNodeMaterial;
790
+ //#endregion
791
+ //#region src/nodes/createWaterMaterial.d.ts
792
+ export declare const createWaterMaterial: ({ lightColor, sunDirection }: Pick<LightUniforms, "lightColor" | "sunDirection">, { horizonColor, zenithColor }: Pick<SkyUniforms, "horizonColor" | "zenithColor">, { deepColor, deepDepth, foamColor, foamDepth, shallowColor }: WaterUniforms) => MeshBasicNodeMaterial;
793
+ //#endregion
794
+ //#region src/nodes/createWindNode.d.ts
795
+ export declare const createWindNode: ({ direction, gustSpeed, gustStrength, gustWidth, strength }: WindUniforms, groundPosition: Node<"vec2">) => Node<"vec2">;
796
+ //#endregion
797
+ //#region src/noise/createSimplexNoise.d.ts
798
+ export declare const createSimplexNoise: (seed: number) => ((x: number, y: number) => number);
799
+ //#endregion
800
+ //#region src/post/computeGradeLut.d.ts
801
+ export declare const computeGradeLut: ({ contrast, highlightTint, saturation, shadowTint, size }: GradeOptions) => Uint8Array;
802
+ //#endregion
803
+ //#region src/post/createFogUniforms.d.ts
804
+ export declare const createFogUniforms: () => FogUniforms;
805
+ //#endregion
806
+ //#region src/post/createGodraysLight.d.ts
807
+ export declare const createGodraysLight: (shadowMapSize: number, halfExtent: number) => DirectionalLight;
808
+ //#endregion
809
+ //#region src/post/createGradeLutTexture.d.ts
810
+ export declare const createGradeLutTexture: (gradeOptions: GradeOptions) => Data3DTexture;
811
+ //#endregion
812
+ //#region src/post/createHeightFogNode.d.ts
813
+ 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"> & {
814
+ maskNode: TextureNode;
815
+ }) => Node<"vec4">;
816
+ //#endregion
817
+ //#region src/post/createOcclusionNode.d.ts
818
+ export declare const createOcclusionNode: (depthNode: TextureNode, camera: Camera, radius: number) => GTAONode;
819
+ //#endregion
820
+ //#region src/post/createPostPipeline.d.ts
821
+ export declare const createPostPipeline: ({ camera, fogUniforms, godraysLight, gradeLutTexture, isBloomed, occlusionRadius, postUniforms: { godraysColor, gradeIntensity, outlineColor, outlineFadeDistance, outlineThickness }, qualityTierSettings: { antialiasingMode, godraysStepCount, isBloomEnabled, isOcclusionEnabled }, renderer, scene, stoneLight }: PostPipelineOptions) => PostPipeline;
822
+ //#endregion
823
+ //#region src/post/createPostUniforms.d.ts
824
+ export declare const createPostUniforms: () => PostUniforms;
825
+ //#endregion
826
+ //#region src/post/toSceneColor.d.ts
827
+ export declare const toSceneColor: (displayColor: Color, sceneColor?: Color) => Color;
828
+ //#endregion
829
+ //#region src/post/toneMapNeutral.d.ts
830
+ export declare const toneMapNeutral: ([red, green, blue]: readonly [number, number, number], toneMapped?: [number, number, number]) => [number, number, number];
831
+ //#endregion
832
+ //#region src/random/createSeededRandom.d.ts
833
+ export declare const createSeededRandom: (seed: number) => (() => number);
834
+ //#endregion
835
+ //#region src/renderer/QualityTierSettingsMap.d.ts
836
+ export declare const QualityTierSettingsMap: Readonly<Record<QualityTier, QualityTierSettings>>;
837
+ //#endregion
838
+ //#region src/renderer/attachInspector.d.ts
839
+ export declare const attachInspector: (renderer: Renderer) => Promise<Inspector>;
840
+ //#endregion
841
+ //#region src/renderer/constants.d.ts
842
+ export declare const GENSHIN_TONE_MAPPING: ToneMapping;
843
+ //#endregion
844
+ //#region src/renderer/createGenshinRenderer.d.ts
845
+ export declare const createGenshinRenderer: (canvas: HTMLCanvasElement) => WebGPURenderer;
846
+ //#endregion
847
+ //#region src/renderer/getScreenDirection.d.ts
848
+ export declare const getScreenDirection: ({ aspect, fov, pitch, yaw }: ScreenCamera, [x, y]: [number, number]) => Vector3;
849
+ //#endregion
850
+ //#region src/streaming/createTileStreamer.d.ts
851
+ export declare const createTileStreamer: <TTile>({ disposeTile, maxCachedCount, maxPendingCount, requestTile }: TileStreamerOptions<TTile>) => TileStreamer<TTile>;
852
+ //#endregion
564
853
  //#region src/terrain/computeTerrainIndices.d.ts
565
854
  export declare const computeTerrainIndices: (cellsPerSide: number) => Uint16Array | Uint32Array;
566
855
  //#endregion
@@ -572,6 +861,9 @@ export declare const TILE_INDEX_OFFSET: number;
572
861
  export declare const TILE_INDEX_SPAN: number;
573
862
  export declare const TERRAIN_LAYER = 1;
574
863
  //#endregion
864
+ //#region src/terrain/createGaussianHillsHeight.d.ts
865
+ export declare const createGaussianHillsHeight: ({ base, hills }: GaussianHills) => ((x: number, z: number) => number);
866
+ //#endregion
575
867
  //#region src/terrain/createTerrainMaterial.d.ts
576
868
  export declare const createTerrainMaterial: ({ finestRange, morphShare }: Pick<TerrainOptions, "finestRange" | "morphShare">, toonMaterialOptions: Pick<ToonMaterialOptions, "color" | "lightUniforms" | "rampTexture">, waterUniforms?: WaterUniforms) => ToonNodeMaterial;
577
869
  //#endregion
@@ -602,45 +894,6 @@ export declare const resolveTerrainDraws: ({ levelCount }: Pick<TerrainOptions,
602
894
  //#region src/terrain/selectTerrainTiles.d.ts
603
895
  export declare const selectTerrainTiles: (terrainOptions: TerrainOptions, eye: Vector3Like, frustum: Frustum | undefined, selection: TerrainSelection) => TerrainSelection;
604
896
  //#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
- }
620
- //#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
- }
629
- //#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
- }
643
- //#endregion
644
897
  //#region src/vegetation/computeGrassBlade.d.ts
645
898
  export declare const computeGrassBlade: (segmentCount: number) => GrassBlade;
646
899
  //#endregion
@@ -656,14 +909,6 @@ export declare const createGroundCapture: (size: number, resolution: number) =>
656
909
  //#region src/vegetation/renderGroundCapture.d.ts
657
910
  export declare const renderGroundCapture: (renderer: Renderer, scene: Scene, { camera, center, material, renderTarget }: GroundCapture, { maxHeight }: Pick<TerrainOptions, "maxHeight">, worldCenter: Vector3Like, origin: Vector3Like) => void;
658
911
  //#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
- }
666
- //#endregion
667
912
  //#region src/water/createUnderwaterFogState.d.ts
668
913
  export declare const createUnderwaterFogState: () => UnderwaterFogState;
669
914
  //#endregion
@@ -671,17 +916,11 @@ export declare const createUnderwaterFogState: () => UnderwaterFogState;
671
916
  export declare const createWaterUniforms: () => WaterUniforms;
672
917
  //#endregion
673
918
  //#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;
919
+ export declare const updateUnderwaterFog: (eyeHeight: number, { level, underwaterFogColor, underwaterFogDensity }: Pick<WaterUniforms, "level" | "underwaterFogColor" | "underwaterFogDensity">, { color, density, heightFalloff, maxOpacity, startDistance }: FogUniforms, underwaterFogState: UnderwaterFogState) => void;
675
920
  //#endregion
676
921
  //#region src/wind/createWindUniforms.d.ts
677
922
  export declare const createWindUniforms: () => WindUniforms;
678
923
  //#endregion
679
- //#region src/world/GroundPoint.d.ts
680
- export interface GroundPoint {
681
- x: number;
682
- z: number;
683
- }
684
- //#endregion
685
924
  //#region src/world/computeOriginShift.d.ts
686
925
  export declare const computeOriginShift: (cameraPosition: Vector3, threshold: number, step: number, shift: Vector3) => boolean;
687
926
  //#endregion