@hology/webgpu-renderer 0.1.23 → 0.1.25
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 +394 -178
- package/dist/index.js +1 -1
- package/package.json +57 -52
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as three from 'three';
|
|
2
|
-
import { Object3D, Color, Vector2, Vector3, Vector4, Matrix3, Matrix4, Material, Texture, MaterialParameters, PerspectiveCamera, OrthographicCamera, BufferGeometry, DirectionalLight, PointLight, SpotLight, Scene } from 'three';
|
|
2
|
+
import { Object3D, Color, Vector2, Vector3, Vector4, Matrix3, Matrix4, Material, Texture, MaterialParameters, PerspectiveCamera, OrthographicCamera, BufferGeometry, DirectionalLight, PointLight, SpotLight, Scene, Camera } from 'three';
|
|
3
3
|
export { AmbientLight, BackSide, BatchedMesh, Bone, BoxGeometry, BufferAttribute, BufferGeometry, CanvasTexture, Color, CompressedArrayTexture, CompressedCubeTexture, CompressedTexture, CompressedArrayTexture as CompressedTextureArray, CubeTexture, Data3DTexture, DataArrayTexture, DataTexture, DepthTexture, DirectionalLight, DoubleSide, FrontSide, Group, HemisphereLight, InstancedMesh, MathUtils, Matrix4, Mesh, Object3D, OrthographicCamera, PerspectiveCamera, PlaneGeometry, PointLight, RepeatWrapping, Scene, Skeleton, SkinnedMesh, SphereGeometry, SpotLight, Texture, Vector2, Vector3, Vector4 } from 'three';
|
|
4
4
|
|
|
5
5
|
interface PipelineDiagnosticOrigin {
|
|
@@ -73,6 +73,8 @@ interface WGSLStorageBufferBinding {
|
|
|
73
73
|
buffer: GPUBuffer;
|
|
74
74
|
type: string;
|
|
75
75
|
visibility?: WGSLStorageBufferVisibility;
|
|
76
|
+
/** Writable fragment storage is used by surface voxelization. Defaults to read. */
|
|
77
|
+
access?: "read" | "read_write";
|
|
76
78
|
}
|
|
77
79
|
type WGSLSceneTextureSemantic = "sceneColor" | "sceneDepth";
|
|
78
80
|
type WGSLGraphTextureDimension = "2d" | "depth-2d" | "3d";
|
|
@@ -278,6 +280,8 @@ interface RendererOptions {
|
|
|
278
280
|
invokeObjectRenderCallbacks?: boolean;
|
|
279
281
|
}
|
|
280
282
|
interface StaticDrawSetOptions {
|
|
283
|
+
/** Retain source instance IDs for explicit transform/visibility refreshes. Topology stays fixed. */
|
|
284
|
+
mutableTransforms?: boolean;
|
|
281
285
|
/** Defaults inherited by objects without overrides. Frozen at registration. */
|
|
282
286
|
detailCulling?: DetailCullingSettings;
|
|
283
287
|
label?: string;
|
|
@@ -294,6 +298,8 @@ interface StaticDrawSet {
|
|
|
294
298
|
readonly drawCount: number;
|
|
295
299
|
readonly instanceCount: number;
|
|
296
300
|
enabled: boolean;
|
|
301
|
+
/** Refresh resident transforms/instance visibility. Requires mutableTransforms; topology stays fixed. */
|
|
302
|
+
updateTransforms(): void;
|
|
297
303
|
dispose(): void;
|
|
298
304
|
}
|
|
299
305
|
interface RendererGraphBuilderContext {
|
|
@@ -341,6 +347,8 @@ interface RendererTextureTargetDescriptor extends RendererColorTargetDescriptor
|
|
|
341
347
|
}
|
|
342
348
|
interface RendererMaterialPassDescriptor {
|
|
343
349
|
readonly name?: string;
|
|
350
|
+
/** Compute work that must finish before this pass samples its resources. */
|
|
351
|
+
readonly dependsOn?: readonly string[];
|
|
344
352
|
readonly outputs?: string | readonly string[];
|
|
345
353
|
/** Selects which extracted scene draws are submitted. Defaults to all draws. */
|
|
346
354
|
readonly drawStage?: "all" | "opaque" | "late";
|
|
@@ -353,10 +361,12 @@ interface RendererMaterialPassDescriptor {
|
|
|
353
361
|
/** Draw only objects accepted by this predicate. Intended for selection/mask passes. */
|
|
354
362
|
readonly objectFilter?: (object: Object3D | null) => boolean;
|
|
355
363
|
/** Replace each accepted draw's material while preserving its geometry and instance data. */
|
|
356
|
-
readonly overrideMaterial?: WGSLShaderMaterial | ((source: WGSLShaderMaterial, skinned: boolean) => WGSLShaderMaterial);
|
|
364
|
+
readonly overrideMaterial?: WGSLShaderMaterial | ((source: WGSLShaderMaterial, skinned: boolean) => WGSLShaderMaterial | null);
|
|
357
365
|
}
|
|
358
366
|
interface RendererSceneCaptureOptions {
|
|
359
|
-
/**
|
|
367
|
+
/** Replace shading while retaining geometry/instances. Receives the source of static snapshots; null skips a draw. */
|
|
368
|
+
readonly overrideMaterial?: (source: WGSLShaderMaterial, skinned: boolean) => WGSLShaderMaterial | null;
|
|
369
|
+
/** Exclude objects/subtrees. Renderer-owned draws without a source object pass null. */
|
|
360
370
|
readonly objectFilter?: (object: Object3D | null) => boolean;
|
|
361
371
|
readonly clearColor?: readonly [number, number, number, number];
|
|
362
372
|
/** Defaults to true. Disable point and spot lights for a consistent map view. */
|
|
@@ -378,8 +388,15 @@ interface RendererSceneCapturePostProcessContext {
|
|
|
378
388
|
}
|
|
379
389
|
/** Non-temporal, unshadowed scene view sharing the renderer's GPU resources. */
|
|
380
390
|
interface RendererSceneCapture {
|
|
391
|
+
/** Display-space output format, for preparing a custom postProcess pipeline. */
|
|
392
|
+
readonly format: GPUTextureFormat;
|
|
393
|
+
/** Triangles submitted by the most recent capture, before raster clipping. */
|
|
394
|
+
readonly triangleCount: number;
|
|
381
395
|
/** Persistent display-space output when created without a canvas. Owned by the capture. */
|
|
382
396
|
readonly textureView?: GPUTextureView;
|
|
397
|
+
/** Prepare this view's material variants without blocking on synchronous pipeline creation.
|
|
398
|
+
* Does not submit a capture or prepare a custom postProcess callback. */
|
|
399
|
+
prepareAsync(scene: three.Scene, camera: PerspectiveCamera | OrthographicCamera, options?: RendererSceneCaptureOptions): Promise<void>;
|
|
383
400
|
capture(scene: three.Scene, camera: PerspectiveCamera | OrthographicCamera, options?: RendererSceneCaptureOptions): void;
|
|
384
401
|
dispose(): void;
|
|
385
402
|
}
|
|
@@ -685,13 +702,14 @@ interface FrameGraphNodeFullscreenPassDescriptor {
|
|
|
685
702
|
}
|
|
686
703
|
interface FrameGraphMaterialPassDescriptor {
|
|
687
704
|
readonly name?: string;
|
|
705
|
+
readonly dependsOn?: readonly string[];
|
|
688
706
|
readonly outputs?: FrameGraphTextureHandle | readonly FrameGraphTextureHandle[];
|
|
689
707
|
readonly drawStage?: "all" | "opaque" | "late";
|
|
690
708
|
readonly loadColor?: boolean;
|
|
691
709
|
readonly clearColor?: readonly [number, number, number, number];
|
|
692
710
|
readonly loadDepth?: boolean;
|
|
693
711
|
readonly objectFilter?: (object: Object3D | null) => boolean;
|
|
694
|
-
readonly overrideMaterial?: WGSLShaderMaterial | ((source: WGSLShaderMaterial, skinned: boolean) => WGSLShaderMaterial);
|
|
712
|
+
readonly overrideMaterial?: WGSLShaderMaterial | ((source: WGSLShaderMaterial, skinned: boolean) => WGSLShaderMaterial | null);
|
|
695
713
|
}
|
|
696
714
|
declare class FrameGraphBuilder {
|
|
697
715
|
private readonly context;
|
|
@@ -723,190 +741,177 @@ declare class FrameGraphBuilder {
|
|
|
723
741
|
present(source?: FrameGraphTextureHandle): void;
|
|
724
742
|
}
|
|
725
743
|
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
readonly historyWeight?: number;
|
|
731
|
-
/** Relative view-depth difference that rejects history. Defaults to 0.04. */
|
|
732
|
-
readonly depthRejection?: number;
|
|
733
|
-
/** Clamp reprojected history to the current 3x3 fog neighborhood. */
|
|
734
|
-
readonly neighborhoodClamp?: boolean;
|
|
735
|
-
}
|
|
736
|
-
/** Kept structurally compatible with Hology's legacy FogVolumeSettings. */
|
|
737
|
-
interface VolumetricFogVolumeSettings {
|
|
738
|
-
readonly object: Object3D;
|
|
739
|
-
baseDensity: number;
|
|
740
|
-
heightFalloff: number;
|
|
741
|
-
heightOffset: number;
|
|
742
|
-
startDistance?: number;
|
|
743
|
-
scatteringDistribution: number;
|
|
744
|
-
albedo: Color;
|
|
745
|
-
emissive: Color;
|
|
746
|
-
ambientIntensity?: number;
|
|
747
|
-
scatteringMode: VolumetricFogScatteringMode;
|
|
744
|
+
interface SDFGIVolume {
|
|
745
|
+
readonly origin: Vector3;
|
|
746
|
+
readonly extent: number;
|
|
747
|
+
readonly resolution: number;
|
|
748
748
|
}
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
readonly isFogVolumeObject = true;
|
|
753
|
-
constructor(volume: VolumetricFogVolumeSettings);
|
|
749
|
+
interface SDFGISurfaceCaptureDriver {
|
|
750
|
+
capture(scene: Scene, volume: SDFGIVolume, axis: number): number;
|
|
751
|
+
dispose(): void;
|
|
754
752
|
}
|
|
755
|
-
interface
|
|
753
|
+
interface SDFGIOptions {
|
|
756
754
|
readonly enabled?: boolean;
|
|
757
|
-
/**
|
|
758
|
-
readonly
|
|
759
|
-
/**
|
|
760
|
-
readonly
|
|
761
|
-
/**
|
|
762
|
-
readonly
|
|
763
|
-
readonly
|
|
764
|
-
|
|
765
|
-
readonly
|
|
766
|
-
|
|
767
|
-
readonly
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
readonly
|
|
771
|
-
/**
|
|
772
|
-
readonly
|
|
773
|
-
/**
|
|
774
|
-
readonly
|
|
775
|
-
/**
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
readonly volumes?: readonly VolumetricFogVolumeSettings[];
|
|
808
|
-
/**
|
|
809
|
-
* Fog marker objects already collected by the renderer. When supplied, this
|
|
810
|
-
* list is authoritative and avoids traversing the scene for volumes.
|
|
811
|
-
*/
|
|
812
|
-
readonly volumeObjects?: readonly Object3D[];
|
|
813
|
-
/**
|
|
814
|
-
* Lights already collected by the renderer. When supplied, this list is
|
|
815
|
-
* authoritative and avoids traversing the scene for lights.
|
|
816
|
-
*/
|
|
817
|
-
readonly lights?: RendererExtractedLightState;
|
|
755
|
+
/** Immutable voxel resolution. Defaults to 64. */
|
|
756
|
+
readonly resolution?: 32 | 64 | 128;
|
|
757
|
+
/** World-space side length of the camera-following volume. Defaults to 48. */
|
|
758
|
+
readonly extent?: number;
|
|
759
|
+
/** Immutable probes per axis, generated automatically. Defaults to 12. */
|
|
760
|
+
readonly probeResolution?: number;
|
|
761
|
+
readonly intensity?: number;
|
|
762
|
+
/** Directions per updated probe, 16–256. Defaults to 64. */
|
|
763
|
+
readonly raysPerProbe?: number;
|
|
764
|
+
/** Fraction of probes updated per frame, (0, 1]. Defaults to 0.25. */
|
|
765
|
+
readonly updateFraction?: number;
|
|
766
|
+
/** Previous contribution on each probe update, [0, 0.99]. Defaults to 0.85. */
|
|
767
|
+
readonly historyWeight?: number;
|
|
768
|
+
readonly maxSteps?: number;
|
|
769
|
+
/** @deprecated Surface capture now spreads three GPU raster views over three frames. */
|
|
770
|
+
readonly geometryBudgetMs?: number;
|
|
771
|
+
/** Additional environment radiance. Zero by default to avoid doubling IBL. */
|
|
772
|
+
readonly skyColor?: readonly [number, number, number];
|
|
773
|
+
/** Optional distant volumes. Omitted/false preserves the single-volume GPU path. Immutable. */
|
|
774
|
+
readonly cascades?: false | SDFGICascadeOptions;
|
|
775
|
+
}
|
|
776
|
+
interface SDFGICascadeOptions {
|
|
777
|
+
/** Total volume count, including the near volume. Defaults to 2. */
|
|
778
|
+
readonly count?: 2 | 3;
|
|
779
|
+
/** Extent multiplier between volumes. Defaults to 2. */
|
|
780
|
+
readonly extentScale?: number;
|
|
781
|
+
/** Distant-volume voxel resolution. Defaults to 32. */
|
|
782
|
+
readonly resolution?: 32 | 64 | 128;
|
|
783
|
+
/** Distant probes per axis. Defaults to 8. */
|
|
784
|
+
readonly probeResolution?: number;
|
|
785
|
+
/** Maximum directions per distant probe. Defaults to 32. */
|
|
786
|
+
readonly raysPerProbe?: number;
|
|
787
|
+
/** Maximum fraction of distant probes updated per scheduled frame. Defaults to 0.125. */
|
|
788
|
+
readonly updateFraction?: number;
|
|
789
|
+
/** Steady-state update interval. Defaults to 4 frames; doubles for the third volume. */
|
|
790
|
+
readonly updateInterval?: number;
|
|
791
|
+
}
|
|
792
|
+
interface SDFGIStats {
|
|
793
|
+
/** Total volumes, including the near volume. */
|
|
794
|
+
cascadeCount: number;
|
|
795
|
+
/** Near-volume readiness and geometry diagnostics; building includes distant volumes. */
|
|
796
|
+
ready: boolean;
|
|
797
|
+
building: boolean;
|
|
798
|
+
triangles: number;
|
|
799
|
+
occupiedCells: number;
|
|
800
|
+
/** Last frame's CPU surface-capture preparation, separate from GPU frame profiling. */
|
|
801
|
+
geometryCpuMs: number;
|
|
802
|
+
geometryBuildMs: number;
|
|
803
|
+
gpuBytes: number;
|
|
804
|
+
updatedProbes: number;
|
|
818
805
|
}
|
|
819
|
-
declare const VOLUMETRIC_FOG_PRESETS: Readonly<Record<VolumetricFogQuality, VolumetricFogOptions>>;
|
|
820
806
|
/**
|
|
821
|
-
*
|
|
822
|
-
*
|
|
823
|
-
*
|
|
807
|
+
* Experimental one-bounce SDF GI with optional distant cascades. Geometry is static between
|
|
808
|
+
* invalidations; directional/point/spot lights update on each volume's cadence. No surface readbacks,
|
|
809
|
+
* hardware ray tracing, screen-space history, or manually authored probes.
|
|
824
810
|
*/
|
|
825
|
-
declare class
|
|
826
|
-
private
|
|
827
|
-
readonly
|
|
828
|
-
readonly
|
|
829
|
-
readonly
|
|
830
|
-
readonly
|
|
831
|
-
private readonly
|
|
832
|
-
private readonly
|
|
833
|
-
private
|
|
834
|
-
private
|
|
835
|
-
private
|
|
836
|
-
private
|
|
811
|
+
declare class SDFGI {
|
|
812
|
+
private readonly device;
|
|
813
|
+
readonly stats: SDFGIStats;
|
|
814
|
+
private readonly resolution;
|
|
815
|
+
private readonly extent;
|
|
816
|
+
private readonly probeResolution;
|
|
817
|
+
private readonly cellSize;
|
|
818
|
+
private readonly spacing;
|
|
819
|
+
private enabled;
|
|
820
|
+
private intensity;
|
|
821
|
+
private rays;
|
|
822
|
+
private fraction;
|
|
823
|
+
private history;
|
|
824
|
+
private steps;
|
|
825
|
+
private readonly sky;
|
|
826
|
+
private readonly buffers;
|
|
827
|
+
private readonly uniformData;
|
|
828
|
+
private readonly floats;
|
|
829
|
+
private readonly integers;
|
|
830
|
+
private readonly header;
|
|
837
831
|
private readonly lightData;
|
|
838
|
-
private readonly
|
|
839
|
-
private readonly
|
|
840
|
-
private readonly
|
|
841
|
-
private readonly
|
|
842
|
-
private
|
|
843
|
-
private
|
|
844
|
-
private
|
|
845
|
-
private
|
|
846
|
-
private
|
|
847
|
-
private
|
|
848
|
-
private
|
|
849
|
-
private
|
|
850
|
-
private
|
|
851
|
-
private readonly
|
|
852
|
-
private readonly
|
|
853
|
-
private readonly
|
|
854
|
-
private readonly
|
|
855
|
-
private readonly
|
|
856
|
-
private readonly
|
|
857
|
-
private readonly
|
|
858
|
-
private readonly
|
|
859
|
-
private
|
|
860
|
-
private
|
|
861
|
-
private
|
|
862
|
-
private
|
|
863
|
-
private
|
|
864
|
-
private
|
|
865
|
-
private
|
|
866
|
-
private
|
|
867
|
-
private
|
|
868
|
-
private
|
|
869
|
-
private
|
|
832
|
+
private readonly field;
|
|
833
|
+
private readonly fieldBankBytes;
|
|
834
|
+
private readonly snapshot;
|
|
835
|
+
private readonly snapshotBinding;
|
|
836
|
+
private populatedProbes;
|
|
837
|
+
private blend;
|
|
838
|
+
private previousValid;
|
|
839
|
+
private lastUpdateSeconds;
|
|
840
|
+
private readonly params;
|
|
841
|
+
private readonly surfaces;
|
|
842
|
+
private readonly seed;
|
|
843
|
+
private readonly seedBinding;
|
|
844
|
+
private readonly jumps;
|
|
845
|
+
private readonly inject;
|
|
846
|
+
private readonly injectBinding;
|
|
847
|
+
private readonly probes;
|
|
848
|
+
private readonly probeBinding;
|
|
849
|
+
private readonly lightBuffer;
|
|
850
|
+
private readonly surfaceConfig;
|
|
851
|
+
private readonly surfaceAccum;
|
|
852
|
+
private readonly surfaceStatistics;
|
|
853
|
+
private readonly surfaceConfigData;
|
|
854
|
+
private readonly resolveSurface;
|
|
855
|
+
private readonly resolveSurfaceBinding;
|
|
856
|
+
private readonly configuredSurfaces;
|
|
857
|
+
private surfaceCapture;
|
|
858
|
+
private captureAxis;
|
|
859
|
+
private pendingTriangleCount;
|
|
860
|
+
private pendingCounts;
|
|
861
|
+
private readonly configured;
|
|
862
|
+
private readonly watched;
|
|
863
|
+
private readonly lights;
|
|
864
|
+
private readonly staticDrawRoots;
|
|
870
865
|
private cascadeDirectionalLights;
|
|
871
|
-
private
|
|
872
|
-
private
|
|
873
|
-
private
|
|
874
|
-
private
|
|
875
|
-
private
|
|
876
|
-
private
|
|
877
|
-
private
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
866
|
+
private scene;
|
|
867
|
+
private grid;
|
|
868
|
+
private pending;
|
|
869
|
+
private dirty;
|
|
870
|
+
private upload;
|
|
871
|
+
private frame;
|
|
872
|
+
private probeOffset;
|
|
873
|
+
private disposed;
|
|
874
|
+
private readonly cameraPosition;
|
|
875
|
+
private readonly sourcePosition;
|
|
876
|
+
private readonly targetPosition;
|
|
877
|
+
private readonly direction;
|
|
878
|
+
private buildMs;
|
|
879
|
+
private lightCount;
|
|
880
|
+
private readonly distantVolumes;
|
|
881
|
+
private cascadeFrame;
|
|
882
|
+
constructor(device: GPUDevice, options?: SDFGIOptions);
|
|
883
|
+
/** Structural settings (extent/resolutions/cascades) require recreating the backend. */
|
|
884
|
+
setOptions(options: SDFGIOptions): void;
|
|
885
|
+
/** Call after moving/changing static geometry or editing its materials. */
|
|
886
|
+
invalidate(): void;
|
|
887
|
+
get surfaceResolution(): number;
|
|
888
|
+
setSurfaceCapture(capture: SDFGISurfaceCaptureDriver): void;
|
|
889
|
+
/** Install independent capture targets/material bindings for every enabled volume. */
|
|
890
|
+
setSurfaceCaptureFactory(factory: (volume: SDFGI) => SDFGISurfaceCaptureDriver): void;
|
|
891
|
+
configureSurfaceMaterial(material: WGSLShaderMaterial): void;
|
|
892
|
+
/** Track static draw-set registration changes that require recapturing. */
|
|
893
|
+
registerStaticDrawRoot(root: Object3D): () => void;
|
|
894
|
+
/** Cascaded shadow lights represent one sun, including lights outside the scene. */
|
|
886
895
|
setCascadedDirectionalLights(lights: readonly DirectionalLight[]): void;
|
|
887
|
-
|
|
888
|
-
private
|
|
889
|
-
private
|
|
890
|
-
|
|
891
|
-
|
|
896
|
+
configureMaterial(material: WGSLShaderMaterial): void;
|
|
897
|
+
private readonly added;
|
|
898
|
+
private readonly removed;
|
|
899
|
+
private hasStaticGeometry;
|
|
900
|
+
private watch;
|
|
901
|
+
private unwatch;
|
|
902
|
+
/** Capture one all-layer projection per frame, before main-view extraction. */
|
|
903
|
+
prepare(scene: Scene, camera: Camera): void;
|
|
904
|
+
private updateLights;
|
|
905
|
+
/** Returns whether the update pass was added, for dependent material passes. */
|
|
906
|
+
addPasses(graph: FrameGraphBuilder): boolean;
|
|
907
|
+
/** Records the same production path used by the renderer; useful to GPU checks. */
|
|
908
|
+
encode(encoder: GPUCommandEncoder, timeSeconds?: number): void;
|
|
909
|
+
private encodeVolume;
|
|
910
|
+
/** One tiny asynchronous diagnostics read per rebuild; never read surface data to the CPU. */
|
|
911
|
+
private readSurfaceCount;
|
|
912
|
+
private dispatch;
|
|
892
913
|
dispose(): void;
|
|
893
|
-
private executeFroxels;
|
|
894
|
-
private collectSceneData;
|
|
895
|
-
/** Selects the nearest local lights without depending on camera rotation. */
|
|
896
|
-
private selectClosestLights;
|
|
897
|
-
private writeVolume;
|
|
898
|
-
private writeDirectional;
|
|
899
|
-
private writeExtractedDirectional;
|
|
900
|
-
private writePoint;
|
|
901
|
-
private writeExtractedPoint;
|
|
902
|
-
private writeSpot;
|
|
903
|
-
private writeExtractedSpot;
|
|
904
|
-
private getResources;
|
|
905
914
|
}
|
|
906
|
-
/** WGSL appended to a material that calls rendererApplyVolumetricFog(). */
|
|
907
|
-
declare const VOLUMETRIC_FOG_MATERIAL_WGSL = "\nfn rendererSampleIntegratedFogRaw(uv: vec2<f32>, normalizedDepth: f32) -> vec4<f32> {\n let sliceCount = f32(textureDimensions(volumetricFogTexture).z);\n let slicePosition = clamp(normalizedDepth, 0.0, 1.0) * sliceCount;\n let textureZ = clamp((slicePosition - 0.5) / sliceCount, 0.0, 1.0);\n let integrated = textureSampleLevel(volumetricFogTexture, volumetricFogSampler, vec3<f32>(uv, textureZ), 0.0);\n // The volume stores slice endpoints but has no texel for the near-plane\n // identity value. Reconstruct that missing endpoint for the first slice.\n return mix(vec4<f32>(0.0, 0.0, 0.0, 1.0), integrated, min(slicePosition, 1.0));\n}\nfn rendererSampleIntegratedFog(uv: vec2<f32>, normalizedDepth: f32) -> vec4<f32> {\n return rendererSampleIntegratedFogRaw(uv, normalizedDepth);\n}\nfn rendererApplyVolumetricFog(color: vec4<f32>, worldPosition: vec3<f32>) -> vec4<f32> {\n let clip = rendererCamera.viewProj * vec4<f32>(worldPosition, 1.0);\n let uv = clip.xy / clip.w * vec2<f32>(0.5, -0.5) + vec2<f32>(0.5);\n let distance = length(worldPosition - rendererCamera.cameraPosition.xyz);\n let bounds = textureSampleLevel(volumetricFogBoundsTexture, volumetricFogBoundsSampler, uv, 0.0).rg;\n let z = clamp(log(max(distance, bounds.x) / bounds.x) / max(log(bounds.y / bounds.x), 0.0001), 0.0, 1.0);\n let fog = rendererSampleIntegratedFog(uv, z);\n return vec4<f32>(fog.rgb + color.rgb * fog.a, color.a);\n}";
|
|
908
|
-
/** Adds the froxel input; append VOLUMETRIC_FOG_MATERIAL_WGSL and call its helper in fsMain. */
|
|
909
|
-
declare function configureVolumetricFogMaterial(material: WGSLShaderMaterial, resource?: string, boundsResource?: string): WGSLShaderMaterial;
|
|
910
915
|
|
|
911
916
|
interface WebGpuPMREMGeneratorContext {
|
|
912
917
|
device: GPUDevice;
|
|
@@ -1189,6 +1194,8 @@ declare class WebGpuRenderer {
|
|
|
1189
1194
|
private opaqueSortSampleTotal;
|
|
1190
1195
|
private sortOpaqueDraws;
|
|
1191
1196
|
constructor(options: RendererOptions);
|
|
1197
|
+
/** Re-run material adapters after enabling renderer features between extractions. */
|
|
1198
|
+
invalidateMaterialResolution(): void;
|
|
1192
1199
|
private resolveMaterial;
|
|
1193
1200
|
private resolveLineMaterial;
|
|
1194
1201
|
private resolveLineBasicMaterial;
|
|
@@ -1269,8 +1276,10 @@ declare class WebGpuRenderer {
|
|
|
1269
1276
|
* upload buffers, but never advances gameplay motion/visibility history.
|
|
1270
1277
|
*/
|
|
1271
1278
|
createSceneCapture(canvas: HTMLCanvasElement | null, width?: number, height?: number): RendererSceneCapture;
|
|
1279
|
+
private prepareSceneCaptureAsync;
|
|
1272
1280
|
compile(scene: Scene, camera: PerspectiveCamera | OrthographicCamera): void;
|
|
1273
1281
|
compileAsync(scene: Scene, camera: PerspectiveCamera | OrthographicCamera): Promise<void>;
|
|
1282
|
+
prepareSceneGeometryAsync(scene: Scene, camera: Camera): Promise<void>;
|
|
1274
1283
|
/**
|
|
1275
1284
|
* Creates a Three-compatible CubeUV PMREM generator. Its output is a
|
|
1276
1285
|
* HalfFloat Texture and can be assigned directly to a graph material's
|
|
@@ -1291,6 +1300,8 @@ declare class WebGpuRenderer {
|
|
|
1291
1300
|
private disposeStaticDrawSetResource;
|
|
1292
1301
|
private renderFrame;
|
|
1293
1302
|
private recordPresentationOverlay;
|
|
1303
|
+
/** Present application UI without changing scene extraction, pipelines or temporal history. */
|
|
1304
|
+
renderPresentationOnly(): void;
|
|
1294
1305
|
destroy(): void;
|
|
1295
1306
|
private createStaticPipelines;
|
|
1296
1307
|
private ensureTransmissionSnapshot;
|
|
@@ -1497,6 +1508,203 @@ declare class WebGpuRenderer {
|
|
|
1497
1508
|
private writeShadowCameraBuffer;
|
|
1498
1509
|
}
|
|
1499
1510
|
|
|
1511
|
+
/** All-layer rasterization: depth testing and writes are disabled on the variants. */
|
|
1512
|
+
declare class SDFGISurfaceCapture implements SDFGISurfaceCaptureDriver {
|
|
1513
|
+
private readonly camera;
|
|
1514
|
+
private readonly center;
|
|
1515
|
+
private readonly target;
|
|
1516
|
+
private readonly options;
|
|
1517
|
+
private readonly variants;
|
|
1518
|
+
constructor(renderer: Pick<WebGpuRenderer, "createSceneCapture">, gi: SDFGI, resolve: (source: WGSLShaderMaterial) => WGSLShaderMaterial | null, isolateMaterials?: boolean);
|
|
1519
|
+
capture(scene: Scene, volume: SDFGIVolume, axis: number): number;
|
|
1520
|
+
dispose(): void;
|
|
1521
|
+
}
|
|
1522
|
+
|
|
1523
|
+
type VolumetricFogScatteringMode = "volumetric" | "lightShaft";
|
|
1524
|
+
type VolumetricFogQuality = "low" | "medium" | "high";
|
|
1525
|
+
interface VolumetricFogTemporalOptions {
|
|
1526
|
+
/** Previous-frame contribution for stable fog. Defaults to 0.92. */
|
|
1527
|
+
readonly historyWeight?: number;
|
|
1528
|
+
/** Relative view-depth difference that rejects history. Defaults to 0.04. */
|
|
1529
|
+
readonly depthRejection?: number;
|
|
1530
|
+
/** Clamp reprojected history to the current 3x3 fog neighborhood. */
|
|
1531
|
+
readonly neighborhoodClamp?: boolean;
|
|
1532
|
+
}
|
|
1533
|
+
/** Kept structurally compatible with Hology's legacy FogVolumeSettings. */
|
|
1534
|
+
interface VolumetricFogVolumeSettings {
|
|
1535
|
+
readonly object: Object3D;
|
|
1536
|
+
baseDensity: number;
|
|
1537
|
+
heightFalloff: number;
|
|
1538
|
+
heightOffset: number;
|
|
1539
|
+
startDistance?: number;
|
|
1540
|
+
scatteringDistribution: number;
|
|
1541
|
+
albedo: Color;
|
|
1542
|
+
emissive: Color;
|
|
1543
|
+
ambientIntensity?: number;
|
|
1544
|
+
scatteringMode: VolumetricFogScatteringMode;
|
|
1545
|
+
}
|
|
1546
|
+
/** Scene marker compatible with legacy objects through `isFogVolumeObject`. */
|
|
1547
|
+
declare class VolumetricFogVolumeObject extends Object3D {
|
|
1548
|
+
readonly volume: VolumetricFogVolumeSettings;
|
|
1549
|
+
readonly isFogVolumeObject = true;
|
|
1550
|
+
constructor(volume: VolumetricFogVolumeSettings);
|
|
1551
|
+
}
|
|
1552
|
+
interface VolumetricFogOptions {
|
|
1553
|
+
readonly enabled?: boolean;
|
|
1554
|
+
/** Froxel width/height in pixels. 8 is a good desktop default. */
|
|
1555
|
+
readonly froxelPixelSize?: number;
|
|
1556
|
+
/** Logarithmically distributed depth slices. */
|
|
1557
|
+
readonly depthSlices?: number;
|
|
1558
|
+
/** Deterministic integration samples within each depth slice. */
|
|
1559
|
+
readonly integrationSubsteps?: 1 | 2 | 4;
|
|
1560
|
+
readonly maxDistance?: number;
|
|
1561
|
+
readonly targetPrefix?: string;
|
|
1562
|
+
readonly maxVolumes?: number;
|
|
1563
|
+
readonly maxDirectionalLights?: number;
|
|
1564
|
+
readonly maxPointLights?: number;
|
|
1565
|
+
readonly maxSpotLights?: number;
|
|
1566
|
+
/** Used when the scene has no ambient or hemisphere light. */
|
|
1567
|
+
readonly ambientColor?: Color;
|
|
1568
|
+
/** Rotating shadow taps per froxel. 4 removes block patterns at modest cost. */
|
|
1569
|
+
readonly shadowFilterTaps?: 1 | 4;
|
|
1570
|
+
/** Temporal sub-froxel jitter accumulated by fog history and optionally TAA. */
|
|
1571
|
+
readonly temporalJitter?: boolean;
|
|
1572
|
+
/**
|
|
1573
|
+
* Fog-local temporal reconstruction of the 3D scattering/extinction grid.
|
|
1574
|
+
* This history is accumulated before front-to-back integration.
|
|
1575
|
+
*/
|
|
1576
|
+
readonly temporal?: false | VolumetricFogTemporalOptions;
|
|
1577
|
+
/** Stable per-ray depth jitter. Breaks slice bands without animated noise. */
|
|
1578
|
+
readonly spatialJitter?: boolean;
|
|
1579
|
+
/** Final fog-gradient dithering in approximate 8-bit code values. */
|
|
1580
|
+
readonly fogDitherStrength?: number;
|
|
1581
|
+
/** Artistic multiplier for direct in-scattering. Does not change extinction. */
|
|
1582
|
+
readonly scatteringIntensity?: number;
|
|
1583
|
+
/** Optional separable, depth-aware blur of the resolved fog buffer. */
|
|
1584
|
+
readonly blur?: false | VolumetricFogBlurOptions;
|
|
1585
|
+
}
|
|
1586
|
+
interface VolumetricFogBlurOptions {
|
|
1587
|
+
/** Resolution relative to the render target. Defaults to 0.5. */
|
|
1588
|
+
readonly scale?: number;
|
|
1589
|
+
/** Kernel radius per direction, from 1 to 12. Defaults to 5. */
|
|
1590
|
+
readonly radius?: number;
|
|
1591
|
+
/** Log-depth rejection sigma. 0.05 allows about 5% relative depth variation. */
|
|
1592
|
+
readonly depthSigma?: number;
|
|
1593
|
+
/** Gaussian spatial sigma in fog-buffer pixels. */
|
|
1594
|
+
readonly spatialSigma?: number;
|
|
1595
|
+
/** Preserve depth discontinuities during the final upsample. Costs extra depth reads. Defaults to true. */
|
|
1596
|
+
readonly depthAwareUpsample?: boolean;
|
|
1597
|
+
}
|
|
1598
|
+
interface VolumetricFogInputs {
|
|
1599
|
+
readonly sceneColor: FrameGraphTextureHandle;
|
|
1600
|
+
readonly depth: FrameGraphTextureHandle;
|
|
1601
|
+
/** Raw unjittered previous-to-current UV velocity from the opaque MRT. */
|
|
1602
|
+
readonly velocity?: FrameGraphTextureHandle;
|
|
1603
|
+
/** Explicit volumes can be mixed with compatible scene marker objects. */
|
|
1604
|
+
readonly volumes?: readonly VolumetricFogVolumeSettings[];
|
|
1605
|
+
/**
|
|
1606
|
+
* Fog marker objects already collected by the renderer. When supplied, this
|
|
1607
|
+
* list is authoritative and avoids traversing the scene for volumes.
|
|
1608
|
+
*/
|
|
1609
|
+
readonly volumeObjects?: readonly Object3D[];
|
|
1610
|
+
/**
|
|
1611
|
+
* Lights already collected by the renderer. When supplied, this list is
|
|
1612
|
+
* authoritative and avoids traversing the scene for lights.
|
|
1613
|
+
*/
|
|
1614
|
+
readonly lights?: RendererExtractedLightState;
|
|
1615
|
+
}
|
|
1616
|
+
declare const VOLUMETRIC_FOG_PRESETS: Readonly<Record<VolumetricFogQuality, VolumetricFogOptions>>;
|
|
1617
|
+
/**
|
|
1618
|
+
* Compute-driven froxel fog. Add it after opaque rendering and before the late
|
|
1619
|
+
* transparent pass. Existing content can use the composite output; transparent
|
|
1620
|
+
* materials can sample `integratedVolume` with configureVolumetricFogMaterial.
|
|
1621
|
+
*/
|
|
1622
|
+
declare class VolumetricFogEffect {
|
|
1623
|
+
private scene;
|
|
1624
|
+
readonly integratedVolume: FrameGraphTextureHandle;
|
|
1625
|
+
readonly columnDepthBounds: FrameGraphTextureHandle;
|
|
1626
|
+
readonly scatteringHistoryA: FrameGraphTextureHandle;
|
|
1627
|
+
readonly scatteringHistoryB: FrameGraphTextureHandle;
|
|
1628
|
+
private readonly options;
|
|
1629
|
+
private readonly resources;
|
|
1630
|
+
private readonly uniformStorage;
|
|
1631
|
+
private readonly uniforms;
|
|
1632
|
+
private readonly uniformIntegers;
|
|
1633
|
+
private readonly volumeData;
|
|
1634
|
+
private readonly lightData;
|
|
1635
|
+
private readonly selectedPointIndices;
|
|
1636
|
+
private readonly selectedPointScores;
|
|
1637
|
+
private readonly selectedSpotIndices;
|
|
1638
|
+
private readonly selectedSpotScores;
|
|
1639
|
+
private readonly collectedVolumes;
|
|
1640
|
+
private readonly collectedDirectionals;
|
|
1641
|
+
private readonly collectedPoints;
|
|
1642
|
+
private readonly collectedSpots;
|
|
1643
|
+
private volumeCount;
|
|
1644
|
+
private directionalCount;
|
|
1645
|
+
private pointCount;
|
|
1646
|
+
private spotCount;
|
|
1647
|
+
private collectionCamera;
|
|
1648
|
+
private readonly collectVolumeObject;
|
|
1649
|
+
private readonly collectLightObject;
|
|
1650
|
+
private readonly executeFroxelPass;
|
|
1651
|
+
private readonly projectionInverse;
|
|
1652
|
+
private readonly viewProjectionInverse;
|
|
1653
|
+
private readonly previousTemporalViewProjection;
|
|
1654
|
+
private readonly previousFroxelViewProjection;
|
|
1655
|
+
private readonly previousFroxelCameraPosition;
|
|
1656
|
+
private previousFroxelNear;
|
|
1657
|
+
private previousFroxelFar;
|
|
1658
|
+
private previousFroxelWidth;
|
|
1659
|
+
private previousFroxelHeight;
|
|
1660
|
+
private froxelHistoryValid;
|
|
1661
|
+
private froxelHistoryWriteIndex;
|
|
1662
|
+
private activeHistoryRead;
|
|
1663
|
+
private activeHistoryWrite;
|
|
1664
|
+
private explicitVolumes;
|
|
1665
|
+
private volumeObjects;
|
|
1666
|
+
private extractedLights;
|
|
1667
|
+
private cascadeDirectionalLights;
|
|
1668
|
+
private compositePass;
|
|
1669
|
+
private readonly blurPassCache;
|
|
1670
|
+
private readonly temporalPassCache;
|
|
1671
|
+
private temporalWriteIndex;
|
|
1672
|
+
private temporalHistoryValid;
|
|
1673
|
+
private activeLastFrame;
|
|
1674
|
+
private frameIndex;
|
|
1675
|
+
constructor(scene?: Scene, options?: VolumetricFogOptions);
|
|
1676
|
+
/** Updates the scene traversed for compatible volumes and lights. */
|
|
1677
|
+
setScene(scene: Scene): void;
|
|
1678
|
+
get enabled(): boolean;
|
|
1679
|
+
setOptions(options: VolumetricFogOptions): void;
|
|
1680
|
+
applyPreset(quality: VolumetricFogQuality): void;
|
|
1681
|
+
reset(): void;
|
|
1682
|
+
/** Keeps CSM light data in the same near-to-far order as shadow-array layers. */
|
|
1683
|
+
setCascadedDirectionalLights(lights: readonly DirectionalLight[]): void;
|
|
1684
|
+
addPasses(graph: FrameGraphBuilder, inputs: VolumetricFogInputs): FrameGraphTextureHandle;
|
|
1685
|
+
private addBlurredComposite;
|
|
1686
|
+
private addTemporalPass;
|
|
1687
|
+
consumeTemporalHistoryValid(): boolean;
|
|
1688
|
+
updateTemporalUniforms(uniforms: Float32Array, currentViewProjection: Matrix4, currentViewProjectionInverse: Matrix4, temporal: Required<VolumetricFogTemporalOptions>, context: RendererCustomPassContext): void;
|
|
1689
|
+
dispose(): void;
|
|
1690
|
+
private executeFroxels;
|
|
1691
|
+
private collectSceneData;
|
|
1692
|
+
/** Selects the nearest local lights without depending on camera rotation. */
|
|
1693
|
+
private selectClosestLights;
|
|
1694
|
+
private writeVolume;
|
|
1695
|
+
private writeDirectional;
|
|
1696
|
+
private writeExtractedDirectional;
|
|
1697
|
+
private writePoint;
|
|
1698
|
+
private writeExtractedPoint;
|
|
1699
|
+
private writeSpot;
|
|
1700
|
+
private writeExtractedSpot;
|
|
1701
|
+
private getResources;
|
|
1702
|
+
}
|
|
1703
|
+
/** WGSL appended to a material that calls rendererApplyVolumetricFog(). */
|
|
1704
|
+
declare const VOLUMETRIC_FOG_MATERIAL_WGSL = "\nfn rendererSampleIntegratedFogRaw(uv: vec2<f32>, normalizedDepth: f32) -> vec4<f32> {\n let sliceCount = f32(textureDimensions(volumetricFogTexture).z);\n let slicePosition = clamp(normalizedDepth, 0.0, 1.0) * sliceCount;\n let textureZ = clamp((slicePosition - 0.5) / sliceCount, 0.0, 1.0);\n let integrated = textureSampleLevel(volumetricFogTexture, volumetricFogSampler, vec3<f32>(uv, textureZ), 0.0);\n // The volume stores slice endpoints but has no texel for the near-plane\n // identity value. Reconstruct that missing endpoint for the first slice.\n return mix(vec4<f32>(0.0, 0.0, 0.0, 1.0), integrated, min(slicePosition, 1.0));\n}\nfn rendererSampleIntegratedFog(uv: vec2<f32>, normalizedDepth: f32) -> vec4<f32> {\n return rendererSampleIntegratedFogRaw(uv, normalizedDepth);\n}\nfn rendererApplyVolumetricFog(color: vec4<f32>, worldPosition: vec3<f32>) -> vec4<f32> {\n let clip = rendererCamera.viewProj * vec4<f32>(worldPosition, 1.0);\n let uv = clip.xy / clip.w * vec2<f32>(0.5, -0.5) + vec2<f32>(0.5);\n let distance = length(worldPosition - rendererCamera.cameraPosition.xyz);\n let bounds = textureSampleLevel(volumetricFogBoundsTexture, volumetricFogBoundsSampler, uv, 0.0).rg;\n let z = clamp(log(max(distance, bounds.x) / bounds.x) / max(log(bounds.y / bounds.x), 0.0001), 0.0, 1.0);\n let fog = rendererSampleIntegratedFog(uv, z);\n return vec4<f32>(fog.rgb + color.rgb * fog.a, color.a);\n}";
|
|
1705
|
+
/** Adds the froxel input; append VOLUMETRIC_FOG_MATERIAL_WGSL and call its helper in fsMain. */
|
|
1706
|
+
declare function configureVolumetricFogMaterial(material: WGSLShaderMaterial, resource?: string, boundsResource?: string): WGSLShaderMaterial;
|
|
1707
|
+
|
|
1500
1708
|
interface GTAODenoiseOptions {
|
|
1501
1709
|
readonly radius?: number;
|
|
1502
1710
|
/** Fixed bilateral tap count. Normalized to 4, 8, 12, or 16. */
|
|
@@ -1570,6 +1778,10 @@ declare class GTAOEffect {
|
|
|
1570
1778
|
}
|
|
1571
1779
|
|
|
1572
1780
|
interface SSROptions {
|
|
1781
|
+
/** Enables fullscreen SSR. Independent of surfaceSteps. */
|
|
1782
|
+
readonly enabled?: boolean;
|
|
1783
|
+
/** Ray budget for late surface shaders. Zero disables surface SSR. Defaults to 0. */
|
|
1784
|
+
readonly surfaceSteps?: number;
|
|
1573
1785
|
/** Resolution relative to the main render target. Defaults to 0.5. */
|
|
1574
1786
|
readonly resolutionScale?: number;
|
|
1575
1787
|
/** Maximum ray length in view-space units. */
|
|
@@ -1602,6 +1814,10 @@ declare class SSREffect {
|
|
|
1602
1814
|
private readonly options;
|
|
1603
1815
|
private readonly passes;
|
|
1604
1816
|
constructor(options?: SSROptions);
|
|
1817
|
+
get enabled(): boolean;
|
|
1818
|
+
/** Independent ray budget for reflections traced inside late surface shaders. */
|
|
1819
|
+
get surfaceRaySteps(): number;
|
|
1820
|
+
setOptions(options: SSROptions): void;
|
|
1605
1821
|
addPasses(graph: FrameGraphBuilder, inputs: SSRInputs): FrameGraphTextureHandle;
|
|
1606
1822
|
}
|
|
1607
1823
|
|
|
@@ -1943,4 +2159,4 @@ declare class OutlineEffect {
|
|
|
1943
2159
|
dispose(): void;
|
|
1944
2160
|
}
|
|
1945
2161
|
|
|
1946
|
-
export { type BloomCompositeOptions, BloomEffect, type BloomOptions, ColorGradingEffect, type ColorGradingOptions, type ColorGradingRange, type ColorGradingVector, type CompiledNodeFullscreenShader, ComputeKernel, type ComputeKernelDescriptor, DEFAULT_WGSL_VERTEX_ATTRIBUTES, DepthOfFieldEffect, type DepthOfFieldOptions, type DetailCullingSettings, type DirectionalShadowUpdateOptions, type FXAACompositeOptions, FXAAEffect, type FXAAOptions, FrameGraphBuilder, type FrameGraphFullscreenPassDescriptor, type FrameGraphMaterialPassDescriptor, type FrameGraphNodeFullscreenPassDescriptor, type FrameGraphPassDescriptor, type FrameGraphTextureHandle, type GTAOCompositeOptions, type GTAODenoiseOptions, GTAOEffect, type GTAOInputs, type GTAOOptions, type GTAOQuality, type GTAOTemporalOptions, GTAO_PRESETS, MOTION_BLUR_PRESETS, MotionBlurEffect, MotionBlurMode, type MotionBlurOptions, type MotionBlurOverride, type MotionBlurOverrideHandle, type MotionBlurQuality, OutlineEffect, type OutlineInputs, type OutlineInstanceSelection, type OutlineOptions, type PipelineDiagnosticOrigin, RenderGraph, type RenderGraphContext, type RenderGraphExecutionObserver, type RenderGraphPass, type RendererColorTargetDescriptor, type RendererCustomPassContext, type RendererCustomPassDescriptor, type RendererFrameProfile, type RendererGraphBuilder, type RendererGraphBuilderContext, type RendererMaterialPassDescriptor, type RendererMaterialResolver, type RendererOptions, type RendererPassProfile, type RendererSceneCapture, type RendererSceneCaptureOptions, type RendererSceneCapturePostProcessContext, type RendererShadowMapDebugInfo, type RendererShadowMapDebugTextureInfo, type RendererTextureTargetDescriptor, type RendererVisibilityProfile, SCENE_COLOR_FORMAT, type SMAACompositeOptions, type SMAAEdgeDetectionMode, SMAAEffect, type SMAAOptions, type SMAAQualityPreset, SSREffect, type SSRInputs, type SSROptions, type ShaderDefineValue, type ShaderDefines, type StaticDrawSet, type StaticDrawSetOptions, type StaticSpatialObject, TemporalAAEffect, type TemporalAAOptions, type ToneMappingMode, type ToonOutlineParameters, type UniformDefinition, type UniformType, type UniformValue, VOLUMETRIC_FOG_MATERIAL_WGSL, VOLUMETRIC_FOG_PRESETS, type VolumetricFogBlurOptions, VolumetricFogEffect, type VolumetricFogInputs, type VolumetricFogOptions, type VolumetricFogQuality, type VolumetricFogScatteringMode, type VolumetricFogTemporalOptions, VolumetricFogVolumeObject, type VolumetricFogVolumeSettings, type WGSLGraphTextureDimension, type WGSLGraphTextureInput, type WGSLSceneTextureSemantic, WGSLShaderMaterial, type WGSLShaderMaterialParameters, type WGSLShaderMaterialUniform, type WGSLShaderMaterialUniformInput, type WGSLStorageBufferBinding, type WGSLStorageBufferVisibility, type WGSLSupportedVertexFormat, type WGSLVertexAttributeBinding, WebGpuPMREMGenerator, WebGpuRenderer, buildParticleLightingShaderHeader, configureVolumetricFogMaterial, createComputePipelineAsync, createRenderPipelineAsync, registerPipelineDiagnosticOrigin, resolveDetailCulling, setObjectDetailCulling, setPipelineDiagnosticLoading };
|
|
2162
|
+
export { type BloomCompositeOptions, BloomEffect, type BloomOptions, ColorGradingEffect, type ColorGradingOptions, type ColorGradingRange, type ColorGradingVector, type CompiledNodeFullscreenShader, ComputeKernel, type ComputeKernelDescriptor, DEFAULT_WGSL_VERTEX_ATTRIBUTES, DepthOfFieldEffect, type DepthOfFieldOptions, type DetailCullingSettings, type DirectionalShadowUpdateOptions, type FXAACompositeOptions, FXAAEffect, type FXAAOptions, FrameGraphBuilder, type FrameGraphFullscreenPassDescriptor, type FrameGraphMaterialPassDescriptor, type FrameGraphNodeFullscreenPassDescriptor, type FrameGraphPassDescriptor, type FrameGraphTextureHandle, type GTAOCompositeOptions, type GTAODenoiseOptions, GTAOEffect, type GTAOInputs, type GTAOOptions, type GTAOQuality, type GTAOTemporalOptions, GTAO_PRESETS, MOTION_BLUR_PRESETS, MotionBlurEffect, MotionBlurMode, type MotionBlurOptions, type MotionBlurOverride, type MotionBlurOverrideHandle, type MotionBlurQuality, OutlineEffect, type OutlineInputs, type OutlineInstanceSelection, type OutlineOptions, type PipelineDiagnosticOrigin, RenderGraph, type RenderGraphContext, type RenderGraphExecutionObserver, type RenderGraphPass, type RendererColorTargetDescriptor, type RendererCustomPassContext, type RendererCustomPassDescriptor, type RendererFrameProfile, type RendererGraphBuilder, type RendererGraphBuilderContext, type RendererMaterialPassDescriptor, type RendererMaterialResolver, type RendererOptions, type RendererPassProfile, type RendererSceneCapture, type RendererSceneCaptureOptions, type RendererSceneCapturePostProcessContext, type RendererShadowMapDebugInfo, type RendererShadowMapDebugTextureInfo, type RendererTextureTargetDescriptor, type RendererVisibilityProfile, SCENE_COLOR_FORMAT, SDFGI, type SDFGICascadeOptions, type SDFGIOptions, type SDFGIStats, SDFGISurfaceCapture, type SDFGISurfaceCaptureDriver, type SDFGIVolume, type SMAACompositeOptions, type SMAAEdgeDetectionMode, SMAAEffect, type SMAAOptions, type SMAAQualityPreset, SSREffect, type SSRInputs, type SSROptions, type ShaderDefineValue, type ShaderDefines, type StaticDrawSet, type StaticDrawSetOptions, type StaticSpatialObject, TemporalAAEffect, type TemporalAAOptions, type ToneMappingMode, type ToonOutlineParameters, type UniformDefinition, type UniformType, type UniformValue, VOLUMETRIC_FOG_MATERIAL_WGSL, VOLUMETRIC_FOG_PRESETS, type VolumetricFogBlurOptions, VolumetricFogEffect, type VolumetricFogInputs, type VolumetricFogOptions, type VolumetricFogQuality, type VolumetricFogScatteringMode, type VolumetricFogTemporalOptions, VolumetricFogVolumeObject, type VolumetricFogVolumeSettings, type WGSLGraphTextureDimension, type WGSLGraphTextureInput, type WGSLSceneTextureSemantic, WGSLShaderMaterial, type WGSLShaderMaterialParameters, type WGSLShaderMaterialUniform, type WGSLShaderMaterialUniformInput, type WGSLStorageBufferBinding, type WGSLStorageBufferVisibility, type WGSLSupportedVertexFormat, type WGSLVertexAttributeBinding, WebGpuPMREMGenerator, WebGpuRenderer, buildParticleLightingShaderHeader, configureVolumetricFogMaterial, createComputePipelineAsync, createRenderPipelineAsync, registerPipelineDiagnosticOrigin, resolveDetailCulling, setObjectDetailCulling, setPipelineDiagnosticLoading };
|