@types/three 0.177.0 → 0.178.1

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 (178) hide show
  1. three/README.md +1 -1
  2. three/examples/jsm/capabilities/WebGL.d.ts +0 -11
  3. three/examples/jsm/controls/TransformControls.d.ts +16 -1
  4. three/examples/jsm/helpers/TextureHelper.d.ts +2 -2
  5. three/examples/jsm/helpers/TextureHelperGPU.d.ts +2 -2
  6. three/examples/jsm/loaders/SVGLoader.d.ts +1 -1
  7. three/examples/jsm/physics/RapierPhysics.d.ts +1 -0
  8. three/examples/jsm/transpiler/AST.d.ts +77 -26
  9. three/examples/jsm/transpiler/TSLEncoder.d.ts +9 -3
  10. three/examples/jsm/tsl/display/AnamorphicNode.d.ts +4 -4
  11. three/examples/jsm/tsl/display/BleachBypass.d.ts +2 -2
  12. three/examples/jsm/tsl/display/BloomNode.d.ts +2 -2
  13. three/examples/jsm/tsl/display/ChromaticAberrationNode.d.ts +20 -0
  14. three/examples/jsm/tsl/display/DenoiseNode.d.ts +4 -4
  15. three/examples/jsm/tsl/display/DepthOfFieldNode.d.ts +6 -6
  16. three/examples/jsm/tsl/display/DotScreenNode.d.ts +2 -2
  17. three/examples/jsm/tsl/display/FXAANode.d.ts +3 -3
  18. three/examples/jsm/tsl/display/FilmNode.d.ts +4 -4
  19. three/examples/jsm/tsl/display/GTAONode.d.ts +3 -3
  20. three/examples/jsm/tsl/display/GaussianBlurNode.d.ts +5 -5
  21. three/examples/jsm/tsl/display/LensflareNode.d.ts +8 -8
  22. three/examples/jsm/tsl/display/Lut3DNode.d.ts +4 -4
  23. three/examples/jsm/tsl/display/MotionBlur.d.ts +4 -4
  24. three/examples/jsm/tsl/display/OutlineNode.d.ts +3 -3
  25. three/examples/jsm/tsl/display/RGBShiftNode.d.ts +3 -3
  26. three/examples/jsm/tsl/display/SMAANode.d.ts +3 -3
  27. three/examples/jsm/tsl/display/SSRNode.d.ts +5 -5
  28. three/examples/jsm/tsl/display/Sepia.d.ts +2 -2
  29. three/examples/jsm/tsl/display/SobelOperatorNode.d.ts +3 -3
  30. three/examples/jsm/tsl/display/TransitionNode.d.ts +4 -4
  31. three/examples/jsm/tsl/display/hashBlur.d.ts +5 -5
  32. three/examples/jsm/tsl/lighting/TiledLightsNode.d.ts +5 -5
  33. three/package.json +2 -2
  34. three/src/Three.TSL.d.ts +9 -16
  35. three/src/Three.WebGPU.d.ts +2 -0
  36. three/src/constants.d.ts +13 -5
  37. three/src/core/BufferGeometry.d.ts +6 -1
  38. three/src/core/GLBufferAttribute.d.ts +18 -1
  39. three/src/helpers/AxesHelper.d.ts +3 -1
  40. three/src/materials/LineBasicMaterial.d.ts +66 -34
  41. three/src/materials/LineDashedMaterial.d.ts +41 -21
  42. three/src/materials/Material.d.ts +408 -398
  43. three/src/materials/MeshBasicMaterial.d.ts +101 -62
  44. three/src/materials/MeshDepthMaterial.d.ts +71 -32
  45. three/src/materials/MeshDistanceMaterial.d.ts +65 -29
  46. three/src/materials/MeshLambertMaterial.d.ts +179 -103
  47. three/src/materials/MeshMatcapMaterial.d.ts +97 -55
  48. three/src/materials/MeshNormalMaterial.d.ts +76 -41
  49. three/src/materials/MeshPhongMaterial.d.ts +164 -100
  50. three/src/materials/MeshPhysicalMaterial.d.ts +171 -111
  51. three/src/materials/MeshStandardMaterial.d.ts +178 -91
  52. three/src/materials/MeshToonMaterial.d.ts +130 -81
  53. three/src/materials/PointsMaterial.d.ts +77 -30
  54. three/src/materials/RawShaderMaterial.d.ts +12 -7
  55. three/src/materials/ShaderMaterial.d.ts +186 -98
  56. three/src/materials/ShadowMaterial.d.ts +49 -23
  57. three/src/materials/SpriteMaterial.d.ts +62 -33
  58. three/src/materials/nodes/Line2NodeMaterial.d.ts +87 -40
  59. three/src/materials/nodes/LineBasicNodeMaterial.d.ts +35 -16
  60. three/src/materials/nodes/LineDashedNodeMaterial.d.ts +75 -20
  61. three/src/materials/nodes/MeshBasicNodeMaterial.d.ts +49 -30
  62. three/src/materials/nodes/MeshLambertNodeMaterial.d.ts +49 -42
  63. three/src/materials/nodes/MeshMatcapNodeMaterial.d.ts +38 -26
  64. three/src/materials/nodes/MeshNormalNodeMaterial.d.ts +36 -22
  65. three/src/materials/nodes/MeshPhongNodeMaterial.d.ts +68 -48
  66. three/src/materials/nodes/MeshPhysicalNodeMaterial.d.ts +240 -65
  67. three/src/materials/nodes/MeshSSSNodeMaterial.d.ts +99 -3
  68. three/src/materials/nodes/MeshStandardNodeMaterial.d.ts +83 -47
  69. three/src/materials/nodes/MeshToonNodeMaterial.d.ts +42 -36
  70. three/src/materials/nodes/NodeMaterial.d.ts +417 -56
  71. three/src/materials/nodes/NodeMaterials.d.ts +3 -2
  72. three/src/materials/nodes/PointsNodeMaterial.d.ts +31 -7
  73. three/src/materials/nodes/ShadowNodeMaterial.d.ts +38 -11
  74. three/src/materials/nodes/SpriteNodeMaterial.d.ts +68 -20
  75. three/src/materials/nodes/VolumeNodeMaterial.d.ts +50 -14
  76. three/src/math/Color.d.ts +1 -1
  77. three/src/nodes/Nodes.d.ts +1 -3
  78. three/src/nodes/TSL.d.ts +4 -3
  79. three/src/nodes/accessors/AccessorsUtils.d.ts +3 -3
  80. three/src/nodes/accessors/Bitangent.d.ts +0 -2
  81. three/src/nodes/accessors/CubeTextureNode.d.ts +7 -7
  82. three/src/nodes/accessors/Normal.d.ts +19 -5
  83. three/src/nodes/accessors/ReferenceBaseNode.d.ts +1 -1
  84. three/src/nodes/accessors/StorageBufferNode.d.ts +3 -2
  85. three/src/nodes/accessors/StorageTextureNode.d.ts +5 -5
  86. three/src/nodes/accessors/Tangent.d.ts +0 -2
  87. three/src/nodes/accessors/TangentUtils.d.ts +22 -0
  88. three/src/nodes/accessors/Texture3DNode.d.ts +5 -4
  89. three/src/nodes/accessors/TextureBicubic.d.ts +4 -2
  90. three/src/nodes/accessors/TextureNode.d.ts +16 -16
  91. three/src/nodes/accessors/TextureSizeNode.d.ts +3 -3
  92. three/src/nodes/accessors/UniformArrayNode.d.ts +2 -7
  93. three/src/nodes/code/FunctionCallNode.d.ts +3 -1
  94. three/src/nodes/code/FunctionNode.d.ts +2 -2
  95. three/src/nodes/code/ScriptableNode.d.ts +2 -2
  96. three/src/nodes/core/AssignNode.d.ts +2 -2
  97. three/src/nodes/core/AttributeNode.d.ts +1 -1
  98. three/src/nodes/core/BypassNode.d.ts +2 -2
  99. three/src/nodes/core/CacheNode.d.ts +0 -2
  100. three/src/nodes/core/ContextNode.d.ts +3 -3
  101. three/src/nodes/core/StackNode.d.ts +3 -13
  102. three/src/nodes/core/SubBuildNode.d.ts +15 -0
  103. three/src/nodes/core/VarNode.d.ts +4 -4
  104. three/src/nodes/core/VaryingNode.d.ts +3 -3
  105. three/src/nodes/display/BlendModes.d.ts +12 -12
  106. three/src/nodes/display/BumpMapNode.d.ts +4 -3
  107. three/src/nodes/display/ColorAdjustment.d.ts +17 -17
  108. three/src/nodes/display/ColorSpaceFunctions.d.ts +3 -3
  109. three/src/nodes/display/ColorSpaceNode.d.ts +4 -4
  110. three/src/nodes/display/FrontFacingNode.d.ts +1 -0
  111. three/src/nodes/display/PosterizeNode.d.ts +3 -3
  112. three/src/nodes/display/RenderOutputNode.d.ts +2 -2
  113. three/src/nodes/display/ScreenNode.d.ts +0 -10
  114. three/src/nodes/display/ToneMappingFunctions.d.ts +7 -7
  115. three/src/nodes/display/ToneMappingNode.d.ts +6 -6
  116. three/src/nodes/display/ViewportDepthTextureNode.d.ts +3 -3
  117. three/src/nodes/fog/Fog.d.ts +10 -10
  118. three/src/nodes/functions/BSDF/Schlick_to_F0.d.ts +4 -4
  119. three/src/nodes/functions/material/getAlphaHashThreshold.d.ts +2 -2
  120. three/src/nodes/functions/material/getParallaxCorrectNormal.d.ts +4 -4
  121. three/src/nodes/geometry/RangeNode.d.ts +9 -2
  122. three/src/nodes/gpgpu/AtomicFunctionNode.d.ts +20 -20
  123. three/src/nodes/gpgpu/ComputeNode.d.ts +2 -2
  124. three/src/nodes/lighting/PointShadowNode.d.ts +11 -11
  125. three/src/nodes/lighting/ShadowFilterNode.d.ts +11 -11
  126. three/src/nodes/materialx/MaterialXNodes.d.ts +59 -59
  127. three/src/nodes/materialx/lib/mx_hsv.d.ts +3 -3
  128. three/src/nodes/materialx/lib/mx_noise.d.ts +206 -206
  129. three/src/nodes/materialx/lib/mx_transform_color.d.ts +2 -2
  130. three/src/nodes/math/ConditionalNode.d.ts +4 -19
  131. three/src/nodes/math/Hash.d.ts +2 -2
  132. three/src/nodes/math/MathNode.d.ts +21 -17
  133. three/src/nodes/math/OperatorNode.d.ts +41 -52
  134. three/src/nodes/math/TriNoise3D.d.ts +6 -6
  135. three/src/nodes/pmrem/PMREMNode.d.ts +3 -3
  136. three/src/nodes/pmrem/PMREMUtils.d.ts +20 -20
  137. three/src/nodes/procedural/Checker.d.ts +2 -2
  138. three/src/nodes/shapes/Shapes.d.ts +2 -2
  139. three/src/nodes/tsl/TSLBase.d.ts +1 -0
  140. three/src/nodes/tsl/TSLCore.d.ts +176 -76
  141. three/src/nodes/utils/CubeMapNode.d.ts +2 -2
  142. three/src/nodes/utils/DebugNode.d.ts +2 -2
  143. three/src/nodes/utils/Discard.d.ts +2 -2
  144. three/src/nodes/utils/EquirectUV.d.ts +4 -0
  145. three/src/nodes/utils/LoopNode.d.ts +2 -7
  146. three/src/nodes/utils/MatcapUV.d.ts +4 -0
  147. three/src/nodes/utils/Oscillators.d.ts +5 -5
  148. three/src/nodes/utils/Packing.d.ts +3 -3
  149. three/src/nodes/utils/PostProcessingUtils.d.ts +9 -9
  150. three/src/nodes/utils/RTTNode.d.ts +3 -3
  151. three/src/nodes/utils/RemapNode.d.ts +9 -9
  152. three/src/nodes/utils/RotateNode.d.ts +3 -3
  153. three/src/nodes/utils/SampleNode.d.ts +16 -0
  154. three/src/nodes/utils/SpriteSheetUVNode.d.ts +4 -4
  155. three/src/nodes/utils/SpriteUtils.d.ts +2 -2
  156. three/src/nodes/utils/StorageArrayElementNode.d.ts +4 -3
  157. three/src/nodes/utils/TriplanarTextures.d.ts +20 -0
  158. three/src/nodes/utils/UVUtils.d.ts +8 -7
  159. three/src/nodes/utils/ViewportUtils.d.ts +2 -2
  160. three/src/objects/LOD.d.ts +1 -1
  161. three/src/renderers/WebGLRenderer.d.ts +1 -1
  162. three/src/renderers/common/Backend.d.ts +3 -3
  163. three/src/renderers/common/RenderObject.d.ts +10 -2
  164. three/src/renderers/common/Renderer.d.ts +5 -5
  165. three/src/renderers/common/Storage3DTexture.d.ts +40 -0
  166. three/src/renderers/common/StorageArrayTexture.d.ts +29 -0
  167. three/src/renderers/common/Textures.d.ts +2 -2
  168. three/src/renderers/common/XRRenderTarget.d.ts +3 -2
  169. three/src/renderers/common/nodes/NodeLibrary.d.ts +4 -9
  170. three/src/renderers/common/nodes/NodeSampledTexture.d.ts +1 -1
  171. three/src/renderers/common/nodes/Nodes.d.ts +1 -1
  172. three/src/renderers/webgpu/WebGPURenderer.d.ts +3 -0
  173. three/src/renderers/webgpu/nodes/StandardNodeLibrary.d.ts +65 -0
  174. three/src/renderers/webgpu/utils/WebGPUConstants.d.ts +9 -0
  175. three/src/nodes/utils/EquirectUVNode.d.ts +0 -8
  176. three/src/nodes/utils/MatcapUVNode.d.ts +0 -8
  177. three/src/nodes/utils/TriplanarTexturesNode.d.ts +0 -36
  178. three/src/renderers/common/nodes/StandardNodeLibrary.d.ts +0 -5
