@needle-tools/three 0.145.2 → 0.146.1

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 (394) hide show
  1. package/README.md +1 -1
  2. package/build/three.cjs +3559 -6924
  3. package/build/three.js +3559 -6924
  4. package/build/three.min.js +1 -2
  5. package/build/three.module.js +732 -339
  6. package/examples/js/animation/AnimationClipCreator.js +0 -8
  7. package/examples/js/animation/CCDIKSolver.js +49 -66
  8. package/examples/js/animation/MMDAnimationHelper.js +66 -137
  9. package/examples/js/animation/MMDPhysics.js +70 -134
  10. package/examples/js/cameras/CinematicCamera.js +33 -22
  11. package/examples/js/controls/ArcballControls.js +138 -405
  12. package/examples/js/controls/DragControls.js +8 -33
  13. package/examples/js/controls/FirstPersonControls.js +32 -54
  14. package/examples/js/controls/FlyControls.js +29 -55
  15. package/examples/js/controls/OrbitControls.js +85 -95
  16. package/examples/js/controls/PointerLockControls.js +5 -14
  17. package/examples/js/controls/TrackballControls.js +33 -86
  18. package/examples/js/controls/TransformControls.js +84 -169
  19. package/examples/js/csm/CSM.js +4 -39
  20. package/examples/js/csm/CSMFrustum.js +3 -9
  21. package/examples/js/csm/CSMHelper.js +24 -4
  22. package/examples/js/csm/CSMShader.js +2 -6
  23. package/examples/js/curves/CurveExtras.js +27 -27
  24. package/examples/js/curves/NURBSCurve.js +4 -16
  25. package/examples/js/curves/NURBSSurface.js +3 -9
  26. package/examples/js/curves/NURBSUtils.js +8 -45
  27. package/examples/js/effects/AnaglyphEffect.js +4 -18
  28. package/examples/js/effects/AsciiEffect.js +32 -31
  29. package/examples/js/effects/OutlineEffect.js +26 -30
  30. package/examples/js/effects/ParallaxBarrierEffect.js +0 -13
  31. package/examples/js/effects/PeppersGhostEffect.js +12 -39
  32. package/examples/js/effects/StereoEffect.js +0 -4
  33. package/examples/js/environments/RoomEnvironment.js +12 -10
  34. package/examples/js/exporters/ColladaExporter.js +48 -65
  35. package/examples/js/exporters/DRACOExporter.js +22 -22
  36. package/examples/js/exporters/EXRExporter.js +15 -18
  37. package/examples/js/exporters/GLTFExporter.js +143 -261
  38. package/examples/js/exporters/MMDExporter.js +5 -12
  39. package/examples/js/exporters/OBJExporter.js +42 -33
  40. package/examples/js/exporters/PLYExporter.js +38 -33
  41. package/examples/js/exporters/STLExporter.js +5 -7
  42. package/examples/js/exporters/USDZExporter.js +110 -25
  43. package/examples/js/geometries/BoxLineGeometry.js +0 -1
  44. package/examples/js/geometries/ConvexGeometry.js +11 -6
  45. package/examples/js/geometries/DecalGeometry.js +53 -20
  46. package/examples/js/geometries/LightningStrike.js +54 -67
  47. package/examples/js/geometries/ParametricGeometries.js +8 -7
  48. package/examples/js/geometries/ParametricGeometry.js +25 -12
  49. package/examples/js/geometries/RoundedBoxGeometry.js +21 -19
  50. package/examples/js/geometries/TeapotGeometry.js +54 -50
  51. package/examples/js/geometries/TextGeometry.js +6 -4
  52. package/examples/js/helpers/LightProbeHelper.js +1 -2
  53. package/examples/js/helpers/OctreeHelper.js +22 -20
  54. package/examples/js/helpers/PositionalAudioHelper.js +8 -6
  55. package/examples/js/helpers/RectAreaLightHelper.js +6 -7
  56. package/examples/js/helpers/VertexNormalsHelper.js +15 -13
  57. package/examples/js/helpers/VertexTangentsHelper.js +15 -9
  58. package/examples/js/helpers/ViewHelper.js +31 -16
  59. package/examples/js/interactive/HTMLMesh.js +22 -33
  60. package/examples/js/interactive/InteractiveGroup.js +6 -12
  61. package/examples/js/interactive/SelectionBox.js +3 -70
  62. package/examples/js/interactive/SelectionHelper.js +0 -8
  63. package/examples/js/lights/LightProbeGenerator.js +32 -39
  64. package/examples/js/lights/RectAreaLightUniformsLib.js +5 -1
  65. package/examples/js/lines/LineGeometry.js +3 -5
  66. package/examples/js/lines/LineMaterial.js +4 -11
  67. package/examples/js/lines/LineSegments2.js +38 -89
  68. package/examples/js/lines/LineSegmentsGeometry.js +7 -28
  69. package/examples/js/lines/Wireframe.js +2 -7
  70. package/examples/js/lines/WireframeGeometry2.js +3 -1
  71. package/examples/js/loaders/3DMLoader.js +58 -155
  72. package/examples/js/loaders/3MFLoader.js +72 -106
  73. package/examples/js/loaders/AMFLoader.js +0 -25
  74. package/examples/js/loaders/BVHLoader.js +44 -43
  75. package/examples/js/loaders/BasisTextureLoader.js +16 -46
  76. package/examples/js/loaders/ColladaLoader.js +201 -359
  77. package/examples/js/loaders/DDSLoader.js +24 -25
  78. package/examples/js/loaders/DRACOLoader.js +29 -66
  79. package/examples/js/loaders/EXRLoader.js +67 -164
  80. package/examples/js/loaders/FBXLoader.js +286 -441
  81. package/examples/js/loaders/FontLoader.js +6 -15
  82. package/examples/js/loaders/GCodeLoader.js +15 -16
  83. package/examples/js/loaders/GLTFLoader.js +354 -405
  84. package/examples/js/loaders/HDRCubeTextureLoader.js +0 -6
  85. package/examples/js/loaders/KMZLoader.js +3 -7
  86. package/examples/js/loaders/KTXLoader.js +12 -30
  87. package/examples/js/loaders/LDrawLoader.js +178 -289
  88. package/examples/js/loaders/LUT3dlLoader.js +7 -11
  89. package/examples/js/loaders/LUTCubeLoader.js +0 -8
  90. package/examples/js/loaders/LWOLoader.js +59 -124
  91. package/examples/js/loaders/LogLuvLoader.js +27 -77
  92. package/examples/js/loaders/LottieLoader.js +4 -4
  93. package/examples/js/loaders/MD2Loader.js +26 -27
  94. package/examples/js/loaders/MDDLoader.js +6 -10
  95. package/examples/js/loaders/MMDLoader.js +180 -189
  96. package/examples/js/loaders/MTLLoader.js +18 -47
  97. package/examples/js/loaders/MaterialXLoader.js +392 -0
  98. package/examples/js/loaders/NRRDLoader.js +44 -84
  99. package/examples/js/loaders/OBJLoader.js +50 -65
  100. package/examples/js/loaders/PCDLoader.js +34 -29
  101. package/examples/js/loaders/PDBLoader.js +17 -13
  102. package/examples/js/loaders/PLYLoader.js +9 -39
  103. package/examples/js/loaders/PRWMLoader.js +11 -22
  104. package/examples/js/loaders/PVRLoader.js +7 -16
  105. package/examples/js/loaders/RGBELoader.js +36 -61
  106. package/examples/js/loaders/RGBMLoader.js +26 -87
  107. package/examples/js/loaders/STLLoader.js +20 -27
  108. package/examples/js/loaders/SVGLoader.js +361 -233
  109. package/examples/js/loaders/TDSLoader.js +81 -118
  110. package/examples/js/loaders/TGALoader.js +39 -41
  111. package/examples/js/loaders/TIFFLoader.js +0 -1
  112. package/examples/js/loaders/TTFLoader.js +0 -8
  113. package/examples/js/loaders/TiltLoader.js +14 -15
  114. package/examples/js/loaders/VOXLoader.js +8 -16
  115. package/examples/js/loaders/VRMLLoader.js +243 -340
  116. package/examples/js/loaders/VTKLoader.js +101 -118
  117. package/examples/js/loaders/XYZLoader.js +2 -4
  118. package/examples/js/loaders/lwo/IFFParser.js +55 -136
  119. package/examples/js/loaders/lwo/LWO2Parser.js +32 -83
  120. package/examples/js/loaders/lwo/LWO3Parser.js +31 -73
  121. package/examples/js/materials/MeshGouraudMaterial.js +15 -13
  122. package/examples/js/math/Capsule.js +0 -17
  123. package/examples/js/math/ColorConverter.js +3 -3
  124. package/examples/js/math/ConvexHull.js +183 -139
  125. package/examples/js/math/ImprovedNoise.js +1 -1
  126. package/examples/js/math/Lut.js +8 -15
  127. package/examples/js/math/MeshSurfaceSampler.js +6 -28
  128. package/examples/js/math/OBB.js +90 -49
  129. package/examples/js/math/Octree.js +2 -57
  130. package/examples/js/math/SimplexNoise.js +74 -88
  131. package/examples/js/misc/ConvexObjectBreaker.js +37 -48
  132. package/examples/js/misc/GPUComputationRenderer.js +14 -18
  133. package/examples/js/misc/Gyroscope.js +5 -9
  134. package/examples/js/misc/MD2Character.js +14 -23
  135. package/examples/js/misc/MD2CharacterComplex.js +73 -54
  136. package/examples/js/misc/MorphAnimMesh.js +0 -6
  137. package/examples/js/misc/MorphBlendMesh.js +3 -30
  138. package/examples/js/misc/ProgressiveLightMap.js +47 -43
  139. package/examples/js/misc/RollerCoaster.js +17 -24
  140. package/examples/js/misc/TubePainter.js +18 -12
  141. package/examples/js/misc/Volume.js +16 -45
  142. package/examples/js/misc/VolumeSlice.js +14 -24
  143. package/examples/js/modifiers/CurveModifier.js +19 -21
  144. package/examples/js/modifiers/EdgeSplitModifier.js +0 -30
  145. package/examples/js/modifiers/SimplifyModifier.js +56 -59
  146. package/examples/js/modifiers/TessellateModifier.js +2 -9
  147. package/examples/js/objects/GroundProjectedEnv.js +2 -14
  148. package/examples/js/objects/Lensflare.js +47 -38
  149. package/examples/js/objects/LightningStorm.js +10 -13
  150. package/examples/js/objects/MarchingCubes.js +80 -59
  151. package/examples/js/objects/Reflector.js +22 -20
  152. package/examples/js/objects/ReflectorForSSRPass.js +19 -23
  153. package/examples/js/objects/Refractor.js +52 -30
  154. package/examples/js/objects/ShadowMesh.js +1 -2
  155. package/examples/js/objects/Sky.js +2 -7
  156. package/examples/js/objects/Water.js +23 -18
  157. package/examples/js/objects/Water2.js +20 -19
  158. package/examples/js/physics/AmmoPhysics.js +23 -20
  159. package/examples/js/physics/OimoPhysics.js +19 -17
  160. package/examples/js/postprocessing/AdaptiveToneMappingPass.js +13 -20
  161. package/examples/js/postprocessing/AfterimagePass.js +19 -12
  162. package/examples/js/postprocessing/BloomPass.js +38 -17
  163. package/examples/js/postprocessing/BokehPass.js +29 -12
  164. package/examples/js/postprocessing/ClearPass.js +1 -6
  165. package/examples/js/postprocessing/CubeTexturePass.js +12 -9
  166. package/examples/js/postprocessing/DotScreenPass.js +7 -5
  167. package/examples/js/postprocessing/EffectComposer.js +25 -32
  168. package/examples/js/postprocessing/FilmPass.js +7 -5
  169. package/examples/js/postprocessing/GlitchPass.js +10 -11
  170. package/examples/js/postprocessing/HalftonePass.js +9 -9
  171. package/examples/js/postprocessing/LUTPass.js +2 -15
  172. package/examples/js/postprocessing/MaskPass.js +20 -17
  173. package/examples/js/postprocessing/OutlinePass.js +45 -36
  174. package/examples/js/postprocessing/Pass.js +11 -14
  175. package/examples/js/postprocessing/RenderPass.js +3 -7
  176. package/examples/js/postprocessing/SAOPass.js +40 -32
  177. package/examples/js/postprocessing/SMAAPass.js +34 -17
  178. package/examples/js/postprocessing/SSAARenderPass.js +14 -14
  179. package/examples/js/postprocessing/SSAOPass.js +56 -42
  180. package/examples/js/postprocessing/SSRPass.js +78 -61
  181. package/examples/js/postprocessing/SavePass.js +14 -6
  182. package/examples/js/postprocessing/ShaderPass.js +9 -8
  183. package/examples/js/postprocessing/TAARenderPass.js +11 -9
  184. package/examples/js/postprocessing/TexturePass.js +7 -4
  185. package/examples/js/postprocessing/UnrealBloomPass.js +43 -25
  186. package/examples/js/renderers/CSS2DRenderer.js +2 -21
  187. package/examples/js/renderers/CSS3DRenderer.js +3 -24
  188. package/examples/js/renderers/Projector.js +29 -85
  189. package/examples/js/renderers/SVGRenderer.js +4 -50
  190. package/examples/js/shaders/ACESFilmicToneMappingShader.js +3 -6
  191. package/examples/js/shaders/AfterimageShader.js +3 -6
  192. package/examples/js/shaders/BasicShader.js +3 -6
  193. package/examples/js/shaders/BleachBypassShader.js +3 -6
  194. package/examples/js/shaders/BlendShader.js +3 -6
  195. package/examples/js/shaders/BokehShader.js +3 -6
  196. package/examples/js/shaders/BokehShader2.js +4 -13
  197. package/examples/js/shaders/BrightnessContrastShader.js +3 -6
  198. package/examples/js/shaders/ColorCorrectionShader.js +2 -6
  199. package/examples/js/shaders/ColorifyShader.js +2 -6
  200. package/examples/js/shaders/ConvolutionShader.js +5 -10
  201. package/examples/js/shaders/CopyShader.js +3 -6
  202. package/examples/js/shaders/DOFMipMapShader.js +3 -6
  203. package/examples/js/shaders/DepthLimitedBlurShader.js +2 -9
  204. package/examples/js/shaders/DigitalGlitch.js +3 -6
  205. package/examples/js/shaders/DotScreenShader.js +2 -6
  206. package/examples/js/shaders/FXAAShader.js +1 -3
  207. package/examples/js/shaders/FilmShader.js +3 -6
  208. package/examples/js/shaders/FocusShader.js +3 -6
  209. package/examples/js/shaders/FreiChenShader.js +2 -6
  210. package/examples/js/shaders/GammaCorrectionShader.js +3 -6
  211. package/examples/js/shaders/GodRaysShader.js +11 -24
  212. package/examples/js/shaders/HalftoneShader.js +3 -6
  213. package/examples/js/shaders/HorizontalBlurShader.js +3 -6
  214. package/examples/js/shaders/HorizontalTiltShiftShader.js +3 -6
  215. package/examples/js/shaders/HueSaturationShader.js +3 -6
  216. package/examples/js/shaders/KaleidoShader.js +3 -6
  217. package/examples/js/shaders/LuminosityHighPassShader.js +2 -6
  218. package/examples/js/shaders/LuminosityShader.js +3 -6
  219. package/examples/js/shaders/MMDToonShader.js +2 -6
  220. package/examples/js/shaders/MirrorShader.js +3 -6
  221. package/examples/js/shaders/NormalMapShader.js +2 -6
  222. package/examples/js/shaders/RGBShiftShader.js +3 -6
  223. package/examples/js/shaders/SAOShader.js +2 -6
  224. package/examples/js/shaders/SMAAShader.js +6 -18
  225. package/examples/js/shaders/SSAOShader.js +2 -6
  226. package/examples/js/shaders/SSRShader.js +6 -18
  227. package/examples/js/shaders/SepiaShader.js +3 -6
  228. package/examples/js/shaders/SobelOperatorShader.js +2 -6
  229. package/examples/js/shaders/TechnicolorShader.js +3 -6
  230. package/examples/js/shaders/ToneMapShader.js +3 -6
  231. package/examples/js/shaders/ToonShader.js +8 -24
  232. package/examples/js/shaders/TriangleBlurShader.js +2 -6
  233. package/examples/js/shaders/UnpackDepthRGBAShader.js +3 -6
  234. package/examples/js/shaders/VelocityShader.js +126 -0
  235. package/examples/js/shaders/VerticalBlurShader.js +3 -6
  236. package/examples/js/shaders/VerticalTiltShiftShader.js +3 -6
  237. package/examples/js/shaders/VignetteShader.js +3 -6
  238. package/examples/js/shaders/VolumeShader.js +2 -6
  239. package/examples/js/shaders/WaterRefractionShader.js +2 -6
  240. package/examples/js/textures/FlakesTexture.js +0 -1
  241. package/examples/js/utils/BufferGeometryUtils.js +234 -168
  242. package/examples/js/utils/CameraUtils.js +5 -20
  243. package/examples/js/utils/GPUStatsPanel.js +3 -12
  244. package/examples/js/utils/GeometryCompressionUtils.js +19 -44
  245. package/examples/js/utils/GeometryUtils.js +13 -18
  246. package/examples/js/utils/LDrawUtils.js +8 -11
  247. package/examples/js/utils/PackedPhongMaterial.js +6 -4
  248. package/examples/js/utils/SceneUtils.js +117 -6
  249. package/examples/js/utils/ShadowMapViewer.js +17 -14
  250. package/examples/js/utils/SkeletonUtils.js +13 -27
  251. package/examples/js/utils/UVsDebug.js +20 -12
  252. package/examples/js/utils/WorkerPool.js +1 -11
  253. package/examples/jsm/animation/CCDIKSolver.js +1 -1
  254. package/examples/jsm/capabilities/WebGPU.js +3 -1
  255. package/examples/jsm/controls/OrbitControls.js +44 -4
  256. package/examples/jsm/exporters/GLTFExporter.js +17 -131
  257. package/examples/jsm/exporters/USDZExporter.js +94 -28
  258. package/examples/jsm/interactive/HTMLMesh.js +2 -0
  259. package/examples/jsm/libs/lottie_canvas.module.js +14844 -0
  260. package/examples/jsm/loaders/3DMLoader.js +1 -2
  261. package/examples/jsm/loaders/ColladaLoader.js +28 -0
  262. package/examples/jsm/loaders/FBXLoader.js +16 -2
  263. package/examples/jsm/loaders/GLTFLoader.js +204 -377
  264. package/examples/jsm/loaders/KTX2Loader.js +68 -29
  265. package/examples/jsm/loaders/LDrawLoader.js +14 -13
  266. package/examples/jsm/loaders/LottieLoader.js +4 -2
  267. package/examples/jsm/loaders/MaterialXLoader.js +728 -0
  268. package/examples/jsm/loaders/PCDLoader.js +1 -1
  269. package/examples/jsm/loaders/PLYLoader.js +68 -16
  270. package/examples/jsm/loaders/SVGLoader.js +227 -14
  271. package/examples/jsm/loaders/USDZLoader.js +31 -16
  272. package/examples/jsm/nodes/Nodes.js +14 -2
  273. package/examples/jsm/nodes/accessors/Object3DNode.js +1 -1
  274. package/examples/jsm/nodes/accessors/PositionNode.js +6 -0
  275. package/examples/jsm/nodes/accessors/ReferenceNode.js +1 -1
  276. package/examples/jsm/nodes/accessors/SkinningNode.js +1 -1
  277. package/examples/jsm/nodes/core/Node.js +1 -1
  278. package/examples/jsm/nodes/core/NodeBuilder.js +36 -4
  279. package/examples/jsm/nodes/core/NodeFrame.js +2 -2
  280. package/examples/jsm/nodes/core/NodeVarying.js +7 -4
  281. package/examples/jsm/nodes/core/VaryingNode.js +6 -4
  282. package/examples/jsm/nodes/core/constants.js +13 -13
  283. package/examples/jsm/nodes/display/PosterizeNode.js +25 -0
  284. package/examples/jsm/nodes/display/ViewportNode.js +106 -0
  285. package/examples/jsm/nodes/gpgpu/ComputeNode.js +1 -1
  286. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +1 -1
  287. package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +3 -1
  288. package/examples/jsm/nodes/materials/Materials.js +9 -7
  289. package/examples/jsm/nodes/materials/NodeMaterial.js +9 -1
  290. package/examples/jsm/nodes/materialx/MaterialXNodes.js +6 -2
  291. package/examples/jsm/nodes/materialx/lib/mx_transform_color.js +18 -0
  292. package/examples/jsm/nodes/math/MathNode.js +5 -0
  293. package/examples/jsm/nodes/math/OperatorNode.js +6 -1
  294. package/examples/jsm/nodes/shadernode/ShaderNode.js +26 -13
  295. package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +2 -0
  296. package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +18 -0
  297. package/examples/jsm/nodes/utils/EquirectUVNode.js +27 -0
  298. package/examples/jsm/nodes/utils/JoinNode.js +8 -2
  299. package/examples/jsm/nodes/utils/MatcapUVNode.js +2 -4
  300. package/examples/jsm/nodes/utils/MaxMipLevelNode.js +1 -1
  301. package/examples/jsm/nodes/utils/SpriteSheetUVNode.js +8 -10
  302. package/examples/jsm/nodes/utils/TimerNode.js +1 -1
  303. package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +51 -0
  304. package/examples/jsm/postprocessing/AfterimagePass.js +17 -4
  305. package/examples/jsm/postprocessing/BloomPass.js +22 -3
  306. package/examples/jsm/postprocessing/BokehPass.js +18 -4
  307. package/examples/jsm/postprocessing/CubeTexturePass.js +12 -5
  308. package/examples/jsm/postprocessing/DotScreenPass.js +8 -0
  309. package/examples/jsm/postprocessing/EffectComposer.js +9 -0
  310. package/examples/jsm/postprocessing/FilmPass.js +8 -0
  311. package/examples/jsm/postprocessing/GlitchPass.js +13 -1
  312. package/examples/jsm/postprocessing/HalftonePass.js +8 -0
  313. package/examples/jsm/postprocessing/OutlinePass.js +10 -0
  314. package/examples/jsm/postprocessing/Pass.js +2 -0
  315. package/examples/jsm/postprocessing/RenderPixelatedPass.js +234 -0
  316. package/examples/jsm/postprocessing/SAOPass.js +20 -0
  317. package/examples/jsm/postprocessing/SMAAPass.js +16 -0
  318. package/examples/jsm/postprocessing/SSAARenderPass.js +4 -0
  319. package/examples/jsm/postprocessing/SavePass.js +17 -1
  320. package/examples/jsm/postprocessing/ShaderPass.js +8 -0
  321. package/examples/jsm/postprocessing/TAARenderPass.js +9 -0
  322. package/examples/jsm/postprocessing/TexturePass.js +8 -0
  323. package/examples/jsm/postprocessing/UnrealBloomPass.js +16 -0
  324. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +39 -16
  325. package/examples/jsm/renderers/webgpu/WebGPUAnimation.js +58 -0
  326. package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +63 -5
  327. package/examples/jsm/renderers/webgpu/WebGPUBackground.js +36 -7
  328. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +47 -12
  329. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +35 -5
  330. package/examples/jsm/shaders/MMDToonShader.js +0 -2
  331. package/examples/jsm/shaders/VelocityShader.js +128 -0
  332. package/examples/jsm/utils/BufferGeometryUtils.js +130 -6
  333. package/examples/jsm/utils/SceneUtils.js +129 -4
  334. package/examples/jsm/utils/TextureUtils.js +85 -0
  335. package/examples/jsm/webxr/OculusHandModel.js +1 -1
  336. package/examples/jsm/webxr/XRHandMeshModel.js +6 -3
  337. package/package.json +11 -12
  338. package/src/Three.js +1 -0
  339. package/src/audio/AudioContext.js +5 -5
  340. package/src/cameras/CubeCamera.js +14 -14
  341. package/src/constants.js +1 -1
  342. package/src/core/InstancedBufferGeometry.js +1 -7
  343. package/src/extras/Earcut.js +67 -67
  344. package/src/helpers/DirectionalLightHelper.js +5 -1
  345. package/src/helpers/HemisphereLightHelper.js +4 -1
  346. package/src/helpers/PointLightHelper.js +2 -1
  347. package/src/helpers/SpotLightHelper.js +4 -2
  348. package/src/lights/PointLight.js +2 -2
  349. package/src/lights/SpotLight.js +2 -2
  350. package/src/loaders/FileLoader.js +4 -1
  351. package/src/loaders/ObjectLoader.js +5 -1
  352. package/src/materials/Material.js +1 -1
  353. package/src/math/Color.js +5 -5
  354. package/src/math/Matrix3.js +53 -18
  355. package/src/math/Ray.js +2 -5
  356. package/src/math/Sphere.js +19 -26
  357. package/src/objects/InstancedMesh.js +7 -0
  358. package/src/objects/LOD.js +25 -6
  359. package/src/renderers/WebGL3DRenderTarget.js +1 -1
  360. package/src/renderers/WebGLArrayRenderTarget.js +1 -1
  361. package/src/renderers/WebGLCubeRenderTarget.js +1 -1
  362. package/src/renderers/WebGLMultipleRenderTargets.js +1 -1
  363. package/src/renderers/WebGLRenderTarget.js +1 -1
  364. package/src/renderers/WebGLRenderer.js +36 -62
  365. package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +0 -4
  366. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +0 -1
  367. package/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js +0 -2
  368. package/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl.js +0 -2
  369. package/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl.js +0 -2
  370. package/src/renderers/shaders/ShaderChunk/packing.glsl.js +8 -0
  371. package/src/renderers/shaders/ShaderChunk.js +3 -0
  372. package/src/renderers/shaders/ShaderLib/background.glsl.js +7 -2
  373. package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +62 -0
  374. package/src/renderers/shaders/ShaderLib/cube.glsl.js +4 -6
  375. package/src/renderers/shaders/ShaderLib.js +20 -6
  376. package/src/renderers/shaders/UniformsLib.js +1 -1
  377. package/src/renderers/shaders/UniformsUtils.js +15 -0
  378. package/src/renderers/webgl/WebGLAttributes.js +2 -0
  379. package/src/renderers/webgl/WebGLBackground.js +15 -7
  380. package/src/renderers/webgl/WebGLCubeUVMaps.js +1 -1
  381. package/src/renderers/webgl/WebGLLights.js +0 -4
  382. package/src/renderers/webgl/WebGLMaterials.js +2 -1
  383. package/src/renderers/webgl/WebGLShadowMap.js +3 -1
  384. package/src/renderers/webgl/WebGLState.js +31 -1
  385. package/src/renderers/webgl/WebGLTextures.js +71 -18
  386. package/src/renderers/webgl/WebGLUniforms.js +116 -20
  387. package/src/renderers/webgl/WebGLUtils.js +1 -1
  388. package/src/renderers/webxr/WebXRController.js +46 -13
  389. package/src/renderers/webxr/WebXRManager.js +85 -3
  390. package/src/scenes/Scene.js +8 -0
  391. package/src/textures/CompressedArrayTexture.js +18 -0
  392. package/examples/js/libs/lottie_canvas.js +0 -12751
  393. package/examples/js/shaders/PixelShader.js +0 -51
  394. package/examples/jsm/shaders/PixelShader.js +0 -44
