super-three 0.141.0 → 0.147.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 (646) hide show
  1. package/README.md +9 -9
  2. package/build/three.cjs +2441 -1569
  3. package/build/three.js +2441 -1569
  4. package/build/three.min.js +1 -1
  5. package/build/three.module.js +2847 -1576
  6. package/examples/js/animation/AnimationClipCreator.js +0 -8
  7. package/examples/js/animation/CCDIKSolver.js +50 -67
  8. package/examples/js/animation/MMDAnimationHelper.js +66 -137
  9. package/examples/js/animation/MMDPhysics.js +71 -150
  10. package/examples/js/cameras/CinematicCamera.js +33 -22
  11. package/examples/js/controls/ArcballControls.js +149 -403
  12. package/examples/js/controls/DragControls.js +8 -33
  13. package/examples/js/controls/FirstPersonControls.js +32 -61
  14. package/examples/js/controls/FlyControls.js +29 -63
  15. package/examples/js/controls/OrbitControls.js +125 -103
  16. package/examples/js/controls/PointerLockControls.js +5 -22
  17. package/examples/js/controls/TrackballControls.js +33 -88
  18. package/examples/js/controls/TransformControls.js +101 -182
  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 +6 -20
  28. package/examples/js/effects/AsciiEffect.js +32 -31
  29. package/examples/js/effects/OutlineEffect.js +30 -54
  30. package/examples/js/effects/ParallaxBarrierEffect.js +2 -15
  31. package/examples/js/effects/PeppersGhostEffect.js +14 -41
  32. package/examples/js/effects/StereoEffect.js +2 -6
  33. package/examples/js/environments/RoomEnvironment.js +32 -8
  34. package/examples/js/exporters/ColladaExporter.js +52 -78
  35. package/examples/js/exporters/DRACOExporter.js +22 -34
  36. package/examples/js/exporters/EXRExporter.js +15 -18
  37. package/examples/js/exporters/GLTFExporter.js +168 -345
  38. package/examples/js/exporters/MMDExporter.js +5 -12
  39. package/examples/js/exporters/OBJExporter.js +40 -52
  40. package/examples/js/exporters/PLYExporter.js +50 -57
  41. package/examples/js/exporters/STLExporter.js +5 -14
  42. package/examples/js/exporters/USDZExporter.js +119 -27
  43. package/examples/js/geometries/BoxLineGeometry.js +0 -1
  44. package/examples/js/geometries/ConvexGeometry.js +12 -7
  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 +23 -17
  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 +25 -39
  60. package/examples/js/interactive/InteractiveGroup.js +9 -14
  61. package/examples/js/interactive/SelectionBox.js +3 -70
  62. package/examples/js/interactive/SelectionHelper.js +2 -8
  63. package/examples/js/libs/ktx-parse.umd.js +1 -0
  64. package/examples/js/libs/meshopt_decoder.js +98 -32
  65. package/examples/js/lights/LightProbeGenerator.js +32 -39
  66. package/examples/js/lights/RectAreaLightUniformsLib.js +5 -1
  67. package/examples/js/lines/LineGeometry.js +3 -5
  68. package/examples/js/lines/LineMaterial.js +4 -11
  69. package/examples/js/lines/LineSegments2.js +40 -89
  70. package/examples/js/lines/LineSegmentsGeometry.js +7 -28
  71. package/examples/js/lines/Wireframe.js +2 -7
  72. package/examples/js/lines/WireframeGeometry2.js +3 -1
  73. package/examples/js/loaders/3DMLoader.js +58 -155
  74. package/examples/js/loaders/3MFLoader.js +72 -106
  75. package/examples/js/loaders/AMFLoader.js +0 -25
  76. package/examples/js/loaders/BVHLoader.js +44 -43
  77. package/examples/js/loaders/BasisTextureLoader.js +16 -46
  78. package/examples/js/loaders/ColladaLoader.js +229 -359
  79. package/examples/js/loaders/DDSLoader.js +24 -25
  80. package/examples/js/loaders/DRACOLoader.js +30 -90
  81. package/examples/js/loaders/EXRLoader.js +69 -177
  82. package/examples/js/loaders/FBXLoader.js +294 -441
  83. package/examples/js/loaders/FontLoader.js +9 -31
  84. package/examples/js/loaders/GCodeLoader.js +15 -16
  85. package/examples/js/loaders/GLTFLoader.js +458 -739
  86. package/examples/js/loaders/HDRCubeTextureLoader.js +0 -17
  87. package/examples/js/loaders/KMZLoader.js +3 -7
  88. package/examples/js/loaders/KTXLoader.js +12 -30
  89. package/examples/js/loaders/LDrawLoader.js +309 -355
  90. package/examples/js/loaders/LUT3dlLoader.js +7 -11
  91. package/examples/js/loaders/LUTCubeLoader.js +0 -8
  92. package/examples/js/loaders/LWOLoader.js +59 -124
  93. package/examples/js/loaders/LogLuvLoader.js +27 -77
  94. package/examples/js/loaders/LottieLoader.js +4 -4
  95. package/examples/js/loaders/MD2Loader.js +26 -27
  96. package/examples/js/loaders/MDDLoader.js +6 -10
  97. package/examples/js/loaders/MMDLoader.js +180 -189
  98. package/examples/js/loaders/MTLLoader.js +18 -47
  99. package/examples/js/loaders/NRRDLoader.js +44 -84
  100. package/examples/js/loaders/OBJLoader.js +56 -77
  101. package/examples/js/loaders/PCDLoader.js +92 -42
  102. package/examples/js/loaders/PDBLoader.js +17 -13
  103. package/examples/js/loaders/PLYLoader.js +65 -51
  104. package/examples/js/loaders/PRWMLoader.js +11 -22
  105. package/examples/js/loaders/PVRLoader.js +7 -16
  106. package/examples/js/loaders/RGBELoader.js +36 -61
  107. package/examples/js/loaders/RGBMLoader.js +26 -87
  108. package/examples/js/loaders/STLLoader.js +20 -27
  109. package/examples/js/loaders/SVGLoader.js +365 -236
  110. package/examples/js/loaders/TDSLoader.js +81 -118
  111. package/examples/js/loaders/TGALoader.js +39 -41
  112. package/examples/js/loaders/TIFFLoader.js +30 -0
  113. package/examples/js/loaders/TTFLoader.js +0 -8
  114. package/examples/js/loaders/TiltLoader.js +14 -15
  115. package/examples/js/loaders/VOXLoader.js +8 -16
  116. package/examples/js/loaders/VRMLLoader.js +266 -354
  117. package/examples/js/loaders/VTKLoader.js +102 -119
  118. package/examples/js/loaders/XYZLoader.js +2 -4
  119. package/examples/js/loaders/lwo/IFFParser.js +55 -136
  120. package/examples/js/loaders/lwo/LWO2Parser.js +39 -89
  121. package/examples/js/loaders/lwo/LWO3Parser.js +38 -79
  122. package/examples/js/materials/MeshGouraudMaterial.js +387 -0
  123. package/examples/js/math/Capsule.js +0 -17
  124. package/examples/js/math/ColorConverter.js +3 -53
  125. package/examples/js/math/ConvexHull.js +185 -141
  126. package/examples/js/math/ImprovedNoise.js +1 -1
  127. package/examples/js/math/Lut.js +8 -15
  128. package/examples/js/math/MeshSurfaceSampler.js +6 -28
  129. package/examples/js/math/OBB.js +90 -49
  130. package/examples/js/math/Octree.js +2 -57
  131. package/examples/js/math/SimplexNoise.js +74 -88
  132. package/examples/js/misc/ConvexObjectBreaker.js +37 -48
  133. package/examples/js/misc/GPUComputationRenderer.js +47 -14
  134. package/examples/js/misc/Gyroscope.js +5 -9
  135. package/examples/js/misc/MD2Character.js +14 -23
  136. package/examples/js/misc/MD2CharacterComplex.js +73 -54
  137. package/examples/js/misc/MorphAnimMesh.js +0 -6
  138. package/examples/js/misc/MorphBlendMesh.js +3 -30
  139. package/examples/js/misc/ProgressiveLightMap.js +47 -43
  140. package/examples/js/misc/RollerCoaster.js +17 -24
  141. package/examples/js/misc/TubePainter.js +18 -12
  142. package/examples/js/misc/Volume.js +173 -194
  143. package/examples/js/misc/VolumeSlice.js +91 -99
  144. package/examples/js/modifiers/CurveModifier.js +19 -21
  145. package/examples/js/modifiers/EdgeSplitModifier.js +0 -30
  146. package/examples/js/modifiers/SimplifyModifier.js +57 -60
  147. package/examples/js/modifiers/TessellateModifier.js +2 -9
  148. package/examples/js/objects/GroundProjectedEnv.js +181 -0
  149. package/examples/js/objects/Lensflare.js +47 -38
  150. package/examples/js/objects/LightningStorm.js +10 -13
  151. package/examples/js/objects/MarchingCubes.js +80 -59
  152. package/examples/js/objects/Reflector.js +31 -22
  153. package/examples/js/objects/ReflectorForSSRPass.js +20 -25
  154. package/examples/js/objects/Refractor.js +61 -33
  155. package/examples/js/objects/ShadowMesh.js +6 -3
  156. package/examples/js/objects/Sky.js +2 -7
  157. package/examples/js/objects/Water.js +23 -18
  158. package/examples/js/objects/Water2.js +20 -19
  159. package/examples/js/physics/AmmoPhysics.js +23 -20
  160. package/examples/js/physics/OimoPhysics.js +19 -17
  161. package/examples/js/postprocessing/AdaptiveToneMappingPass.js +13 -20
  162. package/examples/js/postprocessing/AfterimagePass.js +19 -12
  163. package/examples/js/postprocessing/BloomPass.js +38 -17
  164. package/examples/js/postprocessing/BokehPass.js +29 -12
  165. package/examples/js/postprocessing/ClearPass.js +1 -6
  166. package/examples/js/postprocessing/CubeTexturePass.js +12 -9
  167. package/examples/js/postprocessing/DotScreenPass.js +7 -5
  168. package/examples/js/postprocessing/EffectComposer.js +25 -32
  169. package/examples/js/postprocessing/FilmPass.js +7 -5
  170. package/examples/js/postprocessing/GlitchPass.js +10 -11
  171. package/examples/js/postprocessing/HalftonePass.js +9 -9
  172. package/examples/js/postprocessing/LUTPass.js +2 -15
  173. package/examples/js/postprocessing/MaskPass.js +20 -17
  174. package/examples/js/postprocessing/OutlinePass.js +49 -38
  175. package/examples/js/postprocessing/Pass.js +11 -14
  176. package/examples/js/postprocessing/RenderPass.js +3 -7
  177. package/examples/js/postprocessing/RenderPixelatedPass.js +215 -0
  178. package/examples/js/postprocessing/SAOPass.js +40 -32
  179. package/examples/js/postprocessing/SMAAPass.js +34 -17
  180. package/examples/js/postprocessing/SSAARenderPass.js +14 -14
  181. package/examples/js/postprocessing/SSAOPass.js +56 -42
  182. package/examples/js/postprocessing/SSRPass.js +78 -61
  183. package/examples/js/postprocessing/SavePass.js +14 -6
  184. package/examples/js/postprocessing/ShaderPass.js +9 -8
  185. package/examples/js/postprocessing/TAARenderPass.js +11 -9
  186. package/examples/js/postprocessing/TexturePass.js +7 -4
  187. package/examples/js/postprocessing/UnrealBloomPass.js +43 -25
  188. package/examples/js/renderers/CSS2DRenderer.js +4 -23
  189. package/examples/js/renderers/CSS3DRenderer.js +5 -26
  190. package/examples/js/renderers/Projector.js +31 -108
  191. package/examples/js/renderers/SVGRenderer.js +4 -50
  192. package/examples/js/shaders/ACESFilmicToneMappingShader.js +3 -6
  193. package/examples/js/shaders/AfterimageShader.js +3 -6
  194. package/examples/js/shaders/BasicShader.js +3 -6
  195. package/examples/js/shaders/BleachBypassShader.js +3 -6
  196. package/examples/js/shaders/BlendShader.js +3 -6
  197. package/examples/js/shaders/BokehShader.js +3 -6
  198. package/examples/js/shaders/BokehShader2.js +4 -13
  199. package/examples/js/shaders/BrightnessContrastShader.js +3 -6
  200. package/examples/js/shaders/ColorCorrectionShader.js +2 -6
  201. package/examples/js/shaders/ColorifyShader.js +2 -6
  202. package/examples/js/shaders/ConvolutionShader.js +5 -10
  203. package/examples/js/shaders/CopyShader.js +3 -6
  204. package/examples/js/shaders/DOFMipMapShader.js +3 -6
  205. package/examples/js/shaders/DepthLimitedBlurShader.js +2 -9
  206. package/examples/js/shaders/DigitalGlitch.js +3 -6
  207. package/examples/js/shaders/DotScreenShader.js +2 -6
  208. package/examples/js/shaders/FXAAShader.js +1 -3
  209. package/examples/js/shaders/FilmShader.js +3 -6
  210. package/examples/js/shaders/FocusShader.js +3 -6
  211. package/examples/js/shaders/FreiChenShader.js +2 -6
  212. package/examples/js/shaders/GammaCorrectionShader.js +3 -6
  213. package/examples/js/shaders/GodRaysShader.js +11 -24
  214. package/examples/js/shaders/HalftoneShader.js +3 -6
  215. package/examples/js/shaders/HorizontalBlurShader.js +3 -6
  216. package/examples/js/shaders/HorizontalTiltShiftShader.js +3 -6
  217. package/examples/js/shaders/HueSaturationShader.js +3 -6
  218. package/examples/js/shaders/KaleidoShader.js +3 -6
  219. package/examples/js/shaders/LuminosityHighPassShader.js +2 -6
  220. package/examples/js/shaders/LuminosityShader.js +4 -7
  221. package/examples/js/shaders/MMDToonShader.js +2 -4
  222. package/examples/js/shaders/MirrorShader.js +3 -6
  223. package/examples/js/shaders/NormalMapShader.js +2 -6
  224. package/examples/js/shaders/RGBShiftShader.js +3 -6
  225. package/examples/js/shaders/SAOShader.js +2 -6
  226. package/examples/js/shaders/SMAAShader.js +6 -18
  227. package/examples/js/shaders/SSAOShader.js +2 -6
  228. package/examples/js/shaders/SSRShader.js +6 -18
  229. package/examples/js/shaders/SepiaShader.js +3 -6
  230. package/examples/js/shaders/SobelOperatorShader.js +2 -6
  231. package/examples/js/shaders/TechnicolorShader.js +3 -6
  232. package/examples/js/shaders/ToneMapShader.js +4 -7
  233. package/examples/js/shaders/ToonShader.js +8 -24
  234. package/examples/js/shaders/TriangleBlurShader.js +2 -6
  235. package/examples/js/shaders/UnpackDepthRGBAShader.js +3 -6
  236. package/examples/js/shaders/VelocityShader.js +126 -0
  237. package/examples/js/shaders/VerticalBlurShader.js +3 -6
  238. package/examples/js/shaders/VerticalTiltShiftShader.js +3 -6
  239. package/examples/js/shaders/VignetteShader.js +3 -6
  240. package/examples/js/shaders/VolumeShader.js +2 -6
  241. package/examples/js/shaders/WaterRefractionShader.js +2 -6
  242. package/examples/js/textures/FlakesTexture.js +0 -1
  243. package/examples/js/utils/BufferGeometryUtils.js +237 -171
  244. package/examples/js/utils/CameraUtils.js +5 -20
  245. package/examples/js/utils/GPUStatsPanel.js +3 -12
  246. package/examples/js/utils/GeometryCompressionUtils.js +19 -44
  247. package/examples/js/utils/GeometryUtils.js +15 -36
  248. package/examples/js/utils/LDrawUtils.js +8 -11
  249. package/examples/js/utils/PackedPhongMaterial.js +6 -4
  250. package/examples/js/utils/SceneUtils.js +109 -14
  251. package/examples/js/utils/ShadowMapViewer.js +17 -14
  252. package/examples/js/utils/SkeletonUtils.js +13 -27
  253. package/examples/js/utils/UVsDebug.js +20 -12
  254. package/examples/js/utils/WorkerPool.js +1 -11
  255. package/examples/jsm/animation/CCDIKSolver.js +27 -3
  256. package/examples/jsm/animation/MMDPhysics.js +28 -22
  257. package/examples/jsm/capabilities/WebGPU.js +3 -1
  258. package/examples/jsm/controls/ArcballControls.js +17 -2
  259. package/examples/jsm/controls/FirstPersonControls.js +20 -27
  260. package/examples/jsm/controls/FlyControls.js +16 -24
  261. package/examples/jsm/controls/OrbitControls.js +44 -9
  262. package/examples/jsm/controls/PointerLockControls.js +0 -7
  263. package/examples/jsm/controls/TrackballControls.js +14 -5
  264. package/examples/jsm/controls/TransformControls.js +18 -16
  265. package/examples/jsm/csm/CSM.js +1 -0
  266. package/examples/jsm/csm/CSMHelper.js +30 -0
  267. package/examples/jsm/effects/AnaglyphEffect.js +2 -2
  268. package/examples/jsm/effects/OutlineEffect.js +4 -25
  269. package/examples/jsm/effects/ParallaxBarrierEffect.js +2 -2
  270. package/examples/jsm/effects/PeppersGhostEffect.js +2 -2
  271. package/examples/jsm/effects/StereoEffect.js +2 -2
  272. package/examples/jsm/environments/RoomEnvironment.js +23 -0
  273. package/examples/jsm/exporters/ColladaExporter.js +4 -13
  274. package/examples/jsm/exporters/DRACOExporter.js +0 -13
  275. package/examples/jsm/exporters/GLTFExporter.js +29 -110
  276. package/examples/jsm/exporters/KTX2Exporter.js +29 -29
  277. package/examples/jsm/exporters/OBJExporter.js +0 -18
  278. package/examples/jsm/exporters/PLYExporter.js +14 -22
  279. package/examples/jsm/exporters/STLExporter.js +1 -9
  280. package/examples/jsm/exporters/USDZExporter.js +107 -4
  281. package/examples/jsm/geometries/ConvexGeometry.js +1 -1
  282. package/examples/jsm/geometries/ParametricGeometry.js +0 -6
  283. package/examples/jsm/helpers/OctreeHelper.js +22 -8
  284. package/examples/jsm/helpers/VertexNormalsHelper.js +7 -1
  285. package/examples/jsm/helpers/VertexTangentsHelper.js +7 -0
  286. package/examples/jsm/helpers/ViewHelper.js +24 -0
  287. package/examples/jsm/interactive/HTMLMesh.js +14 -15
  288. package/examples/jsm/interactive/InteractiveGroup.js +4 -2
  289. package/examples/jsm/interactive/SelectionHelper.js +5 -3
  290. package/examples/jsm/libs/flow.module.js +610 -160
  291. package/examples/jsm/libs/lottie_canvas.module.js +14844 -0
  292. package/examples/jsm/libs/meshopt_decoder.module.js +97 -32
  293. package/examples/jsm/libs/utif.module.js +1579 -0
  294. package/examples/jsm/libs/zstddec.module.js +1 -0
  295. package/examples/jsm/lines/LineSegments2.js +4 -0
  296. package/examples/jsm/loaders/3DMLoader.js +1 -2
  297. package/examples/jsm/loaders/ColladaLoader.js +29 -0
  298. package/examples/jsm/loaders/DRACOLoader.js +2 -28
  299. package/examples/jsm/loaders/EXRLoader.js +3 -13
  300. package/examples/jsm/loaders/FBXLoader.js +26 -3
  301. package/examples/jsm/loaders/FontLoader.js +3 -16
  302. package/examples/jsm/loaders/GLTFLoader.js +321 -464
  303. package/examples/jsm/loaders/HDRCubeTextureLoader.js +0 -13
  304. package/examples/jsm/loaders/KTX2Loader.js +254 -53
  305. package/examples/jsm/loaders/LDrawLoader.js +149 -87
  306. package/examples/jsm/loaders/LottieLoader.js +4 -2
  307. package/examples/jsm/loaders/MaterialXLoader.js +728 -0
  308. package/examples/jsm/loaders/OBJLoader.js +6 -14
  309. package/examples/jsm/loaders/PCDLoader.js +60 -14
  310. package/examples/jsm/loaders/PLYLoader.js +71 -19
  311. package/examples/jsm/loaders/RGBELoader.js +1 -1
  312. package/examples/jsm/loaders/SVGLoader.js +231 -17
  313. package/examples/jsm/loaders/TIFFLoader.js +36 -0
  314. package/examples/jsm/loaders/USDZLoader.js +633 -0
  315. package/examples/jsm/loaders/VRMLLoader.js +36 -26
  316. package/examples/jsm/loaders/VTKLoader.js +1 -1
  317. package/examples/jsm/loaders/lwo/LWO2Parser.js +6 -8
  318. package/examples/jsm/loaders/lwo/LWO3Parser.js +6 -8
  319. package/examples/jsm/materials/MeshGouraudMaterial.js +423 -0
  320. package/examples/jsm/math/ColorConverter.js +1 -49
  321. package/examples/jsm/math/ConvexHull.js +4 -4
  322. package/examples/jsm/math/Octree.js +1 -1
  323. package/examples/jsm/misc/GPUComputationRenderer.js +43 -0
  324. package/examples/jsm/misc/Volume.js +169 -171
  325. package/examples/jsm/misc/VolumeSlice.js +78 -80
  326. package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
  327. package/examples/jsm/node-editor/NodeEditor.js +91 -12
  328. package/examples/jsm/node-editor/accessors/MatcapUVEditor.js +1 -1
  329. package/examples/jsm/node-editor/accessors/NormalEditor.js +1 -1
  330. package/examples/jsm/node-editor/accessors/PositionEditor.js +1 -1
  331. package/examples/jsm/node-editor/accessors/UVEditor.js +1 -1
  332. package/examples/jsm/node-editor/core/BaseNode.js +10 -3
  333. package/examples/jsm/node-editor/display/BlendEditor.js +1 -1
  334. package/examples/jsm/node-editor/display/NormalMapEditor.js +1 -1
  335. package/examples/jsm/node-editor/inputs/ColorEditor.js +1 -1
  336. package/examples/jsm/node-editor/inputs/FloatEditor.js +1 -1
  337. package/examples/jsm/node-editor/inputs/SliderEditor.js +1 -1
  338. package/examples/jsm/node-editor/inputs/TextureEditor.js +1 -1
  339. package/examples/jsm/node-editor/inputs/Vector2Editor.js +1 -1
  340. package/examples/jsm/node-editor/inputs/Vector3Editor.js +1 -1
  341. package/examples/jsm/node-editor/inputs/Vector4Editor.js +1 -1
  342. package/examples/jsm/node-editor/materials/BasicMaterialEditor.js +7 -10
  343. package/examples/jsm/node-editor/materials/PointsMaterialEditor.js +1 -1
  344. package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +7 -10
  345. package/examples/jsm/node-editor/math/AngleEditor.js +4 -4
  346. package/examples/jsm/node-editor/math/DotEditor.js +1 -1
  347. package/examples/jsm/node-editor/math/InvertEditor.js +3 -3
  348. package/examples/jsm/node-editor/math/LimiterEditor.js +1 -1
  349. package/examples/jsm/node-editor/math/NormalizeEditor.js +1 -1
  350. package/examples/jsm/node-editor/math/OperatorEditor.js +1 -1
  351. package/examples/jsm/node-editor/math/PowerEditor.js +1 -1
  352. package/examples/jsm/node-editor/math/TrigonometryEditor.js +1 -1
  353. package/examples/jsm/node-editor/procedural/CheckerEditor.js +1 -1
  354. package/examples/jsm/node-editor/scene/MeshEditor.js +11 -8
  355. package/examples/jsm/node-editor/utils/JoinEditor.js +1 -1
  356. package/examples/jsm/node-editor/utils/OscillatorEditor.js +1 -1
  357. package/examples/jsm/node-editor/utils/PreviewEditor.js +7 -3
  358. package/examples/jsm/node-editor/utils/SplitEditor.js +1 -1
  359. package/examples/jsm/node-editor/utils/TimerEditor.js +1 -1
  360. package/examples/jsm/nodes/Nodes.js +70 -13
  361. package/examples/jsm/nodes/accessors/BitangentNode.js +62 -0
  362. package/examples/jsm/nodes/accessors/CubeTextureNode.js +9 -5
  363. package/examples/jsm/nodes/accessors/NormalNode.js +8 -8
  364. package/examples/jsm/nodes/accessors/Object3DNode.js +1 -1
  365. package/examples/jsm/nodes/accessors/PositionNode.js +11 -5
  366. package/examples/jsm/nodes/accessors/ReferenceNode.js +1 -1
  367. package/examples/jsm/nodes/accessors/ReflectVectorNode.js +31 -0
  368. package/examples/jsm/nodes/accessors/SkinningNode.js +8 -1
  369. package/examples/jsm/nodes/accessors/TangentNode.js +95 -0
  370. package/examples/jsm/nodes/core/AttributeNode.js +32 -9
  371. package/examples/jsm/nodes/core/CodeNode.js +3 -3
  372. package/examples/jsm/nodes/core/FunctionCallNode.js +20 -5
  373. package/examples/jsm/nodes/core/FunctionNode.js +2 -2
  374. package/examples/jsm/nodes/core/Node.js +15 -13
  375. package/examples/jsm/nodes/core/NodeBuilder.js +67 -18
  376. package/examples/jsm/nodes/core/NodeFrame.js +2 -2
  377. package/examples/jsm/nodes/core/NodeUtils.js +23 -1
  378. package/examples/jsm/nodes/core/NodeVarying.js +17 -0
  379. package/examples/jsm/nodes/core/VaryingNode.js +56 -0
  380. package/examples/jsm/nodes/core/constants.js +13 -13
  381. package/examples/jsm/nodes/display/BlendModeNode.js +85 -0
  382. package/examples/jsm/nodes/display/ColorAdjustmentNode.js +84 -0
  383. package/examples/jsm/nodes/display/NormalMapNode.js +19 -12
  384. package/examples/jsm/nodes/display/PosterizeNode.js +25 -0
  385. package/examples/jsm/nodes/display/ViewportNode.js +106 -0
  386. package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +5 -5
  387. package/examples/jsm/nodes/functions/PhysicalLightingModel.js +3 -3
  388. package/examples/jsm/nodes/functions/light/getDistanceAttenuation.js +2 -2
  389. package/examples/jsm/nodes/geometry/RangeNode.js +109 -0
  390. package/examples/jsm/nodes/gpgpu/ComputeNode.js +3 -1
  391. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +1 -1
  392. package/examples/jsm/nodes/lighting/EnvironmentNode.js +8 -7
  393. package/examples/jsm/nodes/lighting/LightingContextNode.js +4 -4
  394. package/examples/jsm/nodes/loaders/NodeLoader.js +2 -2
  395. package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +33 -0
  396. package/examples/jsm/nodes/materials/Materials.js +21 -31
  397. package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +70 -0
  398. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +4 -7
  399. package/examples/jsm/nodes/materials/NodeMaterial.js +11 -3
  400. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +28 -17
  401. package/examples/jsm/nodes/materialx/DISCLAIMER.md +199 -0
  402. package/examples/jsm/nodes/materialx/MaterialXNodes.js +59 -0
  403. package/examples/jsm/nodes/materialx/lib/mx_hsv.js +56 -0
  404. package/examples/jsm/nodes/materialx/lib/mx_noise.js +617 -0
  405. package/examples/jsm/nodes/materialx/lib/mx_transform_color.js +18 -0
  406. package/examples/jsm/nodes/math/MathNode.js +7 -17
  407. package/examples/jsm/nodes/math/OperatorNode.js +16 -3
  408. package/examples/jsm/nodes/parsers/GLSLNodeFunction.js +21 -6
  409. package/examples/jsm/nodes/procedural/CheckerNode.js +2 -2
  410. package/examples/jsm/nodes/shadernode/ShaderNode.js +40 -25
  411. package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +95 -68
  412. package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +49 -6
  413. package/examples/jsm/nodes/utils/ConvertNode.js +18 -12
  414. package/examples/jsm/nodes/utils/EquirectUVNode.js +27 -0
  415. package/examples/jsm/nodes/utils/JoinNode.js +15 -9
  416. package/examples/jsm/nodes/utils/MatcapUVNode.js +2 -4
  417. package/examples/jsm/nodes/utils/MaxMipLevelNode.js +3 -2
  418. package/examples/jsm/nodes/utils/OscNode.js +2 -2
  419. package/examples/jsm/nodes/utils/RemapNode.js +34 -0
  420. package/examples/jsm/nodes/utils/RotateUVNode.js +32 -0
  421. package/examples/jsm/nodes/utils/SplitNode.js +21 -5
  422. package/examples/jsm/nodes/utils/SpriteSheetUVNode.js +8 -10
  423. package/examples/jsm/nodes/utils/TimerNode.js +23 -3
  424. package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +51 -0
  425. package/examples/jsm/objects/GroundProjectedEnv.js +186 -0
  426. package/examples/jsm/objects/Reflector.js +12 -5
  427. package/examples/jsm/objects/ReflectorForSSRPass.js +3 -5
  428. package/examples/jsm/objects/Refractor.js +12 -6
  429. package/examples/jsm/objects/ShadowMesh.js +8 -2
  430. package/examples/jsm/postprocessing/AfterimagePass.js +17 -4
  431. package/examples/jsm/postprocessing/BloomPass.js +22 -3
  432. package/examples/jsm/postprocessing/BokehPass.js +18 -4
  433. package/examples/jsm/postprocessing/CubeTexturePass.js +12 -5
  434. package/examples/jsm/postprocessing/DotScreenPass.js +8 -0
  435. package/examples/jsm/postprocessing/EffectComposer.js +9 -0
  436. package/examples/jsm/postprocessing/FilmPass.js +8 -0
  437. package/examples/jsm/postprocessing/GlitchPass.js +13 -1
  438. package/examples/jsm/postprocessing/HalftonePass.js +8 -0
  439. package/examples/jsm/postprocessing/OutlinePass.js +25 -3
  440. package/examples/jsm/postprocessing/Pass.js +2 -0
  441. package/examples/jsm/postprocessing/RenderPixelatedPass.js +234 -0
  442. package/examples/jsm/postprocessing/SAOPass.js +20 -0
  443. package/examples/jsm/postprocessing/SMAAPass.js +16 -0
  444. package/examples/jsm/postprocessing/SSAARenderPass.js +4 -0
  445. package/examples/jsm/postprocessing/SavePass.js +17 -1
  446. package/examples/jsm/postprocessing/ShaderPass.js +8 -0
  447. package/examples/jsm/postprocessing/TAARenderPass.js +9 -0
  448. package/examples/jsm/postprocessing/TexturePass.js +8 -0
  449. package/examples/jsm/postprocessing/UnrealBloomPass.js +16 -0
  450. package/examples/jsm/renderers/CSS2DRenderer.js +2 -2
  451. package/examples/jsm/renderers/CSS3DRenderer.js +2 -2
  452. package/examples/jsm/renderers/Projector.js +2 -24
  453. package/examples/jsm/renderers/webgl/nodes/SlotNode.js +9 -5
  454. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +363 -231
  455. package/examples/jsm/renderers/webgl/nodes/WebGLNodes.js +7 -3
  456. package/examples/jsm/renderers/webgpu/WebGPUAnimation.js +58 -0
  457. package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +63 -5
  458. package/examples/jsm/renderers/webgpu/WebGPUBackground.js +68 -3
  459. package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +6 -0
  460. package/examples/jsm/renderers/webgpu/WebGPUGeometries.js +6 -0
  461. package/examples/jsm/renderers/webgpu/WebGPUObjects.js +1 -1
  462. package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +17 -19
  463. package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +16 -14
  464. package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +2 -2
  465. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +113 -93
  466. package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +5 -3
  467. package/examples/jsm/renderers/webgpu/WebGPUTextures.js +2 -2
  468. package/examples/jsm/renderers/webgpu/WebGPUUtils.js +81 -0
  469. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +63 -36
  470. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +1 -1
  471. package/examples/jsm/shaders/LuminosityShader.js +1 -1
  472. package/examples/jsm/shaders/MMDToonShader.js +2 -4
  473. package/examples/jsm/shaders/ToneMapShader.js +1 -1
  474. package/examples/jsm/shaders/VelocityShader.js +128 -0
  475. package/examples/jsm/utils/BufferGeometryUtils.js +176 -43
  476. package/examples/jsm/utils/GeometryUtils.js +17 -25
  477. package/examples/jsm/utils/PackedPhongMaterial.js +0 -1
  478. package/examples/jsm/utils/SceneUtils.js +117 -12
  479. package/examples/jsm/webxr/OculusHandModel.js +3 -2
  480. package/examples/jsm/webxr/OculusHandPointerModel.js +6 -1
  481. package/examples/jsm/webxr/VRButton.js +1 -7
  482. package/examples/jsm/webxr/XRHandMeshModel.js +8 -3
  483. package/package.json +22 -18
  484. package/src/Three.Legacy.js +262 -36
  485. package/src/Three.js +4 -2
  486. package/src/animation/AnimationAction.js +6 -5
  487. package/src/animation/AnimationClip.js +1 -1
  488. package/src/animation/AnimationMixer.js +1 -1
  489. package/src/animation/AnimationUtils.js +204 -199
  490. package/src/animation/KeyframeTrack.js +1 -1
  491. package/src/animation/PropertyBinding.js +31 -5
  492. package/src/audio/AudioContext.js +5 -5
  493. package/src/cameras/CubeCamera.js +14 -21
  494. package/src/constants.js +2 -4
  495. package/src/core/BufferAttribute.js +81 -111
  496. package/src/core/BufferGeometry.js +3 -41
  497. package/src/core/InstancedBufferAttribute.js +0 -10
  498. package/src/core/InstancedBufferGeometry.js +1 -7
  499. package/src/core/InterleavedBuffer.js +1 -1
  500. package/src/core/InterleavedBufferAttribute.js +57 -8
  501. package/src/core/Object3D.js +22 -5
  502. package/src/core/Uniform.js +0 -7
  503. package/src/core/UniformsGroup.js +92 -0
  504. package/src/extras/DataUtils.js +104 -88
  505. package/src/extras/Earcut.js +67 -67
  506. package/src/extras/core/Path.js +1 -0
  507. package/src/extras/core/ShapePath.js +1 -4
  508. package/src/extras/curves/CatmullRomCurve3.js +4 -2
  509. package/src/geometries/BoxGeometry.js +1 -1
  510. package/src/geometries/CapsuleGeometry.js +1 -1
  511. package/src/geometries/CircleGeometry.js +1 -1
  512. package/src/geometries/ConeGeometry.js +1 -1
  513. package/src/geometries/CylinderGeometry.js +2 -1
  514. package/src/geometries/DodecahedronGeometry.js +1 -1
  515. package/src/geometries/EdgesGeometry.js +5 -4
  516. package/src/geometries/ExtrudeGeometry.js +2 -11
  517. package/src/geometries/IcosahedronGeometry.js +1 -1
  518. package/src/geometries/LatheGeometry.js +2 -2
  519. package/src/geometries/OctahedronGeometry.js +1 -1
  520. package/src/geometries/PlaneGeometry.js +2 -1
  521. package/src/geometries/PolyhedronGeometry.js +2 -2
  522. package/src/geometries/RingGeometry.js +1 -1
  523. package/src/geometries/ShapeGeometry.js +3 -2
  524. package/src/geometries/SphereGeometry.js +2 -1
  525. package/src/geometries/TetrahedronGeometry.js +1 -1
  526. package/src/geometries/TorusGeometry.js +2 -1
  527. package/src/geometries/TorusKnotGeometry.js +2 -1
  528. package/src/geometries/TubeGeometry.js +2 -1
  529. package/src/geometries/WireframeGeometry.js +1 -0
  530. package/src/helpers/ArrowHelper.js +9 -0
  531. package/src/helpers/Box3Helper.js +7 -0
  532. package/src/helpers/BoxHelper.js +7 -1
  533. package/src/helpers/CameraHelper.js +97 -38
  534. package/src/helpers/DirectionalLightHelper.js +6 -1
  535. package/src/helpers/GridHelper.js +7 -0
  536. package/src/helpers/HemisphereLightHelper.js +5 -1
  537. package/src/helpers/PlaneHelper.js +15 -9
  538. package/src/helpers/PointLightHelper.js +2 -1
  539. package/src/helpers/PolarGridHelper.js +25 -14
  540. package/src/helpers/SkeletonHelper.js +7 -0
  541. package/src/helpers/SpotLightHelper.js +5 -2
  542. package/src/lights/LightShadow.js +1 -2
  543. package/src/lights/PointLight.js +2 -2
  544. package/src/lights/SpotLight.js +4 -2
  545. package/src/loaders/FileLoader.js +16 -2
  546. package/src/loaders/LoadingManager.js +1 -1
  547. package/src/loaders/MaterialLoader.js +49 -7
  548. package/src/loaders/ObjectLoader.js +9 -42
  549. package/src/materials/Material.js +2 -34
  550. package/src/materials/Materials.js +0 -27
  551. package/src/materials/MeshLambertMaterial.js +28 -1
  552. package/src/materials/MeshPhysicalMaterial.js +1 -1
  553. package/src/materials/ShaderMaterial.js +3 -7
  554. package/src/math/Color.js +8 -18
  555. package/src/math/MathUtils.js +1 -7
  556. package/src/math/Matrix3.js +54 -25
  557. package/src/math/Matrix4.js +3 -27
  558. package/src/math/Quaternion.js +1 -21
  559. package/src/math/Ray.js +2 -5
  560. package/src/math/Sphere.js +36 -21
  561. package/src/math/Vector2.js +4 -24
  562. package/src/math/Vector3.js +7 -46
  563. package/src/math/Vector4.js +4 -24
  564. package/src/objects/InstancedMesh.js +7 -0
  565. package/src/objects/LOD.js +25 -6
  566. package/src/renderers/WebGL3DRenderTarget.js +1 -1
  567. package/src/renderers/WebGLArrayRenderTarget.js +1 -1
  568. package/src/renderers/WebGLCubeRenderTarget.js +1 -1
  569. package/src/renderers/WebGLMultipleRenderTargets.js +1 -1
  570. package/src/renderers/WebGLRenderTarget.js +1 -1
  571. package/src/renderers/WebGLRenderer.js +119 -69
  572. package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +12 -12
  573. package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +3 -5
  574. package/src/renderers/shaders/ShaderChunk/common.glsl.js +6 -5
  575. package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +24 -24
  576. package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +0 -4
  577. package/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl.js +1 -1
  578. package/src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl.js +1 -1
  579. package/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js +2 -1
  580. package/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js +113 -99
  581. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +34 -13
  582. package/src/renderers/shaders/ShaderChunk/lights_lambert_fragment.glsl.js +5 -0
  583. package/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js +28 -0
  584. package/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl.js +0 -2
  585. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +3 -1
  586. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +13 -1
  587. package/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl.js +0 -2
  588. package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +2 -4
  589. package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +2 -4
  590. package/src/renderers/shaders/ShaderChunk/output_fragment.glsl.js +1 -1
  591. package/src/renderers/shaders/ShaderChunk/packing.glsl.js +8 -0
  592. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +18 -7
  593. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +8 -3
  594. package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +9 -6
  595. package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +1 -1
  596. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +14 -10
  597. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +2 -2
  598. package/src/renderers/shaders/ShaderChunk/worldpos_vertex.glsl.js +1 -1
  599. package/src/renderers/shaders/ShaderChunk.js +7 -2
  600. package/src/renderers/shaders/ShaderLib/background.glsl.js +7 -2
  601. package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +62 -0
  602. package/src/renderers/shaders/ShaderLib/cube.glsl.js +4 -6
  603. package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +0 -1
  604. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +22 -50
  605. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +0 -1
  606. package/src/renderers/shaders/ShaderLib/vsm.glsl.js +0 -3
  607. package/src/renderers/shaders/ShaderLib.js +50 -36
  608. package/src/renderers/shaders/UniformsLib.js +13 -12
  609. package/src/renderers/shaders/UniformsUtils.js +29 -0
  610. package/src/renderers/webgl/WebGLAttributes.js +2 -0
  611. package/src/renderers/webgl/WebGLBackground.js +17 -9
  612. package/src/renderers/webgl/WebGLLights.js +37 -17
  613. package/src/renderers/webgl/WebGLMaterials.js +2 -1
  614. package/src/renderers/webgl/WebGLMorphtargets.js +0 -20
  615. package/src/renderers/webgl/WebGLProgram.js +6 -11
  616. package/src/renderers/webgl/WebGLPrograms.js +30 -26
  617. package/src/renderers/webgl/WebGLRenderLists.js +5 -4
  618. package/src/renderers/webgl/WebGLRenderStates.js +5 -4
  619. package/src/renderers/webgl/WebGLShaderCache.js +9 -6
  620. package/src/renderers/webgl/WebGLShadowMap.js +13 -16
  621. package/src/renderers/webgl/WebGLState.js +125 -41
  622. package/src/renderers/webgl/WebGLTextures.js +94 -39
  623. package/src/renderers/webgl/WebGLUniforms.js +156 -28
  624. package/src/renderers/webgl/WebGLUniformsGroups.js +372 -0
  625. package/src/renderers/webgl/WebGLUtils.js +3 -1
  626. package/src/renderers/webvr/WebVRManager.js +42 -9
  627. package/src/renderers/webvr/WebVRUtils.js +1 -1
  628. package/src/renderers/webxr/WebXRController.js +91 -50
  629. package/src/renderers/webxr/WebXRManager.js +127 -34
  630. package/src/scenes/Scene.js +24 -3
  631. package/src/textures/CompressedArrayTexture.js +18 -0
  632. package/src/textures/Source.js +1 -1
  633. package/src/textures/Texture.js +2 -1
  634. package/src/utils.js +1 -1
  635. package/examples/js/controls/experimental/CameraControls.js +0 -1048
  636. package/examples/js/libs/lottie_canvas.js +0 -12751
  637. package/examples/js/loaders/KTX2Loader.js +0 -558
  638. package/examples/js/shaders/PixelShader.js +0 -51
  639. package/examples/jsm/controls/experimental/CameraControls.js +0 -1248
  640. package/examples/jsm/nodes/accessors/ReflectNode.js +0 -70
  641. package/examples/jsm/nodes/core/NodeVary.js +0 -14
  642. package/examples/jsm/nodes/core/VaryNode.js +0 -54
  643. package/examples/jsm/package.json +0 -3
  644. package/examples/jsm/renderers/webgl/nodes/WebGLPhysicalContextNode.js +0 -45
  645. package/examples/jsm/shaders/PixelShader.js +0 -44
  646. package/src/renderers/shaders/ShaderChunk/lights_lambert_vertex.glsl.js +0 -122
