super-three 0.137.0 → 0.141.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 (703) hide show
  1. package/README.md +23 -25
  2. package/build/three.cjs +3721 -4964
  3. package/build/three.js +3723 -4966
  4. package/build/three.min.js +1 -1
  5. package/build/three.module.js +5705 -7216
  6. package/examples/js/animation/CCDIKSolver.js +3 -2
  7. package/examples/js/animation/MMDPhysics.js +2 -2
  8. package/examples/js/controls/ArcballControls.js +3 -1
  9. package/examples/js/controls/PointerLockControls.js +3 -2
  10. package/examples/js/controls/TrackballControls.js +1 -4
  11. package/examples/js/controls/TransformControls.js +5 -6
  12. package/examples/js/controls/experimental/CameraControls.js +2 -2
  13. package/examples/js/csm/CSMFrustum.js +1 -1
  14. package/examples/js/csm/CSMShader.js +51 -35
  15. package/examples/js/curves/CurveExtras.js +14 -18
  16. package/examples/js/effects/AnaglyphEffect.js +7 -4
  17. package/examples/js/effects/AsciiEffect.js +10 -29
  18. package/examples/js/exporters/ColladaExporter.js +29 -7
  19. package/examples/js/exporters/EXRExporter.js +458 -0
  20. package/examples/js/exporters/GLTFExporter.js +213 -128
  21. package/examples/js/exporters/OBJExporter.js +12 -18
  22. package/examples/js/exporters/PLYExporter.js +15 -20
  23. package/examples/js/exporters/USDZExporter.js +13 -0
  24. package/examples/js/geometries/DecalGeometry.js +0 -7
  25. package/examples/js/geometries/LightningStrike.js +2 -2
  26. package/examples/js/geometries/ParametricGeometries.js +3 -3
  27. package/examples/js/helpers/OctreeHelper.js +74 -0
  28. package/examples/js/helpers/VertexNormalsHelper.js +4 -23
  29. package/examples/js/helpers/VertexTangentsHelper.js +3 -13
  30. package/examples/js/helpers/ViewHelper.js +266 -0
  31. package/examples/js/interactive/HTMLMesh.js +235 -40
  32. package/examples/js/interactive/SelectionHelper.js +1 -1
  33. package/examples/js/libs/opentype.min.js +1 -118
  34. package/examples/js/lines/Line2.js +1 -2
  35. package/examples/js/lines/LineGeometry.js +10 -21
  36. package/examples/js/lines/LineMaterial.js +2 -3
  37. package/examples/js/lines/LineSegments2.js +214 -140
  38. package/examples/js/lines/LineSegmentsGeometry.js +3 -14
  39. package/examples/js/lines/Wireframe.js +2 -3
  40. package/examples/js/lines/WireframeGeometry2.js +1 -2
  41. package/examples/js/loaders/3MFLoader.js +21 -17
  42. package/examples/js/loaders/AMFLoader.js +1 -1
  43. package/examples/js/loaders/ColladaLoader.js +33 -12
  44. package/examples/js/loaders/DDSLoader.js +23 -30
  45. package/examples/js/loaders/EXRLoader.js +269 -266
  46. package/examples/js/loaders/FBXLoader.js +11 -0
  47. package/examples/js/loaders/FontLoader.js +1 -2
  48. package/examples/js/loaders/GCodeLoader.js +0 -1
  49. package/examples/js/loaders/GLTFLoader.js +249 -60
  50. package/examples/js/loaders/KMZLoader.js +1 -1
  51. package/examples/js/loaders/KTX2Loader.js +1 -9
  52. package/examples/js/loaders/LDrawLoader.js +3 -11
  53. package/examples/js/loaders/LUT3dlLoader.js +1 -1
  54. package/examples/js/loaders/LUTCubeLoader.js +1 -1
  55. package/examples/js/loaders/LWOLoader.js +4 -2
  56. package/examples/js/loaders/LogLuvLoader.js +1 -2
  57. package/examples/js/loaders/MMDLoader.js +18 -4
  58. package/examples/js/loaders/NRRDLoader.js +1 -1
  59. package/examples/js/loaders/OBJLoader.js +9 -5
  60. package/examples/js/loaders/PCDLoader.js +22 -13
  61. package/examples/js/loaders/PDBLoader.js +11 -11
  62. package/examples/js/loaders/PLYLoader.js +5 -1
  63. package/examples/js/loaders/RGBELoader.js +3 -11
  64. package/examples/js/loaders/RGBMLoader.js +12 -15
  65. package/examples/js/loaders/SVGLoader.js +16 -9
  66. package/examples/js/loaders/VOXLoader.js +3 -4
  67. package/examples/js/loaders/VTKLoader.js +260 -295
  68. package/examples/js/loaders/lwo/LWO2Parser.js +4 -4
  69. package/examples/js/loaders/lwo/LWO3Parser.js +4 -4
  70. package/examples/js/math/ConvexHull.js +6 -15
  71. package/examples/js/math/Lut.js +27 -26
  72. package/examples/js/misc/MorphAnimMesh.js +2 -2
  73. package/examples/js/misc/ProgressiveLightMap.js +1 -1
  74. package/examples/js/misc/Volume.js +37 -46
  75. package/examples/js/misc/VolumeSlice.js +21 -21
  76. package/examples/js/modifiers/EdgeSplitModifier.js +0 -7
  77. package/examples/js/modifiers/SimplifyModifier.js +1 -8
  78. package/examples/js/modifiers/TessellateModifier.js +0 -7
  79. package/examples/js/objects/Lensflare.js +2 -2
  80. package/examples/js/objects/LightningStorm.js +4 -5
  81. package/examples/js/objects/MarchingCubes.js +6 -11
  82. package/examples/js/objects/Reflector.js +10 -4
  83. package/examples/js/objects/ReflectorForSSRPass.js +1 -1
  84. package/examples/js/objects/Refractor.js +10 -4
  85. package/examples/js/objects/ShadowMesh.js +1 -2
  86. package/examples/js/objects/Sky.js +1 -1
  87. package/examples/js/objects/Water.js +1 -2
  88. package/examples/js/objects/Water2.js +1 -1
  89. package/examples/js/postprocessing/AdaptiveToneMappingPass.js +6 -10
  90. package/examples/js/postprocessing/AfterimagePass.js +2 -6
  91. package/examples/js/postprocessing/BloomPass.js +50 -19
  92. package/examples/js/postprocessing/DotScreenPass.js +1 -1
  93. package/examples/js/postprocessing/EffectComposer.js +1 -6
  94. package/examples/js/postprocessing/LUTPass.js +2 -2
  95. package/examples/js/postprocessing/OutlinePass.js +7 -12
  96. package/examples/js/postprocessing/SAOPass.js +2 -7
  97. package/examples/js/postprocessing/SSAARenderPass.js +1 -6
  98. package/examples/js/postprocessing/SSRPass.js +3 -8
  99. package/examples/js/postprocessing/TAARenderPass.js +4 -4
  100. package/examples/js/postprocessing/UnrealBloomPass.js +3 -12
  101. package/examples/js/renderers/CSS2DRenderer.js +20 -25
  102. package/examples/js/renderers/CSS3DRenderer.js +6 -7
  103. package/examples/js/renderers/Projector.js +97 -124
  104. package/examples/js/renderers/SVGRenderer.js +3 -4
  105. package/examples/js/shaders/BlendShader.js +2 -1
  106. package/examples/js/shaders/CopyShader.js +4 -3
  107. package/examples/js/shaders/FXAAShader.js +239 -1069
  108. package/examples/js/shaders/FreiChenShader.js +1 -1
  109. package/examples/js/shaders/HorizontalBlurShader.js +1 -1
  110. package/examples/js/shaders/HorizontalTiltShiftShader.js +1 -1
  111. package/examples/js/shaders/SSRShader.js +3 -3
  112. package/examples/js/shaders/ToneMapShader.js +1 -1
  113. package/examples/js/utils/BufferGeometryUtils.js +282 -22
  114. package/examples/js/utils/GPUStatsPanel.js +1 -1
  115. package/examples/js/utils/LDrawUtils.js +6 -6
  116. package/examples/js/utils/SceneUtils.js +59 -0
  117. package/examples/js/utils/SkeletonUtils.js +1 -1
  118. package/examples/js/utils/UVsDebug.js +23 -33
  119. package/examples/jsm/animation/CCDIKSolver.js +3 -9
  120. package/examples/jsm/animation/MMDPhysics.js +1 -1
  121. package/examples/jsm/capabilities/WebGPU.js +6 -0
  122. package/examples/jsm/controls/ArcballControls.js +3 -1
  123. package/examples/jsm/controls/PointerLockControls.js +4 -2
  124. package/examples/jsm/controls/TrackballControls.js +1 -4
  125. package/examples/jsm/controls/TransformControls.js +6 -6
  126. package/examples/jsm/controls/experimental/CameraControls.js +2 -2
  127. package/examples/jsm/csm/CSMFrustum.js +1 -1
  128. package/examples/jsm/csm/CSMShader.js +51 -35
  129. package/examples/jsm/curves/CurveExtras.js +15 -17
  130. package/examples/jsm/effects/AnaglyphEffect.js +4 -4
  131. package/examples/jsm/effects/AsciiEffect.js +9 -22
  132. package/examples/jsm/exporters/ColladaExporter.js +31 -6
  133. package/examples/jsm/exporters/EXRExporter.js +507 -0
  134. package/examples/jsm/exporters/GLTFExporter.js +231 -125
  135. package/examples/jsm/exporters/KTX2Exporter.js +281 -0
  136. package/examples/jsm/exporters/OBJExporter.js +11 -18
  137. package/examples/jsm/exporters/PLYExporter.js +23 -21
  138. package/examples/jsm/exporters/USDZExporter.js +12 -0
  139. package/examples/jsm/geometries/DecalGeometry.js +0 -7
  140. package/examples/jsm/geometries/LightningStrike.js +2 -2
  141. package/examples/jsm/geometries/ParametricGeometries.js +3 -3
  142. package/examples/jsm/helpers/OctreeHelper.js +58 -0
  143. package/examples/jsm/helpers/VertexNormalsHelper.js +4 -25
  144. package/examples/jsm/helpers/VertexTangentsHelper.js +3 -15
  145. package/examples/jsm/helpers/ViewHelper.js +295 -0
  146. package/examples/jsm/interactive/HTMLMesh.js +252 -34
  147. package/examples/jsm/interactive/SelectionHelper.js +1 -1
  148. package/examples/jsm/libs/flow.module.js +30 -27
  149. package/examples/jsm/libs/ktx-parse.module.js +1 -1
  150. package/examples/jsm/libs/mikktspace.module.js +128 -0
  151. package/examples/jsm/libs/opentype.module.js +14568 -0
  152. package/examples/jsm/lines/Line2.js +2 -2
  153. package/examples/jsm/lines/LineGeometry.js +11 -19
  154. package/examples/jsm/lines/LineMaterial.js +3 -3
  155. package/examples/jsm/lines/LineSegments2.js +210 -145
  156. package/examples/jsm/lines/LineSegmentsGeometry.js +3 -12
  157. package/examples/jsm/lines/Wireframe.js +3 -3
  158. package/examples/jsm/lines/WireframeGeometry2.js +2 -2
  159. package/examples/jsm/loaders/3DMLoader.js +3 -2
  160. package/examples/jsm/loaders/3MFLoader.js +21 -17
  161. package/examples/jsm/loaders/AMFLoader.js +1 -1
  162. package/examples/jsm/loaders/ColladaLoader.js +40 -12
  163. package/examples/jsm/loaders/DDSLoader.js +21 -28
  164. package/examples/jsm/loaders/EXRLoader.js +268 -265
  165. package/examples/jsm/loaders/FBXLoader.js +11 -0
  166. package/examples/jsm/loaders/FontLoader.js +2 -2
  167. package/examples/jsm/loaders/GCodeLoader.js +0 -1
  168. package/examples/jsm/loaders/GLTFLoader.js +263 -66
  169. package/examples/jsm/loaders/KMZLoader.js +1 -1
  170. package/examples/jsm/loaders/KTX2Loader.js +1 -10
  171. package/examples/jsm/loaders/LDrawLoader.js +4 -11
  172. package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
  173. package/examples/jsm/loaders/LUTCubeLoader.js +2 -2
  174. package/examples/jsm/loaders/LWOLoader.js +5 -3
  175. package/examples/jsm/loaders/LogLuvLoader.js +2 -2
  176. package/examples/jsm/loaders/MMDLoader.js +21 -3
  177. package/examples/jsm/loaders/NRRDLoader.js +1 -2
  178. package/examples/jsm/loaders/OBJLoader.js +11 -7
  179. package/examples/jsm/loaders/PCDLoader.js +23 -15
  180. package/examples/jsm/loaders/PDBLoader.js +11 -11
  181. package/examples/jsm/loaders/PLYLoader.js +10 -2
  182. package/examples/jsm/loaders/RGBELoader.js +4 -12
  183. package/examples/jsm/loaders/RGBMLoader.js +14 -11
  184. package/examples/jsm/loaders/SVGLoader.js +17 -9
  185. package/examples/jsm/loaders/TTFLoader.js +1 -1
  186. package/examples/jsm/loaders/VOXLoader.js +5 -5
  187. package/examples/jsm/loaders/VTKLoader.js +256 -284
  188. package/examples/jsm/loaders/ifc/web-ifc-api.js +9 -8
  189. package/examples/jsm/loaders/lwo/LWO2Parser.js +4 -4
  190. package/examples/jsm/loaders/lwo/LWO3Parser.js +4 -4
  191. package/examples/jsm/math/ConvexHull.js +6 -15
  192. package/examples/jsm/math/Lut.js +35 -25
  193. package/examples/jsm/misc/MorphAnimMesh.js +2 -2
  194. package/examples/jsm/misc/ProgressiveLightMap.js +1 -1
  195. package/examples/jsm/misc/Volume.js +37 -44
  196. package/examples/jsm/misc/VolumeSlice.js +21 -21
  197. package/examples/jsm/modifiers/EdgeSplitModifier.js +0 -7
  198. package/examples/jsm/modifiers/SimplifyModifier.js +1 -8
  199. package/examples/jsm/modifiers/TessellateModifier.js +0 -7
  200. package/examples/jsm/node-editor/NodeEditor.js +78 -9
  201. package/examples/jsm/node-editor/accessors/MatcapUVEditor.js +14 -0
  202. package/examples/jsm/node-editor/accessors/NormalEditor.js +1 -1
  203. package/examples/jsm/node-editor/accessors/PositionEditor.js +1 -1
  204. package/examples/jsm/node-editor/accessors/UVEditor.js +1 -1
  205. package/examples/jsm/node-editor/core/BaseNode.js +17 -11
  206. package/examples/jsm/node-editor/core/DataFile.js +59 -0
  207. package/examples/jsm/node-editor/core/FileEditor.js +20 -0
  208. package/examples/jsm/node-editor/core/FileURLEditor.js +29 -0
  209. package/examples/jsm/node-editor/display/BlendEditor.js +3 -3
  210. package/examples/jsm/node-editor/display/NormalMapEditor.js +49 -0
  211. package/examples/jsm/node-editor/examples/matcap.json +1 -0
  212. package/examples/jsm/node-editor/inputs/ColorEditor.js +7 -6
  213. package/examples/jsm/node-editor/inputs/FloatEditor.js +2 -2
  214. package/examples/jsm/node-editor/inputs/SliderEditor.js +2 -2
  215. package/examples/jsm/node-editor/inputs/TextureEditor.js +155 -0
  216. package/examples/jsm/node-editor/inputs/Vector2Editor.js +3 -2
  217. package/examples/jsm/node-editor/inputs/Vector3Editor.js +3 -2
  218. package/examples/jsm/node-editor/inputs/Vector4Editor.js +4 -3
  219. package/examples/jsm/node-editor/materials/BasicMaterialEditor.js +3 -3
  220. package/examples/jsm/node-editor/materials/PointsMaterialEditor.js +16 -11
  221. package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +15 -5
  222. package/examples/jsm/node-editor/math/AngleEditor.js +3 -2
  223. package/examples/jsm/node-editor/math/DotEditor.js +2 -2
  224. package/examples/jsm/node-editor/math/InvertEditor.js +4 -4
  225. package/examples/jsm/node-editor/math/LimiterEditor.js +22 -9
  226. package/examples/jsm/node-editor/math/NormalizeEditor.js +3 -2
  227. package/examples/jsm/node-editor/math/OperatorEditor.js +20 -8
  228. package/examples/jsm/node-editor/math/PowerEditor.js +17 -8
  229. package/examples/jsm/node-editor/math/TrigonometryEditor.js +3 -2
  230. package/examples/jsm/node-editor/procedural/CheckerEditor.js +4 -4
  231. package/examples/jsm/node-editor/utils/JoinEditor.js +2 -2
  232. package/examples/jsm/node-editor/utils/OscillatorEditor.js +2 -2
  233. package/examples/jsm/node-editor/utils/PreviewEditor.js +166 -0
  234. package/examples/jsm/node-editor/utils/SplitEditor.js +2 -2
  235. package/examples/jsm/node-editor/utils/TimerEditor.js +1 -1
  236. package/examples/jsm/nodes/Nodes.js +283 -94
  237. package/examples/jsm/nodes/accessors/BufferNode.js +24 -0
  238. package/examples/jsm/nodes/accessors/CameraNode.js +27 -196
  239. package/examples/jsm/nodes/accessors/CubeTextureNode.js +103 -0
  240. package/examples/jsm/nodes/accessors/InstanceNode.js +58 -0
  241. package/examples/jsm/{renderers/nodes → nodes}/accessors/MaterialNode.js +49 -11
  242. package/examples/jsm/{renderers/nodes → nodes}/accessors/MaterialReferenceNode.js +0 -0
  243. package/examples/jsm/{renderers/nodes → nodes}/accessors/ModelNode.js +8 -0
  244. package/examples/jsm/{renderers/nodes → nodes}/accessors/ModelViewProjectionNode.js +0 -0
  245. package/examples/jsm/nodes/accessors/NormalNode.js +39 -99
  246. package/examples/jsm/{renderers/nodes → nodes}/accessors/Object3DNode.js +34 -17
  247. package/examples/jsm/{renderers/nodes → nodes}/accessors/PointUVNode.js +2 -2
  248. package/examples/jsm/nodes/accessors/PositionNode.js +41 -110
  249. package/examples/jsm/nodes/accessors/ReferenceNode.js +65 -0
  250. package/examples/jsm/nodes/accessors/ReflectNode.js +34 -121
  251. package/examples/jsm/nodes/accessors/SkinningNode.js +102 -0
  252. package/examples/jsm/nodes/accessors/StorageBufferNode.js +21 -0
  253. package/examples/jsm/nodes/accessors/TextureNode.js +100 -0
  254. package/examples/jsm/nodes/accessors/UVNode.js +17 -43
  255. package/examples/jsm/nodes/accessors/UserDataNode.js +23 -0
  256. package/examples/jsm/nodes/core/ArrayUniformNode.js +23 -0
  257. package/examples/jsm/nodes/core/AttributeNode.js +33 -30
  258. package/examples/jsm/{renderers/nodes → nodes}/core/BypassNode.js +2 -2
  259. package/examples/jsm/{renderers/nodes → nodes}/core/CodeNode.js +2 -30
  260. package/examples/jsm/nodes/core/ConstNode.js +10 -106
  261. package/examples/jsm/{renderers/nodes → nodes}/core/ContextNode.js +17 -3
  262. package/examples/jsm/nodes/core/ExpressionNode.js +24 -7
  263. package/examples/jsm/nodes/core/FunctionCallNode.js +26 -67
  264. package/examples/jsm/nodes/core/FunctionNode.js +43 -216
  265. package/examples/jsm/nodes/core/InputNode.js +28 -60
  266. package/examples/jsm/nodes/core/InstanceIndexNode.js +21 -0
  267. package/examples/jsm/nodes/core/Node.js +228 -94
  268. package/examples/jsm/{renderers/nodes → nodes}/core/NodeAttribute.js +2 -2
  269. package/examples/jsm/nodes/core/NodeBuilder.js +388 -560
  270. package/examples/jsm/{renderers/nodes → nodes}/core/NodeCode.js +0 -0
  271. package/examples/jsm/nodes/core/NodeFrame.js +30 -23
  272. package/examples/jsm/{renderers/nodes → nodes}/core/NodeFunction.js +0 -0
  273. package/examples/jsm/{renderers/nodes → nodes}/core/NodeFunctionInput.js +0 -0
  274. package/examples/jsm/{renderers/nodes → nodes}/core/NodeKeywords.js +0 -0
  275. package/examples/jsm/{renderers/nodes → nodes}/core/NodeParser.js +0 -0
  276. package/examples/jsm/nodes/core/NodeUniform.js +8 -6
  277. package/examples/jsm/nodes/core/NodeUtils.js +69 -37
  278. package/examples/jsm/{renderers/nodes → nodes}/core/NodeVar.js +2 -2
  279. package/examples/jsm/{renderers/nodes → nodes}/core/NodeVary.js +2 -2
  280. package/examples/jsm/{renderers/nodes → nodes}/core/PropertyNode.js +0 -0
  281. package/examples/jsm/nodes/core/TempNode.js +20 -112
  282. package/examples/jsm/nodes/core/UniformNode.js +46 -0
  283. package/examples/jsm/nodes/core/VarNode.js +58 -27
  284. package/examples/jsm/{renderers/nodes → nodes}/core/VaryNode.js +0 -0
  285. package/examples/jsm/{renderers/nodes → nodes}/core/constants.js +0 -0
  286. package/examples/jsm/{renderers/nodes → nodes}/display/ColorSpaceNode.js +10 -11
  287. package/examples/jsm/nodes/display/FrontFacingNode.js +21 -0
  288. package/examples/jsm/nodes/display/NormalMapNode.js +86 -0
  289. package/examples/jsm/nodes/display/ToneMappingNode.js +51 -0
  290. package/examples/jsm/nodes/fog/FogNode.js +31 -0
  291. package/examples/jsm/nodes/fog/FogRangeNode.js +27 -0
  292. package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +33 -0
  293. package/examples/jsm/nodes/functions/BSDF/BRDF_Lambert.js +9 -0
  294. package/examples/jsm/nodes/functions/BSDF/DFGApprox.js +27 -0
  295. package/examples/jsm/nodes/functions/BSDF/D_GGX.js +18 -0
  296. package/examples/jsm/nodes/functions/BSDF/F_Schlick.js +18 -0
  297. package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +18 -0
  298. package/examples/jsm/nodes/functions/PhysicalLightingModel.js +94 -0
  299. package/examples/jsm/nodes/functions/light/getDistanceAttenuation.js +22 -0
  300. package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +12 -0
  301. package/examples/jsm/nodes/functions/material/getRoughness.js +18 -0
  302. package/examples/jsm/nodes/gpgpu/ComputeNode.js +63 -0
  303. package/examples/jsm/nodes/lighting/AONode.js +25 -0
  304. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +37 -0
  305. package/examples/jsm/nodes/lighting/EnvironmentNode.js +65 -0
  306. package/examples/jsm/nodes/lighting/HemisphereLightNode.js +50 -0
  307. package/examples/jsm/nodes/lighting/LightingContextNode.js +75 -0
  308. package/examples/jsm/nodes/lighting/LightingNode.js +19 -0
  309. package/examples/jsm/nodes/lighting/LightsNode.js +120 -0
  310. package/examples/jsm/nodes/lighting/PunctualLightNode.js +68 -0
  311. package/examples/jsm/nodes/loaders/NodeLoader.js +107 -0
  312. package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +42 -0
  313. package/examples/jsm/nodes/loaders/NodeObjectLoader.js +70 -0
  314. package/examples/jsm/{renderers/nodes → nodes}/materials/LineBasicNodeMaterial.js +11 -4
  315. package/examples/jsm/nodes/materials/Materials.js +65 -0
  316. package/examples/jsm/{renderers/nodes → nodes}/materials/MeshBasicNodeMaterial.js +13 -4
  317. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +162 -22
  318. package/examples/jsm/nodes/materials/NodeMaterial.js +128 -113
  319. package/examples/jsm/{renderers/nodes → nodes}/materials/PointsNodeMaterial.js +13 -4
  320. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +84 -16
  321. package/examples/jsm/nodes/math/CondNode.js +26 -95
  322. package/examples/jsm/nodes/math/MathNode.js +164 -187
  323. package/examples/jsm/nodes/math/OperatorNode.js +161 -41
  324. package/examples/jsm/{renderers/nodes → nodes}/parsers/GLSLNodeFunction.js +2 -2
  325. package/examples/jsm/{renderers/nodes → nodes}/parsers/GLSLNodeParser.js +0 -0
  326. package/examples/jsm/{renderers/nodes → nodes}/parsers/WGSLNodeFunction.js +20 -5
  327. package/examples/jsm/{renderers/nodes → nodes}/parsers/WGSLNodeParser.js +0 -0
  328. package/examples/jsm/nodes/procedural/CheckerNode.js +16 -57
  329. package/examples/jsm/nodes/shadernode/ShaderNode.js +262 -0
  330. package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +274 -0
  331. package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +106 -0
  332. package/examples/jsm/{renderers/nodes → nodes}/utils/ArrayElementNode.js +3 -3
  333. package/examples/jsm/{renderers/nodes → nodes}/utils/ConvertNode.js +11 -3
  334. package/examples/jsm/nodes/utils/JoinNode.js +17 -89
  335. package/examples/jsm/nodes/utils/MatcapUVNode.js +25 -0
  336. package/examples/jsm/nodes/utils/MaxMipLevelNode.js +32 -0
  337. package/examples/jsm/{renderers/nodes → nodes}/utils/OscNode.js +18 -2
  338. package/examples/jsm/{renderers/nodes → nodes}/utils/SplitNode.js +16 -0
  339. package/examples/jsm/{renderers/nodes → nodes}/utils/SpriteSheetUVNode.js +3 -3
  340. package/examples/jsm/nodes/utils/TimerNode.js +30 -65
  341. package/examples/jsm/objects/Lensflare.js +2 -2
  342. package/examples/jsm/objects/LightningStorm.js +4 -4
  343. package/examples/jsm/objects/MarchingCubes.js +5 -9
  344. package/examples/jsm/objects/Reflector.js +8 -4
  345. package/examples/jsm/objects/ReflectorForSSRPass.js +2 -2
  346. package/examples/jsm/objects/Refractor.js +8 -4
  347. package/examples/jsm/objects/ShadowMesh.js +2 -2
  348. package/examples/jsm/objects/Sky.js +2 -2
  349. package/examples/jsm/objects/Water.js +2 -2
  350. package/examples/jsm/objects/Water2.js +2 -2
  351. package/examples/jsm/offscreen/jank.js +5 -5
  352. package/examples/jsm/offscreen/offscreen.js +1 -1
  353. package/examples/jsm/offscreen/scene.js +11 -11
  354. package/examples/jsm/postprocessing/AdaptiveToneMappingPass.js +5 -7
  355. package/examples/jsm/postprocessing/AfterimagePass.js +0 -10
  356. package/examples/jsm/postprocessing/BloomPass.js +48 -20
  357. package/examples/jsm/postprocessing/DotScreenPass.js +1 -1
  358. package/examples/jsm/postprocessing/EffectComposer.js +1 -9
  359. package/examples/jsm/postprocessing/LUTPass.js +2 -2
  360. package/examples/jsm/postprocessing/OutlinePass.js +7 -11
  361. package/examples/jsm/postprocessing/SAOPass.js +2 -9
  362. package/examples/jsm/postprocessing/SSAARenderPass.js +1 -4
  363. package/examples/jsm/postprocessing/SSRPass.js +3 -9
  364. package/examples/jsm/postprocessing/TAARenderPass.js +4 -4
  365. package/examples/jsm/postprocessing/UnrealBloomPass.js +3 -8
  366. package/examples/jsm/renderers/CSS2DRenderer.js +21 -24
  367. package/examples/jsm/renderers/CSS3DRenderer.js +7 -8
  368. package/examples/jsm/renderers/Projector.js +101 -128
  369. package/examples/jsm/renderers/SVGRenderer.js +4 -4
  370. package/examples/jsm/renderers/webgl/nodes/SlotNode.js +1 -1
  371. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +127 -23
  372. package/examples/jsm/renderers/webgl/nodes/WebGLNodes.js +14 -3
  373. package/examples/jsm/renderers/webgl/nodes/WebGLPhysicalContextNode.js +5 -5
  374. package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +4 -4
  375. package/examples/jsm/renderers/webgpu/WebGPUBackground.js +16 -10
  376. package/examples/jsm/renderers/webgpu/WebGPUBindings.js +8 -7
  377. package/examples/jsm/renderers/webgpu/WebGPUBuffer.js +43 -0
  378. package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +14 -7
  379. package/examples/jsm/renderers/webgpu/WebGPUInfo.js +1 -1
  380. package/examples/jsm/renderers/webgpu/WebGPUObjects.js +0 -6
  381. package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +20 -20
  382. package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +2 -1
  383. package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +66 -0
  384. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +47 -24
  385. package/examples/jsm/renderers/webgpu/WebGPUSampledTexture.js +14 -14
  386. package/examples/jsm/renderers/webgpu/WebGPUSampler.js +2 -2
  387. package/examples/jsm/renderers/webgpu/WebGPUStorageBuffer.js +5 -8
  388. package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +23 -20
  389. package/examples/jsm/renderers/webgpu/WebGPUTextures.js +37 -18
  390. package/examples/jsm/renderers/webgpu/WebGPUUniform.js +14 -14
  391. package/examples/jsm/renderers/webgpu/WebGPUUniformBuffer.js +5 -32
  392. package/examples/jsm/renderers/webgpu/WebGPUUniformsGroup.js +2 -2
  393. package/examples/jsm/renderers/webgpu/constants.js +3 -2
  394. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +276 -284
  395. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeSampledTexture.js +20 -2
  396. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +24 -14
  397. package/examples/jsm/shaders/BlendShader.js +2 -1
  398. package/examples/jsm/shaders/CopyShader.js +4 -3
  399. package/examples/jsm/shaders/FXAAShader.js +219 -1051
  400. package/examples/jsm/shaders/FreiChenShader.js +1 -1
  401. package/examples/jsm/shaders/HorizontalBlurShader.js +1 -1
  402. package/examples/jsm/shaders/HorizontalTiltShiftShader.js +1 -1
  403. package/examples/jsm/shaders/SSRShader.js +3 -3
  404. package/examples/jsm/shaders/ToneMapShader.js +1 -1
  405. package/examples/jsm/utils/BufferGeometryUtils.js +292 -22
  406. package/examples/jsm/utils/GPUStatsPanel.js +1 -1
  407. package/examples/jsm/utils/LDrawUtils.js +6 -6
  408. package/examples/jsm/utils/SceneUtils.js +76 -2
  409. package/examples/jsm/utils/SkeletonUtils.js +1 -1
  410. package/examples/jsm/utils/UVsDebug.js +23 -32
  411. package/examples/jsm/webxr/ARButton.js +14 -4
  412. package/examples/jsm/webxr/OculusHandPointerModel.js +3 -3
  413. package/examples/jsm/webxr/Text2D.js +1 -1
  414. package/examples/jsm/webxr/VRButton.js +15 -1
  415. package/examples/jsm/webxr/XRHandMeshModel.js +3 -7
  416. package/examples/jsm/webxr/XRHandModelFactory.js +3 -0
  417. package/package.json +37 -19
  418. package/src/Three.Legacy.js +41 -1912
  419. package/src/Three.js +6 -3
  420. package/src/animation/AnimationClip.js +1 -1
  421. package/src/animation/AnimationMixer.js +5 -3
  422. package/src/animation/AnimationObjectGroup.js +2 -2
  423. package/src/animation/PropertyBinding.js +8 -18
  424. package/src/audio/PositionalAudio.js +8 -0
  425. package/src/cameras/ArrayCamera.js +2 -3
  426. package/src/cameras/Camera.js +2 -2
  427. package/src/cameras/CubeCamera.js +6 -1
  428. package/src/cameras/OrthographicCamera.js +2 -2
  429. package/src/cameras/PerspectiveCamera.js +2 -2
  430. package/src/constants.js +7 -2
  431. package/src/core/BufferAttribute.js +7 -12
  432. package/src/core/BufferGeometry.js +4 -4
  433. package/src/core/GLBufferAttribute.js +2 -2
  434. package/src/core/InstancedBufferAttribute.js +2 -2
  435. package/src/core/InstancedBufferGeometry.js +2 -2
  436. package/src/core/InstancedInterleavedBuffer.js +2 -2
  437. package/src/core/InterleavedBuffer.js +2 -2
  438. package/src/core/InterleavedBufferAttribute.js +5 -11
  439. package/src/core/Object3D.js +6 -3
  440. package/src/core/Raycaster.js +2 -2
  441. package/src/extras/DataUtils.js +127 -40
  442. package/src/extras/Earcut.js +2 -2
  443. package/src/extras/PMREMGenerator.js +132 -104
  444. package/src/extras/core/CurvePath.js +3 -3
  445. package/src/extras/core/ShapePath.js +5 -6
  446. package/src/extras/curves/ArcCurve.js +2 -2
  447. package/src/extras/curves/CatmullRomCurve3.js +2 -2
  448. package/src/extras/curves/CubicBezierCurve.js +2 -2
  449. package/src/extras/curves/CubicBezierCurve3.js +2 -2
  450. package/src/extras/curves/EllipseCurve.js +2 -2
  451. package/src/extras/curves/LineCurve.js +2 -2
  452. package/src/extras/curves/LineCurve3.js +2 -1
  453. package/src/extras/curves/QuadraticBezierCurve.js +2 -2
  454. package/src/extras/curves/QuadraticBezierCurve3.js +2 -2
  455. package/src/extras/curves/SplineCurve.js +2 -2
  456. package/src/geometries/CapsuleGeometry.js +33 -0
  457. package/src/geometries/ExtrudeGeometry.js +2 -0
  458. package/src/geometries/Geometries.js +1 -0
  459. package/src/geometries/TorusKnotGeometry.js +2 -2
  460. package/src/geometries/WireframeGeometry.js +3 -2
  461. package/src/helpers/BoxHelper.js +2 -2
  462. package/src/helpers/PointLightHelper.js +1 -1
  463. package/src/helpers/SkeletonHelper.js +3 -2
  464. package/src/lights/AmbientLight.js +2 -2
  465. package/src/lights/AmbientLightProbe.js +2 -2
  466. package/src/lights/DirectionalLight.js +2 -2
  467. package/src/lights/DirectionalLightShadow.js +2 -2
  468. package/src/lights/HemisphereLight.js +4 -4
  469. package/src/lights/HemisphereLightProbe.js +2 -2
  470. package/src/lights/Light.js +4 -4
  471. package/src/lights/LightProbe.js +2 -2
  472. package/src/lights/PointLight.js +4 -4
  473. package/src/lights/PointLightShadow.js +2 -2
  474. package/src/lights/RectAreaLight.js +2 -2
  475. package/src/lights/SpotLight.js +4 -4
  476. package/src/lights/SpotLightShadow.js +2 -2
  477. package/src/loaders/FileLoader.js +3 -1
  478. package/src/loaders/ImageBitmapLoader.js +2 -2
  479. package/src/loaders/ImageLoader.js +1 -1
  480. package/src/loaders/LoaderUtils.js +1 -1
  481. package/src/loaders/MaterialLoader.js +8 -3
  482. package/src/loaders/ObjectLoader.js +23 -25
  483. package/src/materials/LineBasicMaterial.js +6 -13
  484. package/src/materials/LineDashedMaterial.js +2 -15
  485. package/src/materials/Material.js +48 -14
  486. package/src/materials/Materials.js +66 -18
  487. package/src/materials/MeshBasicMaterial.js +6 -31
  488. package/src/materials/MeshDepthMaterial.js +2 -22
  489. package/src/materials/MeshDistanceMaterial.js +2 -22
  490. package/src/materials/MeshLambertMaterial.js +6 -34
  491. package/src/materials/MeshMatcapMaterial.js +6 -28
  492. package/src/materials/MeshNormalMaterial.js +2 -26
  493. package/src/materials/MeshPhongMaterial.js +6 -48
  494. package/src/materials/MeshPhysicalMaterial.js +32 -35
  495. package/src/materials/MeshStandardMaterial.js +6 -54
  496. package/src/materials/MeshToonMaterial.js +6 -38
  497. package/src/materials/PointsMaterial.js +6 -15
  498. package/src/materials/RawShaderMaterial.js +2 -2
  499. package/src/materials/ShaderMaterial.js +3 -17
  500. package/src/materials/ShadowMaterial.js +6 -8
  501. package/src/materials/SpriteMaterial.js +6 -12
  502. package/src/math/Box2.js +2 -2
  503. package/src/math/Box3.js +5 -5
  504. package/src/math/Color.js +84 -35
  505. package/src/math/ColorManagement.js +74 -0
  506. package/src/math/Euler.js +16 -14
  507. package/src/math/Interpolant.js +4 -9
  508. package/src/math/MathUtils.js +76 -7
  509. package/src/math/Matrix3.js +2 -2
  510. package/src/math/Matrix4.js +2 -3
  511. package/src/math/Plane.js +2 -2
  512. package/src/math/Quaternion.js +11 -2
  513. package/src/math/Spherical.js +1 -1
  514. package/src/math/SphericalHarmonics3.js +2 -2
  515. package/src/math/Vector2.js +2 -2
  516. package/src/math/Vector3.js +12 -3
  517. package/src/math/Vector4.js +2 -2
  518. package/src/math/interpolants/DiscreteInterpolant.js +1 -1
  519. package/src/objects/Bone.js +2 -2
  520. package/src/objects/Group.js +2 -2
  521. package/src/objects/InstancedMesh.js +4 -4
  522. package/src/objects/Line.js +76 -107
  523. package/src/objects/LineLoop.js +2 -2
  524. package/src/objects/LineSegments.js +15 -23
  525. package/src/objects/Mesh.js +82 -104
  526. package/src/objects/Points.js +32 -54
  527. package/src/objects/SkinnedMesh.js +5 -8
  528. package/src/objects/Sprite.js +4 -4
  529. package/src/renderers/WebGL3DRenderTarget.js +22 -0
  530. package/src/renderers/WebGLArrayRenderTarget.js +22 -0
  531. package/src/renderers/WebGLCubeRenderTarget.js +7 -14
  532. package/src/renderers/WebGLMultipleRenderTargets.js +8 -5
  533. package/src/renderers/WebGLRenderTarget.js +16 -18
  534. package/src/renderers/WebGLRenderer.js +108 -63
  535. package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +46 -0
  536. package/src/renderers/shaders/ShaderChunk/common.glsl.js +1 -0
  537. package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +12 -13
  538. package/src/renderers/shaders/ShaderChunk/dithering_pars_fragment.glsl.js +1 -1
  539. package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +3 -19
  540. package/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js +107 -0
  541. package/src/renderers/shaders/ShaderChunk/iridescence_pars_fragment.glsl.js +14 -0
  542. package/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +0 -6
  543. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +25 -0
  544. package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +0 -6
  545. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +23 -0
  546. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +43 -5
  547. package/src/renderers/shaders/ShaderChunk/morphcolor_vertex.glsl.js +24 -0
  548. package/src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl.js +1 -1
  549. package/src/renderers/shaders/ShaderChunk/morphtarget_pars_vertex.glsl.js +7 -7
  550. package/src/renderers/shaders/ShaderChunk/morphtarget_vertex.glsl.js +1 -9
  551. package/src/renderers/shaders/ShaderChunk/skinning_pars_vertex.glsl.js +16 -31
  552. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +1 -1
  553. package/src/renderers/shaders/ShaderChunk.js +6 -0
  554. package/src/renderers/shaders/ShaderLib/background.glsl.js +8 -0
  555. package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +1 -0
  556. package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +3 -2
  557. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +1 -0
  558. package/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js +1 -0
  559. package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +6 -0
  560. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +1 -0
  561. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +10 -0
  562. package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +1 -0
  563. package/src/renderers/shaders/ShaderLib/points.glsl.js +1 -0
  564. package/src/renderers/shaders/ShaderLib.js +6 -0
  565. package/src/renderers/shaders/UniformsLib.js +2 -2
  566. package/src/renderers/webgl/WebGLAttributes.js +6 -6
  567. package/src/renderers/webgl/WebGLBackground.js +3 -0
  568. package/src/renderers/webgl/WebGLBindingStates.js +57 -29
  569. package/src/renderers/webgl/WebGLLights.js +0 -1
  570. package/src/renderers/webgl/WebGLMaterials.js +72 -187
  571. package/src/renderers/webgl/WebGLMorphtargets.js +47 -23
  572. package/src/renderers/webgl/WebGLProgram.js +57 -19
  573. package/src/renderers/webgl/WebGLPrograms.js +75 -86
  574. package/src/renderers/webgl/WebGLShaderCache.js +4 -3
  575. package/src/renderers/webgl/WebGLShadowMap.js +6 -8
  576. package/src/renderers/webgl/WebGLTextures.js +567 -380
  577. package/src/renderers/webgl/WebGLUniforms.js +79 -80
  578. package/src/renderers/webgl/WebGLUtils.js +12 -1
  579. package/src/renderers/webxr/WebXRManager.js +60 -45
  580. package/src/scenes/Fog.js +2 -2
  581. package/src/scenes/FogExp2.js +2 -2
  582. package/src/scenes/Scene.js +2 -2
  583. package/src/textures/CanvasTexture.js +2 -2
  584. package/src/textures/CompressedTexture.js +2 -2
  585. package/src/textures/CubeTexture.js +2 -2
  586. package/src/textures/{DataTexture3D.js → Data3DTexture.js} +4 -4
  587. package/src/textures/{DataTexture2DArray.js → DataArrayTexture.js} +4 -4
  588. package/src/textures/DataTexture.js +2 -5
  589. package/src/textures/DepthTexture.js +5 -5
  590. package/src/textures/FramebufferTexture.js +2 -2
  591. package/src/textures/Source.js +123 -0
  592. package/src/textures/Texture.js +27 -97
  593. package/src/textures/VideoTexture.js +2 -2
  594. package/examples/js/csm/Frustum.js +0 -133
  595. package/examples/js/deprecated/Geometry.js +0 -1656
  596. package/examples/js/loaders/VRMLoader.js +0 -72
  597. package/examples/js/objects/ReflectorRTT.js +0 -16
  598. package/examples/js/postprocessing/SSRrPass.js +0 -494
  599. package/examples/js/shaders/SSRrShader.js +0 -336
  600. package/examples/jsm/deprecated/Geometry.js +0 -1869
  601. package/examples/jsm/libs/opentype.module.min.js +0 -119
  602. package/examples/jsm/loaders/NodeMaterialLoader.js +0 -263
  603. package/examples/jsm/loaders/VRMLoader.js +0 -78
  604. package/examples/jsm/nodes/accessors/ColorsNode.js +0 -56
  605. package/examples/jsm/nodes/accessors/LightNode.js +0 -60
  606. package/examples/jsm/nodes/accessors/ResolutionNode.js +0 -64
  607. package/examples/jsm/nodes/accessors/ScreenUVNode.js +0 -64
  608. package/examples/jsm/nodes/core/NodeLib.js +0 -64
  609. package/examples/jsm/nodes/core/StructNode.js +0 -106
  610. package/examples/jsm/nodes/effects/BlurNode.js +0 -171
  611. package/examples/jsm/nodes/effects/ColorAdjustmentNode.js +0 -140
  612. package/examples/jsm/nodes/effects/LuminanceNode.js +0 -75
  613. package/examples/jsm/nodes/inputs/BoolNode.js +0 -51
  614. package/examples/jsm/nodes/inputs/ColorNode.js +0 -58
  615. package/examples/jsm/nodes/inputs/CubeTextureNode.js +0 -108
  616. package/examples/jsm/nodes/inputs/FloatNode.js +0 -51
  617. package/examples/jsm/nodes/inputs/IntNode.js +0 -51
  618. package/examples/jsm/nodes/inputs/Matrix3Node.js +0 -63
  619. package/examples/jsm/nodes/inputs/Matrix4Node.js +0 -63
  620. package/examples/jsm/nodes/inputs/PropertyNode.js +0 -47
  621. package/examples/jsm/nodes/inputs/RTTNode.js +0 -157
  622. package/examples/jsm/nodes/inputs/ReflectorNode.js +0 -90
  623. package/examples/jsm/nodes/inputs/ScreenNode.js +0 -28
  624. package/examples/jsm/nodes/inputs/TextureNode.js +0 -116
  625. package/examples/jsm/nodes/inputs/Vector2Node.js +0 -57
  626. package/examples/jsm/nodes/inputs/Vector3Node.js +0 -58
  627. package/examples/jsm/nodes/inputs/Vector4Node.js +0 -59
  628. package/examples/jsm/nodes/materials/BasicNodeMaterial.js +0 -26
  629. package/examples/jsm/nodes/materials/PhongNodeMaterial.js +0 -36
  630. package/examples/jsm/nodes/materials/StandardNodeMaterial.js +0 -40
  631. package/examples/jsm/nodes/materials/nodes/BasicNode.js +0 -154
  632. package/examples/jsm/nodes/materials/nodes/MeshStandardNode.js +0 -116
  633. package/examples/jsm/nodes/materials/nodes/PhongNode.js +0 -409
  634. package/examples/jsm/nodes/materials/nodes/RawNode.js +0 -62
  635. package/examples/jsm/nodes/materials/nodes/SpriteNode.js +0 -236
  636. package/examples/jsm/nodes/materials/nodes/StandardNode.js +0 -609
  637. package/examples/jsm/nodes/misc/BumpMapNode.js +0 -163
  638. package/examples/jsm/nodes/misc/NormalMapNode.js +0 -138
  639. package/examples/jsm/nodes/misc/TextureCubeNode.js +0 -86
  640. package/examples/jsm/nodes/misc/TextureCubeUVNode.js +0 -280
  641. package/examples/jsm/nodes/postprocessing/NodePass.js +0 -93
  642. package/examples/jsm/nodes/postprocessing/NodePostProcessing.js +0 -148
  643. package/examples/jsm/nodes/procedural/Fractal3DNode.js +0 -104
  644. package/examples/jsm/nodes/procedural/Noise2DNode.js +0 -149
  645. package/examples/jsm/nodes/procedural/Noise3DNode.js +0 -141
  646. package/examples/jsm/nodes/utils/BypassNode.js +0 -85
  647. package/examples/jsm/nodes/utils/ColorSpaceNode.js +0 -145
  648. package/examples/jsm/nodes/utils/MaxMIPLevelNode.js +0 -56
  649. package/examples/jsm/nodes/utils/RemapNode.js +0 -155
  650. package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +0 -101
  651. package/examples/jsm/nodes/utils/SubSlotNode.js +0 -77
  652. package/examples/jsm/nodes/utils/SwitchNode.js +0 -103
  653. package/examples/jsm/nodes/utils/UVTransformNode.js +0 -66
  654. package/examples/jsm/nodes/utils/VelocityNode.js +0 -170
  655. package/examples/jsm/objects/ReflectorRTT.js +0 -15
  656. package/examples/jsm/postprocessing/SSRrPass.js +0 -579
  657. package/examples/jsm/renderers/nodes/Nodes.js +0 -166
  658. package/examples/jsm/renderers/nodes/ShaderNode.js +0 -373
  659. package/examples/jsm/renderers/nodes/accessors/CameraNode.js +0 -68
  660. package/examples/jsm/renderers/nodes/accessors/NormalNode.js +0 -63
  661. package/examples/jsm/renderers/nodes/accessors/PositionNode.js +0 -67
  662. package/examples/jsm/renderers/nodes/accessors/ReferenceNode.js +0 -91
  663. package/examples/jsm/renderers/nodes/accessors/SkinningNode.js +0 -107
  664. package/examples/jsm/renderers/nodes/accessors/UVNode.js +0 -25
  665. package/examples/jsm/renderers/nodes/core/ArrayInputNode.js +0 -23
  666. package/examples/jsm/renderers/nodes/core/AttributeNode.js +0 -54
  667. package/examples/jsm/renderers/nodes/core/ExpressionNode.js +0 -32
  668. package/examples/jsm/renderers/nodes/core/FunctionCallNode.js +0 -67
  669. package/examples/jsm/renderers/nodes/core/FunctionNode.js +0 -87
  670. package/examples/jsm/renderers/nodes/core/InputNode.js +0 -66
  671. package/examples/jsm/renderers/nodes/core/Node.js +0 -104
  672. package/examples/jsm/renderers/nodes/core/NodeBuilder.js +0 -634
  673. package/examples/jsm/renderers/nodes/core/NodeFrame.js +0 -59
  674. package/examples/jsm/renderers/nodes/core/NodeUniform.js +0 -28
  675. package/examples/jsm/renderers/nodes/core/TempNode.js +0 -43
  676. package/examples/jsm/renderers/nodes/core/VarNode.js +0 -51
  677. package/examples/jsm/renderers/nodes/display/NormalMapNode.js +0 -87
  678. package/examples/jsm/renderers/nodes/functions/BSDFs.js +0 -122
  679. package/examples/jsm/renderers/nodes/functions/PhysicalMaterialFunctions.js +0 -27
  680. package/examples/jsm/renderers/nodes/inputs/BufferNode.js +0 -25
  681. package/examples/jsm/renderers/nodes/inputs/ColorNode.js +0 -18
  682. package/examples/jsm/renderers/nodes/inputs/FloatNode.js +0 -17
  683. package/examples/jsm/renderers/nodes/inputs/IntNode.js +0 -17
  684. package/examples/jsm/renderers/nodes/inputs/Matrix3Node.js +0 -18
  685. package/examples/jsm/renderers/nodes/inputs/Matrix4Node.js +0 -18
  686. package/examples/jsm/renderers/nodes/inputs/TextureNode.js +0 -74
  687. package/examples/jsm/renderers/nodes/inputs/Vector2Node.js +0 -18
  688. package/examples/jsm/renderers/nodes/inputs/Vector3Node.js +0 -18
  689. package/examples/jsm/renderers/nodes/inputs/Vector4Node.js +0 -18
  690. package/examples/jsm/renderers/nodes/lights/LightContextNode.js +0 -59
  691. package/examples/jsm/renderers/nodes/lights/LightNode.js +0 -79
  692. package/examples/jsm/renderers/nodes/lights/LightsNode.js +0 -44
  693. package/examples/jsm/renderers/nodes/materials/Materials.js +0 -11
  694. package/examples/jsm/renderers/nodes/materials/MeshStandardNodeMaterial.js +0 -63
  695. package/examples/jsm/renderers/nodes/math/CondNode.js +0 -60
  696. package/examples/jsm/renderers/nodes/math/MathNode.js +0 -242
  697. package/examples/jsm/renderers/nodes/math/OperatorNode.js +0 -174
  698. package/examples/jsm/renderers/nodes/procedural/CheckerNode.js +0 -36
  699. package/examples/jsm/renderers/nodes/utils/JoinNode.js +0 -42
  700. package/examples/jsm/renderers/nodes/utils/TimerNode.js +0 -47
  701. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +0 -20
  702. package/examples/jsm/shaders/SSRrShader.js +0 -307
  703. package/src/renderers/WebGLMultisampleRenderTarget.js +0 -33