@@ -36,9 +36,7 @@
36
36
  value: 10
37
37
  }
38
38
  },
39
- vertexShader:
40
- /* glsl */
41
- `
39
+ vertexShader: /* glsl */`
42
40
 
43
41
  #include <common>
44
42
 
@@ -53,9 +51,7 @@
53
51
 
54
52
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
55
53
  }`,
56
- fragmentShader:
57
- /* glsl */
58
- `
54
+ fragmentShader: /* glsl */`
59
55
 
60
56
  #include <common>
61
57
  #include <packing>
@@ -135,7 +131,6 @@
135
131
  createSampleWeights: function ( kernelRadius, stdDev ) {
136
132
 
137
133
  const weights = [];
138
-
139
134
  for ( let i = 0; i <= kernelRadius; i ++ ) {
140
135
 
141
136
  weights.push( gaussian( i, stdDev ) );
@@ -148,7 +143,6 @@
148
143
  createSampleOffsets: function ( kernelRadius, uvIncrement ) {
149
144
 
150
145
  const offsets = [];
151
-
152
146
  for ( let i = 0; i <= kernelRadius; i ++ ) {
153
147
 
154
148
  offsets.push( uvIncrement.clone().multiplyScalar( i ) );
@@ -167,7 +161,6 @@
167
161
 
168
162
  }
169
163
  };
170
-
171
164
  function gaussian( x, stdDev ) {
172
165
 
173
166
  return Math.exp( - ( x * x ) / ( 2.0 * ( stdDev * stdDev ) ) ) / ( Math.sqrt( 2.0 * Math.PI ) * stdDev );
@@ -9,6 +9,7 @@
9
9
  * amount: shift distance (1 is width of input)
10
10
  * angle: shift angle in radians
11
11
  */
12
+
12
13
  const DigitalGlitch = {
13
14
  uniforms: {
14
15
  'tDiffuse': {
@@ -50,18 +51,14 @@
50
51
  value: 0.05
51
52
  }
52
53
  },
53
- vertexShader:
54
- /* glsl */
55
- `
54
+ vertexShader: /* glsl */`
56
55
 
57
56
  varying vec2 vUv;
58
57
  void main() {
59
58
  vUv = uv;
60
59
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
61
60
  }`,