@@ -258,19 +258,17 @@ class VRMLLoader extends Loader {
258
258
 
259
259
  // the visitor is created dynmaically based on the given base class
260
260
 
261
- function VRMLToASTVisitor() {
261
+ class VRMLToASTVisitor extends BaseVRMLVisitor {
262
262
 
263
- BaseVRMLVisitor.call( this );
263
+ constructor() {
264
264
 
265
- this.validateVisitor();
265
+ super();
266
266
 
267
- }
268
-
269
- VRMLToASTVisitor.prototype = Object.assign( Object.create( BaseVRMLVisitor.prototype ), {
267
+ this.validateVisitor();
270
268
 
271
- constructor: VRMLToASTVisitor,
269
+ }
272
270
 
273
- vrml: function ( ctx ) {
271
+ vrml( ctx ) {
274
272
 
275
273
  const data = {
276
274
  version: this.visit( ctx.version ),
@@ -300,15 +298,15 @@ class VRMLLoader extends Loader {
300
298
 
301
299
  return data;
302
300
 
303
- },
301
+ }
304
302
 
305
- version: function ( ctx ) {
303
+ version( ctx ) {
306
304
 
307
305
  return ctx.Version[ 0 ].image;
308
306
 
309
- },
307
+ }
310
308
 
311
- node: function ( ctx ) {
309
+ node( ctx ) {
312
310
 
313
311
  const data = {
314
312
  name: ctx.NodeName[ 0 ].image,
@@ -337,9 +335,9 @@ class VRMLLoader extends Loader {
337
335
 
338
336
  return data;
339
337
 
340
- },
338
+ }
341
339
 
342
- field: function ( ctx ) {
340
+ field( ctx ) {
343
341
 
344
342
  const data = {
345
343
  name: ctx.Identifier[ 0 ].image,
@@ -370,33 +368,33 @@ class VRMLLoader extends Loader {
370
368
 
371
369
  return data;
372
370
 
373
- },
371
+ }
374
372
 
375
- def: function ( ctx ) {
373
+ def( ctx ) {
376
374
 
377
375
  return ( ctx.Identifier || ctx.NodeName )[ 0 ].image;
378
376
 
379
- },
377
+ }
380
378
 
381
- use: function ( ctx ) {
379
+ use( ctx ) {
382
380
 
383
381
  return { USE: ( ctx.Identifier || ctx.NodeName )[ 0 ].image };
384
382
 
385
- },
383
+ }
386
384
 
387
- singleFieldValue: function ( ctx ) {
385
+ singleFieldValue( ctx ) {
388
386
 
389
387
  return processField( this, ctx );
390
388
 
391
- },
389
+ }
392
390
 
393
- multiFieldValue: function ( ctx ) {
391
+ multiFieldValue( ctx ) {
394
392
 
395
393
  return processField( this, ctx );
396
394
 
397
- },
395
+ }
398
396
 
399
- route: function ( ctx ) {
397
+ route( ctx ) {
400
398
 
401
399
  const data = {
402
400
  FROM: ctx.RouteIdentifier[ 0 ].image,
@@ -407,7 +405,7 @@ class VRMLLoader extends Loader {
407
405
 
408
406
  }
409
407
 
410
- } );
408
+ }
411
409
 
412
410
  function processField( scope, ctx ) {
413
411
 
@@ -627,6 +625,7 @@ class VRMLLoader extends Loader {
627
625
 
628
626
  switch ( nodeName ) {
629
627
 
628
+ case 'Anchor':
630
629
  case 'Group':
631
630
  case 'Transform':
632
631
  case 'Collision':
@@ -708,7 +707,6 @@ class VRMLLoader extends Loader {
708
707
  build = buildWorldInfoNode( node );
709
708
  break;
710
709
 
711
- case 'Anchor':
712
710
  case 'Billboard':
713
711
 
714
712
  case 'Inline':
@@ -796,10 +794,18 @@ class VRMLLoader extends Loader {
796
794
  parseFieldChildren( fieldValues, object );
797
795
  break;
798
796
 
797
+ case 'description':
798
+ // field not supported
799
+ break;
800
+
799
801
  case 'collide':
800
802
  // field not supported
801
803
  break;
802
804
 
805
+ case 'parameter':
806
+ // field not supported
807
+ break;
808
+
803
809
  case 'rotation':
804
810
  const axis = new Vector3( fieldValues[ 0 ], fieldValues[ 1 ], fieldValues[ 2 ] );
805
811
  const angle = fieldValues[ 3 ];
@@ -822,6 +828,10 @@ class VRMLLoader extends Loader {
822
828
  // field not supported
823
829
  break;
824
830
 
831
+ case 'url':
832
+ // field not supported
833
+ break;
834
+
825
835
  default:
826
836
  console.warn( 'THREE.VRMLLoader: Unknown field:', fieldName );
827
837
  break;
@@ -910,7 +910,7 @@ class VTKLoader extends Loader {
910
910
 
911
911
  let arr;
912
912
 
913
- if ( Object.prototype.toString.call( section.DataArray ) === '[object Array]' ) {
913
+ if ( Array.isArray( section.DataArray ) ) {
914
914
 
915
915
  arr = section.DataArray;
916
916
 
@@ -1,14 +1,12 @@
1
- function LWO2Parser( IFFParser ) {
1
+ class LWO2Parser {
2
2
 
3
- this.IFF = IFFParser;
3
+ constructor( IFFParser ) {
4
4
 
5
- }
6
-
7
- LWO2Parser.prototype = {
5
+ this.IFF = IFFParser;
8
6
 
9
- constructor: LWO2Parser,
7
+ }
10
8
 
11
- parseBlock: function () {
9
+ parseBlock() {
12
10
 
13
11
  this.IFF.debugger.offset = this.IFF.reader.offset;
14
12
  this.IFF.debugger.closeForms();
@@ -411,6 +409,6 @@ LWO2Parser.prototype = {
411
409
 
412
410
  }
413
411
 
414
- };
412
+ }
415
413
 
416
414
  export { LWO2Parser };
@@ -1,14 +1,12 @@
1
- function LWO3Parser( IFFParser ) {
1
+ class LWO3Parser {
2
2
 
3
- this.IFF = IFFParser;
3
+ constructor( IFFParser ) {
4
4
 
5
- }
6
-
7
- LWO3Parser.prototype = {
5
+ this.IFF = IFFParser;
8
6
 
9
- constructor: LWO3Parser,
7
+ }
10
8
 
11
- parseBlock: function () {
9
+ parseBlock() {
12
10
 
13
11
  this.IFF.debugger.offset = this.IFF.reader.offset;
14
12
  this.IFF.debugger.closeForms();
@@ -370,6 +368,6 @@ LWO3Parser.prototype = {
370
368
 
371
369
  }
372
370
 
373
- };
371
+ }
374
372
 
375
373
  export { LWO3Parser };
@@ -0,0 +1,423 @@
1
+ /**
2
+ * MeshGouraudMaterial
3
+ *
4
+ * Lambert illumination model with Gouraud (per-vertex) shading
5
+ *
6
+ */
7
+
8
+ import { UniformsUtils, UniformsLib, ShaderMaterial, Color, MultiplyOperation } from 'three';
9
+
10
+ const GouraudShader = {
11
+
12
+ uniforms: UniformsUtils.merge( [
13
+ UniformsLib.common,
14
+ UniformsLib.specularmap,
15
+ UniformsLib.envmap,
16
+ UniformsLib.aomap,
17
+ UniformsLib.lightmap,
18
+ UniformsLib.emissivemap,
19
+ UniformsLib.fog,
20
+ UniformsLib.lights,
21
+ {
22
+ emissive: { value: new Color( 0x000000 ) }
23
+ }
24
+ ] ),
25
+
26
+ vertexShader: /* glsl */`
27
+
28
+ #define GOURAUD
29
+
30
+ varying vec3 vLightFront;
31
+ varying vec3 vIndirectFront;
32
+
33
+ #ifdef DOUBLE_SIDED
34
+ varying vec3 vLightBack;
35
+ varying vec3 vIndirectBack;
36
+ #endif
37
+
38
+ #include <common>
39
+ #include <uv_pars_vertex>
40
+ #include <uv2_pars_vertex>
41
+ #include <envmap_pars_vertex>
42
+ #include <bsdfs>
43
+ #include <lights_pars_begin>
44
+ #include <color_pars_vertex>
45
+ #include <fog_pars_vertex>
46
+ #include <morphtarget_pars_vertex>
47
+ #include <skinning_pars_vertex>
48
+ #include <shadowmap_pars_vertex>
49
+ #include <logdepthbuf_pars_vertex>
50
+ #include <clipping_planes_pars_vertex>
51
+
52
+ void main() {
53
+
54
+ #include <uv_vertex>
55
+ #include <uv2_vertex>
56
+ #include <color_vertex>
57
+ #include <morphcolor_vertex>
58
+
59
+ #include <beginnormal_vertex>
60
+ #include <morphnormal_vertex>
61
+ #include <skinbase_vertex>
62
+ #include <skinnormal_vertex>
63
+ #include <defaultnormal_vertex>
64
+
65
+ #include <begin_vertex>
66
+ #include <morphtarget_vertex>
67
+ #include <skinning_vertex>
68
+ #include <project_vertex>
69
+ #include <logdepthbuf_vertex>
70
+ #include <clipping_planes_vertex>
71
+
72
+ #include <worldpos_vertex>
73
+ #include <envmap_vertex>
74
+
75
+ // inlining legacy <lights_lambert_vertex>
76
+
77
+ vec3 diffuse = vec3( 1.0 );
78
+
79
+ GeometricContext geometry;
80
+ geometry.position = mvPosition.xyz;
81
+ geometry.normal = normalize( transformedNormal );
82
+ geometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );
83
+
84
+ GeometricContext backGeometry;
85
+ backGeometry.position = geometry.position;
86
+ backGeometry.normal = -geometry.normal;
87
+ backGeometry.viewDir = geometry.viewDir;
88
+
89
+ vLightFront = vec3( 0.0 );
90
+ vIndirectFront = vec3( 0.0 );
91
+ #ifdef DOUBLE_SIDED
92
+ vLightBack = vec3( 0.0 );
93
+ vIndirectBack = vec3( 0.0 );
94
+ #endif
95
+
96
+ IncidentLight directLight;
97
+ float dotNL;
98
+ vec3 directLightColor_Diffuse;
99
+
100
+ vIndirectFront += getAmbientLightIrradiance( ambientLightColor );
101
+
102
+ vIndirectFront += getLightProbeIrradiance( lightProbe, geometry.normal );
103
+
104
+ #ifdef DOUBLE_SIDED
105
+
106
+ vIndirectBack += getAmbientLightIrradiance( ambientLightColor );
107
+
108
+ vIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry.normal );
109
+
110
+ #endif
111
+
112
+ #if NUM_POINT_LIGHTS > 0
113
+
114
+ #pragma unroll_loop_start
115
+ for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {
116
+
117
+ getPointLightInfo( pointLights[ i ], geometry, directLight );
118
+
119
+ dotNL = dot( geometry.normal, directLight.direction );
120
+ directLightColor_Diffuse = directLight.color;
121
+
122
+ vLightFront += saturate( dotNL ) * directLightColor_Diffuse;
123
+
124
+ #ifdef DOUBLE_SIDED
125
+
126
+ vLightBack += saturate( - dotNL ) * directLightColor_Diffuse;
127
+
128
+ #endif
129
+
130
+ }
131
+ #pragma unroll_loop_end
132
+
133
+ #endif
134
+
135
+ #if NUM_SPOT_LIGHTS > 0
136
+
137
+ #pragma unroll_loop_start
138
+ for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {
139
+
140
+ getSpotLightInfo( spotLights[ i ], geometry, directLight );
141
+
142
+ dotNL = dot( geometry.normal, directLight.direction );
143
+ directLightColor_Diffuse = directLight.color;
144
+
145
+ vLightFront += saturate( dotNL ) * directLightColor_Diffuse;
146
+
147
+ #ifdef DOUBLE_SIDED
148
+
149
+ vLightBack += saturate( - dotNL ) * directLightColor_Diffuse;
150
+
151
+ #endif
152
+ }
153
+ #pragma unroll_loop_end
154
+
155
+ #endif
156
+
157
+ #if NUM_DIR_LIGHTS > 0
158
+
159
+ #pragma unroll_loop_start
160
+ for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {
161
+
162
+ getDirectionalLightInfo( directionalLights[ i ], geometry, directLight );
163
+
164
+ dotNL = dot( geometry.normal, directLight.direction );
165
+ directLightColor_Diffuse = directLight.color;
166
+
167
+ vLightFront += saturate( dotNL ) * directLightColor_Diffuse;
168
+
169
+ #ifdef DOUBLE_SIDED
170
+
171
+ vLightBack += saturate( - dotNL ) * directLightColor_Diffuse;
172
+
173
+ #endif
174
+
175
+ }
176
+ #pragma unroll_loop_end
177
+
178
+ #endif
179
+
180
+ #if NUM_HEMI_LIGHTS > 0
181
+
182
+ #pragma unroll_loop_start
183
+ for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {
184
+
185
+ vIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );
186
+
187
+ #ifdef DOUBLE_SIDED
188
+
189
+ vIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry.normal );
190
+
191
+ #endif
192
+
193
+ }
194
+ #pragma unroll_loop_end
195
+
196
+ #endif
197
+
198
+ #include <shadowmap_vertex>
199
+ #include <fog_vertex>
200
+
201
+ }`,
202
+
203
+ fragmentShader: /* glsl */`
204
+
205
+ #define GOURAUD
206
+
207
+ uniform vec3 diffuse;
208
+ uniform vec3 emissive;
209
+ uniform float opacity;
210
+
211
+ varying vec3 vLightFront;
212
+ varying vec3 vIndirectFront;
213
+
214
+ #ifdef DOUBLE_SIDED
215
+ varying vec3 vLightBack;
216
+ varying vec3 vIndirectBack;
217
+ #endif
218
+
219
+ #include <common>
220
+ #include <packing>
221
+ #include <dithering_pars_fragment>
222
+ #include <color_pars_fragment>
223
+ #include <uv_pars_fragment>
224
+ #include <uv2_pars_fragment>
225
+ #include <map_pars_fragment>
226
+ #include <alphamap_pars_fragment>
227
+ #include <alphatest_pars_fragment>
228
+ #include <aomap_pars_fragment>
229
+ #include <lightmap_pars_fragment>
230
+ #include <emissivemap_pars_fragment>
231
+ #include <envmap_common_pars_fragment>
232
+ #include <envmap_pars_fragment>
233
+ #include <bsdfs>
234
+ #include <lights_pars_begin>
235
+ #include <fog_pars_fragment>
236
+ #include <shadowmap_pars_fragment>
237
+ #include <shadowmask_pars_fragment>
238
+ #include <specularmap_pars_fragment>
239
+ #include <logdepthbuf_pars_fragment>
240
+ #include <clipping_planes_pars_fragment>
241
+
242
+ void main() {
243
+
244
+ #include <clipping_planes_fragment>
245
+
246
+ vec4 diffuseColor = vec4( diffuse, opacity );
247
+ ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
248
+ vec3 totalEmissiveRadiance = emissive;
249
+
250
+ #include <logdepthbuf_fragment>
251
+ #include <map_fragment>
252
+ #include <color_fragment>
253
+ #include <alphamap_fragment>
254
+ #include <alphatest_fragment>
255
+ #include <specularmap_fragment>
256
+ #include <emissivemap_fragment>
257
+
258
+ // accumulation
259
+
260
+ #ifdef DOUBLE_SIDED
261
+
262
+ reflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;
263
+
264
+ #else
265
+
266
+ reflectedLight.indirectDiffuse += vIndirectFront;
267
+
268
+ #endif
269
+
270
+ #include <lightmap_fragment>
271
+
272
+ reflectedLight.indirectDiffuse *= BRDF_Lambert( diffuseColor.rgb );
273
+
274
+ #ifdef DOUBLE_SIDED
275
+
276
+ reflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;
277
+
278
+ #else
279
+
280
+ reflectedLight.directDiffuse = vLightFront;
281
+
282
+ #endif
283
+
284
+ reflectedLight.directDiffuse *= BRDF_Lambert( diffuseColor.rgb ) * getShadowMask();
285
+
286
+ // modulation
287
+
288
+ #include <aomap_fragment>
289
+
290
+ vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
291
+
292
+ #include <envmap_fragment>
293
+
294
+ #include <output_fragment>
295
+ #include <tonemapping_fragment>
296
+ #include <encodings_fragment>
297
+ #include <fog_fragment>
298
+ #include <premultiplied_alpha_fragment>
299
+ #include <dithering_fragment>
300
+
301
+ }`
302
+
303
+ };
304
+
305
+ //
306
+
307
+ class MeshGouraudMaterial extends ShaderMaterial {
308
+
309
+ constructor( parameters ) {
310
+
311
+ super();
312
+
313
+ this.isMeshGouraudMaterial = true;
314
+
315
+ this.type = 'MeshGouraudMaterial';
316
+
317
+ //this.color = new THREE.Color( 0xffffff ); // diffuse
318
+
319
+ //this.map = null;
320
+
321
+ //this.lightMap = null;
322
+ //this.lightMapIntensity = 1.0;
323
+
324
+ //this.aoMap = null;
325
+ //this.aoMapIntensity = 1.0;
326
+
327
+ //this.emissive = new THREE.Color( 0x000000 );
328
+ //this.emissiveIntensity = 1.0;
329
+ //this.emissiveMap = null;
330
+
331
+ //this.specularMap = null;
332
+
333
+ //this.alphaMap = null;
334
+
335
+ //this.envMap = null;
336
+ this.combine = MultiplyOperation; // combine has no uniform
337
+ //this.reflectivity = 1;
338
+ //this.refractionRatio = 0.98;
339
+
340
+ this.fog = false; // set to use scene fog
341
+ this.lights = true; // set to use scene lights
342
+ this.clipping = false; // set to use user-defined clipping planes
343
+
344
+ const shader = GouraudShader;
345
+
346
+ this.defines = Object.assign( {}, shader.defines );
347
+ this.uniforms = UniformsUtils.clone( shader.uniforms );
348
+ this.vertexShader = shader.vertexShader;
349
+ this.fragmentShader = shader.fragmentShader;
350
+
351
+ const exposePropertyNames = [
352
+ 'map', 'lightMap', 'lightMapIntensity', 'aoMap', 'aoMapIntensity',
353
+ 'emissive', 'emissiveIntensity', 'emissiveMap', 'specularMap', 'alphaMap',
354
+ 'envMap', 'reflectivity', 'refractionRatio', 'opacity', 'diffuse'
355
+ ];
356
+
357
+ for ( const propertyName of exposePropertyNames ) {
358
+
359
+ Object.defineProperty( this, propertyName, {
360
+
361
+ get: function () {
362
+
363
+ return this.uniforms[ propertyName ].value;
364
+
365
+ },
366
+
367
+ set: function ( value ) {
368
+
369
+ this.uniforms[ propertyName ].value = value;
370
+
371
+ }
372
+
373
+ } );
374
+
375
+ }
376
+
377
+ Object.defineProperty( this, 'color', Object.getOwnPropertyDescriptor( this, 'diffuse' ) );
378
+
379
+ this.setValues( parameters );
380
+
381
+ }
382
+
383
+ copy( source ) {
384
+
385
+ super.copy( source );
386
+
387
+ this.color.copy( source.color );
388
+
389
+ this.map = source.map;
390
+
391
+ this.lightMap = source.lightMap;
392
+ this.lightMapIntensity = source.lightMapIntensity;
393
+
394
+ this.aoMap = source.aoMap;
395
+ this.aoMapIntensity = source.aoMapIntensity;
396
+
397
+ this.emissive.copy( source.emissive );
398
+ this.emissiveMap = source.emissiveMap;
399
+ this.emissiveIntensity = source.emissiveIntensity;
400
+
401
+ this.specularMap = source.specularMap;
402
+
403
+ this.alphaMap = source.alphaMap;
404
+
405
+ this.envMap = source.envMap;
406
+ this.combine = source.combine;
407
+ this.reflectivity = source.reflectivity;
408
+ this.refractionRatio = source.refractionRatio;
409
+
410
+ this.wireframe = source.wireframe;
411
+ this.wireframeLinewidth = source.wireframeLinewidth;
412
+ this.wireframeLinecap = source.wireframeLinecap;
413
+ this.wireframeLinejoin = source.wireframeLinejoin;
414
+
415
+ this.fog = source.fog;
416
+
417
+ return this;
418
+
419
+ }
420
+
421
+ }
422
+
423
+ export { MeshGouraudMaterial };
@@ -1,6 +1,4 @@
1
- import {
2
- MathUtils
3
- } from 'three';
1
+ import { MathUtils } from 'three';
4
2
 
5
3
  const _hsl = {};
6
4
 
@@ -20,13 +18,6 @@ class ColorConverter {
20
18
 
21
19
  static getHSV( color, target ) {
22
20
 
23
- if ( target === undefined ) {
24
-
25
- console.warn( 'THREE.ColorConverter: .getHSV() target is now required' );
26
- target = { h: 0, s: 0, l: 0 };
27
-
28
- }
29
-
30
21
  color.getHSL( _hsl );
31
22
 
32
23
  // based on https://gist.github.com/xpansive/1337890#file-index-js
@@ -40,45 +31,6 @@ class ColorConverter {
40
31
 
41
32
  }
42
33
 
43
- // where c, m, y, k is between 0 and 1
44
-
45
- static setCMYK( color, c, m, y, k ) {
46
-
47
- const r = ( 1 - c ) * ( 1 - k );
48
- const g = ( 1 - m ) * ( 1 - k );
49
- const b = ( 1 - y ) * ( 1 - k );
50
-
51
- return color.setRGB( r, g, b );
52
-
53
- }
54
-
55
- static getCMYK( color, target ) {
56
-
57
- if ( target === undefined ) {
58
-
59
- console.warn( 'THREE.ColorConverter: .getCMYK() target is now required' );
60
- target = { c: 0, m: 0, y: 0, k: 0 };
61
-
62
- }
63
-
64
- const r = color.r;
65
- const g = color.g;
66
- const b = color.b;
67
-
68
- const k = 1 - Math.max( r, g, b );
69
- const c = ( 1 - r - k ) / ( 1 - k );
70
- const m = ( 1 - g - k ) / ( 1 - k );
71
- const y = ( 1 - b - k ) / ( 1 - k );
72
-
73
- target.c = c;
74
- target.m = m;
75
- target.y = y;
76
- target.k = k;
77
-
78
- return target;
79
-
80
- }
81
-
82
34
  }
83
35
 
84
36
  export { ColorConverter };