@@ -1,231 +1,291 @@
1
- import { Color, ColorRepresentation } from "../math/Color.js";
1
+ import { Color } from "../math/Color.js";
2
2
  import { Vector2 } from "../math/Vector2.js";
3
3
  import { Texture } from "../textures/Texture.js";
4
- import { MeshStandardMaterial, MeshStandardMaterialParameters } from "./MeshStandardMaterial.js";
5
-
6
- export interface MeshPhysicalMaterialParameters extends MeshStandardMaterialParameters {
7
- anisotropyRotation?: number | undefined;
8
- anisotropyMap?: Texture | null | undefined;
9
-
10
- clearcoatMap?: Texture | null | undefined;
11
- clearcoatRoughness?: number | undefined;
12
- clearcoatRoughnessMap?: Texture | null | undefined;
13
- clearcoatNormalScale?: Vector2 | undefined;
14
- clearcoatNormalMap?: Texture | null | undefined;
15
-
16
- ior?: number | undefined;
17
-
18
- reflectivity?: number | undefined;
19
-
20
- iridescenceMap?: Texture | null | undefined;
21
- iridescenceIOR?: number | undefined;
22
- iridescenceThicknessRange?: [number, number] | undefined;
23
- iridescenceThicknessMap?: Texture | null | undefined;
24
-
25
- sheenColor?: ColorRepresentation | undefined;
26
- sheenColorMap?: Texture | null | undefined;
27
- sheenRoughness?: number | undefined;
28
- sheenRoughnessMap?: Texture | null | undefined;
29
-
30
- transmissionMap?: Texture | null | undefined;
31
-
32
- thickness?: number | undefined;
33
- thicknessMap?: Texture | null | undefined;
34
- attenuationDistance?: number | undefined;
35
- attenuationColor?: ColorRepresentation | undefined;
36
-
37
- specularIntensity?: number | undefined;
38
- specularIntensityMap?: Texture | null | undefined;
39
- specularColor?: ColorRepresentation | undefined;
40
- specularColorMap?: Texture | null | undefined;
41
-
42
- anisotropy?: number | undefined;
43
- clearcoat?: number | undefined;
44
- iridescence?: number | undefined;
45
- dispersion?: number | undefined;
46
- sheen?: number | undefined;
47
- transmission?: number | undefined;
48
- }
49
-
50
- export class MeshPhysicalMaterial extends MeshStandardMaterial {
51
- constructor(parameters?: MeshPhysicalMaterialParameters);
4
+ import { MapColorPropertiesToColorRepresentations } from "./Material.js";
5
+ import { MeshStandardMaterial, MeshStandardMaterialProperties } from "./MeshStandardMaterial.js";
52
6
 
7
+ export interface MeshPhysicalMaterialProperties extends MeshStandardMaterialProperties {
53
8
  /**
54
- * Read-only flag to check if a given object is of type {@link MeshPhysicalMaterial}.
55
- * @remarks This is a _constant_ value
56
- * @defaultValue `true`
9
+ * The rotation of the anisotropy in tangent, bitangent space, measured in radians
10
+ * counter-clockwise from the tangent. When `anisotropyMap` is present, this
11
+ * property provides additional rotation to the vectors in the texture.
12
+ *
13
+ * @default 1
57
14
  */
58
- readonly isMeshPhysicalMaterial: true;
59
-
60
- /**
61
- * @default { 'STANDARD': '', 'PHYSICAL': '' }
62
- */
63
- defines: { [key: string]: any };
64
-
65
- /**
66
- * @default 0
67
- */
68
- anisotropyRotation?: number;
69
-
15
+ anisotropyRotation: number;
70
16
  /**
17
+ * Red and green channels represent the anisotropy direction in `[-1, 1]` tangent,
18
+ * bitangent space, to be rotated by `anisotropyRotation`. The blue channel
19
+ * contains strength as `[0, 1]` to be multiplied by `anisotropy`.
20
+ *
71
21
  * @default null
72
22
  */
73
- anisotropyMap?: Texture | null;
74
-
23
+ anisotropyMap: Texture | null;
75
24
  /**
25
+ * The red channel of this texture is multiplied against `clearcoat`,
26
+ * for per-pixel control over a coating's intensity.
27
+ *
76
28
  * @default null
77
29
  */
78
30
  clearcoatMap: Texture | null;
79
-
80
31
  /**
32
+ * Roughness of the clear coat layer, from `0.0` to `1.0`.
33
+ *
81
34
  * @default 0
82
35
  */
83
36
  clearcoatRoughness: number;
84
-
85
37
  /**
38
+ * The green channel of this texture is multiplied against
39
+ * `clearcoatRoughness`, for per-pixel control over a coating's roughness.
40
+ *
86
41
  * @default null
87
42
  */
88
43
  clearcoatRoughnessMap: Texture | null;
89
-
90
44
  /**
91
- * @default new THREE.Vector2( 1, 1 )
45
+ * How much `clearcoatNormalMap` affects the clear coat layer, from
46
+ * `(0,0)` to `(1,1)`.
47
+ *
48
+ * @default (1,1)
92
49
  */
93
50
  clearcoatNormalScale: Vector2;
94
-
95
51
  /**
52
+ * Can be used to enable independent normals for the clear coat layer.
53
+ *
96
54
  * @default null
97
55
  */
98
56
  clearcoatNormalMap: Texture | null;
99
-
100
57
  /**
58
+ * Index-of-refraction for non-metallic materials, from `1.0` to `2.333`.
59
+ *
101
60
  * @default 1.5
102
61
  */
103
62
  ior: number;
104
-
105
63
  /**
64
+ * Degree of reflectivity, from `0.0` to `1.0`. Default is `0.5`, which
65
+ * corresponds to an index-of-refraction of `1.5`.
66
+ *
67
+ * This models the reflectivity of non-metallic materials. It has no effect
68
+ * when `metalness` is `1.0`
69
+ *
70
+ * @name MeshPhysicalMaterial#reflectivity
106
71
  * @default 0.5
107
72
  */
108
73
  get reflectivity(): number;
109
74
  set reflectivity(reflectivity: number);
110
-
111
75
  /**
76
+ * The red channel of this texture is multiplied against `iridescence`, for per-pixel
77
+ * control over iridescence.
78
+ *
112
79
  * @default null
113
80
  */
114
81
  iridescenceMap: Texture | null;
115
-
116
82
  /**
83
+ * Strength of the iridescence RGB color shift effect, represented by an index-of-refraction.
84
+ * Between `1.0` to `2.333`.
85
+ *
117
86
  * @default 1.3
118
87
  */
119
88
  iridescenceIOR: number;
120
-
121
89
  /**
122
- * @default [100, 400]
90
+ *Array of exactly 2 elements, specifying minimum and maximum thickness of the iridescence layer.
91
+ Thickness of iridescence layer has an equivalent effect of the one `thickness` has on `ior`.
92
+ *
93
+ * @default [100,400]
123
94
  */
124
95
  iridescenceThicknessRange: [number, number];
125
-
126
96
  /**
97
+ * A texture that defines the thickness of the iridescence layer, stored in the green channel.
98
+ * Minimum and maximum values of thickness are defined by `iridescenceThicknessRange` array:
99
+ * - `0.0` in the green channel will result in thickness equal to first element of the array.
100
+ * - `1.0` in the green channel will result in thickness equal to second element of the array.
101
+ * - Values in-between will linearly interpolate between the elements of the array.
102
+ *
127
103
  * @default null
128
104
  */
129
105
  iridescenceThicknessMap: Texture | null;
130
-
131
106
  /**
132
- * @default Color( 0x000000 )
107
+ * The sheen tint.
108
+ *
109
+ * @default (0,0,0)
133
110
  */
134
111
  sheenColor: Color;
135
-
136
112
  /**
113
+ * The RGB channels of this texture are multiplied against `sheenColor`, for per-pixel control
114
+ * over sheen tint.
115
+ *
137
116
  * @default null
138
117
  */
139
118
  sheenColorMap: Texture | null;
140
-
141
119
  /**
142
- * @default 1.0
120
+ * Roughness of the sheen layer, from `0.0` to `1.0`.
121
+ *
122
+ * @default 1
143
123
  */
144
124
  sheenRoughness: number;
145
-
146
125
  /**
126
+ * The alpha channel of this texture is multiplied against `sheenRoughness`, for per-pixel control
127
+ * over sheen roughness.
128
+ *
147
129
  * @default null
148
130
  */
149
131
  sheenRoughnessMap: Texture | null;
150
-
151
132
  /**
133
+ * The red channel of this texture is multiplied against `transmission`, for per-pixel control over
134
+ * optical transparency.
135
+ *
152
136
  * @default null
153
137
  */
154
138
  transmissionMap: Texture | null;
155
-
156
139
  /**
157
- * @default 0.01
140
+ * The thickness of the volume beneath the surface. The value is given in the
141
+ * coordinate space of the mesh. If the value is `0` the material is
142
+ * thin-walled. Otherwise the material is a volume boundary.
143
+ *
144
+ * @default 0
158
145
  */
159
146
  thickness: number;
160
-
161
147
  /**
148
+ * A texture that defines the thickness, stored in the green channel. This will
149
+ * be multiplied by `thickness`.
150
+ *
162
151
  * @default null
163
152
  */
164
153
  thicknessMap: Texture | null;
165
-
166
154
  /**
167
- * @default 0.0
155
+ * Density of the medium given as the average distance that light travels in
156
+ * the medium before interacting with a particle. The value is given in world
157
+ * space units, and must be greater than zero.
158
+ *
159
+ * @default Infinity
168
160
  */
169
161
  attenuationDistance: number;
170
-
171
162
  /**
172
- * @default Color( 1, 1, 1 )
163
+ * The color that white light turns into due to absorption when reaching the
164
+ * attenuation distance.
165
+ *
166
+ * @default (1,1,1)
173
167
  */
174
168
  attenuationColor: Color;
175
-
176
169
  /**
177
- * @default 1.0
170
+ * A float that scales the amount of specular reflection for non-metals only.
171
+ * When set to zero, the model is effectively Lambertian. From `0.0` to `1.0`.
172
+ *
173
+ * @default 1
178
174
  */
179
175
  specularIntensity: number;
180
-
181
176
  /**
177
+ * The alpha channel of this texture is multiplied against `specularIntensity`,
178
+ * for per-pixel control over specular intensity.
179
+ *
182
180
  * @default null
183
181
  */
184
182
  specularIntensityMap: Texture | null;
185
-
186
183
  /**
187
- * @default Color(1, 1, 1)
184
+ * Tints the specular reflection at normal incidence for non-metals only.
185
+ *
186
+ * @default (1,1,1)
188
187
  */
189
188
  specularColor: Color;
190
-
191
189
  /**
190
+ * The RGB channels of this texture are multiplied against `specularColor`,
191
+ * for per-pixel control over specular color.
192
+ *
192
193
  * @default null
193
194
  */
194
195
  specularColorMap: Texture | null;
195
-
196
+ set anisotropy(value: number);
196
197
  /**
198
+ * The anisotropy strength.
199
+ *
197
200
  * @default 0
198
201
  */
199
202
  get anisotropy(): number;
200
- set anisotropy(value: number);
201
-
203
+ set clearcoat(value: number);
202
204
  /**
205
+ * Represents the intensity of the clear coat layer, from `0.0` to `1.0`. Use
206
+ * clear coat related properties to enable multilayer materials that have a
207
+ * thin translucent layer over the base layer.
208
+ *
203
209
  * @default 0
204
210
  */
205
211
  get clearcoat(): number;
206
- set clearcoat(value: number);
207
-
212
+ set iridescence(value: number);
208
213
  /**
214
+ * The intensity of the iridescence layer, simulating RGB color shift based on the angle between
215
+ * the surface and the viewer, from `0.0` to `1.0`.
216
+ *
209
217
  * @default 0
210
218
  */
211
219
  get iridescence(): number;
212
- set iridescence(value: number);
213
-
220
+ set dispersion(value: number);
214
221
  /**
222
+ * Defines the strength of the angular separation of colors (chromatic aberration) transmitting
223
+ * through a relatively clear volume. Any value zero or larger is valid, the typical range of
224
+ * realistic values is `[0, 1]`. This property can be only be used with transmissive objects.
225
+ *
215
226
  * @default 0
216
227
  */
217
228
  get dispersion(): number;
218
- set dispersion(value: number);
219
-
229
+ set sheen(value: number);
220
230
  /**
221
- * @default 0.0
231
+ * The intensity of the sheen layer, from `0.0` to `1.0`.
232
+ *
233
+ * @default 0
222
234
  */
223
235
  get sheen(): number;
224
- set sheen(value: number);
225
-
236
+ set transmission(value: number);
226
237
  /**
238
+ * Degree of transmission (or optical transparency), from `0.0` to `1.0`.
239
+ *
240
+ * Thin, transparent or semitransparent, plastic or glass materials remain
241
+ * largely reflective even if they are fully transmissive. The transmission
242
+ * property can be used to model these materials.
243
+ *
244
+ * When transmission is non-zero, `opacity` should be set to `1`.
245
+ *
227
246
  * @default 0
228
247
  */
229
248
  get transmission(): number;
230
- set transmission(value: number);
231
249
  }
250
+
251
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
252
+ export interface MeshPhysicalMaterialParameters
253
+ extends Partial<MapColorPropertiesToColorRepresentations<MeshPhysicalMaterialProperties>>
254
+ {}
255
+
256
+ /**
257
+ * An extension of the {@link MeshStandardMaterial}, providing more advanced
258
+ * physically-based rendering properties:
259
+ *
260
+ * - Anisotropy: Ability to represent the anisotropic property of materials
261
+ * as observable with brushed metals.
262
+ * - Clearcoat: Some materials — like car paints, carbon fiber, and wet surfaces — require
263
+ * a clear, reflective layer on top of another layer that may be irregular or rough.
264
+ * Clearcoat approximates this effect, without the need for a separate transparent surface.
265
+ * - Iridescence: Allows to render the effect where hue varies depending on the viewing
266
+ * angle and illumination angle. This can be seen on soap bubbles, oil films, or on the
267
+ * wings of many insects.
268
+ * - Physically-based transparency: One limitation of {@link Material#opacity} is that highly
269
+ * transparent materials are less reflective. Physically-based transmission provides a more
270
+ * realistic option for thin, transparent surfaces like glass.
271
+ * - Advanced reflectivity: More flexible reflectivity for non-metallic materials.
272
+ * - Sheen: Can be used for representing cloth and fabric materials.
273
+ *
274
+ * As a result of these complex shading features, `MeshPhysicalMaterial` has a
275
+ * higher performance cost, per pixel, than other three.js materials. Most
276
+ * effects are disabled by default, and add cost as they are enabled. For
277
+ * best results, always specify an environment map when using this material.
278
+ */
279
+ export class MeshPhysicalMaterial extends MeshStandardMaterial {
280
+ constructor(parameters?: MeshPhysicalMaterialParameters);
281
+ /**
282
+ * This flag can be used for type testing.
283
+ *
284
+ * @default true
285
+ */
286
+ readonly isMeshPhysicalMaterial: boolean;
287
+ setValues(values?: MeshPhysicalMaterialParameters): void;
288
+ }
289
+
290
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
291
+ export interface MeshPhysicalMaterial extends MeshPhysicalMaterialProperties {}