super-three 0.141.0 → 0.144.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 (353) hide show
  1. package/README.md +8 -8
  2. package/build/three.cjs +1558 -1034
  3. package/build/three.js +1558 -1034
  4. package/build/three.min.js +1 -1
  5. package/build/three.module.js +2012 -1243
  6. package/examples/js/animation/MMDPhysics.js +1 -16
  7. package/examples/js/controls/ArcballControls.js +16 -3
  8. package/examples/js/controls/FirstPersonControls.js +0 -7
  9. package/examples/js/controls/FlyControls.js +0 -8
  10. package/examples/js/controls/OrbitControls.js +0 -4
  11. package/examples/js/controls/PointerLockControls.js +0 -8
  12. package/examples/js/controls/TrackballControls.js +0 -2
  13. package/examples/js/controls/TransformControls.js +20 -16
  14. package/examples/js/effects/AnaglyphEffect.js +2 -2
  15. package/examples/js/effects/OutlineEffect.js +4 -24
  16. package/examples/js/effects/ParallaxBarrierEffect.js +2 -2
  17. package/examples/js/effects/PeppersGhostEffect.js +2 -2
  18. package/examples/js/effects/StereoEffect.js +2 -2
  19. package/examples/js/environments/RoomEnvironment.js +22 -0
  20. package/examples/js/exporters/ColladaExporter.js +4 -13
  21. package/examples/js/exporters/DRACOExporter.js +0 -12
  22. package/examples/js/exporters/GLTFExporter.js +28 -29
  23. package/examples/js/exporters/OBJExporter.js +2 -23
  24. package/examples/js/exporters/PLYExporter.js +12 -24
  25. package/examples/js/exporters/STLExporter.js +0 -7
  26. package/examples/js/exporters/USDZExporter.js +6 -0
  27. package/examples/js/geometries/ConvexGeometry.js +1 -1
  28. package/examples/js/geometries/ParametricGeometry.js +1 -8
  29. package/examples/js/interactive/SelectionHelper.js +2 -0
  30. package/examples/js/libs/ktx-parse.umd.js +1 -0
  31. package/examples/js/libs/meshopt_decoder.js +98 -32
  32. package/examples/js/loaders/ColladaLoader.js +1 -0
  33. package/examples/js/loaders/DRACOLoader.js +2 -25
  34. package/examples/js/loaders/EXRLoader.js +2 -13
  35. package/examples/js/loaders/FBXLoader.js +10 -3
  36. package/examples/js/loaders/FontLoader.js +3 -16
  37. package/examples/js/loaders/GLTFLoader.js +52 -36
  38. package/examples/js/loaders/HDRCubeTextureLoader.js +0 -11
  39. package/examples/js/loaders/LDrawLoader.js +139 -74
  40. package/examples/js/loaders/OBJLoader.js +7 -13
  41. package/examples/js/loaders/PCDLoader.js +59 -14
  42. package/examples/js/loaders/PLYLoader.js +3 -3
  43. package/examples/js/loaders/SVGLoader.js +4 -3
  44. package/examples/js/loaders/TIFFLoader.js +31 -0
  45. package/examples/js/loaders/VRMLLoader.js +33 -24
  46. package/examples/js/loaders/VTKLoader.js +1 -1
  47. package/examples/js/loaders/lwo/LWO2Parser.js +8 -7
  48. package/examples/js/loaders/lwo/LWO3Parser.js +8 -7
  49. package/examples/js/materials/MeshGouraudMaterial.js +385 -0
  50. package/examples/js/math/ColorConverter.js +0 -50
  51. package/examples/js/misc/GPUComputationRenderer.js +23 -0
  52. package/examples/js/misc/Volume.js +198 -190
  53. package/examples/js/misc/VolumeSlice.js +90 -88
  54. package/examples/js/modifiers/SimplifyModifier.js +1 -1
  55. package/examples/js/objects/GroundProjectedEnv.js +193 -0
  56. package/examples/js/objects/Reflector.js +9 -2
  57. package/examples/js/objects/ReflectorForSSRPass.js +3 -4
  58. package/examples/js/objects/Refractor.js +10 -4
  59. package/examples/js/objects/ShadowMesh.js +5 -1
  60. package/examples/js/postprocessing/OutlinePass.js +5 -3
  61. package/examples/js/renderers/CSS2DRenderer.js +2 -2
  62. package/examples/js/renderers/CSS3DRenderer.js +2 -2
  63. package/examples/js/renderers/Projector.js +2 -23
  64. package/examples/js/shaders/LuminosityShader.js +1 -1
  65. package/examples/js/shaders/MMDToonShader.js +6 -2
  66. package/examples/js/shaders/ToneMapShader.js +1 -1
  67. package/examples/js/utils/BufferGeometryUtils.js +1 -1
  68. package/examples/js/utils/GeometryUtils.js +2 -18
  69. package/examples/js/utils/PackedPhongMaterial.js +1 -1
  70. package/examples/js/utils/SceneUtils.js +0 -16
  71. package/examples/jsm/animation/MMDPhysics.js +3 -22
  72. package/examples/jsm/controls/ArcballControls.js +17 -2
  73. package/examples/jsm/controls/FirstPersonControls.js +0 -7
  74. package/examples/jsm/controls/FlyControls.js +0 -7
  75. package/examples/jsm/controls/OrbitControls.js +0 -5
  76. package/examples/jsm/controls/PointerLockControls.js +0 -7
  77. package/examples/jsm/controls/TrackballControls.js +0 -3
  78. package/examples/jsm/controls/TransformControls.js +18 -16
  79. package/examples/jsm/effects/AnaglyphEffect.js +2 -2
  80. package/examples/jsm/effects/OutlineEffect.js +4 -25
  81. package/examples/jsm/effects/ParallaxBarrierEffect.js +2 -2
  82. package/examples/jsm/effects/PeppersGhostEffect.js +2 -2
  83. package/examples/jsm/effects/StereoEffect.js +2 -2
  84. package/examples/jsm/environments/RoomEnvironment.js +23 -0
  85. package/examples/jsm/exporters/ColladaExporter.js +4 -13
  86. package/examples/jsm/exporters/DRACOExporter.js +0 -13
  87. package/examples/jsm/exporters/GLTFExporter.js +29 -31
  88. package/examples/jsm/exporters/KTX2Exporter.js +29 -29
  89. package/examples/jsm/exporters/OBJExporter.js +0 -18
  90. package/examples/jsm/exporters/PLYExporter.js +14 -22
  91. package/examples/jsm/exporters/STLExporter.js +1 -9
  92. package/examples/jsm/exporters/USDZExporter.js +14 -3
  93. package/examples/jsm/geometries/ConvexGeometry.js +1 -1
  94. package/examples/jsm/geometries/ParametricGeometry.js +0 -6
  95. package/examples/jsm/interactive/HTMLMesh.js +9 -9
  96. package/examples/jsm/interactive/SelectionHelper.js +5 -3
  97. package/examples/jsm/libs/meshopt_decoder.module.js +97 -32
  98. package/examples/jsm/libs/utif.module.js +1579 -0
  99. package/examples/jsm/libs/zstddec.module.js +1 -0
  100. package/examples/jsm/loaders/ColladaLoader.js +1 -0
  101. package/examples/jsm/loaders/DRACOLoader.js +2 -28
  102. package/examples/jsm/loaders/EXRLoader.js +3 -13
  103. package/examples/jsm/loaders/FBXLoader.js +10 -3
  104. package/examples/jsm/loaders/FontLoader.js +3 -16
  105. package/examples/jsm/loaders/GLTFLoader.js +52 -36
  106. package/examples/jsm/loaders/HDRCubeTextureLoader.js +0 -13
  107. package/examples/jsm/loaders/KTX2Loader.js +192 -30
  108. package/examples/jsm/loaders/LDrawLoader.js +135 -74
  109. package/examples/jsm/loaders/OBJLoader.js +6 -14
  110. package/examples/jsm/loaders/PCDLoader.js +59 -13
  111. package/examples/jsm/loaders/PLYLoader.js +3 -3
  112. package/examples/jsm/loaders/RGBELoader.js +1 -1
  113. package/examples/jsm/loaders/SVGLoader.js +4 -3
  114. package/examples/jsm/loaders/TIFFLoader.js +36 -0
  115. package/examples/jsm/loaders/USDZLoader.js +393 -0
  116. package/examples/jsm/loaders/VRMLLoader.js +23 -25
  117. package/examples/jsm/loaders/VTKLoader.js +1 -1
  118. package/examples/jsm/loaders/lwo/LWO2Parser.js +6 -8
  119. package/examples/jsm/loaders/lwo/LWO3Parser.js +6 -8
  120. package/examples/jsm/materials/MeshGouraudMaterial.js +423 -0
  121. package/examples/jsm/math/ColorConverter.js +1 -49
  122. package/examples/jsm/misc/GPUComputationRenderer.js +43 -0
  123. package/examples/jsm/misc/Volume.js +169 -171
  124. package/examples/jsm/misc/VolumeSlice.js +78 -80
  125. package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
  126. package/examples/jsm/node-editor/accessors/MatcapUVEditor.js +1 -1
  127. package/examples/jsm/node-editor/accessors/NormalEditor.js +1 -1
  128. package/examples/jsm/node-editor/accessors/PositionEditor.js +1 -1
  129. package/examples/jsm/node-editor/accessors/UVEditor.js +1 -1
  130. package/examples/jsm/node-editor/display/BlendEditor.js +1 -1
  131. package/examples/jsm/node-editor/display/NormalMapEditor.js +1 -1
  132. package/examples/jsm/node-editor/inputs/ColorEditor.js +1 -1
  133. package/examples/jsm/node-editor/inputs/FloatEditor.js +1 -1
  134. package/examples/jsm/node-editor/inputs/SliderEditor.js +1 -1
  135. package/examples/jsm/node-editor/inputs/TextureEditor.js +1 -1
  136. package/examples/jsm/node-editor/inputs/Vector2Editor.js +1 -1
  137. package/examples/jsm/node-editor/inputs/Vector3Editor.js +1 -1
  138. package/examples/jsm/node-editor/inputs/Vector4Editor.js +1 -1
  139. package/examples/jsm/node-editor/materials/BasicMaterialEditor.js +1 -1
  140. package/examples/jsm/node-editor/materials/PointsMaterialEditor.js +1 -1
  141. package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +1 -1
  142. package/examples/jsm/node-editor/math/AngleEditor.js +1 -1
  143. package/examples/jsm/node-editor/math/DotEditor.js +1 -1
  144. package/examples/jsm/node-editor/math/InvertEditor.js +1 -1
  145. package/examples/jsm/node-editor/math/LimiterEditor.js +1 -1
  146. package/examples/jsm/node-editor/math/NormalizeEditor.js +1 -1
  147. package/examples/jsm/node-editor/math/OperatorEditor.js +1 -1
  148. package/examples/jsm/node-editor/math/PowerEditor.js +1 -1
  149. package/examples/jsm/node-editor/math/TrigonometryEditor.js +1 -1
  150. package/examples/jsm/node-editor/procedural/CheckerEditor.js +1 -1
  151. package/examples/jsm/node-editor/utils/JoinEditor.js +1 -1
  152. package/examples/jsm/node-editor/utils/OscillatorEditor.js +1 -1
  153. package/examples/jsm/node-editor/utils/PreviewEditor.js +3 -3
  154. package/examples/jsm/node-editor/utils/SplitEditor.js +1 -1
  155. package/examples/jsm/node-editor/utils/TimerEditor.js +1 -1
  156. package/examples/jsm/nodes/Nodes.js +43 -13
  157. package/examples/jsm/nodes/accessors/CubeTextureNode.js +9 -5
  158. package/examples/jsm/nodes/accessors/NormalNode.js +4 -4
  159. package/examples/jsm/nodes/accessors/PositionNode.js +5 -5
  160. package/examples/jsm/nodes/accessors/ReflectVectorNode.js +31 -0
  161. package/examples/jsm/nodes/core/AttributeNode.js +3 -3
  162. package/examples/jsm/nodes/core/CodeNode.js +3 -3
  163. package/examples/jsm/nodes/core/FunctionCallNode.js +20 -5
  164. package/examples/jsm/nodes/core/FunctionNode.js +2 -2
  165. package/examples/jsm/nodes/core/Node.js +14 -12
  166. package/examples/jsm/nodes/core/NodeBuilder.js +12 -12
  167. package/examples/jsm/nodes/core/NodeUtils.js +23 -1
  168. package/examples/jsm/nodes/core/{NodeVary.js → NodeVarying.js} +3 -3
  169. package/examples/jsm/nodes/core/{VaryNode.js → VaryingNode.js} +7 -7
  170. package/examples/jsm/nodes/display/ColorAdjustmentNode.js +94 -0
  171. package/examples/jsm/nodes/geometry/RangeNode.js +109 -0
  172. package/examples/jsm/nodes/gpgpu/ComputeNode.js +2 -0
  173. package/examples/jsm/nodes/lighting/EnvironmentNode.js +8 -7
  174. package/examples/jsm/nodes/lighting/LightingContextNode.js +4 -4
  175. package/examples/jsm/nodes/loaders/NodeLoader.js +2 -2
  176. package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +31 -0
  177. package/examples/jsm/nodes/materials/Materials.js +13 -25
  178. package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +70 -0
  179. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +4 -7
  180. package/examples/jsm/nodes/materials/NodeMaterial.js +2 -2
  181. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +28 -17
  182. package/examples/jsm/nodes/materialx/Disclaimer.md +199 -0
  183. package/examples/jsm/nodes/materialx/functions/lib/mx_hsv.js +56 -0
  184. package/examples/jsm/nodes/materialx/functions/lib/mx_noise.js +607 -0
  185. package/examples/jsm/nodes/math/MathNode.js +2 -12
  186. package/examples/jsm/nodes/parsers/GLSLNodeFunction.js +21 -6
  187. package/examples/jsm/nodes/procedural/CheckerNode.js +2 -2
  188. package/examples/jsm/nodes/shadernode/ShaderNode.js +5 -5
  189. package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +8 -5
  190. package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +20 -6
  191. package/examples/jsm/nodes/utils/ConvertNode.js +8 -3
  192. package/examples/jsm/nodes/utils/JoinNode.js +7 -7
  193. package/examples/jsm/nodes/utils/MaxMipLevelNode.js +2 -1
  194. package/examples/jsm/nodes/utils/RotateUVNode.js +32 -0
  195. package/examples/jsm/nodes/utils/SplitNode.js +21 -5
  196. package/examples/jsm/nodes/utils/TimerNode.js +2 -2
  197. package/examples/jsm/objects/GroundProjectedEnv.js +186 -0
  198. package/examples/jsm/objects/Reflector.js +12 -5
  199. package/examples/jsm/objects/ReflectorForSSRPass.js +3 -5
  200. package/examples/jsm/objects/Refractor.js +12 -6
  201. package/examples/jsm/objects/ShadowMesh.js +8 -2
  202. package/examples/jsm/postprocessing/OutlinePass.js +5 -3
  203. package/examples/jsm/renderers/CSS2DRenderer.js +2 -2
  204. package/examples/jsm/renderers/CSS3DRenderer.js +2 -2
  205. package/examples/jsm/renderers/Projector.js +2 -24
  206. package/examples/jsm/renderers/webgl/nodes/SlotNode.js +9 -5
  207. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +329 -218
  208. package/examples/jsm/renderers/webgl/nodes/WebGLNodes.js +7 -3
  209. package/examples/jsm/renderers/webgpu/WebGPUBackground.js +39 -3
  210. package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +6 -0
  211. package/examples/jsm/renderers/webgpu/WebGPUGeometries.js +6 -0
  212. package/examples/jsm/renderers/webgpu/WebGPUObjects.js +1 -1
  213. package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +17 -19
  214. package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +16 -14
  215. package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +2 -2
  216. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +66 -81
  217. package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +5 -3
  218. package/examples/jsm/renderers/webgpu/WebGPUTextures.js +2 -2
  219. package/examples/jsm/renderers/webgpu/WebGPUUtils.js +81 -0
  220. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +25 -30
  221. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +1 -1
  222. package/examples/jsm/shaders/LuminosityShader.js +1 -1
  223. package/examples/jsm/shaders/MMDToonShader.js +2 -2
  224. package/examples/jsm/shaders/ToneMapShader.js +1 -1
  225. package/examples/jsm/utils/BufferGeometryUtils.js +2 -1
  226. package/examples/jsm/utils/GeometryUtils.js +17 -25
  227. package/examples/jsm/utils/PackedPhongMaterial.js +0 -1
  228. package/examples/jsm/utils/SceneUtils.js +1 -21
  229. package/examples/jsm/webxr/OculusHandPointerModel.js +6 -1
  230. package/examples/jsm/webxr/VRButton.js +1 -7
  231. package/package.json +18 -14
  232. package/src/Three.Legacy.js +262 -36
  233. package/src/Three.js +3 -2
  234. package/src/animation/AnimationAction.js +6 -5
  235. package/src/animation/AnimationClip.js +1 -1
  236. package/src/animation/AnimationMixer.js +1 -1
  237. package/src/animation/AnimationUtils.js +204 -199
  238. package/src/animation/KeyframeTrack.js +1 -1
  239. package/src/animation/PropertyBinding.js +24 -5
  240. package/src/cameras/CubeCamera.js +0 -7
  241. package/src/constants.js +2 -4
  242. package/src/core/BufferAttribute.js +81 -111
  243. package/src/core/BufferGeometry.js +3 -41
  244. package/src/core/InstancedBufferAttribute.js +0 -10
  245. package/src/core/InterleavedBuffer.js +1 -1
  246. package/src/core/InterleavedBufferAttribute.js +56 -7
  247. package/src/core/Object3D.js +22 -5
  248. package/src/core/Uniform.js +0 -7
  249. package/src/core/UniformsGroup.js +92 -0
  250. package/src/extras/DataUtils.js +104 -88
  251. package/src/extras/core/Path.js +1 -0
  252. package/src/extras/core/ShapePath.js +1 -4
  253. package/src/extras/curves/CatmullRomCurve3.js +4 -2
  254. package/src/geometries/BoxGeometry.js +1 -1
  255. package/src/geometries/CapsuleGeometry.js +1 -1
  256. package/src/geometries/CircleGeometry.js +1 -1
  257. package/src/geometries/ConeGeometry.js +1 -1
  258. package/src/geometries/CylinderGeometry.js +2 -1
  259. package/src/geometries/DodecahedronGeometry.js +1 -1
  260. package/src/geometries/EdgesGeometry.js +5 -4
  261. package/src/geometries/ExtrudeGeometry.js +2 -11
  262. package/src/geometries/IcosahedronGeometry.js +1 -1
  263. package/src/geometries/LatheGeometry.js +2 -2
  264. package/src/geometries/OctahedronGeometry.js +1 -1
  265. package/src/geometries/PlaneGeometry.js +2 -1
  266. package/src/geometries/PolyhedronGeometry.js +1 -1
  267. package/src/geometries/RingGeometry.js +1 -1
  268. package/src/geometries/ShapeGeometry.js +2 -1
  269. package/src/geometries/SphereGeometry.js +2 -1
  270. package/src/geometries/TetrahedronGeometry.js +1 -1
  271. package/src/geometries/TorusGeometry.js +2 -1
  272. package/src/geometries/TorusKnotGeometry.js +2 -1
  273. package/src/geometries/TubeGeometry.js +2 -1
  274. package/src/geometries/WireframeGeometry.js +1 -0
  275. package/src/helpers/CameraHelper.js +97 -38
  276. package/src/helpers/DirectionalLightHelper.js +1 -0
  277. package/src/helpers/HemisphereLightHelper.js +1 -0
  278. package/src/helpers/PlaneHelper.js +6 -9
  279. package/src/helpers/PolarGridHelper.js +18 -14
  280. package/src/helpers/SpotLightHelper.js +1 -0
  281. package/src/lights/SpotLight.js +2 -0
  282. package/src/loaders/FileLoader.js +12 -1
  283. package/src/loaders/LoadingManager.js +1 -1
  284. package/src/loaders/MaterialLoader.js +49 -7
  285. package/src/loaders/ObjectLoader.js +4 -41
  286. package/src/materials/Material.js +1 -33
  287. package/src/materials/Materials.js +0 -27
  288. package/src/materials/MeshLambertMaterial.js +28 -1
  289. package/src/materials/ShaderMaterial.js +3 -7
  290. package/src/math/Color.js +3 -13
  291. package/src/math/MathUtils.js +1 -7
  292. package/src/math/Matrix3.js +1 -7
  293. package/src/math/Matrix4.js +3 -27
  294. package/src/math/Quaternion.js +1 -21
  295. package/src/math/Vector2.js +4 -24
  296. package/src/math/Vector3.js +7 -46
  297. package/src/math/Vector4.js +4 -24
  298. package/src/renderers/WebGLRenderer.js +84 -8
  299. package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +12 -12
  300. package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +3 -5
  301. package/src/renderers/shaders/ShaderChunk/common.glsl.js +6 -5
  302. package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +24 -24
  303. package/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl.js +1 -1
  304. package/src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl.js +1 -1
  305. package/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js +2 -1
  306. package/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js +113 -99
  307. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +34 -12
  308. package/src/renderers/shaders/ShaderChunk/lights_lambert_fragment.glsl.js +5 -0
  309. package/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js +30 -0
  310. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +3 -1
  311. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +13 -1
  312. package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +2 -4
  313. package/src/renderers/shaders/ShaderChunk/output_fragment.glsl.js +1 -1
  314. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +18 -7
  315. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +8 -3
  316. package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +9 -6
  317. package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +1 -1
  318. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +14 -10
  319. package/src/renderers/shaders/ShaderChunk/worldpos_vertex.glsl.js +1 -1
  320. package/src/renderers/shaders/ShaderChunk.js +4 -2
  321. package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +0 -1
  322. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +22 -50
  323. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +0 -1
  324. package/src/renderers/shaders/ShaderLib.js +31 -31
  325. package/src/renderers/shaders/UniformsLib.js +12 -11
  326. package/src/renderers/shaders/UniformsUtils.js +14 -0
  327. package/src/renderers/webgl/WebGLBackground.js +2 -2
  328. package/src/renderers/webgl/WebGLLights.js +37 -13
  329. package/src/renderers/webgl/WebGLMorphtargets.js +0 -20
  330. package/src/renderers/webgl/WebGLProgram.js +6 -11
  331. package/src/renderers/webgl/WebGLPrograms.js +30 -26
  332. package/src/renderers/webgl/WebGLRenderLists.js +5 -4
  333. package/src/renderers/webgl/WebGLRenderStates.js +5 -4
  334. package/src/renderers/webgl/WebGLShaderCache.js +9 -6
  335. package/src/renderers/webgl/WebGLShadowMap.js +10 -15
  336. package/src/renderers/webgl/WebGLState.js +47 -0
  337. package/src/renderers/webgl/WebGLUniforms.js +4 -4
  338. package/src/renderers/webgl/WebGLUniformsGroups.js +372 -0
  339. package/src/renderers/webgl/WebGLUtils.js +2 -0
  340. package/src/renderers/webvr/WebVRManager.js +42 -9
  341. package/src/renderers/webvr/WebVRUtils.js +1 -1
  342. package/src/renderers/webxr/WebXRController.js +45 -37
  343. package/src/renderers/webxr/WebXRManager.js +58 -33
  344. package/src/scenes/Scene.js +16 -3
  345. package/src/textures/Source.js +1 -1
  346. package/src/utils.js +1 -1
  347. package/examples/js/controls/experimental/CameraControls.js +0 -1048
  348. package/examples/js/loaders/KTX2Loader.js +0 -558
  349. package/examples/jsm/controls/experimental/CameraControls.js +0 -1248
  350. package/examples/jsm/nodes/accessors/ReflectNode.js +0 -70
  351. package/examples/jsm/package.json +0 -3
  352. package/examples/jsm/renderers/webgl/nodes/WebGLPhysicalContextNode.js +0 -45
  353. package/src/renderers/shaders/ShaderChunk/lights_lambert_vertex.glsl.js +0 -122
