super-three 0.147.1 → 0.152.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 (757) hide show
  1. package/LICENSE +1 -1
  2. package/build/three.cjs +36410 -21120
  3. package/build/three.js +36999 -21708
  4. package/build/three.min.js +3 -2
  5. package/build/three.module.js +6386 -5509
  6. package/build/three.module.min.js +6 -0
  7. package/examples/jsm/animation/AnimationClipCreator.js +5 -3
  8. package/examples/jsm/capabilities/WebGPU.js +2 -4
  9. package/examples/jsm/controls/ArcballControls.js +1828 -1821
  10. package/examples/jsm/controls/MapControls.js +28 -0
  11. package/examples/jsm/controls/OrbitControls.js +20 -45
  12. package/examples/jsm/controls/PointerLockControls.js +70 -65
  13. package/examples/jsm/controls/TrackballControls.js +18 -4
  14. package/examples/jsm/controls/TransformControls.js +0 -1
  15. package/examples/jsm/csm/CSM.js +11 -3
  16. package/examples/jsm/csm/CSMShader.js +7 -6
  17. package/examples/jsm/effects/AsciiEffect.js +3 -6
  18. package/examples/jsm/effects/OutlineEffect.js +1 -15
  19. package/examples/jsm/exporters/ColladaExporter.js +26 -14
  20. package/examples/jsm/exporters/DRACOExporter.js +53 -11
  21. package/examples/jsm/exporters/EXRExporter.js +3 -9
  22. package/examples/jsm/exporters/GLTFExporter.js +524 -111
  23. package/examples/jsm/exporters/KTX2Exporter.js +34 -23
  24. package/examples/jsm/exporters/MMDExporter.js +1 -1
  25. package/examples/jsm/exporters/PLYExporter.js +8 -1
  26. package/examples/jsm/exporters/STLExporter.js +8 -4
  27. package/examples/jsm/exporters/USDZExporter.js +22 -3
  28. package/examples/jsm/geometries/ConvexGeometry.js +0 -6
  29. package/examples/jsm/geometries/ParametricGeometry.js +10 -0
  30. package/examples/jsm/helpers/OctreeHelper.js +1 -0
  31. package/examples/jsm/helpers/ViewHelper.js +70 -56
  32. package/examples/jsm/interactive/HTMLMesh.js +16 -3
  33. package/examples/jsm/interactive/InteractiveGroup.js +1 -1
  34. package/examples/{js → jsm}/libs/basis/README.md +4 -4
  35. package/examples/jsm/libs/draco/draco_decoder.js +34 -0
  36. package/examples/jsm/libs/draco/draco_decoder.wasm +0 -0
  37. package/examples/jsm/libs/draco/draco_wasm_wrapper.js +117 -0
  38. package/examples/jsm/libs/draco/gltf/draco_decoder.js +33 -0
  39. package/examples/jsm/libs/draco/gltf/draco_decoder.wasm +0 -0
  40. package/examples/jsm/libs/draco/gltf/draco_wasm_wrapper.js +116 -0
  41. package/examples/jsm/libs/lil-gui.module.min.js +2 -2
  42. package/examples/jsm/libs/tween.module.js +803 -0
  43. package/examples/jsm/lights/IESSpotLight.js +25 -0
  44. package/examples/jsm/lights/LightProbeGenerator.js +11 -9
  45. package/examples/jsm/lines/LineSegments2.js +12 -10
  46. package/examples/jsm/loaders/3DMLoader.js +8 -5
  47. package/examples/jsm/loaders/3MFLoader.js +12 -11
  48. package/examples/jsm/loaders/AMFLoader.js +2 -3
  49. package/examples/jsm/loaders/BVHLoader.js +2 -2
  50. package/examples/jsm/loaders/ColladaLoader.js +15 -16
  51. package/examples/jsm/loaders/DRACOLoader.js +67 -18
  52. package/examples/jsm/loaders/EXRLoader.js +23 -24
  53. package/examples/jsm/loaders/FBXLoader.js +32 -50
  54. package/examples/jsm/loaders/GCodeLoader.js +1 -2
  55. package/examples/jsm/loaders/GLTFLoader.js +249 -215
  56. package/examples/jsm/loaders/HDRCubeTextureLoader.js +4 -4
  57. package/examples/jsm/loaders/IESLoader.js +337 -0
  58. package/examples/jsm/loaders/KMZLoader.js +4 -4
  59. package/examples/jsm/loaders/KTX2Loader.js +41 -24
  60. package/examples/jsm/loaders/LDrawLoader.js +20 -18
  61. package/examples/jsm/loaders/LWOLoader.js +12 -29
  62. package/examples/jsm/loaders/LottieLoader.js +3 -1
  63. package/examples/jsm/loaders/MMDLoader.js +17 -13
  64. package/examples/jsm/loaders/MTLLoader.js +2 -2
  65. package/examples/jsm/loaders/MaterialXLoader.js +9 -3
  66. package/examples/jsm/loaders/NRRDLoader.js +33 -5
  67. package/examples/jsm/loaders/OBJLoader.js +1 -1
  68. package/examples/jsm/loaders/PCDLoader.js +1 -2
  69. package/examples/jsm/loaders/PLYLoader.js +238 -105
  70. package/examples/jsm/loaders/RGBELoader.js +3 -3
  71. package/examples/jsm/loaders/STLLoader.js +1 -2
  72. package/examples/jsm/loaders/SVGLoader.js +36 -27
  73. package/examples/jsm/loaders/TTFLoader.js +1 -8
  74. package/examples/jsm/loaders/TiltLoader.js +13 -7
  75. package/examples/jsm/loaders/USDZLoader.js +5 -5
  76. package/examples/jsm/loaders/VOXLoader.js +8 -2
  77. package/examples/jsm/loaders/VRMLLoader.js +5 -13
  78. package/examples/jsm/loaders/VTKLoader.js +7 -6
  79. package/examples/jsm/loaders/lwo/IFFParser.js +19 -19
  80. package/examples/jsm/materials/MeshGouraudMaterial.js +0 -3
  81. package/examples/jsm/math/MeshSurfaceSampler.js +0 -6
  82. package/examples/jsm/misc/ConvexObjectBreaker.js +2 -8
  83. package/examples/jsm/misc/GPUComputationRenderer.js +5 -5
  84. package/examples/jsm/misc/MD2Character.js +2 -2
  85. package/examples/jsm/misc/MD2CharacterComplex.js +2 -2
  86. package/examples/jsm/misc/ProgressiveLightMap.js +12 -10
  87. package/examples/jsm/misc/RollerCoaster.js +7 -1
  88. package/examples/jsm/misc/Volume.js +20 -5
  89. package/examples/jsm/modifiers/CurveModifier.js +1 -0
  90. package/examples/jsm/modifiers/TessellateModifier.js +19 -19
  91. package/examples/jsm/nodes/Nodes.js +143 -335
  92. package/examples/jsm/nodes/accessors/BitangentNode.js +43 -16
  93. package/examples/jsm/nodes/accessors/BufferNode.js +6 -0
  94. package/examples/jsm/nodes/accessors/CameraNode.js +12 -2
  95. package/examples/jsm/nodes/accessors/CubeTextureNode.js +27 -33
  96. package/examples/jsm/nodes/accessors/ExtendedMaterialNode.js +58 -0
  97. package/examples/jsm/nodes/accessors/InstanceNode.js +17 -21
  98. package/examples/jsm/nodes/accessors/MaterialNode.js +155 -38
  99. package/examples/jsm/nodes/accessors/MaterialReferenceNode.js +16 -0
  100. package/examples/jsm/nodes/accessors/ModelNode.js +11 -0
  101. package/examples/jsm/nodes/accessors/ModelViewProjectionNode.js +12 -8
  102. package/examples/jsm/nodes/accessors/NormalNode.js +35 -19
  103. package/examples/jsm/nodes/accessors/Object3DNode.js +32 -12
  104. package/examples/jsm/nodes/accessors/PointUVNode.js +6 -1
  105. package/examples/jsm/nodes/accessors/PositionNode.js +38 -23
  106. package/examples/jsm/nodes/accessors/ReferenceNode.js +21 -14
  107. package/examples/jsm/nodes/accessors/ReflectVectorNode.js +11 -7
  108. package/examples/jsm/nodes/accessors/SkinningNode.js +43 -40
  109. package/examples/jsm/nodes/accessors/StorageBufferNode.js +6 -0
  110. package/examples/jsm/nodes/accessors/TangentNode.js +28 -20
  111. package/examples/jsm/nodes/accessors/TextureNode.js +80 -12
  112. package/examples/jsm/nodes/accessors/UVNode.js +6 -0
  113. package/examples/jsm/nodes/accessors/UserDataNode.js +6 -0
  114. package/examples/jsm/nodes/{core → code}/CodeNode.js +27 -2
  115. package/examples/jsm/nodes/code/ExpressionNode.js +37 -0
  116. package/examples/jsm/nodes/{core → code}/FunctionCallNode.js +15 -1
  117. package/examples/jsm/nodes/{core → code}/FunctionNode.js +8 -7
  118. package/examples/jsm/nodes/code/ScriptableNode.js +488 -0
  119. package/examples/jsm/nodes/code/ScriptableValueNode.js +167 -0
  120. package/examples/jsm/nodes/core/ArrayUniformNode.js +3 -0
  121. package/examples/jsm/nodes/core/AttributeNode.js +16 -8
  122. package/examples/jsm/nodes/core/BypassNode.js +9 -2
  123. package/examples/jsm/nodes/core/CacheNode.js +46 -0
  124. package/examples/jsm/nodes/core/ConstNode.js +3 -0
  125. package/examples/jsm/nodes/core/ContextNode.js +8 -1
  126. package/examples/jsm/nodes/core/InputNode.js +26 -5
  127. package/examples/jsm/nodes/core/InstanceIndexNode.js +6 -1
  128. package/examples/jsm/nodes/core/LightingModel.js +16 -0
  129. package/examples/jsm/nodes/core/Node.js +128 -34
  130. package/examples/jsm/nodes/core/NodeBuilder.js +209 -118
  131. package/examples/jsm/nodes/core/NodeCache.js +26 -0
  132. package/examples/jsm/nodes/core/NodeFrame.js +56 -5
  133. package/examples/jsm/nodes/core/NodeUtils.js +105 -28
  134. package/examples/jsm/nodes/core/PropertyNode.js +19 -2
  135. package/examples/jsm/nodes/core/StackNode.js +92 -0
  136. package/examples/jsm/nodes/core/TempNode.js +11 -3
  137. package/examples/jsm/nodes/core/UniformNode.js +15 -0
  138. package/examples/jsm/nodes/core/VarNode.js +21 -29
  139. package/examples/jsm/nodes/core/VaryingNode.js +15 -2
  140. package/examples/jsm/nodes/core/constants.js +6 -0
  141. package/examples/jsm/nodes/display/BlendModeNode.js +25 -11
  142. package/examples/jsm/nodes/display/ColorAdjustmentNode.js +30 -14
  143. package/examples/jsm/nodes/display/ColorSpaceNode.js +39 -27
  144. package/examples/jsm/nodes/display/FrontFacingNode.js +7 -1
  145. package/examples/jsm/nodes/display/NormalMapNode.js +31 -18
  146. package/examples/jsm/nodes/display/PosterizeNode.js +10 -3
  147. package/examples/jsm/nodes/display/ToneMappingNode.js +92 -11
  148. package/examples/jsm/nodes/display/ViewportNode.js +27 -18
  149. package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +30 -0
  150. package/examples/jsm/nodes/display/ViewportTextureNode.js +61 -0
  151. package/examples/jsm/nodes/fog/FogExp2Node.js +35 -0
  152. package/examples/jsm/nodes/fog/FogNode.js +12 -6
  153. package/examples/jsm/nodes/fog/FogRangeNode.js +12 -5
  154. package/examples/jsm/nodes/functions/BSDF/BRDF_BlinnPhong.js +30 -0
  155. package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +10 -13
  156. package/examples/jsm/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
  157. package/examples/jsm/nodes/functions/BSDF/DFGApprox.js +8 -6
  158. package/examples/jsm/nodes/functions/BSDF/D_GGX.js +4 -4
  159. package/examples/jsm/nodes/functions/BSDF/F_Schlick.js +3 -3
  160. package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +7 -5
  161. package/examples/jsm/nodes/functions/PhongLightingModel.js +28 -0
  162. package/examples/jsm/nodes/functions/PhysicalLightingModel.js +33 -36
  163. package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +4 -3
  164. package/examples/jsm/nodes/functions/material/getRoughness.js +4 -4
  165. package/examples/jsm/nodes/geometry/RangeNode.js +32 -19
  166. package/examples/jsm/nodes/gpgpu/ComputeNode.js +9 -2
  167. package/examples/jsm/nodes/lighting/AONode.js +5 -3
  168. package/examples/jsm/nodes/lighting/AmbientLightNode.js +27 -0
  169. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +112 -6
  170. package/examples/jsm/nodes/lighting/DirectionalLightNode.js +43 -0
  171. package/examples/jsm/nodes/lighting/EnvironmentNode.js +104 -34
  172. package/examples/jsm/nodes/lighting/HemisphereLightNode.js +15 -10
  173. package/examples/jsm/nodes/lighting/IESSpotLightNode.js +39 -0
  174. package/examples/jsm/nodes/lighting/LightNode.js +57 -0
  175. package/examples/jsm/nodes/lighting/LightUtils.js +17 -0
  176. package/examples/jsm/nodes/lighting/LightingContextNode.js +30 -8
  177. package/examples/jsm/nodes/lighting/LightingNode.js +3 -1
  178. package/examples/jsm/nodes/lighting/LightsNode.js +18 -10
  179. package/examples/jsm/nodes/lighting/PointLightNode.js +71 -0
  180. package/examples/jsm/nodes/lighting/SpotLightNode.js +92 -0
  181. package/examples/jsm/nodes/loaders/NodeLoader.js +5 -4
  182. package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +4 -20
  183. package/examples/jsm/nodes/materials/LineBasicNodeMaterial.js +6 -9
  184. package/examples/jsm/nodes/materials/Materials.js +11 -55
  185. package/examples/jsm/nodes/materials/MeshBasicNodeMaterial.js +5 -11
  186. package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +48 -0
  187. package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +74 -0
  188. package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +6 -6
  189. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +21 -96
  190. package/examples/jsm/nodes/materials/NodeMaterial.js +244 -61
  191. package/examples/jsm/nodes/materials/PointsNodeMaterial.js +7 -1
  192. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +29 -25
  193. package/examples/jsm/nodes/materialx/MaterialXNodes.js +31 -22
  194. package/examples/jsm/nodes/materialx/lib/mx_hsv.js +1 -1
  195. package/examples/jsm/nodes/materialx/lib/mx_noise.js +2 -1
  196. package/examples/jsm/nodes/materialx/lib/mx_transform_color.js +2 -1
  197. package/examples/jsm/nodes/math/CondNode.js +43 -17
  198. package/examples/jsm/nodes/math/MathNode.js +178 -73
  199. package/examples/jsm/nodes/math/OperatorNode.js +52 -2
  200. package/examples/jsm/nodes/procedural/CheckerNode.js +14 -6
  201. package/examples/jsm/nodes/shadernode/ShaderNode.js +158 -42
  202. package/examples/jsm/nodes/utils/ArrayElementNode.js +4 -2
  203. package/examples/jsm/nodes/utils/ConvertNode.js +19 -1
  204. package/examples/jsm/nodes/utils/DiscardNode.js +26 -0
  205. package/examples/jsm/nodes/utils/EquirectUVNode.js +11 -4
  206. package/examples/jsm/nodes/utils/JoinNode.js +4 -1
  207. package/examples/jsm/nodes/utils/MatcapUVNode.js +11 -4
  208. package/examples/jsm/nodes/utils/MaxMipLevelNode.js +18 -5
  209. package/examples/jsm/nodes/utils/OscNode.js +21 -14
  210. package/examples/jsm/nodes/utils/PackingNode.js +55 -0
  211. package/examples/jsm/nodes/utils/RemapNode.js +13 -5
  212. package/examples/jsm/nodes/utils/RotateUVNode.js +18 -7
  213. package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +37 -0
  214. package/examples/jsm/nodes/utils/SplitNode.js +7 -5
  215. package/examples/jsm/nodes/utils/SpriteSheetUVNode.js +15 -30
  216. package/examples/jsm/nodes/utils/TimerNode.js +16 -6
  217. package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +21 -10
  218. package/examples/jsm/objects/GroundProjectedSkybox.js +172 -0
  219. package/examples/jsm/objects/Reflector.js +4 -4
  220. package/examples/jsm/objects/Refractor.js +4 -4
  221. package/examples/jsm/objects/ShadowMesh.js +3 -3
  222. package/examples/jsm/physics/AmmoPhysics.js +27 -28
  223. package/examples/jsm/physics/{OimoPhysics.js → RapierPhysics.js} +59 -51
  224. package/examples/jsm/postprocessing/AdaptiveToneMappingPass.js +0 -8
  225. package/examples/jsm/postprocessing/AfterimagePass.js +0 -2
  226. package/examples/jsm/postprocessing/BloomPass.js +0 -2
  227. package/examples/jsm/postprocessing/BokehPass.js +0 -6
  228. package/examples/jsm/postprocessing/DotScreenPass.js +0 -2
  229. package/examples/jsm/postprocessing/EffectComposer.js +3 -94
  230. package/examples/jsm/postprocessing/FilmPass.js +0 -2
  231. package/examples/jsm/postprocessing/GlitchPass.js +0 -2
  232. package/examples/jsm/postprocessing/HalftonePass.js +0 -6
  233. package/examples/jsm/postprocessing/OutlinePass.js +0 -1
  234. package/examples/jsm/postprocessing/Pass.js +2 -0
  235. package/examples/jsm/postprocessing/SAOPass.js +0 -24
  236. package/examples/jsm/postprocessing/SMAAPass.js +0 -6
  237. package/examples/jsm/postprocessing/SSAARenderPass.js +13 -5
  238. package/examples/jsm/postprocessing/SSAOPass.js +0 -12
  239. package/examples/jsm/postprocessing/SSRPass.js +0 -6
  240. package/examples/jsm/postprocessing/SavePass.js +0 -2
  241. package/examples/jsm/postprocessing/TexturePass.js +0 -2
  242. package/examples/jsm/postprocessing/UnrealBloomPass.js +0 -8
  243. package/examples/jsm/renderers/CSS2DRenderer.js +6 -1
  244. package/examples/jsm/renderers/CSS3DRenderer.js +27 -5
  245. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +35 -31
  246. package/examples/jsm/renderers/webgpu/WebGPUAnimation.js +2 -2
  247. package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +14 -4
  248. package/examples/jsm/renderers/webgpu/WebGPUBackground.js +72 -55
  249. package/examples/jsm/renderers/webgpu/WebGPUBindings.js +34 -19
  250. package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +1 -1
  251. package/examples/jsm/renderers/webgpu/WebGPUGeometries.js +158 -26
  252. package/examples/jsm/renderers/webgpu/WebGPUProgrammableStage.js +1 -1
  253. package/examples/jsm/renderers/webgpu/WebGPUProperties.js +6 -0
  254. package/examples/jsm/renderers/webgpu/WebGPURenderLists.js +30 -14
  255. package/examples/jsm/renderers/webgpu/WebGPURenderObject.js +40 -0
  256. package/examples/jsm/renderers/webgpu/WebGPURenderObjects.js +50 -0
  257. package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +49 -111
  258. package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +40 -62
  259. package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +14 -26
  260. package/examples/jsm/renderers/webgpu/WebGPURenderTarget.js +15 -0
  261. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +244 -100
  262. package/examples/jsm/renderers/webgpu/WebGPUSampledTexture.js +3 -1
  263. package/examples/jsm/renderers/webgpu/WebGPUTextureRenderer.js +2 -4
  264. package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +2 -0
  265. package/examples/jsm/renderers/webgpu/WebGPUTextures.js +366 -110
  266. package/examples/jsm/renderers/webgpu/WebGPUUniformsGroup.js +1 -1
  267. package/examples/jsm/renderers/webgpu/WebGPUUtils.js +13 -6
  268. package/examples/jsm/renderers/webgpu/WebGPUWeakMap.js +83 -0
  269. package/examples/jsm/renderers/webgpu/constants.js +68 -6
  270. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +74 -57
  271. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +241 -22
  272. package/examples/jsm/shaders/MMDToonShader.js +15 -4
  273. package/examples/jsm/shaders/RGBShiftShader.js +2 -2
  274. package/examples/jsm/shaders/VelocityShader.js +1 -1
  275. package/examples/jsm/utils/BufferGeometryUtils.js +37 -35
  276. package/examples/jsm/utils/LDrawUtils.js +4 -4
  277. package/examples/jsm/utils/PackedPhongMaterial.js +5 -78
  278. package/examples/jsm/utils/SceneUtils.js +8 -4
  279. package/examples/jsm/utils/SkeletonUtils.js +27 -210
  280. package/examples/jsm/webxr/VRButton.js +1 -2
  281. package/examples/jsm/webxr/XRButton.js +198 -0
  282. package/package.json +33 -87
  283. package/src/Three.Legacy.js +19 -110
  284. package/src/Three.js +4 -3
  285. package/src/animation/AnimationUtils.js +13 -1
  286. package/src/animation/PropertyBinding.js +2 -2
  287. package/src/audio/Audio.js +7 -2
  288. package/src/constants.js +10 -2
  289. package/src/core/BufferAttribute.js +147 -8
  290. package/src/core/BufferGeometry.js +3 -9
  291. package/src/core/GLBufferAttribute.js +2 -0
  292. package/src/core/InterleavedBufferAttribute.js +1 -1
  293. package/src/core/Object3D.js +36 -7
  294. package/src/extras/DataUtils.js +7 -1
  295. package/src/extras/ImageUtils.js +2 -2
  296. package/src/extras/PMREMGenerator.js +5 -5
  297. package/src/extras/curves/LineCurve.js +6 -4
  298. package/src/extras/curves/LineCurve3.js +13 -0
  299. package/src/geometries/BoxGeometry.js +10 -0
  300. package/src/geometries/CircleGeometry.js +11 -1
  301. package/src/geometries/ConeGeometry.js +1 -1
  302. package/src/geometries/CylinderGeometry.js +11 -1
  303. package/src/geometries/EdgesGeometry.js +10 -0
  304. package/src/geometries/ExtrudeGeometry.js +11 -1
  305. package/src/geometries/LatheGeometry.js +10 -0
  306. package/src/geometries/PlaneGeometry.js +10 -0
  307. package/src/geometries/PolyhedronGeometry.js +10 -0
  308. package/src/geometries/RingGeometry.js +11 -1
  309. package/src/geometries/ShapeGeometry.js +10 -0
  310. package/src/geometries/SphereGeometry.js +12 -2
  311. package/src/geometries/TorusGeometry.js +11 -1
  312. package/src/geometries/TorusKnotGeometry.js +10 -0
  313. package/src/geometries/TubeGeometry.js +10 -0
  314. package/src/geometries/WireframeGeometry.js +10 -0
  315. package/src/helpers/Box3Helper.js +1 -2
  316. package/src/lights/DirectionalLight.js +1 -1
  317. package/src/lights/HemisphereLight.js +1 -1
  318. package/src/lights/SpotLight.js +1 -1
  319. package/src/loaders/AudioLoader.js +14 -8
  320. package/src/loaders/DataTextureLoader.js +5 -1
  321. package/src/loaders/MaterialLoader.js +4 -0
  322. package/src/loaders/ObjectLoader.js +9 -2
  323. package/src/materials/LineBasicMaterial.js +4 -0
  324. package/src/materials/Material.js +6 -3
  325. package/src/materials/MeshDistanceMaterial.js +0 -9
  326. package/src/materials/ShaderMaterial.js +6 -1
  327. package/src/math/Box2.js +3 -2
  328. package/src/math/Box3.js +49 -64
  329. package/src/math/Color.js +72 -55
  330. package/src/math/ColorManagement.js +75 -16
  331. package/src/math/Euler.js +2 -11
  332. package/src/math/Frustum.js +13 -3
  333. package/src/math/MathUtils.js +27 -1
  334. package/src/math/Plane.js +2 -2
  335. package/src/math/Quaternion.js +6 -0
  336. package/src/math/Ray.js +7 -7
  337. package/src/math/Triangle.js +37 -7
  338. package/src/math/Vector2.js +16 -0
  339. package/src/math/Vector3.js +10 -0
  340. package/src/math/interpolants/CubicInterpolant.js +1 -2
  341. package/src/objects/InstancedMesh.js +79 -1
  342. package/src/objects/Mesh.js +101 -73
  343. package/src/objects/SkinnedMesh.js +95 -8
  344. package/src/objects/Sprite.js +1 -1
  345. package/src/renderers/WebGLCubeRenderTarget.js +12 -3
  346. package/src/renderers/WebGLMultipleRenderTargets.js +4 -2
  347. package/src/renderers/WebGLRenderTarget.js +14 -2
  348. package/src/renderers/WebGLRenderer.js +1340 -1258
  349. package/src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl.js +1 -1
  350. package/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js +1 -1
  351. package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +0 -271
  352. package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +5 -5
  353. package/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js +2 -10
  354. package/src/renderers/shaders/ShaderChunk/clearcoat_pars_fragment.glsl.js +5 -5
  355. package/src/renderers/shaders/ShaderChunk/common.glsl.js +32 -0
  356. package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +1 -1
  357. package/src/renderers/shaders/ShaderChunk/displacementmap_vertex.glsl.js +1 -1
  358. package/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +1 -1
  359. package/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +1 -1
  360. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +3 -3
  361. package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +1 -1
  362. package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +11 -11
  363. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +13 -13
  364. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +256 -10
  365. package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +1 -11
  366. package/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl.js +9 -1
  367. package/src/renderers/shaders/ShaderChunk/map_particle_pars_fragment.glsl.js +10 -2
  368. package/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl.js +1 -1
  369. package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +32 -10
  370. package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +5 -13
  371. package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +7 -7
  372. package/src/renderers/shaders/ShaderChunk/packing.glsl.js +11 -5
  373. package/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl.js +1 -1
  374. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +4 -11
  375. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +2 -2
  376. package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +39 -34
  377. package/src/renderers/shaders/ShaderChunk/specularmap_fragment.glsl.js +1 -1
  378. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +2 -2
  379. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +91 -11
  380. package/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js +108 -1
  381. package/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js +128 -6
  382. package/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js +111 -1
  383. package/src/renderers/shaders/ShaderChunk.js +0 -6
  384. package/src/renderers/shaders/ShaderLib/background.glsl.js +0 -8
  385. package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +5 -0
  386. package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +1 -4
  387. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +0 -3
  388. package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +3 -3
  389. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +0 -3
  390. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +8 -12
  391. package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +0 -3
  392. package/src/renderers/shaders/ShaderLib/points.glsl.js +13 -0
  393. package/src/renderers/shaders/ShaderLib/shadow.glsl.js +5 -0
  394. package/src/renderers/shaders/ShaderLib.js +15 -4
  395. package/src/renderers/shaders/UniformsLib.js +25 -15
  396. package/src/renderers/shaders/UniformsUtils.js +12 -3
  397. package/src/renderers/webgl/WebGLBackground.js +23 -12
  398. package/src/renderers/webgl/WebGLCapabilities.js +1 -2
  399. package/src/renderers/webgl/WebGLClipping.js +7 -3
  400. package/src/renderers/webgl/WebGLLights.js +2 -2
  401. package/src/renderers/webgl/WebGLMaterials.js +105 -234
  402. package/src/renderers/webgl/WebGLMorphtargets.js +1 -1
  403. package/src/renderers/webgl/WebGLProgram.js +111 -48
  404. package/src/renderers/webgl/WebGLPrograms.js +200 -129
  405. package/src/renderers/webgl/WebGLRenderStates.js +2 -2
  406. package/src/renderers/webgl/WebGLShadowMap.js +40 -27
  407. package/src/renderers/webgl/WebGLState.js +23 -9
  408. package/src/renderers/webgl/WebGLTextures.js +21 -19
  409. package/src/renderers/webgl/WebGLUniformsGroups.js +74 -33
  410. package/src/renderers/webgl/WebGLUtils.js +41 -29
  411. package/src/renderers/webxr/WebXRController.js +3 -0
  412. package/src/renderers/webxr/WebXRManager.js +69 -47
  413. package/src/scenes/Scene.js +4 -6
  414. package/src/textures/CompressedTexture.js +2 -2
  415. package/src/textures/CubeTexture.js +2 -2
  416. package/src/textures/DataTexture.js +2 -2
  417. package/src/textures/Texture.js +41 -12
  418. package/src/utils.js +13 -1
  419. package/examples/fonts/open-sans/open-sans-v15-cyrillic-ext_greek_greek-ext_cyrillic_latin_latin-ext_vietnamese-regular.woff +0 -0
  420. package/examples/fonts/open-sans/open-sans-v15-cyrillic-ext_greek_greek-ext_cyrillic_latin_latin-ext_vietnamese-regular.woff2 +0 -0
  421. package/examples/fonts/open-sans/open-sans.css +0 -9
  422. package/examples/fonts/tabler-icons/fonts/tabler-icons.eot +0 -0
  423. package/examples/fonts/tabler-icons/fonts/tabler-icons.svg +0 -3966
  424. package/examples/fonts/tabler-icons/fonts/tabler-icons.ttf +0 -0
  425. package/examples/fonts/tabler-icons/fonts/tabler-icons.woff +0 -0
  426. package/examples/fonts/tabler-icons/fonts/tabler-icons.woff2 +0 -0
  427. package/examples/fonts/tabler-icons/tabler-icons.min.css +0 -4
  428. package/examples/js/animation/AnimationClipCreator.js +0 -89
  429. package/examples/js/animation/CCDIKSolver.js +0 -416
  430. package/examples/js/animation/MMDAnimationHelper.js +0 -1046
  431. package/examples/js/animation/MMDPhysics.js +0 -1174
  432. package/examples/js/cameras/CinematicCamera.js +0 -168
  433. package/examples/js/controls/ArcballControls.js +0 -2770
  434. package/examples/js/controls/DragControls.js +0 -205
  435. package/examples/js/controls/FirstPersonControls.js +0 -312
  436. package/examples/js/controls/FlyControls.js +0 -321
  437. package/examples/js/controls/OrbitControls.js +0 -1101
  438. package/examples/js/controls/PointerLockControls.js +0 -144
  439. package/examples/js/controls/TrackballControls.js +0 -729
  440. package/examples/js/controls/TransformControls.js +0 -1301
  441. package/examples/js/csm/CSM.js +0 -347
  442. package/examples/js/csm/CSMFrustum.js +0 -127
  443. package/examples/js/csm/CSMHelper.js +0 -165
  444. package/examples/js/csm/CSMShader.js +0 -253
  445. package/examples/js/curves/CurveExtras.js +0 -348
  446. package/examples/js/curves/NURBSCurve.js +0 -63
  447. package/examples/js/curves/NURBSSurface.js +0 -48
  448. package/examples/js/curves/NURBSUtils.js +0 -439
  449. package/examples/js/effects/AnaglyphEffect.js +0 -86
  450. package/examples/js/effects/AsciiEffect.js +0 -260
  451. package/examples/js/effects/OutlineEffect.js +0 -450
  452. package/examples/js/effects/ParallaxBarrierEffect.js +0 -62
  453. package/examples/js/effects/PeppersGhostEffect.js +0 -139
  454. package/examples/js/effects/StereoEffect.js +0 -46
  455. package/examples/js/environments/DebugEnvironment.js +0 -53
  456. package/examples/js/environments/RoomEnvironment.js +0 -124
  457. package/examples/js/exporters/ColladaExporter.js +0 -487
  458. package/examples/js/exporters/DRACOExporter.js +0 -212
  459. package/examples/js/exporters/EXRExporter.js +0 -455
  460. package/examples/js/exporters/GLTFExporter.js +0 -2367
  461. package/examples/js/exporters/MMDExporter.js +0 -187
  462. package/examples/js/exporters/OBJExporter.js +0 -260
  463. package/examples/js/exporters/PLYExporter.js +0 -427
  464. package/examples/js/exporters/STLExporter.js +0 -188
  465. package/examples/js/exporters/USDZExporter.js +0 -608
  466. package/examples/js/geometries/BoxLineGeometry.js +0 -59
  467. package/examples/js/geometries/ConvexGeometry.js +0 -53
  468. package/examples/js/geometries/DecalGeometry.js +0 -324
  469. package/examples/js/geometries/LightningStrike.js +0 -861
  470. package/examples/js/geometries/ParametricGeometries.js +0 -216
  471. package/examples/js/geometries/ParametricGeometry.js +0 -121
  472. package/examples/js/geometries/RoundedBoxGeometry.js +0 -142
  473. package/examples/js/geometries/TeapotGeometry.js +0 -335
  474. package/examples/js/geometries/TextGeometry.js +0 -53
  475. package/examples/js/helpers/LightProbeHelper.js +0 -48
  476. package/examples/js/helpers/OctreeHelper.js +0 -76
  477. package/examples/js/helpers/PositionalAudioHelper.js +0 -91
  478. package/examples/js/helpers/RectAreaLightHelper.js +0 -73
  479. package/examples/js/helpers/VertexNormalsHelper.js +0 -74
  480. package/examples/js/helpers/VertexTangentsHelper.js +0 -68
  481. package/examples/js/helpers/ViewHelper.js +0 -281
  482. package/examples/js/interactive/HTMLMesh.js +0 -497
  483. package/examples/js/interactive/InteractiveGroup.js +0 -95
  484. package/examples/js/interactive/SelectionBox.js +0 -195
  485. package/examples/js/interactive/SelectionHelper.js +0 -83
  486. package/examples/js/libs/chevrotain.min.js +0 -3
  487. package/examples/js/libs/draco/draco_decoder.js +0 -52
  488. package/examples/js/libs/draco/draco_decoder.wasm +0 -0
  489. package/examples/js/libs/draco/draco_wasm_wrapper.js +0 -104
  490. package/examples/js/libs/draco/gltf/draco_decoder.js +0 -48
  491. package/examples/js/libs/draco/gltf/draco_decoder.wasm +0 -0
  492. package/examples/js/libs/draco/gltf/draco_wasm_wrapper.js +0 -104
  493. package/examples/js/libs/fflate.min.js +0 -7
  494. package/examples/js/libs/ktx-parse.umd.js +0 -1
  495. package/examples/js/libs/meshopt_decoder.js +0 -188
  496. package/examples/js/libs/opentype.min.js +0 -1
  497. package/examples/js/libs/stats.min.js +0 -5
  498. package/examples/js/lights/LightProbeGenerator.js +0 -221
  499. package/examples/js/lights/RectAreaLightUniformsLib.js +0 -60
  500. package/examples/js/lines/Line2.js +0 -19
  501. package/examples/js/lines/LineGeometry.js +0 -69
  502. package/examples/js/lines/LineMaterial.js +0 -635
  503. package/examples/js/lines/LineSegments2.js +0 -313
  504. package/examples/js/lines/LineSegmentsGeometry.js +0 -198
  505. package/examples/js/lines/Wireframe.js +0 -47
  506. package/examples/js/lines/WireframeGeometry2.js +0 -20
  507. package/examples/js/loaders/3DMLoader.js +0 -1273
  508. package/examples/js/loaders/3MFLoader.js +0 -1306
  509. package/examples/js/loaders/AMFLoader.js +0 -504
  510. package/examples/js/loaders/BVHLoader.js +0 -395
  511. package/examples/js/loaders/BasisTextureLoader.js +0 -706
  512. package/examples/js/loaders/ColladaLoader.js +0 -3690
  513. package/examples/js/loaders/DDSLoader.js +0 -244
  514. package/examples/js/loaders/DRACOLoader.js +0 -511
  515. package/examples/js/loaders/EXRLoader.js +0 -2039
  516. package/examples/js/loaders/FBXLoader.js +0 -3681
  517. package/examples/js/loaders/FontLoader.js +0 -160
  518. package/examples/js/loaders/GCodeLoader.js +0 -255
  519. package/examples/js/loaders/GLTFLoader.js +0 -3862
  520. package/examples/js/loaders/HDRCubeTextureLoader.js +0 -87
  521. package/examples/js/loaders/KMZLoader.js +0 -121
  522. package/examples/js/loaders/KTXLoader.js +0 -159
  523. package/examples/js/loaders/LDrawLoader.js +0 -2263
  524. package/examples/js/loaders/LUT3dlLoader.js +0 -135
  525. package/examples/js/loaders/LUTCubeLoader.js +0 -132
  526. package/examples/js/loaders/LWOLoader.js +0 -901
  527. package/examples/js/loaders/LogLuvLoader.js +0 -715
  528. package/examples/js/loaders/LottieLoader.js +0 -62
  529. package/examples/js/loaders/MD2Loader.js +0 -248
  530. package/examples/js/loaders/MDDLoader.js +0 -91
  531. package/examples/js/loaders/MMDLoader.js +0 -1915
  532. package/examples/js/loaders/MTLLoader.js +0 -472
  533. package/examples/js/loaders/NRRDLoader.js +0 -609
  534. package/examples/js/loaders/OBJLoader.js +0 -789
  535. package/examples/js/loaders/PCDLoader.js +0 -413
  536. package/examples/js/loaders/PDBLoader.js +0 -317
  537. package/examples/js/loaders/PLYLoader.js +0 -576
  538. package/examples/js/loaders/PRWMLoader.js +0 -249
  539. package/examples/js/loaders/PVRLoader.js +0 -218
  540. package/examples/js/loaders/RGBELoader.js +0 -442
  541. package/examples/js/loaders/RGBMLoader.js +0 -1354
  542. package/examples/js/loaders/STLLoader.js +0 -364
  543. package/examples/js/loaders/SVGLoader.js +0 -2783
  544. package/examples/js/loaders/TDSLoader.js +0 -992
  545. package/examples/js/loaders/TGALoader.js +0 -484
  546. package/examples/js/loaders/TIFFLoader.js +0 -30
  547. package/examples/js/loaders/TTFLoader.js +0 -203
  548. package/examples/js/loaders/TiltLoader.js +0 -459
  549. package/examples/js/loaders/VOXLoader.js +0 -240
  550. package/examples/js/loaders/VRMLLoader.js +0 -3140
  551. package/examples/js/loaders/VTKLoader.js +0 -1078
  552. package/examples/js/loaders/XYZLoader.js +0 -89
  553. package/examples/js/loaders/lwo/IFFParser.js +0 -1067
  554. package/examples/js/loaders/lwo/LWO2Parser.js +0 -397
  555. package/examples/js/loaders/lwo/LWO3Parser.js +0 -360
  556. package/examples/js/materials/MeshGouraudMaterial.js +0 -387
  557. package/examples/js/math/Capsule.js +0 -103
  558. package/examples/js/math/ColorConverter.js +0 -33
  559. package/examples/js/math/ConvexHull.js +0 -1154
  560. package/examples/js/math/ImprovedNoise.js +0 -66
  561. package/examples/js/math/Lut.js +0 -164
  562. package/examples/js/math/MeshSurfaceSampler.js +0 -171
  563. package/examples/js/math/OBB.js +0 -382
  564. package/examples/js/math/Octree.js +0 -410
  565. package/examples/js/math/SimplexNoise.js +0 -445
  566. package/examples/js/misc/ConvexObjectBreaker.js +0 -474
  567. package/examples/js/misc/GPUComputationRenderer.js +0 -393
  568. package/examples/js/misc/Gyroscope.js +0 -56
  569. package/examples/js/misc/MD2Character.js +0 -235
  570. package/examples/js/misc/MD2CharacterComplex.js +0 -513
  571. package/examples/js/misc/MorphAnimMesh.js +0 -63
  572. package/examples/js/misc/MorphBlendMesh.js +0 -265
  573. package/examples/js/misc/ProgressiveLightMap.js +0 -335
  574. package/examples/js/misc/RollerCoaster.js +0 -430
  575. package/examples/js/misc/TubePainter.js +0 -167
  576. package/examples/js/misc/Volume.js +0 -437
  577. package/examples/js/misc/VolumeSlice.js +0 -214
  578. package/examples/js/modifiers/CurveModifier.js +0 -309
  579. package/examples/js/modifiers/EdgeSplitModifier.js +0 -228
  580. package/examples/js/modifiers/SimplifyModifier.js +0 -465
  581. package/examples/js/modifiers/TessellateModifier.js +0 -276
  582. package/examples/js/objects/GroundProjectedEnv.js +0 -181
  583. package/examples/js/objects/Lensflare.js +0 -356
  584. package/examples/js/objects/LightningStorm.js +0 -206
  585. package/examples/js/objects/MarchingCubes.js +0 -759
  586. package/examples/js/objects/Reflector.js +0 -216
  587. package/examples/js/objects/ReflectorForSSRPass.js +0 -315
  588. package/examples/js/objects/Refractor.js +0 -283
  589. package/examples/js/objects/ShadowMesh.js +0 -59
  590. package/examples/js/objects/Sky.js +0 -218
  591. package/examples/js/objects/Water.js +0 -292
  592. package/examples/js/objects/Water2.js +0 -307
  593. package/examples/js/physics/AmmoPhysics.js +0 -259
  594. package/examples/js/physics/OimoPhysics.js +0 -217
  595. package/examples/js/postprocessing/AdaptiveToneMappingPass.js +0 -335
  596. package/examples/js/postprocessing/AfterimagePass.js +0 -77
  597. package/examples/js/postprocessing/BloomPass.js +0 -135
  598. package/examples/js/postprocessing/BokehPass.js +0 -120
  599. package/examples/js/postprocessing/ClearPass.js +0 -39
  600. package/examples/js/postprocessing/CubeTexturePass.js +0 -60
  601. package/examples/js/postprocessing/DotScreenPass.js +0 -51
  602. package/examples/js/postprocessing/EffectComposer.js +0 -272
  603. package/examples/js/postprocessing/FilmPass.js +0 -52
  604. package/examples/js/postprocessing/GlitchPass.js +0 -104
  605. package/examples/js/postprocessing/HalftonePass.js +0 -75
  606. package/examples/js/postprocessing/LUTPass.js +0 -171
  607. package/examples/js/postprocessing/MaskPass.js +0 -95
  608. package/examples/js/postprocessing/OutlinePass.js +0 -598
  609. package/examples/js/postprocessing/Pass.js +0 -72
  610. package/examples/js/postprocessing/RenderPass.js +0 -70
  611. package/examples/js/postprocessing/RenderPixelatedPass.js +0 -215
  612. package/examples/js/postprocessing/SAOPass.js +0 -374
  613. package/examples/js/postprocessing/SMAAPass.js +0 -170
  614. package/examples/js/postprocessing/SSAARenderPass.js +0 -156
  615. package/examples/js/postprocessing/SSAOPass.js +0 -365
  616. package/examples/js/postprocessing/SSRPass.js +0 -567
  617. package/examples/js/postprocessing/SavePass.js +0 -59
  618. package/examples/js/postprocessing/ShaderPass.js +0 -64
  619. package/examples/js/postprocessing/TAARenderPass.js +0 -130
  620. package/examples/js/postprocessing/TexturePass.js +0 -49
  621. package/examples/js/postprocessing/UnrealBloomPass.js +0 -375
  622. package/examples/js/renderers/CSS2DRenderer.js +0 -178
  623. package/examples/js/renderers/CSS3DRenderer.js +0 -237
  624. package/examples/js/renderers/Projector.js +0 -818
  625. package/examples/js/renderers/SVGRenderer.js +0 -491
  626. package/examples/js/shaders/ACESFilmicToneMappingShader.js +0 -89
  627. package/examples/js/shaders/AfterimageShader.js +0 -60
  628. package/examples/js/shaders/BasicShader.js +0 -27
  629. package/examples/js/shaders/BleachBypassShader.js +0 -62
  630. package/examples/js/shaders/BlendShader.js +0 -54
  631. package/examples/js/shaders/BokehShader.js +0 -156
  632. package/examples/js/shaders/BokehShader2.js +0 -419
  633. package/examples/js/shaders/BrightnessContrastShader.js +0 -58
  634. package/examples/js/shaders/ColorCorrectionShader.js +0 -52
  635. package/examples/js/shaders/ColorifyShader.js +0 -47
  636. package/examples/js/shaders/ConvolutionShader.js +0 -92
  637. package/examples/js/shaders/CopyShader.js +0 -45
  638. package/examples/js/shaders/DOFMipMapShader.js +0 -60
  639. package/examples/js/shaders/DepthLimitedBlurShader.js +0 -173
  640. package/examples/js/shaders/DigitalGlitch.js +0 -127
  641. package/examples/js/shaders/DotScreenShader.js +0 -72
  642. package/examples/js/shaders/FXAAShader.js +0 -284
  643. package/examples/js/shaders/FilmShader.js +0 -110
  644. package/examples/js/shaders/FocusShader.js +0 -95
  645. package/examples/js/shaders/FreiChenShader.js +0 -93
  646. package/examples/js/shaders/GammaCorrectionShader.js +0 -41
  647. package/examples/js/shaders/GodRaysShader.js +0 -284
  648. package/examples/js/shaders/HalftoneShader.js +0 -336
  649. package/examples/js/shaders/HorizontalBlurShader.js +0 -59
  650. package/examples/js/shaders/HorizontalTiltShiftShader.js +0 -65
  651. package/examples/js/shaders/HueSaturationShader.js +0 -69
  652. package/examples/js/shaders/KaleidoShader.js +0 -60
  653. package/examples/js/shaders/LuminosityHighPassShader.js +0 -67
  654. package/examples/js/shaders/LuminosityShader.js +0 -46
  655. package/examples/js/shaders/MMDToonShader.js +0 -94
  656. package/examples/js/shaders/MirrorShader.js +0 -56
  657. package/examples/js/shaders/NormalMapShader.js +0 -55
  658. package/examples/js/shaders/RGBShiftShader.js +0 -56
  659. package/examples/js/shaders/SAOShader.js +0 -209
  660. package/examples/js/shaders/SMAAShader.js +0 -454
  661. package/examples/js/shaders/SSAOShader.js +0 -295
  662. package/examples/js/shaders/SSRShader.js +0 -381
  663. package/examples/js/shaders/SepiaShader.js +0 -52
  664. package/examples/js/shaders/SobelOperatorShader.js +0 -88
  665. package/examples/js/shaders/SubsurfaceScatteringShader.js +0 -49
  666. package/examples/js/shaders/TechnicolorShader.js +0 -43
  667. package/examples/js/shaders/ToneMapShader.js +0 -84
  668. package/examples/js/shaders/ToonShader.js +0 -335
  669. package/examples/js/shaders/TriangleBlurShader.js +0 -70
  670. package/examples/js/shaders/UnpackDepthRGBAShader.js +0 -47
  671. package/examples/js/shaders/VelocityShader.js +0 -126
  672. package/examples/js/shaders/VerticalBlurShader.js +0 -59
  673. package/examples/js/shaders/VerticalTiltShiftShader.js +0 -65
  674. package/examples/js/shaders/VignetteShader.js +0 -53
  675. package/examples/js/shaders/VolumeShader.js +0 -296
  676. package/examples/js/shaders/WaterRefractionShader.js +0 -84
  677. package/examples/js/textures/FlakesTexture.js +0 -40
  678. package/examples/js/utils/BufferGeometryUtils.js +0 -1160
  679. package/examples/js/utils/CameraUtils.js +0 -71
  680. package/examples/js/utils/GPUStatsPanel.js +0 -125
  681. package/examples/js/utils/GeometryCompressionUtils.js +0 -549
  682. package/examples/js/utils/GeometryUtils.js +0 -168
  683. package/examples/js/utils/LDrawUtils.js +0 -179
  684. package/examples/js/utils/PackedPhongMaterial.js +0 -109
  685. package/examples/js/utils/SceneUtils.js +0 -214
  686. package/examples/js/utils/ShadowMapViewer.js +0 -183
  687. package/examples/js/utils/SkeletonUtils.js +0 -493
  688. package/examples/js/utils/UVsDebug.js +0 -143
  689. package/examples/js/utils/WorkerPool.js +0 -105
  690. package/examples/jsm/libs/OimoPhysics/OimoPhysics.js +0 -37071
  691. package/examples/jsm/libs/OimoPhysics/index.js +0 -43
  692. package/examples/jsm/libs/flow.module.js +0 -4552
  693. package/examples/jsm/libs/tween.module.min.js +0 -3
  694. package/examples/jsm/loaders/BasisTextureLoader.js +0 -790
  695. package/examples/jsm/loaders/IFCLoader.js +0 -2431
  696. package/examples/jsm/loaders/ifc/web-ifc-api.js +0 -47504
  697. package/examples/jsm/loaders/ifc/web-ifc.wasm +0 -0
  698. package/examples/jsm/node-editor/NodeEditor.js +0 -857
  699. package/examples/jsm/node-editor/accessors/MatcapUVEditor.js +0 -14
  700. package/examples/jsm/node-editor/accessors/NormalEditor.js +0 -30
  701. package/examples/jsm/node-editor/accessors/PositionEditor.js +0 -30
  702. package/examples/jsm/node-editor/accessors/UVEditor.js +0 -25
  703. package/examples/jsm/node-editor/core/BaseNode.js +0 -96
  704. package/examples/jsm/node-editor/core/DataFile.js +0 -59
  705. package/examples/jsm/node-editor/core/FileEditor.js +0 -20
  706. package/examples/jsm/node-editor/core/FileURLEditor.js +0 -29
  707. package/examples/jsm/node-editor/display/BlendEditor.js +0 -44
  708. package/examples/jsm/node-editor/display/NormalMapEditor.js +0 -49
  709. package/examples/jsm/node-editor/examples/animate-uv.json +0 -1
  710. package/examples/jsm/node-editor/examples/fake-top-light.json +0 -1
  711. package/examples/jsm/node-editor/examples/matcap.json +0 -1
  712. package/examples/jsm/node-editor/examples/oscillator-color.json +0 -1
  713. package/examples/jsm/node-editor/examples/rim.json +0 -1
  714. package/examples/jsm/node-editor/inputs/ColorEditor.js +0 -96
  715. package/examples/jsm/node-editor/inputs/FloatEditor.js +0 -23
  716. package/examples/jsm/node-editor/inputs/SliderEditor.js +0 -67
  717. package/examples/jsm/node-editor/inputs/TextureEditor.js +0 -155
  718. package/examples/jsm/node-editor/inputs/Vector2Editor.js +0 -28
  719. package/examples/jsm/node-editor/inputs/Vector3Editor.js +0 -30
  720. package/examples/jsm/node-editor/inputs/Vector4Editor.js +0 -37
  721. package/examples/jsm/node-editor/materials/BasicMaterialEditor.js +0 -84
  722. package/examples/jsm/node-editor/materials/PointsMaterialEditor.js +0 -102
  723. package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +0 -118
  724. package/examples/jsm/node-editor/math/AngleEditor.js +0 -40
  725. package/examples/jsm/node-editor/math/DotEditor.js +0 -35
  726. package/examples/jsm/node-editor/math/InvertEditor.js +0 -39
  727. package/examples/jsm/node-editor/math/LimiterEditor.js +0 -62
  728. package/examples/jsm/node-editor/math/NormalizeEditor.js +0 -28
  729. package/examples/jsm/node-editor/math/OperatorEditor.js +0 -63
  730. package/examples/jsm/node-editor/math/PowerEditor.js +0 -44
  731. package/examples/jsm/node-editor/math/TrigonometryEditor.js +0 -45
  732. package/examples/jsm/node-editor/procedural/CheckerEditor.js +0 -27
  733. package/examples/jsm/node-editor/scene/MeshEditor.js +0 -102
  734. package/examples/jsm/node-editor/scene/Object3DEditor.js +0 -160
  735. package/examples/jsm/node-editor/scene/PointsEditor.js +0 -99
  736. package/examples/jsm/node-editor/utils/JoinEditor.js +0 -58
  737. package/examples/jsm/node-editor/utils/OscillatorEditor.js +0 -43
  738. package/examples/jsm/node-editor/utils/PreviewEditor.js +0 -170
  739. package/examples/jsm/node-editor/utils/SplitEditor.js +0 -39
  740. package/examples/jsm/node-editor/utils/TimerEditor.js +0 -58
  741. package/examples/jsm/nodes/core/ExpressionNode.js +0 -32
  742. package/examples/jsm/nodes/functions/light/getDistanceAttenuation.js +0 -22
  743. package/examples/jsm/nodes/lighting/PunctualLightNode.js +0 -68
  744. package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +0 -301
  745. package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +0 -149
  746. package/examples/jsm/objects/GroundProjectedEnv.js +0 -186
  747. package/examples/jsm/renderers/webgpu/WebGPUObjects.js +0 -36
  748. package/src/renderers/shaders/ShaderChunk/uv2_pars_fragment.glsl.js +0 -7
  749. package/src/renderers/shaders/ShaderChunk/uv2_pars_vertex.glsl.js +0 -10
  750. package/src/renderers/shaders/ShaderChunk/uv2_vertex.glsl.js +0 -7
  751. /package/examples/{js → jsm}/libs/ammo.wasm.js +0 -0
  752. /package/examples/{js → jsm}/libs/ammo.wasm.wasm +0 -0
  753. /package/examples/{js → jsm}/libs/basis/basis_transcoder.js +0 -0
  754. /package/examples/{js → jsm}/libs/basis/basis_transcoder.wasm +0 -0
  755. /package/examples/{js → jsm}/libs/draco/README.md +0 -0
  756. /package/examples/{js → jsm}/libs/draco/draco_encoder.js +0 -0
  757. /package/examples/{js → jsm}/libs/draco/gltf/draco_encoder.js +0 -0