@@ -130,9 +130,9 @@ class EXRLoader extends DataTextureLoader {
130
130
 
131
131
  function reverseLutFromBitmap( bitmap, lut ) {
132
132
 
133
- var k = 0;
133
+ let k = 0;
134
134
 
135
- for ( var i = 0; i < USHORT_RANGE; ++ i ) {
135
+ for ( let i = 0; i < USHORT_RANGE; ++ i ) {
136
136
 
137
137
  if ( ( i == 0 ) || ( bitmap[ i >> 3 ] & ( 1 << ( i & 7 ) ) ) ) {
138
138
 
@@ -142,7 +142,7 @@ class EXRLoader extends DataTextureLoader {
142
142
 
143
143
  }
144
144
 
145
- var n = k - 1;
145
+ const n = k - 1;
146
146
 
147
147
  while ( k < USHORT_RANGE ) lut[ k ++ ] = 0;
148
148
 
@@ -152,7 +152,7 @@ class EXRLoader extends DataTextureLoader {
152
152
 
153
153
  function hufClearDecTable( hdec ) {
154
154
 
155
- for ( var i = 0; i < HUF_DECSIZE; i ++ ) {
155
+ for ( let i = 0; i < HUF_DECSIZE; i ++ ) {
156
156
 
157
157
  hdec[ i ] = {};
158
158
  hdec[ i ].len = 0;
@@ -186,33 +186,33 @@ class EXRLoader extends DataTextureLoader {
186
186
 
187
187
  function hufCanonicalCodeTable( hcode ) {
188
188
 
189
- for ( var i = 0; i <= 58; ++ i ) hufTableBuffer[ i ] = 0;
190
- for ( var i = 0; i < HUF_ENCSIZE; ++ i ) hufTableBuffer[ hcode[ i ] ] += 1;
189
+ for ( let i = 0; i <= 58; ++ i ) hufTableBuffer[ i ] = 0;
190
+ for ( let i = 0; i < HUF_ENCSIZE; ++ i ) hufTableBuffer[ hcode[ i ] ] += 1;
191
191
 
192
- var c = 0;
192
+ let c = 0;
193
193
 
194
- for ( var i = 58; i > 0; -- i ) {
194
+ for ( let i = 58; i > 0; -- i ) {
195
195
 
196
- var nc = ( ( c + hufTableBuffer[ i ] ) >> 1 );
196
+ const nc = ( ( c + hufTableBuffer[ i ] ) >> 1 );
197
197
  hufTableBuffer[ i ] = c;
198
198
  c = nc;
199
199
 
200
200
  }
201
201
 
202
- for ( var i = 0; i < HUF_ENCSIZE; ++ i ) {
202
+ for ( let i = 0; i < HUF_ENCSIZE; ++ i ) {
203
203
 
204
- var l = hcode[ i ];
204
+ const l = hcode[ i ];
205
205
  if ( l > 0 ) hcode[ i ] = l | ( hufTableBuffer[ l ] ++ << 6 );
206
206
 
207
207
  }
208
208
 
209
209
  }
210
210
 
211
- function hufUnpackEncTable( uInt8Array, inDataView, inOffset, ni, im, iM, hcode ) {
211
+ function hufUnpackEncTable( uInt8Array, inOffset, ni, im, iM, hcode ) {
212
212
 
213
- var p = inOffset;
214
- var c = 0;
215
- var lc = 0;
213
+ const p = inOffset;
214
+ let c = 0;
215
+ let lc = 0;
216
216
 
217
217
  for ( ; im <= iM; im ++ ) {
218
218
 
@@ -220,7 +220,7 @@ class EXRLoader extends DataTextureLoader {
220
220
 
221
221
  getBits( 6, c, lc, uInt8Array, p );
222
222
 
223
- var l = getBitsReturn.l;
223
+ const l = getBitsReturn.l;
224
224
  c = getBitsReturn.c;
225
225
  lc = getBitsReturn.lc;
226
226
 
@@ -236,7 +236,7 @@ class EXRLoader extends DataTextureLoader {
236
236
 
237
237
  getBits( 8, c, lc, uInt8Array, p );
238
238
 
239
- var zerun = getBitsReturn.l + SHORTEST_LONG_RUN;
239
+ let zerun = getBitsReturn.l + SHORTEST_LONG_RUN;
240
240
  c = getBitsReturn.c;
241
241
  lc = getBitsReturn.lc;
242
242
 
@@ -252,7 +252,7 @@ class EXRLoader extends DataTextureLoader {
252
252
 
253
253
  } else if ( l >= SHORT_ZEROCODE_RUN ) {
254
254
 
255
- var zerun = l - SHORT_ZEROCODE_RUN + 2;
255
+ let zerun = l - SHORT_ZEROCODE_RUN + 2;
256
256
 
257
257
  if ( im + zerun > iM + 1 ) {
258
258
 
@@ -288,8 +288,8 @@ class EXRLoader extends DataTextureLoader {
288
288
 
289
289
  for ( ; im <= iM; im ++ ) {
290
290
 
291
- var c = hufCode( hcode[ im ] );
292
- var l = hufLength( hcode[ im ] );
291
+ const c = hufCode( hcode[ im ] );
292
+ const l = hufLength( hcode[ im ] );
293
293
 
294
294
  if ( c >> l ) {
295
295
 
@@ -299,7 +299,7 @@ class EXRLoader extends DataTextureLoader {
299
299
 
300
300
  if ( l > HUF_DECBITS ) {
301
301
 
302
- var pl = hdecod[ ( c >> ( l - HUF_DECBITS ) ) ];
302
+ const pl = hdecod[ ( c >> ( l - HUF_DECBITS ) ) ];
303
303
 
304
304
  if ( pl.len ) {
305
305
 
@@ -311,10 +311,10 @@ class EXRLoader extends DataTextureLoader {
311
311
 
312
312
  if ( pl.p ) {
313
313
 
314
- var p = pl.p;
314
+ const p = pl.p;
315
315
  pl.p = new Array( pl.lit );
316
316
 
317
- for ( var i = 0; i < pl.lit - 1; ++ i ) {
317
+ for ( let i = 0; i < pl.lit - 1; ++ i ) {
318
318
 
319
319
  pl.p[ i ] = p[ i ];
320
320
 
@@ -330,11 +330,11 @@ class EXRLoader extends DataTextureLoader {
330
330
 
331
331
  } else if ( l ) {
332
332
 
333
- var plOffset = 0;
333
+ let plOffset = 0;
334
334
 
335
- for ( var i = 1 << ( HUF_DECBITS - l ); i > 0; i -- ) {
335
+ for ( let i = 1 << ( HUF_DECBITS - l ); i > 0; i -- ) {
336
336
 
337
- var pl = hdecod[ ( c << ( HUF_DECBITS - l ) ) + plOffset ];
337
+ const pl = hdecod[ ( c << ( HUF_DECBITS - l ) ) + plOffset ];
338
338
 
339
339
  if ( pl.len || pl.p ) {
340
340
 
@@ -371,7 +371,7 @@ class EXRLoader extends DataTextureLoader {
371
371
 
372
372
  const getCodeReturn = { c: 0, lc: 0 };
373
373
 
374
- function getCode( po, rlc, c, lc, uInt8Array, inDataView, inOffset, outBuffer, outBufferOffset, outBufferEndOffset ) {
374
+ function getCode( po, rlc, c, lc, uInt8Array, inOffset, outBuffer, outBufferOffset, outBufferEndOffset ) {
375
375
 
376
376
  if ( po == rlc ) {
377
377
 
@@ -385,8 +385,8 @@ class EXRLoader extends DataTextureLoader {
385
385
 
386
386
  lc -= 8;
387
387
 
388
- var cs = ( c >> lc );
389
- var cs = new Uint8Array( [ cs ] )[ 0 ];
388
+ let cs = ( c >> lc );
389
+ cs = new Uint8Array( [ cs ] )[ 0 ];
390
390
 
391
391
  if ( outBufferOffset.value + cs > outBufferEndOffset ) {
392
392
 
@@ -394,7 +394,7 @@ class EXRLoader extends DataTextureLoader {
394
394
 
395
395
  }
396
396
 
397
- var s = outBuffer[ outBufferOffset.value - 1 ];
397
+ const s = outBuffer[ outBufferOffset.value - 1 ];
398
398
 
399
399
  while ( cs -- > 0 ) {
400
400
 
@@ -425,7 +425,7 @@ class EXRLoader extends DataTextureLoader {
425
425
 
426
426
  function Int16( value ) {
427
427
 
428
- var ref = UInt16( value );
428
+ const ref = UInt16( value );
429
429
  return ( ref > 0x7FFF ) ? ref - 0x10000 : ref;
430
430
 
431
431
  }
@@ -434,14 +434,14 @@ class EXRLoader extends DataTextureLoader {
434
434
 
435
435
  function wdec14( l, h ) {
436
436
 
437
- var ls = Int16( l );
438
- var hs = Int16( h );
437
+ const ls = Int16( l );
438
+ const hs = Int16( h );
439
439
 
440
- var hi = hs;
441
- var ai = ls + ( hi & 1 ) + ( hi >> 1 );
440
+ const hi = hs;
441
+ const ai = ls + ( hi & 1 ) + ( hi >> 1 );
442
442
 
443
- var as = ai;
444
- var bs = ai - hi;
443
+ const as = ai;
444
+ const bs = ai - hi;
445
445
 
446
446
  wdec14Return.a = as;
447
447
  wdec14Return.b = bs;
@@ -450,11 +450,11 @@ class EXRLoader extends DataTextureLoader {
450
450
 
451
451
  function wdec16( l, h ) {
452
452
 
453
- var m = UInt16( l );
454
- var d = UInt16( h );
453
+ const m = UInt16( l );
454
+ const d = UInt16( h );
455
455
 
456
- var bb = ( m - ( d >> 1 ) ) & MOD_MASK;
457
- var aa = ( d + bb - A_OFFSET ) & MOD_MASK;
456
+ const bb = ( m - ( d >> 1 ) ) & MOD_MASK;
457
+ const aa = ( d + bb - A_OFFSET ) & MOD_MASK;
458
458
 
459
459
  wdec14Return.a = aa;
460
460
  wdec14Return.b = bb;
@@ -463,10 +463,11 @@ class EXRLoader extends DataTextureLoader {
463
463
 
464
464
  function wav2Decode( buffer, j, nx, ox, ny, oy, mx ) {
465
465
 
466
- var w14 = mx < ( 1 << 14 );
467
- var n = ( nx > ny ) ? ny : nx;
468
- var p = 1;
469
- var p2;
466
+ const w14 = mx < ( 1 << 14 );
467
+ const n = ( nx > ny ) ? ny : nx;
468
+ let p = 1;
469
+ let p2;
470
+ let py;
470
471
 
471
472
  while ( p <= n ) p <<= 1;
472
473
 
@@ -476,24 +477,24 @@ class EXRLoader extends DataTextureLoader {
476
477
 
477
478
  while ( p >= 1 ) {
478
479
 
479
- var py = 0;
480
- var ey = py + oy * ( ny - p2 );
481
- var oy1 = oy * p;
482
- var oy2 = oy * p2;
483
- var ox1 = ox * p;
484
- var ox2 = ox * p2;
485
- var i00, i01, i10, i11;
480
+ py = 0;
481
+ const ey = py + oy * ( ny - p2 );
482
+ const oy1 = oy * p;
483
+ const oy2 = oy * p2;
484
+ const ox1 = ox * p;
485
+ const ox2 = ox * p2;
486
+ let i00, i01, i10, i11;
486
487
 
487
488
  for ( ; py <= ey; py += oy2 ) {
488
489
 
489
- var px = py;
490
- var ex = py + ox * ( nx - p2 );
490
+ let px = py;
491
+ const ex = py + ox * ( nx - p2 );
491
492
 
492
493
  for ( ; px <= ex; px += ox2 ) {
493
494
 
494
- var p01 = px + ox1;
495
- var p10 = px + oy1;
496
- var p11 = p10 + ox1;
495
+ const p01 = px + ox1;
496
+ const p10 = px + oy1;
497
+ const p11 = p10 + ox1;
497
498
 
498
499
  if ( w14 ) {
499
500
 
@@ -546,7 +547,7 @@ class EXRLoader extends DataTextureLoader {
546
547
 
547
548
  if ( nx & p ) {
548
549
 
549
- var p10 = px + oy1;
550
+ const p10 = px + oy1;
550
551
 
551
552
  if ( w14 )
552
553
  wdec14( buffer[ px + j ], buffer[ p10 + j ] );
@@ -564,12 +565,12 @@ class EXRLoader extends DataTextureLoader {
564
565
 
565
566
  if ( ny & p ) {
566
567
 
567
- var px = py;
568
- var ex = py + ox * ( nx - p2 );
568
+ let px = py;
569
+ const ex = py + ox * ( nx - p2 );
569
570
 
570
571
  for ( ; px <= ex; px += ox2 ) {
571
572
 
572
- var p01 = px + ox1;
573
+ const p01 = px + ox1;
573
574
 
574
575
  if ( w14 )
575
576
  wdec14( buffer[ px + j ], buffer[ p01 + j ] );
@@ -594,12 +595,12 @@ class EXRLoader extends DataTextureLoader {
594
595
 
595
596
  }
596
597
 
597
- function hufDecode( encodingTable, decodingTable, uInt8Array, inDataView, inOffset, ni, rlc, no, outBuffer, outOffset ) {
598
+ function hufDecode( encodingTable, decodingTable, uInt8Array, inOffset, ni, rlc, no, outBuffer, outOffset ) {
598
599
 
599
- var c = 0;
600
- var lc = 0;
601
- var outBufferEndOffset = no;
602
- var inOffsetEnd = Math.trunc( inOffset.value + ( ni + 7 ) / 8 );
600
+ let c = 0;
601
+ let lc = 0;
602
+ const outBufferEndOffset = no;
603
+ const inOffsetEnd = Math.trunc( inOffset.value + ( ni + 7 ) / 8 );
603
604
 
604
605
  while ( inOffset.value < inOffsetEnd ) {
605
606
 
@@ -610,14 +611,14 @@ class EXRLoader extends DataTextureLoader {
610
611
 
611
612
  while ( lc >= HUF_DECBITS ) {
612
613
 
613
- var index = ( c >> ( lc - HUF_DECBITS ) ) & HUF_DECMASK;
614
- var pl = decodingTable[ index ];
614
+ const index = ( c >> ( lc - HUF_DECBITS ) ) & HUF_DECMASK;
615
+ const pl = decodingTable[ index ];
615
616
 
616
617
  if ( pl.len ) {
617
618
 
618
619
  lc -= pl.len;
619
620
 
620
- getCode( pl.lit, rlc, c, lc, uInt8Array, inDataView, inOffset, outBuffer, outOffset, outBufferEndOffset );
621
+ getCode( pl.lit, rlc, c, lc, uInt8Array, inOffset, outBuffer, outOffset, outBufferEndOffset );
621
622
 
622
623
  c = getCodeReturn.c;
623
624
  lc = getCodeReturn.lc;
@@ -630,11 +631,11 @@ class EXRLoader extends DataTextureLoader {
630
631
 
631
632
  }
632
633
 
633
- var j;
634
+ let j;
634
635
 
635
636
  for ( j = 0; j < pl.lit; j ++ ) {
636
637
 
637
- var l = hufLength( encodingTable[ pl.p[ j ] ] );
638
+ const l = hufLength( encodingTable[ pl.p[ j ] ] );
638
639
 
639
640
  while ( lc < l && inOffset.value < inOffsetEnd ) {
640
641
 
@@ -651,7 +652,7 @@ class EXRLoader extends DataTextureLoader {
651
652
 
652
653
  lc -= l;
653
654
 
654
- getCode( pl.p[ j ], rlc, c, lc, uInt8Array, inDataView, inOffset, outBuffer, outOffset, outBufferEndOffset );
655
+ getCode( pl.p[ j ], rlc, c, lc, uInt8Array, inOffset, outBuffer, outOffset, outBufferEndOffset );
655
656
 
656
657
  c = getCodeReturn.c;
657
658
  lc = getCodeReturn.lc;
@@ -676,20 +677,20 @@ class EXRLoader extends DataTextureLoader {
676
677
 
677
678
  }
678
679
 
679
- var i = ( 8 - ni ) & 7;
680
+ const i = ( 8 - ni ) & 7;
680
681
 
681
682
  c >>= i;
682
683
  lc -= i;
683
684
 
684
685
  while ( lc > 0 ) {
685
686
 
686
- var pl = decodingTable[ ( c << ( HUF_DECBITS - lc ) ) & HUF_DECMASK ];
687
+ const pl = decodingTable[ ( c << ( HUF_DECBITS - lc ) ) & HUF_DECMASK ];
687
688
 
688
689
  if ( pl.len ) {
689
690
 
690
691
  lc -= pl.len;
691
692
 
692
- getCode( pl.lit, rlc, c, lc, uInt8Array, inDataView, inOffset, outBuffer, outOffset, outBufferEndOffset );
693
+ getCode( pl.lit, rlc, c, lc, uInt8Array, inOffset, outBuffer, outOffset, outBufferEndOffset );
693
694
 
694
695
  c = getCodeReturn.c;
695
696
  lc = getCodeReturn.lc;
@@ -708,15 +709,15 @@ class EXRLoader extends DataTextureLoader {
708
709
 
709
710
  function hufUncompress( uInt8Array, inDataView, inOffset, nCompressed, outBuffer, nRaw ) {
710
711
 
711
- var outOffset = { value: 0 };
712
- var initialInOffset = inOffset.value;
712
+ const outOffset = { value: 0 };
713
+ const initialInOffset = inOffset.value;
713
714
 
714
- var im = parseUint32( inDataView, inOffset );
715
- var iM = parseUint32( inDataView, inOffset );
715
+ const im = parseUint32( inDataView, inOffset );
716
+ const iM = parseUint32( inDataView, inOffset );
716
717
 
717
718
  inOffset.value += 4;
718
719
 
719
- var nBits = parseUint32( inDataView, inOffset );
720
+ const nBits = parseUint32( inDataView, inOffset );
720
721
 
721
722
  inOffset.value += 4;
722
723
 
@@ -726,14 +727,14 @@ class EXRLoader extends DataTextureLoader {
726
727
 
727
728
  }
728
729
 
729
- var freq = new Array( HUF_ENCSIZE );
730
- var hdec = new Array( HUF_DECSIZE );
730
+ const freq = new Array( HUF_ENCSIZE );
731
+ const hdec = new Array( HUF_DECSIZE );
731
732
 
732
733
  hufClearDecTable( hdec );
733
734
 
734
- var ni = nCompressed - ( inOffset.value - initialInOffset );
735
+ const ni = nCompressed - ( inOffset.value - initialInOffset );
735
736
 
736
- hufUnpackEncTable( uInt8Array, inDataView, inOffset, ni, im, iM, freq );
737
+ hufUnpackEncTable( uInt8Array, inOffset, ni, im, iM, freq );
737
738
 
738
739
  if ( nBits > 8 * ( nCompressed - ( inOffset.value - initialInOffset ) ) ) {
739
740
 
@@ -743,13 +744,13 @@ class EXRLoader extends DataTextureLoader {
743
744
 
744
745
  hufBuildDecTable( freq, im, iM, hdec );
745
746
 
746
- hufDecode( freq, hdec, uInt8Array, inDataView, inOffset, nBits, iM, nRaw, outBuffer, outOffset );
747
+ hufDecode( freq, hdec, uInt8Array, inOffset, nBits, iM, nRaw, outBuffer, outOffset );
747
748
 
748
749
  }
749
750
 
750
751
  function applyLut( lut, data, nData ) {
751
752
 
752
- for ( var i = 0; i < nData; ++ i ) {
753
+ for ( let i = 0; i < nData; ++ i ) {
753
754
 
754
755
  data[ i ] = lut[ data[ i ] ];
755
756
 
@@ -759,9 +760,9 @@ class EXRLoader extends DataTextureLoader {
759
760
 
760
761
  function predictor( source ) {
761
762
 
762
- for ( var t = 1; t < source.length; t ++ ) {
763
+ for ( let t = 1; t < source.length; t ++ ) {
763
764
 
764
- var d = source[ t - 1 ] + source[ t ] - 128;
765
+ const d = source[ t - 1 ] + source[ t ] - 128;
765
766
  source[ t ] = d;
766
767
 
767
768
  }
@@ -770,10 +771,10 @@ class EXRLoader extends DataTextureLoader {
770
771
 
771
772
  function interleaveScalar( source, out ) {
772
773
 
773
- var t1 = 0;
774
- var t2 = Math.floor( ( source.length + 1 ) / 2 );
775
- var s = 0;
776
- var stop = source.length - 1;
774
+ let t1 = 0;
775
+ let t2 = Math.floor( ( source.length + 1 ) / 2 );
776
+ let s = 0;
777
+ const stop = source.length - 1;
777
778
 
778
779
  while ( true ) {
779
780
 
@@ -789,22 +790,22 @@ class EXRLoader extends DataTextureLoader {
789
790
 
790
791
  function decodeRunLength( source ) {
791
792
 
792
- var size = source.byteLength;
793
- var out = new Array();
794
- var p = 0;
793
+ let size = source.byteLength;
794
+ const out = new Array();
795
+ let p = 0;
795
796
 
796
- var reader = new DataView( source );
797
+ const reader = new DataView( source );
797
798
 
798
799
  while ( size > 0 ) {
799
800
 
800
- var l = reader.getInt8( p ++ );
801
+ const l = reader.getInt8( p ++ );
801
802
 
802
803
  if ( l < 0 ) {
803
804
 
804
- var count = - l;
805
+ const count = - l;
805
806
  size -= count + 1;
806
807
 
807
- for ( var i = 0; i < count; i ++ ) {
808
+ for ( let i = 0; i < count; i ++ ) {
808
809
 
809
810
  out.push( reader.getUint8( p ++ ) );
810
811
 
@@ -813,12 +814,12 @@ class EXRLoader extends DataTextureLoader {
813
814
 
814
815
  } else {
815
816
 
816
- var count = l;
817
+ const count = l;
817
818
  size -= 2;
818
819
 
819
- var value = reader.getUint8( p ++ );
820
+ const value = reader.getUint8( p ++ );
820
821
 
821
- for ( var i = 0; i < count + 1; i ++ ) {
822
+ for ( let i = 0; i < count + 1; i ++ ) {
822
823
 
823
824
  out.push( value );
824
825
 
@@ -834,25 +835,25 @@ class EXRLoader extends DataTextureLoader {
834
835
 
835
836
  function lossyDctDecode( cscSet, rowPtrs, channelData, acBuffer, dcBuffer, outBuffer ) {
836
837
 
837
- var dataView = new DataView( outBuffer.buffer );
838
+ let dataView = new DataView( outBuffer.buffer );
838
839
 
839
- var width = channelData[ cscSet.idx[ 0 ] ].width;
840
- var height = channelData[ cscSet.idx[ 0 ] ].height;
840
+ const width = channelData[ cscSet.idx[ 0 ] ].width;
841
+ const height = channelData[ cscSet.idx[ 0 ] ].height;
841
842
 
842
- var numComp = 3;
843
+ const numComp = 3;
843
844
 
844
- var numFullBlocksX = Math.floor( width / 8.0 );
845
- var numBlocksX = Math.ceil( width / 8.0 );
846
- var numBlocksY = Math.ceil( height / 8.0 );
847
- var leftoverX = width - ( numBlocksX - 1 ) * 8;
848
- var leftoverY = height - ( numBlocksY - 1 ) * 8;
845
+ const numFullBlocksX = Math.floor( width / 8.0 );
846
+ const numBlocksX = Math.ceil( width / 8.0 );
847
+ const numBlocksY = Math.ceil( height / 8.0 );
848
+ const leftoverX = width - ( numBlocksX - 1 ) * 8;
849
+ const leftoverY = height - ( numBlocksY - 1 ) * 8;
849
850
 
850
- var currAcComp = { value: 0 };
851
- var currDcComp = new Array( numComp );
852
- var dctData = new Array( numComp );
853
- var halfZigBlock = new Array( numComp );
854
- var rowBlock = new Array( numComp );
855
- var rowOffsets = new Array( numComp );
851
+ const currAcComp = { value: 0 };
852
+ const currDcComp = new Array( numComp );
853
+ const dctData = new Array( numComp );
854
+ const halfZigBlock = new Array( numComp );
855
+ const rowBlock = new Array( numComp );
856
+ const rowOffsets = new Array( numComp );
856
857
 
857
858
  for ( let comp = 0; comp < numComp; ++ comp ) {
858
859
 
@@ -866,12 +867,12 @@ class EXRLoader extends DataTextureLoader {
866
867
 
867
868
  for ( let blocky = 0; blocky < numBlocksY; ++ blocky ) {
868
869
 
869
- var maxY = 8;
870
+ let maxY = 8;
870
871
 
871
872
  if ( blocky == numBlocksY - 1 )
872
873
  maxY = leftoverY;
873
874
 
874
- var maxX = 8;
875
+ let maxX = 8;
875
876
 
876
877
  for ( let blockx = 0; blockx < numBlocksX; ++ blockx ) {
877
878
 
@@ -960,28 +961,28 @@ class EXRLoader extends DataTextureLoader {
960
961
 
961
962
  } // blocky
962
963
 
963
- var halfRow = new Uint16Array( width );
964
- var dataView = new DataView( outBuffer.buffer );
964
+ const halfRow = new Uint16Array( width );
965
+ dataView = new DataView( outBuffer.buffer );
965
966
 
966
967
  // convert channels back to float, if needed
967
- for ( var comp = 0; comp < numComp; ++ comp ) {
968
+ for ( let comp = 0; comp < numComp; ++ comp ) {
968
969
 
969
970
  channelData[ cscSet.idx[ comp ] ].decoded = true;
970
- var type = channelData[ cscSet.idx[ comp ] ].type;
971
+ const type = channelData[ cscSet.idx[ comp ] ].type;
971
972
 
972
973
  if ( channelData[ comp ].type != 2 ) continue;
973
974
 
974
- for ( var y = 0; y < height; ++ y ) {
975
+ for ( let y = 0; y < height; ++ y ) {
975
976
 
976
977
  const offset = rowOffsets[ comp ][ y ];
977
978
 
978
- for ( var x = 0; x < width; ++ x ) {
979
+ for ( let x = 0; x < width; ++ x ) {
979
980
 
980
981
  halfRow[ x ] = dataView.getUint16( offset + x * INT16_SIZE * type, true );
981
982
 
982
983
  }
983
984
 
984
- for ( var x = 0; x < width; ++ x ) {
985
+ for ( let x = 0; x < width; ++ x ) {
985
986
 
986
987
  dataView.setFloat32( offset + x * INT16_SIZE * type, decodeFloat16( halfRow[ x ] ), true );
987
988
 
@@ -995,8 +996,8 @@ class EXRLoader extends DataTextureLoader {
995
996
 
996
997
  function unRleAC( currAcComp, acBuffer, halfZigBlock ) {
997
998
 
998
- var acValue;
999
- var dctComp = 1;
999
+ let acValue;
1000
+ let dctComp = 1;
1000
1001
 
1001
1002
  while ( dctComp < 64 ) {
1002
1003
 
@@ -1108,14 +1109,14 @@ class EXRLoader extends DataTextureLoader {
1108
1109
  const f = 0.5 * Math.cos( 3.0 * 3.14159 / 8.0 );
1109
1110
  const g = 0.5 * Math.cos( 7.0 * 3.14159 / 16.0 );
1110
1111
 
1111
- var alpha = new Array( 4 );
1112
- var beta = new Array( 4 );
1113
- var theta = new Array( 4 );
1114
- var gamma = new Array( 4 );
1112
+ const alpha = new Array( 4 );
1113
+ const beta = new Array( 4 );
1114
+ const theta = new Array( 4 );
1115
+ const gamma = new Array( 4 );
1115
1116
 
1116
- for ( var row = 0; row < 8; ++ row ) {
1117
+ for ( let row = 0; row < 8; ++ row ) {
1117
1118
 
1118
- var rowPtr = row * 8;
1119
+ const rowPtr = row * 8;
1119
1120
 
1120
1121
  alpha[ 0 ] = c * data[ rowPtr + 2 ];
1121
1122
  alpha[ 1 ] = f * data[ rowPtr + 2 ];
@@ -1149,7 +1150,7 @@ class EXRLoader extends DataTextureLoader {
1149
1150
 
1150
1151
  }
1151
1152
 
1152
- for ( var column = 0; column < 8; ++ column ) {
1153
+ for ( let column = 0; column < 8; ++ column ) {
1153
1154
 
1154
1155
  alpha[ 0 ] = c * data[ 16 + column ];
1155
1156
  alpha[ 1 ] = f * data[ 16 + column ];
@@ -1188,11 +1189,11 @@ class EXRLoader extends DataTextureLoader {
1188
1189
 
1189
1190
  function csc709Inverse( data ) {
1190
1191
 
1191
- for ( var i = 0; i < 64; ++ i ) {
1192
+ for ( let i = 0; i < 64; ++ i ) {
1192
1193
 
1193
- var y = data[ 0 ][ i ];
1194
- var cb = data[ 1 ][ i ];
1195
- var cr = data[ 2 ][ i ];
1194
+ const y = data[ 0 ][ i ];
1195
+ const cb = data[ 1 ][ i ];
1196
+ const cr = data[ 2 ][ i ];
1196
1197
 
1197
1198
  data[ 0 ][ i ] = y + 1.5747 * cr;
1198
1199
  data[ 1 ][ i ] = y - 0.1873 * cb - 0.4682 * cr;
@@ -1204,7 +1205,7 @@ class EXRLoader extends DataTextureLoader {
1204
1205
 
1205
1206
  function convertToHalf( src, dst, idx ) {
1206
1207
 
1207
- for ( var i = 0; i < 64; ++ i ) {
1208
+ for ( let i = 0; i < 64; ++ i ) {
1208
1209
 
1209
1210
  dst[ idx + i ] = DataUtils.toHalfFloat( toLinear( src[ i ] ) );
1210
1211
 
@@ -1234,10 +1235,10 @@ class EXRLoader extends DataTextureLoader {
1234
1235
 
1235
1236
  function uncompressRLE( info ) {
1236
1237
 
1237
- var compressed = info.viewer.buffer.slice( info.offset.value, info.offset.value + info.size );
1238
+ const compressed = info.viewer.buffer.slice( info.offset.value, info.offset.value + info.size );
1238
1239
 
1239
- var rawBuffer = new Uint8Array( decodeRunLength( compressed ) );
1240
- var tmpBuffer = new Uint8Array( rawBuffer.length );
1240
+ const rawBuffer = new Uint8Array( decodeRunLength( compressed ) );
1241
+ const tmpBuffer = new Uint8Array( rawBuffer.length );
1241
1242
 
1242
1243
  predictor( rawBuffer ); // revert predictor
1243
1244
 
@@ -1249,7 +1250,7 @@ class EXRLoader extends DataTextureLoader {
1249
1250
 
1250
1251
  function uncompressZIP( info ) {
1251
1252
 
1252
- var compressed = info.array.slice( info.offset.value, info.offset.value + info.size );
1253
+ const compressed = info.array.slice( info.offset.value, info.offset.value + info.size );
1253
1254
 
1254
1255
  if ( typeof fflate === 'undefined' ) {
1255
1256
 
@@ -1257,8 +1258,8 @@ class EXRLoader extends DataTextureLoader {
1257
1258
 
1258
1259
  }
1259
1260
 
1260
- var rawBuffer = fflate.unzlibSync( compressed ); // eslint-disable-line no-undef
1261
- var tmpBuffer = new Uint8Array( rawBuffer.length );
1261
+ const rawBuffer = fflate.unzlibSync( compressed ); // eslint-disable-line no-undef
1262
+ const tmpBuffer = new Uint8Array( rawBuffer.length );
1262
1263
 
1263
1264
  predictor( rawBuffer ); // revert predictor
1264
1265
 
@@ -1270,16 +1271,16 @@ class EXRLoader extends DataTextureLoader {
1270
1271
 
1271
1272
  function uncompressPIZ( info ) {
1272
1273
 
1273
- var inDataView = info.viewer;
1274
- var inOffset = { value: info.offset.value };
1274
+ const inDataView = info.viewer;
1275
+ const inOffset = { value: info.offset.value };
1275
1276
 
1276
- var outBuffer = new Uint16Array( info.width * info.scanlineBlockSize * ( info.channels * info.type ) );
1277
- var bitmap = new Uint8Array( BITMAP_SIZE );
1277
+ const outBuffer = new Uint16Array( info.width * info.scanlineBlockSize * ( info.channels * info.type ) );
1278
+ const bitmap = new Uint8Array( BITMAP_SIZE );
1278
1279
 
1279
1280
  // Setup channel info
1280
- var outBufferEnd = 0;
1281
- var pizChannelData = new Array( info.channels );
1282
- for ( var i = 0; i < info.channels; i ++ ) {
1281
+ let outBufferEnd = 0;
1282
+ const pizChannelData = new Array( info.channels );
1283
+ for ( let i = 0; i < info.channels; i ++ ) {
1283
1284
 
1284
1285
  pizChannelData[ i ] = {};
1285
1286
  pizChannelData[ i ][ 'start' ] = outBufferEnd;
@@ -1294,8 +1295,8 @@ class EXRLoader extends DataTextureLoader {
1294
1295
 
1295
1296
  // Read range compression data
1296
1297
 
1297
- var minNonZero = parseUint16( inDataView, inOffset );
1298
- var maxNonZero = parseUint16( inDataView, inOffset );
1298
+ const minNonZero = parseUint16( inDataView, inOffset );
1299
+ const maxNonZero = parseUint16( inDataView, inOffset );
1299
1300
 
1300
1301
  if ( maxNonZero >= BITMAP_SIZE ) {
1301
1302
 
@@ -1305,7 +1306,7 @@ class EXRLoader extends DataTextureLoader {
1305
1306
 
1306
1307
  if ( minNonZero <= maxNonZero ) {
1307
1308
 
1308
- for ( var i = 0; i < maxNonZero - minNonZero + 1; i ++ ) {
1309
+ for ( let i = 0; i < maxNonZero - minNonZero + 1; i ++ ) {
1309
1310
 
1310
1311
  bitmap[ i + minNonZero ] = parseUint8( inDataView, inOffset );
1311
1312
 
@@ -1314,20 +1315,20 @@ class EXRLoader extends DataTextureLoader {
1314
1315
  }
1315
1316
 
1316
1317
  // Reverse LUT
1317
- var lut = new Uint16Array( USHORT_RANGE );
1318
- var maxValue = reverseLutFromBitmap( bitmap, lut );
1318
+ const lut = new Uint16Array( USHORT_RANGE );
1319
+ const maxValue = reverseLutFromBitmap( bitmap, lut );
1319
1320
 
1320
- var length = parseUint32( inDataView, inOffset );
1321
+ const length = parseUint32( inDataView, inOffset );
1321
1322
 
1322
1323
  // Huffman decoding
1323
1324
  hufUncompress( info.array, inDataView, inOffset, length, outBuffer, outBufferEnd );
1324
1325
 
1325
1326
  // Wavelet decoding
1326
- for ( var i = 0; i < info.channels; ++ i ) {
1327
+ for ( let i = 0; i < info.channels; ++ i ) {
1327
1328
 
1328
- var cd = pizChannelData[ i ];
1329
+ const cd = pizChannelData[ i ];
1329
1330
 
1330
- for ( var j = 0; j < pizChannelData[ i ].size; ++ j ) {
1331
+ for ( let j = 0; j < pizChannelData[ i ].size; ++ j ) {
1331
1332
 
1332
1333
  wav2Decode(
1333
1334
  outBuffer,
@@ -1347,16 +1348,16 @@ class EXRLoader extends DataTextureLoader {
1347
1348
  applyLut( lut, outBuffer, outBufferEnd );
1348
1349
 
1349
1350
  // Rearrange the pixel data into the format expected by the caller.
1350
- var tmpOffset = 0;
1351
- var tmpBuffer = new Uint8Array( outBuffer.buffer.byteLength );
1352
- for ( var y = 0; y < info.lines; y ++ ) {
1351
+ let tmpOffset = 0;
1352
+ const tmpBuffer = new Uint8Array( outBuffer.buffer.byteLength );
1353
+ for ( let y = 0; y < info.lines; y ++ ) {
1353
1354
 
1354
- for ( var c = 0; c < info.channels; c ++ ) {
1355
+ for ( let c = 0; c < info.channels; c ++ ) {
1355
1356
 
1356
- var cd = pizChannelData[ c ];
1357
+ const cd = pizChannelData[ c ];
1357
1358
 
1358
- var n = cd.nx * cd.size;
1359
- var cp = new Uint8Array( outBuffer.buffer, cd.end * INT16_SIZE, n * INT16_SIZE );
1359
+ const n = cd.nx * cd.size;
1360
+ const cp = new Uint8Array( outBuffer.buffer, cd.end * INT16_SIZE, n * INT16_SIZE );
1360
1361
 
1361
1362
  tmpBuffer.set( cp, tmpOffset );
1362
1363
  tmpOffset += n * INT16_SIZE;
@@ -1372,7 +1373,7 @@ class EXRLoader extends DataTextureLoader {
1372
1373
 
1373
1374
  function uncompressPXR( info ) {
1374
1375
 
1375
- var compressed = info.array.slice( info.offset.value, info.offset.value + info.size );
1376
+ const compressed = info.array.slice( info.offset.value, info.offset.value + info.size );
1376
1377
 
1377
1378
  if ( typeof fflate === 'undefined' ) {
1378
1379
 
@@ -1380,7 +1381,7 @@ class EXRLoader extends DataTextureLoader {
1380
1381
 
1381
1382
  }
1382
1383
 
1383
- var rawBuffer = fflate.unzlibSync( compressed ); // eslint-disable-line no-undef
1384
+ const rawBuffer = fflate.unzlibSync( compressed ); // eslint-disable-line no-undef
1384
1385
 
1385
1386
  const sz = info.lines * info.channels * info.width;
1386
1387
  const tmpBuffer = ( info.type == 1 ) ? new Uint16Array( sz ) : new Uint32Array( sz );
@@ -1448,12 +1449,12 @@ class EXRLoader extends DataTextureLoader {
1448
1449
 
1449
1450
  function uncompressDWA( info ) {
1450
1451
 
1451
- var inDataView = info.viewer;
1452
- var inOffset = { value: info.offset.value };
1453
- var outBuffer = new Uint8Array( info.width * info.lines * ( info.channels * info.type * INT16_SIZE ) );
1452
+ const inDataView = info.viewer;
1453
+ const inOffset = { value: info.offset.value };
1454
+ const outBuffer = new Uint8Array( info.width * info.lines * ( info.channels * info.type * INT16_SIZE ) );
1454
1455
 
1455
1456
  // Read compression header information
1456
- var dwaHeader = {
1457
+ const dwaHeader = {
1457
1458
 
1458
1459
  version: parseInt64( inDataView, inOffset ),
1459
1460
  unknownUncompressedSize: parseInt64( inDataView, inOffset ),
@@ -1473,17 +1474,17 @@ class EXRLoader extends DataTextureLoader {
1473
1474
  throw new Error( 'EXRLoader.parse: ' + EXRHeader.compression + ' version ' + dwaHeader.version + ' is unsupported' );
1474
1475
 
1475
1476
  // Read channel ruleset information
1476
- var channelRules = new Array();
1477
- var ruleSize = parseUint16( inDataView, inOffset ) - INT16_SIZE;
1477
+ const channelRules = new Array();
1478
+ let ruleSize = parseUint16( inDataView, inOffset ) - INT16_SIZE;
1478
1479
 
1479
1480
  while ( ruleSize > 0 ) {
1480
1481
 
1481
- var name = parseNullTerminatedString( inDataView.buffer, inOffset );
1482
- var value = parseUint8( inDataView, inOffset );
1483
- var compression = ( value >> 2 ) & 3;
1484
- var csc = ( value >> 4 ) - 1;
1485
- var index = new Int8Array( [ csc ] )[ 0 ];
1486
- var type = parseUint8( inDataView, inOffset );
1482
+ const name = parseNullTerminatedString( inDataView.buffer, inOffset );
1483
+ const value = parseUint8( inDataView, inOffset );
1484
+ const compression = ( value >> 2 ) & 3;
1485
+ const csc = ( value >> 4 ) - 1;
1486
+ const index = new Int8Array( [ csc ] )[ 0 ];
1487
+ const type = parseUint8( inDataView, inOffset );
1487
1488
 
1488
1489
  channelRules.push( {
1489
1490
  name: name,
@@ -1497,13 +1498,13 @@ class EXRLoader extends DataTextureLoader {
1497
1498
  }
1498
1499
 
1499
1500
  // Classify channels
1500
- var channels = EXRHeader.channels;
1501
- var channelData = new Array( info.channels );
1501
+ const channels = EXRHeader.channels;
1502
+ const channelData = new Array( info.channels );
1502
1503
 
1503
- for ( var i = 0; i < info.channels; ++ i ) {
1504
+ for ( let i = 0; i < info.channels; ++ i ) {
1504
1505
 
1505
- var cd = channelData[ i ] = {};
1506
- var channel = channels[ i ];
1506
+ const cd = channelData[ i ] = {};
1507
+ const channel = channels[ i ];
1507
1508
 
1508
1509
  cd.name = channel.name;
1509
1510
  cd.compression = UNKNOWN;
@@ -1515,17 +1516,17 @@ class EXRLoader extends DataTextureLoader {
1515
1516
 
1516
1517
  }
1517
1518
 
1518
- var cscSet = {
1519
+ const cscSet = {
1519
1520
  idx: new Array( 3 )
1520
1521
  };
1521
1522
 
1522
- for ( var offset = 0; offset < info.channels; ++ offset ) {
1523
+ for ( let offset = 0; offset < info.channels; ++ offset ) {
1523
1524
 
1524
- var cd = channelData[ offset ];
1525
+ const cd = channelData[ offset ];
1525
1526
 
1526
- for ( var i = 0; i < channelRules.length; ++ i ) {
1527
+ for ( let i = 0; i < channelRules.length; ++ i ) {
1527
1528
 
1528
- var rule = channelRules[ i ];
1529
+ const rule = channelRules[ i ];
1529
1530
 
1530
1531
  if ( cd.name == rule.name ) {
1531
1532
 
@@ -1545,6 +1546,8 @@ class EXRLoader extends DataTextureLoader {
1545
1546
 
1546
1547
  }
1547
1548
 
1549
+ let acBuffer, dcBuffer, rleBuffer;
1550
+
1548
1551
  // Read DCT - AC component data
1549
1552
  if ( dwaHeader.acCompressedSize > 0 ) {
1550
1553
 
@@ -1552,15 +1555,15 @@ class EXRLoader extends DataTextureLoader {
1552
1555
 
1553
1556
  case STATIC_HUFFMAN:
1554
1557
 
1555
- var acBuffer = new Uint16Array( dwaHeader.totalAcUncompressedCount );
1558
+ acBuffer = new Uint16Array( dwaHeader.totalAcUncompressedCount );
1556
1559
  hufUncompress( info.array, inDataView, inOffset, dwaHeader.acCompressedSize, acBuffer, dwaHeader.totalAcUncompressedCount );
1557
1560
  break;
1558
1561
 
1559
1562
  case DEFLATE:
1560
1563
 
1561
- var compressed = info.array.slice( inOffset.value, inOffset.value + dwaHeader.totalAcUncompressedCount );
1562
- var data = fflate.unzlibSync( compressed ); // eslint-disable-line no-undef
1563
- var acBuffer = new Uint16Array( data.buffer );
1564
+ const compressed = info.array.slice( inOffset.value, inOffset.value + dwaHeader.totalAcUncompressedCount );
1565
+ const data = fflate.unzlibSync( compressed ); // eslint-disable-line no-undef
1566
+ acBuffer = new Uint16Array( data.buffer );
1564
1567
  inOffset.value += dwaHeader.totalAcUncompressedCount;
1565
1568
  break;
1566
1569
 
@@ -1572,12 +1575,12 @@ class EXRLoader extends DataTextureLoader {
1572
1575
  // Read DCT - DC component data
1573
1576
  if ( dwaHeader.dcCompressedSize > 0 ) {
1574
1577
 
1575
- var zlibInfo = {
1578
+ const zlibInfo = {
1576
1579
  array: info.array,
1577
1580
  offset: inOffset,
1578
1581
  size: dwaHeader.dcCompressedSize
1579
1582
  };
1580
- var dcBuffer = new Uint16Array( uncompressZIP( zlibInfo ).buffer );
1583
+ dcBuffer = new Uint16Array( uncompressZIP( zlibInfo ).buffer );
1581
1584
  inOffset.value += dwaHeader.dcCompressedSize;
1582
1585
 
1583
1586
  }
@@ -1585,26 +1588,26 @@ class EXRLoader extends DataTextureLoader {
1585
1588
  // Read RLE compressed data
1586
1589
  if ( dwaHeader.rleRawSize > 0 ) {
1587
1590
 
1588
- var compressed = info.array.slice( inOffset.value, inOffset.value + dwaHeader.rleCompressedSize );
1589
- var data = fflate.unzlibSync( compressed ); // eslint-disable-line no-undef
1590
- var rleBuffer = decodeRunLength( data.buffer );
1591
+ const compressed = info.array.slice( inOffset.value, inOffset.value + dwaHeader.rleCompressedSize );
1592
+ const data = fflate.unzlibSync( compressed ); // eslint-disable-line no-undef
1593
+ rleBuffer = decodeRunLength( data.buffer );
1591
1594
 
1592
1595
  inOffset.value += dwaHeader.rleCompressedSize;
1593
1596
 
1594
1597
  }
1595
1598
 
1596
1599
  // Prepare outbuffer data offset
1597
- var outBufferEnd = 0;
1598
- var rowOffsets = new Array( channelData.length );
1599
- for ( var i = 0; i < rowOffsets.length; ++ i ) {
1600
+ let outBufferEnd = 0;
1601
+ const rowOffsets = new Array( channelData.length );
1602
+ for ( let i = 0; i < rowOffsets.length; ++ i ) {
1600
1603
 
1601
1604
  rowOffsets[ i ] = new Array();
1602
1605
 
1603
1606
  }
1604
1607
 
1605
- for ( var y = 0; y < info.lines; ++ y ) {
1608
+ for ( let y = 0; y < info.lines; ++ y ) {
1606
1609
 
1607
- for ( var chan = 0; chan < channelData.length; ++ chan ) {
1610
+ for ( let chan = 0; chan < channelData.length; ++ chan ) {
1608
1611
 
1609
1612
  rowOffsets[ chan ].push( outBufferEnd );
1610
1613
  outBufferEnd += channelData[ chan ].width * info.type * INT16_SIZE;
@@ -1617,9 +1620,9 @@ class EXRLoader extends DataTextureLoader {
1617
1620
  lossyDctDecode( cscSet, rowOffsets, channelData, acBuffer, dcBuffer, outBuffer );
1618
1621
 
1619
1622
  // Decode other channels
1620
- for ( var i = 0; i < channelData.length; ++ i ) {
1623
+ for ( let i = 0; i < channelData.length; ++ i ) {
1621
1624
 
1622
- var cd = channelData[ i ];
1625
+ const cd = channelData[ i ];
1623
1626
 
1624
1627
  if ( cd.decoded ) continue;
1625
1628
 
@@ -1627,16 +1630,16 @@ class EXRLoader extends DataTextureLoader {
1627
1630
 
1628
1631
  case RLE:
1629
1632
 
1630
- var row = 0;
1631
- var rleOffset = 0;
1633
+ let row = 0;
1634
+ let rleOffset = 0;
1632
1635
 
1633
- for ( var y = 0; y < info.lines; ++ y ) {
1636
+ for ( let y = 0; y < info.lines; ++ y ) {
1634
1637
 
1635
- var rowOffsetBytes = rowOffsets[ i ][ row ];
1638
+ let rowOffsetBytes = rowOffsets[ i ][ row ];
1636
1639
 
1637
- for ( var x = 0; x < cd.width; ++ x ) {
1640
+ for ( let x = 0; x < cd.width; ++ x ) {
1638
1641
 
1639
- for ( var byte = 0; byte < INT16_SIZE * cd.type; ++ byte ) {
1642
+ for ( let byte = 0; byte < INT16_SIZE * cd.type; ++ byte ) {
1640
1643
 
1641
1644
  outBuffer[ rowOffsetBytes ++ ] = rleBuffer[ rleOffset + byte * cd.width * cd.height ];
1642
1645
 
@@ -1667,8 +1670,8 @@ class EXRLoader extends DataTextureLoader {
1667
1670
 
1668
1671
  function parseNullTerminatedString( buffer, offset ) {
1669
1672
 
1670
- var uintBuffer = new Uint8Array( buffer );
1671
- var endOffset = 0;
1673
+ const uintBuffer = new Uint8Array( buffer );
1674
+ let endOffset = 0;
1672
1675
 
1673
1676
  while ( uintBuffer[ offset.value + endOffset ] != 0 ) {
1674
1677
 
@@ -1676,7 +1679,7 @@ class EXRLoader extends DataTextureLoader {
1676
1679
 
1677
1680
  }
1678
1681
 
1679
- var stringValue = new TextDecoder().decode(
1682
+ const stringValue = new TextDecoder().decode(
1680
1683
  uintBuffer.slice( offset.value, offset.value + endOffset )
1681
1684
  );
1682
1685
 
@@ -1688,7 +1691,7 @@ class EXRLoader extends DataTextureLoader {
1688
1691
 
1689
1692
  function parseFixedLengthString( buffer, offset, size ) {
1690
1693
 
1691
- var stringValue = new TextDecoder().decode(
1694
+ const stringValue = new TextDecoder().decode(
1692
1695
  new Uint8Array( buffer ).slice( offset.value, offset.value + size )
1693
1696
  );
1694
1697
 
@@ -1700,8 +1703,8 @@ class EXRLoader extends DataTextureLoader {
1700
1703
 
1701
1704
  function parseRational( dataView, offset ) {
1702
1705
 
1703
- var x = parseInt32( dataView, offset );
1704
- var y = parseUint32( dataView, offset );
1706
+ const x = parseInt32( dataView, offset );
1707
+ const y = parseUint32( dataView, offset );
1705
1708
 
1706
1709
  return [ x, y ];
1707
1710
 
@@ -1709,8 +1712,8 @@ class EXRLoader extends DataTextureLoader {
1709
1712
 
1710
1713
  function parseTimecode( dataView, offset ) {
1711
1714
 
1712
- var x = parseUint32( dataView, offset );
1713
- var y = parseUint32( dataView, offset );
1715
+ const x = parseUint32( dataView, offset );
1716
+ const y = parseUint32( dataView, offset );
1714
1717
 
1715
1718
  return [ x, y ];
1716
1719
 
@@ -1718,7 +1721,7 @@ class EXRLoader extends DataTextureLoader {
1718
1721
 
1719
1722
  function parseInt32( dataView, offset ) {
1720
1723
 
1721
- var Int32 = dataView.getInt32( offset.value, true );
1724
+ const Int32 = dataView.getInt32( offset.value, true );
1722
1725
 
1723
1726
  offset.value = offset.value + INT32_SIZE;
1724
1727
 
@@ -1728,7 +1731,7 @@ class EXRLoader extends DataTextureLoader {
1728
1731
 
1729
1732
  function parseUint32( dataView, offset ) {
1730
1733
 
1731
- var Uint32 = dataView.getUint32( offset.value, true );
1734
+ const Uint32 = dataView.getUint32( offset.value, true );
1732
1735
 
1733
1736
  offset.value = offset.value + INT32_SIZE;
1734
1737
 
@@ -1738,7 +1741,7 @@ class EXRLoader extends DataTextureLoader {
1738
1741
 
1739
1742
  function parseUint8Array( uInt8Array, offset ) {
1740
1743
 
1741
- var Uint8 = uInt8Array[ offset.value ];
1744
+ const Uint8 = uInt8Array[ offset.value ];
1742
1745
 
1743
1746
  offset.value = offset.value + INT8_SIZE;
1744
1747
 
@@ -1748,7 +1751,7 @@ class EXRLoader extends DataTextureLoader {
1748
1751
 
1749
1752
  function parseUint8( dataView, offset ) {
1750
1753
 
1751
- var Uint8 = dataView.getUint8( offset.value );
1754
+ const Uint8 = dataView.getUint8( offset.value );
1752
1755
 
1753
1756
  offset.value = offset.value + INT8_SIZE;
1754
1757
 
@@ -1778,7 +1781,7 @@ class EXRLoader extends DataTextureLoader {
1778
1781
 
1779
1782
  function parseFloat32( dataView, offset ) {
1780
1783
 
1781
- var float = dataView.getFloat32( offset.value, true );
1784
+ const float = dataView.getFloat32( offset.value, true );
1782
1785
 
1783
1786
  offset.value += FLOAT32_SIZE;
1784
1787
 
@@ -1795,7 +1798,7 @@ class EXRLoader extends DataTextureLoader {
1795
1798
  // https://stackoverflow.com/questions/5678432/decompressing-half-precision-floats-in-javascript
1796
1799
  function decodeFloat16( binary ) {
1797
1800
 
1798
- var exponent = ( binary & 0x7C00 ) >> 10,
1801
+ const exponent = ( binary & 0x7C00 ) >> 10,
1799
1802
  fraction = binary & 0x03FF;
1800
1803
 
1801
1804
  return ( binary >> 15 ? - 1 : 1 ) * (
@@ -1812,7 +1815,7 @@ class EXRLoader extends DataTextureLoader {
1812
1815
 
1813
1816
  function parseUint16( dataView, offset ) {
1814
1817
 
1815
- var Uint16 = dataView.getUint16( offset.value, true );
1818
+ const Uint16 = dataView.getUint16( offset.value, true );
1816
1819
 
1817
1820
  offset.value += INT16_SIZE;
1818
1821
 
@@ -1828,17 +1831,17 @@ class EXRLoader extends DataTextureLoader {
1828
1831
 
1829
1832
  function parseChlist( dataView, buffer, offset, size ) {
1830
1833
 
1831
- var startOffset = offset.value;
1832
- var channels = [];
1834
+ const startOffset = offset.value;
1835
+ const channels = [];
1833
1836
 
1834
1837
  while ( offset.value < ( startOffset + size - 1 ) ) {
1835
1838
 
1836
- var name = parseNullTerminatedString( buffer, offset );
1837
- var pixelType = parseInt32( dataView, offset );
1838
- var pLinear = parseUint8( dataView, offset );
1839
+ const name = parseNullTerminatedString( buffer, offset );
1840
+ const pixelType = parseInt32( dataView, offset );
1841
+ const pLinear = parseUint8( dataView, offset );
1839
1842
  offset.value += 3; // reserved, three chars
1840
- var xSampling = parseInt32( dataView, offset );
1841
- var ySampling = parseInt32( dataView, offset );
1843
+ const xSampling = parseInt32( dataView, offset );
1844
+ const ySampling = parseInt32( dataView, offset );
1842
1845
 
1843
1846
  channels.push( {
1844
1847
  name: name,
@@ -1858,14 +1861,14 @@ class EXRLoader extends DataTextureLoader {
1858
1861
 
1859
1862
  function parseChromaticities( dataView, offset ) {
1860
1863
 
1861
- var redX = parseFloat32( dataView, offset );
1862
- var redY = parseFloat32( dataView, offset );
1863
- var greenX = parseFloat32( dataView, offset );
1864
- var greenY = parseFloat32( dataView, offset );
1865
- var blueX = parseFloat32( dataView, offset );
1866
- var blueY = parseFloat32( dataView, offset );
1867
- var whiteX = parseFloat32( dataView, offset );
1868
- var whiteY = parseFloat32( dataView, offset );
1864
+ const redX = parseFloat32( dataView, offset );
1865
+ const redY = parseFloat32( dataView, offset );
1866
+ const greenX = parseFloat32( dataView, offset );
1867
+ const greenY = parseFloat32( dataView, offset );
1868
+ const blueX = parseFloat32( dataView, offset );
1869
+ const blueY = parseFloat32( dataView, offset );
1870
+ const whiteX = parseFloat32( dataView, offset );
1871
+ const whiteY = parseFloat32( dataView, offset );
1869
1872
 
1870
1873
  return { redX: redX, redY: redY, greenX: greenX, greenY: greenY, blueX: blueX, blueY: blueY, whiteX: whiteX, whiteY: whiteY };
1871
1874
 
@@ -1873,7 +1876,7 @@ class EXRLoader extends DataTextureLoader {
1873
1876
 
1874
1877
  function parseCompression( dataView, offset ) {
1875
1878
 
1876
- var compressionCodes = [
1879
+ const compressionCodes = [
1877
1880
  'NO_COMPRESSION',
1878
1881
  'RLE_COMPRESSION',
1879
1882
  'ZIPS_COMPRESSION',
@@ -1886,7 +1889,7 @@ class EXRLoader extends DataTextureLoader {
1886
1889
  'DWAB_COMPRESSION'
1887
1890
  ];
1888
1891
 
1889
- var compression = parseUint8( dataView, offset );
1892
+ const compression = parseUint8( dataView, offset );
1890
1893
 
1891
1894
  return compressionCodes[ compression ];
1892
1895
 
@@ -1894,10 +1897,10 @@ class EXRLoader extends DataTextureLoader {
1894
1897
 
1895
1898
  function parseBox2i( dataView, offset ) {
1896
1899
 
1897
- var xMin = parseUint32( dataView, offset );
1898
- var yMin = parseUint32( dataView, offset );
1899
- var xMax = parseUint32( dataView, offset );
1900
- var yMax = parseUint32( dataView, offset );
1900
+ const xMin = parseUint32( dataView, offset );
1901
+ const yMin = parseUint32( dataView, offset );
1902
+ const xMax = parseUint32( dataView, offset );
1903
+ const yMax = parseUint32( dataView, offset );
1901
1904
 
1902
1905
  return { xMin: xMin, yMin: yMin, xMax: xMax, yMax: yMax };
1903
1906
 
@@ -1905,11 +1908,11 @@ class EXRLoader extends DataTextureLoader {
1905
1908
 
1906
1909
  function parseLineOrder( dataView, offset ) {
1907
1910
 
1908
- var lineOrders = [
1911
+ const lineOrders = [
1909
1912
  'INCREASING_Y'
1910
1913
  ];
1911
1914
 
1912
- var lineOrder = parseUint8( dataView, offset );
1915
+ const lineOrder = parseUint8( dataView, offset );
1913
1916
 
1914
1917
  return lineOrders[ lineOrder ];
1915
1918
 
@@ -1917,8 +1920,8 @@ class EXRLoader extends DataTextureLoader {
1917
1920
 
1918
1921
  function parseV2f( dataView, offset ) {
1919
1922
 
1920
- var x = parseFloat32( dataView, offset );
1921
- var y = parseFloat32( dataView, offset );
1923
+ const x = parseFloat32( dataView, offset );
1924
+ const y = parseFloat32( dataView, offset );
1922
1925
 
1923
1926
  return [ x, y ];
1924
1927
 
@@ -1926,9 +1929,9 @@ class EXRLoader extends DataTextureLoader {
1926
1929
 
1927
1930
  function parseV3f( dataView, offset ) {
1928
1931
 
1929
- var x = parseFloat32( dataView, offset );
1930
- var y = parseFloat32( dataView, offset );
1931
- var z = parseFloat32( dataView, offset );
1932
+ const x = parseFloat32( dataView, offset );
1933
+ const y = parseFloat32( dataView, offset );
1934
+ const z = parseFloat32( dataView, offset );
1932
1935
 
1933
1936
  return [ x, y, z ];
1934
1937
 
@@ -2023,11 +2026,11 @@ class EXRLoader extends DataTextureLoader {
2023
2026
 
2024
2027
  offset.value = 8; // start at 8 - after pre-amble
2025
2028
 
2026
- var keepReading = true;
2029
+ let keepReading = true;
2027
2030
 
2028
2031
  while ( keepReading ) {
2029
2032
 
2030
- var attributeName = parseNullTerminatedString( buffer, offset );
2033
+ const attributeName = parseNullTerminatedString( buffer, offset );
2031
2034
 
2032
2035
  if ( attributeName == 0 ) {
2033
2036
 
@@ -2035,9 +2038,9 @@ class EXRLoader extends DataTextureLoader {
2035
2038
 
2036
2039
  } else {
2037
2040
 
2038
- var attributeType = parseNullTerminatedString( buffer, offset );
2039
- var attributeSize = parseUint32( dataView, offset );
2040
- var attributeValue = parseValue( dataView, buffer, offset, attributeType, attributeSize );
2041
+ const attributeType = parseNullTerminatedString( buffer, offset );
2042
+ const attributeSize = parseUint32( dataView, offset );
2043
+ const attributeValue = parseValue( dataView, buffer, offset, attributeType, attributeSize );
2041
2044
 
2042
2045
  if ( attributeValue === undefined ) {
2043
2046
 
@@ -2053,7 +2056,7 @@ class EXRLoader extends DataTextureLoader {
2053
2056
 
2054
2057
  }
2055
2058
 
2056
- if ( spec != 0 ) {
2059
+ if ( ( spec & ~0x04 ) != 0 ) { // unsupported tiled, deep-image, multi-part
2057
2060
 
2058
2061
  console.error( 'EXRHeader:', EXRHeader );
2059
2062
  throw new Error( 'THREE.EXRLoader: provided file is currently unsupported.' );
@@ -2174,7 +2177,7 @@ class EXRLoader extends DataTextureLoader {
2174
2177
 
2175
2178
  EXRDecoder.blockCount = ( EXRHeader.dataWindow.yMax + 1 ) / EXRDecoder.scanlineBlockSize;
2176
2179
 
2177
- for ( var i = 0; i < EXRDecoder.blockCount; i ++ )
2180
+ for ( let i = 0; i < EXRDecoder.blockCount; i ++ )
2178
2181
  parseInt64( dataView, offset ); // scanlineOffset
2179
2182
 
2180
2183
  // we should be passed the scanline offset table, ready to start reading pixel data.