@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
@@ -18,9 +18,7 @@
18
18
  value: new THREE.Vector2( 1 / 1024, 1 / 512 )
19
19
  }
20
20
  },
21
- vertexShader:
22
- /* glsl */
23
- `
21
+ vertexShader: /* glsl */`
24
22
 
25
23
  uniform vec2 resolution;
26
24
 
@@ -42,9 +40,7 @@
42
40
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
43
41
 
44
42
  }`,
45
- fragmentShader:
46
- /* glsl */
47
- `
43
+ fragmentShader: /* glsl */`
48
44
 
49
45
  uniform sampler2D tDiffuse;
50
46
 
@@ -130,9 +126,7 @@
130
126
  value: new THREE.Vector2( 1 / 1024, 1 / 512 )
131
127
  }
132
128
  },
133
- vertexShader:
134
- /* glsl */
135
- `
129
+ vertexShader: /* glsl */`
136
130
 
137
131
  uniform vec2 resolution;
138
132
 
@@ -161,9 +155,7 @@
161
155
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
162
156
 
163
157
  }`,
164
- fragmentShader:
165
- /* glsl */
166
- `
158
+ fragmentShader: /* glsl */`
167
159
 
168
160
  #define SMAASampleLevelZeroOffset( tex, coord, offset ) texture2D( tex, coord + float( offset ) * resolution, 0.0 )
169
161
 
@@ -377,9 +369,7 @@
377
369
  value: new THREE.Vector2( 1 / 1024, 1 / 512 )
378
370
  }
379
371
  },
380
- vertexShader:
381
- /* glsl */
382
- `
372
+ vertexShader: /* glsl */`
383
373
 
384
374
  uniform vec2 resolution;
385
375
 
@@ -400,9 +390,7 @@
400
390
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
401
391
 
402
392
  }`,
403
- fragmentShader:
404
- /* glsl */
405
- `
393
+ fragmentShader: /* glsl */`
406
394
 
407
395
  uniform sampler2D tDiffuse;
408
396
  uniform sampler2D tColor;
@@ -53,9 +53,7 @@
53
53
  value: 0.05
54
54
  }
55
55
  },
56
- vertexShader:
57
- /* glsl */
58
- `
56
+ vertexShader: /* glsl */`
59
57
 
60
58
  varying vec2 vUv;
61
59
 
@@ -66,9 +64,7 @@
66
64
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
67
65
 
68
66
  }`,
69
- fragmentShader:
70
- /* glsl */
71
- `
67
+ fragmentShader: /* glsl */`
72
68
 
73
69
  uniform sampler2D tDiffuse;
74
70
  uniform sampler2D tNormal;
@@ -55,9 +55,7 @@
55
55
  value: .018
56
56
  }
57
57
  },
58
- vertexShader:
59
- /* glsl */
60
- `
58
+ vertexShader: /* glsl */`
61
59
 
62
60
  varying vec2 vUv;
63
61
 
@@ -70,9 +68,7 @@
70
68
  }
71
69
 
72
70
  `,
73
- fragmentShader:
74
- /* glsl */
75
- `
71
+ fragmentShader: /* glsl */`
76
72
  // precision highp float;
77
73
  precision highp sampler2D;
78
74
  varying vec2 vUv;
@@ -266,9 +262,7 @@
266
262
  value: null
267
263
  }
268
264
  },
269
- vertexShader:
270
- /* glsl */
271
- `
265
+ vertexShader: /* glsl */`
272
266
 
273
267
  varying vec2 vUv;
274
268
 
@@ -280,9 +274,7 @@
280
274
  }
281
275
 
282
276
  `,
283
- fragmentShader:
284
- /* glsl */
285
- `
277
+ fragmentShader: /* glsl */`
286
278
 
287
279
  uniform sampler2D tDepth;
288
280
 
@@ -332,9 +324,7 @@
332
324
  value: .5
333
325
  }
334
326
  },
335
- vertexShader:
336
- /* glsl */
337
- `
327
+ vertexShader: /* glsl */`
338
328
 
339
329
  varying vec2 vUv;
340
330
 
@@ -346,9 +336,7 @@
346
336
  }
347
337
 