@@ -0,0 +1,25 @@
1
+ import { SpotLight } from 'three';
2
+
3
+ class IESSpotLight extends SpotLight {
4
+
5
+ constructor( color, intensity, distance, angle, penumbra, decay ) {
6
+
7
+ super( color, intensity, distance, angle, penumbra, decay );
8
+
9
+ this.iesMap = null;
10
+
11
+ }
12
+
13
+ copy( source, recursive ) {
14
+
15
+ super.copy( source, recursive );
16
+
17
+ this.iesMap = source.iesMap;
18
+
19
+ return this;
20
+
21
+ }
22
+
23
+ }
24
+
25
+ export default IESSpotLight;
@@ -1,10 +1,11 @@
1
1
  import {
2
2
  Color,
3
3
  LightProbe,
4
- LinearEncoding,
4
+ LinearSRGBColorSpace,
5
5
  SphericalHarmonics3,
6
6
  Vector3,
7
- sRGBEncoding
7
+ SRGBColorSpace,
8
+ NoColorSpace
8
9
  } from 'three';
9
10
 
10
11
  class LightProbeGenerator {
@@ -55,7 +56,7 @@ class LightProbeGenerator {
55
56
  color.setRGB( data[ i ] / 255, data[ i + 1 ] / 255, data[ i + 2 ] / 255 );
56
57
 
57
58
  // convert to linear color space
58
- convertColorToLinear( color, cubeTexture.encoding );
59
+ convertColorToLinear( color, cubeTexture.colorSpace );
59
60
 
60
61
  // pixel coordinate on unit cube
61
62
 
@@ -153,7 +154,7 @@ class LightProbeGenerator {
153
154
  color.setRGB( data[ i ] / 255, data[ i + 1 ] / 255, data[ i + 2 ] / 255 );
154
155
 
155
156
  // convert to linear color space
156
- convertColorToLinear( color, cubeRenderTarget.texture.encoding );
157
+ convertColorToLinear( color, cubeRenderTarget.texture.colorSpace );
157
158
 
158
159
  // pixel coordinate on unit cube
159
160
 
@@ -223,22 +224,23 @@ class LightProbeGenerator {
223
224
 
224
225
  }
225
226
 
226
- function convertColorToLinear( color, encoding ) {
227
+ function convertColorToLinear( color, colorSpace ) {
227
228
 
228
- switch ( encoding ) {
229
+ switch ( colorSpace ) {
229
230
 
230
- case sRGBEncoding:
231
+ case SRGBColorSpace:
231
232
 
232
233
  color.convertSRGBToLinear();
233
234
  break;
234
235
 
235
- case LinearEncoding:
236
+ case LinearSRGBColorSpace:
237
+ case NoColorSpace:
236
238
 
237
239
  break;
238
240
 
239
241
  default:
240
242
 
241
- console.warn( 'WARNING: LightProbeGenerator convertColorToLinear() encountered an unsupported encoding.' );
243
+ console.warn( 'WARNING: LightProbeGenerator convertColorToLinear() encountered an unsupported color space.' );
242
244
  break;
243
245
 
244
246
  }
@@ -29,7 +29,7 @@ const _box = new Box3();
29
29
  const _sphere = new Sphere();
30
30
  const _clipToWorldVector = new Vector4();
31
31
 
32
- let _ray, _instanceStart, _instanceEnd, _lineWidth;
32
+ let _ray, _lineWidth;
33
33
 
34
34
  // Returns the margin required to expand by in world space given the distance from the camera,
35
35
  // line width, resolution, and camera projection
@@ -52,11 +52,15 @@ function getWorldSpaceHalfWidth( camera, distance, resolution ) {
52
52
  function raycastWorldUnits( lineSegments, intersects ) {
53
53
 
54
54
  const matrixWorld = lineSegments.matrixWorld;
55
+ const geometry = lineSegments.geometry;
56
+ const instanceStart = geometry.attributes.instanceStart;
57
+ const instanceEnd = geometry.attributes.instanceEnd;
58
+ const segmentCount = Math.min( geometry.instanceCount, instanceStart.count );
55
59
 
56
- for ( let i = 0, l = _instanceStart.count; i < l; i ++ ) {
60
+ for ( let i = 0, l = segmentCount; i < l; i ++ ) {
57
61
 
58
- _line.start.fromBufferAttribute( _instanceStart, i );
59
- _line.end.fromBufferAttribute( _instanceEnd, i );
62
+ _line.start.fromBufferAttribute( instanceStart, i );
63
+ _line.end.fromBufferAttribute( instanceEnd, i );
60
64
 
61
65
  _line.applyMatrix4( matrixWorld );
62
66
 
@@ -76,7 +80,7 @@ function raycastWorldUnits( lineSegments, intersects ) {
76
80
  face: null,
77
81
  faceIndex: i,
78
82
  uv: null,
79
- uv2: null,
83
+ uv1: null,
80
84
  } );
81
85
 
82
86
  }
@@ -95,6 +99,7 @@ function raycastScreenSpace( lineSegments, camera, intersects ) {
95
99
  const geometry = lineSegments.geometry;
96
100
  const instanceStart = geometry.attributes.instanceStart;
97
101
  const instanceEnd = geometry.attributes.instanceEnd;
102
+ const segmentCount = Math.min( geometry.instanceCount, instanceStart.count );
98
103
 
99
104
  const near = - camera.near;
100
105
 
@@ -120,7 +125,7 @@ function raycastScreenSpace( lineSegments, camera, intersects ) {
120
125
 
121
126
  _mvMatrix.multiplyMatrices( camera.matrixWorldInverse, matrixWorld );
122
127
 
123
- for ( let i = 0, l = instanceStart.count; i < l; i ++ ) {
128
+ for ( let i = 0, l = segmentCount; i < l; i ++ ) {
124
129
 
125
130
  _start4.fromBufferAttribute( instanceStart, i );
126
131
  _end4.fromBufferAttribute( instanceEnd, i );
@@ -208,7 +213,7 @@ function raycastScreenSpace( lineSegments, camera, intersects ) {
208
213
  face: null,
209
214
  faceIndex: i,
210
215
  uv: null,
211
- uv2: null,
216
+ uv1: null,
212
217
  } );
213
218
 
214
219
  }
@@ -279,9 +284,6 @@ class LineSegments2 extends Mesh {
279
284
 
280
285
  _lineWidth = material.linewidth + threshold;
281
286
 
282
- _instanceStart = geometry.attributes.instanceStart;
283
- _instanceEnd = geometry.attributes.instanceEnd;
284
-
285
287
  // check if we intersect the sphere bounds
286
288
  if ( geometry.boundingSphere === null ) {
287
289
 
@@ -21,7 +21,8 @@ import {
21
21
  LinearFilter,
22
22
  ClampToEdgeWrapping,
23
23
  RepeatWrapping,
24
- TextureLoader
24
+ TextureLoader,
25
+ DoubleSide
25
26
  } from 'three';
26
27
 
27
28
  const _taskCache = new WeakMap();
@@ -189,6 +190,8 @@ class Rhino3dmLoader extends Loader {
189
190
  mat.color.b = material.color.b;
190
191
  mat.type = material.type;
191
192
 
193
+ const json = JSON.stringify( mat );
194
+
192
195
  for ( let i = 0; i < this.materials.length; i ++ ) {
193
196
 
194
197
  const m = this.materials[ i ];
@@ -200,7 +203,7 @@ class Rhino3dmLoader extends Loader {
200
203
  _mat.color.b = m.color.b;
201
204
  _mat.type = m.type;
202
205
 
203
- if ( JSON.stringify( mat ) === JSON.stringify( _mat ) ) {
206
+ if ( JSON.stringify( _mat ) === json ) {
204
207
 
205
208
  return m;
206
209
 
@@ -222,7 +225,7 @@ class Rhino3dmLoader extends Loader {
222
225
  color: new Color( 1, 1, 1 ),
223
226
  metalness: 0.8,
224
227
  name: 'default',
225
- side: 2
228
+ side: DoubleSide
226
229
  } );
227
230
 
228
231
  }
@@ -244,7 +247,7 @@ class Rhino3dmLoader extends Loader {
244
247
  const mat = new MeshStandardMaterial( {
245
248
  color: diffusecolor,
246
249
  name: material.name,
247
- side: 2,
250
+ side: DoubleSide,
248
251
  transparent: material.transparency > 0 ? true : false,
249
252
  opacity: 1.0 - material.transparency
250
253
  } );
@@ -418,7 +421,7 @@ class Rhino3dmLoader extends Loader {
418
421
  const xf = iRef.geometry.xform.array;
419
422
 
420
423
  const matrix = new Matrix4();
421
- matrix.set( xf[ 0 ], xf[ 1 ], xf[ 2 ], xf[ 3 ], xf[ 4 ], xf[ 5 ], xf[ 6 ], xf[ 7 ], xf[ 8 ], xf[ 9 ], xf[ 10 ], xf[ 11 ], xf[ 12 ], xf[ 13 ], xf[ 14 ], xf[ 15 ] );
424
+ matrix.set( ...xf );
422
425
 
423
426
  iRefObject.applyMatrix4( matrix );
424
427
 
@@ -9,7 +9,6 @@ import {
9
9
  LinearFilter,
10
10
  LinearMipmapLinearFilter,
11
11
  Loader,
12
- LoaderUtils,
13
12
  Matrix4,
14
13
  Mesh,
15
14
  MeshPhongMaterial,
@@ -18,10 +17,12 @@ import {
18
17
  NearestFilter,
19
18
  RepeatWrapping,
20
19
  TextureLoader,
21
- sRGBEncoding
20
+ SRGBColorSpace
22
21
  } from 'three';
23
22
  import * as fflate from '../libs/fflate.module.js';
24
23
 
24
+ const COLOR_SPACE_3MF = SRGBColorSpace;
25
+
25
26
  /**
26
27
  *
27
28
  * 3D Manufacturing Format (3MF) specification: https://3mf.io/specification/
@@ -104,9 +105,11 @@ class ThreeMFLoader extends Loader {
104
105
  const printTicketParts = {};
105
106
  const texturesParts = {};
106
107
 
108
+ const textDecoder = new TextDecoder();
109
+
107
110
  try {
108
111
 
109
- zip = fflate.unzipSync( new Uint8Array( data ) ); // eslint-disable-line no-undef
112
+ zip = fflate.unzipSync( new Uint8Array( data ) );
110
113
 
111
114
  } catch ( e ) {
112
115
 
@@ -144,7 +147,7 @@ class ThreeMFLoader extends Loader {
144
147
  //
145
148
 
146
149
  const relsView = zip[ relsName ];
147
- const relsFileText = LoaderUtils.decodeText( relsView );
150
+ const relsFileText = textDecoder.decode( relsView );
148
151
  const rels = parseRelsXml( relsFileText );
149
152
 
150
153
  //
@@ -152,7 +155,7 @@ class ThreeMFLoader extends Loader {
152
155
  if ( modelRelsName ) {
153
156
 
154
157
  const relsView = zip[ modelRelsName ];
155
- const relsFileText = LoaderUtils.decodeText( relsView );
158
+ const relsFileText = textDecoder.decode( relsView );
156
159
  modelRels = parseRelsXml( relsFileText );
157
160
 
158
161
  }
@@ -164,7 +167,7 @@ class ThreeMFLoader extends Loader {
164
167
  const modelPart = modelPartNames[ i ];
165
168
  const view = zip[ modelPart ];
166
169
 
167
- const fileText = LoaderUtils.decodeText( view );
170
+ const fileText = textDecoder.decode( view );
168
171
  const xmlData = new DOMParser().parseFromString( fileText, 'application/xml' );
169
172
 
170
173
  if ( xmlData.documentElement.nodeName.toLowerCase() !== 'model' ) {
@@ -358,8 +361,7 @@ class ThreeMFLoader extends Loader {
358
361
  const colorNode = colorNodes[ i ];
359
362
  const color = colorNode.getAttribute( 'color' );
360
363
 
361
- colorObject.setStyle( color.substring( 0, 7 ) );
362
- colorObject.convertSRGBToLinear(); // color is in sRGB
364
+ colorObject.setStyle( color.substring( 0, 7 ), COLOR_SPACE_3MF );
363
365
 
364
366
  colors.push( colorObject.r, colorObject.g, colorObject.b );
365
367
 
@@ -788,7 +790,7 @@ class ThreeMFLoader extends Loader {
788
790
 
789
791
  } );
790
792
 
791
- texture.encoding = sRGBEncoding;
793
+ texture.colorSpace = COLOR_SPACE_3MF;
792
794
 
793
795
  // texture parameters
794
796
 
@@ -1280,8 +1282,7 @@ class ThreeMFLoader extends Loader {
1280
1282
  const displaycolor = materialData.displaycolor;
1281
1283
 
1282
1284
  const color = displaycolor.substring( 0, 7 );
1283
- material.color.setStyle( color );
1284
- material.color.convertSRGBToLinear(); // displaycolor is in sRGB
1285
+ material.color.setStyle( color, COLOR_SPACE_3MF );
1285
1286
 
1286
1287
  // process alpha if set
1287
1288
 
@@ -5,7 +5,6 @@ import {
5
5
  Float32BufferAttribute,
6
6
  Group,
7
7
  Loader,
8
- LoaderUtils,
9
8
  Mesh,
10
9
  MeshPhongMaterial
11
10
  } from 'three';
@@ -86,7 +85,7 @@ class AMFLoader extends Loader {
86
85
 
87
86
  try {
88
87
 
89
- zip = fflate.unzipSync( new Uint8Array( data ) ); // eslint-disable-line no-undef
88
+ zip = fflate.unzipSync( new Uint8Array( data ) );
90
89
 
91
90
  } catch ( e ) {
92
91
 
@@ -114,7 +113,7 @@ class AMFLoader extends Loader {
114
113
 
115
114
  }
116
115
 
117
- const fileText = LoaderUtils.decodeText( view );
116
+ const fileText = new TextDecoder().decode( view );
118
117
  const xmlData = new DOMParser().parseFromString( fileText, 'application/xml' );
119
118
 
120
119
  if ( xmlData.documentElement.nodeName.toLowerCase() !== 'amf' ) {
@@ -385,13 +385,13 @@ class BVHLoader extends Loader {
385
385
 
386
386
  if ( scope.animateBonePositions ) {
387
387
 
388
- tracks.push( new VectorKeyframeTrack( '.bones[' + bone.name + '].position', times, positions ) );
388
+ tracks.push( new VectorKeyframeTrack( bone.name + '.position', times, positions ) );
389
389
 
390
390
  }
391
391
 
392
392
  if ( scope.animateBoneRotations ) {
393
393
 
394
- tracks.push( new QuaternionKeyframeTrack( '.bones[' + bone.name + '].quaternion', times, rotations ) );
394
+ tracks.push( new QuaternionKeyframeTrack( bone.name + '.quaternion', times, rotations ) );
395
395
 
396
396
  }
397
397
 
@@ -7,7 +7,6 @@ import {
7
7
  Color,
8
8
  DirectionalLight,
9
9
  DoubleSide,
10
- Euler,
11
10
  FileLoader,
12
11
  Float32BufferAttribute,
13
12
  FrontSide,
@@ -37,7 +36,7 @@ import {
37
36
  Vector2,
38
37
  Vector3,
39
38
  VectorKeyframeTrack,
40
- sRGBEncoding
39
+ SRGBColorSpace
41
40
  } from 'three';
42
41
  import { TGALoader } from '../loaders/TGALoader.js';
43
42
 
@@ -963,7 +962,7 @@ class ColladaLoader extends Loader {
963
962
 
964
963
  let i, j, l;
965
964
 
966
- // procces skin data for each vertex
965
+ // process skin data for each vertex
967
966
 
968
967
  for ( i = 0, l = vcount.length; i < l; i ++ ) {
969
968
 
@@ -1580,7 +1579,7 @@ class ColladaLoader extends Loader {
1580
1579
 
1581
1580
  material.name = data.name || '';
1582
1581
 
1583
- function getTexture( textureObject, encoding = null ) {
1582
+ function getTexture( textureObject, colorSpace = null ) {
1584
1583
 
1585
1584
  const sampler = effect.profile.samplers[ textureObject.id ];
1586
1585
  let image = null;
@@ -1628,9 +1627,9 @@ class ColladaLoader extends Loader {
1628
1627
 
1629
1628
  }
1630
1629
 
1631
- if ( encoding !== null ) {
1630
+ if ( colorSpace !== null ) {
1632
1631
 
1633
- texture.encoding = encoding;
1632
+ texture.colorSpace = colorSpace;
1634
1633
 
1635
1634
  }
1636
1635
 
@@ -1664,7 +1663,7 @@ class ColladaLoader extends Loader {
1664
1663
 
1665
1664
  case 'diffuse':
1666
1665
  if ( parameter.color ) material.color.fromArray( parameter.color );
1667
- if ( parameter.texture ) material.map = getTexture( parameter.texture, sRGBEncoding );
1666
+ if ( parameter.texture ) material.map = getTexture( parameter.texture, SRGBColorSpace );
1668
1667
  break;
1669
1668
  case 'specular':
1670
1669
  if ( parameter.color && material.specular ) material.specular.fromArray( parameter.color );
@@ -1674,14 +1673,14 @@ class ColladaLoader extends Loader {
1674
1673
  if ( parameter.texture ) material.normalMap = getTexture( parameter.texture );
1675
1674
  break;
1676
1675
  case 'ambient':
1677
- if ( parameter.texture ) material.lightMap = getTexture( parameter.texture, sRGBEncoding );
1676
+ if ( parameter.texture ) material.lightMap = getTexture( parameter.texture, SRGBColorSpace );
1678
1677
  break;
1679
1678
  case 'shininess':
1680
1679
  if ( parameter.float && material.shininess ) material.shininess = parameter.float;
1681
1680
  break;
1682
1681
  case 'emission':
1683
1682
  if ( parameter.color && material.emissive ) material.emissive.fromArray( parameter.color );
1684
- if ( parameter.texture ) material.emissiveMap = getTexture( parameter.texture, sRGBEncoding );
1683
+ if ( parameter.texture ) material.emissiveMap = getTexture( parameter.texture, SRGBColorSpace );
1685
1684
  break;
1686
1685
 
1687
1686
  }
@@ -2338,7 +2337,7 @@ class ColladaLoader extends Loader {
2338
2337
  const position = { array: [], stride: 0 };
2339
2338
  const normal = { array: [], stride: 0 };
2340
2339
  const uv = { array: [], stride: 0 };
2341
- const uv2 = { array: [], stride: 0 };
2340
+ const uv1 = { array: [], stride: 0 };
2342
2341
  const color = { array: [], stride: 0 };
2343
2342
 
2344
2343
  const skinIndex = { array: [], stride: 4 };
@@ -2473,7 +2472,7 @@ class ColladaLoader extends Loader {
2473
2472
  break;
2474
2473
 
2475
2474
  case 'TEXCOORD1':
2476
- buildGeometryData( primitive, sources[ id ], input.offset, uv2.array );
2475
+ buildGeometryData( primitive, sources[ id ], input.offset, uv1.array );
2477
2476
  uv.stride = sources[ id ].stride;
2478
2477
  break;
2479
2478
 
@@ -2502,8 +2501,8 @@ class ColladaLoader extends Loader {
2502
2501
  break;
2503
2502
 
2504
2503
  case 'TEXCOORD1':
2505
- buildGeometryData( primitive, sources[ input.id ], input.offset, uv2.array );
2506
- uv2.stride = sources[ input.id ].stride;
2504
+ buildGeometryData( primitive, sources[ input.id ], input.offset, uv1.array );
2505
+ uv1.stride = sources[ input.id ].stride;
2507
2506
  break;
2508
2507
 
2509
2508
  }
@@ -2518,7 +2517,7 @@ class ColladaLoader extends Loader {
2518
2517
  if ( normal.array.length > 0 ) geometry.setAttribute( 'normal', new Float32BufferAttribute( normal.array, normal.stride ) );
2519
2518
  if ( color.array.length > 0 ) geometry.setAttribute( 'color', new Float32BufferAttribute( color.array, color.stride ) );
2520
2519
  if ( uv.array.length > 0 ) geometry.setAttribute( 'uv', new Float32BufferAttribute( uv.array, uv.stride ) );
2521
- if ( uv2.array.length > 0 ) geometry.setAttribute( 'uv2', new Float32BufferAttribute( uv2.array, uv2.stride ) );
2520
+ if ( uv1.array.length > 0 ) geometry.setAttribute( 'uv1', new Float32BufferAttribute( uv1.array, uv1.stride ) );
2522
2521
 
2523
2522
  if ( skinIndex.array.length > 0 ) geometry.setAttribute( 'skinIndex', new Float32BufferAttribute( skinIndex.array, skinIndex.stride ) );
2524
2523
  if ( skinWeight.array.length > 0 ) geometry.setAttribute( 'skinWeight', new Float32BufferAttribute( skinWeight.array, skinWeight.stride ) );
@@ -4019,7 +4018,7 @@ class ColladaLoader extends Loader {
4019
4018
  // metadata
4020
4019
 
4021
4020
  const version = collada.getAttribute( 'version' );
4022
- console.log( 'THREE.ColladaLoader: File version', version );
4021
+ console.debug( 'THREE.ColladaLoader: File version', version );
4023
4022
 
4024
4023
  const asset = parseAsset( getElementsByTagName( collada, 'asset' )[ 0 ] );
4025
4024
  const textureLoader = new TextureLoader( this.manager );
@@ -4095,7 +4094,7 @@ class ColladaLoader extends Loader {
4095
4094
  if ( asset.upAxis === 'Z_UP' ) {
4096
4095
 
4097
4096
  console.warn( 'THREE.ColladaLoader: You are loading an asset with a Z-UP coordinate system. The loader just rotates the asset to transform it into Y-UP. The vertex data are not converted, see #24289.' );
4098
- scene.quaternion.setFromEuler( new Euler( - Math.PI / 2, 0, 0 ) );
4097
+ scene.rotation.set( - Math.PI / 2, 0, 0 );
4099
4098
 
4100
4099
  }
4101
4100
 
@@ -1,8 +1,11 @@
1
1
  import {
2
2
  BufferAttribute,
3
3
  BufferGeometry,
4
+ Color,
4
5
  FileLoader,
5
- Loader
6
+ Loader,
7
+ LinearSRGBColorSpace,
8
+ SRGBColorSpace
6
9
  } from 'three';
7
10
 
8
11
  const _taskCache = new WeakMap();
@@ -73,18 +76,25 @@ class DRACOLoader extends Loader {
73
76
 
74
77
  loader.load( url, ( buffer ) => {
75
78
 
76
- this.decodeDracoFile( buffer, onLoad ).catch( onError );
79
+ this.parse( buffer, onLoad, onError );
77
80
 
78
81
  }, onProgress, onError );
79
82
 
80
83
  }
81
84
 
82
- decodeDracoFile( buffer, callback, attributeIDs, attributeTypes ) {
85
+ parse( buffer, onLoad, onError ) {
86
+
87
+ this.decodeDracoFile( buffer, onLoad, null, null, SRGBColorSpace ).catch( onError );
88
+
89
+ }
90
+
91
+ decodeDracoFile( buffer, callback, attributeIDs, attributeTypes, vertexColorSpace = LinearSRGBColorSpace ) {
83
92
 
84
93
  const taskConfig = {
85
94
  attributeIDs: attributeIDs || this.defaultAttributeIDs,
86
95
  attributeTypes: attributeTypes || this.defaultAttributeTypes,
87
- useUniqueIDs: !! attributeIDs
96
+ useUniqueIDs: !! attributeIDs,
97
+ vertexColorSpace: vertexColorSpace,
88
98
  };
89
99
 
90
100
  return this.decodeGeometry( buffer, taskConfig ).then( callback );
@@ -188,12 +198,20 @@ class DRACOLoader extends Loader {
188
198
 
189
199
  for ( let i = 0; i < geometryData.attributes.length; i ++ ) {
190
200
 
191
- const attribute = geometryData.attributes[ i ];
192
- const name = attribute.name;
193
- const array = attribute.array;
194
- const itemSize = attribute.itemSize;
201
+ const result = geometryData.attributes[ i ];
202
+ const name = result.name;
203
+ const array = result.array;
204
+ const itemSize = result.itemSize;
205
+
206
+ const attribute = new BufferAttribute( array, itemSize );
207
+
208
+ if ( name === 'color' ) {
209
+
210
+ this._assignVertexColorSpace( attribute, result.vertexColorSpace );
195
211
 
196
- geometry.setAttribute( name, new BufferAttribute( array, itemSize ) );
212
+ }
213
+
214
+ geometry.setAttribute( name, attribute );
197
215
 
198
216
  }
199
217
 
@@ -201,6 +219,26 @@ class DRACOLoader extends Loader {
201
219
 
202
220
  }
203
221
 
222
+ _assignVertexColorSpace( attribute, inputColorSpace ) {
223
+
224
+ // While .drc files do not specify colorspace, the only 'official' tooling
225
+ // is PLY and OBJ converters, which use sRGB. We'll assume sRGB when a .drc
226
+ // file is passed into .load() or .parse(). GLTFLoader uses internal APIs
227
+ // to decode geometry, and vertex colors are already Linear-sRGB in there.
228
+
229
+ if ( inputColorSpace !== SRGBColorSpace ) return;
230
+
231
+ const _color = new Color();
232
+
233
+ for ( let i = 0, il = attribute.count; i < il; i ++ ) {
234
+
235
+ _color.fromBufferAttribute( attribute, i ).convertSRGBToLinear();
236
+ attribute.setXYZ( i, _color.r, _color.g, _color.b );
237
+
238
+ }
239
+
240
+ }
241
+
204
242
  _loadLibrary( url, responseType ) {
205
243
 
206
244
  const loader = new FileLoader( this.manager );
@@ -351,6 +389,12 @@ class DRACOLoader extends Loader {
351
389
 
352
390
  this.workerPool.length = 0;
353
391
 
392
+ if ( this.workerSourceURL !== '' ) {
393
+
394
+ URL.revokeObjectURL( this.workerSourceURL );
395
+
396
+ }
397
+
354
398
  return this;
355
399
 
356
400
  }
@@ -393,12 +437,10 @@ function DRACOWorker() {
393
437
 
394
438
  const draco = module.draco;
395
439
  const decoder = new draco.Decoder();
396
- const decoderBuffer = new draco.DecoderBuffer();
397
- decoderBuffer.Init( new Int8Array( buffer ), buffer.byteLength );
398
440
 
399
441
  try {
400
442
 
401
- const geometry = decodeGeometry( draco, decoder, decoderBuffer, taskConfig );
443
+ const geometry = decodeGeometry( draco, decoder, new Int8Array( buffer ), taskConfig );
402
444
 
403
445
  const buffers = geometry.attributes.map( ( attr ) => attr.array.buffer );
404
446
 
@@ -414,7 +456,6 @@ function DRACOWorker() {
414
456
 
415
457
  } finally {
416
458
 
417
- draco.destroy( decoderBuffer );
418
459
  draco.destroy( decoder );
419
460
 
420
461
  }
@@ -426,7 +467,7 @@ function DRACOWorker() {
426
467
 
427
468
  };
428
469
 
429
- function decodeGeometry( draco, decoder, decoderBuffer, taskConfig ) {
470
+ function decodeGeometry( draco, decoder, array, taskConfig ) {
430
471
 
431
472
  const attributeIDs = taskConfig.attributeIDs;
432
473
  const attributeTypes = taskConfig.attributeTypes;
@@ -434,17 +475,17 @@ function DRACOWorker() {
434
475
  let dracoGeometry;
435
476
  let decodingStatus;
436
477
 
437
- const geometryType = decoder.GetEncodedGeometryType( decoderBuffer );
478
+ const geometryType = decoder.GetEncodedGeometryType( array );
438
479
 
439
480
  if ( geometryType === draco.TRIANGULAR_MESH ) {
440
481
 
441
482
  dracoGeometry = new draco.Mesh();
442
- decodingStatus = decoder.DecodeBufferToMesh( decoderBuffer, dracoGeometry );
483
+ decodingStatus = decoder.DecodeArrayToMesh( array, array.byteLength, dracoGeometry );
443
484
 
444
485
  } else if ( geometryType === draco.POINT_CLOUD ) {
445
486
 
446
487
  dracoGeometry = new draco.PointCloud();
447
- decodingStatus = decoder.DecodeBufferToPointCloud( decoderBuffer, dracoGeometry );
488
+ decodingStatus = decoder.DecodeArrayToPointCloud( array, array.byteLength, dracoGeometry );
448
489
 
449
490
  } else {
450
491
 
@@ -487,7 +528,15 @@ function DRACOWorker() {
487
528
 
488
529
  }
489
530
 
490
- geometry.attributes.push( decodeAttribute( draco, decoder, dracoGeometry, attributeName, attributeType, attribute ) );
531
+ const attributeResult = decodeAttribute( draco, decoder, dracoGeometry, attributeName, attributeType, attribute );
532
+
533
+ if ( attributeName === 'color' ) {
534
+
535
+ attributeResult.vertexColorSpace = taskConfig.vertexColorSpace;
536
+
537
+ }
538
+
539
+ geometry.attributes.push( attributeResult );
491
540
 
492
541
  }
493
542