@@ -18,12 +18,12 @@ 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
29
  import BufferNode from './accessors/BufferNode.js';
@@ -39,16 +39,20 @@ import Object3DNode from './accessors/Object3DNode.js';
39
39
  import PointUVNode from './accessors/PointUVNode.js';
40
40
  import PositionNode from './accessors/PositionNode.js';
41
41
  import ReferenceNode from './accessors/ReferenceNode.js';
42
- import ReflectNode from './accessors/ReflectNode.js';
42
+ import ReflectVectorNode from './accessors/ReflectVectorNode.js';
43
43
  import SkinningNode from './accessors/SkinningNode.js';
44
44
  import TextureNode from './accessors/TextureNode.js';
45
45
  import UVNode from './accessors/UVNode.js';
46
46
  import UserDataNode from './accessors/UserDataNode.js';
47
47
 
48
+ // geometry
49
+ import RangeNode from './geometry/RangeNode.js';
50
+
48
51
  // gpgpu
49
52
  import ComputeNode from './gpgpu/ComputeNode.js';
50
53
 
51
54
  // display
55
+ import ColorAdjustmentNode from './display/ColorAdjustmentNode.js';
52
56
  import ColorSpaceNode from './display/ColorSpaceNode.js';
53
57
  import FrontFacingNode from './display/FrontFacingNode.js';
