@plastic-software/three 0.180.0 → 0.181.2

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 (357) hide show
  1. package/build/three.cjs +944 -487
  2. package/build/three.core.js +506 -327
  3. package/build/three.core.min.js +1 -1
  4. package/build/three.module.js +436 -164
  5. package/build/three.module.min.js +1 -1
  6. package/build/three.tsl.js +8 -2
  7. package/build/three.tsl.min.js +1 -1
  8. package/build/three.webgpu.js +3753 -1177
  9. package/build/three.webgpu.min.js +1 -1
  10. package/build/three.webgpu.nodes.js +3752 -1176
  11. package/build/three.webgpu.nodes.min.js +1 -1
  12. package/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
  13. package/examples/fonts/MPLUSRounded1c/OFL.txt +91 -0
  14. package/examples/jsm/animation/CCDIKSolver.js +1 -1
  15. package/examples/jsm/controls/ArcballControls.js +1 -1
  16. package/examples/jsm/controls/DragControls.js +1 -1
  17. package/examples/jsm/controls/FirstPersonControls.js +1 -1
  18. package/examples/jsm/controls/FlyControls.js +1 -1
  19. package/examples/jsm/controls/OrbitControls.js +2 -2
  20. package/examples/jsm/controls/PointerLockControls.js +2 -2
  21. package/examples/jsm/controls/TrackballControls.js +1 -1
  22. package/examples/jsm/controls/TransformControls.js +1 -1
  23. package/examples/jsm/effects/AsciiEffect.js +8 -8
  24. package/examples/jsm/exporters/DRACOExporter.js +2 -2
  25. package/examples/jsm/exporters/EXRExporter.js +1 -1
  26. package/examples/jsm/exporters/GLTFExporter.js +3 -3
  27. package/examples/jsm/exporters/USDZExporter.js +9 -2
  28. package/examples/jsm/geometries/DecalGeometry.js +2 -2
  29. package/examples/jsm/geometries/ParametricGeometry.js +1 -1
  30. package/examples/jsm/geometries/TeapotGeometry.js +2 -2
  31. package/examples/jsm/geometries/TextGeometry.js +3 -2
  32. package/examples/jsm/gpgpu/BitonicSort.js +715 -0
  33. package/examples/jsm/helpers/ViewHelper.js +43 -5
  34. package/examples/jsm/inspector/Inspector.js +427 -0
  35. package/examples/jsm/inspector/RendererInspector.js +415 -0
  36. package/examples/jsm/inspector/tabs/Console.js +204 -0
  37. package/examples/jsm/inspector/tabs/Parameters.js +332 -0
  38. package/examples/jsm/inspector/tabs/Performance.js +268 -0
  39. package/examples/jsm/inspector/tabs/Viewer.js +166 -0
  40. package/examples/jsm/inspector/ui/Graph.js +95 -0
  41. package/examples/jsm/inspector/ui/Item.js +170 -0
  42. package/examples/jsm/inspector/ui/List.js +75 -0
  43. package/examples/jsm/inspector/ui/Profiler.js +170 -0
  44. package/examples/jsm/inspector/ui/Style.js +654 -0
  45. package/examples/jsm/inspector/ui/Tab.js +46 -0
  46. package/examples/jsm/inspector/ui/Values.js +423 -0
  47. package/examples/jsm/inspector/ui/utils.js +56 -0
  48. package/examples/jsm/interactive/HTMLMesh.js +6 -10
  49. package/examples/jsm/interactive/InteractiveGroup.js +1 -1
  50. package/examples/jsm/interactive/SelectionBox.js +30 -0
  51. package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -1
  52. package/examples/jsm/loaders/3MFLoader.js +1 -1
  53. package/examples/jsm/loaders/ColladaLoader.js +2 -2
  54. package/examples/jsm/loaders/DDSLoader.js +1 -1
  55. package/examples/jsm/loaders/DRACOLoader.js +73 -22
  56. package/examples/jsm/loaders/FBXLoader.js +2 -2
  57. package/examples/jsm/loaders/FontLoader.js +23 -5
  58. package/examples/jsm/loaders/GLTFLoader.js +5 -3
  59. package/examples/jsm/loaders/KTX2Loader.js +28 -21
  60. package/examples/jsm/loaders/KTXLoader.js +2 -2
  61. package/examples/jsm/loaders/LDrawLoader.js +1 -1
  62. package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
  63. package/examples/jsm/loaders/LUTCubeLoader.js +1 -1
  64. package/examples/jsm/loaders/LWOLoader.js +2 -2
  65. package/examples/jsm/loaders/MaterialXLoader.js +22 -5
  66. package/examples/jsm/loaders/OBJLoader.js +1 -1
  67. package/examples/jsm/loaders/PDBLoader.js +1 -1
  68. package/examples/jsm/loaders/SVGLoader.js +2 -2
  69. package/examples/jsm/loaders/UltraHDRLoader.js +1 -1
  70. package/examples/jsm/math/ConvexHull.js +1 -1
  71. package/examples/jsm/math/ImprovedNoise.js +1 -1
  72. package/examples/jsm/math/SimplexNoise.js +1 -1
  73. package/examples/jsm/misc/ProgressiveLightMap.js +9 -3
  74. package/examples/jsm/misc/ProgressiveLightMapGPU.js +7 -1
  75. package/examples/jsm/misc/TubePainter.js +383 -40
  76. package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
  77. package/examples/jsm/objects/ReflectorForSSRPass.js +1 -0
  78. package/examples/jsm/objects/Sky.js +1 -1
  79. package/examples/jsm/objects/SkyMesh.js +1 -1
  80. package/examples/jsm/objects/Water.js +3 -3
  81. package/examples/jsm/objects/WaterMesh.js +6 -6
  82. package/examples/jsm/postprocessing/GlitchPass.js +2 -2
  83. package/examples/jsm/postprocessing/UnrealBloomPass.js +8 -6
  84. package/examples/jsm/renderers/CSS2DRenderer.js +16 -5
  85. package/examples/jsm/renderers/CSS3DRenderer.js +7 -6
  86. package/examples/jsm/renderers/SVGRenderer.js +1 -1
  87. package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +1 -1
  88. package/examples/jsm/shaders/AfterimageShader.js +1 -1
  89. package/examples/jsm/shaders/BleachBypassShader.js +1 -1
  90. package/examples/jsm/shaders/BokehShader.js +1 -1
  91. package/examples/jsm/shaders/BokehShader2.js +1 -1
  92. package/examples/jsm/shaders/DotScreenShader.js +1 -1
  93. package/examples/jsm/shaders/FocusShader.js +1 -1
  94. package/examples/jsm/shaders/GTAOShader.js +2 -2
  95. package/examples/jsm/shaders/GodRaysShader.js +1 -1
  96. package/examples/jsm/shaders/KaleidoShader.js +1 -1
  97. package/examples/jsm/shaders/PoissonDenoiseShader.js +2 -2
  98. package/examples/jsm/shaders/SSRShader.js +1 -1
  99. package/examples/jsm/shaders/SepiaShader.js +1 -1
  100. package/examples/jsm/shaders/SubsurfaceScatteringShader.js +1 -1
  101. package/examples/jsm/shaders/TriangleBlurShader.js +1 -1
  102. package/examples/jsm/shaders/VignetteShader.js +1 -1
  103. package/examples/jsm/transpiler/TSLEncoder.js +7 -0
  104. package/examples/jsm/tsl/display/AfterImageNode.js +26 -24
  105. package/examples/jsm/tsl/display/AnamorphicNode.js +2 -1
  106. package/examples/jsm/tsl/display/BloomNode.js +4 -0
  107. package/examples/jsm/tsl/display/DenoiseNode.js +2 -0
  108. package/examples/jsm/tsl/display/DepthOfFieldNode.js +7 -0
  109. package/examples/jsm/tsl/display/GTAONode.js +45 -5
  110. package/examples/jsm/tsl/display/GaussianBlurNode.js +5 -3
  111. package/examples/jsm/tsl/display/OutlineNode.js +11 -0
  112. package/examples/jsm/tsl/display/SSGINode.js +654 -0
  113. package/examples/jsm/tsl/display/SSRNode.js +2 -0
  114. package/examples/jsm/tsl/display/SSSNode.js +488 -0
  115. package/examples/jsm/tsl/display/TRAANode.js +123 -6
  116. package/examples/jsm/tsl/display/boxBlur.js +1 -0
  117. package/examples/jsm/tsl/display/hashBlur.js +1 -0
  118. package/examples/jsm/tsl/lighting/TiledLightsNode.js +21 -1
  119. package/examples/jsm/webxr/XRControllerModelFactory.js +1 -1
  120. package/examples/jsm/webxr/XRHandModelFactory.js +2 -6
  121. package/package.json +5 -10
  122. package/src/Three.Core.js +3 -2
  123. package/src/Three.TSL.js +7 -1
  124. package/src/Three.WebGPU.Nodes.js +2 -0
  125. package/src/Three.WebGPU.js +2 -0
  126. package/src/animation/AnimationClip.js +3 -2
  127. package/src/animation/AnimationMixer.js +3 -3
  128. package/src/animation/AnimationObjectGroup.js +2 -1
  129. package/src/animation/KeyframeTrack.js +7 -6
  130. package/src/animation/PropertyBinding.js +12 -11
  131. package/src/audio/Audio.js +10 -9
  132. package/src/audio/PositionalAudio.js +1 -1
  133. package/src/cameras/OrthographicCamera.js +1 -1
  134. package/src/cameras/PerspectiveCamera.js +1 -1
  135. package/src/cameras/StereoCamera.js +2 -2
  136. package/src/constants.js +1 -1
  137. package/src/core/BufferGeometry.js +8 -8
  138. package/src/core/EventDispatcher.js +1 -1
  139. package/src/core/InterleavedBuffer.js +1 -1
  140. package/src/core/InterleavedBufferAttribute.js +3 -2
  141. package/src/core/Object3D.js +3 -2
  142. package/src/core/Raycaster.js +2 -1
  143. package/src/core/RenderTarget.js +10 -1
  144. package/src/extras/Controls.js +5 -4
  145. package/src/extras/DataUtils.js +2 -1
  146. package/src/extras/Earcut.js +6 -0
  147. package/src/extras/ImageUtils.js +2 -2
  148. package/src/extras/PMREMGenerator.js +268 -55
  149. package/src/extras/core/Curve.js +2 -1
  150. package/src/extras/core/Interpolations.js +7 -1
  151. package/src/extras/core/ShapePath.js +4 -4
  152. package/src/extras/lib/earcut.js +7 -7
  153. package/src/geometries/BoxGeometry.js +1 -0
  154. package/src/geometries/CapsuleGeometry.js +1 -0
  155. package/src/geometries/CircleGeometry.js +1 -0
  156. package/src/geometries/ConeGeometry.js +1 -0
  157. package/src/geometries/CylinderGeometry.js +1 -0
  158. package/src/geometries/DodecahedronGeometry.js +1 -0
  159. package/src/geometries/ExtrudeGeometry.js +8 -6
  160. package/src/geometries/IcosahedronGeometry.js +1 -0
  161. package/src/geometries/LatheGeometry.js +1 -0
  162. package/src/geometries/OctahedronGeometry.js +1 -0
  163. package/src/geometries/PlaneGeometry.js +1 -0
  164. package/src/geometries/RingGeometry.js +1 -0
  165. package/src/geometries/ShapeGeometry.js +1 -0
  166. package/src/geometries/SphereGeometry.js +1 -0
  167. package/src/geometries/TetrahedronGeometry.js +1 -0
  168. package/src/geometries/TorusGeometry.js +1 -0
  169. package/src/geometries/TorusKnotGeometry.js +1 -0
  170. package/src/geometries/TubeGeometry.js +1 -0
  171. package/src/helpers/CameraHelper.js +1 -1
  172. package/src/loaders/AnimationLoader.js +2 -1
  173. package/src/loaders/AudioLoader.js +2 -1
  174. package/src/loaders/BufferGeometryLoader.js +2 -2
  175. package/src/loaders/Cache.js +2 -2
  176. package/src/loaders/DataTextureLoader.js +1 -1
  177. package/src/loaders/FileLoader.js +3 -2
  178. package/src/loaders/ImageBitmapLoader.js +5 -4
  179. package/src/loaders/ImageLoader.js +1 -1
  180. package/src/loaders/Loader.js +3 -3
  181. package/src/loaders/LoadingManager.js +25 -3
  182. package/src/loaders/MaterialLoader.js +3 -2
  183. package/src/loaders/ObjectLoader.js +13 -13
  184. package/src/loaders/TextureLoader.js +1 -1
  185. package/src/loaders/nodes/NodeLoader.js +3 -2
  186. package/src/materials/Material.js +4 -3
  187. package/src/materials/MeshBasicMaterial.js +1 -0
  188. package/src/materials/MeshDepthMaterial.js +1 -0
  189. package/src/materials/MeshLambertMaterial.js +2 -1
  190. package/src/materials/MeshMatcapMaterial.js +22 -0
  191. package/src/materials/MeshNormalMaterial.js +1 -0
  192. package/src/materials/MeshPhongMaterial.js +2 -1
  193. package/src/materials/MeshPhysicalMaterial.js +2 -1
  194. package/src/materials/MeshStandardMaterial.js +8 -7
  195. package/src/materials/MeshToonMaterial.js +1 -0
  196. package/src/materials/PointsMaterial.js +1 -1
  197. package/src/materials/ShaderMaterial.js +2 -2
  198. package/src/materials/nodes/Line2NodeMaterial.js +2 -2
  199. package/src/materials/nodes/MeshSSSNodeMaterial.js +1 -1
  200. package/src/materials/nodes/NodeMaterial.js +62 -22
  201. package/src/materials/nodes/manager/NodeMaterialObserver.js +2 -1
  202. package/src/math/Color.js +6 -5
  203. package/src/math/ColorManagement.js +2 -2
  204. package/src/math/Cylindrical.js +1 -1
  205. package/src/math/Euler.js +2 -1
  206. package/src/math/MathUtils.js +13 -11
  207. package/src/math/Matrix2.js +1 -1
  208. package/src/math/Matrix3.js +2 -2
  209. package/src/math/Matrix4.js +7 -7
  210. package/src/math/Plane.js +1 -1
  211. package/src/math/Quaternion.js +68 -66
  212. package/src/math/Spherical.js +1 -1
  213. package/src/nodes/Nodes.js +1 -1
  214. package/src/nodes/TSL.js +1 -1
  215. package/src/nodes/accessors/CubeTextureNode.js +3 -2
  216. package/src/nodes/accessors/InstanceNode.js +22 -4
  217. package/src/nodes/accessors/Lights.js +10 -0
  218. package/src/nodes/accessors/Normal.js +5 -4
  219. package/src/nodes/accessors/Position.js +18 -2
  220. package/src/nodes/accessors/ReferenceNode.js +2 -1
  221. package/src/nodes/accessors/SceneNode.js +2 -1
  222. package/src/nodes/accessors/StorageBufferNode.js +2 -1
  223. package/src/nodes/accessors/StorageTextureNode.js +22 -0
  224. package/src/nodes/accessors/Texture3DNode.js +1 -1
  225. package/src/nodes/accessors/TextureNode.js +61 -27
  226. package/src/nodes/code/FunctionCallNode.js +5 -4
  227. package/src/nodes/core/ArrayNode.js +1 -0
  228. package/src/nodes/core/AttributeNode.js +2 -1
  229. package/src/nodes/core/ContextNode.js +5 -10
  230. package/src/nodes/core/IndexNode.js +2 -2
  231. package/src/nodes/core/InputNode.js +2 -1
  232. package/src/nodes/core/InspectorNode.js +128 -0
  233. package/src/nodes/core/{CacheNode.js → IsolateNode.js} +40 -7
  234. package/src/nodes/core/Node.js +137 -12
  235. package/src/nodes/core/NodeBuilder.js +135 -21
  236. package/src/nodes/core/NodeFrame.js +20 -20
  237. package/src/nodes/core/NodeFunction.js +2 -1
  238. package/src/nodes/core/NodeParser.js +2 -1
  239. package/src/nodes/core/NodeUtils.js +17 -90
  240. package/src/nodes/core/ParameterNode.js +31 -0
  241. package/src/nodes/core/PropertyNode.js +7 -0
  242. package/src/nodes/core/StackNode.js +16 -14
  243. package/src/nodes/core/UniformNode.js +2 -1
  244. package/src/nodes/core/VarNode.js +70 -12
  245. package/src/nodes/core/VaryingNode.js +3 -2
  246. package/src/nodes/display/BlendModes.js +5 -4
  247. package/src/nodes/display/BumpMapNode.js +1 -1
  248. package/src/nodes/display/ColorAdjustment.js +1 -1
  249. package/src/nodes/display/NormalMapNode.js +2 -1
  250. package/src/nodes/display/PassNode.js +51 -10
  251. package/src/nodes/display/RenderOutputNode.js +28 -2
  252. package/src/nodes/display/ScreenNode.js +2 -1
  253. package/src/nodes/display/ToneMappingNode.js +31 -4
  254. package/src/nodes/display/ToonOutlinePassNode.js +8 -0
  255. package/src/nodes/fog/Fog.js +3 -2
  256. package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +52 -0
  257. package/src/nodes/functions/BSDF/DFGApprox.js +60 -19
  258. package/src/nodes/functions/BasicLightingModel.js +2 -1
  259. package/src/nodes/functions/PhysicalLightingModel.js +3 -2
  260. package/src/nodes/functions/VolumetricLightingModel.js +5 -5
  261. package/src/nodes/geometry/RangeNode.js +40 -4
  262. package/src/nodes/gpgpu/ComputeBuiltinNode.js +2 -1
  263. package/src/nodes/gpgpu/ComputeNode.js +17 -5
  264. package/src/nodes/gpgpu/SubgroupFunctionNode.js +25 -0
  265. package/src/nodes/gpgpu/WorkgroupInfoNode.js +2 -1
  266. package/src/nodes/lighting/EnvironmentNode.js +6 -6
  267. package/src/nodes/lighting/LightsNode.js +2 -3
  268. package/src/nodes/lighting/PointShadowNode.js +6 -0
  269. package/src/nodes/lighting/ShadowFilterNode.js +2 -0
  270. package/src/nodes/lighting/ShadowNode.js +75 -8
  271. package/src/nodes/math/ConditionalNode.js +6 -5
  272. package/src/nodes/math/MathNode.js +22 -4
  273. package/src/nodes/math/OperatorNode.js +3 -2
  274. package/src/nodes/pmrem/PMREMUtils.js +117 -2
  275. package/src/nodes/shapes/Shapes.js +1 -1
  276. package/src/nodes/tsl/TSLBase.js +5 -2
  277. package/src/nodes/tsl/TSLCore.js +36 -15
  278. package/src/nodes/utils/DebugNode.js +2 -1
  279. package/src/nodes/utils/EventNode.js +36 -0
  280. package/src/nodes/utils/FunctionOverloadingNode.js +37 -19
  281. package/src/nodes/utils/JoinNode.js +3 -2
  282. package/src/nodes/utils/LoopNode.js +20 -24
  283. package/src/nodes/utils/MemberNode.js +2 -1
  284. package/src/nodes/utils/PostProcessingUtils.js +28 -1
  285. package/src/nodes/utils/RTTNode.js +12 -2
  286. package/src/nodes/utils/ReflectorNode.js +10 -3
  287. package/src/objects/Line.js +2 -1
  288. package/src/objects/LineSegments.js +2 -1
  289. package/src/objects/Skeleton.js +3 -2
  290. package/src/objects/SkinnedMesh.js +3 -1
  291. package/src/objects/Sprite.js +2 -1
  292. package/src/renderers/WebGLRenderer.js +49 -33
  293. package/src/renderers/common/Animation.js +13 -1
  294. package/src/renderers/common/Backend.js +93 -30
  295. package/src/renderers/common/Background.js +2 -1
  296. package/src/renderers/common/Bindings.js +56 -2
  297. package/src/renderers/common/CanvasTarget.js +341 -0
  298. package/src/renderers/common/Geometries.js +26 -0
  299. package/src/renderers/common/Info.js +4 -2
  300. package/src/renderers/common/InspectorBase.js +146 -0
  301. package/src/renderers/common/PostProcessing.js +6 -25
  302. package/src/renderers/common/QuadMesh.js +7 -1
  303. package/src/renderers/common/RenderList.js +7 -3
  304. package/src/renderers/common/RenderObject.js +3 -1
  305. package/src/renderers/common/RenderObjects.js +1 -1
  306. package/src/renderers/common/Renderer.js +436 -228
  307. package/src/renderers/common/RendererUtils.js +9 -0
  308. package/src/renderers/common/SampledTexture.js +8 -0
  309. package/src/renderers/common/Sampler.js +37 -11
  310. package/src/renderers/common/StorageTexture.js +9 -1
  311. package/src/renderers/common/Textures.js +89 -35
  312. package/src/renderers/common/TimestampQueryPool.js +63 -1
  313. package/src/renderers/common/UniformsGroup.js +2 -1
  314. package/src/renderers/common/XRManager.js +7 -3
  315. package/src/renderers/common/extras/PMREMGenerator.js +160 -65
  316. package/src/renderers/common/nodes/NodeLibrary.js +4 -2
  317. package/src/renderers/common/nodes/NodeSampler.js +13 -1
  318. package/src/renderers/common/nodes/Nodes.js +38 -16
  319. package/src/renderers/shaders/DFGLUTData.js +64 -0
  320. package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -12
  321. package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +1 -1
  322. package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +1 -1
  323. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +52 -18
  324. package/src/renderers/shaders/UniformsLib.js +1 -0
  325. package/src/renderers/shaders/UniformsUtils.js +25 -4
  326. package/src/renderers/webgl/WebGLCapabilities.js +2 -1
  327. package/src/renderers/webgl/WebGLExtensions.js +2 -25
  328. package/src/renderers/webgl/WebGLInfo.js +3 -1
  329. package/src/renderers/webgl/WebGLProgram.js +11 -10
  330. package/src/renderers/webgl/WebGLPrograms.js +2 -1
  331. package/src/renderers/webgl/WebGLShadowMap.js +2 -1
  332. package/src/renderers/webgl/WebGLState.js +15 -14
  333. package/src/renderers/webgl/WebGLTextures.js +18 -14
  334. package/src/renderers/webgl/WebGLUniformsGroups.js +5 -3
  335. package/src/renderers/webgl-fallback/WebGLBackend.js +22 -41
  336. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +74 -11
  337. package/src/renderers/webgl-fallback/utils/WebGLConstants.js +2 -3
  338. package/src/renderers/webgl-fallback/utils/WebGLState.js +6 -5
  339. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +117 -16
  340. package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +42 -12
  341. package/src/renderers/webgpu/WebGPUBackend.js +134 -108
  342. package/src/renderers/webgpu/WebGPURenderer.Nodes.js +2 -1
  343. package/src/renderers/webgpu/WebGPURenderer.js +3 -2
  344. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +21 -19
  345. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +2 -1
  346. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +5 -3
  347. package/src/renderers/webgpu/utils/WebGPUConstants.js +5 -0
  348. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +44 -16
  349. package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +6 -8
  350. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +146 -74
  351. package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +29 -6
  352. package/src/renderers/webgpu/utils/WebGPUUtils.js +22 -2
  353. package/src/renderers/webxr/WebXRManager.js +3 -2
  354. package/src/textures/Source.js +2 -1
  355. package/src/textures/Texture.js +3 -2
  356. package/src/textures/VideoTexture.js +2 -0
  357. package/src/utils.js +67 -3