62
- fragmentShader:
63
- /* glsl */
64
- `
61
+ fragmentShader: /* glsl */`
65
62
 
66
63
  uniform int byp; //should we apply the glitch ?
67
64
 
@@ -24,9 +24,7 @@
24
24
  value: 1.0
25
25
  }
26
26
  },
27
- vertexShader:
28
- /* glsl */
29
- `
27
+ vertexShader: /* glsl */`
30
28
 
31
29
  varying vec2 vUv;
32
30
 
@@ -36,9 +34,7 @@
36
34
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
37
35
 
38
36
  }`,
39
- fragmentShader:
40
- /* glsl */
41
- `
37
+ fragmentShader: /* glsl */`
42
38
 
43
39
  uniform vec2 center;
44
40
  uniform float angle;
@@ -17,9 +17,7 @@
17
17
  value: new THREE.Vector2( 1 / 1024, 1 / 512 )
18
18
  }
19
19
  },
20
- vertexShader:
21
- /* glsl */
22
- `
20
+ vertexShader: /* glsl */`
23
21
 
24
22
  varying vec2 vUv;
25
23
 
@@ -19,6 +19,7 @@
19
19
  * This version is provided under a Creative Commons Attribution 3.0 License
20
20
  * http://creativecommons.org/licenses/by/3.0/
21
21
  */
22
+
22
23
  const FilmShader = {
23
24
  uniforms: {
24
25
  'tDiffuse': {
@@ -40,9 +41,7 @@
40
41
  value: 1
41
42
  }
42
43
  },
43
- vertexShader:
44
- /* glsl */
45
- `
44
+ vertexShader: /* glsl */`
46
45
 
47
46
  varying vec2 vUv;
48
47
 
@@ -52,9 +51,7 @@
52
51
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
53
52
 
54
53
  }`,