54
58
  import NormalMapNode from './display/NormalMapNode.js';
@@ -76,6 +80,7 @@ import JoinNode from './utils/JoinNode.js';
76
80
  import MatcapUVNode from './utils/MatcapUVNode.js';
77
81
  import MaxMipLevelNode from './utils/MaxMipLevelNode.js';
78
82
  import OscNode from './utils/OscNode.js';
83
+ import RotateUVNode from './utils/RotateUVNode.js';
79
84
  import SplitNode from './utils/SplitNode.js';
80
85
  import SpriteSheetUVNode from './utils/SpriteSheetUVNode.js';
81
86
  import TimerNode from './utils/TimerNode.js';
@@ -85,6 +90,10 @@ import NodeLoader from './loaders/NodeLoader.js';
85
90
  import NodeObjectLoader from './loaders/NodeObjectLoader.js';
86
91
  import NodeMaterialLoader from './loaders/NodeMaterialLoader.js';
87
92
 
93
+ // parsers
94
+ import WGSLNodeParser from './parsers/WGSLNodeParser.js';
95
+ import GLSLNodeParser from './parsers/GLSLNodeParser.js';
96
+
88
97
  // procedural
89
98
  import CheckerNode from './procedural/CheckerNode.js';
90
99
 
@@ -101,6 +110,9 @@ export * from './materials/Materials.js';
101
110
  // shader node