@@ -124,8 +124,8 @@ class NodeFrame {
124
124
  if ( maps === undefined ) {
125
125
 
126
126
  maps = {
127
- renderMap: new WeakMap(),
128
- frameMap: new WeakMap()
127
+ renderId: 0,
128
+ frameId: 0,
129
129
  };
130
130
 
131
131
  referenceMap.set( nodeRef, maps );
@@ -151,13 +151,13 @@ class NodeFrame {
151
151
 
152
152
  if ( updateType === NodeUpdateType.FRAME ) {
153
153
 
154
- const { frameMap } = this._getMaps( this.updateBeforeMap, reference );
154
+ const nodeUpdateBeforeMap = this._getMaps( this.updateBeforeMap, reference );
155
155
 
156
- if ( frameMap.get( reference ) !== this.frameId ) {
156
+ if ( nodeUpdateBeforeMap.frameId !== this.frameId ) {
157
157
 
158
158
  if ( node.updateBefore( this ) !== false ) {
159
159
 
160
- frameMap.set( reference, this.frameId );
160
+ nodeUpdateBeforeMap.frameId = this.frameId;
161
161
 
162
162
  }
163
163
 
@@ -165,13 +165,13 @@ class NodeFrame {
165
165
 
166
166
  } else if ( updateType === NodeUpdateType.RENDER ) {
167
167
 
168
- const { renderMap } = this._getMaps( this.updateBeforeMap, reference );
168
+ const nodeUpdateBeforeMap = this._getMaps( this.updateBeforeMap, reference );
169
169
 
170
- if ( renderMap.get( reference ) !== this.renderId ) {
170
+ if ( nodeUpdateBeforeMap.renderId !== this.renderId ) {
171
171
 
172
172
  if ( node.updateBefore( this ) !== false ) {
173
173
 
174
- renderMap.set( reference, this.renderId );
174
+ nodeUpdateBeforeMap.renderId = this.renderId;
175
175
 
176
176
  }
177
177
 
@@ -200,13 +200,13 @@ class NodeFrame {
200
200
 
201
201
  if ( updateType === NodeUpdateType.FRAME ) {
202
202
 
203
- const { frameMap } = this._getMaps( this.updateAfterMap, reference );
203
+ const nodeUpdateAfterMap = this._getMaps( this.updateAfterMap, reference );
204
204
 
205
- if ( frameMap.get( reference ) !== this.frameId ) {
205
+ if ( nodeUpdateAfterMap.frameId !== this.frameId ) {
206
206
 
207
207
  if ( node.updateAfter( this ) !== false ) {
208
208
 
209
- frameMap.set( reference, this.frameId );
209
+ nodeUpdateAfterMap.frameId = this.frameId;
210
210
 
211
211
  }
212
212
 
@@ -214,13 +214,13 @@ class NodeFrame {
214
214
 
215
215
  } else if ( updateType === NodeUpdateType.RENDER ) {
216
216
 
217
- const { renderMap } = this._getMaps( this.updateAfterMap, reference );
217
+ const nodeUpdateAfterMap = this._getMaps( this.updateAfterMap, reference );
218
218
 
219
- if ( renderMap.get( reference ) !== this.renderId ) {
219
+ if ( nodeUpdateAfterMap.renderId !== this.renderId ) {
220
220
 
221
221
  if ( node.updateAfter( this ) !== false ) {
222
222
 
223
- renderMap.set( reference, this.renderId );
223
+ nodeUpdateAfterMap.renderId = this.renderId;
224
224
 
225
225
  }
226
226
 
@@ -249,13 +249,13 @@ class NodeFrame {
249
249
 
250
250
  if ( updateType === NodeUpdateType.FRAME ) {
251
251
 
252
- const { frameMap } = this._getMaps( this.updateMap, reference );
252
+ const nodeUpdateMap = this._getMaps( this.updateMap, reference );
253
253
 
254
- if ( frameMap.get( reference ) !== this.frameId ) {
254
+ if ( nodeUpdateMap.frameId !== this.frameId ) {
255
255
 
256
256
  if ( node.update( this ) !== false ) {
257
257
 
258
- frameMap.set( reference, this.frameId );
258
+ nodeUpdateMap.frameId = this.frameId;
259
259
 
260
260
  }
261
261
 
@@ -263,13 +263,13 @@ class NodeFrame {
263
263
 
264
264
  } else if ( updateType === NodeUpdateType.RENDER ) {
265
265
 
266
- const { renderMap } = this._getMaps( this.updateMap, reference );
266
+ const nodeUpdateMap = this._getMaps( this.updateMap, reference );
267
267
 
268
- if ( renderMap.get( reference ) !== this.renderId ) {
268
+ if ( nodeUpdateMap.renderId !== this.renderId ) {
269
269
 
270
270
  if ( node.update( this ) !== false ) {
271
271
 
272
- renderMap.set( reference, this.renderId );
272
+ nodeUpdateMap.renderId = this.renderId;
273
273
 
274
274
  }
275
275
 
@@ -1,3 +1,4 @@
1
+ import { warn } from '../../utils.js';
1
2
  /**
2
3
  * Base class for node functions. A derived module must be implemented
3
4
  * for each supported native shader language. Similar to other `Node*` modules,
@@ -57,7 +58,7 @@ class NodeFunction {
57
58
  */
58
59
  getCode( /*name = this.name*/ ) {
59
60
 
60
- console.warn( 'Abstract function.' );
61
+ warn( 'Abstract function.' );
61
62
 
62
63
  }
63
64
 
@@ -1,3 +1,4 @@
1
+ import { warn } from '../../utils.js';
1
2
  /**
2
3
  * Base class for node parsers. A derived parser must be implemented
3
4
  * for each supported native shader language.
@@ -13,7 +14,7 @@ class NodeParser {
13
14
  */
14
15
  parseFunction( /*source*/ ) {
15
16
 
16
- console.warn( 'Abstract function.' );
17
+ warn( 'Abstract function.' );
17
18
 
18
19
  }
19
20
 
@@ -5,6 +5,7 @@ import { Matrix4 } from '../../math/Matrix4.js';
5
5
  import { Vector2 } from '../../math/Vector2.js';
6
6
  import { Vector3 } from '../../math/Vector3.js';
7
7
  import { Vector4 } from '../../math/Vector4.js';
8
+ import { error } from '../../utils.js';
8
9
 
9
10
  // cyrb53 (c) 2018 bryc (github.com/bryc). License: Public domain. Attribution appreciated.
10
11
  // A fast and simple 64-bit (or 53-bit) string hash function with decent collision resistance.
@@ -49,6 +50,7 @@ function cyrb53( value, seed = 0 ) {
49
50
  /**
50
51
  * Computes a hash for the given string.
51
52
  *
53
+ * @private
52
54
  * @method
53
55
  * @param {string} str - The string to be hashed.
54
56
  * @return {number} The hash.
@@ -58,6 +60,7 @@ export const hashString = ( str ) => cyrb53( str );
58
60
  /**
59
61
  * Computes a hash for the given array.
60
62
  *
63
+ * @private
61
64
  * @method
62
65
  * @param {Array<number>} array - The array to be hashed.
63
66
  * @return {number} The hash.
@@ -67,99 +70,13 @@ export const hashArray = ( array ) => cyrb53( array );
67
70
  /**
68
71
  * Computes a hash for the given list of parameters.
69
72
  *
73
+ * @private
70
74
  * @method
71
75
  * @param {...number} params - A list of parameters.
72
76
  * @return {number} The hash.
73
77
  */
74
78
  export const hash = ( ...params ) => cyrb53( params );
75
79
 
76
- /**
77
- * Computes a cache key for the given node.
78
- *
79
- * @method
80
- * @param {Object|Node} object - The object to be hashed.
81
- * @param {boolean} [force=false] - Whether to force a cache key computation or not.
82
- * @return {number} The hash.
83
- */
84
- export function getCacheKey( object, force = false ) {
85
-
86
- const values = [];
87
-
88
- if ( object.isNode === true ) {
89
-
90
- values.push( object.id );
91
-
92
- }
93
-
94
- for ( const { property, childNode } of getNodeChildren( object ) ) {
95
-
96
- values.push( cyrb53( property.slice( 0, - 4 ) ), childNode.getCacheKey( force ) );
97
-
98
- }
99
-
100
- return cyrb53( values );
101
-
102
- }
103
-
104
- /**
105
- * This generator function can be used to iterate over the node children
106
- * of the given object.
107
- *
108
- * @generator
109
- * @param {Object} node - The object to be hashed.
110
- * @param {boolean} [toJSON=false] - Whether to return JSON or not.
111
- * @yields {Object} A result node holding the property, index (if available) and the child node.
112
- */
113
- export function* getNodeChildren( node, toJSON = false ) {
114
-
115
- for ( const property of Object.getOwnPropertyNames( node ) ) {
116
-
117
- // Ignore private properties.
118
- if ( property.startsWith( '_' ) === true ) continue;
119
-
120
- const object = node[ property ];
121
-
122
- if ( Array.isArray( object ) === true ) {
123
-
124
- for ( let i = 0; i < object.length; i ++ ) {
125
-
126
- const child = object[ i ];
127
-
128
- if ( child && ( child.isNode === true || toJSON && typeof child.toJSON === 'function' ) ) {
129
-
130
- yield { property, index: i, childNode: child };
131
-
132
- }
133
-
134
- }
135
-
136
- } else if ( object && object.isNode === true ) {
137
-
138
- yield { property, childNode: object };
139
-
140
- } else if ( object && Object.getPrototypeOf( object ) === Object.prototype ) {
141
-
142
- for ( const subProperty in object ) {
143
-
144
- // Ignore private properties.
145
- if ( subProperty.startsWith( '_' ) === true ) continue;
146
-
147
- const child = object[ subProperty ];
148
-
149
- if ( child && ( child.isNode === true || toJSON && typeof child.toJSON === 'function' ) ) {
150
-
151
- yield { property, index: subProperty, childNode: child };
152
-
153
- }
154
-
155
- }
156
-
157
- }
158
-
159
- }
160
-
161
- }
162
-
163
80
  const typeFromLength = /*@__PURE__*/ new Map( [
164
81
  [ 1, 'float' ],
165
82
  [ 2, 'vec2' ],
@@ -174,6 +91,7 @@ const dataFromObject = /*@__PURE__*/ new WeakMap();
174
91
  /**
175
92
  * Returns the data type for the given the length.
176
93
  *
94
+ * @private
177
95
  * @method
178
96
  * @param {number} length - The length.
179
97
  * @return {string} The data type.
@@ -187,6 +105,7 @@ export function getTypeFromLength( length ) {
187
105
  /**
188
106
  * Returns the typed array for the given data type.
189
107
  *
108
+ * @private
190
109
  * @method
191
110
  * @param {string} type - The data type.
192
111
  * @return {TypedArray} The typed array.
@@ -220,6 +139,7 @@ export function getTypedArrayFromType( type ) {
220
139
  /**
221
140
  * Returns the length for the given data type.
222
141
  *
142
+ * @private
223
143
  * @method
224
144
  * @param {string} type - The data type.
225
145
  * @return {number} The length.
@@ -234,13 +154,14 @@ export function getLengthFromType( type ) {
234
154
  if ( /mat3/.test( type ) ) return 9;
235
155
  if ( /mat4/.test( type ) ) return 16;
236
156
 
237
- console.error( 'THREE.TSL: Unsupported type:', type );
157
+ error( 'TSL: Unsupported type:', type );
238
158
 
239
159
  }
240
160
 
241
161
  /**
242
162
  * Returns the gpu memory length for the given data type.
243
163
  *
164
+ * @private
244
165
  * @method
245
166
  * @param {string} type - The data type.
246
167
  * @return {number} The length.
@@ -255,13 +176,14 @@ export function getMemoryLengthFromType( type ) {
255
176
  if ( /mat3/.test( type ) ) return 12;
256
177
  if ( /mat4/.test( type ) ) return 16;
257
178
 
258
- console.error( 'THREE.TSL: Unsupported type:', type );
179
+ error( 'TSL: Unsupported type:', type );
259
180
 
260
181
  }
261
182
 
262
183
  /**
263
184
  * Returns the byte boundary for the given data type.
264
185
  *
186
+ * @private
265
187
  * @method
266
188
  * @param {string} type - The data type.
267
189
  * @return {number} The byte boundary.
@@ -276,13 +198,14 @@ export function getByteBoundaryFromType( type ) {
276
198
  if ( /mat3/.test( type ) ) return 48;
277
199
  if ( /mat4/.test( type ) ) return 64;
278
200
 
279
- console.error( 'THREE.TSL: Unsupported type:', type );
201
+ error( 'TSL: Unsupported type:', type );
280
202
 
281
203
  }
282
204
 
283
205
  /**
284
206
  * Returns the data type for the given value.
285
207
  *
208
+ * @private
286
209
  * @method
287
210
  * @param {any} value - The value.
288
211
  * @return {?string} The data type.
@@ -354,6 +277,7 @@ export function getValueType( value ) {
354
277
  /**
355
278
  * Returns the value/object for the given data type and parameters.
356
279
  *
280
+ * @private
357
281
  * @method
358
282
  * @param {string} type - The given type.
359
283
  * @param {...any} params - A parameter list.
@@ -424,6 +348,7 @@ export function getValueFromType( type, ...params ) {
424
348
  /**
425
349
  * Gets the object data that can be shared between different rendering steps.
426
350
  *
351
+ * @private
427
352
  * @param {Object} object - The object to get the data for.
428
353
  * @return {Object} The object data.
429
354
  */
@@ -445,6 +370,7 @@ export function getDataFromObject( object ) {
445
370
  /**
446
371
  * Converts the given array buffer to a Base64 string.
447
372
  *
373
+ * @private
448
374
  * @method
449
375
  * @param {ArrayBuffer} arrayBuffer - The array buffer.
450
376
  * @return {string} The Base64 string.
@@ -468,6 +394,7 @@ export function arrayBufferToBase64( arrayBuffer ) {
468
394
  /**
469
395
  * Converts the given Base64 string to an array buffer.
470
396
  *
397
+ * @private
471
398
  * @method
472
399
  * @param {string} base64 - The Base64 string.
473
400
  * @return {ArrayBuffer} The array buffer.
@@ -1,4 +1,5 @@
1
1
  import { nodeObject } from '../tsl/TSLBase.js';
2
+ import { error } from '../../utils.js';
2
3
  import PropertyNode from './PropertyNode.js';
3
4
 
4
5
  /**
@@ -35,6 +36,36 @@ class ParameterNode extends PropertyNode {
35
36
 
36
37
  }
37
38
 
39
+ /**
40
+ * Gets the type of a member variable in the parameter node.
41
+ *
42
+ * @param {NodeBuilder} builder - The node builder.
43
+ * @param {string} name - The name of the member variable.
44
+ * @returns {string}
45
+ */
46
+ getMemberType( builder, name ) {
47
+
48
+ const type = this.getNodeType( builder );
49
+ const struct = builder.getStructTypeNode( type );
50
+
51
+ let memberType;
52
+
53
+ if ( struct !== null ) {
54
+
55
+ memberType = struct.getMemberType( builder, name );
56
+
57
+ } else {
58
+
59
+ error( `TSL: Member "${ name }" not found in struct "${ type }".` );
60
+
61
+ memberType = 'float';
62
+
63
+ }
64
+
65
+ return memberType;
66
+
67
+ }
68
+
38
69
  getHash() {
39
70
 
40
71
  return this.uuid;
@@ -1,5 +1,6 @@
1
1
  import Node from './Node.js';
2
2
  import { nodeImmutable, nodeObject } from '../tsl/TSLCore.js';
3
+ import { hashString } from './NodeUtils.js';
3
4
 
4
5
  /**
5
6
  * This class represents a shader property. It can be used
@@ -68,6 +69,12 @@ class PropertyNode extends Node {
68
69
 
69
70
  }
70
71
 
72
+ customCacheKey() {
73
+
74
+ return hashString( this.type + ':' + ( this.name || '' ) + ':' + ( this.varying ? '1' : '0' ) );
75
+
76
+ }
77
+
71
78
  getHash( builder ) {
72
79
 
73
80
  return this.name || super.getHash( builder );
@@ -1,6 +1,7 @@
1
1
  import Node from './Node.js';
2
2
  import { select } from '../math/ConditionalNode.js';
3
3
  import { ShaderNode, nodeProxy, getCurrentStack, setCurrentStack, nodeObject } from '../tsl/TSLBase.js';
4
+ import { error } from '../../utils.js';
4
5
 
5
6
  /**
6
7
  * Stack is a helper for Nodes that need to produce stack-based code instead of continuous flow.
@@ -78,6 +79,12 @@ class StackNode extends Node {
78
79
 
79
80
  }
80
81
 
82
+ getElementType( builder ) {
83
+
84
+ return this.hasOutput ? this.outputNode.getElementType( builder ) : 'void';
85
+
86
+ }
87
+
81
88
  getNodeType( builder ) {
82
89
 
83
90
  return this.hasOutput ? this.outputNode.getNodeType( builder ) : 'void';
@@ -96,11 +103,11 @@ class StackNode extends Node {
96
103
  * @param {Node} node - The node to add.
97
104
  * @return {StackNode} A reference to this stack node.
98
105
  */
99
- add( node ) {
106
+ addToStack( node ) {
100
107
 
101
108
  if ( node.isNode !== true ) {
102
109
 
103
- console.error( 'THREE.TSL: Invalid node added to stack.' );
110
+ error( 'TSL: Invalid node added to stack.' );
104
111
  return this;
105
112
 
106
113
  }
@@ -123,7 +130,7 @@ class StackNode extends Node {
123
130
  const methodNode = new ShaderNode( method );
124
131
  this._currentCond = select( boolNode, methodNode );
125
132
 
126
- return this.add( this._currentCond );
133
+ return this.addToStack( this._currentCond );
127
134
 
128
135
  }
129
136
 
@@ -198,7 +205,7 @@ class StackNode extends Node {
198
205
 
199
206
  } else {
200
207
 
201
- console.error( 'THREE.TSL: Invalid parameter length. Case() requires at least two parameters.' );
208
+ error( 'TSL: Invalid parameter length. Case() requires at least two parameters.' );
202
209
 
203
210
  }
204
211
 
@@ -225,7 +232,7 @@ class StackNode extends Node {
225
232
 
226
233
  this._currentCond = condNode;
227
234
 
228
- return this.add( this._currentCond );
235
+ return this.addToStack( this._currentCond );
229
236
 
230
237
  } else {
231
238
 
@@ -262,9 +269,7 @@ class StackNode extends Node {
262
269
 
263
270
  if ( childNode.isVarNode && childNode.intent === true ) {
264
271
 
265
- const properties = builder.getNodeProperties( childNode );
266
-
267
- if ( properties.assign !== true ) {
272
+ if ( childNode.isAssign( builder ) !== true ) {
268
273
 
269
274
  continue;
270
275
 
@@ -290,12 +295,11 @@ class StackNode extends Node {
290
295
 
291
296
  build( builder, ...params ) {
292
297
 
293
- const previousBuildStack = builder.currentStack;
294
298
  const previousStack = getCurrentStack();
295
299
 
296
300
  setCurrentStack( this );
297
301
 
298
- builder.currentStack = this;
302
+ builder.setActiveStack( this );
299
303
 
300
304
  const buildStage = builder.buildStage;
301
305
 
@@ -303,9 +307,7 @@ class StackNode extends Node {
303
307
 
304
308
  if ( node.isVarNode && node.intent === true ) {
305
309
 
306
- const properties = builder.getNodeProperties( node );
307
-
308
- if ( properties.assign !== true ) {
310
+ if ( node.isAssign( builder ) !== true ) {
309
311
 
310
312
  continue;
311
313
 
@@ -354,7 +356,7 @@ class StackNode extends Node {
354
356
 
355
357
  setCurrentStack( previousStack );
356
358
 
357
- builder.currentStack = previousBuildStack;
359
+ builder.removeActiveStack( this );
358
360
 
359
361
  return result;
360
362
 
@@ -2,6 +2,7 @@ import InputNode from './InputNode.js';
2
2
  import { objectGroup } from './UniformGroupNode.js';
3
3
  import { nodeObject, getConstNodeType } from '../tsl/TSLCore.js';
4
4
  import { getValueFromType } from './NodeUtils.js';
5
+ import { warn } from '../../utils.js';
5
6
 
6
7
  /**
7
8
  * Class for representing a uniform.
@@ -77,7 +78,7 @@ class UniformNode extends InputNode {
77
78
  */
78
79
  label( name ) {
79
80
 
80
- console.warn( 'THREE.TSL: "label()" has been deprecated. Use "setName()" instead.' ); // @deprecated r179
81
+ warn( 'TSL: "label()" has been deprecated. Use "setName()" instead.' ); // @deprecated r179
81
82
 
82
83
  return this.setName( name );
83
84
 
@@ -1,5 +1,6 @@
1
1
  import Node from './Node.js';
2
- import { addMethodChaining, getCurrentStack, nodeProxy } from '../tsl/TSLCore.js';
2
+ import { addMethodChaining, nodeProxy } from '../tsl/TSLCore.js';
3
+ import { error } from '../../utils.js';
3
4
 
4
5
  /**
5
6
  * Class for representing shader variables as nodes. Variables are created from
@@ -146,14 +147,53 @@ class VarNode extends Node {
146
147
 
147
148
  }
148
149
 
150
+ isAssign( builder ) {
151
+
152
+ const properties = builder.getNodeProperties( this );
153
+
154
+ let assign = properties.assign;
155
+
156
+ if ( assign !== true ) {
157
+
158
+ if ( this.node.isShaderCallNodeInternal && this.node.shaderNode.getLayout() === null ) {
159
+
160
+ if ( builder.fnCall && builder.fnCall.shaderNode ) {
161
+
162
+ const shaderNodeData = builder.getDataFromNode( this.node.shaderNode );
163
+
164
+ if ( shaderNodeData.hasLoop ) {
165
+
166
+ assign = true;
167
+
168
+ }
169
+
170
+ }
171
+
172
+ }
173
+
174
+ }
175
+
176
+ return assign;
177
+
178
+ }
179
+
149
180
  build( ...params ) {
150
181
 
151
- if ( this.intent === true ) {
182
+ const builder = params[ 0 ];
183
+
184
+ if ( this._hasStack( builder ) === false && builder.buildStage === 'setup' ) {
185
+
186
+ if ( builder.context.nodeLoop || builder.context.nodeBlock ) {
187
+
188
+ builder.getBaseStack().addToStack( this );
189
+
190
+ }
191
+
192
+ }
152
193
 
153
- const builder = params[ 0 ];
154
- const properties = builder.getNodeProperties( this );
194
+ if ( this.intent === true ) {
155
195
 
156
- if ( properties.assign !== true ) {
196
+ if ( this.isAssign( builder ) !== true ) {
157
197
 
158
198
  return this.node.build( ...params );
159
199
 
@@ -183,7 +223,23 @@ class VarNode extends Node {
183
223
 
184
224
  }
185
225
 
186
- const vectorType = builder.getVectorType( this.getNodeType( builder ) );
226
+ const nodeType = this.getNodeType( builder );
227
+
228
+ if ( nodeType == 'void' ) {
229
+
230
+ if ( this.intent !== true ) {
231
+
232
+ error( 'TSL: ".toVar()" can not be used with void type.' );
233
+
234
+ }
235
+
236
+ const snippet = node.build( builder );
237
+
238
+ return snippet;
239
+
240
+ }
241
+
242
+ const vectorType = builder.getVectorType( nodeType );
187
243
  const snippet = node.build( builder, vectorType );
188
244
 
189
245
  const nodeVar = builder.getVarFromNode( this, name, vectorType, undefined, shouldTreatAsReadOnly );
@@ -216,6 +272,14 @@ class VarNode extends Node {
216
272
 
217
273
  }
218
274
 
275
+ _hasStack( builder ) {
276
+
277
+ const nodeData = builder.getDataFromNode( this );
278
+
279
+ return nodeData.stack !== undefined;
280
+
281
+ }
282
+
219
283
  }
220
284
 
221
285
  export default VarNode;
@@ -267,12 +331,6 @@ export const Const = ( node, name = null ) => createVar( node, name, true ).toSt
267
331
  */
268
332
  export const VarIntent = ( node ) => {
269
333
 
270
- if ( getCurrentStack() === null ) {
271
-
272
- return node;
273
-
274
- }
275
-
276
334
  return createVar( node ).setIntent( true ).toStack();
277
335
 
278
336
  };
@@ -2,6 +2,7 @@ import Node from './Node.js';
2
2
  import { NodeShaderStage } from './constants.js';
3
3
  import { addMethodChaining, nodeProxy } from '../tsl/TSLCore.js';
4
4
  import { subBuild } from './SubBuildNode.js';
5
+ import { warn } from '../../utils.js';
5
6
 
6
7
  /**
7
8
  * Class for representing shader varyings as nodes. Varyings are create from
@@ -213,14 +214,14 @@ addMethodChaining( 'toVertexStage', vertexStage );
213
214
 
214
215
  addMethodChaining( 'varying', ( ...params ) => { // @deprecated, r173
215
216
 
216
- console.warn( 'THREE.TSL: .varying() has been renamed to .toVarying().' );
217
+ warn( 'TSL: .varying() has been renamed to .toVarying().' );
217
218
  return varying( ...params );
218
219
 
219
220
  } );
220
221
 
221
222
  addMethodChaining( 'vertexStage', ( ...params ) => { // @deprecated, r173
222
223
 
223
- console.warn( 'THREE.TSL: .vertexStage() has been renamed to .toVertexStage().' );
224
+ warn( 'TSL: .vertexStage() has been renamed to .toVertexStage().' );
224
225
  return varying( ...params );
225
226
 
226
227
  } );