55
- fragmentShader:
56
- /* glsl */
57
- `
54
+ fragmentShader: /* glsl */`
58
55
 
59
56
  #include <common>
60
57
 
@@ -5,6 +5,7 @@
5
5
  * based on PaintEffect postprocess from ro.me
6
6
  * http://code.google.com/p/3-dreams-of-black/source/browse/deploy/js/effects/PaintEffect.js
7
7
  */
8
+
8
9
  const FocusShader = {
9
10
  uniforms: {
10
11
  'tDiffuse': {
@@ -23,9 +24,7 @@
23
24
  value: 0.00125
24
25
  }
25
26
  },
26
- vertexShader:
27
- /* glsl */
28
- `
27
+ vertexShader: /* glsl */`
29
28
 
30
29
  varying vec2 vUv;
31
30
 
@@ -35,9 +34,7 @@
35
34
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
36
35
 
37
36
  }`,
38
- fragmentShader:
39
- /* glsl */
40
- `
37
+ fragmentShader: /* glsl */`
41
38
 
42
39
  uniform float screenWidth;
43
40
  uniform float screenHeight;
@@ -16,9 +16,7 @@
16
16
  value: new THREE.Vector2( 512, 512 )
17
17
  }
18
18
  },
19
- vertexShader:
20
- /* glsl */
21
- `
19
+ vertexShader: /* glsl */`
22
20
 
23
21
  varying vec2 vUv;
24
22
 
@@ -28,9 +26,7 @@
28
26
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
29
27
 
30
28
  }`,