348
338
  `,
349
- fragmentShader:
350
- /* glsl */
351
- `
339
+ fragmentShader: /* glsl */`
352
340
 
353
341
  uniform sampler2D tDiffuse;
354
342
  uniform vec2 resolution;
@@ -5,6 +5,7 @@
5
5
  * based on glfx.js sepia shader
6
6
  * https://github.com/evanw/glfx.js
7
7
  */
8
+
8
9
  const SepiaShader = {
9
10
  uniforms: {
10
11
  'tDiffuse': {
@@ -14,9 +15,7 @@
14
15
  value: 1.0
15
16
  }
16
17
  },
17
- vertexShader:
18
- /* glsl */
19
- `
18
+ vertexShader: /* glsl */`
20
19
 
21
20
  varying vec2 vUv;
22
21
 
@@ -26,9 +25,7 @@
26
25
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
27
26
 
28
27
  }`,
29
- fragmentShader:
30
- /* glsl */
31
- `
28
+ fragmentShader: /* glsl */`
32
29
 
33
30
  uniform float amount;
34
31
 
@@ -16,9 +16,7 @@
16
16
  value: new THREE.Vector2()
17
17
  }
18
18
  },
19
- vertexShader:
20
- /* glsl */
21
- `
19
+ vertexShader: /* glsl */`
22
20
 
23
21
  varying vec2 vUv;
24
22
 
@@ -29,9 +27,7 @@
29
27
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
30
28
 
31
29
  }`,
32
- fragmentShader:
33
- /* glsl */
34
- `
30
+ fragmentShader: /* glsl */`
35
31
 
36
32
  uniform sampler2D tDiffuse;
37
33
  uniform vec2 resolution;
@@ -6,15 +6,14 @@
6
6
  * More historical info here: http://www.widescreenmuseum.com/oldcolor/technicolor1.htm
7
7
  * Demo here: http://charliehoey.com/technicolor_shader/shader_test.html
8
8
  */
9
+
9
10
  const TechnicolorShader = {
10
11
  uniforms: {
11
12
  'tDiffuse': {
12
13
  value: null
13
14
  }
14
15
  },
15
- vertexShader:
16
- /* glsl */
17
- `
16
+ vertexShader: /* glsl */`
18
17
 
19
18
  varying vec2 vUv;
20
19
 
@@ -24,9 +23,7 @@
24
23
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
25
24
 
26
25
  }`,
27
- fragmentShader:
28
- /* glsl */
29
- `
26
+ fragmentShader: /* glsl */`
30
27
 
31
28
  uniform sampler2D tDiffuse;
32
29
  varying vec2 vUv;
@@ -3,6 +3,7 @@
3
3
  /**
4
4
  * Full-screen tone-mapping shader based on http://www.cis.rit.edu/people/faculty/ferwerda/publications/sig02_paper.pdf
5
5
  */
6
+
6
7
  const ToneMapShader = {
7
8
  uniforms: {
8
9
  'tDiffuse': {
@@ -24,9 +25,7 @@
24
25
  value: 0.6
25
26
  }
26
27
  },
27
- vertexShader:
28
- /* glsl */
29
- `
28
+ vertexShader: /* glsl */`
30
29
 
31
30
  varying vec2 vUv;
32
31
 
@@ -36,9 +35,7 @@
36
35
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
37
36
 
38
37
  }`,
39
- fragmentShader:
40
- /* glsl */
41
- `
38
+ fragmentShader: /* glsl */`
42
39
 
43
40
  #include <common>
44
41
 
@@ -24,9 +24,7 @@
24
24
  value: new THREE.Color( 0xffffff )
25
25
  }
26
26
  },
27
- vertexShader:
28
- /* glsl */
29
- `
27
+ vertexShader: /* glsl */`
30
28
 
31
29
  varying vec3 vNormal;
32
30
  varying vec3 vRefract;
@@ -45,9 +43,7 @@
45
43
  gl_Position = projectionMatrix * mvPosition;
46
44
 
47
45
  }`,
48
- fragmentShader:
49
- /* glsl */
50
- `
46
+ fragmentShader: /* glsl */`
51
47
 
52
48
  uniform vec3 uBaseColor;
53
49
 
@@ -111,9 +107,7 @@
111
107
  value: new THREE.Color( 0x000000 )
112
108
  }
113
109
  },
114
- vertexShader:
115
- /* glsl */
116
- `
110
+ vertexShader: /* glsl */`
117
111
 
118
112
  varying vec3 vNormal;
119
113
 
@@ -123,9 +117,7 @@
123
117
  vNormal = normalize( normalMatrix * normal );
124
118
 
125
119
  }`,
126
- fragmentShader:
127
- /* glsl */
128
- `
120
+ fragmentShader: /* glsl */`
129
121
 
130
122
  uniform vec3 uBaseColor;
131
123
  uniform vec3 uLineColor1;
@@ -188,9 +180,7 @@
188
180
  value: new THREE.Color( 0x000000 )
189
181
  }
190
182
  },
191
- vertexShader:
192
- /* glsl */
193
- `
183
+ vertexShader: /* glsl */`
194
184
 
195
185
  varying vec3 vNormal;
196
186
 
@@ -200,9 +190,7 @@
200
190
  vNormal = normalize( normalMatrix * normal );
201
191
 
202
192
  }`,
