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
@@ -7,8 +7,9 @@ import {
7
7
  RGIntegerFormat,
8
8
  RedFormat,
9
9
  RedIntegerFormat,
10
- LinearEncoding,
11
- sRGBEncoding,
10
+ NoColorSpace,
11
+ LinearSRGBColorSpace,
12
+ SRGBColorSpace,
12
13
  DataTexture,
13
14
  REVISION,
14
15
  } from 'three';
@@ -22,6 +23,7 @@ import {
22
23
  KHR_DF_CHANNEL_RGBSDA_RED,
23
24
  KHR_DF_MODEL_RGBSDA,
24
25
  KHR_DF_PRIMARIES_BT709,
26
+ KHR_DF_PRIMARIES_UNSPECIFIED,
25
27
  KHR_DF_SAMPLE_DATATYPE_FLOAT,
26
28
  KHR_DF_SAMPLE_DATATYPE_LINEAR,
27
29
  KHR_DF_SAMPLE_DATATYPE_SIGNED,
@@ -45,40 +47,49 @@ const VK_FORMAT_MAP = {
45
47
 
46
48
  [ RGBAFormat ]: {
47
49
  [ FloatType ]: {
48
- [ LinearEncoding ]: VK_FORMAT_R32G32B32A32_SFLOAT,
50
+ [ NoColorSpace ]: VK_FORMAT_R32G32B32A32_SFLOAT,
51
+ [ LinearSRGBColorSpace ]: VK_FORMAT_R32G32B32A32_SFLOAT,
49
52
  },
50
53
  [ HalfFloatType ]: {
51
- [ LinearEncoding ]: VK_FORMAT_R16G16B16A16_SFLOAT,
54
+ [ NoColorSpace ]: VK_FORMAT_R16G16B16A16_SFLOAT,
55
+ [ LinearSRGBColorSpace ]: VK_FORMAT_R16G16B16A16_SFLOAT,
52
56
  },
53
57
  [ UnsignedByteType ]: {
54
- [ LinearEncoding ]: VK_FORMAT_R8G8B8A8_UNORM,
55
- [ sRGBEncoding ]: VK_FORMAT_R8G8B8A8_SRGB,
58
+ [ NoColorSpace ]: VK_FORMAT_R8G8B8A8_UNORM,
59
+ [ LinearSRGBColorSpace ]: VK_FORMAT_R8G8B8A8_UNORM,
60
+ [ SRGBColorSpace ]: VK_FORMAT_R8G8B8A8_SRGB,
56
61
  },
57
62
  },
58
63
 
59
64
  [ RGFormat ]: {
60
65
  [ FloatType ]: {
61
- [ LinearEncoding ]: VK_FORMAT_R32G32_SFLOAT,
66
+ [ NoColorSpace ]: VK_FORMAT_R32G32_SFLOAT,
67
+ [ LinearSRGBColorSpace ]: VK_FORMAT_R32G32_SFLOAT,
62
68
  },
63
69
  [ HalfFloatType ]: {
64
- [ LinearEncoding ]: VK_FORMAT_R16G16_SFLOAT,
70
+ [ NoColorSpace ]: VK_FORMAT_R16G16_SFLOAT,
71
+ [ LinearSRGBColorSpace ]: VK_FORMAT_R16G16_SFLOAT,
65
72
  },
66
73
  [ UnsignedByteType ]: {
67
- [ LinearEncoding ]: VK_FORMAT_R8G8_UNORM,
68
- [ sRGBEncoding ]: VK_FORMAT_R8G8_SRGB,
74
+ [ NoColorSpace ]: VK_FORMAT_R8G8_UNORM,
75
+ [ LinearSRGBColorSpace ]: VK_FORMAT_R8G8_UNORM,
76
+ [ SRGBColorSpace ]: VK_FORMAT_R8G8_SRGB,
69
77
  },
70
78
  },
71
79
 
72
80
  [ RedFormat ]: {
73
81
  [ FloatType ]: {
74
- [ LinearEncoding ]: VK_FORMAT_R32_SFLOAT,
82
+ [ NoColorSpace ]: VK_FORMAT_R32_SFLOAT,
83
+ [ LinearSRGBColorSpace ]: VK_FORMAT_R32_SFLOAT,
75
84
  },
76
85
  [ HalfFloatType ]: {
77
- [ LinearEncoding ]: VK_FORMAT_R16_SFLOAT,
86
+ [ NoColorSpace ]: VK_FORMAT_R16_SFLOAT,
87
+ [ LinearSRGBColorSpace ]: VK_FORMAT_R16_SFLOAT,
78
88
  },
79
89
  [ UnsignedByteType ]: {
80
- [ LinearEncoding ]: VK_FORMAT_R8_SRGB,
81
- [ sRGBEncoding ]: VK_FORMAT_R8_UNORM,
90
+ [ NoColorSpace ]: VK_FORMAT_R8_UNORM,
91
+ [ LinearSRGBColorSpace ]: VK_FORMAT_R8_UNORM,
92
+ [ SRGBColorSpace ]: VK_FORMAT_R8_SRGB,
82
93
  },
83
94
  },
84
95
 
@@ -96,7 +107,7 @@ const KHR_DF_CHANNEL_MAP = {
96
107
  const ERROR_INPUT = 'THREE.KTX2Exporter: Supported inputs are DataTexture, Data3DTexture, or WebGLRenderer and WebGLRenderTarget.';
97
108
  const ERROR_FORMAT = 'THREE.KTX2Exporter: Supported formats are RGBAFormat, RGFormat, or RedFormat.';
98
109
  const ERROR_TYPE = 'THREE.KTX2Exporter: Supported types are FloatType, HalfFloatType, or UnsignedByteType."';
99
- const ERROR_ENCODING = 'THREE.KTX2Exporter: Supported encodings are sRGB (UnsignedByteType only) or Linear.';
110
+ const ERROR_COLOR_SPACE = 'THREE.KTX2Exporter: Supported color spaces are SRGBColorSpace (UnsignedByteType only), LinearSRGBColorSpace, or NoColorSpace.';
100
111
 
101
112
  export class KTX2Exporter {
102
113
 
@@ -130,9 +141,9 @@ export class KTX2Exporter {
130
141
 
131
142
  }
132
143
 
133
- if ( VK_FORMAT_MAP[ texture.format ][ texture.type ][ texture.encoding ] === undefined ) {
144
+ if ( VK_FORMAT_MAP[ texture.format ][ texture.type ][ texture.colorSpace ] === undefined ) {
134
145
 
135
- throw new Error( ERROR_ENCODING );
146
+ throw new Error( ERROR_COLOR_SPACE );
136
147
 
137
148
  }
138
149
 
@@ -142,7 +153,7 @@ export class KTX2Exporter {
142
153
  const channelCount = getChannelCount( texture );
143
154
  const container = new KTX2Container();
144
155
 
145
- container.vkFormat = VK_FORMAT_MAP[ texture.format ][ texture.type ][ texture.encoding ];
156
+ container.vkFormat = VK_FORMAT_MAP[ texture.format ][ texture.type ][ texture.colorSpace ];
146
157
  container.typeSize = array.BYTES_PER_ELEMENT;
147
158
  container.pixelWidth = texture.image.width;
148
159
  container.pixelHeight = texture.image.height;
@@ -157,11 +168,11 @@ export class KTX2Exporter {
157
168
 
158
169
  const basicDesc = container.dataFormatDescriptor[ 0 ];
159
170
 
160
- // TODO: After `texture.encoding` is replaced, distinguish between
161
- // non-color data (unspecified model and primaries) and sRGB or Linear-sRGB colors.
162
171
  basicDesc.colorModel = KHR_DF_MODEL_RGBSDA;
163
- basicDesc.colorPrimaries = KHR_DF_PRIMARIES_BT709;
164
- basicDesc.transferFunction = texture.encoding === sRGBEncoding
172
+ basicDesc.colorPrimaries = texture.colorSpace === NoColorSpace
173
+ ? KHR_DF_PRIMARIES_UNSPECIFIED
174
+ : KHR_DF_PRIMARIES_BT709;
175
+ basicDesc.transferFunction = texture.colorSpace === SRGBColorSpace
165
176
  ? KHR_DF_TRANSFER_SRGB
166
177
  : KHR_DF_TRANSFER_LINEAR;
167
178
 
@@ -177,7 +188,7 @@ export class KTX2Exporter {
177
188
 
178
189
  let channelType = KHR_DF_CHANNEL_MAP[ i ];
179
190
 
180
- if ( texture.encoding === LinearEncoding ) {
191
+ if ( texture.colorSpace === LinearSRGBColorSpace || texture.colorSpace === NoColorSpace ) {
181
192
 
182
193
  channelType |= KHR_DF_SAMPLE_DATATYPE_LINEAR;
183
194
 
@@ -157,7 +157,7 @@ function unicodeToShiftjis( str ) {
157
157
 
158
158
  if ( u2sTable === undefined ) {
159
159
 
160
- const encoder = new MMDParser.CharsetEncoder(); // eslint-disable-line no-undef
160
+ const encoder = new MMDParser.CharsetEncoder();
161
161
  const table = encoder.s2uTable;
162
162
  u2sTable = {};
163
163
 
@@ -19,7 +19,7 @@ import {
19
19
 
20
20
  class PLYExporter {
21
21
 
22
- parse( object, onDone, options ) {
22
+ parse( object, onDone, options = {} ) {
23
23
 
24
24
  // Iterate over the valid meshes in the object
25
25
  function traverseMeshes( cb ) {
@@ -97,8 +97,15 @@ class PLYExporter {
97
97
  const geometry = mesh.geometry;
98
98
 
99
99
  const vertices = geometry.getAttribute( 'position' );
100
+ const normals = geometry.getAttribute( 'normal' );
101
+ const colors = geometry.getAttribute( 'color' );
102
+
100
103
  vertexCount += vertices.count;
101
104
 
105
+ if ( normals !== undefined ) includeNormals = true;
106
+
107
+ if ( colors !== undefined ) includeColors = true;
108
+
102
109
  includeIndices = false;
103
110
 
104
111
  }
@@ -13,7 +13,11 @@ class STLExporter {
13
13
 
14
14
  parse( scene, options = {} ) {
15
15
 
16
- const binary = options.binary !== undefined ? options.binary : false;
16
+ options = Object.assign( {
17
+ binary: false
18
+ }, options );
19
+
20
+ const binary = options.binary;
17
21
 
18
22
  //
19
23
 
@@ -120,9 +124,9 @@ class STLExporter {
120
124
 
121
125
  if ( object.isSkinnedMesh === true ) {
122
126
 
123
- object.boneTransform( a, vA );
124
- object.boneTransform( b, vB );
125
- object.boneTransform( c, vC );
127
+ object.applyBoneTransform( a, vA );
128
+ object.applyBoneTransform( b, vB );
129
+ object.applyBoneTransform( c, vC );
126
130
 
127
131
  }
128
132
 
@@ -6,7 +6,14 @@ import * as fflate from '../libs/fflate.module.js';
6
6
 
7
7
  class USDZExporter {
8
8
 
9
- async parse( scene, options = { ar: { anchoring: { type: 'plane' }, planeAnchoring: { alignment: 'horizontal' } } } ) {
9
+ async parse( scene, options = {} ) {
10
+
11
+ options = Object.assign( {
12
+ ar: {
13
+ anchoring: { type: 'plane' },
14
+ planeAnchoring: { alignment: 'horizontal' }
15
+ }
16
+ }, options );
10
17
 
11
18
  const files = {};
12
19
  const modelFileName = 'model.usda';
@@ -75,7 +82,7 @@ class USDZExporter {
75
82
  const color = id.split( '_' )[ 1 ];
76
83
  const isRGBA = texture.format === 1023;
77
84
 
78
- const canvas = imageToCanvas( texture.image, color );
85
+ const canvas = imageToCanvas( texture.image, color, texture.flipY );
79
86
  const blob = await new Promise( resolve => canvas.toBlob( resolve, isRGBA ? 'image/png' : 'image/jpeg', 1 ) );
80
87
 
81
88
  files[ `textures/Texture_${ id }.${ isRGBA ? 'png' : 'jpg' }` ] = new Uint8Array( await blob.arrayBuffer() );
@@ -115,7 +122,7 @@ class USDZExporter {
115
122
 
116
123
  }
117
124
 
118
- function imageToCanvas( image, color ) {
125
+ function imageToCanvas( image, color, flipY ) {
119
126
 
120
127
  if ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||
121
128
  ( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||
@@ -129,6 +136,14 @@ function imageToCanvas( image, color ) {
129
136
  canvas.height = image.height * Math.min( 1, scale );
130
137
 
131
138
  const context = canvas.getContext( '2d' );
139
+
140
+ if ( flipY === true ) {
141
+
142
+ context.translate( 0, canvas.height );
143
+ context.scale( 1, - 1 );
144
+
145
+ }
146
+
132
147
  context.drawImage( image, 0, 0, canvas.width, canvas.height );
133
148
 
134
149
  if ( color !== undefined ) {
@@ -156,6 +171,10 @@ function imageToCanvas( image, color ) {
156
171
 
157
172
  return canvas;
158
173
 
174
+ } else {
175
+
176
+ throw new Error( 'THREE.USDZExporter: No valid image data found. Unable to process texture.' );
177
+
159
178
  }
160
179
 
161
180
  }
@@ -15,12 +15,6 @@ class ConvexGeometry extends BufferGeometry {
15
15
  const vertices = [];
16
16
  const normals = [];
17
17
 
18
- if ( ConvexHull === undefined ) {
19
-
20
- console.error( 'THREE.ConvexGeometry: ConvexGeometry relies on ConvexHull' );
21
-
22
- }
23
-
24
18
  const convexHull = new ConvexHull().setFromPoints( points );
25
19
 
26
20
  // generate vertices and normals
@@ -124,6 +124,16 @@ class ParametricGeometry extends BufferGeometry {
124
124
 
125
125
  }
126
126
 
127
+ copy( source ) {
128
+
129
+ super.copy( source );
130
+
131
+ this.parameters = Object.assign( {}, source.parameters );
132
+
133
+ return this;
134
+
135
+ }
136
+
127
137
  }
128
138
 
129
139
  export { ParametricGeometry };
@@ -67,6 +67,7 @@ class OctreeHelper extends LineSegments {
67
67
  this.material.dispose();
68
68
 
69
69
  }
70
+
70
71
  }
71
72
 
72
73
  export { OctreeHelper };
@@ -1,35 +1,49 @@
1
- import * as THREE from 'three';
2
-
3
- const vpTemp = new THREE.Vector4();
4
-
5
- class ViewHelper extends THREE.Object3D {
6
-
7
- constructor( editorCamera, dom ) {
1
+ import {
2
+ BoxGeometry,
3
+ CanvasTexture,
4
+ Color,
5
+ Euler,
6
+ Mesh,
7
+ MeshBasicMaterial,
8
+ Object3D,
9
+ OrthographicCamera,
10
+ Quaternion,
11
+ Raycaster,
12
+ Sprite,
13
+ SpriteMaterial,
14
+ Vector2,
15
+ Vector3,
16
+ Vector4
17
+ } from 'three';
18
+
19
+ class ViewHelper extends Object3D {
20
+
21
+ constructor( camera, domElement ) {
8
22
 
9
23
  super();
10
24
 
11
25
  this.isViewHelper = true;
12
26
 
13
27
  this.animating = false;
14
- this.controls = null;
28
+ this.center = new Vector3();
15
29
 
16
- const color1 = new THREE.Color( '#ff3653' );
17
- const color2 = new THREE.Color( '#8adb00' );
18
- const color3 = new THREE.Color( '#2c8fff' );
30
+ const color1 = new Color( '#ff3653' );
31
+ const color2 = new Color( '#8adb00' );
32
+ const color3 = new Color( '#2c8fff' );
19
33
 
20
34
  const interactiveObjects = [];
21
- const raycaster = new THREE.Raycaster();
22
- const mouse = new THREE.Vector2();
23
- const dummy = new THREE.Object3D();
35
+ const raycaster = new Raycaster();
36
+ const mouse = new Vector2();
37
+ const dummy = new Object3D();
24
38
 
25
- const camera = new THREE.OrthographicCamera( - 2, 2, 2, - 2, 0, 4 );
26
- camera.position.set( 0, 0, 2 );
39
+ const orthoCamera = new OrthographicCamera( - 2, 2, 2, - 2, 0, 4 );
40
+ orthoCamera.position.set( 0, 0, 2 );
27
41
 
28
- const geometry = new THREE.BoxGeometry( 0.8, 0.05, 0.05 ).translate( 0.4, 0, 0 );
42
+ const geometry = new BoxGeometry( 0.8, 0.05, 0.05 ).translate( 0.4, 0, 0 );
29
43
 
30
- const xAxis = new THREE.Mesh( geometry, getAxisMaterial( color1 ) );
31
- const yAxis = new THREE.Mesh( geometry, getAxisMaterial( color2 ) );
32
- const zAxis = new THREE.Mesh( geometry, getAxisMaterial( color3 ) );
44
+ const xAxis = new Mesh( geometry, getAxisMaterial( color1 ) );
45
+ const yAxis = new Mesh( geometry, getAxisMaterial( color2 ) );
46
+ const zAxis = new Mesh( geometry, getAxisMaterial( color3 ) );
33
47
 
34
48
  yAxis.rotation.z = Math.PI / 2;
35
49
  zAxis.rotation.y = - Math.PI / 2;
@@ -38,17 +52,17 @@ class ViewHelper extends THREE.Object3D {
38
52
  this.add( zAxis );
39
53
  this.add( yAxis );
40
54
 
41
- const posXAxisHelper = new THREE.Sprite( getSpriteMaterial( color1, 'X' ) );
55
+ const posXAxisHelper = new Sprite( getSpriteMaterial( color1, 'X' ) );
42
56
  posXAxisHelper.userData.type = 'posX';
43
- const posYAxisHelper = new THREE.Sprite( getSpriteMaterial( color2, 'Y' ) );
57
+ const posYAxisHelper = new Sprite( getSpriteMaterial( color2, 'Y' ) );
44
58
  posYAxisHelper.userData.type = 'posY';
45
- const posZAxisHelper = new THREE.Sprite( getSpriteMaterial( color3, 'Z' ) );
59
+ const posZAxisHelper = new Sprite( getSpriteMaterial( color3, 'Z' ) );
46
60
  posZAxisHelper.userData.type = 'posZ';
47
- const negXAxisHelper = new THREE.Sprite( getSpriteMaterial( color1 ) );
61
+ const negXAxisHelper = new Sprite( getSpriteMaterial( color1 ) );
48
62
  negXAxisHelper.userData.type = 'negX';
49
- const negYAxisHelper = new THREE.Sprite( getSpriteMaterial( color2 ) );
63
+ const negYAxisHelper = new Sprite( getSpriteMaterial( color2 ) );
50
64
  negYAxisHelper.userData.type = 'negY';
51
- const negZAxisHelper = new THREE.Sprite( getSpriteMaterial( color3 ) );
65
+ const negZAxisHelper = new Sprite( getSpriteMaterial( color3 ) );
52
66
  negZAxisHelper.userData.type = 'negZ';
53
67
 
54
68
  posXAxisHelper.position.x = 1;
@@ -75,17 +89,17 @@ class ViewHelper extends THREE.Object3D {
75
89
  interactiveObjects.push( negYAxisHelper );
76
90
  interactiveObjects.push( negZAxisHelper );
77
91
 
78
- const point = new THREE.Vector3();
92
+ const point = new Vector3();
79
93
  const dim = 128;
80
94
  const turnRate = 2 * Math.PI; // turn rate in angles per second
81
95
 
82
96
  this.render = function ( renderer ) {
83
97
 
84
- this.quaternion.copy( editorCamera.quaternion ).invert();
98
+ this.quaternion.copy( camera.quaternion ).invert();
85
99
  this.updateMatrixWorld();
86
100
 
87
101
  point.set( 0, 0, 1 );
88
- point.applyQuaternion( editorCamera.quaternion );
102
+ point.applyQuaternion( camera.quaternion );
89
103
 
90
104
  if ( point.x >= 0 ) {
91
105
 
@@ -125,37 +139,38 @@ class ViewHelper extends THREE.Object3D {
125
139
 
126
140
  //
127
141
 
128
- const x = dom.offsetWidth - dim;
142
+ const x = domElement.offsetWidth - dim;
129
143
 
130
144
  renderer.clearDepth();
131
145
 
132
- renderer.getViewport( vpTemp );
146
+ renderer.getViewport( viewport );
133
147
  renderer.setViewport( x, 0, dim, dim );
134
148
 
135
- renderer.render( this, camera );
149
+ renderer.render( this, orthoCamera );
136
150
 
137
- renderer.setViewport( vpTemp.x, vpTemp.y, vpTemp.z, vpTemp.w );
151
+ renderer.setViewport( viewport.x, viewport.y, viewport.z, viewport.w );
138
152
 
139
153
  };
140
154
 
141
- const targetPosition = new THREE.Vector3();
142
- const targetQuaternion = new THREE.Quaternion();
155
+ const targetPosition = new Vector3();
156
+ const targetQuaternion = new Quaternion();
143
157
 
144
- const q1 = new THREE.Quaternion();
145
- const q2 = new THREE.Quaternion();
158
+ const q1 = new Quaternion();
159
+ const q2 = new Quaternion();
160
+ const viewport = new Vector4();
146
161
  let radius = 0;
147
162
 
148
163
  this.handleClick = function ( event ) {
149
164
 
150
165
  if ( this.animating === true ) return false;
151
166
 
152
- const rect = dom.getBoundingClientRect();
153
- const offsetX = rect.left + ( dom.offsetWidth - dim );
154
- const offsetY = rect.top + ( dom.offsetHeight - dim );
167
+ const rect = domElement.getBoundingClientRect();
168
+ const offsetX = rect.left + ( domElement.offsetWidth - dim );
169
+ const offsetY = rect.top + ( domElement.offsetHeight - dim );
155
170
  mouse.x = ( ( event.clientX - offsetX ) / ( rect.width - offsetX ) ) * 2 - 1;
156
171
  mouse.y = - ( ( event.clientY - offsetY ) / ( rect.bottom - offsetY ) ) * 2 + 1;
157
172
 
158
- raycaster.setFromCamera( mouse, camera );
173
+ raycaster.setFromCamera( mouse, orthoCamera );
159
174
 
160
175
  const intersects = raycaster.intersectObjects( interactiveObjects );
161
176
 
@@ -164,7 +179,7 @@ class ViewHelper extends THREE.Object3D {
164
179
  const intersection = intersects[ 0 ];
165
180
  const object = intersection.object;
166
181
 
167
- prepareAnimationData( object, this.controls.center );
182
+ prepareAnimationData( object, this.center );
168
183
 
169
184
  this.animating = true;
170
185
 
@@ -181,16 +196,15 @@ class ViewHelper extends THREE.Object3D {
181
196
  this.update = function ( delta ) {
182
197
 
183
198
  const step = delta * turnRate;
184
- const focusPoint = this.controls.center;
185
199
 
186
200
  // animate position by doing a slerp and then scaling the position on the unit sphere
187
201
 
188
202
  q1.rotateTowards( q2, step );
189
- editorCamera.position.set( 0, 0, 1 ).applyQuaternion( q1 ).multiplyScalar( radius ).add( focusPoint );
203
+ camera.position.set( 0, 0, 1 ).applyQuaternion( q1 ).multiplyScalar( radius ).add( this.center );
190
204
 
191
205
  // animate orientation
192
206
 
193
- editorCamera.quaternion.rotateTowards( targetQuaternion, step );
207
+ camera.quaternion.rotateTowards( targetQuaternion, step );
194
208
 
195
209
  if ( q1.angleTo( q2 ) === 0 ) {
196
210
 
@@ -230,32 +244,32 @@ class ViewHelper extends THREE.Object3D {
230
244
 
231
245
  case 'posX':
232
246
  targetPosition.set( 1, 0, 0 );
233
- targetQuaternion.setFromEuler( new THREE.Euler( 0, Math.PI * 0.5, 0 ) );
247
+ targetQuaternion.setFromEuler( new Euler( 0, Math.PI * 0.5, 0 ) );
234
248
  break;
235
249
 
236
250
  case 'posY':
237
251
  targetPosition.set( 0, 1, 0 );
238
- targetQuaternion.setFromEuler( new THREE.Euler( - Math.PI * 0.5, 0, 0 ) );
252
+ targetQuaternion.setFromEuler( new Euler( - Math.PI * 0.5, 0, 0 ) );
239
253
  break;
240
254
 
241
255
  case 'posZ':
242
256
  targetPosition.set( 0, 0, 1 );
243
- targetQuaternion.setFromEuler( new THREE.Euler() );
257
+ targetQuaternion.setFromEuler( new Euler() );
244
258
  break;
245
259
 
246
260
  case 'negX':
247
261
  targetPosition.set( - 1, 0, 0 );
248
- targetQuaternion.setFromEuler( new THREE.Euler( 0, - Math.PI * 0.5, 0 ) );
262
+ targetQuaternion.setFromEuler( new Euler( 0, - Math.PI * 0.5, 0 ) );
249
263
  break;
250
264
 
251
265
  case 'negY':
252
266
  targetPosition.set( 0, - 1, 0 );
253
- targetQuaternion.setFromEuler( new THREE.Euler( Math.PI * 0.5, 0, 0 ) );
267
+ targetQuaternion.setFromEuler( new Euler( Math.PI * 0.5, 0, 0 ) );
254
268
  break;
255
269
 
256
270
  case 'negZ':
257
271
  targetPosition.set( 0, 0, - 1 );
258
- targetQuaternion.setFromEuler( new THREE.Euler( 0, Math.PI, 0 ) );
272
+ targetQuaternion.setFromEuler( new Euler( 0, Math.PI, 0 ) );
259
273
  break;
260
274
 
261
275
  default:
@@ -265,12 +279,12 @@ class ViewHelper extends THREE.Object3D {
265
279
 
266
280
  //
267
281
 
268
- radius = editorCamera.position.distanceTo( focusPoint );
282
+ radius = camera.position.distanceTo( focusPoint );
269
283
  targetPosition.multiplyScalar( radius ).add( focusPoint );
270
284
 
271
285
  dummy.position.copy( focusPoint );
272
286
 
273
- dummy.lookAt( editorCamera.position );
287
+ dummy.lookAt( camera.position );
274
288
  q1.copy( dummy.quaternion );
275
289
 
276
290
  dummy.lookAt( targetPosition );
@@ -280,7 +294,7 @@ class ViewHelper extends THREE.Object3D {
280
294
 
281
295
  function getAxisMaterial( color ) {
282
296
 
283
- return new THREE.MeshBasicMaterial( { color: color, toneMapped: false } );
297
+ return new MeshBasicMaterial( { color: color, toneMapped: false } );
284
298
 
285
299
  }
286
300
 
@@ -306,9 +320,9 @@ class ViewHelper extends THREE.Object3D {
306
320
 
307
321
  }
308
322
 
309
- const texture = new THREE.CanvasTexture( canvas );
323
+ const texture = new CanvasTexture( canvas );
310
324
 
311
- return new THREE.SpriteMaterial( { map: texture, toneMapped: false } );
325
+ return new SpriteMaterial( { map: texture, toneMapped: false } );
312
326
 
313
327
  }
314
328
 
@@ -4,7 +4,7 @@ import {
4
4
  Mesh,
5
5
  MeshBasicMaterial,
6
6
  PlaneGeometry,
7
- sRGBEncoding,
7
+ SRGBColorSpace,
8
8
  Color
9
9
  } from 'three';
10
10
 
@@ -36,7 +36,7 @@ class HTMLMesh extends Mesh {
36
36
  material.dispose();
37
37
 
38
38
  material.map.dispose();
39
-
39
+
40
40
  canvases.delete( dom );
41
41
 
42
42
  this.removeEventListener( 'mousedown', onEvent );
@@ -59,7 +59,7 @@ class HTMLTexture extends CanvasTexture {
59
59
  this.dom = dom;
60
60
 
61
61
  this.anisotropy = 16;
62
- this.encoding = sRGBEncoding;
62
+ this.colorSpace = SRGBColorSpace;
63
63
  this.minFilter = LinearFilter;
64
64
  this.magFilter = LinearFilter;
65
65
 
@@ -273,6 +273,19 @@ function html2canvas( element ) {
273
273
  context.drawImage( element, 0, 0 );
274
274
  context.restore();
275
275
 
276
+ } else if ( element instanceof HTMLImageElement ) {
277
+
278
+ if ( element.style.display === 'none' ) return;
279
+
280
+ const rect = element.getBoundingClientRect();
281
+
282
+ x = rect.left - offset.left - 0.5;
283
+ y = rect.top - offset.top - 0.5;
284
+ width = rect.width;
285
+ height = rect.height;
286
+
287
+ context.drawImage( element, x, y, width, height );
288
+
276
289
  } else {
277
290
 
278
291
  if ( element.style.display === 'none' ) return;
@@ -28,7 +28,7 @@ class InteractiveGroup extends Group {
28
28
  event.stopPropagation();
29
29
 
30
30
  const rect = renderer.domElement.getBoundingClientRect();
31
-
31
+
32
32
  _pointer.x = ( event.clientX - rect.left ) / rect.width * 2 - 1;
33
33
  _pointer.y = - ( event.clientY - rect.top ) / rect.height * 2 + 1;
34
34
 
@@ -20,15 +20,15 @@ The folder contains two files required for transcoding `.basis` or `.ktx2` textu
20
20
  * `basis_transcoder.js` — JavaScript wrapper for the WebAssembly transcoder.
21
21
  * `basis_transcoder.wasm` — WebAssembly transcoder.
22
22
 
23
- Both are dependencies of `THREE.KTX2Loader` and `THREE.BasisTextureLoader`:
23
+ Both are dependencies of `KTX2Loader`:
24
24
 
25
25
  ```js
26
- var ktx2Loader = new THREE.KTX2Loader();
27
- ktx2Loader.setTranscoderPath( 'examples/js/libs/basis/' );
26
+ const ktx2Loader = new KTX2Loader();
27
+ ktx2Loader.setTranscoderPath( 'examples/jsm/libs/basis/' );
28
28
  ktx2Loader.detectSupport( renderer );
29
29
  ktx2Loader.load( 'diffuse.ktx2', function ( texture ) {
30
30
 
31
- var material = new THREE.MeshStandardMaterial( { map: texture } );
31
+ const material = new THREE.MeshStandardMaterial( { map: texture } );
32
32
 
33
33
  }, function () {
34
34