31
- fragmentShader:
32
- /* glsl */
33
- `
29
+ fragmentShader: /* glsl */`
34
30
 
35
31
  uniform sampler2D tDiffuse;
36
32
  varying vec2 vUv;
@@ -4,15 +4,14 @@
4
4
  * Gamma Correction Shader
5
5
  * http://en.wikipedia.org/wiki/gamma_correction
6
6
  */
7
+
7
8
  const GammaCorrectionShader = {
8
9
  uniforms: {
9
10
  'tDiffuse': {
10
11
  value: null
11
12
  }
12
13
  },
13
- vertexShader:
14
- /* glsl */
15
- `
14
+ vertexShader: /* glsl */`
16
15
 
17
16
  varying vec2 vUv;
18
17
 
@@ -22,9 +21,7 @@
22
21
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
23
22
 
24
23
  }`,
25
- fragmentShader:
26
- /* glsl */
27
- `
24
+ fragmentShader: /* glsl */`
28
25
 
29
26
  uniform sampler2D tDiffuse;
30
27
 
@@ -24,9 +24,7 @@
24
24
  value: null
25
25
  }
26
26
  },
27
- vertexShader:
28
- /* glsl */
29
- `
27
+ vertexShader: /* glsl */`
30
28
 
31
29
  varying vec2 vUv;
32
30
 
@@ -36,9 +34,7 @@
36
34
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
37
35
 
38
36
  }`,
