@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
@@ -16,7 +16,7 @@ class CSS2DObject extends Object3D {
16
16
  /**
17
17
  * Constructs a new CSS2D object.
18
18
  *
19
- * @param {DOMElement} [element] - The DOM element.
19
+ * @param {HTMLElement} [element] - The DOM element.
20
20
  */
21
21
  constructor( element = document.createElement( 'div' ) ) {
22
22
 
@@ -34,7 +34,7 @@ class CSS2DObject extends Object3D {
34
34
  /**
35
35
  * The DOM element which defines the appearance of this 3D object.
36
36
  *
37
- * @type {DOMElement}
37
+ * @type {HTMLElement}
38
38
  * @readonly
39
39
  * @default true
40
40
  */
@@ -59,6 +59,7 @@ class CSS2DObject extends Object3D {
59
59
  this.traverse( function ( object ) {
60
60
 
61
61
  if (
62
+ object.element &&
62
63
  object.element instanceof object.element.ownerDocument.defaultView.Element &&
63
64
  object.element.parentNode !== null
64
65
  ) {
@@ -132,10 +133,20 @@ class CSS2DRenderer {
132
133
  /**
133
134
  * The DOM where the renderer appends its child-elements.
134
135
  *
135
- * @type {DOMElement}
136
+ * @type {HTMLElement}
136
137
  */
137
138
  this.domElement = domElement;
138
139
 
140
+ /**
141
+ * Controls whether the renderer assigns `z-index` values to CSS2DObject DOM elements.
142
+ * If set to `true`, z-index values are assigned first based on the `renderOrder`
143
+ * and secondly - the distance to the camera. If set to `false`, no z-index values are assigned.
144
+ *
145
+ * @type {boolean}
146
+ * @default true
147
+ */
148
+ this.sortObjects = true;
149
+
139
150
  /**
140
151
  * Returns an object containing the width and height of the renderer.
141
152
  *
@@ -165,7 +176,7 @@ class CSS2DRenderer {
165
176
  _viewProjectionMatrix.multiplyMatrices( camera.projectionMatrix, _viewMatrix );
166
177
 
167
178
  renderObject( scene, scene, camera );
168
- zOrder( scene );
179
+ if ( this.sortObjects ) zOrder( scene );
169
180
 
170
181
  };
171
182
 
@@ -310,7 +321,7 @@ class CSS2DRenderer {
310
321
  * Constructor parameters of `CSS2DRenderer`.
311
322
  *
312
323
  * @typedef {Object} CSS2DRenderer~Parameters
313
- * @property {DOMElement} [element] - A DOM element where the renderer appends its child-elements.
324
+ * @property {HTMLElement} [element] - A DOM element where the renderer appends its child-elements.
314
325
  * If not passed in here, a new div element will be created.
315
326
  **/
316
327
 
@@ -22,7 +22,7 @@ class CSS3DObject extends Object3D {
22
22
  /**
23
23
  * Constructs a new CSS3D object.
24
24
  *
25
- * @param {DOMElement} [element] - The DOM element.
25
+ * @param {HTMLElement} [element] - The DOM element.
26
26
  */
27
27
  constructor( element = document.createElement( 'div' ) ) {
28
28
 
@@ -40,7 +40,7 @@ class CSS3DObject extends Object3D {
40
40
  /**
41
41
  * The DOM element which defines the appearance of this 3D object.
42
42
  *
43
- * @type {DOMElement}
43
+ * @type {HTMLElement}
44
44
  * @readonly
45
45
  * @default true
46
46
  */
@@ -56,6 +56,7 @@ class CSS3DObject extends Object3D {
56
56
  this.traverse( function ( object ) {
57
57
 
58
58
  if (
59
+ object.element &&
59
60
  object.element instanceof object.element.ownerDocument.defaultView.Element &&
60
61
  object.element.parentNode !== null
61
62
  ) {
@@ -94,7 +95,7 @@ class CSS3DSprite extends CSS3DObject {
94
95
  /**
95
96
  * Constructs a new CSS3D sprite object.
96
97
  *
97
- * @param {DOMElement} [element] - The DOM element.
98
+ * @param {HTMLElement} [element] - The DOM element.
98
99
  */
99
100
  constructor( element ) {
100
101
 
@@ -138,7 +139,7 @@ const _matrix2 = new Matrix4();
138
139
 
139
140
  /**
140
141
  * This renderer can be used to apply hierarchical 3D transformations to DOM elements
141
- * via the CSS3 [transform]{@link https://www.w3schools.com/cssref/css3_pr_transform.asp} property.
142
+ * via the CSS3 [transform](https://www.w3schools.com/cssref/css3_pr_transform.asp) property.
142
143
  * `CSS3DRenderer` is particularly interesting if you want to apply 3D effects to a website without
143
144
  * canvas based rendering. It can also be used in order to combine DOM elements with WebGLcontent.
144
145
  *
@@ -179,7 +180,7 @@ class CSS3DRenderer {
179
180
  /**
180
181
  * The DOM where the renderer appends its child-elements.
181
182
  *
182
- * @type {DOMElement}
183
+ * @type {HTMLElement}
183
184
  */
184
185
  this.domElement = domElement;
185
186
 
@@ -446,7 +447,7 @@ class CSS3DRenderer {
446
447
  * Constructor parameters of `CSS3DRenderer`.
447
448
  *
448
449
  * @typedef {Object} CSS3DRenderer~Parameters
449
- * @property {DOMElement} [element] - A DOM element where the renderer appends its child-elements.
450
+ * @property {HTMLElement} [element] - A DOM element where the renderer appends its child-elements.
450
451
  * If not passed in here, a new div element will be created.
451
452
  **/
452
453
 
@@ -120,7 +120,7 @@ class SVGRenderer {
120
120
  /**
121
121
  * The DOM where the renderer appends its child-elements.
122
122
  *
123
- * @type {DOMElement}
123
+ * @type {SVGSVGElement}
124
124
  */
125
125
  this.domElement = _svg;
126
126
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  /**
7
7
  * ACES Filmic Tone Mapping Shader by Stephen Hill.
8
- * Reference: [ltc_blit.fs]{@link https://github.com/selfshadow/ltc_code/blob/master/webgl/shaders/ltc/ltc_blit.fs}
8
+ * Reference: [ltc_blit.fs](https://github.com/selfshadow/ltc_code/blob/master/webgl/shaders/ltc/ltc_blit.fs)
9
9
  *
10
10
  * This implementation of ACES is modified to accommodate a brighter viewing environment.
11
11
  * The scale factor of 1/0.6 is subjective. See discussion in #19621.
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  /**
7
- * Inspired by [Three.js FBO motion trails]{@link https://codepen.io/brunoimbrizi/pen/MoRJaN?page=1&}.
7
+ * Inspired by [Three.js FBO motion trails](https://codepen.io/brunoimbrizi/pen/MoRJaN?page=1&).
8
8
  *
9
9
  * @constant
10
10
  * @type {ShaderMaterial~Shader}
@@ -6,7 +6,7 @@
6
6
 
7
7
  /**
8
8
  * Bleach bypass shader [http://en.wikipedia.org/wiki/Bleach_bypass] based on
9
- * [Nvidia Shader library]{@link http://developer.download.nvidia.com/shaderlibrary/webpages/shader_library.html#post_bleach_bypass}.
9
+ * [Nvidia Shader library](http://developer.download.nvidia.com/shaderlibrary/webpages/shader_library.html#post_bleach_bypass).
10
10
  *
11
11
  * @constant
12
12
  * @type {ShaderMaterial~Shader}
@@ -5,7 +5,7 @@
5
5
 
6
6
  /**
7
7
  * Depth-of-field shader with bokeh ported from
8
- * [GLSL shader by Martins Upitis]{@link http://artmartinsh.blogspot.com/2010/02/glsl-lens-blur-filter-with-bokeh.html}.
8
+ * [GLSL shader by Martins Upitis](http://artmartinsh.blogspot.com/2010/02/glsl-lens-blur-filter-with-bokeh.html).
9
9
  *
10
10
  * @constant
11
11
  * @type {ShaderMaterial~Shader}
@@ -9,7 +9,7 @@ import {
9
9
 
10
10
  /**
11
11
  * Depth-of-field shader with bokeh ported from
12
- * [GLSL shader by Martins Upitis]{@link http://blenderartists.org/forum/showthread.php?237488-GLSL-depth-of-field-with-bokeh-v2-4-(update)}.
12
+ * [GLSL shader by Martins Upitis](http://blenderartists.org/forum/showthread.php?237488-GLSL-depth-of-field-with-bokeh-v2-4-(update)).
13
13
  *
14
14
  * Requires #define RINGS and SAMPLES integers
15
15
  *
@@ -8,7 +8,7 @@ import {
8
8
  */
9
9
 
10
10
  /**
11
- * Dot screen shader based on [glfx.js sepia shader]{@link https://github.com/evanw/glfx.js}.
11
+ * Dot screen shader based on [glfx.js sepia shader](https://github.com/evanw/glfx.js).
12
12
  *
13
13
  * @constant
14
14
  * @type {ShaderMaterial~Shader}
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  /**
7
- * Focus shader based on [PaintEffect postprocess from ro.me]{@link http://code.google.com/p/3-dreams-of-black/source/browse/deploy/js/effects/PaintEffect.js}.
7
+ * Focus shader based on [PaintEffect postprocess from ro.me](http://code.google.com/p/3-dreams-of-black/source/browse/deploy/js/effects/PaintEffect.js).
8
8
  *
9
9
  * @constant
10
10
  * @type {ShaderMaterial~Shader}
@@ -15,8 +15,8 @@ import {
15
15
  * GTAO shader. Use by {@link GTAOPass}.
16
16
  *
17
17
  * References:
18
- * - [Practical Realtime Strategies for Accurate Indirect Occlusion]{@link https://iryoku.com/downloads/Practical-Realtime-Strategies-for-Accurate-Indirect-Occlusion.pdf}.
19
- * - [Horizon-Based Indirect Lighting (HBIL)]{@link https://github.com/Patapom/GodComplex/blob/master/Tests/TestHBIL/2018%20Mayaux%20-%20Horizon-Based%20Indirect%20Lighting%20(HBIL).pdf}
18
+ * - [Practical Realtime Strategies for Accurate Indirect Occlusion](https://iryoku.com/downloads/Practical-Realtime-Strategies-for-Accurate-Indirect-Occlusion.pdf).
19
+ * - [Horizon-Based Indirect Lighting (HBIL)](https://github.com/Patapom/GodComplex/blob/master/Tests/TestHBIL/2018%20Mayaux%20-%20Horizon-Based%20Indirect%20Lighting%20(HBIL).pdf)
20
20
  *
21
21
  * @constant
22
22
  * @type {ShaderMaterial~Shader}
@@ -22,7 +22,7 @@ import {
22
22
  * 6*6*6 = 216 samples.
23
23
  *
24
24
  * References:
25
- * - [Sousa2008, Crysis Next Gen Effects, GDC2008]{@link http://www.crytek.com/sites/default/files/GDC08_SousaT_CrysisEffects.ppt}.
25
+ * - [Sousa2008, Crysis Next Gen Effects, GDC2008](http://www.crytek.com/sites/default/files/GDC08_SousaT_CrysisEffects.ppt).
26
26
  *
27
27
  * @constant
28
28
  * @type {ShaderMaterial~Shader}
@@ -7,7 +7,7 @@
7
7
  * Kaleidoscope Shader.
8
8
  * Radial reflection around center point
9
9
  * Ported from: {@link http://pixelshaders.com/editor/}
10
- * by [Toby Schachman]{@link http://tobyschachman.com/}
10
+ * by [Toby Schachman](http://tobyschachman.com/)
11
11
  *
12
12
  * sides: number of reflections
13
13
  * angle: initial angle in radians
@@ -13,8 +13,8 @@ import {
13
13
  * Poisson Denoise Shader.
14
14
  *
15
15
  * References:
16
- * - [Self-Supervised Poisson-Gaussian Denoising]{@link https://openaccess.thecvf.com/content/WACV2021/papers/Khademi_Self-Supervised_Poisson-Gaussian_Denoising_WACV_2021_paper.pdf}.
17
- * - [Poisson2Sparse: Self-Supervised Poisson Denoising From a Single Image]{@link https://arxiv.org/pdf/2206.01856.pdf}
16
+ * - [Self-Supervised Poisson-Gaussian Denoising](https://openaccess.thecvf.com/content/WACV2021/papers/Khademi_Self-Supervised_Poisson-Gaussian_Denoising_WACV_2021_paper.pdf).
17
+ * - [Poisson2Sparse: Self-Supervised Poisson Denoising From a Single Image](https://arxiv.org/pdf/2206.01856.pdf)
18
18
  *
19
19
  * @constant
20
20
  * @type {ShaderMaterial~Shader}
@@ -8,7 +8,7 @@ import {
8
8
  * A collection of shaders used for SSR.
9
9
  *
10
10
  * References:
11
- * - [3D Game Shaders For Beginners, Screen Space Reflection (SSR)]{@link https://lettier.github.io/3d-game-shaders-for-beginners/screen-space-reflection.html}.
11
+ * - [3D Game Shaders For Beginners, Screen Space Reflection (SSR)](https://lettier.github.io/3d-game-shaders-for-beginners/screen-space-reflection.html).
12
12
  *
13
13
  * @module SSRShader
14
14
  * @three_import import * as SSRShader from 'three/addons/shaders/SSRShader.js';
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  /**
7
- * Sepia tone shader based on [glfx.js sepia shader]{@link https://github.com/evanw/glfx.js}.
7
+ * Sepia tone shader based on [glfx.js sepia shader](https://github.com/evanw/glfx.js).
8
8
  *
9
9
  * @constant
10
10
  * @type {ShaderMaterial~Shader}
@@ -22,7 +22,7 @@ const meshphong_frag_body = ShaderChunk[ 'meshphong_frag' ].slice( ShaderChunk[
22
22
  /**
23
23
  * Subsurface Scattering shader.
24
24
  *
25
- * Based on GDC 2011 – [Approximating Translucency for a Fast, Cheap and Convincing Subsurface Scattering Look]{@link https://colinbarrebrisebois.com/2011/03/07/gdc-2011-approximating-translucency-for-a-fast-cheap-and-convincing-subsurface-scattering-look/}
25
+ * Based on GDC 2011 – [Approximating Translucency for a Fast, Cheap and Convincing Subsurface Scattering Look](https://colinbarrebrisebois.com/2011/03/07/gdc-2011-approximating-translucency-for-a-fast-cheap-and-convincing-subsurface-scattering-look/)
26
26
  *
27
27
  * @constant
28
28
  * @type {ShaderMaterial~Shader}
@@ -8,7 +8,7 @@ import {
8
8
  */
9
9
 
10
10
  /**
11
- * Triangle blur shader based on [glfx.js triangle blur shader]{@link https://github.com/evanw/glfx.js}.
11
+ * Triangle blur shader based on [glfx.js triangle blur shader](https://github.com/evanw/glfx.js).
12
12
  *
13
13
  * A basic blur filter, which convolves the image with a
14
14
  * pyramid filter. The pyramid filter is separable and is applied as two
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  /**
7
- * Based on [PaintEffect postprocess from ro.me]{@link http://code.google.com/p/3-dreams-of-black/source/browse/deploy/js/effects/PaintEffect.js}.
7
+ * Based on [PaintEffect postprocess from ro.me](http://code.google.com/p/3-dreams-of-black/source/browse/deploy/js/effects/PaintEffect.js).
8
8
  *
9
9
  * @constant
10
10
  * @type {ShaderMaterial~Shader}
@@ -681,6 +681,12 @@ ${ this.tab }} )`;
681
681
 
682
682
  }
683
683
 
684
+ if ( node.needsToVar ) {
685
+
686
+ varStr = varStr + '.toVar()';
687
+
688
+ }
689
+
684
690
  return varStr;
685
691
 
686
692
  }
@@ -750,6 +756,7 @@ ${ this.tab }} )`;
750
756
  const mutableParam = new VariableDeclaration( param.type, param.name, new Accessor( param.name + '_immutable' ), null, true );
751
757
  mutableParam.parent = param.parent; // link to the original node
752
758
  mutableParam.linker.assignments.push( mutableParam );
759
+ mutableParam.needsToVar = true; // force var declaration
753
760
 
754
761
  node.body.unshift( mutableParam );
755
762
 
@@ -1,8 +1,8 @@
1
1
  import { RenderTarget, Vector2, QuadMesh, NodeMaterial, RendererUtils, TempNode, NodeUpdateType } from 'three/webgpu';
2
- import { nodeObject, Fn, float, uv, texture, passTexture, uniform, sign, max, convertToTexture } from 'three/tsl';
2
+ import { nodeObject, Fn, float, uv, texture, passTexture, sign, max, convertToTexture } from 'three/tsl';
3
3
 
4
4
  const _size = /*@__PURE__*/ new Vector2();
5
- const _quadMeshComp = /*@__PURE__*/ new QuadMesh();
5
+ const _quadMesh = /*@__PURE__*/ new QuadMesh();
6
6
 
7
7
  let _rendererState;
8
8
 
@@ -24,9 +24,9 @@ class AfterImageNode extends TempNode {
24
24
  * Constructs a new after image node.
25
25
  *
26
26
  * @param {TextureNode} textureNode - The texture node that represents the input of the effect.
27
- * @param {number} [damp=0.96] - The damping intensity. A higher value means a stronger after image effect.
27
+ * @param {Node<float>} [damp=0.96] - The damping intensity. A higher value means a stronger after image effect.
28
28
  */
29
- constructor( textureNode, damp = 0.96 ) {
29
+ constructor( textureNode, damp = float( 0.96 ) ) {
30
30
 
31
31
  super( 'vec4' );
32
32
 
@@ -37,21 +37,14 @@ class AfterImageNode extends TempNode {
37
37
  */
38
38
  this.textureNode = textureNode;
39
39
 
40
- /**
41
- * The texture represents the pervious frame.
42
- *
43
- * @type {TextureNode}
44
- */
45
- this.textureNodeOld = texture( null );
46
-
47
40
  /**
48
41
  * How quickly the after-image fades. A higher value means the after-image
49
42
  * persists longer, while a lower value means it fades faster. Should be in
50
43
  * the range `[0, 1]`.
51
44
  *
52
- * @type {UniformNode<float>}
45
+ * @type {Node<float>}
53
46
  */
54
- this.damp = uniform( damp );
47
+ this.damp = damp;
55
48
 
56
49
  /**
57
50
  * The render target used for compositing the effect.
@@ -79,6 +72,14 @@ class AfterImageNode extends TempNode {
79
72
  */
80
73
  this._textureNode = passTexture( this, this._compRT.texture );
81
74
 
75
+ /**
76
+ * The texture represents the pervious frame.
77
+ *
78
+ * @private
79
+ * @type {TextureNode}
80
+ */
81
+ this._textureNodeOld = texture( this._oldRT.texture );
82
+
82
83
  /**
83
84
  * The `updateBeforeType` is set to `NodeUpdateType.FRAME` since the node renders
84
85
  * its effect once per frame in `updateBefore()`.
@@ -139,17 +140,20 @@ class AfterImageNode extends TempNode {
139
140
 
140
141
  this.setSize( _size.x, _size.y );
141
142
 
142
- const currentTexture = textureNode.value;
143
+ // make sure texture nodes point to correct render targets
144
+
145
+ this._textureNode.value = this._compRT.texture;
146
+ this._textureNodeOld.value = this._oldRT.texture;
143
147
 
144
- this.textureNodeOld.value = this._oldRT.texture;
148
+ // composite
145
149
 
146
- // comp
147
- _quadMeshComp.material = this._materialComposed;
150
+ _quadMesh.material = this._materialComposed;
151
+ _quadMesh.name = 'AfterImage';
148
152
 
149
153
  renderer.setRenderTarget( this._compRT );
150
- _quadMeshComp.render( renderer );
154
+ _quadMesh.render( renderer );
151
155
 
152
- // Swap the textures
156
+ // swap
153
157
 
154
158
  const temp = this._oldRT;
155
159
  this._oldRT = this._compRT;
@@ -157,8 +161,6 @@ class AfterImageNode extends TempNode {
157
161
 
158
162
  //
159
163
 
160
- textureNode.value = currentTexture;
161
-
162
164
  RendererUtils.restoreRendererState( renderer, _rendererState );
163
165
 
164
166
  }
@@ -172,7 +174,7 @@ class AfterImageNode extends TempNode {
172
174
  setup( builder ) {
173
175
 
174
176
  const textureNode = this.textureNode;
175
- const textureNodeOld = this.textureNodeOld;
177
+ const textureNodeOld = this._textureNodeOld;
176
178
 
177
179
  //
178
180
 
@@ -234,9 +236,9 @@ class AfterImageNode extends TempNode {
234
236
  * @tsl
235
237
  * @function
236
238
  * @param {Node<vec4>} node - The node that represents the input of the effect.
237
- * @param {number} [damp=0.96] - The damping intensity. A higher value means a stronger after image effect.
239
+ * @param {(Node<float>|number)} [damp=0.96] - The damping intensity. A higher value means a stronger after image effect.
238
240
  * @returns {AfterImageNode}
239
241
  */
240
- export const afterImage = ( node, damp ) => nodeObject( new AfterImageNode( convertToTexture( node ), damp ) );
242
+ export const afterImage = ( node, damp ) => nodeObject( new AfterImageNode( convertToTexture( node ), nodeObject( damp ) ) );
241
243
 
242
244
  export default AfterImageNode;
@@ -69,7 +69,7 @@ class AnamorphicNode extends TempNode {
69
69
  /**
70
70
  * The resolution scale.
71
71
  *
72
- * @type {float}
72
+ * @type {number}
73
73
  */
74
74
  this.resolutionScale = 1;
75
75
 
@@ -158,6 +158,7 @@ class AnamorphicNode extends TempNode {
158
158
  const currentTexture = textureNode.value;
159
159
 
160
160
  _quadMesh.material = this._material;
161
+ _quadMesh.name = 'Anamorphic';
161
162
 
162
163
  this.setSize( map.image.width, map.image.height );
163
164
 
@@ -300,6 +300,7 @@ class BloomNode extends TempNode {
300
300
 
301
301
  renderer.setRenderTarget( this._renderTargetBright );
302
302
  _quadMesh.material = this._highPassFilterMaterial;
303
+ _quadMesh.name = 'Bloom [ High Pass ]';
303
304
  _quadMesh.render( renderer );
304
305
 
305
306
  // 2. Blur all the mips progressively
@@ -313,11 +314,13 @@ class BloomNode extends TempNode {
313
314
  this._separableBlurMaterials[ i ].colorTexture.value = inputRenderTarget.texture;
314
315
  this._separableBlurMaterials[ i ].direction.value = _BlurDirectionX;
315
316
  renderer.setRenderTarget( this._renderTargetsHorizontal[ i ] );
317
+ _quadMesh.name = `Bloom [ Blur Horizontal - ${ i } ]`;
316
318
  _quadMesh.render( renderer );
317
319
 
318
320
  this._separableBlurMaterials[ i ].colorTexture.value = this._renderTargetsHorizontal[ i ].texture;
319
321
  this._separableBlurMaterials[ i ].direction.value = _BlurDirectionY;
320
322
  renderer.setRenderTarget( this._renderTargetsVertical[ i ] );
323
+ _quadMesh.name = `Bloom [ Blur Vertical - ${ i } ]`;
321
324
  _quadMesh.render( renderer );
322
325
 
323
326
  inputRenderTarget = this._renderTargetsVertical[ i ];
@@ -328,6 +331,7 @@ class BloomNode extends TempNode {
328
331
 
329
332
  renderer.setRenderTarget( this._renderTargetsHorizontal[ 0 ] );
330
333
  _quadMesh.material = this._compositeMaterial;
334
+ _quadMesh.name = 'Bloom [ Composite ]';
331
335
  _quadMesh.render( renderer );
332
336
 
333
337
  // restore
@@ -259,6 +259,7 @@ export default DenoiseNode;
259
259
  /**
260
260
  * Generates denoise samples based on the given parameters.
261
261
  *
262
+ * @private
262
263
  * @param {number} numSamples - The number of samples.
263
264
  * @param {number} numRings - The number of rings.
264
265
  * @param {number} radiusExponent - The radius exponent.
@@ -283,6 +284,7 @@ function generateDenoiseSamples( numSamples, numRings, radiusExponent ) {
283
284
  /**
284
285
  * Generates a default noise texture for the given size.
285
286
  *
287
+ * @private
286
288
  * @param {number} [size=64] - The texture size.
287
289
  * @return {DataTexture} The generated noise texture.
288
290
  */
@@ -285,6 +285,7 @@ class DepthOfFieldNode extends TempNode {
285
285
 
286
286
  _quadMesh.material = this._CoCMaterial;
287
287
  renderer.setRenderTarget( this._CoCRT );
288
+ _quadMesh.name = 'DoF [ CoC ]';
288
289
  _quadMesh.render( renderer );
289
290
 
290
291
  // blur near field to avoid visible aliased edges when the near field
@@ -294,6 +295,7 @@ class DepthOfFieldNode extends TempNode {
294
295
 
295
296
  _quadMesh.material = this._CoCBlurredMaterial;
296
297
  renderer.setRenderTarget( this._CoCBlurredRT );
298
+ _quadMesh.name = 'DoF [ CoC Blur ]';
297
299
  _quadMesh.render( renderer );
298
300
 
299
301
  // blur64 near
@@ -302,12 +304,14 @@ class DepthOfFieldNode extends TempNode {
302
304
 
303
305
  _quadMesh.material = this._blur64Material;
304
306
  renderer.setRenderTarget( this._blur64RT );
307
+ _quadMesh.name = 'DoF [ Blur64 Near ]';
305
308
  _quadMesh.render( renderer );
306
309
 
307
310
  // blur16 near
308
311
 
309
312
  _quadMesh.material = this._blur16Material;
310
313
  renderer.setRenderTarget( this._blur16NearRT );
314
+ _quadMesh.name = 'DoF [ Blur16 Near ]';
311
315
  _quadMesh.render( renderer );
312
316
 
313
317
  // blur64 far
@@ -316,18 +320,21 @@ class DepthOfFieldNode extends TempNode {
316
320
 
317
321
  _quadMesh.material = this._blur64Material;
318
322
  renderer.setRenderTarget( this._blur64RT );
323
+ _quadMesh.name = 'DoF [ Blur64 Far ]';
319
324
  _quadMesh.render( renderer );
320
325
 
321
326
  // blur16 far
322
327
 
323
328
  _quadMesh.material = this._blur16Material;
324
329
  renderer.setRenderTarget( this._blur16FarRT );
330
+ _quadMesh.name = 'DoF [ Blur16 Far ]';
325
331
  _quadMesh.render( renderer );
326
332
 
327
333
  // composite
328
334
 
329
335
  _quadMesh.material = this._compositeMaterial;
330
336
  renderer.setRenderTarget( this._compositeRT );
337
+ _quadMesh.name = 'DoF [ Composite ]';
331
338
  _quadMesh.render( renderer );
332
339
 
333
340
  // restore