@types/three 0.169.0 → 0.170.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.
Files changed (147) hide show
  1. three/README.md +1 -1
  2. three/examples/jsm/Addons.d.ts +3 -3
  3. three/examples/jsm/animation/MMDAnimationHelper.d.ts +4 -0
  4. three/examples/jsm/animation/MMDPhysics.d.ts +4 -0
  5. three/examples/jsm/controls/ArcballControls.d.ts +1 -1
  6. three/examples/jsm/controls/TransformControls.d.ts +44 -0
  7. three/examples/jsm/csm/CSMFrustum.d.ts +8 -2
  8. three/examples/jsm/csm/CSMHelper.d.ts +2 -1
  9. three/examples/jsm/csm/CSMShadowNode.d.ts +46 -0
  10. three/examples/jsm/curves/NURBSCurve.d.ts +12 -1
  11. three/examples/jsm/exporters/GLTFExporter.d.ts +20 -3
  12. three/examples/jsm/exporters/MMDExporter.d.ts +4 -0
  13. three/examples/jsm/exporters/USDZExporter.d.ts +4 -0
  14. three/examples/jsm/geometries/DecalGeometry.d.ts +9 -3
  15. three/examples/jsm/geometries/TeapotGeometry.d.ts +2 -2
  16. three/examples/jsm/helpers/TextureHelperGPU.d.ts +10 -0
  17. three/examples/jsm/lighting/TiledLighting.d.ts +10 -0
  18. three/examples/jsm/lines/Wireframe.d.ts +5 -2
  19. three/examples/jsm/lines/WireframeGeometry2.d.ts +1 -1
  20. three/examples/jsm/lines/webgpu/Wireframe.d.ts +13 -0
  21. three/examples/jsm/loaders/EXRLoader.d.ts +2 -2
  22. three/examples/jsm/loaders/GLTFLoader.d.ts +1 -2
  23. three/examples/jsm/loaders/KTX2Loader.d.ts +1 -0
  24. three/examples/jsm/loaders/LDrawLoader.d.ts +10 -0
  25. three/examples/jsm/loaders/MMDLoader.d.ts +4 -0
  26. three/examples/jsm/materials/LDrawConditionalLineMaterial.d.ts +9 -0
  27. three/examples/jsm/materials/LDrawConditionalLineNodeMaterial.d.ts +9 -0
  28. three/examples/jsm/materials/MeshGouraudMaterial.d.ts +0 -1
  29. three/examples/jsm/math/ColorSpaces.d.ts +11 -0
  30. three/examples/jsm/misc/ProgressiveLightMap.d.ts +8 -10
  31. three/examples/jsm/misc/ProgressiveLightMapGPU.d.ts +27 -0
  32. three/examples/jsm/renderers/SVGRenderer.d.ts +2 -2
  33. three/{src/nodes → examples/jsm/tsl}/display/AfterImageNode.d.ts +1 -5
  34. three/{src/nodes → examples/jsm/tsl}/display/AnaglyphPassNode.d.ts +2 -3
  35. three/{src/nodes → examples/jsm/tsl}/display/AnamorphicNode.d.ts +2 -4
  36. three/examples/jsm/tsl/display/BleachBypass.d.ts +3 -0
  37. three/{src/nodes → examples/jsm/tsl}/display/BloomNode.d.ts +1 -5
  38. three/{src/nodes → examples/jsm/tsl}/display/DenoiseNode.d.ts +2 -6
  39. three/{src/nodes → examples/jsm/tsl}/display/DepthOfFieldNode.d.ts +1 -5
  40. three/{src/nodes → examples/jsm/tsl}/display/DotScreenNode.d.ts +2 -5
  41. three/{src/nodes → examples/jsm/tsl}/display/FXAANode.d.ts +1 -3
  42. three/{src/nodes → examples/jsm/tsl}/display/FilmNode.d.ts +1 -3
  43. three/{src/nodes → examples/jsm/tsl}/display/GTAONode.d.ts +2 -8
  44. three/{src/nodes → examples/jsm/tsl}/display/GaussianBlurNode.d.ts +13 -5
  45. three/examples/jsm/tsl/display/LensflareNode.d.ts +35 -0
  46. three/{src/nodes → examples/jsm/tsl}/display/Lut3DNode.d.ts +2 -6
  47. three/{src/nodes → examples/jsm/tsl}/display/MotionBlur.d.ts +1 -2
  48. three/examples/jsm/tsl/display/OutlineNode.d.ts +32 -0
  49. three/{src/nodes → examples/jsm/tsl}/display/ParallaxBarrierPassNode.d.ts +2 -3
  50. three/{src/nodes → examples/jsm/tsl}/display/PixelationPassNode.d.ts +2 -5
  51. three/{src/nodes → examples/jsm/tsl}/display/RGBShiftNode.d.ts +1 -4
  52. three/examples/jsm/tsl/display/SMAANode.d.ts +17 -0
  53. three/{src/nodes → examples/jsm/tsl}/display/SSAAPassNode.d.ts +2 -7
  54. three/examples/jsm/tsl/display/SSRNode.d.ts +38 -0
  55. three/examples/jsm/tsl/display/Sepia.d.ts +3 -0
  56. three/{src/nodes → examples/jsm/tsl}/display/SobelOperatorNode.d.ts +1 -3
  57. three/{src/nodes → examples/jsm/tsl}/display/StereoCompositePassNode.d.ts +2 -5
  58. three/{src/nodes → examples/jsm/tsl}/display/StereoPassNode.d.ts +2 -5
  59. three/examples/jsm/tsl/display/TRAAPassNode.d.ts +15 -0
  60. three/{src/nodes → examples/jsm/tsl}/display/TransitionNode.d.ts +1 -5
  61. three/examples/jsm/tsl/display/hashBlur.d.ts +7 -0
  62. three/examples/jsm/tsl/lighting/TiledLightsNode.d.ts +22 -0
  63. three/package.json +4 -3
  64. three/src/Three.WebGPU.Nodes.d.ts +5 -1
  65. three/src/Three.WebGPU.d.ts +5 -1
  66. three/src/Three.d.ts +2 -7
  67. three/src/constants.d.ts +1 -9
  68. three/src/core/BufferGeometry.d.ts +13 -2
  69. three/src/core/RenderTarget.d.ts +1 -2
  70. three/src/loaders/FileLoader.d.ts +3 -3
  71. three/src/materials/LineBasicMaterial.d.ts +0 -5
  72. three/src/materials/LineDashedMaterial.d.ts +0 -5
  73. three/src/materials/Material.d.ts +4 -6
  74. three/src/materials/MeshBasicMaterial.d.ts +0 -5
  75. three/src/materials/MeshDepthMaterial.d.ts +0 -5
  76. three/src/materials/MeshDistanceMaterial.d.ts +0 -5
  77. three/src/materials/MeshLambertMaterial.d.ts +0 -5
  78. three/src/materials/MeshMatcapMaterial.d.ts +0 -5
  79. three/src/materials/MeshNormalMaterial.d.ts +0 -5
  80. three/src/materials/MeshPhongMaterial.d.ts +0 -5
  81. three/src/materials/MeshPhysicalMaterial.d.ts +0 -5
  82. three/src/materials/MeshStandardMaterial.d.ts +0 -5
  83. three/src/materials/MeshToonMaterial.d.ts +0 -5
  84. three/src/materials/PointsMaterial.d.ts +0 -5
  85. three/src/materials/RawShaderMaterial.d.ts +0 -2
  86. three/src/materials/ShaderMaterial.d.ts +0 -5
  87. three/src/materials/ShadowMaterial.d.ts +0 -5
  88. three/src/materials/SpriteMaterial.d.ts +0 -5
  89. three/src/materials/nodes/MeshNormalNodeMaterial.d.ts +2 -2
  90. three/src/materials/nodes/NodeMaterial.d.ts +2 -0
  91. three/src/materials/nodes/NodeMaterials.d.ts +19 -16
  92. three/src/materials/nodes/manager/NodeMaterialObserver.d.ts +15 -0
  93. three/src/math/Color.d.ts +39 -22
  94. three/src/math/ColorManagement.d.ts +24 -24
  95. three/src/math/Vector4.d.ts +2 -0
  96. three/src/nodes/Nodes.d.ts +1 -21
  97. three/src/nodes/TSL.d.ts +6 -24
  98. three/src/nodes/accessors/Camera.d.ts +0 -1
  99. three/src/nodes/accessors/SceneNode.d.ts +2 -0
  100. three/src/nodes/accessors/UniformArrayNode.d.ts +2 -2
  101. three/src/nodes/accessors/VelocityNode.d.ts +4 -0
  102. three/src/nodes/code/ScriptableNode.d.ts +1 -1
  103. three/src/nodes/core/StackNode.d.ts +4 -4
  104. three/src/nodes/core/VarNode.d.ts +12 -1
  105. three/src/nodes/display/ColorAdjustment.d.ts +29 -0
  106. three/src/nodes/display/ColorSpaceFunctions.d.ts +2 -2
  107. three/src/nodes/display/ColorSpaceNode.d.ts +14 -8
  108. three/src/nodes/display/RenderOutputNode.d.ts +4 -4
  109. three/src/nodes/display/ViewportDepthNode.d.ts +2 -0
  110. three/src/nodes/functions/material/getAlphaHashThreshold.d.ts +6 -0
  111. three/src/nodes/functions/material/getParallaxCorrectNormal.d.ts +10 -0
  112. three/src/nodes/gpgpu/ComputeNode.d.ts +5 -0
  113. three/src/nodes/lighting/LightsNode.d.ts +7 -2
  114. three/src/nodes/lighting/PointLightNode.d.ts +11 -1
  115. three/src/nodes/lighting/ShadowNode.d.ts +12 -0
  116. three/src/nodes/utils/Discard.d.ts +1 -1
  117. three/src/nodes/utils/Oscillators.d.ts +7 -0
  118. three/src/nodes/utils/PostProcessingUtils.d.ts +45 -0
  119. three/src/nodes/utils/ReflectorNode.d.ts +17 -4
  120. three/src/nodes/utils/Timer.d.ts +21 -0
  121. three/src/objects/BatchedMesh.d.ts +47 -2
  122. three/src/renderers/WebGLRenderer.d.ts +22 -11
  123. three/src/renderers/common/Constants.d.ts +2 -1
  124. three/src/renderers/common/Geometries.d.ts +1 -0
  125. three/src/renderers/common/IndirectStorageBufferAttribute.d.ts +10 -0
  126. three/src/renderers/common/Lighting.d.ts +15 -0
  127. three/src/renderers/common/PostProcessingUtils.d.ts +66 -0
  128. three/src/renderers/common/RenderList.d.ts +5 -2
  129. three/src/renderers/common/RenderLists.d.ts +3 -1
  130. three/src/renderers/common/RenderObject.d.ts +1 -0
  131. three/src/renderers/common/Renderer.d.ts +35 -9
  132. three/src/renderers/common/extras/PMREMGenerator.d.ts +5 -1
  133. three/src/renderers/common/nodes/NodeLibrary.d.ts +0 -7
  134. three/src/renderers/webgl/WebGLPrograms.d.ts +3 -10
  135. three/src/renderers/webgl/WebGLState.d.ts +13 -10
  136. three/src/renderers/webgl/WebGLUtils.d.ts +2 -2
  137. three/src/textures/CompressedTexture.d.ts +1 -2
  138. three/src/textures/CubeTexture.d.ts +1 -2
  139. three/src/textures/DataTexture.d.ts +1 -2
  140. three/src/textures/Texture.d.ts +3 -4
  141. three/examples/jsm/cameras/CinematicCamera.d.ts +0 -34
  142. three/src/nodes/display/BleachBypass.d.ts +0 -4
  143. three/src/nodes/display/Sepia.d.ts +0 -4
  144. three/src/nodes/utils/OscNode.d.ts +0 -25
  145. three/src/nodes/utils/TimerNode.d.ts +0 -25
  146. /three/examples/jsm/utils/{TextureUtils.d.ts → WebGLTextureUtils.d.ts} +0 -0
  147. /three/examples/jsm/utils/{TextureUtilsGPU.d.ts → WebGPUTextureUtils.d.ts} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { Camera } from "../cameras/Camera.js";
