super-three 0.181.0 → 0.185.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 (693) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +3 -4
  3. package/build/three.cjs +21332 -19201
  4. package/build/three.core.js +20908 -19853
  5. package/build/three.core.min.js +2 -2
  6. package/build/three.module.js +1947 -862
  7. package/build/three.module.min.js +2 -2
  8. package/build/three.tsl.js +37 -16
  9. package/build/three.tsl.min.js +2 -2
  10. package/build/three.webgpu.js +33628 -25197
  11. package/build/three.webgpu.min.js +2 -2
  12. package/build/three.webgpu.nodes.js +33394 -25000
  13. package/build/three.webgpu.nodes.min.js +2 -2
  14. package/examples/jsm/Addons.js +14 -3
  15. package/examples/jsm/animation/CCDIKSolver.js +7 -3
  16. package/examples/jsm/controls/ArcballControls.js +13 -6
  17. package/examples/jsm/controls/DragControls.js +2 -2
  18. package/examples/jsm/controls/FirstPersonControls.js +127 -86
  19. package/examples/jsm/controls/FlyControls.js +4 -0
  20. package/examples/jsm/controls/MapControls.js +55 -1
  21. package/examples/jsm/controls/OrbitControls.js +111 -8
  22. package/examples/jsm/controls/TrackballControls.js +8 -8
  23. package/examples/jsm/controls/TransformControls.js +102 -17
  24. package/examples/jsm/csm/CSM.js +2 -1
  25. package/examples/jsm/csm/CSMFrustum.js +31 -6
  26. package/examples/jsm/csm/CSMShadowNode.js +10 -3
  27. package/examples/jsm/effects/AnaglyphEffect.js +102 -7
  28. package/examples/jsm/effects/AsciiEffect.js +14 -1
  29. package/examples/jsm/environments/ColorEnvironment.js +59 -0
  30. package/examples/jsm/environments/RoomEnvironment.js +3 -0
  31. package/examples/jsm/exporters/DRACOExporter.js +27 -6
  32. package/examples/jsm/exporters/EXRExporter.js +1 -1
  33. package/examples/jsm/exporters/GLTFExporter.js +266 -21
  34. package/examples/jsm/exporters/PLYExporter.js +286 -73
  35. package/examples/jsm/exporters/USDZExporter.js +353 -99
  36. package/examples/jsm/generators/CityGenerator.js +346 -0
  37. package/examples/jsm/generators/ForestGenerator.js +347 -0
  38. package/examples/jsm/generators/TerrainGenerator.js +504 -0
  39. package/examples/jsm/generators/TreeGenerator.js +377 -0
  40. package/examples/jsm/generators/city/SidewalkGenerator.js +253 -0
  41. package/examples/jsm/generators/city/SkyscraperGenerator.js +1357 -0
  42. package/examples/jsm/geometries/DecalGeometry.js +1 -1
  43. package/examples/jsm/geometries/LoftGeometry.js +355 -0
  44. package/examples/jsm/geometries/TextGeometry.js +18 -0
  45. package/examples/jsm/helpers/AnimationPathHelper.js +302 -0
  46. package/examples/jsm/helpers/LightProbeGridHelper.js +221 -0
  47. package/examples/jsm/helpers/LightProbeHelper.js +5 -4
  48. package/examples/jsm/helpers/LightProbeHelperGPU.js +1 -1
  49. package/examples/jsm/helpers/TextureHelperGPU.js +1 -1
  50. package/examples/jsm/helpers/ViewHelper.js +83 -14
  51. package/examples/jsm/inspector/Extension.js +13 -0
  52. package/examples/jsm/inspector/Inspector.js +244 -91
  53. package/examples/jsm/inspector/RendererInspector.js +165 -39
  54. package/examples/jsm/inspector/extensions/tsl-graph/TSLGraphEditor.js +916 -0
  55. package/examples/jsm/inspector/extensions/tsl-graph/TSLGraphLoader.js +281 -0
  56. package/examples/jsm/inspector/tabs/Console.js +241 -25
  57. package/examples/jsm/inspector/tabs/Memory.js +136 -0
  58. package/examples/jsm/inspector/tabs/Parameters.js +115 -7
  59. package/examples/jsm/inspector/tabs/Performance.js +24 -9
  60. package/examples/jsm/inspector/tabs/Settings.js +306 -0
  61. package/examples/jsm/inspector/tabs/Timeline.js +1696 -0
  62. package/examples/jsm/inspector/tabs/Viewer.js +723 -9
  63. package/examples/jsm/inspector/ui/Graph.js +162 -25
  64. package/examples/jsm/inspector/ui/Item.js +92 -13
  65. package/examples/jsm/inspector/ui/List.js +2 -2
  66. package/examples/jsm/inspector/ui/Profiler.js +1991 -44
  67. package/examples/jsm/inspector/ui/Style.js +1943 -543
  68. package/examples/jsm/inspector/ui/Tab.js +226 -5
  69. package/examples/jsm/inspector/ui/Values.js +126 -8
  70. package/examples/jsm/inspector/ui/utils.js +143 -10
  71. package/examples/jsm/interaction/InteractionManager.js +226 -0
  72. package/examples/jsm/libs/basis/README.md +0 -1
  73. package/examples/jsm/libs/demuxer_mp4.js +3 -3
  74. package/examples/jsm/libs/draco/README.md +0 -1
  75. package/examples/jsm/libs/meshopt_clusterizer.module.js +421 -0
  76. package/examples/jsm/libs/meshopt_decoder.module.js +9 -8
  77. package/examples/jsm/libs/meshopt_simplifier.module.js +627 -0
  78. package/examples/jsm/libs/mikktspace.module.js +34 -9
  79. package/examples/jsm/lighting/ClusteredLighting.js +55 -0
  80. package/examples/jsm/lighting/DynamicLighting.js +82 -0
  81. package/examples/jsm/lighting/LightProbeGrid.js +681 -0
  82. package/examples/jsm/lines/LineMaterial.js +45 -16
  83. package/examples/jsm/lines/LineSegments2.js +8 -0
  84. package/examples/jsm/lines/webgpu/LineSegments2.js +8 -0
  85. package/examples/jsm/loaders/3DMLoader.js +6 -5
  86. package/examples/jsm/loaders/3MFLoader.js +2 -2
  87. package/examples/jsm/loaders/AMFLoader.js +2 -2
  88. package/examples/jsm/loaders/ColladaLoader.js +24 -4026
  89. package/examples/jsm/loaders/DRACOLoader.js +51 -18
  90. package/examples/jsm/loaders/EXRLoader.js +701 -90
  91. package/examples/jsm/loaders/FBXLoader.js +235 -37
  92. package/examples/jsm/loaders/GCodeLoader.js +34 -8
  93. package/examples/jsm/loaders/GLTFLoader.js +146 -178
  94. package/examples/jsm/loaders/HDRLoader.js +7 -30
  95. package/examples/jsm/loaders/KMZLoader.js +5 -5
  96. package/examples/jsm/loaders/KTX2Loader.js +58 -17
  97. package/examples/jsm/loaders/LDrawLoader.js +49 -58
  98. package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
  99. package/examples/jsm/loaders/LUTCubeLoader.js +2 -2
  100. package/examples/jsm/loaders/LWOLoader.js +11 -39
  101. package/examples/jsm/loaders/LottieLoader.js +1 -1
  102. package/examples/jsm/loaders/MaterialXLoader.js +31 -9
  103. package/examples/jsm/loaders/NRRDLoader.js +5 -5
  104. package/examples/jsm/loaders/PCDLoader.js +11 -9
  105. package/examples/jsm/loaders/PLYLoader.js +218 -55
  106. package/examples/jsm/loaders/SVGLoader.js +549 -497
  107. package/examples/jsm/loaders/TDSLoader.js +0 -2
  108. package/examples/jsm/loaders/TGALoader.js +0 -2
  109. package/examples/jsm/loaders/TTFLoader.js +1 -1
  110. package/examples/jsm/loaders/USDLoader.js +127 -43
  111. package/examples/jsm/loaders/UltraHDRLoader.js +285 -160
  112. package/examples/jsm/loaders/VOXLoader.js +660 -117
  113. package/examples/jsm/loaders/VRMLLoader.js +80 -3
  114. package/examples/jsm/loaders/VTKLoader.js +42 -25
  115. package/examples/jsm/loaders/collada/ColladaComposer.js +3044 -0
  116. package/examples/jsm/loaders/collada/ColladaParser.js +1977 -0
  117. package/examples/jsm/loaders/usd/USDAParser.js +504 -344
  118. package/examples/jsm/loaders/usd/USDCParser.js +1867 -6
  119. package/examples/jsm/loaders/usd/USDComposer.js +4627 -0
  120. package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +2 -2
  121. package/examples/jsm/materials/WoodNodeMaterial.js +11 -11
  122. package/examples/jsm/math/Octree.js +131 -1
  123. package/examples/jsm/misc/GPUComputationRenderer.js +2 -0
  124. package/examples/jsm/misc/RollerCoaster.js +42 -4
  125. package/examples/jsm/misc/TileCreasedNormalsPlugin.js +270 -0
  126. package/examples/jsm/misc/Volume.js +2 -3
  127. package/examples/jsm/misc/VolumeSlice.js +0 -1
  128. package/examples/jsm/modifiers/TessellateModifier.js +1 -1
  129. package/examples/jsm/objects/GroundedSkybox.js +1 -1
  130. package/examples/jsm/objects/LensflareMesh.js +1 -1
  131. package/examples/jsm/objects/Reflector.js +72 -25
  132. package/examples/jsm/objects/Sky.js +90 -6
  133. package/examples/jsm/objects/SkyMesh.js +150 -16
  134. package/examples/jsm/objects/Water.js +4 -3
  135. package/examples/jsm/objects/Water2.js +5 -3
  136. package/examples/jsm/objects/Water2Mesh.js +1 -1
  137. package/examples/jsm/objects/WaterMesh.js +5 -7
  138. package/examples/jsm/physics/AmmoPhysics.js +27 -15
  139. package/examples/jsm/physics/JoltPhysics.js +10 -6
  140. package/examples/jsm/physics/RapierPhysics.js +36 -7
  141. package/examples/jsm/postprocessing/EffectComposer.js +7 -5
  142. package/examples/jsm/postprocessing/OutputPass.js +9 -0
  143. package/examples/jsm/postprocessing/RenderPass.js +10 -0
  144. package/examples/jsm/postprocessing/RenderTransitionPass.js +1 -1
  145. package/examples/jsm/postprocessing/UnrealBloomPass.js +48 -18
  146. package/examples/jsm/renderers/CSS3DRenderer.js +1 -1
  147. package/examples/jsm/renderers/Projector.js +246 -28
  148. package/examples/jsm/renderers/SVGRenderer.js +174 -60
  149. package/examples/jsm/shaders/GTAOShader.js +19 -6
  150. package/examples/jsm/shaders/HalftoneShader.js +12 -1
  151. package/examples/jsm/shaders/PoissonDenoiseShader.js +6 -2
  152. package/examples/jsm/shaders/SAOShader.js +17 -4
  153. package/examples/jsm/shaders/SSAOShader.js +11 -1
  154. package/examples/jsm/shaders/SSRShader.js +6 -5
  155. package/examples/jsm/shaders/UnpackDepthRGBAShader.js +2 -4
  156. package/examples/jsm/shaders/VignetteShader.js +1 -1
  157. package/examples/jsm/shaders/VolumeShader.js +31 -44
  158. package/examples/jsm/transpiler/AST.js +44 -0
  159. package/examples/jsm/transpiler/GLSLDecoder.js +65 -8
  160. package/examples/jsm/transpiler/Linker.js +1 -1
  161. package/examples/jsm/transpiler/ShaderToyDecoder.js +2 -0
  162. package/examples/jsm/transpiler/TSLEncoder.js +46 -3
  163. package/examples/jsm/transpiler/TranspilerUtils.js +3 -3
  164. package/examples/jsm/transpiler/WGSLEncoder.js +27 -0
  165. package/examples/jsm/tsl/WebGLNodesHandler.js +605 -0
  166. package/examples/jsm/tsl/display/AfterImageNode.js +11 -1
  167. package/examples/jsm/tsl/display/AnaglyphPassNode.js +458 -16
  168. package/examples/jsm/tsl/display/BilateralBlurNode.js +374 -0
  169. package/examples/jsm/tsl/display/BloomNode.js +75 -25
  170. package/examples/jsm/tsl/display/CRT.js +150 -0
  171. package/examples/jsm/tsl/display/ChromaticAberrationNode.js +3 -36
  172. package/examples/jsm/tsl/display/DenoiseNode.js +1 -1
  173. package/examples/jsm/tsl/display/DepthOfFieldNode.js +3 -3
  174. package/examples/jsm/tsl/display/DotScreenNode.js +1 -1
  175. package/examples/jsm/tsl/display/FSR1Node.js +477 -0
  176. package/examples/jsm/tsl/display/FXAANode.js +13 -14
  177. package/examples/jsm/tsl/display/GTAONode.js +40 -17
  178. package/examples/jsm/tsl/display/GaussianBlurNode.js +21 -2
  179. package/examples/jsm/tsl/display/GodraysNode.js +615 -0
  180. package/examples/jsm/tsl/display/ImportanceSampledEnvironment.js +560 -0
  181. package/examples/jsm/tsl/display/LensflareNode.js +1 -1
  182. package/examples/jsm/tsl/display/Lut3DNode.js +1 -1
  183. package/examples/jsm/tsl/display/OutlineNode.js +69 -19
  184. package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +2 -2
  185. package/examples/jsm/tsl/display/PixelationPassNode.js +9 -8
  186. package/examples/jsm/tsl/display/RGBShiftNode.js +2 -2
  187. package/examples/jsm/tsl/display/RecurrentDenoiseNode.js +912 -0
  188. package/examples/jsm/tsl/display/RetroPassNode.js +263 -0
  189. package/examples/jsm/tsl/display/SMAANode.js +2 -2
  190. package/examples/jsm/tsl/display/SSAAPassNode.js +15 -27
  191. package/examples/jsm/tsl/display/SSGINode.js +96 -62
  192. package/examples/jsm/tsl/display/SSRNode.js +831 -134
  193. package/examples/jsm/tsl/display/SSSNode.js +8 -6
  194. package/examples/jsm/tsl/display/Shape.js +29 -0
  195. package/examples/jsm/tsl/display/SharpenNode.js +283 -0
  196. package/examples/jsm/tsl/display/SobelOperatorNode.js +2 -2
  197. package/examples/jsm/tsl/display/StereoCompositePassNode.js +8 -1
  198. package/examples/jsm/tsl/display/StereoPassNode.js +1 -2
  199. package/examples/jsm/tsl/display/TAAUNode.js +835 -0
  200. package/examples/jsm/tsl/display/TRAANode.js +315 -126
  201. package/examples/jsm/tsl/display/TemporalReprojectNode.js +1023 -0
  202. package/examples/jsm/tsl/display/TransitionNode.js +1 -1
  203. package/examples/jsm/tsl/display/depthAwareBlend.js +80 -0
  204. package/examples/jsm/tsl/display/radialBlur.js +68 -0
  205. package/examples/jsm/tsl/lighting/ClusteredLightsNode.js +622 -0
  206. package/examples/jsm/tsl/lighting/DynamicLightsNode.js +300 -0
  207. package/examples/jsm/tsl/lighting/data/AmbientLightDataNode.js +61 -0
  208. package/examples/jsm/tsl/lighting/data/DirectionalLightDataNode.js +111 -0
  209. package/examples/jsm/tsl/lighting/data/HemisphereLightDataNode.js +99 -0
  210. package/examples/jsm/tsl/lighting/data/PointLightDataNode.js +134 -0
  211. package/examples/jsm/tsl/lighting/data/SpotLightDataNode.js +161 -0
  212. package/examples/jsm/tsl/math/Bayer.js +53 -3
  213. package/examples/jsm/tsl/math/curlNoise.js +107 -0
  214. package/examples/jsm/tsl/shadows/TileShadowNode.js +1 -1
  215. package/examples/jsm/tsl/shadows/TileShadowNodeHelper.js +3 -3
  216. package/examples/jsm/tsl/utils/GroundedSkybox.js +62 -0
  217. package/examples/jsm/tsl/utils/RNoise.js +51 -0
  218. package/examples/jsm/tsl/utils/SpecularHelpers.js +325 -0
  219. package/examples/jsm/utils/BufferGeometryUtils.js +128 -62
  220. package/examples/jsm/utils/ColorUtils.js +76 -0
  221. package/examples/jsm/utils/GeometryCompressionUtils.js +1 -1
  222. package/examples/jsm/utils/LDrawUtils.js +1 -1
  223. package/examples/jsm/utils/SceneOptimizer.js +1 -1
  224. package/examples/jsm/utils/ShadowMapViewer.js +24 -10
  225. package/examples/jsm/utils/ShadowMapViewerGPU.js +1 -1
  226. package/examples/jsm/utils/SkeletonUtils.js +14 -8
  227. package/examples/jsm/utils/WebGPUTextureUtils.js +1 -1
  228. package/examples/jsm/webxr/ARButton.js +1 -1
  229. package/examples/jsm/webxr/WebGLXRFallback.js +89 -0
  230. package/examples/jsm/webxr/XRControllerModelFactory.js +2 -2
  231. package/examples/jsm/webxr/XRHandMeshModel.js +36 -10
  232. package/examples/jsm/webxr/XRHandModelFactory.js +2 -1
  233. package/package.json +28 -34
  234. package/src/Three.Core.js +3 -1
  235. package/src/Three.TSL.js +35 -14
  236. package/src/Three.WebGPU.Nodes.js +5 -0
  237. package/src/Three.WebGPU.js +13 -0
  238. package/src/Three.js +1 -0
  239. package/src/animation/AnimationAction.js +18 -4
  240. package/src/animation/AnimationClip.js +0 -139
  241. package/src/animation/AnimationMixer.js +6 -0
  242. package/src/animation/AnimationUtils.js +1 -12
  243. package/src/animation/KeyframeTrack.js +47 -8
  244. package/src/animation/PropertyBinding.js +2 -2
  245. package/src/animation/PropertyMixer.js +4 -4
  246. package/src/animation/tracks/BooleanKeyframeTrack.js +1 -1
  247. package/src/animation/tracks/ColorKeyframeTrack.js +1 -1
  248. package/src/animation/tracks/NumberKeyframeTrack.js +1 -1
  249. package/src/animation/tracks/QuaternionKeyframeTrack.js +1 -1
  250. package/src/animation/tracks/StringKeyframeTrack.js +1 -1
  251. package/src/animation/tracks/VectorKeyframeTrack.js +1 -1
  252. package/src/audio/Audio.js +1 -1
  253. package/src/audio/AudioContext.js +2 -2
  254. package/src/audio/AudioListener.js +5 -3
  255. package/src/cameras/Camera.js +34 -4
  256. package/src/cameras/CubeCamera.js +20 -0
  257. package/src/cameras/StereoCamera.js +5 -2
  258. package/src/constants.js +90 -5
  259. package/src/core/BufferAttribute.js +13 -1
  260. package/src/core/BufferGeometry.js +43 -9
  261. package/src/core/Clock.js +7 -0
  262. package/src/core/Object3D.js +69 -11
  263. package/src/core/Raycaster.js +3 -3
  264. package/src/core/RenderTarget.js +19 -6
  265. package/src/extras/PMREMGenerator.js +13 -22
  266. package/src/extras/TextureUtils.js +6 -2
  267. package/src/extras/core/ShapePath.js +149 -160
  268. package/src/extras/curves/CatmullRomCurve3.js +3 -2
  269. package/src/geometries/ExtrudeGeometry.js +2 -2
  270. package/src/geometries/PolyhedronGeometry.js +1 -1
  271. package/src/geometries/SphereGeometry.js +8 -3
  272. package/src/geometries/TorusGeometry.js +8 -3
  273. package/src/helpers/CameraHelper.js +3 -0
  274. package/src/helpers/DirectionalLightHelper.js +6 -1
  275. package/src/helpers/HemisphereLightHelper.js +5 -0
  276. package/src/helpers/PointLightHelper.js +3 -25
  277. package/src/helpers/SpotLightHelper.js +4 -1
  278. package/src/lights/DirectionalLight.js +13 -0
  279. package/src/lights/HemisphereLight.js +10 -0
  280. package/src/lights/Light.js +1 -11
  281. package/src/lights/LightProbe.js +0 -15
  282. package/src/lights/LightShadow.js +15 -6
  283. package/src/lights/PointLight.js +15 -0
  284. package/src/lights/PointLightShadow.js +0 -86
  285. package/src/lights/SpotLight.js +22 -1
  286. package/src/lights/webgpu/IESSpotLight.js +2 -1
  287. package/src/loaders/AudioLoader.js +11 -1
  288. package/src/loaders/Cache.js +28 -0
  289. package/src/loaders/DataTextureLoader.js +75 -42
  290. package/src/loaders/FileLoader.js +2 -3
  291. package/src/loaders/ImageBitmapLoader.js +12 -9
  292. package/src/loaders/Loader.js +6 -0
  293. package/src/loaders/LoadingManager.js +5 -0
  294. package/src/loaders/MaterialLoader.js +37 -266
  295. package/src/loaders/ObjectLoader.js +48 -6
  296. package/src/loaders/nodes/NodeLoader.js +2 -2
  297. package/src/loaders/nodes/NodeObjectLoader.js +18 -0
  298. package/src/materials/LineBasicMaterial.js +4 -0
  299. package/src/materials/Material.js +198 -1
  300. package/src/materials/MeshBasicMaterial.js +24 -0
  301. package/src/materials/MeshDepthMaterial.js +10 -0
  302. package/src/materials/MeshDistanceMaterial.js +10 -0
  303. package/src/materials/MeshLambertMaterial.js +49 -1
  304. package/src/materials/MeshMatcapMaterial.js +25 -1
  305. package/src/materials/MeshNormalMaterial.js +9 -1
  306. package/src/materials/MeshPhongMaterial.js +49 -1
  307. package/src/materials/MeshPhysicalMaterial.js +38 -0
  308. package/src/materials/MeshStandardMaterial.js +42 -1
  309. package/src/materials/MeshToonMaterial.js +35 -2
  310. package/src/materials/PointsMaterial.js +7 -0
  311. package/src/materials/ShaderMaterial.js +106 -1
  312. package/src/materials/SpriteMaterial.js +7 -0
  313. package/src/materials/nodes/Line2NodeMaterial.js +380 -297
  314. package/src/materials/nodes/MeshBasicNodeMaterial.js +2 -2
  315. package/src/materials/nodes/MeshNormalNodeMaterial.js +2 -2
  316. package/src/materials/nodes/MeshPhongNodeMaterial.js +0 -9
  317. package/src/materials/nodes/MeshPhysicalNodeMaterial.js +3 -30
  318. package/src/materials/nodes/MeshSSSNodeMaterial.js +0 -13
  319. package/src/materials/nodes/MeshStandardNodeMaterial.js +5 -15
  320. package/src/materials/nodes/NodeMaterial.js +153 -89
  321. package/src/materials/nodes/SpriteNodeMaterial.js +0 -10
  322. package/src/materials/nodes/manager/NodeMaterialObserver.js +234 -100
  323. package/src/math/Box3.js +5 -0
  324. package/src/math/FrustumArray.js +103 -133
  325. package/src/math/Interpolant.js +1 -1
  326. package/src/math/Line3.js +6 -5
  327. package/src/math/MathUtils.js +12 -12
  328. package/src/math/Matrix2.js +13 -9
  329. package/src/math/Matrix3.js +24 -9
  330. package/src/math/Matrix4.js +112 -74
  331. package/src/math/Plane.js +4 -3
  332. package/src/math/Quaternion.js +3 -29
  333. package/src/math/Sphere.js +1 -1
  334. package/src/math/Triangle.js +1 -1
  335. package/src/math/Vector2.js +13 -9
  336. package/src/math/Vector3.js +17 -15
  337. package/src/math/Vector4.js +15 -11
  338. package/src/math/interpolants/BezierInterpolant.js +106 -0
  339. package/src/nodes/Nodes.js +86 -71
  340. package/src/nodes/TSL.js +15 -13
  341. package/src/nodes/accessors/Arrays.js +5 -5
  342. package/src/nodes/accessors/Batch.js +108 -0
  343. package/src/nodes/accessors/Bitangent.js +7 -7
  344. package/src/nodes/accessors/BufferAttributeNode.js +120 -17
  345. package/src/nodes/accessors/BufferNode.js +29 -2
  346. package/src/nodes/accessors/Camera.js +149 -28
  347. package/src/nodes/accessors/ClippingNode.js +5 -5
  348. package/src/nodes/accessors/CubeTextureNode.js +27 -2
  349. package/src/nodes/accessors/Instance.js +264 -0
  350. package/src/nodes/accessors/MaterialNode.js +27 -3
  351. package/src/nodes/accessors/MaterialProperties.js +6 -8
  352. package/src/nodes/accessors/MaterialReferenceNode.js +1 -2
  353. package/src/nodes/accessors/ModelNode.js +1 -1
  354. package/src/nodes/accessors/{MorphNode.js → Morph.js} +99 -112
  355. package/src/nodes/accessors/Normal.js +24 -24
  356. package/src/nodes/accessors/Object3DNode.js +1 -1
  357. package/src/nodes/accessors/Position.js +39 -3
  358. package/src/nodes/accessors/ReferenceBaseNode.js +6 -6
  359. package/src/nodes/accessors/ReferenceNode.js +9 -8
  360. package/src/nodes/accessors/ReflectVector.js +3 -3
  361. package/src/nodes/accessors/RendererReferenceNode.js +1 -2
  362. package/src/nodes/accessors/SceneProperties.js +47 -0
  363. package/src/nodes/accessors/Skinning.js +263 -0
  364. package/src/nodes/accessors/StorageBufferNode.js +16 -27
  365. package/src/nodes/accessors/StorageTexture3DNode.js +100 -0
  366. package/src/nodes/accessors/StorageTextureNode.js +74 -11
  367. package/src/nodes/accessors/Tangent.js +8 -18
  368. package/src/nodes/accessors/Texture3DNode.js +32 -35
  369. package/src/nodes/accessors/TextureNode.js +124 -25
  370. package/src/nodes/accessors/UniformArrayNode.js +6 -4
  371. package/src/nodes/accessors/UserDataNode.js +1 -2
  372. package/src/nodes/accessors/VertexColorNode.js +1 -2
  373. package/src/nodes/code/FunctionCallNode.js +1 -1
  374. package/src/nodes/code/FunctionNode.js +4 -19
  375. package/src/nodes/core/ArrayNode.js +21 -2
  376. package/src/nodes/core/AssignNode.js +3 -3
  377. package/src/nodes/core/AttributeNode.js +3 -3
  378. package/src/nodes/core/BypassNode.js +1 -1
  379. package/src/nodes/core/ContextNode.js +104 -5
  380. package/src/nodes/core/IndexNode.js +2 -1
  381. package/src/nodes/core/InputNode.js +1 -1
  382. package/src/nodes/core/InspectorNode.js +1 -1
  383. package/src/nodes/core/IsolateNode.js +1 -1
  384. package/src/nodes/core/MRTNode.js +55 -4
  385. package/src/nodes/core/Node.js +151 -17
  386. package/src/nodes/core/NodeBuilder.js +479 -101
  387. package/src/nodes/core/NodeError.js +28 -0
  388. package/src/nodes/core/NodeFrame.js +12 -4
  389. package/src/nodes/core/NodeUtils.js +20 -18
  390. package/src/nodes/core/OutputStructNode.js +13 -11
  391. package/src/nodes/core/OverrideContextNode.js +153 -0
  392. package/src/nodes/core/ParameterNode.js +4 -4
  393. package/src/nodes/core/PropertyNode.js +66 -4
  394. package/src/nodes/core/StackNode.js +91 -20
  395. package/src/nodes/core/StackTrace.js +139 -0
  396. package/src/nodes/core/StructNode.js +20 -8
  397. package/src/nodes/core/StructTypeNode.js +17 -23
  398. package/src/nodes/core/SubBuildNode.js +2 -2
  399. package/src/nodes/core/UniformGroupNode.js +36 -6
  400. package/src/nodes/core/UniformNode.js +21 -5
  401. package/src/nodes/core/VarNode.js +56 -23
  402. package/src/nodes/core/VaryingNode.js +14 -21
  403. package/src/nodes/display/BlendModes.js +1 -105
  404. package/src/nodes/display/BumpMapNode.js +6 -1
  405. package/src/nodes/display/ColorAdjustment.js +27 -9
  406. package/src/nodes/display/ColorSpaceNode.js +3 -3
  407. package/src/nodes/display/FrontFacingNode.js +38 -9
  408. package/src/nodes/display/NormalMapNode.js +41 -6
  409. package/src/nodes/display/PassNode.js +157 -56
  410. package/src/nodes/display/PremultiplyAlphaFunctions.js +39 -0
  411. package/src/nodes/display/RenderOutputNode.js +19 -10
  412. package/src/nodes/display/ScreenNode.js +4 -2
  413. package/src/nodes/display/ToneMappingNode.js +1 -1
  414. package/src/nodes/display/ToonOutlinePassNode.js +2 -2
  415. package/src/nodes/display/ViewportDepthNode.js +52 -4
  416. package/src/nodes/display/ViewportDepthTextureNode.js +11 -15
  417. package/src/nodes/display/ViewportTextureNode.js +39 -11
  418. package/src/nodes/fog/Fog.js +18 -35
  419. package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +3 -3
  420. package/src/nodes/functions/BSDF/DFGLUT.js +56 -0
  421. package/src/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
  422. package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +2 -2
  423. package/src/nodes/functions/PhysicalLightingModel.js +126 -45
  424. package/src/nodes/functions/VolumetricLightingModel.js +40 -7
  425. package/src/nodes/geometry/RangeNode.js +5 -3
  426. package/src/nodes/gpgpu/AtomicFunctionNode.js +1 -1
  427. package/src/nodes/gpgpu/BarrierNode.js +9 -0
  428. package/src/nodes/gpgpu/ComputeBuiltinNode.js +2 -3
  429. package/src/nodes/gpgpu/ComputeNode.js +74 -48
  430. package/src/nodes/gpgpu/SubgroupFunctionNode.js +2 -2
  431. package/src/nodes/gpgpu/WorkgroupInfoNode.js +5 -5
  432. package/src/nodes/lighting/AnalyticLightNode.js +53 -0
  433. package/src/nodes/lighting/EnvironmentNode.js +30 -5
  434. package/src/nodes/lighting/IESSpotLightNode.js +40 -2
  435. package/src/nodes/lighting/LightingContextNode.js +10 -2
  436. package/src/nodes/lighting/LightsNode.js +97 -65
  437. package/src/nodes/lighting/PointShadowNode.js +166 -148
  438. package/src/nodes/lighting/ShadowFilterNode.js +74 -117
  439. package/src/nodes/lighting/ShadowNode.js +149 -51
  440. package/src/nodes/materialx/lib/mx_noise.js +2 -2
  441. package/src/nodes/math/BitcastNode.js +1 -1
  442. package/src/nodes/math/BitcountNode.js +433 -0
  443. package/src/nodes/math/ConditionalNode.js +6 -6
  444. package/src/nodes/math/MathNode.js +115 -52
  445. package/src/nodes/math/OperatorNode.js +24 -23
  446. package/src/nodes/math/PackFloatNode.js +98 -0
  447. package/src/nodes/math/UnpackFloatNode.js +96 -0
  448. package/src/nodes/parsers/GLSLNodeFunction.js +1 -1
  449. package/src/nodes/pmrem/PMREMNode.js +34 -3
  450. package/src/nodes/pmrem/PMREMUtils.js +9 -15
  451. package/src/nodes/tsl/TSLBase.js +1 -1
  452. package/src/nodes/tsl/TSLCore.js +99 -33
  453. package/src/nodes/utils/ArrayElementNode.js +14 -1
  454. package/src/nodes/utils/ConvertNode.js +1 -1
  455. package/src/nodes/utils/DebugNode.js +12 -12
  456. package/src/nodes/utils/EquirectUV.js +30 -5
  457. package/src/nodes/utils/EventNode.js +31 -2
  458. package/src/nodes/utils/FlipNode.js +1 -1
  459. package/src/nodes/utils/FunctionOverloadingNode.js +2 -2
  460. package/src/nodes/utils/JoinNode.js +3 -3
  461. package/src/nodes/utils/LoopNode.js +1 -1
  462. package/src/nodes/utils/MemberNode.js +2 -2
  463. package/src/nodes/utils/Packing.js +48 -5
  464. package/src/nodes/utils/PostProcessingUtils.js +33 -1
  465. package/src/nodes/utils/RTTNode.js +41 -25
  466. package/src/nodes/utils/ReflectorNode.js +4 -4
  467. package/src/nodes/utils/Remap.js +48 -0
  468. package/src/nodes/utils/RotateNode.js +1 -1
  469. package/src/nodes/utils/SampleNode.js +1 -1
  470. package/src/nodes/utils/SetNode.js +1 -1
  471. package/src/nodes/utils/SplitNode.js +1 -1
  472. package/src/nodes/utils/SpriteSheetUV.js +35 -0
  473. package/src/nodes/utils/StorageArrayElementNode.js +1 -1
  474. package/src/nodes/utils/UVUtils.js +28 -0
  475. package/src/objects/BatchedMesh.js +66 -30
  476. package/src/objects/InstancedMesh.js +19 -3
  477. package/src/objects/Line.js +1 -1
  478. package/src/objects/Mesh.js +1 -1
  479. package/src/objects/Points.js +1 -1
  480. package/src/objects/SkinnedMesh.js +26 -9
  481. package/src/renderers/WebGLRenderer.js +344 -156
  482. package/src/renderers/common/Animation.js +3 -3
  483. package/src/renderers/common/Attributes.js +15 -1
  484. package/src/renderers/common/Backend.js +78 -13
  485. package/src/renderers/common/Background.js +26 -13
  486. package/src/renderers/common/BindGroup.js +1 -16
  487. package/src/renderers/common/Binding.js +11 -0
  488. package/src/renderers/common/Bindings.js +141 -57
  489. package/src/renderers/common/BlendMode.js +143 -0
  490. package/src/renderers/common/Buffer.js +49 -0
  491. package/src/renderers/common/BundleGroup.js +1 -1
  492. package/src/renderers/common/ChainMap.js +30 -6
  493. package/src/renderers/common/ClippingContext.js +10 -2
  494. package/src/renderers/common/ComputePipeline.js +1 -1
  495. package/src/renderers/common/CubeRenderTarget.js +51 -7
  496. package/src/renderers/common/Geometries.js +29 -3
  497. package/src/renderers/common/Info.js +374 -4
  498. package/src/renderers/common/InspectorBase.js +6 -1
  499. package/src/renderers/common/Lighting.js +51 -19
  500. package/src/renderers/common/Pipelines.js +40 -7
  501. package/src/renderers/common/PostProcessing.js +8 -206
  502. package/src/renderers/common/ReadbackBuffer.js +78 -0
  503. package/src/renderers/common/RenderBundle.js +3 -1
  504. package/src/renderers/common/RenderBundles.js +7 -3
  505. package/src/renderers/common/RenderContext.js +16 -0
  506. package/src/renderers/common/RenderContexts.js +33 -49
  507. package/src/renderers/common/RenderList.js +41 -4
  508. package/src/renderers/common/RenderLists.js +2 -1
  509. package/src/renderers/common/RenderObject.js +88 -16
  510. package/src/renderers/common/RenderObjectPipeline.js +40 -0
  511. package/src/renderers/common/RenderObjects.js +21 -5
  512. package/src/renderers/common/RenderPipeline.js +232 -17
  513. package/src/renderers/common/Renderer.js +700 -163
  514. package/src/renderers/common/Sampler.js +16 -48
  515. package/src/renderers/common/StorageBuffer.js +13 -1
  516. package/src/renderers/common/Textures.js +121 -9
  517. package/src/renderers/common/TimestampQueryPool.js +6 -4
  518. package/src/renderers/common/Uniform.js +8 -0
  519. package/src/renderers/common/UniformsGroup.js +84 -1
  520. package/src/renderers/common/XRManager.js +377 -51
  521. package/src/renderers/common/extras/PMREMGenerator.js +40 -61
  522. package/src/renderers/common/nodes/NodeBuilderState.js +10 -2
  523. package/src/renderers/common/nodes/NodeLibrary.js +4 -4
  524. package/src/renderers/common/nodes/{Nodes.js → NodeManager.js} +298 -106
  525. package/src/renderers/common/nodes/NodeStorageBuffer.js +13 -2
  526. package/src/renderers/common/nodes/NodeUniformBuffer.js +65 -0
  527. package/src/renderers/shaders/DFGLUTData.js +19 -34
  528. package/src/renderers/shaders/ShaderChunk/batching_pars_vertex.glsl.js +2 -2
  529. package/src/renderers/shaders/ShaderChunk/color_fragment.glsl.js +1 -5
  530. package/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl.js +1 -5
  531. package/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js +1 -5
  532. package/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js +8 -10
  533. package/src/renderers/shaders/ShaderChunk/common.glsl.js +13 -4
  534. package/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js +0 -6
  535. package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +0 -1
  536. package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +9 -13
  537. package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +2 -2
  538. package/src/renderers/shaders/ShaderChunk/envmap_vertex.glsl.js +1 -1
  539. package/src/renderers/shaders/ShaderChunk/lightprobes_pars_fragment.glsl.js +80 -0
  540. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +13 -2
  541. package/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js +6 -0
  542. package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +6 -2
  543. package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +3 -1
  544. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +8 -4
  545. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +112 -53
  546. package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +2 -2
  547. package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +7 -0
  548. package/src/renderers/shaders/ShaderChunk/normal_vertex.glsl.js +6 -0
  549. package/src/renderers/shaders/ShaderChunk/packing.glsl.js +20 -4
  550. package/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js +0 -1
  551. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +225 -186
  552. package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +12 -2
  553. package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +1 -1
  554. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +2 -2
  555. package/src/renderers/shaders/ShaderChunk.js +5 -3
  556. package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +1 -2
  557. package/src/renderers/shaders/ShaderLib/depth.glsl.js +3 -0
  558. package/src/renderers/shaders/ShaderLib/{distanceRGBA.glsl.js → distance.glsl.js} +2 -3
  559. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +2 -1
  560. package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +1 -2
  561. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +2 -1
  562. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +4 -9
  563. package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +0 -1
  564. package/src/renderers/shaders/ShaderLib/shadow.glsl.js +1 -1
  565. package/src/renderers/shaders/ShaderLib/vsm.glsl.js +4 -6
  566. package/src/renderers/shaders/ShaderLib.js +7 -6
  567. package/src/renderers/shaders/UniformsLib.js +7 -5
  568. package/src/renderers/shaders/UniformsUtils.js +27 -5
  569. package/src/renderers/webgl/WebGLAnimation.js +2 -1
  570. package/src/renderers/webgl/WebGLBackground.js +15 -15
  571. package/src/renderers/webgl/WebGLBindingStates.js +99 -27
  572. package/src/renderers/webgl/WebGLBufferRenderer.js +0 -32
  573. package/src/renderers/webgl/WebGLCapabilities.js +9 -4
  574. package/src/renderers/webgl/WebGLEnvironments.js +228 -0
  575. package/src/renderers/webgl/WebGLGeometries.js +10 -7
  576. package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +0 -32
  577. package/src/renderers/webgl/WebGLLights.js +18 -1
  578. package/src/renderers/webgl/WebGLMaterials.js +24 -13
  579. package/src/renderers/webgl/WebGLObjects.js +3 -1
  580. package/src/renderers/webgl/WebGLOutput.js +271 -0
  581. package/src/renderers/webgl/WebGLProgram.js +54 -113
  582. package/src/renderers/webgl/WebGLPrograms.js +74 -55
  583. package/src/renderers/webgl/WebGLRenderLists.js +24 -1
  584. package/src/renderers/webgl/WebGLRenderStates.js +13 -2
  585. package/src/renderers/webgl/WebGLShaderCache.js +5 -11
  586. package/src/renderers/webgl/WebGLShadowMap.js +188 -24
  587. package/src/renderers/webgl/WebGLState.js +75 -37
  588. package/src/renderers/webgl/WebGLTextures.js +230 -56
  589. package/src/renderers/webgl/WebGLUniforms.js +40 -3
  590. package/src/renderers/webgl/WebGLUniformsGroups.js +82 -35
  591. package/src/renderers/webgl/WebGLUtils.js +6 -2
  592. package/src/renderers/webgl-fallback/WebGLBackend.js +322 -92
  593. package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +0 -41
  594. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +295 -66
  595. package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +53 -19
  596. package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +25 -0
  597. package/src/renderers/webgl-fallback/utils/WebGLState.js +223 -6
  598. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +118 -73
  599. package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +10 -10
  600. package/src/renderers/webgl-fallback/utils/WebGLUtils.js +9 -3
  601. package/src/renderers/webgpu/WebGPUBackend.js +733 -302
  602. package/src/renderers/webgpu/WebGPURenderer.js +2 -1
  603. package/src/renderers/webgpu/descriptors/GPUBindGroupDescriptor.js +48 -0
  604. package/src/renderers/webgpu/descriptors/GPUBufferDescriptor.js +57 -0
  605. package/src/renderers/webgpu/descriptors/GPUCommandEncoderDescriptor.js +30 -0
  606. package/src/renderers/webgpu/descriptors/GPUComputePassDescriptor.js +38 -0
  607. package/src/renderers/webgpu/descriptors/GPUComputePipelineDescriptor.js +48 -0
  608. package/src/renderers/webgpu/descriptors/GPUCopyExternalImageDestInfo.js +47 -0
  609. package/src/renderers/webgpu/descriptors/GPUCopyExternalImageSourceInfo.js +50 -0
  610. package/src/renderers/webgpu/descriptors/GPUExtent3D.js +51 -0
  611. package/src/renderers/webgpu/descriptors/GPUPipelineLayoutDescriptor.js +39 -0
  612. package/src/renderers/webgpu/descriptors/GPUQuerySetDescriptor.js +47 -0
  613. package/src/renderers/webgpu/descriptors/GPURenderBundleEncoderDescriptor.js +74 -0
  614. package/src/renderers/webgpu/descriptors/GPURenderPassColorAttachment.js +72 -0
  615. package/src/renderers/webgpu/descriptors/GPURenderPassDepthStencilAttachment.js +99 -0
  616. package/src/renderers/webgpu/descriptors/GPURenderPassDescriptor.js +72 -0
  617. package/src/renderers/webgpu/descriptors/GPURenderPassTimestampWrites.js +49 -0
  618. package/src/renderers/webgpu/descriptors/GPURenderPipelineDescriptor.js +130 -0
  619. package/src/renderers/webgpu/descriptors/GPUSamplerDescriptor.js +119 -0
  620. package/src/renderers/webgpu/descriptors/GPUShaderModuleDescriptor.js +46 -0
  621. package/src/renderers/webgpu/descriptors/GPUTexelCopyBufferInfo.js +57 -0
  622. package/src/renderers/webgpu/descriptors/GPUTexelCopyBufferLayout.js +48 -0
  623. package/src/renderers/webgpu/descriptors/GPUTexelCopyTextureInfo.js +61 -0
  624. package/src/renderers/webgpu/descriptors/GPUTextureDescriptor.js +99 -0
  625. package/src/renderers/webgpu/descriptors/GPUTextureViewDescriptor.js +108 -0
  626. package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +0 -1
  627. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +526 -93
  628. package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +1 -1
  629. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +194 -61
  630. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +395 -234
  631. package/src/renderers/webgpu/utils/WebGPUCapabilities.js +48 -0
  632. package/src/renderers/webgpu/utils/WebGPUConstants.js +10 -0
  633. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +224 -91
  634. package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +228 -213
  635. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +428 -175
  636. package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +40 -25
  637. package/src/renderers/webgpu/utils/WebGPUUtils.js +70 -13
  638. package/src/renderers/webxr/WebXRController.js +12 -0
  639. package/src/renderers/webxr/WebXRManager.js +4 -2
  640. package/src/textures/CubeDepthTexture.js +76 -0
  641. package/src/textures/DepthTexture.js +1 -1
  642. package/src/textures/ExternalTexture.js +0 -3
  643. package/src/textures/HTMLTexture.js +74 -0
  644. package/src/textures/Source.js +2 -2
  645. package/src/textures/Texture.js +16 -5
  646. package/src/utils.js +280 -3
  647. package/examples/fonts/LICENSE +0 -13
  648. package/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
  649. package/examples/fonts/MPLUSRounded1c/OFL.txt +0 -91
  650. package/examples/fonts/README.md +0 -11
  651. package/examples/fonts/droid/NOTICE +0 -190
  652. package/examples/fonts/droid/README.txt +0 -18
  653. package/examples/fonts/droid/droid_sans_bold.typeface.json +0 -1
  654. package/examples/fonts/droid/droid_sans_mono_regular.typeface.json +0 -1
  655. package/examples/fonts/droid/droid_sans_regular.typeface.json +0 -1
  656. package/examples/fonts/droid/droid_serif_bold.typeface.json +0 -1
  657. package/examples/fonts/droid/droid_serif_regular.typeface.json +0 -1
  658. package/examples/fonts/gentilis_bold.typeface.json +0 -1
  659. package/examples/fonts/gentilis_regular.typeface.json +0 -1
  660. package/examples/fonts/helvetiker_bold.typeface.json +0 -1
  661. package/examples/fonts/helvetiker_regular.typeface.json +0 -1
  662. package/examples/fonts/optimer_bold.typeface.json +0 -1
  663. package/examples/fonts/optimer_regular.typeface.json +0 -1
  664. package/examples/fonts/ttf/README.md +0 -9
  665. package/examples/fonts/ttf/kenpixel.ttf +0 -0
  666. package/examples/jsm/libs/ammo.wasm.js +0 -822
  667. package/examples/jsm/libs/ammo.wasm.wasm +0 -0
  668. package/examples/jsm/libs/draco/draco_encoder.js +0 -33
  669. package/examples/jsm/libs/draco/gltf/draco_encoder.js +0 -33
  670. package/examples/jsm/libs/lottie_canvas.module.js +0 -14849
  671. package/examples/jsm/libs/opentype.module.js +0 -14506
  672. package/examples/jsm/libs/rhino3dm/rhino3dm.js +0 -21
  673. package/examples/jsm/libs/rhino3dm/rhino3dm.module.js +0 -16
  674. package/examples/jsm/libs/rhino3dm/rhino3dm.wasm +0 -0
  675. package/examples/jsm/lighting/TiledLighting.js +0 -42
  676. package/examples/jsm/materials/MeshGouraudMaterial.js +0 -434
  677. package/examples/jsm/materials/MeshPostProcessingMaterial.js +0 -167
  678. package/examples/jsm/shaders/GodRaysShader.js +0 -333
  679. package/examples/jsm/tsl/display/AnamorphicNode.js +0 -282
  680. package/examples/jsm/tsl/lighting/TiledLightsNode.js +0 -442
  681. package/src/nodes/accessors/BatchNode.js +0 -163
  682. package/src/nodes/accessors/InstanceNode.js +0 -244
  683. package/src/nodes/accessors/InstancedMeshNode.js +0 -50
  684. package/src/nodes/accessors/SceneNode.js +0 -145
  685. package/src/nodes/accessors/SkinningNode.js +0 -327
  686. package/src/nodes/code/ScriptableNode.js +0 -726
  687. package/src/nodes/code/ScriptableValueNode.js +0 -253
  688. package/src/nodes/display/PosterizeNode.js +0 -65
  689. package/src/nodes/functions/BSDF/DFGApprox.js +0 -71
  690. package/src/nodes/utils/RemapNode.js +0 -125
  691. package/src/nodes/utils/SpriteSheetUVNode.js +0 -90
  692. package/src/renderers/webgl/WebGLCubeMaps.js +0 -99
  693. package/src/renderers/webgl/WebGLCubeUVMaps.js +0 -134