203
- fragmentShader:
204
- /* glsl */
205
- `
193
+ fragmentShader: /* glsl */`
206
194
 
207
195
  uniform vec3 uBaseColor;
208
196
  uniform vec3 uLineColor1;
@@ -284,9 +272,7 @@
284
272
  value: new THREE.Color( 0x000000 )
285
273
  }
286
274
  },
287
- vertexShader:
288
- /* glsl */
289
- `
275
+ vertexShader: /* glsl */`
290
276
 
291
277
  varying vec3 vNormal;
292
278
 
@@ -296,9 +282,7 @@
296
282
  vNormal = normalize( normalMatrix * normal );
297
283
 
298
284
  }`,
299
- fragmentShader:
300
- /* glsl */
301
- `
285
+ fragmentShader: /* glsl */`
302
286
 
303
287
  uniform vec3 uBaseColor;
304
288
  uniform vec3 uLineColor1;
@@ -19,9 +19,7 @@
19
19
  value: new THREE.Vector2( 1, 1 )
20
20
  }
21
21
  },
22
- vertexShader:
23
- /* glsl */
24
- `
22
+ vertexShader: /* glsl */`
25
23
 
26
24
  varying vec2 vUv;
27
25
 
@@ -31,9 +29,7 @@
31
29
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
32
30
 
33
31
  }`,
34
- fragmentShader:
35
- /* glsl */
36
- `
32
+ fragmentShader: /* glsl */`
37
33
 
38
34
  #include <common>
39
35
 
@@ -4,6 +4,7 @@
4
4
  * Unpack RGBA depth shader
5
5
  * - show RGBA encoded depth as monochrome color
6
6
  */
