@types/three 0.176.0 → 0.178.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 (214) hide show
  1. three/README.md +1 -1
  2. three/examples/jsm/Addons.d.ts +0 -1
  3. three/examples/jsm/capabilities/WebGL.d.ts +0 -11
  4. three/examples/jsm/controls/TransformControls.d.ts +16 -1
  5. three/examples/jsm/helpers/TextureHelper.d.ts +2 -2
  6. three/examples/jsm/helpers/TextureHelperGPU.d.ts +2 -2
  7. three/examples/jsm/loaders/LDrawLoader.d.ts +8 -3
  8. three/examples/jsm/loaders/SVGLoader.d.ts +1 -1
  9. three/examples/jsm/math/Octree.d.ts +3 -0
  10. three/examples/jsm/physics/RapierPhysics.d.ts +1 -0
  11. three/examples/jsm/postprocessing/AfterimagePass.d.ts +13 -10
  12. three/examples/jsm/postprocessing/FXAAPass.d.ts +7 -0
  13. three/examples/jsm/transpiler/AST.d.ts +77 -26
  14. three/examples/jsm/transpiler/TSLEncoder.d.ts +9 -3
  15. three/examples/jsm/tsl/display/AnamorphicNode.d.ts +4 -4
  16. three/examples/jsm/tsl/display/BleachBypass.d.ts +2 -2
  17. three/examples/jsm/tsl/display/BloomNode.d.ts +2 -2
  18. three/examples/jsm/tsl/display/ChromaticAberrationNode.d.ts +20 -0
  19. three/examples/jsm/tsl/display/DenoiseNode.d.ts +4 -4
  20. three/examples/jsm/tsl/display/DepthOfFieldNode.d.ts +6 -6
  21. three/examples/jsm/tsl/display/DotScreenNode.d.ts +2 -2
  22. three/examples/jsm/tsl/display/FXAANode.d.ts +3 -3
  23. three/examples/jsm/tsl/display/FilmNode.d.ts +4 -4
  24. three/examples/jsm/tsl/display/GTAONode.d.ts +3 -3
  25. three/examples/jsm/tsl/display/GaussianBlurNode.d.ts +5 -5
  26. three/examples/jsm/tsl/display/LensflareNode.d.ts +8 -8
  27. three/examples/jsm/tsl/display/Lut3DNode.d.ts +4 -4
  28. three/examples/jsm/tsl/display/MotionBlur.d.ts +4 -4
  29. three/examples/jsm/tsl/display/OutlineNode.d.ts +3 -3
  30. three/examples/jsm/tsl/display/RGBShiftNode.d.ts +3 -3
  31. three/examples/jsm/tsl/display/SMAANode.d.ts +3 -3
  32. three/examples/jsm/tsl/display/SSRNode.d.ts +5 -5
  33. three/examples/jsm/tsl/display/Sepia.d.ts +2 -2
  34. three/examples/jsm/tsl/display/SobelOperatorNode.d.ts +3 -3
  35. three/examples/jsm/tsl/display/TransitionNode.d.ts +4 -4
  36. three/examples/jsm/tsl/display/hashBlur.d.ts +10 -4
  37. three/examples/jsm/tsl/lighting/TiledLightsNode.d.ts +5 -5
  38. three/package.json +3 -3
  39. three/src/Three.Core.d.ts +0 -2
  40. three/src/Three.TSL.d.ts +11 -18
  41. three/src/Three.WebGPU.Nodes.d.ts +1 -0
  42. three/src/Three.WebGPU.d.ts +3 -0
  43. three/src/animation/tracks/NumberKeyframeTrack.d.ts +1 -1
  44. three/src/animation/tracks/QuaternionKeyframeTrack.d.ts +1 -1
  45. three/src/animation/tracks/StringKeyframeTrack.d.ts +1 -1
  46. three/src/animation/tracks/VectorKeyframeTrack.d.ts +1 -1
  47. three/src/constants.d.ts +13 -5
  48. three/src/core/BufferGeometry.d.ts +11 -2
  49. three/src/core/GLBufferAttribute.d.ts +18 -1
  50. three/src/core/RenderTarget.d.ts +3 -20
  51. three/src/extras/DataUtils.d.ts +4 -4
  52. three/src/geometries/CapsuleGeometry.d.ts +1 -0
  53. three/src/helpers/AxesHelper.d.ts +3 -1
  54. three/src/lights/SpotLightShadow.d.ts +2 -0
  55. three/src/lights/webgpu/ProjectorLight.d.ts +17 -0
  56. three/src/materials/LineBasicMaterial.d.ts +66 -34
  57. three/src/materials/LineDashedMaterial.d.ts +41 -21
  58. three/src/materials/Material.d.ts +408 -398
  59. three/src/materials/MeshBasicMaterial.d.ts +101 -62
  60. three/src/materials/MeshDepthMaterial.d.ts +71 -32
  61. three/src/materials/MeshDistanceMaterial.d.ts +65 -29
  62. three/src/materials/MeshLambertMaterial.d.ts +179 -103
  63. three/src/materials/MeshMatcapMaterial.d.ts +97 -55
  64. three/src/materials/MeshNormalMaterial.d.ts +76 -41
  65. three/src/materials/MeshPhongMaterial.d.ts +164 -100
  66. three/src/materials/MeshPhysicalMaterial.d.ts +164 -116
  67. three/src/materials/MeshStandardMaterial.d.ts +178 -91
  68. three/src/materials/MeshToonMaterial.d.ts +130 -81
  69. three/src/materials/PointsMaterial.d.ts +77 -30
  70. three/src/materials/RawShaderMaterial.d.ts +12 -7
  71. three/src/materials/ShaderMaterial.d.ts +186 -98
  72. three/src/materials/ShadowMaterial.d.ts +49 -23
  73. three/src/materials/SpriteMaterial.d.ts +62 -33
  74. three/src/materials/nodes/Line2NodeMaterial.d.ts +87 -40
  75. three/src/materials/nodes/LineBasicNodeMaterial.d.ts +35 -16
  76. three/src/materials/nodes/LineDashedNodeMaterial.d.ts +75 -20
  77. three/src/materials/nodes/MeshBasicNodeMaterial.d.ts +49 -30
  78. three/src/materials/nodes/MeshLambertNodeMaterial.d.ts +49 -42
  79. three/src/materials/nodes/MeshMatcapNodeMaterial.d.ts +38 -26
  80. three/src/materials/nodes/MeshNormalNodeMaterial.d.ts +36 -22
  81. three/src/materials/nodes/MeshPhongNodeMaterial.d.ts +68 -48
  82. three/src/materials/nodes/MeshPhysicalNodeMaterial.d.ts +240 -65
  83. three/src/materials/nodes/MeshSSSNodeMaterial.d.ts +99 -3
  84. three/src/materials/nodes/MeshStandardNodeMaterial.d.ts +83 -47
  85. three/src/materials/nodes/MeshToonNodeMaterial.d.ts +42 -36
  86. three/src/materials/nodes/NodeMaterial.d.ts +418 -55
  87. three/src/materials/nodes/NodeMaterials.d.ts +3 -2
  88. three/src/materials/nodes/PointsNodeMaterial.d.ts +31 -7
  89. three/src/materials/nodes/ShadowNodeMaterial.d.ts +38 -11
  90. three/src/materials/nodes/SpriteNodeMaterial.d.ts +68 -18
  91. three/src/materials/nodes/VolumeNodeMaterial.d.ts +50 -14
  92. three/src/materials/nodes/manager/NodeMaterialObserver.d.ts +4 -0
  93. three/src/math/Box3.d.ts +8 -0
  94. three/src/math/Color.d.ts +1 -1
  95. three/src/math/ColorManagement.d.ts +12 -2
  96. three/src/math/Sphere.d.ts +8 -0
  97. three/src/math/Triangle.d.ts +3 -3
  98. three/src/nodes/Nodes.d.ts +2 -3
  99. three/src/nodes/TSL.d.ts +4 -3
  100. three/src/nodes/accessors/AccessorsUtils.d.ts +3 -3
  101. three/src/nodes/accessors/Bitangent.d.ts +0 -2
  102. three/src/nodes/accessors/CubeTextureNode.d.ts +16 -5
  103. three/src/nodes/accessors/Normal.d.ts +19 -5
  104. three/src/nodes/accessors/ReferenceBaseNode.d.ts +1 -1
  105. three/src/nodes/accessors/StorageBufferNode.d.ts +3 -2
  106. three/src/nodes/accessors/StorageTextureNode.d.ts +5 -5
  107. three/src/nodes/accessors/Tangent.d.ts +0 -2
  108. three/src/nodes/accessors/TangentUtils.d.ts +22 -0
  109. three/src/nodes/accessors/Texture3DNode.d.ts +5 -4
  110. three/src/nodes/accessors/TextureBicubic.d.ts +4 -2
  111. three/src/nodes/accessors/TextureNode.d.ts +24 -19
  112. three/src/nodes/accessors/TextureSizeNode.d.ts +3 -3
  113. three/src/nodes/accessors/UniformArrayNode.d.ts +2 -7
  114. three/src/nodes/code/FunctionCallNode.d.ts +3 -1
  115. three/src/nodes/code/FunctionNode.d.ts +2 -2
  116. three/src/nodes/code/ScriptableNode.d.ts +2 -2
  117. three/src/nodes/core/AssignNode.d.ts +7 -3
  118. three/src/nodes/core/AttributeNode.d.ts +1 -1
  119. three/src/nodes/core/BypassNode.d.ts +2 -2
  120. three/src/nodes/core/CacheNode.d.ts +1 -0
  121. three/src/nodes/core/ContextNode.d.ts +3 -3
  122. three/src/nodes/core/Node.d.ts +5 -4
  123. three/src/nodes/core/NodeUtils.d.ts +4 -0
  124. three/src/nodes/core/StackNode.d.ts +3 -13
  125. three/src/nodes/core/SubBuildNode.d.ts +15 -0
  126. three/src/nodes/core/VarNode.d.ts +4 -4
  127. three/src/nodes/core/VaryingNode.d.ts +3 -3
  128. three/src/nodes/display/BlendModes.d.ts +14 -10
  129. three/src/nodes/display/BumpMapNode.d.ts +4 -3
  130. three/src/nodes/display/ColorAdjustment.d.ts +17 -17
  131. three/src/nodes/display/ColorSpaceFunctions.d.ts +3 -3
  132. three/src/nodes/display/ColorSpaceNode.d.ts +6 -16
  133. three/src/nodes/display/FrontFacingNode.d.ts +1 -0
  134. three/src/nodes/display/PosterizeNode.d.ts +3 -3
  135. three/src/nodes/display/RenderOutputNode.d.ts +2 -2
  136. three/src/nodes/display/ScreenNode.d.ts +0 -10
  137. three/src/nodes/display/ToneMappingFunctions.d.ts +7 -7
  138. three/src/nodes/display/ToneMappingNode.d.ts +6 -6
  139. three/src/nodes/display/ViewportDepthTextureNode.d.ts +3 -3
  140. three/src/nodes/fog/Fog.d.ts +10 -10
  141. three/src/nodes/functions/BSDF/Schlick_to_F0.d.ts +4 -4
  142. three/src/nodes/functions/material/getAlphaHashThreshold.d.ts +2 -2
  143. three/src/nodes/functions/material/getParallaxCorrectNormal.d.ts +4 -4
  144. three/src/nodes/geometry/RangeNode.d.ts +9 -2
  145. three/src/nodes/gpgpu/AtomicFunctionNode.d.ts +20 -20
  146. three/src/nodes/gpgpu/ComputeNode.d.ts +2 -2
  147. three/src/nodes/lighting/PointShadowNode.d.ts +11 -11
  148. three/src/nodes/lighting/ProjectorLightNode.d.ts +5 -0
  149. three/src/nodes/lighting/ShadowFilterNode.d.ts +11 -11
  150. three/src/nodes/lighting/SpotLightNode.d.ts +15 -1
  151. three/src/nodes/materialx/MaterialXNodes.d.ts +59 -59
  152. three/src/nodes/materialx/lib/mx_hsv.d.ts +3 -3
  153. three/src/nodes/materialx/lib/mx_noise.d.ts +206 -206
  154. three/src/nodes/materialx/lib/mx_transform_color.d.ts +2 -2
  155. three/src/nodes/math/ConditionalNode.d.ts +4 -19
  156. three/src/nodes/math/Hash.d.ts +2 -2
  157. three/src/nodes/math/MathNode.d.ts +21 -17
  158. three/src/nodes/math/OperatorNode.d.ts +41 -52
  159. three/src/nodes/math/TriNoise3D.d.ts +6 -6
  160. three/src/nodes/pmrem/PMREMNode.d.ts +3 -3
  161. three/src/nodes/pmrem/PMREMUtils.d.ts +20 -20
  162. three/src/nodes/procedural/Checker.d.ts +2 -2
  163. three/src/nodes/shapes/Shapes.d.ts +2 -2
  164. three/src/nodes/tsl/TSLBase.d.ts +1 -0
  165. three/src/nodes/tsl/TSLCore.d.ts +186 -81
  166. three/src/nodes/utils/CubeMapNode.d.ts +2 -2
  167. three/src/nodes/utils/DebugNode.d.ts +2 -2
  168. three/src/nodes/utils/Discard.d.ts +2 -2
  169. three/src/nodes/utils/EquirectUV.d.ts +4 -0
  170. three/src/nodes/utils/LoopNode.d.ts +2 -7
  171. three/src/nodes/utils/MatcapUV.d.ts +4 -0
  172. three/src/nodes/utils/Oscillators.d.ts +5 -5
  173. three/src/nodes/utils/Packing.d.ts +3 -3
  174. three/src/nodes/utils/PostProcessingUtils.d.ts +9 -9
  175. three/src/nodes/utils/RTTNode.d.ts +3 -3
  176. three/src/nodes/utils/ReflectorNode.d.ts +1 -0
  177. three/src/nodes/utils/RemapNode.d.ts +9 -9
  178. three/src/nodes/utils/RotateNode.d.ts +3 -3
  179. three/src/nodes/utils/SampleNode.d.ts +16 -0
  180. three/src/nodes/utils/SpriteSheetUVNode.d.ts +4 -4
  181. three/src/nodes/utils/SpriteUtils.d.ts +2 -2
  182. three/src/nodes/utils/StorageArrayElementNode.d.ts +4 -3
  183. three/src/nodes/utils/TriplanarTextures.d.ts +20 -0
  184. three/src/nodes/utils/UVUtils.d.ts +8 -7
  185. three/src/nodes/utils/ViewportUtils.d.ts +2 -2
  186. three/src/objects/LOD.d.ts +1 -1
  187. three/src/objects/Mesh.d.ts +8 -0
  188. three/src/objects/Sprite.d.ts +8 -0
  189. three/src/renderers/WebGLRenderer.d.ts +3 -3
  190. three/src/renderers/common/Backend.d.ts +3 -3
  191. three/src/renderers/common/RenderObject.d.ts +10 -2
  192. three/src/renderers/common/Renderer.d.ts +10 -5
  193. three/src/renderers/common/Storage3DTexture.d.ts +40 -0
  194. three/src/renderers/common/StorageArrayTexture.d.ts +29 -0
  195. three/src/renderers/common/Textures.d.ts +2 -2
  196. three/src/renderers/common/XRManager.d.ts +45 -0
  197. three/src/renderers/common/XRRenderTarget.d.ts +3 -2
  198. three/src/renderers/common/nodes/NodeLibrary.d.ts +4 -9
  199. three/src/renderers/common/nodes/NodeSampledTexture.d.ts +1 -1
  200. three/src/renderers/common/nodes/Nodes.d.ts +1 -1
  201. three/src/renderers/webgpu/WebGPURenderer.d.ts +3 -0
  202. three/src/renderers/webgpu/nodes/StandardNodeLibrary.d.ts +65 -0
  203. three/src/renderers/webgpu/nodes/WGSLNodeBuilder.d.ts +1 -0
  204. three/src/renderers/webgpu/utils/WebGPUConstants.d.ts +10 -1
  205. three/src/textures/DepthTexture.d.ts +4 -2
  206. three/src/textures/Source.d.ts +20 -16
  207. three/src/textures/Texture.d.ts +69 -2
  208. three/examples/jsm/effects/PeppersGhostEffect.d.ts +0 -10
  209. three/src/core/RenderTargetArray.d.ts +0 -9
  210. three/src/nodes/utils/EquirectUVNode.d.ts +0 -8
  211. three/src/nodes/utils/MatcapUVNode.d.ts +0 -8
  212. three/src/nodes/utils/TriplanarTexturesNode.d.ts +0 -36
  213. three/src/renderers/common/nodes/StandardNodeLibrary.d.ts +0 -5
  214. three/src/textures/DepthArrayTexture.d.ts +0 -14