39
- fragmentShader:
40
- /* glsl */
41
- `
37
+ fragmentShader: /* glsl */`
42
38
 
43
39
  varying vec2 vUv;
44
40
 
@@ -50,6 +46,7 @@
50
46
 
51
47
  }`
52
48
  };
49
+
53
50
  /**
54
51
  * The god-ray generation shader.
55
52
  *
@@ -77,9 +74,7 @@
77
74
  value: new THREE.Vector3()
78
75
  }
79
76
  },
80
- vertexShader:
81
- /* glsl */
82
- `
77
+ vertexShader: /* glsl */`
83
78
 
84
79
  varying vec2 vUv;
85
80
 
@@ -89,9 +84,7 @@
89
84
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
90
85
 
91
86
  }`,
92
- fragmentShader:
93
- /* glsl */
94
- `
87
+ fragmentShader: /* glsl */`
95
88
 
96
89
  #define TAPS_PER_PASS 6.0
97
90
 
@@ -177,6 +170,7 @@
177
170
 
178
171
  }`
179
172
  };
173
+
180
174
  /**
181
175
  * Additively applies god rays from texture tGodRays to a background (tColors).
182
176
  * fGodRayIntensity attenuates the god rays.
@@ -194,9 +188,7 @@
194
188
  value: 0.69
195
189
  }
196
190
  },
197
- vertexShader:
198
- /* glsl */
199
- `
191
+ vertexShader: /* glsl */`
200
192
 
201
193
  varying vec2 vUv;
202
194
 
@@ -206,9 +198,7 @@
206
198
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
207
199
 
208
200
  }`,