2
- import { ColorSpace, CullFace, ShadowMapType, ToneMapping, WebGLCoordinateSystem } from "../constants.js";
2
+ import { CullFace, ShadowMapType, ToneMapping, WebGLCoordinateSystem } from "../constants.js";
3
3
  import { TypedArray } from "../core/BufferAttribute.js";
4
4
  import { BufferGeometry } from "../core/BufferGeometry.js";
5
5
  import { Object3D } from "../core/Object3D.js";
@@ -74,7 +74,7 @@ export interface WebGLRendererParameters extends WebGLCapabilitiesParameters {
74
74
  /**
75
75
  * Can be "high-performance", "low-power" or "default"
76
76
  */
77
- powerPreference?: string | undefined;
77
+ powerPreference?: WebGLPowerPreference | undefined;
78
78
 
79
79
  /**
80
80
  * default is true.
@@ -183,8 +183,8 @@ export class WebGLRenderer implements Renderer {
183
183
  * {@link SRGBColorSpace} and {@link LinearSRGBColorSpace}.
184
184
  * @default THREE.SRGBColorSpace.
185
185
  */
186
- get outputColorSpace(): ColorSpace;
187
- set outputColorSpace(colorSpace: ColorSpace);
186
+ get outputColorSpace(): string;
187
+ set outputColorSpace(colorSpace: string);
188
188
 
189
189
  get coordinateSystem(): typeof WebGLCoordinateSystem;
190
190
 
@@ -431,26 +431,37 @@ export class WebGLRenderer implements Renderer {
431
431
  copyFramebufferToTexture(texture: Texture, position?: Vector2 | null, level?: number): void;
432
432
 
433
433
  /**
434
- * Copies the pixels of a texture in the bounds `srcRegion` in the destination texture starting from the given
435
- * position.
434
+ * Copies the pixels of a texture in the bounds [srcRegion]{@link Box3} in the destination texture starting from the
435
+ * given position. 2D Texture, 3D Textures, or a mix of the two can be used as source and destination texture
436
+ * arguments for copying between layers of 3d textures
437
+ *
438
+ * The `depthTexture` and `texture` property of render targets are supported as well.
439
+ *
440
+ * When using render target textures as `srcTexture` and `dstTexture`, you must make sure both render targets are
441
+ * initialized e.g. via {@link .initRenderTarget}().
436
442
  *
437
443
  * @param srcTexture Specifies the source texture.
438
444
  * @param dstTexture Specifies the destination texture.
439
445
  * @param srcRegion Specifies the bounds
440
446
  * @param dstPosition Specifies the pixel offset into the dstTexture where the copy will occur.
441
- * @param level Specifies the destination mipmap level of the texture.
447
+ * @param dstLevel Specifies the destination mipmap level of the texture.
442
448
  */
443
449
  copyTextureToTexture(
444
450
  srcTexture: Texture,
445
451
  dstTexture: Texture,
446
- srcRegion?: Box2 | null,
447
- dstPosition?: Vector2 | null,
448
- level?: number,
452
+ srcRegion?: Box2 | Box3 | null,
453
+ dstPosition?: Vector2 | Vector3 | null,
454
+ dstLevel?: number,
449
455
  ): void;
450
456
 
451
457
  /**
458
+ * @deprecated Use "copyTextureToTexture" instead.
459
+ *
452
460
  * Copies the pixels of a texture in the bounds `srcRegion` in the destination texture starting from the given
453
- * position.
461
+ * position. The `depthTexture` and `texture` property of 3D render targets are supported as well.
462
+ *
463
+ * When using render target textures as `srcTexture` and `dstTexture`, you must make sure both render targets are
464
+ * intitialized e.g. via {@link .initRenderTarget}().
454
465
  *
455
466
  * @param srcTexture Specifies the source texture.
456
467
  * @param dstTexture Specifies the destination texture.
@@ -1,7 +1,8 @@
1
1
  export declare const AttributeType: {
2
2
  readonly VERTEX: 1;
3
3
  readonly INDEX: 2;
4
- readonly STORAGE: 4;
4
+ readonly STORAGE: 3;
5
+ readonly INDIRECT: 4;
5
6
  };
6
7
  export type AttributeType = (typeof AttributeType)[keyof typeof AttributeType];
7
8
  export declare const GPU_CHUNK_BYTES = 16;
@@ -26,6 +26,7 @@ declare class Geometries extends DataMap<{
26
26
  initGeometry(renderObject: RenderObject): void;
27
27
  updateAttributes(renderObject: RenderObject): void;
28
28
  updateAttribute(attribute: BufferAttribute | InterleavedBufferAttribute, type: AttributeType): void;
29
+ getIndirect(renderObject: RenderObject): import("./IndirectStorageBufferAttribute.js").default | null;
29
30
  getIndex(renderObject: RenderObject): BufferAttribute | null;
30
31
  }
31
32
  export default Geometries;
@@ -0,0 +1,10 @@
1
+ import { TypedArray } from "../../core/BufferAttribute.js";
2
+ import StorageBufferAttribute from "./StorageBufferAttribute.js";
3
+
4
+ declare class IndirectStorageBufferAttribute extends StorageBufferAttribute {
5
+ readonly isIndirectStorageBufferAttribute: true;
6
+
7
+ constructor(array: TypedArray, itemSize: number);
8
+ }
9
+
10
+ export default IndirectStorageBufferAttribute;
@@ -0,0 +1,15 @@
1
+ import { Camera } from "../../cameras/Camera.js";
2
+ import { Object3D } from "../../core/Object3D.js";
3
+ import { Light } from "../../lights/Light.js";
4
+ import LightsNode from "../../nodes/lighting/LightsNode.js";
5
+ import ChainMap from "./ChainMap.js";
6
+
7
+ declare class Lighting extends ChainMap<[Object3D, Camera], LightsNode> {
8
+ constructor();
9
+
10
+ createNode(lights?: Light[]): LightsNode;
11
+
12
+ getNode(scene: Object3D, camera: Camera): LightsNode;
13
+ }
14
+
15
+ export default Lighting;
@@ -0,0 +1,66 @@
1
+ import { Camera } from "../../cameras/Camera.js";
2
+ import { ToneMapping } from "../../constants.js";
3
+ import { BufferGeometry, GeometryGroup } from "../../core/BufferGeometry.js";
4
+ import { Object3D } from "../../core/Object3D.js";
5
+ import { RenderTarget } from "../../core/RenderTarget.js";
6
+ import { Material } from "../../materials/Material.js";
7
+ import { Color } from "../../math/Color.js";
8
+ import MRTNode from "../../nodes/core/MRTNode.js";
9
+ import LightsNode from "../../nodes/lighting/LightsNode.js";
10
+ import { Scene } from "../../scenes/Scene.js";
11
+ import { CubeTexture } from "../../textures/CubeTexture.js";
12
+ import { Texture } from "../../textures/Texture.js";
13
+ import Color4 from "./Color4.js";
14
+ import Renderer from "./Renderer.js";
15
+
16
+ // renderer state
17
+
18
+ export interface RendererState {
19
+ toneMapping: ToneMapping;
20
+ toneMappingExposure: number;
21
+ outputColorSpace: string;
22
+ renderTarget: RenderTarget | null;
23
+ activeCubeFace: number;
24
+ activeMipmapLevel: number;
25
+ renderObjectFunction:
26
+ | ((
27
+ object: Object3D,
28
+ scene: Scene,
29
+ camera: Camera,
30
+ geometry: BufferGeometry,
31
+ material: Material,
32
+ group: GeometryGroup,
33
+ lightsNode: LightsNode,
34
+ ) => void)
35
+ | null;
36
+ pixelRatio: number;
37
+ mrt: MRTNode | null;
38
+ clearColor: Color4;
39
+ clearAlpha: number;
40
+ autoClear: boolean;
41
+ scissorTest: boolean;
42
+ }
43
+
44
+ export function saveRendererState(renderer: Renderer, state?: RendererState): RendererState;
45
+
46
+ export function resetRendererState(renderer: Renderer, state?: RendererState): RendererState;
47
+
48
+ export function restoreRendererState(renderer: Renderer, state: RendererState): void;
49
+
50
+ // renderer and scene state
51
+
52
+ export interface RendererAndSceneState extends RendererState {
53
+ background: Color | Texture | CubeTexture | null;
54
+ backgroundNode: Node | null | undefined;
55
+ overrideMaterial: Material | null;
56
+ }
57
+
58
+ export function saveRendererAndSceneState(
59
+ renderer: RendererState,
60
+ scene: Scene,
61
+ state?: RendererAndSceneState,
62
+ ): RendererAndSceneState;
63
+
64
+ export function resetRendererAndSceneState(renderer: Renderer, state?: RendererAndSceneState): RendererAndSceneState;
65
+
66
+ export function restoreRendererAndSceneState(renderer: Renderer, state: RendererAndSceneState): void;
@@ -5,6 +5,7 @@ import { Light } from "../../lights/Light.js";
5
5
  import { Material } from "../../materials/Material.js";
6
6
  import { LightsNode } from "../../nodes/Nodes.js";
7
7
  import BundleGroup from "./BundleGroup.js";
8
+ import Lighting from "./Lighting.js";
8
9
  export interface Bundle {
9
10
  bundleGroup: BundleGroup;
10
11
  camera: Camera;
@@ -24,12 +25,15 @@ declare class RenderList {
24
25
  renderItems: RenderItem[];
25
26
  renderItemsIndex: number;
26
27
  opaque: RenderItem[];
28
+ transparentDoublePass: RenderItem[];
27
29
  transparent: RenderItem[];
28
30
  bundles: Bundle[];
29
31
  lightsNode: LightsNode;
30
32
  lightsArray: Light[];
33
+ scene: Object3D;
34
+ camera: Camera;
31
35
  occlusionQueryCount: number;
32
- constructor();
36
+ constructor(lighting: Lighting, scene: Object3D, camera: Camera);
33
37
  begin(): this;
34
38
  getNextRenderItem(
35
39
  object: Object3D,
@@ -57,7 +61,6 @@ declare class RenderList {
57
61
  ): void;
58
62
  pushBundle(group: Bundle): void;
59
63
  pushLight(light: Light): void;
60
- getLightsNode(): LightsNode;
61
64
  sort(
62
65
  customOpaqueSort: ((a: RenderItem, b: RenderItem) => number) | null,
63
66
  customTransparentSort: ((a: RenderItem, b: RenderItem) => number) | null,
@@ -1,10 +1,12 @@
1
1
  import { Camera } from "../../cameras/Camera.js";
2
2
  import { Object3D } from "../../core/Object3D.js";
3
3
  import ChainMap from "./ChainMap.js";
4
+ import Lighting from "./Lighting.js";
4
5
  import RenderList from "./RenderList.js";
5
6
  declare class RenderLists {
7
+ lighting: Lighting;
6
8
  lists: ChainMap<readonly [Object3D, Camera], RenderList>;
7
- constructor();
9
+ constructor(lighting: Lighting);
8
10
  get(scene: Object3D, camera: Camera): RenderList;
9
11
  dispose(): void;
10
12
  }
@@ -71,6 +71,7 @@ export default class RenderObject {
71
71
  getMonitor(): NodeMaterialObserver;
72
72
  getBindings(): BindGroup[];
73
73
  getIndex(): BufferAttribute | null;
74
+ getIndirect(): import("./IndirectStorageBufferAttribute.js").default | null;
74
75
  getChainArray(): readonly [
75
76
  Object3D<import("../../core/Object3D.js").Object3DEventMap>,
76
77
  Material,
@@ -1,5 +1,5 @@
1
1
  import { Camera } from "../../cameras/Camera.js";
2
- import { ColorSpace, ShadowMapType, ToneMapping } from "../../constants.js";
2
+ import { ShadowMapType, ToneMapping } from "../../constants.js";
3
3
  import { BufferAttribute } from "../../core/BufferAttribute.js";
4
4
  import { BufferGeometry, GeometryGroup } from "../../core/BufferGeometry.js";
5
5
  import { Object3D } from "../../core/Object3D.js";
@@ -24,6 +24,7 @@ import Bindings from "./Bindings.js";
24
24
  import Color4 from "./Color4.js";
25
25
  import Geometries from "./Geometries.js";
26
26
  import Info from "./Info.js";
27
+ import Lighting from "./Lighting.js";
27
28
  import NodeLibrary from "./nodes/NodeLibrary.js";
28
29
  import Nodes from "./nodes/Nodes.js";
29
30
  import Pipelines from "./Pipelines.js";
@@ -42,9 +43,17 @@ interface Rectangle {
42
43
  z: number;
43
44
  w: number;
44
45
  }
46
+ interface DeviceLostInfo {
47
+ api: "WebGL" | "WebGPU";
48
+ message: string;
49
+ reason: string | null;
50
+ originalEvent: unknown;
51
+ }
45
52
  export interface RendererParameters {
46
53
  logarithmicDepthBuffer?: boolean | undefined;
47
54
  alpha?: boolean | undefined;
55
+ depth?: boolean | undefined;
56
+ stencil?: boolean | undefined;
48
57
  antialias?: boolean | undefined;
49
58
  samples?: number | undefined;
50
59
  getFallback?: ((error: unknown) => Backend) | null | undefined;
@@ -60,7 +69,7 @@ declare class Renderer {
60
69
  autoClearStencil: boolean;
61
70
  alpha: boolean;
62
71
  logarithmicDepthBuffer: boolean;
63
- outputColorSpace: ColorSpace;
72
+ outputColorSpace: string;
64
73
  toneMapping: ToneMapping;
65
74
  toneMappingExposure: number;
66
75
  sortObjects: boolean;
@@ -68,9 +77,8 @@ declare class Renderer {
68
77
  stencil: boolean;
69
78
  clippingPlanes: readonly Plane[];
70
79
  info: Info;
71
- nodes: {
72
- library: NodeLibrary;
73
- };
80
+ library: NodeLibrary;
81
+ lighting: Lighting;
74
82
  _getFallback: ((error: unknown) => Backend) | null;
75
83
  _pixelRatio: number;
76
84
  _width: number;
@@ -134,6 +142,8 @@ declare class Renderer {
134
142
  group: GeometryGroup,
135
143
  passId?: string,
136
144
  ) => void;
145
+ _isDeviceLost: boolean;
146
+ onDeviceLost: (info: DeviceLostInfo) => void;
137
147
  _initialized: boolean;
138
148
  _initPromise: Promise<void> | null;
139
149
  _compilationPromises: Promise<void>[] | null;
@@ -167,12 +177,14 @@ declare class Renderer {
167
177
  get coordinateSystem(): import("../../constants.js").CoordinateSystem;
168
178
  compileAsync(scene: Object3D, camera: Camera, targetScene?: Object3D | null): Promise<void>;
169
179
  renderAsync(scene: Scene, camera: Camera): Promise<void>;
180
+ waitForGPU(): Promise<void>;
170
181
  setMRT(mrt: MRTNode | null): this;
171
182
  getMRT(): MRTNode | null;
183
+ _onDeviceLost(info: DeviceLostInfo): void;
172
184
  _renderBundle(bundle: Bundle, sceneRef: Scene, lightsNode: LightsNode): void;
173
185
  render(scene: Scene, camera: Camera): Promise<void> | undefined;
174
186
  _getFrameBufferTarget(): RenderTarget<Texture> | null;
175
- _renderScene(scene: Scene, camera: Camera, useFrameBufferTarget?: boolean): RenderContext;
187
+ _renderScene(scene: Scene, camera: Camera, useFrameBufferTarget?: boolean): RenderContext | undefined;
176
188
  getMaxAnisotropy(): number;
177
189
  getActiveCubeFace(): number;
178
190
  getActiveMipmapLevel(): number;
@@ -213,7 +225,7 @@ declare class Renderer {
213
225
  clearDepthAsync(): Promise<void>;
214
226
  clearStencilAsync(): Promise<void>;
215
227
  get currentToneMapping(): ToneMapping;
216
- get currentColorSpace(): ColorSpace;
228
+ get currentColorSpace(): string;
217
229
  dispose(): void;
218
230
  setRenderTarget(renderTarget: RenderTarget | null, activeCubeFace?: number, activeMipmapLevel?: number): void;
219
231
  getRenderTarget(): RenderTarget<Texture> | null;
@@ -241,6 +253,7 @@ declare class Renderer {
241
253
  lightsNode: LightsNode,
242
254
  ) => void)
243
255
  | null;
256
+ compute(computeNodes: ComputeNode | ComputeNode[]): Promise<void> | undefined;
244
257
  computeAsync(computeNodes: ComputeNode | ComputeNode[]): Promise<void>;
245
258
  hasFeatureAsync(name: string): Promise<void>;
246
259
  hasFeature(name: string): false | void;
@@ -263,7 +276,20 @@ declare class Renderer {
263
276
  ): Promise<import("../../core/BufferAttribute.js").TypedArray>;
264
277
  _projectObject(object: Object3D, camera: Camera, groupOrder: number, renderList: RenderList): void;
265
278
  _renderBundles(bundles: Bundle[], sceneRef: Scene, lightsNode: LightsNode): void;
266
- _renderObjects(renderList: RenderItem[], camera: Camera, scene: Scene, lightsNode: LightsNode): void;
279
+ _renderTransparents(
280
+ renderList: RenderItem[],
281
+ doublePassList: RenderItem[],
282
+ camera: Camera,
283
+ scene: Scene,
284
+ lightsNode: LightsNode,
285
+ ): void;
286
+ _renderObjects(
287
+ renderList: RenderItem[],
288
+ camera: Camera,
289
+ scene: Scene,
290
+ lightsNode: LightsNode,
291
+ passId?: string | null,
292
+ ): void;
267
293
  renderObject(
268
294
  object: Object3D,
269
295
  scene: Scene,
@@ -272,6 +298,7 @@ declare class Renderer {
272
298
  material: Material,
273
299
  group: GeometryGroup,
274
300
  lightsNode: LightsNode,
301
+ passId?: string | null,
275
302
  ): void;
276
303
  _renderObjectDirect(
277
304
  object: Object3D,
@@ -290,7 +317,6 @@ declare class Renderer {
290
317
  lightsNode: LightsNode,
291
318
  passId?: string,
292
319
  ): void;
293
- get compute(): (computeNodes: ComputeNode | ComputeNode[]) => Promise<void>;
294
320
  get compile(): (scene: Object3D, camera: Camera, targetScene?: Object3D | null) => Promise<void>;
295
321
  }
296
322
  export default Renderer;
@@ -2,8 +2,12 @@ import { RenderTarget } from "../../../core/RenderTarget.js";
2
2
  import { Scene } from "../../../scenes/Scene.js";
3
3
  import Renderer from "../Renderer.js";
4
4
 
5
- export default class PMREMGenerator {
5
+ declare class PMREMGenerator {
6
6
  constructor(renderer: Renderer);
7
7
 
8
8
  fromScene(scene: Scene, sigma?: number, near?: number, far?: number): RenderTarget;
9
+
10
+ dispose(): void;
9
11
  }
12
+
13
+ export default PMREMGenerator;
@@ -3,7 +3,6 @@ import { Light } from "../../../lights/Light.js";
3
3
  import { Material } from "../../../materials/Material.js";
4
4
  import NodeMaterial from "../../../materials/nodes/NodeMaterial.js";
5
5
  import Node from "../../../nodes/core/Node.js";
6
- import { ColorSpaceMethod } from "../../../nodes/display/ColorSpaceNode.js";
7
6
  import AnalyticLightNode from "../../../nodes/lighting/AnalyticLightNode.js";
8
7
  import { NodeRepresentation, ShaderNodeObject } from "../../../nodes/tsl/TSLCore.js";
9
8
  declare class NodeLibrary {
@@ -19,14 +18,8 @@ declare class NodeLibrary {
19
18
  ToneMapping,
20
19
  (color: NodeRepresentation, exposure: NodeRepresentation) => ShaderNodeObject<Node>
21
20
  >;
22
- colorSpaceNodes: Map<ColorSpaceMethod, (color: NodeRepresentation) => ShaderNodeObject<Node>>;
23
21
  constructor();
24
22
  fromMaterial(material: Material): Material | null;
25
- addColorSpace(
26
- colorSpaceNode: (color: NodeRepresentation) => ShaderNodeObject<Node>,
27
- colorSpace: ColorSpaceMethod,
28
- ): void;
29
- getColorSpaceFunction(colorSpace: ColorSpaceMethod): ((color: NodeRepresentation) => ShaderNodeObject<Node>) | null;
30
23
  addToneMapping(
31
24
  toneMappingNode: (color: NodeRepresentation, exposure: NodeRepresentation) => ShaderNodeObject<Node>,
32
25
  toneMapping: ToneMapping,
@@ -1,12 +1,4 @@
1
- import {
2
- ColorSpace,
3
- Combine,
4
- DepthPackingStrategies,
5
- GLSLVersion,
6
- Mapping,
7
- ShadowMapType,
8
- ToneMapping,
9
- } from "../../constants.js";
1
+ import { Combine, DepthPackingStrategies, GLSLVersion, Mapping, ShadowMapType, ToneMapping } from "../../constants.js";
10
2
  import { Object3D } from "../../core/Object3D.js";
11
3
  import { Light } from "../../lights/Light.js";
12
4
  import { Material } from "../../materials/Material.js";
@@ -45,7 +37,7 @@ export interface WebGLProgramParameters {
45
37
  instancingMorph: boolean;
46
38
 
47
39
  supportsVertexTextures: boolean;
48
- outputColorSpace: ColorSpace;
40
+ outputColorSpace: string;
49
41
  alphaToCoverage: boolean;
50
42
 
51
43
  map: boolean;
@@ -190,6 +182,7 @@ export interface WebGLProgramParameters {
190
182
  toneMapping: ToneMapping;
191
183
 
192
184
  decodeVideoTexture: boolean;
185
+ decodeVideoTextureEmissive: boolean;
193
186
 
194
187
  premultipliedAlpha: boolean;
195
188
 
@@ -9,19 +9,20 @@ import {
9
9
  import { Material } from "../../materials/Material.js";
10
10
  import { Vector4 } from "../../math/Vector4.js";
11
11
  import { WebGLRenderTarget } from "../WebGLRenderTarget.js";
12
+ import { WebGLExtensions } from "./WebGLExtensions.js";
12
13
 
13
- export class WebGLColorBuffer {
14
- constructor();
15
-
14
+ declare class ColorBuffer {
16
15
  setMask(colorMask: boolean): void;
17
16
  setLocked(lock: boolean): void;
18
17
  setClear(r: number, g: number, b: number, a: number, premultipliedAlpha: boolean): void;
19
18
  reset(): void;
20
19
  }
21
20
 
22
- export class WebGLDepthBuffer {
21
+ declare class DepthBuffer {
23
22
  constructor();
24
23
 
24
+ setReversed(value: boolean): void;
25
+ getReversed(): boolean;
25
26
  setTest(depthTest: boolean): void;
26
27
  setMask(depthMask: boolean): void;
27
28
  setFunc(depthFunc: DepthModes): void;
@@ -30,7 +31,7 @@ export class WebGLDepthBuffer {
30
31
  reset(): void;
31
32
  }
32
33
 
33
- export class WebGLStencilBuffer {
34
+ declare class StencilBuffer {
34
35
  constructor();
35
36
 
36
37
  setTest(stencilTest: boolean): void;
@@ -42,13 +43,13 @@ export class WebGLStencilBuffer {
42
43
  reset(): void;
43
44
  }
44
45
 
45
- export class WebGLState {
46
- constructor(gl: WebGLRenderingContext);
46
+ declare class WebGLState {
47
+ constructor(gl: WebGLRenderingContext, extensions: WebGLExtensions);
47
48
 
48
49
  buffers: {
49
- color: WebGLColorBuffer;
50
- depth: WebGLDepthBuffer;
51
- stencil: WebGLStencilBuffer;
50
+ color: ColorBuffer;
51
+ depth: DepthBuffer;
52
+ stencil: StencilBuffer;
52
53
  };
53
54
 
54
55
  enable(id: number): void;
@@ -114,3 +115,5 @@ export class WebGLState {
114
115
  viewport(viewport: Vector4): void;
115
116
  reset(): void;
116
117
  }
118
+
119
+ export { WebGLState };
@@ -1,4 +1,4 @@
1
- import { ColorSpace, CompressedPixelFormat, PixelFormat, TextureDataType } from "../../constants.js";
1
+ import { CompressedPixelFormat, PixelFormat, TextureDataType } from "../../constants.js";
2
2
  import { WebGLExtensions } from "./WebGLExtensions.js";
3
3
 
4
4
  export class WebGLUtils {
@@ -7,5 +7,5 @@ export class WebGLUtils {
7
7
  extensions: WebGLExtensions,
8
8
  );
9
9
 
10
- convert(p: PixelFormat | CompressedPixelFormat | TextureDataType, colorSpace?: ColorSpace): number | null;
10
+ convert(p: PixelFormat | CompressedPixelFormat | TextureDataType, colorSpace?: string): number | null;
11
11
  }
@@ -1,5 +1,4 @@
1
1
  import {
2
- ColorSpace,
3
2
  CompressedPixelFormat,
4
3
  MagnificationTextureFilter,
5
4
  Mapping,
@@ -51,7 +50,7 @@ export class CompressedTexture extends Texture {
51
50
  magFilter?: MagnificationTextureFilter,
52
51
  minFilter?: MinificationTextureFilter,
53
52
  anisotropy?: number,
54
- colorSpace?: ColorSpace,
53
+ colorSpace?: string,
55
54
  );
56
55
 
57
56
  /**
@@ -1,5 +1,4 @@
1
1
  import {
2
- ColorSpace,
3
2
  CubeTextureMapping,
4
3
  MagnificationTextureFilter,
5
4
  MinificationTextureFilter,
@@ -52,7 +51,7 @@ export class CubeTexture extends Texture {
52
51
  format?: PixelFormat,
53
52
  type?: TextureDataType,
54
53
  anisotropy?: number,
55
- colorSpace?: ColorSpace,
54
+ colorSpace?: string,
56
55
  );
57
56
 
58
57
  /**
@@ -1,5 +1,4 @@
1
1
  import {
2
- ColorSpace,
3
2
  MagnificationTextureFilter,
4
3
  Mapping,
5
4
  MinificationTextureFilter,
@@ -64,7 +63,7 @@ export class DataTexture extends Texture {
64
63
  magFilter?: MagnificationTextureFilter,
65
64
  minFilter?: MinificationTextureFilter,
66
65
  anisotropy?: number,
67
- colorSpace?: ColorSpace,
66
+ colorSpace?: string,
68
67
  );
69
68
 
70
69
  /**
@@ -1,7 +1,6 @@
1
1
  import {
2
2
  AnyMapping,
3
3
  AnyPixelFormat,
4
- ColorSpace,
5
4
  MagnificationTextureFilter,
6
5
  Mapping,
7
6
  MinificationTextureFilter,
@@ -38,7 +37,7 @@ export interface TextureJSON {
38
37
  format: AnyPixelFormat;
39
38
  internalFormat: PixelFormatGPU | null;
40
39
  type: TextureDataType;
41
- colorSpace: ColorSpace;
40
+ colorSpace: string;
42
41
 
43
42
  minFilter: MinificationTextureFilter;
44
43
  magFilter: MagnificationTextureFilter;
@@ -99,7 +98,7 @@ export class Texture extends EventDispatcher<{ dispose: {} }> {
99
98
  format?: PixelFormat,
100
99
  type?: TextureDataType,
101
100
  anisotropy?: number,
102
- colorSpace?: ColorSpace,
101
+ colorSpace?: string,
103
102
  );
104
103
 
105
104
  /**
@@ -369,7 +368,7 @@ export class Texture extends EventDispatcher<{ dispose: {} }> {
369
368
  * @see {@link THREE.TextureDataType}
370
369
  * @defaultValue {@link THREE.NoColorSpace}
371
370
  */
372
- colorSpace: ColorSpace;
371
+ colorSpace: string;
373
372
 
374
373
  /**
375
374
  * Indicates whether a texture belongs to a render target or not
@@ -1,34 +0,0 @@
1
- import { OrthographicCamera, PerspectiveCamera, Scene, ShaderMaterial, WebGLRenderer, WebGLRenderTarget } from "three";
2
-
3
- import { BokehShaderUniforms } from "../shaders/BokehShader2.js";
4
-
5
- export class CinematicCamera extends PerspectiveCamera {
6
- constructor(fov: number, aspect: number, near: number, far: number);
7
-
8
- postprocessing: {
9
- enabled: boolean;
10
- scene: Scene;
11
- camera: OrthographicCamera;
12
- rtTextureDepth: WebGLRenderTarget;
13
- rtTextureColor: WebGLRenderTarget;
14
- bokeh_uniforms: BokehShaderUniforms;
15
- };
16
- shaderSettings: {
17
- rings: number;
18
- samples: number;
19
- };
20
- materialDepth: ShaderMaterial;
21
- coc: number;
22
- aperture: number;
23
- fNumber: number;
24
- hyperFocal: number;
25
- filmGauge: number;
26
-
27
- linearize(depth: number): number;
28
- smoothstep(near: number, far: number, depth: number): number;
29
- saturate(x: number): number;
30
- focusAt(focusDistance: number): void;
31
- initPostProcessing(): void;
32
- renderCinematic(scene: Scene, renderer: WebGLRenderer): void;
33
- setLens(focalLength: number, frameHeight?: number, fNumber?: number, coc?: number): void;
34
- }
@@ -1,4 +0,0 @@
1
- import Node from "../core/Node.js";
2
- import { NodeRepresentation, ShaderNodeObject } from "../tsl/TSLCore.js";
3
-
4
- export const bleach: (color: NodeRepresentation, opacity?: number) => ShaderNodeObject<Node>;
@@ -1,4 +0,0 @@
1
- import Node from "../core/Node.js";
2
- import { NodeRepresentation, ShaderNodeObject } from "../tsl/TSLCore.js";
3
-
4
- export const sepia: (color: NodeRepresentation) => ShaderNodeObject<Node>;
@@ -1,25 +0,0 @@
1
- import Node from "../core/Node.js";
2
- import { NodeRepresentation, ShaderNodeObject } from "../tsl/TSLCore.js";
3
-
4
- export type OscNodeMethod =
5
- | typeof OscNode.SINE
6
- | typeof OscNode.SQUARE
7
- | typeof OscNode.TRIANGLE
8
- | typeof OscNode.SAWTOOTH;
9
-
10
- export default class OscNode extends Node {
11
- static SINE: "sine";
12
- static SQUARE: "square";
13
- static TRIANGLE: "triangle";
14
- static SAWTOOTH: "sawtooth";
15
-
16
- method: OscNodeMethod;
17
- timeNode: Node;
18
-
19
- constructor(method: OscNodeMethod, timeNode?: Node);
20
- }
21
-
22
- export const oscSine: (timeNode?: NodeRepresentation) => ShaderNodeObject<OscNode>;
23
- export const oscSquare: (timeNode?: NodeRepresentation) => ShaderNodeObject<OscNode>;
24
- export const oscTriangle: (timeNode?: NodeRepresentation) => ShaderNodeObject<OscNode>;
25
- export const oscSawtooth: (timeNode?: NodeRepresentation) => ShaderNodeObject<OscNode>;