@@ -3,6 +3,7 @@ import { EventDispatcher } from '../core/EventDispatcher.js';
3
3
  import { FrontSide, NormalBlending, LessEqualDepth, AddEquation, OneMinusSrcAlphaFactor, SrcAlphaFactor, AlwaysStencilFunc, KeepStencilOp } from '../constants.js';
4
4
  import { generateUUID } from '../math/MathUtils.js';
5
5
  import { warn } from '../utils.js';
6
+ import { Vector2 } from '../math/Vector2.js';
6
7
 
7
8
  let _materialId = 0;
8
9
 
@@ -580,7 +581,11 @@ class Material extends EventDispatcher {
580
581
 
581
582
  currentValue.set( newValue );
582
583
 
583
- } else if ( ( currentValue && currentValue.isVector3 ) && ( newValue && newValue.isVector3 ) ) {
584
+ } else if (
585
+ ( ( currentValue && currentValue.isVector2 ) && ( newValue && newValue.isVector2 ) ) ||
586
+ ( ( currentValue && currentValue.isEuler ) && ( newValue && newValue.isEuler ) ) ||
587
+ ( ( currentValue && currentValue.isVector3 ) && ( newValue && newValue.isVector3 ) )
588
+ ) {
584
589
 
585
590
  currentValue.copy( newValue );
586
591
 
@@ -832,6 +837,7 @@ class Material extends EventDispatcher {
832
837
  if ( this.alphaToCoverage === true ) data.alphaToCoverage = true;
833
838
  if ( this.premultipliedAlpha === true ) data.premultipliedAlpha = true;
834
839
  if ( this.forceSinglePass === true ) data.forceSinglePass = true;
840
+ if ( this.allowOverride === false ) data.allowOverride = false;
835
841
 
836
842
  if ( this.wireframe === true ) data.wireframe = true;
837
843
  if ( this.wireframeLinewidth > 1 ) data.wireframeLinewidth = this.wireframeLinewidth;
@@ -880,6 +886,196 @@ class Material extends EventDispatcher {
880
886
 
881
887
  }
882
888
 
889
+ /**
890
+ * Deserializes the material from the given JSON.
891
+ *
892
+ * @param {Object} json - The JSON holding the serialized material.
893
+ * @param {Object<string,Texture>} textures - A dictionary holding textures referenced by the material.
894
+ * @return {Material} A reference to this material.
895
+ */
896
+ fromJSON( json, textures ) {
897
+
898
+ if ( json.uuid !== undefined ) this.uuid = json.uuid;
899
+ if ( json.name !== undefined ) this.name = json.name;
900
+ if ( json.color !== undefined && this.color !== undefined ) this.color.setHex( json.color );
901
+ if ( json.roughness !== undefined ) this.roughness = json.roughness;
902
+ if ( json.metalness !== undefined ) this.metalness = json.metalness;
903
+ if ( json.sheen !== undefined ) this.sheen = json.sheen;
904
+ if ( json.sheenColor !== undefined ) this.sheenColor = new Color().setHex( json.sheenColor );
905
+ if ( json.sheenRoughness !== undefined ) this.sheenRoughness = json.sheenRoughness;
906
+ if ( json.emissive !== undefined && this.emissive !== undefined ) this.emissive.setHex( json.emissive );
907
+ if ( json.specular !== undefined && this.specular !== undefined ) this.specular.setHex( json.specular );
908
+ if ( json.specularIntensity !== undefined ) this.specularIntensity = json.specularIntensity;
909
+ if ( json.specularColor !== undefined && this.specularColor !== undefined ) this.specularColor.setHex( json.specularColor );
910
+ if ( json.shininess !== undefined ) this.shininess = json.shininess;
911
+ if ( json.clearcoat !== undefined ) this.clearcoat = json.clearcoat;
912
+ if ( json.clearcoatRoughness !== undefined ) this.clearcoatRoughness = json.clearcoatRoughness;
913
+ if ( json.dispersion !== undefined ) this.dispersion = json.dispersion;
914
+ if ( json.iridescence !== undefined ) this.iridescence = json.iridescence;
915
+ if ( json.iridescenceIOR !== undefined ) this.iridescenceIOR = json.iridescenceIOR;
916
+ if ( json.iridescenceThicknessRange !== undefined ) this.iridescenceThicknessRange = json.iridescenceThicknessRange;
917
+ if ( json.transmission !== undefined ) this.transmission = json.transmission;
918
+ if ( json.thickness !== undefined ) this.thickness = json.thickness;
919
+ if ( json.attenuationDistance !== undefined ) this.attenuationDistance = json.attenuationDistance;
920
+ if ( json.attenuationColor !== undefined && this.attenuationColor !== undefined ) this.attenuationColor.setHex( json.attenuationColor );
921
+ if ( json.anisotropy !== undefined ) this.anisotropy = json.anisotropy;
922
+ if ( json.anisotropyRotation !== undefined ) this.anisotropyRotation = json.anisotropyRotation;
923
+ if ( json.fog !== undefined ) this.fog = json.fog;
924
+ if ( json.flatShading !== undefined ) this.flatShading = json.flatShading;
925
+ if ( json.blending !== undefined ) this.blending = json.blending;
926
+ if ( json.combine !== undefined ) this.combine = json.combine;
927
+ if ( json.side !== undefined ) this.side = json.side;
928
+ if ( json.shadowSide !== undefined ) this.shadowSide = json.shadowSide;
929
+ if ( json.opacity !== undefined ) this.opacity = json.opacity;
930
+ if ( json.transparent !== undefined ) this.transparent = json.transparent;
931
+ if ( json.alphaTest !== undefined ) this.alphaTest = json.alphaTest;
932
+ if ( json.alphaHash !== undefined ) this.alphaHash = json.alphaHash;
933
+ if ( json.depthFunc !== undefined ) this.depthFunc = json.depthFunc;
934
+ if ( json.depthTest !== undefined ) this.depthTest = json.depthTest;
935
+ if ( json.depthWrite !== undefined ) this.depthWrite = json.depthWrite;
936
+ if ( json.colorWrite !== undefined ) this.colorWrite = json.colorWrite;
937
+ if ( json.blendSrc !== undefined ) this.blendSrc = json.blendSrc;
938
+ if ( json.blendDst !== undefined ) this.blendDst = json.blendDst;
939
+ if ( json.blendEquation !== undefined ) this.blendEquation = json.blendEquation;
940
+ if ( json.blendSrcAlpha !== undefined ) this.blendSrcAlpha = json.blendSrcAlpha;
941
+ if ( json.blendDstAlpha !== undefined ) this.blendDstAlpha = json.blendDstAlpha;
942
+ if ( json.blendEquationAlpha !== undefined ) this.blendEquationAlpha = json.blendEquationAlpha;
943
+ if ( json.blendColor !== undefined && this.blendColor !== undefined ) this.blendColor.setHex( json.blendColor );
944
+ if ( json.blendAlpha !== undefined ) this.blendAlpha = json.blendAlpha;
945
+ if ( json.stencilWriteMask !== undefined ) this.stencilWriteMask = json.stencilWriteMask;
946
+ if ( json.stencilFunc !== undefined ) this.stencilFunc = json.stencilFunc;
947
+ if ( json.stencilRef !== undefined ) this.stencilRef = json.stencilRef;
948
+ if ( json.stencilFuncMask !== undefined ) this.stencilFuncMask = json.stencilFuncMask;
949
+ if ( json.stencilFail !== undefined ) this.stencilFail = json.stencilFail;
950
+ if ( json.stencilZFail !== undefined ) this.stencilZFail = json.stencilZFail;
951
+ if ( json.stencilZPass !== undefined ) this.stencilZPass = json.stencilZPass;
952
+ if ( json.stencilWrite !== undefined ) this.stencilWrite = json.stencilWrite;
953
+
954
+ if ( json.wireframe !== undefined ) this.wireframe = json.wireframe;
955
+ if ( json.wireframeLinewidth !== undefined ) this.wireframeLinewidth = json.wireframeLinewidth;
956
+ if ( json.wireframeLinecap !== undefined ) this.wireframeLinecap = json.wireframeLinecap;
957
+ if ( json.wireframeLinejoin !== undefined ) this.wireframeLinejoin = json.wireframeLinejoin;
958
+
959
+ if ( json.rotation !== undefined ) this.rotation = json.rotation;
960
+
961
+ if ( json.linewidth !== undefined ) this.linewidth = json.linewidth;
962
+ if ( json.dashSize !== undefined ) this.dashSize = json.dashSize;
963
+ if ( json.gapSize !== undefined ) this.gapSize = json.gapSize;
964
+ if ( json.scale !== undefined ) this.scale = json.scale;
965
+
966
+ if ( json.polygonOffset !== undefined ) this.polygonOffset = json.polygonOffset;
967
+ if ( json.polygonOffsetFactor !== undefined ) this.polygonOffsetFactor = json.polygonOffsetFactor;
968
+ if ( json.polygonOffsetUnits !== undefined ) this.polygonOffsetUnits = json.polygonOffsetUnits;
969
+
970
+ if ( json.dithering !== undefined ) this.dithering = json.dithering;
971
+
972
+ if ( json.alphaToCoverage !== undefined ) this.alphaToCoverage = json.alphaToCoverage;
973
+ if ( json.premultipliedAlpha !== undefined ) this.premultipliedAlpha = json.premultipliedAlpha;
974
+ if ( json.forceSinglePass !== undefined ) this.forceSinglePass = json.forceSinglePass;
975
+ if ( json.allowOverride !== undefined ) this.allowOverride = json.allowOverride;
976
+
977
+ if ( json.visible !== undefined ) this.visible = json.visible;
978
+
979
+ if ( json.toneMapped !== undefined ) this.toneMapped = json.toneMapped;
980
+
981
+ if ( json.userData !== undefined ) this.userData = json.userData;
982
+
983
+ if ( json.vertexColors !== undefined ) {
984
+
985
+ if ( typeof json.vertexColors === 'number' ) {
986
+
987
+ this.vertexColors = json.vertexColors > 0;
988
+
989
+ } else {
990
+
991
+ this.vertexColors = json.vertexColors;
992
+
993
+ }
994
+
995
+ }
996
+
997
+ // for PointsMaterial
998
+
999
+ if ( json.size !== undefined ) this.size = json.size;
1000
+ if ( json.sizeAttenuation !== undefined ) this.sizeAttenuation = json.sizeAttenuation;
1001
+
1002
+ // maps
1003
+
1004
+ if ( json.map !== undefined ) this.map = textures[ json.map ] || null;
1005
+ if ( json.matcap !== undefined ) this.matcap = textures[ json.matcap ] || null;
1006
+
1007
+ if ( json.alphaMap !== undefined ) this.alphaMap = textures[ json.alphaMap ] || null;
1008
+
1009
+ if ( json.bumpMap !== undefined ) this.bumpMap = textures[ json.bumpMap ] || null;
1010
+ if ( json.bumpScale !== undefined ) this.bumpScale = json.bumpScale;
1011
+
1012
+ if ( json.normalMap !== undefined ) this.normalMap = textures[ json.normalMap ] || null;
1013
+ if ( json.normalMapType !== undefined ) this.normalMapType = json.normalMapType;
1014
+ if ( json.normalScale !== undefined ) {
1015
+
1016
+ let normalScale = json.normalScale;
1017
+
1018
+ if ( Array.isArray( normalScale ) === false ) {
1019
+
1020
+ // Blender exporter used to export a scalar. See #7459
1021
+
1022
+ normalScale = [ normalScale, normalScale ];
1023
+
1024
+ }
1025
+
1026
+ this.normalScale = new Vector2().fromArray( normalScale );
1027
+
1028
+ }
1029
+
1030
+ if ( json.displacementMap !== undefined ) this.displacementMap = textures[ json.displacementMap ] || null;
1031
+ if ( json.displacementScale !== undefined ) this.displacementScale = json.displacementScale;
1032
+ if ( json.displacementBias !== undefined ) this.displacementBias = json.displacementBias;
1033
+
1034
+ if ( json.roughnessMap !== undefined ) this.roughnessMap = textures[ json.roughnessMap ] || null;
1035
+ if ( json.metalnessMap !== undefined ) this.metalnessMap = textures[ json.metalnessMap ] || null;
1036
+
1037
+ if ( json.emissiveMap !== undefined ) this.emissiveMap = textures[ json.emissiveMap ] || null;
1038
+ if ( json.emissiveIntensity !== undefined ) this.emissiveIntensity = json.emissiveIntensity;
1039
+
1040
+ if ( json.specularMap !== undefined ) this.specularMap = textures[ json.specularMap ] || null;
1041
+ if ( json.specularIntensityMap !== undefined ) this.specularIntensityMap = textures[ json.specularIntensityMap ] || null;
1042
+ if ( json.specularColorMap !== undefined ) this.specularColorMap = textures[ json.specularColorMap ] || null;
1043
+
1044
+ if ( json.envMap !== undefined ) this.envMap = textures[ json.envMap ] || null;
1045
+ if ( json.envMapRotation !== undefined ) this.envMapRotation.fromArray( json.envMapRotation );
1046
+ if ( json.envMapIntensity !== undefined ) this.envMapIntensity = json.envMapIntensity;
1047
+
1048
+ if ( json.reflectivity !== undefined ) this.reflectivity = json.reflectivity;
1049
+ if ( json.refractionRatio !== undefined ) this.refractionRatio = json.refractionRatio;
1050
+
1051
+ if ( json.lightMap !== undefined ) this.lightMap = textures[ json.lightMap ] || null;
1052
+ if ( json.lightMapIntensity !== undefined ) this.lightMapIntensity = json.lightMapIntensity;
1053
+
1054
+ if ( json.aoMap !== undefined ) this.aoMap = textures[ json.aoMap ] || null;
1055
+ if ( json.aoMapIntensity !== undefined ) this.aoMapIntensity = json.aoMapIntensity;
1056
+
1057
+ if ( json.gradientMap !== undefined ) this.gradientMap = textures[ json.gradientMap ] || null;
1058
+
1059
+ if ( json.clearcoatMap !== undefined ) this.clearcoatMap = textures[ json.clearcoatMap ] || null;
1060
+ if ( json.clearcoatRoughnessMap !== undefined ) this.clearcoatRoughnessMap = textures[ json.clearcoatRoughnessMap ] || null;
1061
+ if ( json.clearcoatNormalMap !== undefined ) this.clearcoatNormalMap = textures[ json.clearcoatNormalMap ] || null;
1062
+ if ( json.clearcoatNormalScale !== undefined ) this.clearcoatNormalScale = new Vector2().fromArray( json.clearcoatNormalScale );
1063
+
1064
+ if ( json.iridescenceMap !== undefined ) this.iridescenceMap = textures[ json.iridescenceMap ] || null;
1065
+ if ( json.iridescenceThicknessMap !== undefined ) this.iridescenceThicknessMap = textures[ json.iridescenceThicknessMap ] || null;
1066
+
1067
+ if ( json.transmissionMap !== undefined ) this.transmissionMap = textures[ json.transmissionMap ] || null;
1068
+ if ( json.thicknessMap !== undefined ) this.thicknessMap = textures[ json.thicknessMap ] || null;
1069
+
1070
+ if ( json.anisotropyMap !== undefined ) this.anisotropyMap = textures[ json.anisotropyMap ] || null;
1071
+
1072
+ if ( json.sheenColorMap !== undefined ) this.sheenColorMap = textures[ json.sheenColorMap ] || null;
1073
+ if ( json.sheenRoughnessMap !== undefined ) this.sheenRoughnessMap = textures[ json.sheenRoughnessMap ] || null;
1074
+
1075
+ return this;
1076
+
1077
+ }
1078
+
883
1079
  /**
884
1080
  * Returns a new material with copied values from this instance.
885
1081
  *
@@ -967,6 +1163,7 @@ class Material extends EventDispatcher {
967
1163
  this.alphaToCoverage = source.alphaToCoverage;
968
1164
  this.premultipliedAlpha = source.premultipliedAlpha;
969
1165
  this.forceSinglePass = source.forceSinglePass;
1166
+ this.allowOverride = source.allowOverride;
970
1167
 
971
1168
  this.visible = source.visible;
972
1169
 
@@ -50,6 +50,10 @@ class MeshBasicMaterial extends Material {
50
50
  * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map
51
51
  * color is modulated by the diffuse `color`.
52
52
  *
53
+ * `map` represents color data, and the texture must be assigned a
54
+ * {@link Texture#colorSpace}. Most `map` textures set
55
+ * `texture.colorSpace = SRGBColorSpace`.
56
+ *
53
57
  * @type {?Texture}
54
58
  * @default null
55
59
  */
@@ -58,6 +62,11 @@ class MeshBasicMaterial extends Material {
58
62
  /**
59
63
  * The light map. Requires a second set of UVs.
60
64
  *
65
+ * `lightMap` represents pre-baked illuminance data, and the texture must be assigned
66
+ * a {@link Texture#colorSpace}. Most `lightMap` textures set
67
+ * `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats
68
+ * such as `.exr` or `.hdr`.
69
+ *
61
70
  * @type {?Texture}
62
71
  * @default null
63
72
  */
@@ -75,6 +84,9 @@ class MeshBasicMaterial extends Material {
75
84
  * The red channel of this texture is used as the ambient occlusion map.
76
85
  * Requires a second set of UVs.
77
86
  *
87
+ * `aoMap` represents non-color data. Any texture assigned must have
88
+ * `texture.colorSpace = NoColorSpace` (default).
89
+ *
78
90
  * @type {?Texture}
79
91
  * @default null
80
92
  */
@@ -93,6 +105,10 @@ class MeshBasicMaterial extends Material {
93
105
  /**
94
106
  * Specular map used by the material.
95
107
  *
108
+ * `specularMap` represents color data, and the texture must be assigned a
109
+ * {@link Texture#colorSpace}. Most `specularMap` textures set
110
+ * `texture.colorSpace = SRGBColorSpace`.
111
+ *
96
112
  * @type {?Texture}
97
113
  * @default null
98
114
  */
@@ -108,6 +124,9 @@ class MeshBasicMaterial extends Material {
108
124
  * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
109
125
  * luminance/alpha textures will also still work as expected.
110
126
  *
127
+ * `alphaMap` represents non-color data. Any texture assigned must have
128
+ * `texture.colorSpace = NoColorSpace` (default).
129
+ *
111
130
  * @type {?Texture}
112
131
  * @default null
113
132
  */
@@ -116,6 +135,11 @@ class MeshBasicMaterial extends Material {
116
135
  /**
117
136
  * The environment map.
118
137
  *
138
+ * `envMap` represents luminance data, and the texture must be assigned
139
+ * a {@link Texture#colorSpace}. Most `envMap` textures set
140
+ * `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats
141
+ * such as `.exr` or `.hdr`.
142
+ *
119
143
  * @type {?Texture}
120
144
  * @default null
121
145
  */
@@ -46,6 +46,10 @@ class MeshDepthMaterial extends Material {
46
46
  * The color map. May optionally include an alpha channel, typically combined
47
47
  * with {@link Material#transparent} or {@link Material#alphaTest}.
48
48
  *
49
+ * `map` represents color data, and the texture must be assigned a
50
+ * {@link Texture#colorSpace}. Most `map` textures set
51
+ * `texture.colorSpace = SRGBColorSpace`.
52
+ *
49
53
  * @type {?Texture}
50
54
  * @default null
51
55
  */
@@ -61,6 +65,9 @@ class MeshDepthMaterial extends Material {
61
65
  * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
62
66
  * luminance/alpha textures will also still work as expected.
63
67
  *
68
+ * `alphaMap` represents non-color data. Any texture assigned must have
69
+ * `texture.colorSpace = NoColorSpace` (default).
70
+ *
64
71
  * @type {?Texture}
65
72
  * @default null
66
73
  */
@@ -74,6 +81,9 @@ class MeshDepthMaterial extends Material {
74
81
  * of each pixel (white being the highest) is mapped against, and
75
82
  * repositions, the vertices of the mesh.
76
83
  *
84
+ * `displacementMap` represents non-color data. Any texture assigned must have
85
+ * `texture.colorSpace = NoColorSpace` (default).
86
+ *
77
87
  * @type {?Texture}
78
88
  * @default null
79
89
  */
@@ -41,6 +41,10 @@ class MeshDistanceMaterial extends Material {
41
41
  * The color map. May optionally include an alpha channel, typically combined
42
42
  * with {@link Material#transparent} or {@link Material#alphaTest}.
43
43
  *
44
+ * `map` represents color data, and the texture must be assigned a
45
+ * {@link Texture#colorSpace}. Most `map` textures set
46
+ * `texture.colorSpace = SRGBColorSpace`.
47
+ *
44
48
  * @type {?Texture}
45
49
  * @default null
46
50
  */
@@ -56,6 +60,9 @@ class MeshDistanceMaterial extends Material {
56
60
  * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
57
61
  * luminance/alpha textures will also still work as expected.
58
62
  *
63
+ * `alphaMap` represents non-color data. Any texture assigned must have
64
+ * `texture.colorSpace = NoColorSpace` (default).
65
+ *
59
66
  * @type {?Texture}
60
67
  * @default null
61
68
  */
@@ -69,6 +76,9 @@ class MeshDistanceMaterial extends Material {
69
76
  * of each pixel (white being the highest) is mapped against, and
70
77
  * repositions, the vertices of the mesh.
71
78
  *
79
+ * `displacementMap` represents non-color data. Any texture assigned must have
80
+ * `texture.colorSpace = NoColorSpace` (default).
81
+ *
72
82
  * @type {?Texture}
73
83
  * @default null
74
84
  */
@@ -60,6 +60,10 @@ class MeshLambertMaterial extends Material {
60
60
  * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map
61
61
  * color is modulated by the diffuse `color`.
62
62
  *
63
+ * `map` represents color data, and the texture must be assigned a
64
+ * {@link Texture#colorSpace}. Most `map` textures set
65
+ * `texture.colorSpace = SRGBColorSpace`.
66
+ *
63
67
  * @type {?Texture}
64
68
  * @default null
65
69
  */
@@ -68,6 +72,11 @@ class MeshLambertMaterial extends Material {
68
72
  /**
69
73
  * The light map. Requires a second set of UVs.
70
74
  *
75
+ * `lightMap` represents pre-baked illuminance data, and the texture must be assigned
76
+ * a {@link Texture#colorSpace}. Most `lightMap` textures set
77
+ * `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats
78
+ * such as `.exr` or `.hdr`.
79
+ *
71
80
  * @type {?Texture}
72
81
  * @default null
73
82
  */
@@ -85,6 +94,9 @@ class MeshLambertMaterial extends Material {
85
94
  * The red channel of this texture is used as the ambient occlusion map.
86
95
  * Requires a second set of UVs.
87
96
  *
97
+ * `aoMap` represents non-color data. Any texture assigned must have
98
+ * `texture.colorSpace = NoColorSpace` (default).
99
+ *
88
100
  * @type {?Texture}
89
101
  * @default null
90
102
  */
@@ -122,6 +134,10 @@ class MeshLambertMaterial extends Material {
122
134
  * emissive color and the emissive intensity. If you have an emissive map,
123
135
  * be sure to set the emissive color to something other than black.
124
136
  *
137
+ * `emissiveMap` represents color data, and the texture must be assigned a
138
+ * {@link Texture#colorSpace}. Most `emissiveMap` textures set
139
+ * `texture.colorSpace = SRGBColorSpace`.
140
+ *
125
141
  * @type {?Texture}
126
142
  * @default null
127
143
  */
@@ -133,6 +149,9 @@ class MeshLambertMaterial extends Material {
133
149
  * the geometry of the object, only the lighting. If a normal map is defined
134
150
  * this will be ignored.
135
151
  *
152
+ * `bumpMap` represents non-color data. Any texture assigned must have
153
+ * `texture.colorSpace = NoColorSpace` (default).
154
+ *
136
155
  * @type {?Texture}
137
156
  * @default null
138
157
  */
@@ -154,6 +173,9 @@ class MeshLambertMaterial extends Material {
154
173
  * convention, the `y` component of `normalScale` should be negated to compensate
155
174
  * for the different handedness.
156
175
  *
176
+ * `normalMap` represents non-color data. Any texture assigned must have
177
+ * `texture.colorSpace = NoColorSpace` (default).
178
+ *
157
179
  * @type {?Texture}
158
180
  * @default null
159
181
  */
@@ -181,7 +203,12 @@ class MeshLambertMaterial extends Material {
181
203
  * displaced vertices can cast shadows, block other objects, and otherwise
182
204
  * act as real geometry. The displacement texture is an image where the value
183
205
  * of each pixel (white being the highest) is mapped against, and
184
- * repositions, the vertices of the mesh.
206
+ * repositions, the vertices of the mesh. For best results, pair a
207
+ * displacement map with a matching normal map, since the renderer can
208
+ * not recompute surface normals from the displaced vertices.
209
+ *
210
+ * `displacementMap` represents non-color data. Any texture assigned must have
211
+ * `texture.colorSpace = NoColorSpace` (default).
185
212
  *
186
213
  * @type {?Texture}
187
214
  * @default null
@@ -211,6 +238,10 @@ class MeshLambertMaterial extends Material {
211
238
  /**
212
239
  * Specular map used by the material.
213
240
  *
241
+ * `specularMap` represents color data, and the texture must be assigned a
242
+ * {@link Texture#colorSpace}. Most `specularMap` textures set
243
+ * `texture.colorSpace = SRGBColorSpace`.
244
+ *
214
245
  * @type {?Texture}
215
246
  * @default null
216
247
  */
@@ -226,6 +257,9 @@ class MeshLambertMaterial extends Material {
226
257
  * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
227
258
  * luminance/alpha textures will also still work as expected.
228
259
  *
260
+ * `alphaMap` represents non-color data. Any texture assigned must have
261
+ * `texture.colorSpace = NoColorSpace` (default).
262
+ *
229
263
  * @type {?Texture}
230
264
  * @default null
231
265
  */
@@ -234,6 +268,11 @@ class MeshLambertMaterial extends Material {
234
268
  /**
235
269
  * The environment map.
236
270
  *
271
+ * `envMap` represents luminance data, and the texture must be assigned
272
+ * a {@link Texture#colorSpace}. Most `envMap` textures set
273
+ * `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats
274
+ * such as `.exr` or `.hdr`.
275
+ *
237
276
  * @type {?Texture}
238
277
  * @default null
239
278
  */
@@ -267,6 +306,14 @@ class MeshLambertMaterial extends Material {
267
306
  */
268
307
  this.reflectivity = 1;
269
308
 
309
+ /**
310
+ * Scales the effect of the environment map by multiplying its color.
311
+ *
312
+ * @type {number}
313
+ * @default 1
314
+ */
315
+ this.envMapIntensity = 1.0;
316
+
270
317
  /**
271
318
  * The index of refraction (IOR) of air (approximately 1) divided by the
272
319
  * index of refraction of the material. It is used with environment mapping
@@ -373,6 +420,7 @@ class MeshLambertMaterial extends Material {
373
420
  this.envMapRotation.copy( source.envMapRotation );
374
421
  this.combine = source.combine;
375
422
  this.reflectivity = source.reflectivity;
423
+ this.envMapIntensity = source.envMapIntensity;
376
424
  this.refractionRatio = source.refractionRatio;
377
425
 
378
426
  this.wireframe = source.wireframe;
@@ -54,6 +54,12 @@ class MeshMatcapMaterial extends Material {
54
54
  /**
55
55
  * The matcap map.
56
56
  *
57
+ * `matcap` represents luminance data, and the texture must be assigned
58
+ * a {@link Texture#colorSpace}. HDR `matcap` textures (e.g. `.exr`)
59
+ * typically set `texture.colorSpace = LinearSRGBColorSpace`, while LDR
60
+ * `matcap` textures (e.g. `.png`, `.jpg`, `.webp`) typically set
61
+ * `texture.colorSpace = SRGBColorSpace`.
62
+ *
57
63
  * @type {?Texture}
58
64
  * @default null
59
65
  */
@@ -64,6 +70,10 @@ class MeshMatcapMaterial extends Material {
64
70
  * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map
65
71
  * color is modulated by the diffuse `color`.
66
72
  *
73
+ * `map` represents color data, and the texture must be assigned a
74
+ * {@link Texture#colorSpace}. Most `map` textures set
75
+ * `texture.colorSpace = SRGBColorSpace`.
76
+ *
67
77
  * @type {?Texture}
68
78
  * @default null
69
79
  */
@@ -75,6 +85,9 @@ class MeshMatcapMaterial extends Material {
75
85
  * the geometry of the object, only the lighting. If a normal map is defined
76
86
  * this will be ignored.
77
87
  *
88
+ * `bumpMap` represents non-color data. Any texture assigned must have
89
+ * `texture.colorSpace = NoColorSpace` (default).
90
+ *
78
91
  * @type {?Texture}
79
92
  * @default null
80
93
  */
@@ -96,6 +109,9 @@ class MeshMatcapMaterial extends Material {
96
109
  * convention, the `y` component of `normalScale` should be negated to compensate
97
110
  * for the different handedness.
98
111
  *
112
+ * `normalMap` represents non-color data. Any texture assigned must have
113
+ * `texture.colorSpace = NoColorSpace` (default).
114
+ *
99
115
  * @type {?Texture}
100
116
  * @default null
101
117
  */
@@ -123,7 +139,12 @@ class MeshMatcapMaterial extends Material {
123
139
  * displaced vertices can cast shadows, block other objects, and otherwise
124
140
  * act as real geometry. The displacement texture is an image where the value
125
141
  * of each pixel (white being the highest) is mapped against, and
126
- * repositions, the vertices of the mesh.
142
+ * repositions, the vertices of the mesh. For best results, pair a
143
+ * displacement map with a matching normal map, since the renderer can
144
+ * not recompute surface normals from the displaced vertices.
145
+ *
146
+ * `displacementMap` represents non-color data. Any texture assigned must have
147
+ * `texture.colorSpace = NoColorSpace` (default).
127
148
  *
128
149
  * @type {?Texture}
129
150
  * @default null
@@ -160,6 +181,9 @@ class MeshMatcapMaterial extends Material {
160
181
  * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
161
182
  * luminance/alpha textures will also still work as expected.
162
183
  *
184
+ * `alphaMap` represents non-color data. Any texture assigned must have
185
+ * `texture.colorSpace = NoColorSpace` (default).
186
+ *
163
187
  * @type {?Texture}
164
188
  * @default null
165
189
  */
@@ -40,6 +40,9 @@ class MeshNormalMaterial extends Material {
40
40
  * the geometry of the object, only the lighting. If a normal map is defined
41
41
  * this will be ignored.
42
42
  *
43
+ * `bumpMap` represents non-color data. Any texture assigned must have
44
+ * `texture.colorSpace = NoColorSpace` (default).
45
+ *
43
46
  * @type {?Texture}
44
47
  * @default null
45
48
  */
@@ -61,6 +64,9 @@ class MeshNormalMaterial extends Material {
61
64
  * convention, the `y` component of `normalScale` should be negated to compensate
62
65
  * for the different handedness.
63
66
  *
67
+ * `normalMap` represents non-color data. Any texture assigned must have
68
+ * `texture.colorSpace = NoColorSpace` (default).
69
+ *
64
70
  * @type {?Texture}
65
71
  * @default null
66
72
  */
@@ -88,7 +94,9 @@ class MeshNormalMaterial extends Material {
88
94
  * displaced vertices can cast shadows, block other objects, and otherwise
89
95
  * act as real geometry. The displacement texture is an image where the value
90
96
  * of each pixel (white being the highest) is mapped against, and
91
- * repositions, the vertices of the mesh.
97
+ * repositions, the vertices of the mesh. For best results, pair a
98
+ * displacement map with a matching normal map, since the renderer can
99
+ * not recompute surface normals from the displaced vertices.
92
100
  *
93
101
  * @type {?Texture}
94
102
  * @default null