209
- fragmentShader:
210
- /* glsl */
211
- `
201
+ fragmentShader: /* glsl */`
212
202
 
213
203
  varying vec2 vUv;
214
204
 
@@ -228,6 +218,7 @@
228
218
 
229
219
  }`
230
220
  };
221
+
231
222
  /**
232
223
  * A dodgy sun/sky shader. Makes a bright spot at the sun location. Would be
233
224
  * cheaper/faster/simpler to implement this as a simple sun sprite.
@@ -248,9 +239,7 @@
248
239
  value: new THREE.Color( 0x000000 )
249
240
  }
250
241
  },
251
- vertexShader:
252
- /* glsl */
253
- `
242
+ vertexShader: /* glsl */`
254
243
 
255
244
  varying vec2 vUv;
256
245
 
@@ -260,9 +249,7 @@
260
249
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
261
250
 
262
251
  }`,
263
- fragmentShader:
264
- /* glsl */
265
- `
252
+ fragmentShader: /* glsl */`
266
253
 
267
254
  varying vec2 vUv;
268
255
 
@@ -6,6 +6,7 @@
6
6
  * Shape (1 = Dot, 2 = Ellipse, 3 = Line, 4 = Square)
7
7
  * Blending Mode (1 = Linear, 2 = Multiply, 3 = Add, 4 = Lighter, 5 = Darker)
8
8
  */
9
+
9
10
  const HalftoneShader = {
10
11
  uniforms: {
11
12
  'tDiffuse': {
@@ -48,9 +49,7 @@
48
49
  value: false
49
50
  }
50
51
  },
51
- vertexShader:
52
- /* glsl */
53
- `
52
+ vertexShader: /* glsl */`
54
53
 
55
54
  varying vec2 vUV;
56
55
 
@@ -60,9 +59,7 @@
60
59
  gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
61
60
 
62
61
  }`,
63
- fragmentShader:
64
- /* glsl */
65
- `
62
+ fragmentShader: /* glsl */`
66
63
 
67
64
  #define SQRT2_MINUS_ONE 0.41421356
68
65
  #define SQRT2_HALF_MINUS_ONE 0.20710678
@@ -8,6 +8,7 @@
8
8
  * - standard deviation 2.7
9
9
  * - "h" and "v" parameters should be set to "1 / width" and "1 / height"
10
10
  */
11
+
11
12
  const HorizontalBlurShader = {
12
13
  uniforms: {
13
14
  'tDiffuse': {
@@ -17,9 +18,7 @@
17
18
  value: 1.0 / 512.0
18
19
  }
19
20
  },
20
- vertexShader:
21
- /* glsl */
22
- `
21
+ vertexShader: /* glsl */`
23
22
 
24
23
  varying vec2 vUv;
25
24
 
@@ -29,9 +28,7 @@
29
28
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
30
29
 
31
30
  }`,
32
- fragmentShader:
33
- /* glsl */
34
- `
31
+ fragmentShader: /* glsl */`
35
32
 
36
33
  uniform sampler2D tDiffuse;
37
34
  uniform float h;
@@ -8,6 +8,7 @@
8
8
  * - "h" and "v" parameters should be set to "1 / width" and "1 / height"
9
9
  * - "r" parameter control where "focused" horizontal line lies
10
10
  */
11
+
11
12
  const HorizontalTiltShiftShader = {
12
13
  uniforms: {
13
14
  'tDiffuse': {
@@ -20,9 +21,7 @@
20
21
  value: 0.35
21
22
  }
22
23
  },
23
- vertexShader:
24
- /* glsl */
25
- `
24
+ vertexShader: /* glsl */`
26
25
 
27
26
  varying vec2 vUv;
28
27
 
@@ -32,9 +31,7 @@
32
31
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
33
32
 
34
33
  }`,
35
- fragmentShader:
36
- /* glsl */
37
- `
34
+ fragmentShader: /* glsl */`
38
35
 
39
36
  uniform sampler2D tDiffuse;
40
37
  uniform float h;
@@ -6,6 +6,7 @@
6
6
  * hue: -1 to 1 (-1 is 180 degrees in the negative direction, 0 is no change, etc.
7
7
  * saturation: -1 to 1 (-1 is solid gray, 0 is no change, and 1 is maximum contrast)
8
8
  */
9
+
9
10
  const HueSaturationShader = {
10
11
  uniforms: {
11
12
  'tDiffuse': {
@@ -18,9 +19,7 @@
18
19
  value: 0
19
20
  }
20
21
  },
21
- vertexShader:
22
- /* glsl */
23
- `
22
+ vertexShader: /* glsl */`
24
23
 
25
24
  varying vec2 vUv;
26
25
 
@@ -31,9 +30,7 @@
31
30
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
32
31
 
33
32
  }`,
34
- fragmentShader:
35
- /* glsl */
36
- `
33
+ fragmentShader: /* glsl */`
37
34
 
38
35
  uniform sampler2D tDiffuse;
39
36
  uniform float hue;
@@ -9,6 +9,7 @@
9
9
  * sides: number of reflections
