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
@@ -8,6 +8,8 @@ class SplineCurve extends Curve {
8
8
 
9
9
  super();
10
10
 
11
+ this.isSplineCurve = true;
12
+
11
13
  this.type = 'SplineCurve';
12
14
 
13
15
  this.points = points;
@@ -92,6 +94,4 @@ class SplineCurve extends Curve {
92
94
 
93
95
  }
94
96
 
95
- SplineCurve.prototype.isSplineCurve = true;
96
-
97
97
  export { SplineCurve };
@@ -0,0 +1,33 @@
1
+ import { Path } from '../extras/core/Path.js';
2
+ import { LatheGeometry } from './LatheGeometry.js';
3
+
4
+ class CapsuleGeometry extends LatheGeometry {
5
+
6
+ constructor( radius = 1, length = 1, capSegments = 4, radialSegments = 8 ) {
7
+
8
+ const path = new Path();
9
+ path.absarc( 0, - length / 2, radius, Math.PI * 1.5, 0 );
10
+ path.absarc( 0, length / 2, radius, 0, Math.PI * 0.5 );
11
+
12
+ super( path.getPoints( capSegments ), radialSegments );
13
+
14
+ this.type = 'CapsuleGeometry';
15
+
16
+ this.parameters = {
17
+ radius: radius,
18
+ height: length,
19
+ capSegments: capSegments,
20
+ radialSegments: radialSegments,
21
+ };
22
+
23
+ }
24
+
25
+ static fromJSON( data ) {
26
+
27
+ return new CapsuleGeometry( data.radius, data.length, data.capSegments, data.radialSegments );
28
+
29
+ }
30
+
31
+ }
32
+
33
+ export { CapsuleGeometry, CapsuleGeometry as CapsuleBufferGeometry };
@@ -801,6 +801,8 @@ function toJSON( shapes, options, data ) {
801
801
 
802
802
  }
803
803
 
804
+ data.options = Object.assign( {}, options );
805
+
804
806
  if ( options.extrudePath !== undefined ) data.options.extrudePath = options.extrudePath.toJSON();
805
807
 
806
808
  return data;
@@ -1,4 +1,5 @@
1
1
  export * from './BoxGeometry.js';
2
+ export * from './CapsuleGeometry.js';
2
3
  export * from './CircleGeometry.js';
3
4
  export * from './ConeGeometry.js';
4
5
  export * from './CylinderGeometry.js';
@@ -44,7 +44,7 @@ class TorusKnotGeometry extends BufferGeometry {
44
44
 
45
45
  for ( let i = 0; i <= tubularSegments; ++ i ) {
46
46
 
47
- // the radian "u" is used to calculate the position on the torus curve of the current tubular segement
47
+ // the radian "u" is used to calculate the position on the torus curve of the current tubular segment
48
48
 
49
49
  const u = i / tubularSegments * p * Math.PI * 2;
50
50
 
@@ -76,7 +76,7 @@ class TorusKnotGeometry extends BufferGeometry {
76
76
  const cy = tube * Math.sin( v );
77
77
 
78
78
  // now calculate the final vertex position.
79
- // first we orient the extrusion with our basis vectos, then we add it to the current position on the curve
79
+ // first we orient the extrusion with our basis vectors, then we add it to the current position on the curve
80
80
 
81
81
  vertex.x = P1.x + ( cx * N.x + cy * B.x );
82
82
  vertex.y = P1.y + ( cx * N.y + cy * B.y );
@@ -39,7 +39,7 @@ class WireframeGeometry extends BufferGeometry {
39
39
 
40
40
  }
41
41
 
42
- // create a data structure that contains all eges without duplicates
42
+ // create a data structure that contains all edges without duplicates
43
43
 
44
44
  for ( let o = 0, ol = groups.length; o < ol; ++ o ) {
45
45
 
@@ -124,7 +124,8 @@ function isUniqueEdge( start, end, edges ) {
124
124
 
125
125
  } else {
126
126
 
127
- edges.add( hash1, hash2 );
127
+ edges.add( hash1 );
128
+ edges.add( hash2 );
128
129
  return true;
129
130
 
130
131
  }
@@ -91,9 +91,9 @@ class BoxHelper extends LineSegments {
91
91
 
92
92
  }
93
93
 
94
- copy( source ) {
94
+ copy( source, recursive ) {
95
95
 
96
- LineSegments.prototype.copy.call( this, source );
96
+ super.copy( source, recursive );
97
97
 
98
98
  this.object = source.object;
99
99
 
@@ -26,7 +26,7 @@ class PointLightHelper extends Mesh {
26
26
 
27
27
  /*
28
28
  // TODO: delete this comment?
29
- const distanceGeometry = new THREE.IcosahedronBufferGeometry( 1, 2 );
29
+ const distanceGeometry = new THREE.IcosahedronGeometry( 1, 2 );
30
30
  const distanceMaterial = new THREE.MeshBasicMaterial( { color: hexColor, fog: false, wireframe: true, opacity: 0.1, transparent: true } );
31
31
 
32
32
  this.lightSphere = new THREE.Mesh( bulbGeometry, bulbMaterial );
@@ -47,9 +47,10 @@ class SkeletonHelper extends LineSegments {
47
47
 
48
48
  super( geometry, material );
49
49
 
50
- this.type = 'SkeletonHelper';
51
50
  this.isSkeletonHelper = true;
52
51
 
52
+ this.type = 'SkeletonHelper';
53
+
53
54
  this.root = object;
54
55
  this.bones = bones;
55
56
 
@@ -100,7 +101,7 @@ function getBoneList( object ) {
100
101
 
101
102
  const boneList = [];
102
103
 
103
- if ( object && object.isBone ) {
104
+ if ( object.isBone === true ) {
104
105
 
105
106
  boneList.push( object );
106
107
 
@@ -6,12 +6,12 @@ class AmbientLight extends Light {
6
6
 
7
7
  super( color, intensity );
8
8
 
9
+ this.isAmbientLight = true;
10
+
9
11
  this.type = 'AmbientLight';
10
12
 
11
13
  }
12
14
 
13
15
  }
14
16
 
15
- AmbientLight.prototype.isAmbientLight = true;
16
-
17
17
  export { AmbientLight };
@@ -7,6 +7,8 @@ class AmbientLightProbe extends LightProbe {
7
7
 
8
8
  super( undefined, intensity );
9
9
 
10
+ this.isAmbientLightProbe = true;
11
+
10
12
  const color1 = new Color().set( color );
11
13
 
12
14
  // without extra factor of PI in the shader, would be 2 / Math.sqrt( Math.PI );
@@ -16,6 +18,4 @@ class AmbientLightProbe extends LightProbe {
16
18
 
17
19
  }
18
20
 
19
- AmbientLightProbe.prototype.isAmbientLightProbe = true;
20
-
21
21
  export { AmbientLightProbe };
@@ -8,6 +8,8 @@ class DirectionalLight extends Light {
8
8
 
9
9
  super( color, intensity );
10
10
 
11
+ this.isDirectionalLight = true;
12
+
11
13
  this.type = 'DirectionalLight';
12
14
 
13
15
  this.position.copy( Object3D.DefaultUp );
@@ -38,6 +40,4 @@ class DirectionalLight extends Light {
38
40
 
39
41
  }
40
42
 
41
- DirectionalLight.prototype.isDirectionalLight = true;
42
-
43
43
  export { DirectionalLight };
@@ -7,10 +7,10 @@ class DirectionalLightShadow extends LightShadow {
7
7
 
8
8
  super( new OrthographicCamera( - 5, 5, 5, - 5, 0.5, 500 ) );
9
9
 
10
+ this.isDirectionalLightShadow = true;
11
+
10
12
  }
11
13
 
12
14
  }
13
15
 
14
- DirectionalLightShadow.prototype.isDirectionalLightShadow = true;
15
-
16
16
  export { DirectionalLightShadow };
@@ -8,6 +8,8 @@ class HemisphereLight extends Light {
8
8
 
9
9
  super( skyColor, intensity );
10
10
 
11
+ this.isHemisphereLight = true;
12
+
11
13
  this.type = 'HemisphereLight';
12
14
 
13
15
  this.position.copy( Object3D.DefaultUp );
@@ -17,9 +19,9 @@ class HemisphereLight extends Light {
17
19
 
18
20
  }
19
21
 
20
- copy( source ) {
22
+ copy( source, recursive ) {
21
23
 
22
- Light.prototype.copy.call( this, source );
24
+ super.copy( source, recursive );
23
25
 
24
26
  this.groundColor.copy( source.groundColor );
25
27
 
@@ -29,6 +31,4 @@ class HemisphereLight extends Light {
29
31
 
30
32
  }
31
33
 
32
- HemisphereLight.prototype.isHemisphereLight = true;
33
-
34
34
  export { HemisphereLight };
@@ -8,6 +8,8 @@ class HemisphereLightProbe extends LightProbe {
8
8
 
9
9
  super( undefined, intensity );
10
10
 
11
+ this.isHemisphereLightProbe = true;
12
+
11
13
  const color1 = new Color().set( skyColor );
12
14
  const color2 = new Color().set( groundColor );
13
15
 
@@ -25,6 +27,4 @@ class HemisphereLightProbe extends LightProbe {
25
27
 
26
28
  }
27
29
 
28
- HemisphereLightProbe.prototype.isHemisphereLightProbe = true;
29
-
30
30
  export { HemisphereLightProbe };
@@ -7,6 +7,8 @@ class Light extends Object3D {
7
7
 
8
8
  super();
9
9
 
10
+ this.isLight = true;
11
+
10
12
  this.type = 'Light';
11
13
 
12
14
  this.color = new Color( color );
@@ -20,9 +22,9 @@ class Light extends Object3D {
20
22
 
21
23
  }
22
24
 
23
- copy( source ) {
25
+ copy( source, recursive ) {
24
26
 
25
- super.copy( source );
27
+ super.copy( source, recursive );
26
28
 
27
29
  this.color.copy( source.color );
28
30
  this.intensity = source.intensity;
@@ -53,6 +55,4 @@ class Light extends Object3D {
53
55
 
54
56
  }
55
57
 
56
- Light.prototype.isLight = true;
57
-
58
58
  export { Light };
@@ -7,6 +7,8 @@ class LightProbe extends Light {
7
7
 
8
8
  super( undefined, intensity );
9
9
 
10
+ this.isLightProbe = true;
11
+
10
12
  this.sh = sh;
11
13
 
12
14
  }
@@ -42,6 +44,4 @@ class LightProbe extends Light {
42
44
 
43
45
  }
44
46
 
45
- LightProbe.prototype.isLightProbe = true;
46
-
47
47
  export { LightProbe };
@@ -7,6 +7,8 @@ class PointLight extends Light {
7
7
 
8
8
  super( color, intensity );
9
9
 
10
+ this.isPointLight = true;
11
+
10
12
  this.type = 'PointLight';
11
13
 
12
14
  this.distance = distance;
@@ -37,9 +39,9 @@ class PointLight extends Light {
37
39
 
38
40
  }
39
41
 
40
- copy( source ) {
42
+ copy( source, recursive ) {
41
43
 
42
- super.copy( source );
44
+ super.copy( source, recursive );
43
45
 
44
46
  this.distance = source.distance;
45
47
  this.decay = source.decay;
@@ -52,6 +54,4 @@ class PointLight extends Light {
52
54
 
53
55
  }
54
56
 
55
- PointLight.prototype.isPointLight = true;
56
-
57
57
  export { PointLight };
@@ -15,6 +15,8 @@ class PointLightShadow extends LightShadow {
15
15
 
16
16
  super( new PerspectiveCamera( 90, 1, 0.5, 500 ) );
17
17
 
18
+ this.isPointLightShadow = true;
19
+
18
20
  this._frameExtents = new Vector2( 4, 2 );
19
21
 
20
22
  this._viewportCount = 6;
@@ -91,6 +93,4 @@ class PointLightShadow extends LightShadow {
91
93
 
92
94
  }
93
95
 
94
- PointLightShadow.prototype.isPointLightShadow = true;
95
-
96
96
  export { PointLightShadow };
@@ -6,6 +6,8 @@ class RectAreaLight extends Light {
6
6
 
7
7
  super( color, intensity );
8
8
 
9
+ this.isRectAreaLight = true;
10
+
9
11
  this.type = 'RectAreaLight';
10
12
 
11
13
  this.width = width;
@@ -51,6 +53,4 @@ class RectAreaLight extends Light {
51
53
 
52
54
  }
53
55
 
54
- RectAreaLight.prototype.isRectAreaLight = true;
55
-
56
56
  export { RectAreaLight };
@@ -8,6 +8,8 @@ class SpotLight extends Light {
8
8
 
9
9
  super( color, intensity );
10
10
 
11
+ this.isSpotLight = true;
12
+
11
13
  this.type = 'SpotLight';
12
14
 
13
15
  this.position.copy( Object3D.DefaultUp );
@@ -45,9 +47,9 @@ class SpotLight extends Light {
45
47
 
46
48
  }
47
49
 
48
- copy( source ) {
50
+ copy( source, recursive ) {
49
51
 
50
- super.copy( source );
52
+ super.copy( source, recursive );
51
53
 
52
54
  this.distance = source.distance;
53
55
  this.angle = source.angle;
@@ -64,6 +66,4 @@ class SpotLight extends Light {
64
66
 
65
67
  }
66
68
 
67
- SpotLight.prototype.isSpotLight = true;
68
-
69
69
  export { SpotLight };
@@ -8,6 +8,8 @@ class SpotLightShadow extends LightShadow {
8
8
 
9
9
  super( new PerspectiveCamera( 50, 1, 0.5, 500 ) );
10
10
 
11
+ this.isSpotLightShadow = true;
12
+
11
13
  this.focus = 1;
12
14
 
13
15
  }
@@ -45,6 +47,4 @@ class SpotLightShadow extends LightShadow {
45
47
 
46
48
  }
47
49
 
48
- SpotLightShadow.prototype.isSpotLightShadow = true;
49
-
50
50
  export { SpotLightShadow };
@@ -88,7 +88,9 @@ class FileLoader extends Loader {
88
88
 
89
89
  }
90
90
 
91
- if ( typeof ReadableStream === 'undefined' || response.body.getReader === undefined ) {
91
+ // Workaround: Checking if response.body === undefined for Alipay browser #23548
92
+
93
+ if ( typeof ReadableStream === 'undefined' || response.body === undefined || response.body.getReader === undefined ) {
92
94
 
93
95
  return response;
94
96
 
@@ -7,6 +7,8 @@ class ImageBitmapLoader extends Loader {
7
7
 
8
8
  super( manager );
9
9
 
10
+ this.isImageBitmapLoader = true;
11
+
10
12
  if ( typeof createImageBitmap === 'undefined' ) {
11
13
 
12
14
  console.warn( 'THREE.ImageBitmapLoader: createImageBitmap() not supported.' );
@@ -94,6 +96,4 @@ class ImageBitmapLoader extends Loader {
94
96
 
95
97
  }
96
98
 
97
- ImageBitmapLoader.prototype.isImageBitmapLoader = true;
98
-
99
99
  export { ImageBitmapLoader };
@@ -71,7 +71,7 @@ class ImageLoader extends Loader {
71
71
  image.addEventListener( 'load', onImageLoad, false );
72
72
  image.addEventListener( 'error', onImageError, false );
73
73
 
74
- if ( url.substr( 0, 5 ) !== 'data:' ) {
74
+ if ( url.slice( 0, 5 ) !== 'data:' ) {
75
75
 
76
76
  if ( this.crossOrigin !== undefined ) image.crossOrigin = this.crossOrigin;
77
77
 
@@ -40,7 +40,7 @@ class LoaderUtils {
40
40
 
41
41
  if ( index === - 1 ) return './';
42
42
 
43
- return url.substr( 0, index + 1 );
43
+ return url.slice( 0, index + 1 );
44
44
 
45
45
  }
46
46
 
@@ -6,7 +6,7 @@ import { Matrix3 } from '../math/Matrix3.js';
6
6
  import { Matrix4 } from '../math/Matrix4.js';
7
7
  import { FileLoader } from './FileLoader.js';
8
8
  import { Loader } from './Loader.js';
9
- import * as Materials from '../materials/Materials.js';
9
+ import { Material } from '../materials/Material.js';
10
10
 
11
11
  class MaterialLoader extends Loader {
12
12
 
@@ -67,7 +67,7 @@ class MaterialLoader extends Loader {
67
67
 
68
68
  }
69
69
 
70
- const material = new Materials[ json.type ]();
70
+ const material = Material.fromType( json.type );
71
71
 
72
72
  if ( json.uuid !== undefined ) material.uuid = json.uuid;
73
73
  if ( json.name !== undefined ) material.name = json.name;
@@ -84,6 +84,9 @@ class MaterialLoader extends Loader {
84
84
  if ( json.shininess !== undefined ) material.shininess = json.shininess;
85
85
  if ( json.clearcoat !== undefined ) material.clearcoat = json.clearcoat;
86
86
  if ( json.clearcoatRoughness !== undefined ) material.clearcoatRoughness = json.clearcoatRoughness;
87
+ if ( json.iridescence !== undefined ) material.iridescence = json.iridescence;
88
+ if ( json.iridescenceIOR !== undefined ) material.iridescenceIOR = json.iridescenceIOR;
89
+ if ( json.iridescenceThicknessRange !== undefined ) material.iridescenceThicknessRange = json.iridescenceThicknessRange;
87
90
  if ( json.transmission !== undefined ) material.transmission = json.transmission;
88
91
  if ( json.thickness !== undefined ) material.thickness = json.thickness;
89
92
  if ( json.attenuationDistance !== undefined ) material.attenuationDistance = json.attenuationDistance;
@@ -100,7 +103,6 @@ class MaterialLoader extends Loader {
100
103
  if ( json.depthTest !== undefined ) material.depthTest = json.depthTest;
101
104
  if ( json.depthWrite !== undefined ) material.depthWrite = json.depthWrite;
102
105
  if ( json.colorWrite !== undefined ) material.colorWrite = json.colorWrite;
103
- if ( json.alphaWrite !== undefined ) material.alphaWrite = json.alphaWrite;
104
106
 
105
107
  if ( json.stencilWrite !== undefined ) material.stencilWrite = json.stencilWrite;
106
108
  if ( json.stencilWriteMask !== undefined ) material.stencilWriteMask = json.stencilWriteMask;
@@ -285,6 +287,9 @@ class MaterialLoader extends Loader {
285
287
  if ( json.clearcoatNormalMap !== undefined ) material.clearcoatNormalMap = getTexture( json.clearcoatNormalMap );
286
288
  if ( json.clearcoatNormalScale !== undefined ) material.clearcoatNormalScale = new Vector2().fromArray( json.clearcoatNormalScale );
287
289
 
290
+ if ( json.iridescenceMap !== undefined ) material.iridescenceMap = getTexture( json.iridescenceMap );
291
+ if ( json.iridescenceThicknessMap !== undefined ) material.iridescenceThicknessMap = getTexture( json.iridescenceThicknessMap );
292
+
288
293
  if ( json.transmissionMap !== undefined ) material.transmissionMap = getTexture( json.transmissionMap );
289
294
  if ( json.thicknessMap !== undefined ) material.thicknessMap = getTexture( json.thicknessMap );
290
295
 
@@ -5,7 +5,6 @@ import {
5
5
  EquirectangularReflectionMapping,
6
6
  EquirectangularRefractionMapping,
7
7
  CubeUVReflectionMapping,
8
- CubeUVRefractionMapping,
9
8
 
10
9
  RepeatWrapping,
11
10
  ClampToEdgeWrapping,
@@ -48,6 +47,7 @@ import { PerspectiveCamera } from '../cameras/PerspectiveCamera.js';
48
47
  import { Scene } from '../scenes/Scene.js';
49
48
  import { CubeTexture } from '../textures/CubeTexture.js';
50
49
  import { Texture } from '../textures/Texture.js';
50
+ import { Source } from '../textures/Source.js';
51
51
  import { DataTexture } from '../textures/DataTexture.js';
52
52
  import { ImageLoader } from './ImageLoader.js';
53
53
  import { LoadingManager } from './LoadingManager.js';
@@ -168,7 +168,7 @@ class ObjectLoader extends Loader {
168
168
 
169
169
  for ( const uuid in images ) {
170
170
 
171
- if ( images[ uuid ] instanceof HTMLImageElement ) {
171
+ if ( images[ uuid ].data instanceof HTMLImageElement ) {
172
172
 
173
173
  hasImages = true;
174
174
  break;
@@ -471,7 +471,7 @@ class ObjectLoader extends Loader {
471
471
 
472
472
  // load array of images e.g CubeTexture
473
473
 
474
- images[ image.uuid ] = [];
474
+ const imageArray = [];
475
475
 
476
476
  for ( let j = 0, jl = url.length; j < jl; j ++ ) {
477
477
 
@@ -483,13 +483,13 @@ class ObjectLoader extends Loader {
483
483
 
484
484
  if ( deserializedImage instanceof HTMLImageElement ) {
485
485
 
486
- images[ image.uuid ].push( deserializedImage );
486
+ imageArray.push( deserializedImage );
487
487
 
488
488
  } else {
489
489
 
490
490
  // special case: handle array of data textures for cube textures
491
491
 
492
- images[ image.uuid ].push( new DataTexture( deserializedImage.data, deserializedImage.width, deserializedImage.height ) );
492
+ imageArray.push( new DataTexture( deserializedImage.data, deserializedImage.width, deserializedImage.height ) );
493
493
 
494
494
  }
495
495
 
@@ -497,17 +497,15 @@ class ObjectLoader extends Loader {
497
497
 
498
498
  }
499
499
 
500
+ images[ image.uuid ] = new Source( imageArray );
501
+
500
502
  } else {
501
503
 
502
504
  // load single image
503
505
 
504
506
  const deserializedImage = deserializeImage( image.url );
507
+ images[ image.uuid ] = new Source( deserializedImage );
505
508
 
506
- if ( deserializedImage !== null ) {
507
-
508
- images[ image.uuid ] = deserializedImage;
509
-
510
- }
511
509
 
512
510
  }
513
511
 
@@ -570,7 +568,7 @@ class ObjectLoader extends Loader {
570
568
 
571
569
  // load array of images e.g CubeTexture
572
570
 
573
- images[ image.uuid ] = [];
571
+ const imageArray = [];
574
572
 
575
573
  for ( let j = 0, jl = url.length; j < jl; j ++ ) {
576
574
 
@@ -582,13 +580,13 @@ class ObjectLoader extends Loader {
582
580
 
583
581
  if ( deserializedImage instanceof HTMLImageElement ) {
584
582
 
585
- images[ image.uuid ].push( deserializedImage );
583
+ imageArray.push( deserializedImage );
586
584
 
587
585
  } else {
588
586
 
589
587
  // special case: handle array of data textures for cube textures
590
588
 
591
- images[ image.uuid ].push( new DataTexture( deserializedImage.data, deserializedImage.width, deserializedImage.height ) );
589
+ imageArray.push( new DataTexture( deserializedImage.data, deserializedImage.width, deserializedImage.height ) );
592
590
 
593
591
  }
594
592
 
@@ -596,17 +594,14 @@ class ObjectLoader extends Loader {
596
594
 
597
595
  }
598
596
 
597
+ images[ image.uuid ] = new Source( imageArray );
598
+
599
599
  } else {
600
600
 
601
601
  // load single image
602
602
 
603
603
  const deserializedImage = await deserializeImage( image.url );
604
-
605
- if ( deserializedImage !== null ) {
606
-
607
- images[ image.uuid ] = deserializedImage;
608
-
609
- }
604
+ images[ image.uuid ] = new Source( deserializedImage );
610
605
 
611
606
  }
612
607
 
@@ -650,12 +645,14 @@ class ObjectLoader extends Loader {
650
645
 
651
646
  }
652
647
 
648
+ const source = images[ data.image ];
649
+ const image = source.data;
650
+
653
651
  let texture;
654
- const image = images[ data.image ];
655
652
 
656
653
  if ( Array.isArray( image ) ) {
657
654
 
658
- texture = new CubeTexture( image );
655
+ texture = new CubeTexture();
659
656
 
660
657
  if ( image.length === 6 ) texture.needsUpdate = true;
661
658
 
@@ -663,11 +660,11 @@ class ObjectLoader extends Loader {
663
660
 
664
661
  if ( image && image.data ) {
665
662
 
666
- texture = new DataTexture( image.data, image.width, image.height );
663
+ texture = new DataTexture();
667
664
 
668
665
  } else {
669
666
 
670
- texture = new Texture( image );
667
+ texture = new Texture();
671
668
 
672
669
  }
673
670
 
@@ -675,6 +672,8 @@ class ObjectLoader extends Loader {
675
672
 
676
673
  }
677
674
 
675
+ texture.source = source;
676
+
678
677
  texture.uuid = data.uuid;
679
678
 
680
679
  if ( data.name !== undefined ) texture.name = data.name;
@@ -1113,8 +1112,7 @@ const TEXTURE_MAPPING = {
1113
1112
  CubeRefractionMapping: CubeRefractionMapping,
1114
1113
  EquirectangularReflectionMapping: EquirectangularReflectionMapping,
1115
1114
  EquirectangularRefractionMapping: EquirectangularRefractionMapping,
1116
- CubeUVReflectionMapping: CubeUVReflectionMapping,
1117
- CubeUVRefractionMapping: CubeUVRefractionMapping
1115
+ CubeUVReflectionMapping: CubeUVReflectionMapping
1118
1116
  };
1119
1117
 
1120
1118
  const TEXTURE_WRAPPING = {