@@ -1,16 +1,112 @@
1
1
  import InputNode from "../../nodes/core/InputNode.js";
2
+ import { LightingModelDirectInput } from "../../nodes/core/LightingModel.js";
2
3
  import Node from "../../nodes/core/Node.js";
3
- import MeshPhysicalNodeMaterial, { MeshPhysicalNodeMaterialParameters } from "./MeshPhysicalNodeMaterial.js";
4
+ import NodeBuilder from "../../nodes/core/NodeBuilder.js";
5
+ import PhysicalLightingModel from "../../nodes/functions/PhysicalLightingModel.js";
6
+ import { MapColorPropertiesToColorRepresentations } from "../Material.js";
7
+ import { MeshPhysicalMaterialParameters, MeshPhysicalMaterialProperties } from "../MeshPhysicalMaterial.js";
8
+ import MeshPhysicalNodeMaterial, { MeshPhysicalNodeMaterialNodeProperties } from "./MeshPhysicalNodeMaterial.js";
4
9
 
5
- export default class MeshSSSNodeMaterial extends MeshPhysicalNodeMaterial {
10
+ /**
11
+ * Represents the lighting model for {@link MeshSSSNodeMaterial}.
12
+ */
13
+ declare class SSSLightingModel extends PhysicalLightingModel {
14
+ /**
15
+ * Constructs a new physical lighting model.
16
+ *
17
+ * @param {boolean} [clearcoat=false] - Whether clearcoat is supported or not.
18
+ * @param {boolean} [sheen=false] - Whether sheen is supported or not.
19
+ * @param {boolean} [iridescence=false] - Whether iridescence is supported or not.
20
+ * @param {boolean} [anisotropy=false] - Whether anisotropy is supported or not.
21
+ * @param {boolean} [transmission=false] - Whether transmission is supported or not.
22
+ * @param {boolean} [dispersion=false] - Whether dispersion is supported or not.
23
+ * @param {boolean} [sss=false] - Whether SSS is supported or not.
24
+ */
25
+ constructor(
26
+ clearcoat?: boolean,
27
+ sheen?: boolean,
28
+ iridescence?: boolean,
29
+ anisotropy?: boolean,
30
+ transmission?: boolean,
31
+ dispersion?: boolean,
32
+ sss?: boolean,
33
+ );
34
+ /**
35
+ * Whether the lighting model should use SSS or not.
36
+ *
37
+ * @default false
38
+ */
39
+ useSSS: boolean;
40
+ /**
41
+ * Extends the default implementation with a SSS term.
42
+ *
43
+ * Reference: [Approximating Translucency for a Fast, Cheap and Convincing Subsurface Scattering Look]{@link https://colinbarrebrisebois.com/2011/03/07/gdc-2011-approximating-translucency-for-a-fast-cheap-and-convincing-subsurface-scattering-look/}
44
+ *
45
+ * @param {Object} input - The input data.
46
+ * @param {NodeBuilder} builder - The current node builder.
47
+ */
48
+ direct(input: LightingModelDirectInput, builder: NodeBuilder): void;
49
+ }
50
+
51
+ export interface MeshSSSNodeMaterialNodeProperties extends MeshPhysicalNodeMaterialNodeProperties {
52
+ /**
53
+ * Represents the thickness color.
54
+ *
55
+ * @default null
56
+ */
6
57
  thicknessColorNode: Node | null;
58
+ /**
59
+ * Represents the distortion factor.
60
+ */
7
61
  thicknessDistortionNode: InputNode<number>;
62
+ /**
63
+ * Represents the thickness ambient factor.
64
+ */
8
65
  thicknessAmbientNode: InputNode<number>;
66
+ /**
67
+ * Represents the thickness attenuation.
68
+ */
9
69
  thicknessAttenuationNode: InputNode<number>;
70
+ /**
71
+ * Represents the thickness power.
72
+ */
10
73
  thicknessPowerNode: InputNode<number>;
74
+ /**
75
+ * Represents the thickness scale.
76
+ */
11
77
  thicknessScaleNode: InputNode<number>;
78
+ }
12
79
 
13
- constructor(parameters?: MeshPhysicalNodeMaterialParameters);
80
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
81
+ export interface MeshSSSNodeMaterialParameters
82
+ extends
83
+ Partial<MapColorPropertiesToColorRepresentations<MeshSSSNodeMaterialNodeProperties>>,
84
+ MeshPhysicalMaterialParameters
85
+ {}
14
86
 
87
+ /**
88
+ * This node material is an experimental extension of {@link MeshPhysicalNodeMaterial}
89
+ * that implements a Subsurface scattering (SSS) term.
90
+ *
91
+ * @augments MeshPhysicalNodeMaterial
92
+ */
93
+ declare class MeshSSSNodeMaterial extends MeshPhysicalNodeMaterial {
94
+ constructor(parameters?: MeshSSSNodeMaterialParameters);
95
+ /**
96
+ * Whether the lighting model should use SSS or not.
97
+ *
98
+ * @default true
99
+ */
15
100
  get useSSS(): boolean;
101
+ /**
102
+ * Setups the lighting model.
103
+ *
104
+ * @return {SSSLightingModel} The lighting model.
105
+ */
106
+ setupLightingModel(): SSSLightingModel;
16
107
  }
108
+
109
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
110
+ interface MeshSSSNodeMaterial extends MeshSSSNodeMaterialNodeProperties, MeshPhysicalMaterialProperties {}
111
+
112
+ export default MeshSSSNodeMaterial;
@@ -1,56 +1,92 @@
1
- import { NormalMapTypes } from "../../constants.js";
2
- import { Color } from "../../math/Color.js";
3
- import { Euler } from "../../math/Euler.js";
4
- import { Vector2 } from "../../math/Vector2.js";
5
1
  import Node from "../../nodes/core/Node.js";
6
- import { Texture } from "../../textures/Texture.js";
7
- import { MeshStandardMaterialParameters } from "../MeshStandardMaterial.js";
8
- import NodeMaterial, { NodeMaterialParameters } from "./NodeMaterial.js";
9
-
10
- export interface MeshStandardNodeMaterialParameters extends NodeMaterialParameters, MeshStandardMaterialParameters {
11
- }
12
-
13
- export default class MeshStandardNodeMaterial extends NodeMaterial {
14
- readonly isMeshStandardNodeMaterial: true;
2
+ import NodeBuilder from "../../nodes/core/NodeBuilder.js";
3
+ import PhysicalLightingModel from "../../nodes/functions/PhysicalLightingModel.js";
4
+ import EnvironmentNode from "../../nodes/lighting/EnvironmentNode.js";
5
+ import { MapColorPropertiesToColorRepresentations } from "../Material.js";
6
+ import { MeshStandardMaterialParameters, MeshStandardMaterialProperties } from "../MeshStandardMaterial.js";
7
+ import NodeMaterial, { NodeMaterialNodeProperties } from "./NodeMaterial.js";
15
8
 
9
+ export interface MeshStandardNodeMaterialNodeProperties extends NodeMaterialNodeProperties {
10
+ /**
11
+ * The emissive color of standard materials is by default inferred from the `emissive`,
12
+ * `emissiveIntensity` and `emissiveMap` properties. This node property allows to
13
+ * overwrite the default and define the emissive color with a node instead.
14
+ *
15
+ * If you don't want to overwrite the emissive color but modify the existing
16
+ * value instead, use {@link materialEmissive}.
17
+ *
18
+ * @default null
19
+ */
16
20
  emissiveNode: Node | null;
17
-
21
+ /**
22
+ * The metalness of standard materials is by default inferred from the `metalness`,
23
+ * and `metalnessMap` properties. This node property allows to
24
+ * overwrite the default and define the metalness with a node instead.
25
+ *
26
+ * If you don't want to overwrite the metalness but modify the existing
27
+ * value instead, use {@link materialMetalness}.
28
+ *
29
+ * @default null
30
+ */
18
31
  metalnessNode: Node | null;
32
+ /**
33
+ * The roughness of standard materials is by default inferred from the `roughness`,
34
+ * and `roughnessMap` properties. This node property allows to
35
+ * overwrite the default and define the roughness with a node instead.
36
+ *
37
+ * If you don't want to overwrite the roughness but modify the existing
38
+ * value instead, use {@link materialRoughness}.
39
+ *
40
+ * @default null
41
+ */
19
42
  roughnessNode: Node | null;
43
+ }
20
44
 
21
- // Properties from MeshStandardMaterial
22
- readonly isMeshStandardMaterial: true;
23
- color: Color;
24
- roughness: number;
25
- metalness: number;
26
- map: Texture | null;
27
- lightMap: Texture | null;
28
- lightMapIntensity: number;
29
- aoMap: Texture | null;
30
- aoMapIntensity: number;
31
- emissive: Color;
32
- emissiveIntensity: number;
33
- emissiveMap: Texture | null;
34
- bumpMap: Texture | null;
35
- bumpScale: number;
36
- normalMap: Texture | null;
37
- normalMapType: NormalMapTypes;
38
- normalScale: Vector2;
39
- displacementMap: Texture | null;
40
- displacementScale: number;
41
- displacementBias: number;
42
- roughnessMap: Texture | null;
43
- metalnessMap: Texture | null;
44
- alphaMap: Texture | null;
45
- envMap: Texture | null;
46
- envMapRotation: Euler;
47
- envMapIntensity: number;
48
- wireframe: boolean;
49
- wireframeLinewidth: number;
50
- wireframeLinecap: string;
51
- wireframeLinejoin: string;
52
- flatShading: boolean;
53
- fog: boolean;
45
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
46
+ export interface MeshStandardNodeMaterialParameters
47
+ extends
48
+ Partial<MapColorPropertiesToColorRepresentations<MeshStandardNodeMaterialNodeProperties>>,
49
+ MeshStandardMaterialParameters
50
+ {}
54
51
 
52
+ /**
53
+ * Node material version of {@link MeshStandardMaterial}.
54
+ */
55
+ declare class MeshStandardNodeMaterial extends NodeMaterial {
56
+ /**
57
+ * Constructs a new mesh standard node material.
58
+ *
59
+ * @param {Object} [parameters] - The configuration parameter.
60
+ */
55
61
  constructor(parameters?: MeshStandardNodeMaterialParameters);
62
+ /**
63
+ * This flag can be used for type testing.
64
+ *
65
+ * @default true
66
+ */
67
+ readonly isMeshStandardNodeMaterial: boolean;
68
+ /**
69
+ * Overwritten since this type of material uses {@link EnvironmentNode}
70
+ * to implement the PBR (PMREM based) environment mapping. Besides, the
71
+ * method honors `Scene.environment`.
72
+ *
73
+ * @param {NodeBuilder} builder - The current node builder.
74
+ * @return {?EnvironmentNode<vec3>} The environment node.
75
+ */
76
+ setupEnvironment(builder: NodeBuilder): EnvironmentNode | null;
77
+ /**
78
+ * Setups the lighting model.
79
+ *
80
+ * @return {PhysicalLightingModel} The lighting model.
81
+ */
82
+ setupLightingModel(): PhysicalLightingModel;
83
+ /**
84
+ * Setups the specular related node variables.
85
+ */
86
+ setupSpecular(): void;
56
87
  }
88
+
89
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
90
+ interface MeshStandardNodeMaterial extends MeshStandardNodeMaterialNodeProperties, MeshStandardMaterialProperties {}
91
+
92
+ export default MeshStandardNodeMaterial;
@@ -1,42 +1,48 @@
1
- import { NormalMapTypes } from "../../constants.js";
2
- import { Color } from "../../math/Color.js";
3
- import { Vector2 } from "../../math/Vector2.js";
4
- import { Texture } from "../../textures/Texture.js";
5
- import { MeshToonMaterialParameters } from "../MeshToonMaterial.js";
6
- import NodeMaterial, { NodeMaterialParameters } from "./NodeMaterial.js";
1
+ import ToonLightingModel from "../../nodes/functions/ToonLightingModel.js";
2
+ import { MapColorPropertiesToColorRepresentations } from "../Material.js";
3
+ import { MeshToonMaterialParameters, MeshToonMaterialProperties } from "../MeshToonMaterial.js";
4
+ import NodeMaterial, { NodeMaterialNodeProperties } from "./NodeMaterial.js";
7
5
 
8
- export interface MeshToonNodeMaterialParameters extends NodeMaterialParameters, MeshToonMaterialParameters {
6
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
7
+ export interface MeshToonNodeMaterialNodeProperties extends NodeMaterialNodeProperties {
9
8
  }
10
9
 
11
- export default class MeshToonNodeMaterial extends NodeMaterial {
12
- readonly isMeshToonNodeMaterial: true;
13
-
14
- // Properties from MeshToonMaterial
15
- readonly isMeshToonMaterial: true;
16
- color: Color;
17
- gradientMap: Texture | null;
18
- map: Texture | null;
19
- lightMap: Texture | null;
20
- lightMapIntensity: number;
21
- aoMap: Texture | null;
22
- aoMapIntensity: number;
23
- emissive: Color;
24
- emissiveIntensity: number;
25
- emissiveMap: Texture | null;
26
- bumpMap: Texture | null;
27
- bumpScale: number;
28
- normalMap: Texture | null;
29
- normalMapType: NormalMapTypes;
30
- normalScale: Vector2;
31
- displacementMap: Texture | null;
32
- displacementScale: number;
33
- displacementBias: number;
34
- alphaMap: Texture | null;
35
- wireframe: boolean;
36
- wireframeLinewidth: number;
37
- wireframeLinecap: string;
38
- wireframeLinejoin: string;
39
- fog: boolean;
10
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
11
+ export interface MeshToonNodeMaterialParameters
12
+ extends
13
+ Partial<MapColorPropertiesToColorRepresentations<MeshToonNodeMaterialNodeProperties>>,
14
+ MeshToonMaterialParameters
15
+ {}
40
16
 
17
+ /**
18
+ * Node material version of {@link MeshToonMaterial}.
19
+ *
20
+ * @augments NodeMaterial
21
+ */
22
+ declare class MeshToonNodeMaterial extends NodeMaterial {
23
+ /**
24
+ * Constructs a new mesh toon node material.
25
+ *
26
+ * @param {Object} [parameters] - The configuration parameter.
27
+ */
41
28
  constructor(parameters?: MeshToonNodeMaterialParameters);
29
+ /**
30
+ * This flag can be used for type testing.
31
+ *
32
+ * @type {boolean}
33
+ * @readonly
34
+ * @default true
35
+ */
36
+ readonly isMeshToonNodeMaterial: boolean;
37
+ /**
38
+ * Setups the lighting model.
39
+ *
40
+ * @return {ToonLightingModel} The lighting model.
41
+ */
42
+ setupLightingModel(): ToonLightingModel;
42
43
  }
44
+
45
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
46
+ interface MeshToonNodeMaterial extends MeshToonNodeMaterialNodeProperties, MeshToonMaterialProperties {}
47
+
48
+ export default MeshToonNodeMaterial;