10
10
  * angle: initial angle in radians
11
11
  */
12
+
12
13
  const KaleidoShader = {
13
14
  uniforms: {
14
15
  'tDiffuse': {
@@ -21,9 +22,7 @@
21
22
  value: 0.0
22
23
  }
23
24
  },
24
- vertexShader:
25
- /* glsl */
26
- `
25
+ vertexShader: /* glsl */`
27
26
 
28
27
  varying vec2 vUv;
29
28
 
@@ -33,9 +32,7 @@
33
32
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
34
33
 
35
34
  }`,
36
- fragmentShader:
37
- /* glsl */
38
- `
35
+ fragmentShader: /* glsl */`
39
36
 
40
37
  uniform sampler2D tDiffuse;
41
38
  uniform float sides;
@@ -24,9 +24,7 @@
24
24
  value: 0.0
25
25
  }
26
26
  },
27
- vertexShader:
28
- /* glsl */
29
- `
27
+ vertexShader: /* glsl */`
30
28
 
31
29
  varying vec2 vUv;
32
30
 
@@ -37,9 +35,7 @@
37
35
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
38
36
 
39
37
  }`,
40
- fragmentShader:
41
- /* glsl */
42
- `
38
+ fragmentShader: /* glsl */`
43
39
 
44
40
  uniform sampler2D tDiffuse;
45
41
  uniform vec3 defaultColor;
@@ -4,15 +4,14 @@
4
4
  * Luminosity
5
5
  * http://en.wikipedia.org/wiki/Luminosity
6
6
  */
7
+
7
8
  const LuminosityShader = {
8
9
  uniforms: {
9
10
  'tDiffuse': {
10
11
  value: null
11
12
  }
12
13
  },
13
- vertexShader:
14
- /* glsl */
15
- `
14
+ vertexShader: /* glsl */`
16
15
 
17
16
  varying vec2 vUv;
18
17
 
@@ -23,9 +22,7 @@
23
22
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
24
23
 
25
24
  }`,
26
- fragmentShader:
27
- /* glsl */
28
- `
25
+ fragmentShader: /* glsl */`
29
26
 
30
27
  #include <common>
31
28
 
@@ -14,9 +14,7 @@
14
14
  * (Replace lights_phong_pars_fragment with lights_mmd_toon_pars_fragment)
15
15
  * * Add mmd_toon_matcap_fragment.
16
16
  */
17
- const lights_mmd_toon_pars_fragment =
18
- /* glsl */
19
- `
17
+ const lights_mmd_toon_pars_fragment = /* glsl */`
20
18
  varying vec3 vViewPosition;
21
19
 
22
20
  struct BlinnPhongMaterial {
@@ -49,9 +47,7 @@ void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in Geometric
49
47
 
50
48
  #define Material_LightProbeLOD( material ) (0)
51
49
  `;
52
- const mmd_toon_matcap_fragment =
53
- /* glsl */
54
- `
50
+ const mmd_toon_matcap_fragment = /* glsl */`
55
51
  #ifdef USE_MATCAP
56
52
 
57
53
  vec3 viewDir = normalize( vViewPosition );
@@ -6,6 +6,7 @@
6
6
  *
7
7
  * side: side of input to mirror (0 = left, 1 = right, 2 = top, 3 = bottom)
8
8
  */
9
+
9
10
  const MirrorShader = {
10
11
  uniforms: {
11
12
  'tDiffuse': {
@@ -15,9 +16,7 @@
15
16
  value: 1
16
17
  }
17
18
  },
18
- vertexShader:
19
- /* glsl */
20
- `
19
+ vertexShader: /* glsl */`
21
20
 
22
21
  varying vec2 vUv;
23
22
 
@@ -27,9 +26,7 @@
27
26
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
28
27
 
29
28
  }`,
30
- fragmentShader:
31
- /* glsl */
32
- `
29
+ fragmentShader: /* glsl */`
33
30
 
34
31
  uniform sampler2D tDiffuse;
35
32
  uniform int side;
@@ -20,9 +20,7 @@
20
20
  value: 0.05
21
21
  }
22
22
  },
23
- vertexShader:
24
- /* glsl */
25
- `
23
+ vertexShader: /* glsl */`
26
24
 
27
25
  varying vec2 vUv;
28
26
 
@@ -32,9 +30,7 @@
32
30
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
33
31
 
34
32
  }`,
35
- fragmentShader:
36
- /* glsl */
37
- `
33
+ fragmentShader: /* glsl */`
38
34
 
39
35
  uniform float height;
40
36
  uniform vec2 resolution;
@@ -9,6 +9,7 @@
9
9
  * amount: shift distance (1 is width of input)
10
10
  * angle: shift angle in radians
11
11
  */
12
+
12
13
  const RGBShiftShader = {
13
14
  uniforms: {
14
15
  'tDiffuse': {
@@ -21,9 +22,7 @@
21
22
  value: 0.0
22
23
  }
23
24
  },
24
- vertexShader:
25
- /* glsl */
26
- `
25
+ vertexShader: /* glsl */`
27
26
 
28
27
  varying vec2 vUv;
29
28
 
@@ -33,9 +32,7 @@
33
32
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
34
33
 
35
34
  }`,
36
- fragmentShader:
37
- /* glsl */
38
- `
35
+ fragmentShader: /* glsl */`
39
36
 
40
37
  uniform sampler2D tDiffuse;
41
38
  uniform float amount;
@@ -57,9 +57,7 @@
57
57
  value: 0.0
58
58
  }
59
59
  },
60
- vertexShader:
61
- /* glsl */
62
- `
60
+ vertexShader: /* glsl */`
63
61
 
64
62
  varying vec2 vUv;
65
63
 
@@ -67,9 +65,7 @@
67
65
  vUv = uv;
68
66
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
69
67
  }`,
70
- fragmentShader:
71
- /* glsl */
72
- `
68
+ fragmentShader: /* glsl */`
73
69
 
74
70
  #include <common>
75
71