102
111
  export * from './shadernode/ShaderNodeElements.js';
103
112
 
113
+ // shader stages
114
+ export { defaultShaderStages } from './core/NodeBuilder.js';
115
+
104
116
  const nodeLib = {
105
117
  // core
106
118
  ArrayUniformNode,
@@ -122,14 +134,17 @@ const nodeLib = {
122
134
  NodeKeywords,
123
135
  NodeUniform,
124
136
  NodeVar,
125
- NodeVary,
137
+ NodeVarying,
126
138
  PropertyNode,
127
139
  TempNode,
128
140
  UniformNode,
129
141
  VarNode,
130
- VaryNode,
142
+ VaryingNode,
143
+
144
+ // geometry
145
+ RangeNode,
131
146
 
132
- // compute
147
+ // gpgpu
133
148
  ComputeNode,
134
149
 
135
150
  // accessors
@@ -146,13 +161,14 @@ const nodeLib = {
146
161
  PointUVNode,
147
162
  PositionNode,
148
163
  ReferenceNode,
149
- ReflectNode,
164
+ ReflectVectorNode,
150
165
  SkinningNode,
151
166
  TextureNode,
152
167
  UVNode,
153
168
  UserDataNode,
154
169
 
155
170
  // display
171
+ ColorAdjustmentNode,
156
172
  ColorSpaceNode,
157
173
  FrontFacingNode,
158
174
  NormalMapNode,
@@ -180,6 +196,7 @@ const nodeLib = {
180
196
  MatcapUVNode,
181
197
  MaxMipLevelNode,
182
198
  OscNode,
199
+ RotateUVNode,
183
200
  SplitNode,
184
201
  SpriteSheetUVNode,
185
202
  TimerNode,
@@ -194,7 +211,11 @@ const nodeLib = {
194
211
  // loaders
195
212
  NodeLoader,
196
213
  NodeObjectLoader,
197
- NodeMaterialLoader
214
+ NodeMaterialLoader,
215
+
216
+ // parsers
217
+ WGSLNodeParser,
218
+ GLSLNodeParser,
198
219
 
199
220
  };
200
221
 
@@ -225,14 +246,17 @@ export {
225
246
  NodeKeywords,
226
247
  NodeUniform,
227
248
  NodeVar,
228
- NodeVary,
249
+ NodeVarying,
229
250
  PropertyNode,
230
251
  TempNode,
231
252
  UniformNode,
232
253
  VarNode,
233
- VaryNode,
254
+ VaryingNode,
255
+
256
+ // geometry
257
+ RangeNode,
234
258
 
235
- // compute
259
+ // gpgpu
236
260
  ComputeNode,
237
261
 
238
262
  // accessors
@@ -249,13 +273,14 @@ export {
249
273
  PointUVNode,
250
274
  PositionNode,
251
275
  ReferenceNode,
252
- ReflectNode,
276
+ ReflectVectorNode,
253
277
  SkinningNode,
254
278
  TextureNode,
255
279
  UVNode,
256
280
  UserDataNode,
257
281
 
258
282
  // display
283
+ ColorAdjustmentNode,
259
284
  ColorSpaceNode,
260
285
  FrontFacingNode,
261
286
  NormalMapNode,
@@ -283,6 +308,7 @@ export {
283
308
  MatcapUVNode,
284
309
  MaxMipLevelNode,
285
310
  OscNode,
311
+ RotateUVNode,
286
312
  SplitNode,
287
313
  SpriteSheetUVNode,
288
314
  TimerNode,
@@ -297,5 +323,9 @@ export {
297
323
  // loaders
298
324
  NodeLoader,
299
325
  NodeObjectLoader,
300
- NodeMaterialLoader
326
+ NodeMaterialLoader,
327
+
328
+ // parsers
329
+ WGSLNodeParser,
330
+ GLSLNodeParser,
301
331
  };
@@ -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';
@@ -39,18 +39,18 @@ 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
46
  const vertexNormalNode = new OperatorNode( '*', new ModelNode( ModelNode.NORMAL_MATRIX ), new NormalNode( NormalNode.LOCAL ) );
47
- outputNode = new MathNode( MathNode.NORMALIZE, new VaryNode( vertexNormalNode ) );
47
+ outputNode = new MathNode( MathNode.NORMALIZE, new VaryingNode( vertexNormalNode ) );
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
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 ) );
53
+ outputNode = new MathNode( MathNode.NORMALIZE, new VaryingNode( vertexNormalNode ) );
54
54
 
55
55
  }
56
56
 
@@ -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 MathNode from '../math/MathNode.js';
6
6
  import OperatorNode from '../math/OperatorNode.js';
@@ -39,22 +39,22 @@ class PositionNode extends Node {
39
39
 
40
40
  } else if ( scope === PositionNode.LOCAL ) {
41
41
 
42
- outputNode = new VaryNode( new PositionNode( PositionNode.GEOMETRY ) );
42
+ outputNode = new VaryingNode( new PositionNode( PositionNode.GEOMETRY ) );
43
43
 
44
44
  } else if ( scope === PositionNode.WORLD ) {
45
45
 
46
46
  const vertexPositionNode = new MathNode( MathNode.TRANSFORM_DIRECTION, new ModelNode( ModelNode.WORLD_MATRIX ), new PositionNode( PositionNode.LOCAL ) );
47
- outputNode = new VaryNode( vertexPositionNode );
47
+ outputNode = new VaryingNode( vertexPositionNode );
48
48
 
49
49
  } else if ( scope === PositionNode.VIEW ) {
50
50
 
51
51
  const vertexPositionNode = new OperatorNode( '*', new ModelNode( ModelNode.VIEW_MATRIX ), new PositionNode( PositionNode.LOCAL ) );
52
- outputNode = new VaryNode( vertexPositionNode );
52
+ outputNode = new VaryingNode( vertexPositionNode );
53
53
 
54
54
  } else if ( scope === PositionNode.VIEW_DIRECTION ) {
55
55
 
56
56
  const vertexPositionNode = new MathNode( MathNode.NEGATE, new PositionNode( PositionNode.VIEW ) );
57
- outputNode = new MathNode( MathNode.NORMALIZE, new VaryNode( vertexPositionNode ) );
57
+ outputNode = new MathNode( MathNode.NORMALIZE, new VaryingNode( vertexPositionNode ) );
58
58
 
59
59
  }
60
60
 
@@ -0,0 +1,31 @@
1
+ import Node from '../core/Node.js';
2
+ import {
3
+ transformedNormalView, positionViewDirection,
4
+ transformDirection, negate, reflect, cameraViewMatrix
5
+ } from '../shadernode/ShaderNodeBaseElements.js';
6
+
7
+ class ReflectVectorNode extends Node {
8
+
9
+ constructor() {
10
+
11
+ super( 'vec3' );
12
+
13
+ }
14
+
15
+ getHash( /*builder*/ ) {
16
+
17
+ return 'reflectVector';
18
+
19
+ }
20
+
21
+ construct() {
22
+
23
+ const reflectView = reflect( negate( positionViewDirection ), transformedNormalView );
24
+
25
+ return transformDirection( reflectView, cameraViewMatrix );
26
+
27
+ }
28
+
29
+ }
30
+
31
+ export default ReflectVectorNode;
@@ -1,5 +1,5 @@
1
1
  import Node from './Node.js';
2
- import VaryNode from './VaryNode.js';
2
+ import VaryingNode from './VaryingNode.js';
3
3
 
4
4
  class AttributeNode extends Node {
5
5
 
@@ -58,9 +58,9 @@ class AttributeNode extends Node {
58
58
 
59
59
  } else {
60
60
 
61
- const nodeVary = new VaryNode( this );
61
+ const nodeVarying = new VaryingNode( this );
62
62
 
63
- return nodeVary.build( builder, attribute.type );
63
+ return nodeVarying.build( builder, attribute.type );
64
64
 
65
65
  }
66
66
 
@@ -2,15 +2,15 @@ import Node from './Node.js';
2
2
 
3
3
  class CodeNode extends Node {
4
4
 
5
- constructor( code = '', nodeType = 'code' ) {
5
+ constructor( code = '', includes = [] ) {
6
6
 
7
- super( nodeType );
7
+ super( 'code' );
8
8
 
9
9
  this.isCodeNode = true;
10
10
 
11
11
  this.code = code;
12
12
 
13
- this._includes = [];
13
+ this._includes = includes;
14
14
 
15
15
  }
16
16
 
@@ -40,17 +40,32 @@ class FunctionCallNode extends TempNode {
40
40
  const inputs = functionNode.getInputs( builder );
41
41
  const parameters = this.parameters;
42
42
 
43
- for ( const inputNode of inputs ) {
43
+ if ( Array.isArray( parameters ) ) {
44
44
 
45
- const node = parameters[ inputNode.name ];
45
+ for ( let i = 0; i < parameters.length; i ++ ) {
46
46
 
47
- if ( node !== undefined ) {
47
+ const inputNode = inputs[ i ];
48
+ const node = parameters[ i ];
48
49
 
49
50
  params.push( node.build( builder, inputNode.type ) );
50
51
 
51
- } else {
52
+ }
53
+
54
+ } else {
55
+
56
+ for ( const inputNode of inputs ) {
57
+
58
+ const node = parameters[ inputNode.name ];
59
+
60
+ if ( node !== undefined ) {
61
+
62
+ params.push( node.build( builder, inputNode.type ) );
63
+
64
+ } else {
65
+
66
+ throw new Error( `FunctionCallNode: Input '${inputNode.name}' not found in FunctionNode.` );
52
67
 
53
- throw new Error( `FunctionCallNode: Input '${inputNode.name}' not found in FunctionNode.` );
68
+ }
54
69
 
55
70
  }
56
71
 
@@ -3,9 +3,9 @@ import FunctionCallNode from './FunctionCallNode.js';
3
3
 
4
4
  class FunctionNode extends CodeNode {
5
5
 
6
- constructor( code = '' ) {
6
+ constructor( code = '', includes = [] ) {
7
7
 
8
- super( code );
8
+ super( code, includes );
9
9
 
10
10
  this.keywords = {};
11
11
 
@@ -1,5 +1,5 @@
1
1
  import { NodeUpdateType } from './constants.js';
2
- import { getNodesKeys } from './NodeUtils.js';
2
+ import { getNodesKeys, getCacheKey } from './NodeUtils.js';
3
3
  import { MathUtils } from 'three';
4
4
 
5
5
  let _nodeId = 0;
@@ -58,6 +58,12 @@ class Node {
58
58
 
59
59
  }
60
60
 
61
+ getCacheKey() {
62
+
63
+ return getCacheKey( this );
64
+
65
+ }
66
+
61
67
  getHash( /*builder*/ ) {
62
68
 
63
69
  return this.uuid;
@@ -131,15 +137,13 @@ class Node {
131
137
 
132
138
  }
133
139
 
134
- generate( builder ) {
140
+ generate( builder, output ) {
135
141
 
136
142
  const { outputNode } = builder.getNodeProperties( this );
137
143
 
138
144
  if ( outputNode?.isNode === true ) {
139
145
 
140
- const type = this.getNodeType( builder );
141
-
142
- return outputNode.build( builder, type );
146
+ return outputNode.build( builder, output );
143
147
 
144
148
  }
145
149
 
@@ -167,7 +171,7 @@ class Node {
167
171
  /* expected return:
168
172
  - "construct" -> Node
169
173
  - "analyze" -> null
170
- - "generat" -> String
174
+ - "generate" -> String
171
175
  */
172
176
  let result = null;
173
177
 
@@ -176,13 +180,11 @@ class Node {
176
180
  if ( buildStage === 'construct' ) {
177
181
 
178
182
  const properties = builder.getNodeProperties( this );
179
- const nodeData = builder.getDataFromNode( this );
180
-
181
- if ( properties.initied !== true ) {
182
183
 
183
- nodeData.initied = true;
184
+ if ( properties.initialized !== true || builder.context.tempRead === false ) {
184
185
 
185
- properties.outputNode = this.construct( builder );
186
+ properties.initialized = true;
187
+ properties.outputNode = this.construct( builder );
186
188
 
187
189
  for ( const childNode of Object.values( properties ) ) {
188
190
 
@@ -211,7 +213,7 @@ class Node {
211
213
 
212
214
  result = nodeData.snippet;
213
215
 
214
- if ( result === undefined ) {
216
+ if ( result === undefined /*|| builder.context.tempRead === false*/ ) {
215
217
 
216
218
  result = this.generate( builder ) || '';
217
219
 
@@ -1,6 +1,6 @@
1
1
  import NodeUniform from './NodeUniform.js';
2
2
  import NodeAttribute from './NodeAttribute.js';
3
- import NodeVary from './NodeVary.js';
3
+ import NodeVarying from './NodeVarying.js';
4
4
  import NodeVar from './NodeVar.js';
5
5
  import NodeCode from './NodeCode.js';
6
6
  import NodeKeywords from './NodeKeywords.js';
@@ -55,7 +55,7 @@ class NodeBuilder {
55
55
  this.uniforms = { vertex: [], fragment: [], compute: [], index: 0 };
56
56
  this.codes = { vertex: [], fragment: [], compute: [] };
57
57
  this.attributes = [];
58
- this.varys = [];
58
+ this.varyings = [];
59
59
  this.vars = { vertex: [], fragment: [], compute: [] };
60
60
  this.flow = { code: '' };
61
61
  this.stack = [];
@@ -456,26 +456,26 @@ class NodeBuilder {
456
456
 
457
457
  }
458
458
 
459
- getVaryFromNode( node, type ) {
459
+ getVaryingFromNode( node, type ) {
460
460
 
461
461
  const nodeData = this.getDataFromNode( node, null );
462
462
 
463
- let nodeVary = nodeData.vary;
463
+ let nodeVarying = nodeData.varying;
464
464
 
465
- if ( nodeVary === undefined ) {
465
+ if ( nodeVarying === undefined ) {
466
466
 
467
- const varys = this.varys;
468
- const index = varys.length;
467
+ const varyings = this.varyings;
468
+ const index = varyings.length;
469
469
 
470
- nodeVary = new NodeVary( 'nodeVary' + index, type );
470
+ nodeVarying = new NodeVarying( 'nodeVarying' + index, type );
471
471
 
472
- varys.push( nodeVary );
472
+ varyings.push( nodeVarying );
473
473
 
474
- nodeData.vary = nodeVary;
474
+ nodeData.varying = nodeVarying;
475
475
 
476
476
  }
477
477
 
478
- return nodeVary;
478
+ return nodeVarying;
479
479
 
480
480
  }
481
481
 
@@ -572,7 +572,7 @@ class NodeBuilder {
572
572
 
573
573
  }
574
574
 
575
- getVarys( /*shaderStage*/ ) {
575
+ getVaryings( /*shaderStage*/ ) {
576
576
 
577
577
  console.warn( 'Abstract function.' );
578
578
 
@@ -1,5 +1,27 @@
1
1
  import { Color, Matrix3, Matrix4, Vector2, Vector3, Vector4 } from 'three';
2
2
 
3
+ export const getCacheKey = ( object ) => {
4
+
5
+ let cacheKey = '{';
6
+
7
+ if ( object.isNode === true ) {
8
+
9
+ cacheKey += `uuid:"${ object.uuid }",`;
10
+
11
+ }
12
+
13
+ for ( const property of getNodesKeys( object ) ) {
14
+
15
+ cacheKey += `${ property }:${ object[ property ].getCacheKey() },`;
16
+
17
+ }
18
+
19
+ cacheKey += '}';
20
+
21
+ return cacheKey;
22
+
23
+ };
24
+
3
25
  export const getNodesKeys = ( object ) => {
4
26
 
5
27
  const props = [];
@@ -62,7 +84,7 @@ export const getValueType = ( value ) => {
62
84
 
63
85
  export const getValueFromType = ( type, ...params ) => {
64
86
 
65
- const last4 = type?.slice( -4 );
87
+ const last4 = type?.slice( - 4 );
66
88
 
67
89
  if ( type === 'color' ) {
68
90
 
@@ -1,8 +1,8 @@
1
- class NodeVary {
1
+ class NodeVarying {
2
2
 
3
3
  constructor( name, type ) {
4
4
 
5
- this.isNodeVary = true;
5
+ this.isNodeVarying = true;
6
6
 
7
7
  this.name = name;
8
8
  this.type = type;
@@ -11,4 +11,4 @@ class NodeVary {
11
11
 
12
12
  }
13
13
 
14
- export default NodeVary;
14
+ export default NodeVarying;
@@ -1,7 +1,7 @@
1
1
  import Node from './Node.js';
2
2
  import { NodeShaderStage } from './constants.js';
3
3
 
4
- class VaryNode extends Node {
4
+ class VaryingNode extends Node {
5
5
 
6
6
  constructor( node, name = null ) {
7
7
 
@@ -20,7 +20,7 @@ class VaryNode extends Node {
20
20
 
21
21
  getNodeType( builder ) {
22
22
 
23
- // VaryNode is auto type
23
+ // VaryingNode is auto type
24
24
 
25
25
  return this.node.getNodeType( builder );
26
26
 
@@ -32,23 +32,23 @@ class VaryNode extends Node {
32
32
  const node = this.node;
33
33
  const name = this.name;
34
34
 
35
- const nodeVary = builder.getVaryFromNode( this, type );
35
+ const nodeVarying = builder.getVaryingFromNode( this, type );
36
36
 
37
37
  if ( name !== null ) {
38
38
 
39
- nodeVary.name = name;
39
+ nodeVarying.name = name;
40
40
 
41
41
  }
42
42
 
43
- const propertyName = builder.getPropertyName( nodeVary, NodeShaderStage.Vertex );
43
+ const propertyName = builder.getPropertyName( nodeVarying, NodeShaderStage.Vertex );
44
44
 
45
45
  // force node run in vertex stage
46
46
  builder.flowNodeFromShaderStage( NodeShaderStage.Vertex, node, type, propertyName );
47
47
 
48
- return builder.getPropertyName( nodeVary );
48
+ return builder.getPropertyName( nodeVarying );
49
49
 
50
50
  }
51
51
 
52
52
  }
53
53
 
54
- export default VaryNode;
54
+ export default VaryingNode;