7
+
7
8
  const UnpackDepthRGBAShader = {
8
9
  uniforms: {
9
10
  'tDiffuse': {
@@ -13,9 +14,7 @@
13
14
  value: 1.0
14
15
  }
15
16
  },
16
- vertexShader:
17
- /* glsl */
18
- `
17
+ vertexShader: /* glsl */`
19
18
 
20
19
  varying vec2 vUv;
21
20
 
@@ -25,9 +24,7 @@
25
24
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
26
25
 
27
26
  }`,
28
- fragmentShader:
29
- /* glsl */
30
- `
27
+ fragmentShader: /* glsl */`
31
28
 
32
29
  uniform float opacity;
33
30
 
@@ -0,0 +1,126 @@
1
+ ( function () {
2
+
3
+ /**
4
+ * Mesh Velocity Shader @bhouston
5
+ */
6
+
7
+ const VelocityShader = {
8
+ uniforms: THREE.UniformsUtils.merge( [ THREE.UniformsLib.common, THREE.UniformsLib.displacementmap, {
9
+ modelMatrixPrev: {
10
+ value: new THREE.Matrix4()
11
+ },
12
+ currentProjectionViewMatrix: {
13
+ value: new THREE.Matrix4()
14
+ },
15
+ previousProjectionViewMatrix: {
16
+ value: new THREE.Matrix4()
17
+ }
18
+ } ] ),
19
+ vertexShader: /* glsl */`
20
+ #define NORMAL
21
+
22
+ #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )
23
+
24
+ varying vec3 vViewPosition;
25
+
26
+ #endif
27
+
28
+ #include <common>
29
+ #include <packing>
30
+ #include <uv_pars_vertex>
31
+ #include <displacementmap_pars_vertex>
32
+ #include <normal_pars_vertex>
33
+ #include <morphtarget_pars_vertex>
34
+ #include <skinning_pars_vertex>
35
+ #include <logdepthbuf_pars_vertex>
36
+ #include <clipping_planes_pars_vertex>
37
+
38
+ uniform mat4 previousProjectionViewMatrix;
39
+ uniform mat4 currentProjectionViewMatrix;
40
+
41
+ uniform mat4 modelMatrixPrev;
42
+
43
+ varying vec4 clipPositionCurrent;
44
+ varying vec4 clipPositionPrevious;
45
+
46
+ void main() {
47
+
48
+
49
+ #include <uv_vertex>
50
+
51
+ #include <beginnormal_vertex>
52
+ #include <morphnormal_vertex>
53
+ #include <skinbase_vertex>
54
+ #include <skinnormal_vertex>
55
+ #include <defaultnormal_vertex>
56
+ #include <normal_vertex>
57
+
58
+ #include <begin_vertex>
59
+ #include <morphtarget_vertex>
60
+ #include <displacementmap_vertex>
61
+ #include <morphtarget_vertex>
62
+ #include <skinning_vertex>
63
+
64
+ #ifdef USE_SKINNING
65
+
66
+ vec4 mvPosition = modelViewMatrix * skinned;
67
+ clipPositionCurrent = currentProjectionViewMatrix * modelMatrix * skinned;
68
+ clipPositionPrevious = previousProjectionViewMatrix * modelMatrixPrev * skinned;
69
+
70
+ #else
71
+
72
+ vec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );
73
+ clipPositionCurrent = currentProjectionViewMatrix * modelMatrix * vec4( transformed, 1.0 );
74
+ clipPositionPrevious = previousProjectionViewMatrix * modelMatrixPrev * vec4( transformed, 1.0 );
75
+
76
+ #endif
77
+
78
+ gl_Position = projectionMatrix * mvPosition;
79
+
80
+ #include <logdepthbuf_vertex>
81
+ #include <clipping_planes_vertex>
82
+ }
83
+ `,
84
+ fragmentShader: /* glsl */`
85
+ #define NORMAL
86
+
87
+ uniform float opacity;
88
+
89
+ #include <packing>
90
+ #include <uv_pars_fragment>
91
+ #include <map_pars_fragment>
92
+ #include <alphamap_pars_fragment>
93
+ #include <alphatest_pars_fragment>
94
+ #include <logdepthbuf_pars_fragment>
95
+ #include <clipping_planes_pars_fragment>
96
+
97
+ varying vec4 clipPositionCurrent;
98
+ varying vec4 clipPositionPrevious;
99
+
100
+ void main() {
101
+
102
+ vec4 diffuseColor = vec4( 1.0 );
103
+ diffuseColor.a = opacity;
104
+
105
+ #include <map_fragment>
106
+ #include <alphamap_fragment>
107
+ #include <alphatest_fragment>
108
+
109
+ vec2 ndcPositionCurrent = clipPositionCurrent.xy/clipPositionCurrent.w;
110
+ vec2 ndcPositionPrevious = clipPositionPrevious.xy/clipPositionPrevious.w;
111
+ vec2 vel = ( ndcPositionCurrent - ndcPositionPrevious ) * 0.5;
112
+ vel = vel * 0.5 + 0.5;
113
+ vec2 v1 = packDepthToRG(vel.x);
114
+ vec2 v2 = packDepthToRG(vel.y);
115
+ gl_FragColor = vec4(v1.x, v1.y, v2.x, v2.y);
116
+
117
+ #include <logdepthbuf_fragment>
118
+
119
+ }
120
+
121
+ `
122
+ };
123
+
124
+ THREE.VelocityShader = VelocityShader;
125
+
126
+ } )();
@@ -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 VerticalBlurShader = {
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 v;
@@ -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 VerticalTiltShiftShader = {
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 v;
@@ -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 VignetteShader = {
9
10
  uniforms: {
10
11
  'tDiffuse': {
@@ -17,9 +18,7 @@
17
18
  value: 1.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 float offset;
37
34
  uniform float darkness;
@@ -27,9 +27,7 @@
27
27
  value: null
28
28
  }
29
29
  },
30
- vertexShader:
31
- /* glsl */
32
- `
30
+ vertexShader: /* glsl */`
33
31
 
34
32
  varying vec4 v_nearpos;
35
33
  varying vec4 v_farpos;
@@ -60,9 +58,7 @@
60
58
  v_position = position;
61
59
  gl_Position = projectionMatrix * viewMatrix * modelMatrix * position4;
62
60
  }`,
63
- fragmentShader:
64
- /* glsl */
65
- `
61
+ fragmentShader: /* glsl */`
66
62
 
67
63
  precision highp float;
68
64
  precision mediump sampler3D;
@@ -18,9 +18,7 @@
18
18
  value: null
19
19
  }
20
20
  },
21
- vertexShader:
22
- /* glsl */
23
- `
21
+ vertexShader: /* glsl */`
24
22
 
25
23
  uniform mat4 textureMatrix;
26
24
 
@@ -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 vec3 color;
44
40
  uniform float time;
@@ -10,7 +10,6 @@
10
10
  const context = canvas.getContext( '2d' );
11
11
  context.fillStyle = 'rgb(127,127,255)';
12
12
  context.fillRect( 0, 0, width, height );
13
-
14
13
  for ( let i = 0; i < 4000; i ++ ) {
15
14
 
16
15
  const x = Math.random() * width;