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
@@ -1729,6 +1729,7 @@ function createObject( elements, elementSize, isConditionalSegments = false, tot
1729
1729
  }
1730
1730
 
1731
1731
  const material = elem.material;
1732
+
1732
1733
  if ( material !== null ) {
1733
1734
 
1734
1735
  if ( elementSize === 3 ) {
@@ -1737,21 +1738,13 @@ function createObject( elements, elementSize, isConditionalSegments = false, tot
1737
1738
 
1738
1739
  } else if ( elementSize === 2 ) {
1739
1740
 
1740
- if ( material !== null ) {
1741
-
1742
- if ( isConditionalSegments ) {
1743
-
1744
- materials.push( material.userData.edgeMaterial.userData.conditionalEdgeMaterial );
1741
+ if ( isConditionalSegments ) {
1745
1742
 
1746
- } else {
1747
-
1748
- materials.push( material.userData.edgeMaterial );
1749
-
1750
- }
1743
+ materials.push( material.userData.edgeMaterial.userData.conditionalEdgeMaterial );
1751
1744
 
1752
1745
  } else {
1753
1746
 
1754
- materials.push( null );
1747
+ materials.push( material.userData.edgeMaterial );
1755
1748
 
1756
1749
  }
1757
1750
 
@@ -4,7 +4,7 @@ import {
4
4
  Loader,
5
5
  FileLoader,
6
6
  DataTexture,
7
- DataTexture3D,
7
+ Data3DTexture,
8
8
  RGBAFormat,
9
9
  UnsignedByteType,
10
10
  ClampToEdgeWrapping,
@@ -125,7 +125,7 @@ export class LUT3dlLoader extends Loader {
125
125
  texture.generateMipmaps = false;
126
126
  texture.needsUpdate = true;
127
127
 
128
- const texture3D = new DataTexture3D();
128
+ const texture3D = new Data3DTexture();
129
129
  texture3D.image.data = data;
130
130
  texture3D.image.width = size;
131
131
  texture3D.image.height = size;
@@ -5,7 +5,7 @@ import {
5
5
  FileLoader,
6
6
  Vector3,
7
7
  DataTexture,
8
- DataTexture3D,
8
+ Data3DTexture,
9
9
  UnsignedByteType,
10
10
  ClampToEdgeWrapping,
11
11
  LinearFilter,
@@ -125,7 +125,7 @@ export class LUTCubeLoader extends Loader {
125
125
  texture.generateMipmaps = false;
126
126
  texture.needsUpdate = true;
127
127
 
128
- const texture3D = new DataTexture3D();
128
+ const texture3D = new Data3DTexture();
129
129
  texture3D.image.data = data;
130
130
  texture3D.image.width = size;
131
131
  texture3D.image.height = size;
@@ -350,6 +350,8 @@ class MaterialParser {
350
350
 
351
351
  const materialType = this.getMaterialType( connections.attributes );
352
352
 
353
+ if ( materialType !== MeshPhongMaterial ) delete params.refractionRatio; // PBR materials do not support "refractionRatio"
354
+
353
355
  return new materialType( params );
354
356
 
355
357
  }
@@ -591,8 +593,6 @@ class MaterialParser {
591
593
 
592
594
  if ( attributes[ 'Bump Height' ] ) params.bumpScale = attributes[ 'Bump Height' ].value * 0.1;
593
595
 
594
- if ( attributes[ 'Refraction Index' ] ) params.refractionRatio = 0.98 / attributes[ 'Refraction Index' ].value;
595
-
596
596
  this.parsePhysicalAttributes( params, attributes, maps );
597
597
  this.parseStandardAttributes( params, attributes, maps );
598
598
  this.parsePhongAttributes( params, attributes, maps );
@@ -643,6 +643,8 @@ class MaterialParser {
643
643
 
644
644
  parsePhongAttributes( params, attributes, maps ) {
645
645
 
646
+ if ( attributes[ 'Refraction Index' ] ) params.refractionRatio = 0.98 / attributes[ 'Refraction Index' ].value;
647
+
646
648
  if ( attributes.Diffuse ) params.color.multiplyScalar( attributes.Diffuse.value );
647
649
 
648
650
  if ( attributes.Reflection ) {
@@ -1060,7 +1062,7 @@ function extractParentUrl( url, dir ) {
1060
1062
 
1061
1063
  if ( index === - 1 ) return './';
1062
1064
 
1063
- return url.substr( 0, index );
1065
+ return url.slice( 0, index );
1064
1066
 
1065
1067
  }
1066
1068
 
@@ -55,7 +55,7 @@ UTIF.decode = function ( buff, prm ) {
55
55
  var bin = id == 'II' ? UTIF._binLE : UTIF._binBE;
56
56
  bin.readUshort( data, offset ); offset += 2;
57
57
 
58
- var ifdo = bin.readUint( data, offset ); offset += 4;
58
+ var ifdo = bin.readUint( data, offset );
59
59
  var ifds = [];
60
60
  while ( true ) {
61
61
 
@@ -339,7 +339,7 @@ UTIF._readIFD = function ( bin, data, offset, ifds, depth, prm ) {
339
339
 
340
340
  ifd[ 't' + tag ] = arr;
341
341
 
342
- if ( tag == 330 && ifd[ 't272' ] && ifd[ 't272' ][ 0 ] == 'DSLR-A100' ) { } else if ( tag == 330 || tag == 34665 || tag == 34853 || ( tag == 50740 && bin.readUshort( data, bin.readUint( arr, 0 ) ) < 300 ) || tag == 61440 ) {
342
+ if ( tag == 330 || tag == 34665 || tag == 34853 || ( tag == 50740 && bin.readUshort( data, bin.readUint( arr, 0 ) ) < 300 ) || tag == 61440 ) {
343
343
 
344
344
  var oarr = tag == 50740 ? [ bin.readUint( arr, 0 ) ] : arr;
345
345
  var subfd = [];
@@ -2080,6 +2080,8 @@ class MMDToonMaterial extends ShaderMaterial {
2080
2080
 
2081
2081
  super();
2082
2082
 
2083
+ this.isMMDToonMaterial = true;
2084
+
2083
2085
  this._matcapCombine = AddOperation;
2084
2086
  this.emissiveIntensity = 1.0;
2085
2087
  this.normalMapType = TangentSpaceNormalMap;
@@ -2133,7 +2135,6 @@ class MMDToonMaterial extends ShaderMaterial {
2133
2135
  // merged from MeshToon/Phong/MatcapMaterial
2134
2136
  const exposePropertyNames = [
2135
2137
  'specular',
2136
- 'shininess',
2137
2138
  'opacity',
2138
2139
  'diffuse',
2139
2140
 
@@ -2188,6 +2189,25 @@ class MMDToonMaterial extends ShaderMaterial {
2188
2189
 
2189
2190
  }
2190
2191
 
2192
+ // Special path for shininess to handle zero shininess properly
2193
+ this._shininess = 30;
2194
+ Object.defineProperty( this, 'shininess', {
2195
+
2196
+ get: function () {
2197
+
2198
+ return this._shininess;
2199
+
2200
+ },
2201
+
2202
+ set: function ( value ) {
2203
+
2204
+ this._shininess = value;
2205
+ this.uniforms.shininess.value = Math.max( this._shininess, 1e-4 ); // To prevent pow( 0.0, 0.0 )
2206
+
2207
+ },
2208
+
2209
+ } );
2210
+
2191
2211
  Object.defineProperty(
2192
2212
  this,
2193
2213
  'color',
@@ -2219,6 +2239,4 @@ class MMDToonMaterial extends ShaderMaterial {
2219
2239
 
2220
2240
  }
2221
2241
 
2222
- MMDToonMaterial.prototype.isMMDToonMaterial = true;
2223
-
2224
2242
  export { MMDLoader };
@@ -173,8 +173,7 @@ class NRRDLoader extends Loader {
173
173
 
174
174
  headerObject.isNrrd = true;
175
175
 
176
- } else if ( l.match( /^#/ ) ) {
177
- } else if ( m = l.match( /(.*):(.*)/ ) ) {
176
+ } else if ( ! l.match( /^#/ ) && ( m = l.match( /(.*):(.*)/ ) ) ) {
178
177
 
179
178
  field = m[ 1 ].trim();
180
179
  data = m[ 2 ].trim();
@@ -11,7 +11,8 @@ import {
11
11
  MeshPhongMaterial,
12
12
  Points,
13
13
  PointsMaterial,
14
- Vector3
14
+ Vector3,
15
+ Color
15
16
  } from 'three';
16
17
 
17
18
  // o object_name | g group_name
@@ -30,6 +31,8 @@ const _vC = new Vector3();
30
31
  const _ab = new Vector3();
31
32
  const _cb = new Vector3();
32
33
 
34
+ const _color = new Color();
35
+
33
36
  function ParserState() {
34
37
 
35
38
  const state = {
@@ -536,12 +539,13 @@ class OBJLoader extends Loader {
536
539
  );
537
540
  if ( data.length >= 7 ) {
538
541
 
539
- state.colors.push(
542
+ _color.setRGB(
540
543
  parseFloat( data[ 4 ] ),
541
544
  parseFloat( data[ 5 ] ),
542
545
  parseFloat( data[ 6 ] )
546
+ ).convertSRGBToLinear();
543
547
 
544
- );
548
+ state.colors.push( _color.r, _color.g, _color.b );
545
549
 
546
550
  } else {
547
551
 
@@ -570,7 +574,7 @@ class OBJLoader extends Loader {
570
574
 
571
575
  } else if ( lineFirstChar === 'f' ) {
572
576
 
573
- const lineData = line.substr( 1 ).trim();
577
+ const lineData = line.slice( 1 ).trim();
574
578
  const vertexData = lineData.split( /\s+/ );
575
579
  const faceVertices = [];
576
580
 
@@ -633,7 +637,7 @@ class OBJLoader extends Loader {
633
637
 
634
638
  } else if ( lineFirstChar === 'p' ) {
635
639
 
636
- const lineData = line.substr( 1 ).trim();
640
+ const lineData = line.slice( 1 ).trim();
637
641
  const pointData = lineData.split( ' ' );
638
642
 
639
643
  state.addPointGeometry( pointData );
@@ -645,8 +649,8 @@ class OBJLoader extends Loader {
645
649
  // g group_name
646
650
 
647
651
  // WORKAROUND: https://bugs.chromium.org/p/v8/issues/detail?id=2869
648
- // let name = result[ 0 ].substr( 1 ).trim();
649
- const name = ( ' ' + result[ 0 ].substr( 1 ).trim() ).substr( 1 );
652
+ // let name = result[ 0 ].slice( 1 ).trim();
653
+ const name = ( ' ' + result[ 0 ].slice( 1 ).trim() ).slice( 1 );
650
654
 
651
655
  state.startObject( name );
652
656
 
@@ -31,7 +31,7 @@ class PCDLoader extends Loader {
31
31
 
32
32
  try {
33
33
 
34
- onLoad( scope.parse( data, url ) );
34
+ onLoad( scope.parse( data ) );
35
35
 
36
36
  } catch ( e ) {
37
37
 
@@ -53,7 +53,7 @@ class PCDLoader extends Loader {
53
53
 
54
54
  }
55
55
 
56
- parse( data, url ) {
56
+ parse( data ) {
57
57
 
58
58
  // from https://gitlab.com/taketwo/three-pcd-loader/blob/master/decompress-lzf.js
59
59
 
@@ -114,11 +114,11 @@ class PCDLoader extends Loader {
114
114
 
115
115
  const PCDheader = {};
116
116
  const result1 = data.search( /[\r\n]DATA\s(\S*)\s/i );
117
- const result2 = /[\r\n]DATA\s(\S*)\s/i.exec( data.substr( result1 - 1 ) );
117
+ const result2 = /[\r\n]DATA\s(\S*)\s/i.exec( data.slice( result1 - 1 ) );
118
118
 
119
119
  PCDheader.data = result2[ 1 ];
120
120
  PCDheader.headerLen = result2[ 0 ].length + result1;
121
- PCDheader.str = data.substr( 0, PCDheader.headerLen );
121
+ PCDheader.str = data.slice( 0, PCDheader.headerLen );
122
122
 
123
123
  // remove comments
124
124
 
@@ -141,8 +141,7 @@ class PCDLoader extends Loader {
141
141
  if ( PCDheader.version !== null )
142
142
  PCDheader.version = parseFloat( PCDheader.version[ 1 ] );
143
143
 
144
- if ( PCDheader.fields !== null )
145
- PCDheader.fields = PCDheader.fields[ 1 ].split( ' ' );
144
+ PCDheader.fields = ( PCDheader.fields !== null ) ? PCDheader.fields[ 1 ].split( ' ' ) : [];
146
145
 
147
146
  if ( PCDheader.type !== null )
148
147
  PCDheader.type = PCDheader.type[ 1 ].split( ' ' );
@@ -236,7 +235,7 @@ class PCDLoader extends Loader {
236
235
  if ( PCDheader.data === 'ascii' ) {
237
236
 
238
237
  const offset = PCDheader.offset;
239
- const pcdData = textData.substr( PCDheader.headerLen );
238
+ const pcdData = textData.slice( PCDheader.headerLen );
240
239
  const lines = pcdData.split( '\n' );
241
240
 
242
241
  for ( let i = 0, l = lines.length; i < l; i ++ ) {
@@ -255,7 +254,22 @@ class PCDLoader extends Loader {
255
254
 
256
255
  if ( offset.rgb !== undefined ) {
257
256
 
258
- const rgb = parseFloat( line[ offset.rgb ] );
257
+ const rgb_field_index = PCDheader.fields.findIndex( ( field ) => field === 'rgb' );
258
+ const rgb_type = PCDheader.type[ rgb_field_index ];
259
+
260
+ const float = parseFloat( line[ offset.rgb ] );
261
+ let rgb = float;
262
+
263
+ if ( rgb_type === 'F' ) {
264
+
265
+ // treat float values as int
266
+ // https://github.com/daavoo/pyntcloud/pull/204/commits/7b4205e64d5ed09abe708b2e91b615690c24d518
267
+ const farr = new Float32Array( 1 );
268
+ farr[ 0 ] = float;
269
+ rgb = new Int32Array( farr.buffer )[ 0 ];
270
+
271
+ }
272
+
259
273
  const r = ( rgb >> 16 ) & 0x0000ff;
260
274
  const g = ( rgb >> 8 ) & 0x0000ff;
261
275
  const b = ( rgb >> 0 ) & 0x0000ff;
@@ -384,13 +398,7 @@ class PCDLoader extends Loader {
384
398
 
385
399
  // build point cloud
386
400
 
387
- const mesh = new Points( geometry, material );
388
- let name = url.split( '' ).reverse().join( '' );
389
- name = /([^\/]*)/.exec( name );
390
- name = name[ 1 ].split( '' ).reverse().join( '' );
391
- mesh.name = name;
392
-
393
- return mesh;
401
+ return new Points( geometry, material );
394
402
 
395
403
  }
396
404
 
@@ -59,7 +59,7 @@ class PDBLoader extends Loader {
59
59
 
60
60
  function capitalize( text ) {
61
61
 
62
- return text.charAt( 0 ).toUpperCase() + text.substr( 1 ).toLowerCase();
62
+ return text.charAt( 0 ).toUpperCase() + text.slice( 1 ).toLowerCase();
63
63
 
64
64
  }
65
65
 
@@ -71,7 +71,7 @@ class PDBLoader extends Loader {
71
71
 
72
72
  function parseBond( start, length, satom, i ) {
73
73
 
74
- const eatom = parseInt( lines[ i ].substr( start, length ) );
74
+ const eatom = parseInt( lines[ i ].slice( start, start + length ) );
75
75
 
76
76
  if ( eatom ) {
77
77
 
@@ -183,18 +183,18 @@ class PDBLoader extends Loader {
183
183
 
184
184
  for ( let i = 0, l = lines.length; i < l; i ++ ) {
185
185
 
186
- if ( lines[ i ].substr( 0, 4 ) === 'ATOM' || lines[ i ].substr( 0, 6 ) === 'HETATM' ) {
186
+ if ( lines[ i ].slice( 0, 4 ) === 'ATOM' || lines[ i ].slice( 0, 6 ) === 'HETATM' ) {
187
187
 
188
- const x = parseFloat( lines[ i ].substr( 30, 7 ) );
189
- const y = parseFloat( lines[ i ].substr( 38, 7 ) );
190
- const z = parseFloat( lines[ i ].substr( 46, 7 ) );
191
- const index = parseInt( lines[ i ].substr( 6, 5 ) ) - 1;
188
+ const x = parseFloat( lines[ i ].slice( 30, 37 ) );
189
+ const y = parseFloat( lines[ i ].slice( 38, 45 ) );
190
+ const z = parseFloat( lines[ i ].slice( 46, 53 ) );
191
+ const index = parseInt( lines[ i ].slice( 6, 11 ) ) - 1;
192
192
 
193
- let e = trim( lines[ i ].substr( 76, 2 ) ).toLowerCase();
193
+ let e = trim( lines[ i ].slice( 76, 78 ) ).toLowerCase();
194
194
 
195
195
  if ( e === '' ) {
196
196
 
197
- e = trim( lines[ i ].substr( 12, 2 ) ).toLowerCase();
197
+ e = trim( lines[ i ].slice( 12, 14 ) ).toLowerCase();
198
198
 
199
199
  }
200
200
 
@@ -203,9 +203,9 @@ class PDBLoader extends Loader {
203
203
  atoms.push( atomData );
204
204
  _atomMap[ index ] = atomData;
205
205
 
206
- } else if ( lines[ i ].substr( 0, 6 ) === 'CONECT' ) {
206
+ } else if ( lines[ i ].slice( 0, 6 ) === 'CONECT' ) {
207
207
 
208
- const satom = parseInt( lines[ i ].substr( 6, 5 ) );
208
+ const satom = parseInt( lines[ i ].slice( 6, 11 ) );
209
209
 
210
210
  parseBond( 11, 5, satom, i );
211
211
  parseBond( 16, 5, satom, i );
@@ -3,7 +3,8 @@ import {
3
3
  FileLoader,
4
4
  Float32BufferAttribute,
5
5
  Loader,
6
- LoaderUtils
6
+ LoaderUtils,
7
+ Color
7
8
  } from 'three';
8
9
 
9
10
  /**
@@ -32,6 +33,7 @@ import {
32
33
  *
33
34
  */
34
35
 
36
+ const _color = new Color();
35
37
 
36
38
  class PLYLoader extends Loader {
37
39
 
@@ -407,7 +409,13 @@ class PLYLoader extends Loader {
407
409
 
408
410
  if ( attrR !== null && attrG !== null && attrB !== null ) {
409
411
 
410
- buffer.colors.push( element[ attrR ] / 255.0, element[ attrG ] / 255.0, element[ attrB ] / 255.0 );
412
+ _color.setRGB(
413
+ element[ attrR ] / 255.0,
414
+ element[ attrG ] / 255.0,
415
+ element[ attrB ] / 255.0
416
+ ).convertSRGBToLinear();
417
+
418
+ buffer.colors.push( _color.r, _color.g, _color.b );
411
419
 
412
420
  }
413
421
 
@@ -168,13 +168,13 @@ class RGBELoader extends DataTextureLoader {
168
168
 
169
169
  if ( match = line.match( gamma_re ) ) {
170
170
 
171
- header.gamma = parseFloat( match[ 1 ], 10 );
171
+ header.gamma = parseFloat( match[ 1 ] );
172
172
 
173
173
  }
174
174
 
175
175
  if ( match = line.match( exposure_re ) ) {
176
176
 
177
- header.exposure = parseFloat( match[ 1 ], 10 );
177
+ header.exposure = parseFloat( match[ 1 ] );
178
178
 
179
179
  }
180
180
 
@@ -370,7 +370,7 @@ class RGBELoader extends DataTextureLoader {
370
370
 
371
371
  if ( RGBE_RETURN_FAILURE !== image_rgba_data ) {
372
372
 
373
- let data, format, type;
373
+ let data, type;
374
374
  let numElements;
375
375
 
376
376
  switch ( this.type ) {
@@ -418,7 +418,6 @@ class RGBELoader extends DataTextureLoader {
418
418
  header: rgbe_header_info.string,
419
419
  gamma: rgbe_header_info.gamma,
420
420
  exposure: rgbe_header_info.exposure,
421
- format: format,
422
421
  type: type
423
422
  };
424
423
 
@@ -444,14 +443,6 @@ class RGBELoader extends DataTextureLoader {
444
443
  switch ( texture.type ) {
445
444
 
446
445
  case FloatType:
447
-
448
- texture.encoding = LinearEncoding;
449
- texture.minFilter = LinearFilter;
450
- texture.magFilter = LinearFilter;
451
- texture.generateMipmaps = false;
452
- texture.flipY = true;
453
- break;
454
-
455
446
  case HalfFloatType:
456
447
 
457
448
  texture.encoding = LinearEncoding;
@@ -459,6 +450,7 @@ class RGBELoader extends DataTextureLoader {
459
450
  texture.magFilter = LinearFilter;
460
451
  texture.generateMipmaps = false;
461
452
  texture.flipY = true;
453
+
462
454
  break;
463
455
 
464
456
  }
@@ -151,7 +151,7 @@ UPNG.toRGBA8 = function ( out ) {
151
151
 
152
152
  frms.push( img.buffer.slice( 0 ) );
153
153
 
154
- if ( frm.dispose == 0 ) {} else if ( frm.dispose == 1 ) UPNG._copyTile( empty, fw, fh, img, w, h, fx, fy, 0 );
154
+ if ( frm.dispose == 1 ) UPNG._copyTile( empty, fw, fh, img, w, h, fx, fy, 0 );
155
155
  else if ( frm.dispose == 2 ) for ( var j = 0; j < len; j ++ ) img[ j ] = prev[ j ];
156
156
 
157
157
  }
@@ -285,7 +285,7 @@ UPNG.toRGBA8.decodeImage = function ( data, w, h, out ) {
285
285
  var off = y * bpl, to = y * w;
286
286
  if ( depth == 1 ) for ( var x = 0; x < w; x ++ ) {
287
287
 
288
- var gr = 255 * ( ( data[ off + ( x >>> 3 ) ] >>> ( 7 - ( ( x & 7 ) ) ) ) & 1 ), al = ( gr == tr * 255 ) ? 0 : 255; bf32[ to + x ] = ( al << 24 ) | ( gr << 16 ) | ( gr << 8 ) | gr;
288
+ var gr = 255 * ( ( data[ off + ( x >>> 3 ) ] >>> ( 7 - ( x & 7 ) ) ) & 1 ), al = ( gr == tr * 255 ) ? 0 : 255; bf32[ to + x ] = ( al << 24 ) | ( gr << 16 ) | ( gr << 8 ) | gr;
289
289
 
290
290
  }
291
291
  else if ( depth == 2 ) for ( var x = 0; x < w; x ++ ) {
@@ -326,6 +326,7 @@ UPNG.decode = function ( buff ) {
326
326
  var out = { tabs: {}, frames: [] };
327
327
  var dd = new Uint8Array( data.length ), doff = 0; // put all IDAT data into it
328
328
  var fd, foff = 0; // frames
329
+ var text, keyw, bfr;
329
330
 
330
331
  var mgck = [ 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a ];
331
332
  for ( var i = 0; i < 8; i ++ ) if ( data[ i ] != mgck[ i ] ) throw new Error( 'The input is not a PNG file!' );
@@ -387,12 +388,12 @@ UPNG.decode = function ( buff ) {
387
388
 
388
389
  if ( out.tabs[ type ] == null ) out.tabs[ type ] = {};
389
390
  var nz = bin.nextZero( data, offset );
390
- var keyw = bin.readASCII( data, offset, nz - offset );
391
- var text, tl = offset + len - nz - 1;
391
+ keyw = bin.readASCII( data, offset, nz - offset );
392
+ var tl = offset + len - nz - 1;
392
393
  if ( type == 'tEXt' ) text = bin.readASCII( data, nz + 1, tl );
393
394
  else {
394
395
 
395
- var bfr = UPNG.decode._inflate( data.slice( nz + 2, nz + 2 + tl ) );
396
+ bfr = UPNG.decode._inflate( data.slice( nz + 2, nz + 2 + tl ) );
396
397
  text = bin.readUTF8( bfr, 0, bfr.length );
397
398
 
398
399
  }
@@ -404,17 +405,17 @@ UPNG.decode = function ( buff ) {
404
405
  if ( out.tabs[ type ] == null ) out.tabs[ type ] = {};
405
406
  var nz = 0, off = offset;
406
407
  nz = bin.nextZero( data, off );
407
- var keyw = bin.readASCII( data, off, nz - off ); off = nz + 1;
408
+ keyw = bin.readASCII( data, off, nz - off ); off = nz + 1;
408
409
  var cflag = data[ off ]; off += 2;
409
410
  nz = bin.nextZero( data, off );
410
411
  bin.readASCII( data, off, nz - off ); off = nz + 1;
411
412
  nz = bin.nextZero( data, off );
412
413
  bin.readUTF8( data, off, nz - off ); off = nz + 1;
413
- var text, tl = len - ( off - offset );
414
+ var tl = len - ( off - offset );
414
415
  if ( cflag == 0 ) text = bin.readUTF8( data, off, tl );
415
416
  else {
416
417
 
417
- var bfr = UPNG.decode._inflate( data.slice( off, off + tl ) );
418
+ bfr = UPNG.decode._inflate( data.slice( off, off + tl ) );
418
419
  text = bin.readUTF8( bfr, 0, bfr.length );
419
420
 
420
421
  }
@@ -809,6 +810,8 @@ UPNG.decode._readInterlace = function ( data, out ) {
809
810
  UPNG.decode._filterZero( data, out, di, sw, sh );
810
811
 
811
812
  var y = 0, row = starting_row[ pass ];
813
+ var val;
814
+
812
815
  while ( row < h ) {
813
816
 
814
817
  var col = starting_col[ pass ];
@@ -818,21 +821,21 @@ UPNG.decode._readInterlace = function ( data, out ) {
818
821
 
819
822
  if ( bpp == 1 ) {
820
823
 
821
- var val = data[ cdi >> 3 ]; val = ( val >> ( 7 - ( cdi & 7 ) ) ) & 1;
824
+ val = data[ cdi >> 3 ]; val = ( val >> ( 7 - ( cdi & 7 ) ) ) & 1;
822
825
  img[ row * bpl + ( col >> 3 ) ] |= ( val << ( 7 - ( ( col & 7 ) << 0 ) ) );
823
826
 
824
827
  }
825
828
 
826
829
  if ( bpp == 2 ) {
827
830
 
828
- var val = data[ cdi >> 3 ]; val = ( val >> ( 6 - ( cdi & 7 ) ) ) & 3;
831
+ val = data[ cdi >> 3 ]; val = ( val >> ( 6 - ( cdi & 7 ) ) ) & 3;
829
832
  img[ row * bpl + ( col >> 2 ) ] |= ( val << ( 6 - ( ( col & 3 ) << 1 ) ) );
830
833
 
831
834
  }
832
835
 
833
836
  if ( bpp == 4 ) {
834
837
 
835
- var val = data[ cdi >> 3 ]; val = ( val >> ( 4 - ( cdi & 7 ) ) ) & 15;
838
+ val = data[ cdi >> 3 ]; val = ( val >> ( 4 - ( cdi & 7 ) ) ) & 15;
836
839
  img[ row * bpl + ( col >> 1 ) ] |= ( val << ( 4 - ( ( col & 1 ) << 2 ) ) );
837
840
 
838
841
  }
@@ -71,7 +71,7 @@ class SVGLoader extends Loader {
71
71
 
72
72
  const transform = getNodeTransform( node );
73
73
 
74
- let traverseChildNodes = true;
74
+ let isDefsNode = false;
75
75
 
76
76
  let path = null;
77
77
 
@@ -124,7 +124,7 @@ class SVGLoader extends Loader {
124
124
  break;
125
125
 
126
126
  case 'defs':
127
- traverseChildNodes = false;
127
+ isDefsNode = true;
128
128
  break;
129
129
 
130
130
  case 'use':
@@ -166,18 +166,26 @@ class SVGLoader extends Loader {
166
166
 
167
167
  }
168
168
 
169
- if ( traverseChildNodes ) {
169
+ const childNodes = node.childNodes;
170
170
 
171
- const nodes = node.childNodes;
171
+ for ( let i = 0; i < childNodes.length; i ++ ) {
172
172
 
173
- for ( let i = 0; i < nodes.length; i ++ ) {
173
+ const node = childNodes[ i ];
174
174
 
175
- parseNode( nodes[ i ], style );
175
+ if ( isDefsNode && node.nodeName !== 'style' && node.nodeName !== 'defs' ) {
176
+
177
+ // Ignore everything in defs except CSS style definitions
178
+ // and nested defs, because it is OK by the standard to have
179
+ // <style/> there.
180
+ continue;
176
181
 
177
182
  }
178
183
 
184
+ parseNode( node, style );
185
+
179
186
  }
180
187
 
188
+
181
189
  if ( transform ) {
182
190
 
183
191
  transformStack.pop();
@@ -218,7 +226,7 @@ class SVGLoader extends Loader {
218
226
  const command = commands[ i ];
219
227
 
220
228
  const type = command.charAt( 0 );
221
- const data = command.substr( 1 ).trim();
229
+ const data = command.slice( 1 ).trim();
222
230
 
223
231
  if ( isFirstPoint === true ) {
224
232
 
@@ -1437,9 +1445,9 @@ class SVGLoader extends Loader {
1437
1445
 
1438
1446
  if ( openParPos > 0 && openParPos < closeParPos ) {
1439
1447
 
1440
- const transformType = transformText.substr( 0, openParPos );
1448
+ const transformType = transformText.slice( 0, openParPos );
1441
1449
 
1442
- const array = parseFloats( transformText.substr( openParPos + 1, closeParPos - openParPos - 1 ) );
1450
+ const array = parseFloats( transformText.slice( openParPos + 1 ) );
1443
1451
 
1444
1452
  currentTransform.identity();
1445
1453
 
@@ -2,7 +2,7 @@ import {
2
2
  FileLoader,
3
3
  Loader
4
4
  } from 'three';
5
- import { opentype } from '../libs/opentype.module.min.js';
5
+ import opentype from '../libs/opentype.module.js';
6
6
 
7
7
  /**
8
8
  * Requires opentype.js to be included in the project.