genshin-engine 3.8.1 → 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,25 +1,12 @@
1
- import { BufferAttribute, BufferGeometry, Camera, CanvasTexture, Color, ColorRepresentation, Data3DTexture, DataTexture, DirectionalLight, ExtrudeGeometry, Frustum, HemisphereLight, InstancedBufferGeometry, OrthographicCamera, Scene, Texture, ToneMapping, Vector2, Vector3, Vector3Like } from "three";
2
- import { MeshBasicNodeMaterial, MeshToonNodeMaterial, MeshToonNodeMaterialParameters, Node, RenderPipeline, RenderTarget, Renderer, SpriteNodeMaterial, TextureNode, UniformNode, WebGPURenderer } from "three/webgpu";
1
+ import { BufferAttribute, BufferGeometry, Camera, CanvasTexture, Color, ColorRepresentation, Data3DTexture, DataTexture, DirectionalLight, Frustum, HemisphereLight, InstancedBufferGeometry, Matrix4, OrthographicCamera, Scene, Sprite, Texture, ToneMapping, Vector2, Vector3, Vector3Like } from "three";
2
+ import { LightingModel, LightingModelDirectInput, MeshBasicNodeMaterial, MeshToonNodeMaterial, MeshToonNodeMaterialParameters, Node, NodeBuilder, NodeMaterial, RenderPipeline, RenderTarget, Renderer, TextureNode, UniformArrayNode, UniformNode, WebGPURenderer } from "three/webgpu";
3
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 {
7
+ import { Inspector } from "three/examples/jsm/inspector/Inspector.js";
8
+ //#region src/models/atmosphere/BaseSkyState.d.ts
9
+ export interface BaseSkyState {
23
10
  cloudLitColor: Color;
24
11
  cloudShadeColor: Color;
25
12
  hemisphereGroundColor: Color;
@@ -28,35 +15,67 @@ export interface SkyKeyframe {
28
15
  horizonColor: Color;
29
16
  lightColor: Color;
30
17
  lightIntensity: number;
31
- minutes: number;
32
18
  starIntensity: number;
33
19
  zenithColor: Color;
34
20
  }
35
21
  //#endregion
36
- //#region src/atmosphere/SkyState.d.ts
37
- export interface SkyState extends Omit<SkyKeyframe, "minutes"> {
22
+ //#region src/models/atmosphere/SkyShape.d.ts
23
+ export interface SkyShape {
24
+ frontBackBlend: number;
25
+ haloHeight: number;
26
+ horizonBand: number;
27
+ moonSize: number;
28
+ sunHaloSize: number;
29
+ }
30
+ //#endregion
31
+ //#region src/models/atmosphere/SkyState.d.ts
32
+ export interface SkyState extends BaseSkyState {
33
+ cloudLitBackColor?: Color;
34
+ cloudShadeBackColor?: Color;
38
35
  fogColor?: Color;
36
+ fogDensity?: number;
37
+ fogHeightFalloff?: number;
38
+ fogMaxOpacity?: number;
39
+ haloColor?: Color;
40
+ horizonBackColor?: Color;
39
41
  lightDirection: Vector3;
40
42
  moonDirection: Vector3;
43
+ moonGlowColor?: Color;
44
+ shape?: SkyShape;
41
45
  sunDirection: Vector3;
46
+ sunHaloColor?: Color;
47
+ zenithBackColor?: Color;
42
48
  }
43
49
  //#endregion
44
- //#region src/atmosphere/SkyUniforms.d.ts
50
+ //#region src/models/atmosphere/SkyUniforms.d.ts
45
51
  export interface SkyUniforms {
46
52
  cloudCoverage: UniformNode<"float", number>;
47
53
  cloudDrift: UniformNode<"vec2", Vector2>;
54
+ cloudFrontBackBlend: UniformNode<"float", number>;
55
+ cloudLitBackColor: UniformNode<"color", Color>;
48
56
  cloudLitColor: UniformNode<"color", Color>;
57
+ cloudShadeBackColor: UniformNode<"color", Color>;
49
58
  cloudShadeColor: UniformNode<"color", Color>;
59
+ cloudSunBrighten: UniformNode<"float", number>;
60
+ frontBackBlend: UniformNode<"float", number>;
61
+ haloColor: UniformNode<"color", Color>;
62
+ haloHeight: UniformNode<"float", number>;
63
+ horizonBackColor: UniformNode<"color", Color>;
50
64
  horizonBand: UniformNode<"float", number>;
51
65
  horizonColor: UniformNode<"color", Color>;
52
66
  lightColor: UniformNode<"color", Color>;
53
67
  moonDirection: UniformNode<"vec3", Vector3>;
68
+ moonGlowColor: UniformNode<"color", Color>;
69
+ moonSize: UniformNode<"float", number>;
54
70
  starIntensity: UniformNode<"float", number>;
55
71
  sunDirection: UniformNode<"vec3", Vector3>;
72
+ sunHaloColor: UniformNode<"color", Color>;
73
+ sunHaloSize: UniformNode<"float", number>;
74
+ zenithBackColor: UniformNode<"color", Color>;
56
75
  zenithColor: UniformNode<"color", Color>;
57
76
  }
58
77
  //#endregion
59
- //#region src/nodes/LightUniforms.d.ts
78
+ //#region src/models/nodes/LightUniforms.d.ts
60
79
  export interface LightUniforms {
61
80
  lightColor: UniformNode<"color", Color>;
62
81
  rimColor: UniformNode<"color", Color>;
@@ -64,12 +83,13 @@ export interface LightUniforms {
64
83
  sunDirection: UniformNode<"vec3", Vector3>;
65
84
  }
66
85
  //#endregion
67
- //#region src/post/FogUniforms.d.ts
86
+ //#region src/models/post/FogUniforms.d.ts
68
87
  export interface FogUniforms {
69
88
  baseHeight: UniformNode<"float", number>;
70
89
  color: UniformNode<"color", Color>;
71
90
  density: UniformNode<"float", number>;
72
91
  heightFalloff: UniformNode<"float", number>;
92
+ maxOpacity: UniformNode<"float", number>;
73
93
  scatterColor: UniformNode<"color", Color>;
74
94
  scatterDirection: UniformNode<"vec3", Vector3>;
75
95
  scatterPower: UniformNode<"float", number>;
@@ -77,7 +97,7 @@ export interface FogUniforms {
77
97
  startDistance: UniformNode<"float", number>;
78
98
  }
79
99
  //#endregion
80
- //#region src/post/PostUniforms.d.ts
100
+ //#region src/models/post/PostUniforms.d.ts
81
101
  export interface PostUniforms {
82
102
  godraysColor: UniformNode<"color", Color>;
83
103
  gradeIntensity: UniformNode<"float", number>;
@@ -86,10 +106,10 @@ export interface PostUniforms {
86
106
  outlineThickness: UniformNode<"float", number>;
87
107
  }
88
108
  //#endregion
89
- //#region src/atmosphere/SkyTargets.d.ts
109
+ //#region src/models/atmosphere/SkyTargets.d.ts
90
110
  export interface SkyTargets {
91
111
  fogUniforms: FogUniforms;
92
- godraysLight: DirectionalLight;
112
+ godraysLight?: DirectionalLight;
93
113
  hemisphere: HemisphereLight;
94
114
  light: DirectionalLight;
95
115
  lightDistance: number;
@@ -98,34 +118,57 @@ export interface SkyTargets {
98
118
  skyUniforms: SkyUniforms;
99
119
  }
100
120
  //#endregion
101
- //#region src/atmosphere/SunLight.d.ts
102
- export interface SunLight {
103
- cascadedShadowNode: CSMShadowNode;
104
- light: DirectionalLight;
105
- }
106
- //#endregion
107
- //#region src/atmosphere/SunLightOptions.d.ts
108
- export interface SunLightOptions {
109
- cascadeCount: number;
110
- maxFar: number;
111
- shadowMapSize: number;
112
- }
113
- //#endregion
114
121
  //#region src/atmosphere/applySkyState.d.ts
115
122
  export declare const applySkyState: (skyState: SkyState, { fogUniforms, godraysLight, hemisphere, light, lightDistance, lightUniforms, postUniforms, skyUniforms }: SkyTargets) => void;
116
123
  //#endregion
117
124
  //#region src/atmosphere/computeSunDirection.d.ts
118
125
  export declare const computeSunDirection: (minutes: number, tilt: number, sunDirection: Vector3) => Vector3;
119
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
133
+ //#region src/atmosphere/constants.d.ts
134
+ export declare const DEFAULT_SKY_SHAPE: Readonly<SkyShape>;
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
+ }
142
+ //#endregion
120
143
  //#region src/atmosphere/createCloudAtlasTexture.d.ts
121
- export declare const getCloudAtlasColumns: (spriteCount: number) => number;
122
144
  export declare const createCloudAtlasTexture: (sprites: readonly CloudSprite[], cellSize: number) => CanvasTexture<OffscreenCanvas>;
123
145
  //#endregion
124
- //#region src/atmosphere/createCloudSpriteMaterial.d.ts
125
- export declare const createCloudSpriteMaterial: (atlas: Texture, { index, spriteCount }: {
126
- index: number;
146
+ //#region src/models/atmosphere/CloudBandSprite.d.ts
147
+ export interface CloudBandSprite {
148
+ cover: UniformNode<"float", number>;
149
+ dispose: () => void;
150
+ places: [number, number, number][];
151
+ sprite: Sprite;
152
+ }
153
+ //#endregion
154
+ //#region src/models/atmosphere/CloudBandSpriteOptions.d.ts
155
+ export interface CloudBandSpriteOptions {
156
+ aspect: number;
127
157
  spriteCount: number;
128
- }, { cloudLitColor, cloudShadeColor }: Pick<SkyUniforms, "cloudLitColor" | "cloudShadeColor">) => SpriteNodeMaterial;
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;
169
+ //#endregion
170
+ //#region src/atmosphere/createSkyGradientTexture.d.ts
171
+ export declare const createSkyGradientTexture: ({ green, red }: SkyGradient) => DataTexture;
129
172
  //#endregion
130
173
  //#region src/atmosphere/createSkyState.d.ts
131
174
  export declare const createSkyState: () => SkyState;
@@ -133,20 +176,172 @@ export declare const createSkyState: () => SkyState;
133
176
  //#region src/atmosphere/createSkyUniforms.d.ts
134
177
  export declare const createSkyUniforms: () => SkyUniforms;
135
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
136
192
  //#region src/atmosphere/createSunLight.d.ts
137
193
  export declare const createSunLight: ({ cascadeCount, maxFar, shadowMapSize }: SunLightOptions) => SunLight;
138
194
  //#endregion
195
+ //#region src/atmosphere/getCloudAtlasColumns.d.ts
196
+ export declare const getCloudAtlasColumns: (spriteCount: number) => number;
197
+ //#endregion
198
+ //#region src/atmosphere/orderByViewDepth.d.ts
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
+ }
209
+ //#endregion
139
210
  //#region src/atmosphere/placeCloudBand.d.ts
140
- export declare const placeCloudBand: ({ count, distanceRange: [near, far], heightRange: [low, high], seed, widthRange: [narrow, wide] }: CloudBandOptions, spriteCount: number) => {
141
- position: [number, number, number];
142
- spriteIndex: number;
143
- width: number;
144
- }[];
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
+ }
145
217
  //#endregion
146
218
  //#region src/atmosphere/sampleSkyState.d.ts
147
219
  export declare const sampleSkyState: (skyKeyframes: readonly SkyKeyframe[], minutes: number, tilt: number, skyState: SkyState) => SkyState;
148
220
  //#endregion
149
- //#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
150
345
  export interface GameClock {
151
346
  minutes: number;
152
347
  minutesPerSecond: number;
@@ -159,44 +354,36 @@ export declare const advanceGameClock: (gameClock: GameClock, deltaSeconds: numb
159
354
  export declare const MINUTES_PER_DAY = 1440;
160
355
  export declare const GAME_MINUTES_PER_SECOND = 1;
161
356
  //#endregion
162
- //#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
163
364
  export interface LatheSection {
164
365
  bottomRadius: number;
165
366
  height: number;
166
367
  topRadius: number;
167
368
  }
168
369
  //#endregion
169
- //#region src/kits/architecture/LatheStackOptions.d.ts
370
+ //#region src/models/kits/architecture/LatheStackOptions.d.ts
170
371
  export interface LatheStackOptions {
171
372
  isFaceted: boolean;
172
373
  radialSegments: number;
173
374
  sections: LatheSection[];
174
375
  }
175
376
  //#endregion
176
- //#region src/kits/architecture/SilhouetteOptions.d.ts
177
- export interface SilhouetteOptions {
178
- contours: [number, number][][];
179
- depth: [number, number];
180
- }
181
- //#endregion
182
377
  //#region src/kits/architecture/createLatheStackGeometry.d.ts
183
378
  export declare const createLatheStackGeometry: ({ isFaceted, radialSegments, sections }: LatheStackOptions) => BufferGeometry;
184
379
  //#endregion
185
- //#region src/kits/architecture/createSilhouetteGeometry.d.ts
186
- export declare const createSilhouetteGeometry: ({ contours, depth: [front, back] }: SilhouetteOptions) => ExtrudeGeometry;
380
+ //#region src/kits/mergeGeometryParts.d.ts
381
+ export declare const mergeGeometryParts: (parts: BufferGeometry[]) => BufferGeometry;
187
382
  //#endregion
188
383
  //#region src/kits/statue/createStatueGeometry.d.ts
189
384
  export declare const createStatueGeometry: () => BufferGeometry;
190
385
  //#endregion
191
- //#region src/kits/tree/BranchSegment.d.ts
192
- export interface BranchSegment {
193
- end: Vector3;
194
- endRadius: number;
195
- start: Vector3;
196
- startRadius: number;
197
- }
198
- //#endregion
199
- //#region src/kits/tree/LeafCards.d.ts
386
+ //#region src/models/kits/tree/LeafCards.d.ts
200
387
  export interface LeafCards {
201
388
  indices: Uint32Array;
202
389
  normals: Float32Array;
@@ -204,13 +391,7 @@ export interface LeafCards {
204
391
  uvs: Float32Array;
205
392
  }
206
393
  //#endregion
207
- //#region src/kits/tree/TreeGeometry.d.ts
208
- export interface TreeGeometry {
209
- branchGeometry: BufferGeometry;
210
- leafGeometry: BufferGeometry;
211
- }
212
- //#endregion
213
- //#region src/kits/tree/TreeOptions.d.ts
394
+ //#region src/models/kits/tree/TreeOptions.d.ts
214
395
  export interface TreeOptions {
215
396
  branchLength: number;
216
397
  cardSize: number;
@@ -222,22 +403,39 @@ export interface TreeOptions {
222
403
  trunkRadius: number;
223
404
  }
224
405
  //#endregion
225
- //#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
226
418
  export interface TreeSkeleton {
227
419
  branchSegments: BranchSegment[];
228
420
  clusterCenters: Vector3[];
229
421
  }
230
422
  //#endregion
231
- //#region src/kits/tree/computeLeafCards.d.ts
232
- export declare const computeLeafCards: (clusterCenters: readonly Vector3[], { cardSize, cardsPerCluster, clusterRadius, seed }: Pick<TreeOptions, "cardSize" | "cardsPerCluster" | "clusterRadius" | "seed">) => LeafCards;
233
- //#endregion
234
423
  //#region src/kits/tree/computeTreeSkeleton.d.ts
235
424
  export declare const computeTreeSkeleton: ({ branchLength, mainBranchCount, seed, trunkHeight, trunkRadius }: Pick<TreeOptions, "branchLength" | "mainBranchCount" | "seed" | "trunkHeight" | "trunkRadius">) => TreeSkeleton;
236
425
  //#endregion
426
+ //#region src/models/kits/tree/TreeGeometry.d.ts
427
+ export interface TreeGeometry {
428
+ branchGeometry: BufferGeometry;
429
+ leafGeometry: BufferGeometry;
430
+ }
431
+ //#endregion
237
432
  //#region src/kits/tree/createTreeGeometry.d.ts
238
433
  export declare const createTreeGeometry: (treeOptions: TreeOptions) => TreeGeometry;
239
434
  //#endregion
240
- //#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
241
439
  export interface RampOptions {
242
440
  resolution: number;
243
441
  softness: number;
@@ -250,7 +448,52 @@ export declare const computeRampValues: ({ resolution, softness, terminator }: R
250
448
  //#region src/materials/createRampTexture.d.ts
251
449
  export declare const createRampTexture: (rampOptions: RampOptions) => DataTexture;
252
450
  //#endregion
253
- //#region src/nodes/ToonMaterialOptions.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
479
+ export interface StoneMaterialOptions {
480
+ albedo: string;
481
+ rimColor: readonly number[];
482
+ rimPower: number;
483
+ rimStrength: number;
484
+ smoothness: number;
485
+ specularColor: readonly number[];
486
+ }
487
+ //#endregion
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
254
497
  export interface ToonMaterialOptions {
255
498
  color?: ColorRepresentation;
256
499
  isOutlined?: boolean;
@@ -259,66 +502,14 @@ export interface ToonMaterialOptions {
259
502
  rampTexture: DataTexture;
260
503
  }
261
504
  //#endregion
262
- //#region src/nodes/ToonNodeMaterial.d.ts
505
+ //#region src/models/nodes/ToonNodeMaterial.d.ts
263
506
  export declare class ToonNodeMaterial extends MeshToonNodeMaterial {
264
507
  emissiveNode: Node | null;
265
508
  override readonly isMeshToonNodeMaterial: boolean;
266
509
  constructor(parameters: MeshToonNodeMaterialParameters, isOutlined: boolean);
267
510
  }
268
511
  //#endregion
269
- //#region src/water/WaterUniforms.d.ts
270
- export interface WaterUniforms {
271
- causticStrength: UniformNode<"float", number>;
272
- deepColor: UniformNode<"color", Color>;
273
- deepDepth: UniformNode<"float", number>;
274
- foamColor: UniformNode<"color", Color>;
275
- foamDepth: UniformNode<"float", number>;
276
- level: UniformNode<"float", number>;
277
- shallowColor: UniformNode<"color", Color>;
278
- underwaterFogColor: UniformNode<"color", Color>;
279
- underwaterFogDensity: UniformNode<"float", number>;
280
- }
281
- //#endregion
282
- //#region src/nodes/createCausticsNode.d.ts
283
- export declare const createCausticsNode: ({ lightColor }: Pick<LightUniforms, "lightColor">, { causticStrength, deepDepth, level }: Pick<WaterUniforms, "causticStrength" | "deepDepth" | "level">) => Node<"vec3">;
284
- //#endregion
285
- //#region src/nodes/createGenshinRenderer.d.ts
286
- export declare const createGenshinRenderer: (canvas: HTMLCanvasElement) => WebGPURenderer;
287
- //#endregion
288
- //#region src/wind/WindUniforms.d.ts
289
- export interface WindUniforms {
290
- direction: UniformNode<"vec2", Vector2>;
291
- gustSpeed: UniformNode<"float", number>;
292
- gustStrength: UniformNode<"float", number>;
293
- gustWidth: UniformNode<"float", number>;
294
- strength: UniformNode<"float", number>;
295
- }
296
- //#endregion
297
- //#region src/nodes/createLeafMaterial.d.ts
298
- export declare const createLeafMaterial: (toonMaterialOptions: ToonMaterialOptions, windUniforms?: WindUniforms) => ToonNodeMaterial;
299
- //#endregion
300
- //#region src/nodes/createLightUniforms.d.ts
301
- export declare const createLightUniforms: () => LightUniforms;
302
- //#endregion
303
- //#region src/nodes/createRimNode.d.ts
304
- export declare const createRimNode: ({ rimColor, rimStrength, sunDirection }: LightUniforms) => Node<"vec3">;
305
- //#endregion
306
- //#region src/nodes/createSkyNode.d.ts
307
- export declare const createSkyNode: ({ cloudCoverage, cloudDrift, cloudLitColor, cloudShadeColor, horizonBand, horizonColor, lightColor, moonDirection, starIntensity, sunDirection, zenithColor }: SkyUniforms) => Node<"vec3">;
308
- //#endregion
309
- //#region src/nodes/createToonMaterial.d.ts
310
- export declare const createToonMaterial: ({ color, isOutlined, isVertexColors, lightUniforms, rampTexture }: ToonMaterialOptions) => ToonNodeMaterial;
311
- //#endregion
312
- //#region src/nodes/createWaterMaterial.d.ts
313
- export declare const createWaterMaterial: ({ lightColor, sunDirection }: Pick<LightUniforms, "lightColor" | "sunDirection">, { horizonColor, zenithColor }: Pick<SkyUniforms, "horizonColor" | "zenithColor">, { deepColor, deepDepth, foamColor, foamDepth, shallowColor }: WaterUniforms) => MeshBasicNodeMaterial;
314
- //#endregion
315
- //#region src/nodes/createWindNode.d.ts
316
- export declare const createWindNode: ({ direction, gustSpeed, gustStrength, gustWidth, strength }: WindUniforms, groundPosition: Node<"vec2">) => Node<"vec2">;
317
- //#endregion
318
- //#region src/noise/createSimplexNoise.d.ts
319
- export declare const createSimplexNoise: (seed: number) => ((x: number, y: number) => number);
320
- //#endregion
321
- //#region src/post/GradeOptions.d.ts
512
+ //#region src/models/post/GradeOptions.d.ts
322
513
  export interface GradeOptions {
323
514
  contrast: number;
324
515
  highlightTint: readonly [number, number, number];
@@ -327,91 +518,63 @@ export interface GradeOptions {
327
518
  size: number;
328
519
  }
329
520
  //#endregion
330
- //#region src/post/PostPipeline.d.ts
521
+ //#region src/models/post/PostPipeline.d.ts
331
522
  export interface PostPipeline {
332
523
  bloomNode?: BloomNode;
524
+ dispose: () => void;
333
525
  godraysNode?: GodraysNode;
334
526
  renderPipeline: RenderPipeline;
335
527
  }
336
528
  //#endregion
337
- //#region src/renderer/AntialiasingMode.d.ts
529
+ //#region src/models/renderer/AntialiasingMode.d.ts
338
530
  export declare enum AntialiasingMode {
339
531
  Smaa = "Smaa",
340
532
  Traa = "Traa"
341
533
  }
342
534
  //#endregion
343
- //#region src/renderer/QualityTierSettings.d.ts
535
+ //#region src/models/renderer/QualityTierSettings.d.ts
344
536
  export interface QualityTierSettings {
345
537
  antialiasingMode: AntialiasingMode;
346
538
  cascadeCount: number;
347
539
  godraysStepCount: number;
348
540
  grassDensity: number;
349
541
  isBloomEnabled: boolean;
542
+ isOcclusionEnabled: boolean;
350
543
  maxPixelRatio: number;
351
544
  shadowMapSize: number;
352
545
  }
353
546
  //#endregion
354
- //#region src/post/PostPipelineOptions.d.ts
547
+ //#region src/models/post/PostPipelineOptions.d.ts
355
548
  export interface PostPipelineOptions {
356
549
  camera: Camera;
357
550
  fogUniforms: FogUniforms;
358
- godraysLight: DirectionalLight;
359
- gradeLutTexture: Data3DTexture;
551
+ godraysLight?: DirectionalLight;
552
+ gradeLutTexture?: Data3DTexture;
553
+ isBloomed?: boolean;
554
+ occlusionRadius?: number;
360
555
  postUniforms: PostUniforms;
361
556
  qualityTierSettings: QualityTierSettings;
362
557
  renderer: Renderer;
363
558
  scene: Scene;
559
+ stoneLight?: StoneLightUniforms;
364
560
  }
365
561
  //#endregion
366
- //#region src/post/computeGradeLut.d.ts
367
- export declare const computeGradeLut: ({ contrast, highlightTint, saturation, shadowTint, size }: GradeOptions) => Uint8Array;
368
- //#endregion
369
- //#region src/post/createFogUniforms.d.ts
370
- export declare const createFogUniforms: () => FogUniforms;
371
- //#endregion
372
- //#region src/post/createGodraysLight.d.ts
373
- export declare const createGodraysLight: (shadowMapSize: number, halfExtent: number) => DirectionalLight;
374
- //#endregion
375
- //#region src/post/createGradeLutTexture.d.ts
376
- export declare const createGradeLutTexture: (gradeOptions: GradeOptions) => Data3DTexture;
377
- //#endregion
378
- //#region src/post/createHeightFogNode.d.ts
379
- export declare const createHeightFogNode: (colorNode: Node<"vec4">, depthNode: TextureNode, camera: Camera, { baseHeight, color, density, heightFalloff, scatterColor, scatterDirection, scatterPower, scatterStrength, startDistance }: FogUniforms) => Node<"vec4">;
380
- //#endregion
381
- //#region src/post/createPostPipeline.d.ts
382
- export declare const createPostPipeline: ({ camera, fogUniforms, godraysLight, gradeLutTexture, postUniforms: { godraysColor, gradeIntensity, outlineColor, outlineFadeDistance, outlineThickness }, qualityTierSettings: { antialiasingMode, godraysStepCount, isBloomEnabled }, renderer, scene }: PostPipelineOptions) => PostPipeline;
383
- //#endregion
384
- //#region src/post/createPostUniforms.d.ts
385
- export declare const createPostUniforms: () => PostUniforms;
386
- //#endregion
387
- //#region src/post/toSceneColor.d.ts
388
- export declare const toSceneColor: (displayColor: Color) => Color;
389
- //#endregion
390
- //#region src/random/createSeededRandom.d.ts
391
- export declare const createSeededRandom: (seed: number) => (() => number);
392
- //#endregion
393
- //#region src/renderer/QualityTier.d.ts
562
+ //#region src/models/renderer/QualityTier.d.ts
394
563
  export declare enum QualityTier {
395
564
  High = "High",
396
565
  Low = "Low",
397
566
  Medium = "Medium"
398
567
  }
399
568
  //#endregion
400
- //#region src/renderer/QualityTierSettingsMap.d.ts
401
- export declare const QualityTierSettingsMap: Readonly<Record<QualityTier, QualityTierSettings>>;
402
- //#endregion
403
- //#region src/renderer/constants.d.ts
404
- export declare const GENSHIN_TONE_MAPPING: ToneMapping;
405
- //#endregion
406
- //#region src/renderer/getScreenDirection.d.ts
407
- export declare const getScreenDirection: ({ aspect, fov, pitch, yaw }: {
569
+ //#region src/models/renderer/ScreenCamera.d.ts
570
+ export interface ScreenCamera {
408
571
  aspect: number;
409
572
  fov: number;
410
573
  pitch: number;
411
574
  yaw: number;
412
- }, [x, y]: [number, number]) => Vector3;
575
+ }
413
576
  //#endregion
414
- //#region src/scene/SceneMaterial.d.ts
577
+ //#region src/models/scene/SceneMaterial.d.ts
415
578
  export interface SceneMaterial {
416
579
  colors: Record<string, [number, number, number, number]>;
417
580
  floats: Record<string, number>;
@@ -423,7 +586,7 @@ export interface SceneMaterial {
423
586
  }>;
424
587
  }
425
588
  //#endregion
426
- //#region src/scene/ScenePlacement.d.ts
589
+ //#region src/models/scene/ScenePlacement.d.ts
427
590
  export interface ScenePlacement {
428
591
  materials: string[];
429
592
  mesh: string;
@@ -432,28 +595,28 @@ export interface ScenePlacement {
432
595
  scale: [number, number, number];
433
596
  }
434
597
  //#endregion
435
- //#region src/scene/SceneLayout.d.ts
598
+ //#region src/models/scene/SceneLayout.d.ts
436
599
  export interface SceneLayout {
437
600
  materials: Record<string, SceneMaterial>;
438
601
  placements: ScenePlacement[];
439
602
  }
440
603
  //#endregion
441
- //#region src/terrain/TerrainSelection.d.ts
604
+ //#region src/models/terrain/TerrainSelection.d.ts
442
605
  export interface TerrainSelection {
443
606
  count: number;
444
607
  keys: Float64Array;
445
608
  }
446
609
  //#endregion
447
- //#region src/streaming/TileStreamer.d.ts
610
+ //#region src/models/streaming/TileStreamer.d.ts
448
611
  export interface TileStreamer<TTile> {
449
612
  dispose: () => void;
450
613
  get: (key: number) => TTile | undefined;
451
614
  has: (key: number) => boolean;
452
615
  receive: (key: number, tile: TTile) => void;
453
- update: (wanted: TerrainSelection, drawn: TerrainSelection) => void;
616
+ update: (wanted: TerrainSelection, drawn: TerrainSelection, surrounding: TerrainSelection) => void;
454
617
  }
455
618
  //#endregion
456
- //#region src/streaming/TileStreamerOptions.d.ts
619
+ //#region src/models/streaming/TileStreamerOptions.d.ts
457
620
  export interface TileStreamerOptions<TTile> {
458
621
  disposeTile: (tile: TTile) => void;
459
622
  maxCachedCount: number;
@@ -461,10 +624,21 @@ export interface TileStreamerOptions<TTile> {
461
624
  requestTile: (key: number) => void;
462
625
  }
463
626
  //#endregion
464
- //#region src/streaming/createTileStreamer.d.ts
465
- 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
+ }
634
+ //#endregion
635
+ //#region src/models/terrain/GaussianHills.d.ts
636
+ export interface GaussianHills {
637
+ base: number;
638
+ hills: GaussianHill[];
639
+ }
466
640
  //#endregion
467
- //#region src/terrain/TerrainOptions.d.ts
641
+ //#region src/models/terrain/TerrainOptions.d.ts
468
642
  export interface TerrainOptions {
469
643
  cellsPerSide: number;
470
644
  finestRange: number;
@@ -475,7 +649,7 @@ export interface TerrainOptions {
475
649
  morphShare: number;
476
650
  }
477
651
  //#endregion
478
- //#region src/terrain/TerrainTile.d.ts
652
+ //#region src/models/terrain/TerrainTile.d.ts
479
653
  export interface TerrainTile {
480
654
  coarsePositions: Float32Array;
481
655
  colors: Float32Array;
@@ -484,13 +658,198 @@ export interface TerrainTile {
484
658
  positions: Float32Array;
485
659
  }
486
660
  //#endregion
487
- //#region src/terrain/TerrainTileOptions.d.ts
661
+ //#region src/models/terrain/TerrainTileOptions.d.ts
488
662
  export interface TerrainTileOptions extends Pick<TerrainOptions, "cellsPerSide" | "finestTileSize"> {
489
663
  getHeight: (x: number, z: number) => number;
490
664
  key: number;
491
665
  writeColor: (colors: Float32Array, offset: number, height: number, slope: number, x: number, z: number) => void;
492
666
  }
493
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
494
853
  //#region src/terrain/computeTerrainIndices.d.ts
495
854
  export declare const computeTerrainIndices: (cellsPerSide: number) => Uint16Array | Uint32Array;
496
855
  //#endregion
@@ -502,6 +861,9 @@ export declare const TILE_INDEX_OFFSET: number;
502
861
  export declare const TILE_INDEX_SPAN: number;
503
862
  export declare const TERRAIN_LAYER = 1;
504
863
  //#endregion
864
+ //#region src/terrain/createGaussianHillsHeight.d.ts
865
+ export declare const createGaussianHillsHeight: ({ base, hills }: GaussianHills) => ((x: number, z: number) => number);
866
+ //#endregion
505
867
  //#region src/terrain/createTerrainMaterial.d.ts
506
868
  export declare const createTerrainMaterial: ({ finestRange, morphShare }: Pick<TerrainOptions, "finestRange" | "morphShare">, toonMaterialOptions: Pick<ToonMaterialOptions, "color" | "lightUniforms" | "rampTexture">, waterUniforms?: WaterUniforms) => ToonNodeMaterial;
507
869
  //#endregion
@@ -532,45 +894,6 @@ export declare const resolveTerrainDraws: ({ levelCount }: Pick<TerrainOptions,
532
894
  //#region src/terrain/selectTerrainTiles.d.ts
533
895
  export declare const selectTerrainTiles: (terrainOptions: TerrainOptions, eye: Vector3Like, frustum: Frustum | undefined, selection: TerrainSelection) => TerrainSelection;
534
896
  //#endregion
535
- //#region src/vegetation/GrassBlade.d.ts
536
- export interface GrassBlade {
537
- indices: Uint16Array;
538
- positions: Float32Array;
539
- }
540
- //#endregion
541
- //#region src/vegetation/GrassRing.d.ts
542
- export interface GrassRing {
543
- cellsPerSide: number;
544
- fadeEnd: number;
545
- fadeStart: number;
546
- innerRadius: number;
547
- scale: number;
548
- spacing: number;
549
- }
550
- //#endregion
551
- //#region src/vegetation/GroundCapture.d.ts
552
- export interface GroundCapture {
553
- camera: OrthographicCamera;
554
- center: UniformNode<"vec2", Vector2>;
555
- material: MeshBasicNodeMaterial;
556
- renderTarget: RenderTarget;
557
- size: number;
558
- }
559
- //#endregion
560
- //#region src/vegetation/GrassOptions.d.ts
561
- export interface GrassOptions {
562
- bladeHeight: number;
563
- bladeWidth: number;
564
- cameraGround: UniformNode<"vec2", Vector2>;
565
- density: UniformNode<"float", number>;
566
- groundCapture: GroundCapture;
567
- lightUniforms: LightUniforms;
568
- rampTexture: DataTexture;
569
- ring: GrassRing;
570
- waterUniforms: Pick<WaterUniforms, "level">;
571
- windUniforms: WindUniforms;
572
- }
573
- //#endregion
574
897
  //#region src/vegetation/computeGrassBlade.d.ts
575
898
  export declare const computeGrassBlade: (segmentCount: number) => GrassBlade;
576
899
  //#endregion
@@ -586,14 +909,6 @@ export declare const createGroundCapture: (size: number, resolution: number) =>
586
909
  //#region src/vegetation/renderGroundCapture.d.ts
587
910
  export declare const renderGroundCapture: (renderer: Renderer, scene: Scene, { camera, center, material, renderTarget }: GroundCapture, { maxHeight }: Pick<TerrainOptions, "maxHeight">, worldCenter: Vector3Like, origin: Vector3Like) => void;
588
911
  //#endregion
589
- //#region src/water/UnderwaterFogState.d.ts
590
- export interface UnderwaterFogState {
591
- aboveDensity: number;
592
- aboveHeightFalloff: number;
593
- aboveStartDistance: number;
594
- isUnderwater: boolean;
595
- }
596
- //#endregion
597
912
  //#region src/water/createUnderwaterFogState.d.ts
598
913
  export declare const createUnderwaterFogState: () => UnderwaterFogState;
599
914
  //#endregion
@@ -601,17 +916,11 @@ export declare const createUnderwaterFogState: () => UnderwaterFogState;
601
916
  export declare const createWaterUniforms: () => WaterUniforms;
602
917
  //#endregion
603
918
  //#region src/water/updateUnderwaterFog.d.ts
604
- 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;
605
920
  //#endregion
606
921
  //#region src/wind/createWindUniforms.d.ts
607
922
  export declare const createWindUniforms: () => WindUniforms;
608
923
  //#endregion
609
- //#region src/world/GroundPoint.d.ts
610
- export interface GroundPoint {
611
- x: number;
612
- z: number;
613
- }
614
- //#endregion
615
924
  //#region src/world/computeOriginShift.d.ts
616
925
  export declare const computeOriginShift: (cameraPosition: Vector3, threshold: number, step: number, shift: Vector3) => boolean;
617
926
  //#endregion