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
@@ -1,7 +1,7 @@
1
1
  import { SelectInput, Element, LabelElement } from '../../libs/flow.module.js';
2
2
  import { BaseNode } from '../core/BaseNode.js';
3
3
  import { Vector3 } from 'three';
4
- import { MathNode, UniformNode } from 'three-nodes/Nodes.js';
4
+ import { MathNode, UniformNode } from 'three/nodes';
5
5
 
6
6
  const DEFAULT_VALUE = new UniformNode( new Vector3() );
7
7
 
@@ -14,9 +14,9 @@ export class AngleEditor extends BaseNode {
14
14
  super( 'Angle', 1, node, 175 );
15
15
 
16
16
  const optionsField = new SelectInput( [
17
- { name: 'Degrees to Radians', value: MathNode.RAD },
18
- { name: 'Radians to Degrees', value: MathNode.DEG }
19
- ], MathNode.RAD ).onChange( () => {
17
+ { name: 'Degrees to Radians', value: MathNode.RADIANS },
18
+ { name: 'Radians to Degrees', value: MathNode.DEGREES }
19
+ ], MathNode.RADIANS ).onChange( () => {
20
20
 
21
21
  node.method = optionsField.getValue();
22
22
 
@@ -1,6 +1,6 @@
1
1
  import { LabelElement } from '../../libs/flow.module.js';
2
2
  import { BaseNode } from '../core/BaseNode.js';
3
- import { MathNode, UniformNode } from 'three-nodes/Nodes.js';
3
+ import { MathNode, UniformNode } from 'three/nodes';
4
4
 
5
5
  const NULL_VALUE = new UniformNode( 0 );
6
6
 
@@ -1,6 +1,6 @@
1
- import { SelectInput, LabelElement } from '../../libs/flow.module.js';
1
+ import { SelectInput, Element, LabelElement } from '../../libs/flow.module.js';
2
2
  import { BaseNode } from '../core/BaseNode.js';
3
- import { MathNode, UniformNode } from 'three-nodes/Nodes.js';
3
+ import { MathNode, UniformNode } from 'three/nodes';
4
4
 
5
5
  const DEFAULT_VALUE = new UniformNode( 0 );
6
6
 
@@ -31,7 +31,7 @@ export class InvertEditor extends BaseNode {
31
31
 
32
32
  } );
33
33
 
34
- this.add( new LabelElement( 'Method' ).add( optionsField ) )
34
+ this.add( new Element().add( optionsField ) )
35
35
  .add( input );
36
36
 
37
37
  }
@@ -1,6 +1,6 @@
1
1
  import { SelectInput, LabelElement, Element, NumberInput } from '../../libs/flow.module.js';
2
2
  import { BaseNode } from '../core/BaseNode.js';
3
- import { MathNode, UniformNode } from 'three-nodes/Nodes.js';
3
+ import { MathNode, UniformNode } from 'three/nodes';
4
4
 
5
5
  export class LimiterEditor extends BaseNode {
6
6
 
@@ -1,7 +1,7 @@
1
1
  import { LabelElement } from '../../libs/flow.module.js';
2
2
  import { BaseNode } from '../core/BaseNode.js';
3
3
  import { Vector3 } from 'three';
4
- import { MathNode, UniformNode } from 'three-nodes/Nodes.js';
4
+ import { MathNode, UniformNode } from 'three/nodes';
5
5
 
6
6
  const DEFAULT_VALUE = new UniformNode( new Vector3() );
7
7
 
@@ -1,5 +1,5 @@
1
1
  import { Element, LabelElement, NumberInput, SelectInput } from '../../libs/flow.module.js';
2
- import { UniformNode, OperatorNode } from 'three-nodes/Nodes.js';
2
+ import { UniformNode, OperatorNode } from 'three/nodes';
3
3
  import { BaseNode } from '../core/BaseNode.js';
4
4
 
5
5
  export class OperatorEditor extends BaseNode {
@@ -1,6 +1,6 @@
1
1
  import { LabelElement, NumberInput } from '../../libs/flow.module.js';
2
2
  import { BaseNode } from '../core/BaseNode.js';
3
- import { MathNode, UniformNode } from 'three-nodes/Nodes.js';
3
+ import { MathNode, UniformNode } from 'three/nodes';
4
4
 
5
5
  export class PowerEditor extends BaseNode {
6
6
 
@@ -1,7 +1,7 @@
1
1
  import { SelectInput, Element, LabelElement } from '../../libs/flow.module.js';
2
2
  import { BaseNode } from '../core/BaseNode.js';
3
3
  import { Vector3 } from 'three';
4
- import { MathNode, UniformNode } from 'three-nodes/Nodes.js';
4
+ import { MathNode, UniformNode } from 'three/nodes';
5
5
 
6
6
  const DEFAULT_VALUE = new UniformNode( new Vector3() );
7
7
 
@@ -1,6 +1,6 @@
1
1
  import { LabelElement } from '../../libs/flow.module.js';
2
2
  import { BaseNode } from '../core/BaseNode.js';
3
- import { CheckerNode, UVNode } from 'three-nodes/Nodes.js';
3
+ import { CheckerNode, UVNode } from 'three/nodes';
4
4
 
5
5
  const defaultUV = new UVNode();
6
6
 
@@ -16,7 +16,8 @@ export class MeshEditor extends Object3DEditor {
16
16
 
17
17
  this.material = null;
18
18
 
19
- this.defaultMaterial = null;
19
+ this.meshMaterial = null;
20
+ this.defaultMeshMaterial = null;
20
21
 
21
22
  this._initMaterial();
22
23
 
@@ -34,9 +35,9 @@ export class MeshEditor extends Object3DEditor {
34
35
 
35
36
  _initMaterial() {
36
37
 
37
- const materialElement = new LabelElement( 'Material' ).setInputColor( 'forestgreen' ).setInput( 1 );
38
+ const material = new LabelElement( 'Material' ).setInputColor( 'forestgreen' ).setInput( 1 );
38
39
 
39
- materialElement.onValid( ( source, target, stage ) => {
40
+ material.onValid( ( source, target, stage ) => {
40
41
 
41
42
  const object = target.getObject();
42
43
 
@@ -56,13 +57,15 @@ export class MeshEditor extends Object3DEditor {
56
57
 
57
58
  } ).onConnect( () => {
58
59
 
59
- this.material = materialElement.getLinkedObject() || this.defaultMaterial;
60
+ this.meshMaterial = material.getLinkedObject() || this.defaultMeshMaterial;
60
61
 
61
62
  this.update();
62
63
 
63
64
  } );
64
65
 
65
- this.add( materialElement );
66
+ this.add( material );
67
+
68
+ this.material = material;
66
69
 
67
70
  }
68
71
 
@@ -74,7 +77,7 @@ export class MeshEditor extends Object3DEditor {
74
77
 
75
78
  if ( mesh ) {
76
79
 
77
- mesh.material = this.material || this.defaultMaterial;
80
+ mesh.material = this.meshMaterial || this.defaultMeshMaterial;
78
81
 
79
82
  }
80
83
 
@@ -84,7 +87,7 @@ export class MeshEditor extends Object3DEditor {
84
87
 
85
88
  super.updateDefault();
86
89
 
87
- this.defaultMaterial = this.mesh.material;
90
+ this.defaultMeshMaterial = this.mesh.material;
88
91
 
89
92
  }
90
93
 
@@ -92,7 +95,7 @@ export class MeshEditor extends Object3DEditor {
92
95
 
93
96
  super.restoreDefault();
94
97
 
95
- this.mesh.material = this.defaultMaterial;
98
+ this.mesh.material = this.defaultMeshMaterial;
96
99
 
97
100
  }
98
101
 
@@ -1,6 +1,6 @@
1
1
  import { LabelElement } from '../../libs/flow.module.js';
2
2
  import { BaseNode } from '../core/BaseNode.js';
3
- import { JoinNode, UniformNode } from 'three-nodes/Nodes.js';
3
+ import { JoinNode, UniformNode } from 'three/nodes';
4
4
 
5
5
  const NULL_VALUE = new UniformNode( 0 );
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { SelectInput, LabelElement, Element } from '../../libs/flow.module.js';
2
2
  import { BaseNode } from '../core/BaseNode.js';
3
- import { OscNode, UniformNode } from 'three-nodes/Nodes.js';
3
+ import { OscNode, UniformNode } from 'three/nodes';
4
4
 
5
5
  const NULL_VALUE = new UniformNode( 0 );
6
6
 
@@ -1,8 +1,8 @@
1
- import { OrbitControls } from 'three-addons/controls/OrbitControls.js';
2
- import { ViewHelper } from 'three-addons/helpers/ViewHelper.js';
1
+ import { OrbitControls } from '../../controls/OrbitControls.js';
2
+ import { ViewHelper } from '../../helpers/ViewHelper.js';
3
3
  import { Element, LabelElement, SelectInput } from '../../libs/flow.module.js';
4
4
  import { BaseNode } from '../core/BaseNode.js';
5
- import { MeshBasicNodeMaterial, ConstNode } from 'three-nodes/Nodes.js';
5
+ import { MeshBasicNodeMaterial, ConstNode } from 'three/nodes';
6
6
  import { WebGLRenderer, PerspectiveCamera, Scene, Mesh, DoubleSide, SphereGeometry, BoxGeometry, PlaneGeometry, TorusKnotGeometry } from 'three';
7
7
 
8
8
  const nullValue = new ConstNode( 0 );
@@ -65,6 +65,8 @@ export class PreviewEditor extends BaseNode {
65
65
  const previewElement = new Element();
66
66
  previewElement.dom.style[ 'padding-top' ] = 0;
67
67
  previewElement.dom.style[ 'padding-bottom' ] = 0;
68
+ previewElement.dom.style[ 'padding-left' ] = 0;
69
+ previewElement.dom.style[ 'padding-right' ] = '14px';
68
70
 
69
71
  const sceneInput = new SelectInput( [
70
72
  { name: 'Box', value: 'box' },
@@ -86,6 +88,8 @@ export class PreviewEditor extends BaseNode {
86
88
  previewElement.dom.append( canvas );
87
89
  previewElement.setHeight( height );
88
90
 
91
+ previewElement.dom.addEventListener( 'wheel', e => e.stopPropagation() );
92
+
89
93
  const renderer = new WebGLRenderer( {
90
94
  canvas,
91
95
  alpha: true
@@ -1,6 +1,6 @@
1
1
  import { SelectInput, Element } from '../../libs/flow.module.js';
2
2
  import { BaseNode } from '../core/BaseNode.js';
3
- import { SplitNode, UniformNode } from 'three-nodes/Nodes.js';
3
+ import { SplitNode, UniformNode } from 'three/nodes';
4
4
 
5
5
  const NULL_VALUE = new UniformNode( 0 );
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { NumberInput, LabelElement, Element, ButtonInput } from '../../libs/flow.module.js';
2
2
  import { BaseNode } from '../core/BaseNode.js';
3
- import { TimerNode } from 'three-nodes/Nodes.js';
3
+ import { TimerNode } from 'three/nodes';
4
4
 
5
5
  export class TimerEditor extends BaseNode {
6
6
 
@@ -18,14 +18,15 @@ import NodeFunctionInput from './core/NodeFunctionInput.js';
18
18
  import NodeKeywords from './core/NodeKeywords.js';
19
19
  import NodeUniform from './core/NodeUniform.js';
20
20
  import NodeVar from './core/NodeVar.js';
21
- import NodeVary from './core/NodeVary.js';
21
+ import NodeVarying from './core/NodeVarying.js';
22
22
  import PropertyNode from './core/PropertyNode.js';
23
23
  import TempNode from './core/TempNode.js';
24
24
  import UniformNode from './core/UniformNode.js';
25
25
  import VarNode from './core/VarNode.js';
26
- import VaryNode from './core/VaryNode.js';
26
+ import VaryingNode from './core/VaryingNode.js';
27
27
 
28
28
  // accessors
29
+ import BitangentNode from './accessors/BitangentNode.js';
29
30
  import BufferNode from './accessors/BufferNode.js';
30
31
  import CameraNode from './accessors/CameraNode.js';
31
32
  import CubeTextureNode from './accessors/CubeTextureNode.js';
@@ -39,20 +40,28 @@ import Object3DNode from './accessors/Object3DNode.js';
39
40
  import PointUVNode from './accessors/PointUVNode.js';
40
41
  import PositionNode from './accessors/PositionNode.js';
41
42
  import ReferenceNode from './accessors/ReferenceNode.js';
42
- import ReflectNode from './accessors/ReflectNode.js';
43
+ import ReflectVectorNode from './accessors/ReflectVectorNode.js';
43
44
  import SkinningNode from './accessors/SkinningNode.js';
45
+ import TangentNode from './accessors/TangentNode.js';
44
46
  import TextureNode from './accessors/TextureNode.js';
45
47
  import UVNode from './accessors/UVNode.js';
46
48
  import UserDataNode from './accessors/UserDataNode.js';
47
49
 
50
+ // geometry
51
+ import RangeNode from './geometry/RangeNode.js';
52
+
48
53
  // gpgpu
49
54
  import ComputeNode from './gpgpu/ComputeNode.js';
50
55
 
51
56
  // display
57
+ import BlendModeNode from './display/BlendModeNode.js';
58
+ import ColorAdjustmentNode from './display/ColorAdjustmentNode.js';
52
59
  import ColorSpaceNode from './display/ColorSpaceNode.js';
53
60
  import FrontFacingNode from './display/FrontFacingNode.js';
54
61
  import NormalMapNode from './display/NormalMapNode.js';
62
+ import PosterizeNode from './display/PosterizeNode.js';
55
63
  import ToneMappingNode from './display/ToneMappingNode.js';
64
+ import ViewportNode from './display/ViewportNode.js';
56
65
 
57
66
  // math
58
67
  import MathNode from './math/MathNode.js';
@@ -72,19 +81,27 @@ import AnalyticLightNode from './lighting/AnalyticLightNode.js';
72
81
  // utils
73
82
  import ArrayElementNode from './utils/ArrayElementNode.js';
74
83
  import ConvertNode from './utils/ConvertNode.js';
84
+ import EquirectUVNode from './utils/EquirectUVNode.js';
75
85
  import JoinNode from './utils/JoinNode.js';
76
86
  import MatcapUVNode from './utils/MatcapUVNode.js';
77
87
  import MaxMipLevelNode from './utils/MaxMipLevelNode.js';
78
88
  import OscNode from './utils/OscNode.js';
89
+ import RemapNode from './utils/RemapNode.js';
90
+ import RotateUVNode from './utils/RotateUVNode.js';
79
91
  import SplitNode from './utils/SplitNode.js';
80
92
  import SpriteSheetUVNode from './utils/SpriteSheetUVNode.js';
81
93
  import TimerNode from './utils/TimerNode.js';
94
+ import TriplanarTexturesNode from './utils/TriplanarTexturesNode.js';
82
95
 
83
96
  // loaders
84
97
  import NodeLoader from './loaders/NodeLoader.js';
85
98
  import NodeObjectLoader from './loaders/NodeObjectLoader.js';
86
99
  import NodeMaterialLoader from './loaders/NodeMaterialLoader.js';
87
100
 
101
+ // parsers
102
+ import WGSLNodeParser from './parsers/WGSLNodeParser.js';
103
+ import GLSLNodeParser from './parsers/GLSLNodeParser.js';
104
+
88
105
  // procedural
89
106
  import CheckerNode from './procedural/CheckerNode.js';
90
107
 
@@ -101,6 +118,12 @@ export * from './materials/Materials.js';
101
118
  // shader node
102
119
  export * from './shadernode/ShaderNodeElements.js';
103
120
 
121
+ // extensions
122
+ export * from './materialx/MaterialXNodes.js';
123
+
124
+ // shader stages
125
+ export { defaultShaderStages } from './core/NodeBuilder.js';
126
+
104
127
  const nodeLib = {
105
128
  // core
106
129
  ArrayUniformNode,
@@ -122,17 +145,21 @@ const nodeLib = {
122
145
  NodeKeywords,
123
146
  NodeUniform,
124
147
  NodeVar,
125
- NodeVary,
148
+ NodeVarying,
126
149
  PropertyNode,
127
150
  TempNode,
128
151
  UniformNode,
129
152
  VarNode,
130
- VaryNode,
153
+ VaryingNode,
131
154
 
132
- // compute
155
+ // geometry
156
+ RangeNode,
157
+
158
+ // gpgpu
133
159
  ComputeNode,
134
160
 
135
161
  // accessors
162
+ BitangentNode,
136
163
  BufferNode,
137
164
  CameraNode,
138
165
  CubeTextureNode,
@@ -146,17 +173,22 @@ const nodeLib = {
146
173
  PointUVNode,
147
174
  PositionNode,
148
175
  ReferenceNode,
149
- ReflectNode,
176
+ ReflectVectorNode,
150
177
  SkinningNode,
178
+ TangentNode,
151
179
  TextureNode,
152
180
  UVNode,
153
181
  UserDataNode,
154
182
 
155
183
  // display
184
+ BlendModeNode,
185
+ ColorAdjustmentNode,
156
186
  ColorSpaceNode,
157
187
  FrontFacingNode,
158
188
  NormalMapNode,
189
+ PosterizeNode,
159
190
  ToneMappingNode,
191
+ ViewportNode,
160
192
 
161
193
  // math
162
194
  MathNode,
@@ -176,13 +208,17 @@ const nodeLib = {
176
208
  // utils
177
209
  ArrayElementNode,
178
210
  ConvertNode,
211
+ EquirectUVNode,
179
212
  JoinNode,
180
213
  MatcapUVNode,
181
214
  MaxMipLevelNode,
182
215
  OscNode,
216
+ RemapNode,
217
+ RotateUVNode,
183
218
  SplitNode,
184
219
  SpriteSheetUVNode,
185
220
  TimerNode,
221
+ TriplanarTexturesNode,
186
222
 
187
223
  // procedural
188
224
  CheckerNode,
@@ -194,7 +230,11 @@ const nodeLib = {
194
230
  // loaders
195
231
  NodeLoader,
196
232
  NodeObjectLoader,
197
- NodeMaterialLoader
233
+ NodeMaterialLoader,
234
+
235
+ // parsers
236
+ WGSLNodeParser,
237
+ GLSLNodeParser
198
238
 
199
239
  };
200
240
 
@@ -225,17 +265,21 @@ export {
225
265
  NodeKeywords,
226
266
  NodeUniform,
227
267
  NodeVar,
228
- NodeVary,
268
+ NodeVarying,
229
269
  PropertyNode,
230
270
  TempNode,
231
271
  UniformNode,
232
272
  VarNode,
233
- VaryNode,
273
+ VaryingNode,
234
274
 
235
- // compute
275
+ // geometry
276
+ RangeNode,
277
+
278
+ // gpgpu
236
279
  ComputeNode,
237
280
 
238
281
  // accessors
282
+ BitangentNode,
239
283
  BufferNode,
240
284
  CameraNode,
241
285
  CubeTextureNode,
@@ -249,17 +293,22 @@ export {
249
293
  PointUVNode,
250
294
  PositionNode,
251
295
  ReferenceNode,
252
- ReflectNode,
296
+ ReflectVectorNode,
253
297
  SkinningNode,
298
+ TangentNode,
254
299
  TextureNode,
255
300
  UVNode,
256
301
  UserDataNode,
257
302
 
258
303
  // display
304
+ BlendModeNode,
305
+ ColorAdjustmentNode,
259
306
  ColorSpaceNode,
260
307
  FrontFacingNode,
261
308
  NormalMapNode,
309
+ PosterizeNode,
262
310
  ToneMappingNode,
311
+ ViewportNode,
263
312
 
264
313
  // math
265
314
  MathNode,
@@ -279,13 +328,17 @@ export {
279
328
  // utils
280
329
  ArrayElementNode,
281
330
  ConvertNode,
331
+ EquirectUVNode,
282
332
  JoinNode,
283
333
  MatcapUVNode,
284
334
  MaxMipLevelNode,
285
335
  OscNode,
336
+ RemapNode,
337
+ RotateUVNode,
286
338
  SplitNode,
287
339
  SpriteSheetUVNode,
288
340
  TimerNode,
341
+ TriplanarTexturesNode,
289
342
 
290
343
  // procedural
291
344
  CheckerNode,
@@ -297,5 +350,9 @@ export {
297
350
  // loaders
298
351
  NodeLoader,
299
352
  NodeObjectLoader,
300
- NodeMaterialLoader
353
+ NodeMaterialLoader,
354
+
355
+ // parsers
356
+ WGSLNodeParser,
357
+ GLSLNodeParser
301
358
  };
@@ -0,0 +1,62 @@
1
+ import Node from '../core/Node.js';
2
+ import VaryingNode from '../core/VaryingNode.js';
3
+ import OperatorNode from '../math/OperatorNode.js';
4
+ import MathNode from '../math/MathNode.js';
5
+ import SplitNode from '../utils/SplitNode.js';
6
+ import NormalNode from './NormalNode.js';
7
+ import TangentNode from './TangentNode.js';
8
+
9
+ class BitangentNode extends Node {
10
+
11
+ static GEOMETRY = 'geometry';
12
+ static LOCAL = 'local';
13
+ static VIEW = 'view';
14
+ static WORLD = 'world';
15
+
16
+ constructor( scope = BitangentNode.LOCAL ) {
17
+
18
+ super( 'vec3' );
19
+
20
+ this.scope = scope;
21
+
22
+ }
23
+
24
+ getHash( /*builder*/ ) {
25
+
26
+ return `bitangent-${this.scope}`;
27
+
28
+ }
29
+
30
+ generate( builder ) {
31
+
32
+ const scope = this.scope;
33
+
34
+ const crossNormalTangent = new MathNode( MathNode.CROSS, new NormalNode( scope ), new TangentNode( scope ) );
35
+ const tangentW = new SplitNode( new TangentNode( TangentNode.GEOMETRY ), 'w' );
36
+ const vertexNode = new SplitNode( new OperatorNode( '*', crossNormalTangent, tangentW ), 'xyz' );
37
+
38
+ const outputNode = new MathNode( MathNode.NORMALIZE, new VaryingNode( vertexNode ) );
39
+
40
+ return outputNode.build( builder, this.getNodeType( builder ) );
41
+
42
+ }
43
+
44
+ serialize( data ) {
45
+
46
+ super.serialize( data );
47
+
48
+ data.scope = this.scope;
49
+
50
+ }
51
+
52
+ deserialize( data ) {
53
+
54
+ super.deserialize( data );
55
+
56
+ this.scope = data.scope;
57
+
58
+ }
59
+
60
+ }
61
+
62
+ export default BitangentNode;
@@ -1,6 +1,8 @@
1
1
  import TextureNode from './TextureNode.js';
2
2
  import UniformNode from '../core/UniformNode.js';
3
- import ReflectNode from './ReflectNode.js';
3
+ import ReflectVectorNode from './ReflectVectorNode.js';
4
+
5
+ import { negate, vec3, nodeObject } from '../shadernode/ShaderNodeBaseElements.js';
4
6
 
5
7
  class CubeTextureNode extends TextureNode {
6
8
 
@@ -20,7 +22,7 @@ class CubeTextureNode extends TextureNode {
20
22
 
21
23
  getConstructHash( builder ) {
22
24
 
23
- return `${ this.uuid }-${ builder.context.environmentContext?.uuid || '' }`;
25
+ return `${ this.uuid } / ${ builder.context.environmentContext?.uuid || '' }`;
24
26
 
25
27
  }
26
28
 
@@ -28,7 +30,7 @@ class CubeTextureNode extends TextureNode {
28
30
 
29
31
  const properties = builder.getNodeProperties( this );
30
32
 
31
- const uvNode = this.uvNode || builder.context.uvNode || new ReflectNode();
33
+ const uvNode = this.uvNode || builder.context.uvNode || new ReflectVectorNode();
32
34
  let levelNode = this.levelNode || builder.context.levelNode;
33
35
 
34
36
  if ( levelNode?.isNode === true ) {
@@ -72,9 +74,11 @@ class CubeTextureNode extends TextureNode {
72
74
 
73
75
  let snippet = nodeData.snippet;
74
76
 
75
- if ( builder.context.tempRead === false || snippet === undefined ) {
77
+ if ( snippet === undefined || builder.context.tempRead === false ) {
76
78
 
77
- const uvSnippet = uvNode.build( builder, 'vec3' );
79
+ const uvNodeObject = nodeObject( uvNode );
80
+ const cubeUV = vec3( negate( uvNodeObject.x ), uvNodeObject.yz );
81
+ const uvSnippet = cubeUV.build( builder, 'vec3' );
78
82
 
79
83
  if ( levelNode ) {
80
84
 
@@ -1,6 +1,6 @@
1
1
  import Node from '../core/Node.js';
2
2
  import AttributeNode from '../core/AttributeNode.js';
3
- import VaryNode from '../core/VaryNode.js';
3
+ import VaryingNode from '../core/VaryingNode.js';
4
4
  import ModelNode from '../accessors/ModelNode.js';
5
5
  import CameraNode from '../accessors/CameraNode.js';
6
6
  import OperatorNode from '../math/OperatorNode.js';
@@ -10,8 +10,8 @@ class NormalNode extends Node {
10
10
 
11
11
  static GEOMETRY = 'geometry';
12
12
  static LOCAL = 'local';
13
- static WORLD = 'world';
14
13
  static VIEW = 'view';
14
+ static WORLD = 'world';
15
15
 
16
16
  constructor( scope = NormalNode.LOCAL ) {
17
17
 
@@ -39,22 +39,22 @@ class NormalNode extends Node {
39
39
 
40
40
  } else if ( scope === NormalNode.LOCAL ) {
41
41
 
42
- outputNode = new VaryNode( new NormalNode( NormalNode.GEOMETRY ) );
42
+ outputNode = new VaryingNode( new NormalNode( NormalNode.GEOMETRY ) );
43
43
 
44
44
  } else if ( scope === NormalNode.VIEW ) {
45
45
 
46
- const vertexNormalNode = new OperatorNode( '*', new ModelNode( ModelNode.NORMAL_MATRIX ), new NormalNode( NormalNode.LOCAL ) );
47
- outputNode = new MathNode( MathNode.NORMALIZE, new VaryNode( vertexNormalNode ) );
46
+ const vertexNode = new OperatorNode( '*', new ModelNode( ModelNode.NORMAL_MATRIX ), new NormalNode( NormalNode.LOCAL ) );
47
+ outputNode = new MathNode( MathNode.NORMALIZE, new VaryingNode( vertexNode ) );
48
48
 
49
49
  } else if ( scope === NormalNode.WORLD ) {
50
50
 
51
51
  // To use INVERSE_TRANSFORM_DIRECTION only inverse the param order like this: MathNode( ..., Vector, Matrix );
52
- const vertexNormalNode = new MathNode( MathNode.TRANSFORM_DIRECTION, new NormalNode( NormalNode.VIEW ), new CameraNode( CameraNode.VIEW_MATRIX ) );
53
- outputNode = new MathNode( MathNode.NORMALIZE, new VaryNode( vertexNormalNode ) );
52
+ const vertexNode = new MathNode( MathNode.TRANSFORM_DIRECTION, new NormalNode( NormalNode.VIEW ), new CameraNode( CameraNode.VIEW_MATRIX ) );
53
+ outputNode = new MathNode( MathNode.NORMALIZE, new VaryingNode( vertexNode ) );
54
54
 
55
55
  }
56
56
 
57
- return outputNode.build( builder );
57
+ return outputNode.build( builder, this.getNodeType( builder ) );
58
58
 
59
59
  }
60
60
 
@@ -18,7 +18,7 @@ class Object3DNode extends Node {
18
18
  this.scope = scope;
19
19
  this.object3d = object3d;
20
20
 
21
- this.updateType = NodeUpdateType.Object;
21
+ this.updateType = NodeUpdateType.OBJECT;
22
22
 
23
23
  this._uniformNode = new UniformNode( null );
24
24