@plastic-software/three 0.167.3 → 0.174.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 (748) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/build/three.cjs +36277 -24023
  4. package/build/three.core.js +48830 -0
  5. package/build/three.core.min.js +6 -0
  6. package/build/three.module.js +10175 -46743
  7. package/build/three.module.min.js +2 -2
  8. package/build/three.tsl.js +550 -0
  9. package/build/three.tsl.min.js +6 -0
  10. package/build/three.webgpu.js +44348 -50670
  11. package/build/three.webgpu.min.js +2 -2
  12. package/build/three.webgpu.nodes.js +70301 -0
  13. package/build/three.webgpu.nodes.min.js +6 -0
  14. package/examples/jsm/Addons.js +3 -15
  15. package/examples/jsm/animation/AnimationClipCreator.js +1 -1
  16. package/examples/jsm/animation/CCDIKSolver.js +61 -11
  17. package/examples/jsm/capabilities/WebGL.js +27 -21
  18. package/examples/jsm/capabilities/WebGPU.js +1 -10
  19. package/examples/jsm/controls/ArcballControls.js +262 -231
  20. package/examples/jsm/controls/DragControls.js +1 -1
  21. package/examples/jsm/controls/FirstPersonControls.js +175 -163
  22. package/examples/jsm/controls/FlyControls.js +194 -188
  23. package/examples/jsm/controls/OrbitControls.js +801 -777
  24. package/examples/jsm/controls/PointerLockControls.js +26 -20
  25. package/examples/jsm/controls/TrackballControls.js +469 -448
  26. package/examples/jsm/controls/TransformControls.js +119 -68
  27. package/examples/jsm/csm/CSM.js +2 -2
  28. package/examples/jsm/csm/CSMFrustum.js +7 -4
  29. package/examples/jsm/csm/CSMHelper.js +2 -0
  30. package/examples/jsm/csm/CSMShadowNode.js +442 -0
  31. package/examples/jsm/curves/NURBSCurve.js +33 -2
  32. package/examples/jsm/curves/NURBSUtils.js +3 -0
  33. package/examples/jsm/effects/AnaglyphEffect.js +6 -13
  34. package/examples/jsm/effects/OutlineEffect.js +1 -1
  35. package/examples/jsm/effects/ParallaxBarrierEffect.js +17 -11
  36. package/examples/jsm/effects/StereoEffect.js +6 -1
  37. package/examples/jsm/exporters/DRACOExporter.js +4 -2
  38. package/examples/jsm/exporters/EXRExporter.js +19 -11
  39. package/examples/jsm/exporters/GLTFExporter.js +181 -109
  40. package/examples/jsm/exporters/KTX2Exporter.js +54 -23
  41. package/examples/jsm/exporters/OBJExporter.js +5 -1
  42. package/examples/jsm/exporters/PLYExporter.js +11 -9
  43. package/examples/jsm/exporters/USDZExporter.js +50 -11
  44. package/examples/jsm/geometries/DecalGeometry.js +73 -21
  45. package/examples/jsm/geometries/TextGeometry.js +1 -12
  46. package/examples/jsm/helpers/LightProbeHelper.js +43 -44
  47. package/examples/jsm/helpers/LightProbeHelperGPU.js +65 -0
  48. package/examples/jsm/helpers/TextureHelperGPU.js +185 -0
  49. package/examples/jsm/helpers/VertexNormalsHelper.js +2 -0
  50. package/examples/jsm/interactive/HTMLMesh.js +1 -0
  51. package/examples/jsm/interactive/InteractiveGroup.js +108 -51
  52. package/examples/jsm/interactive/SelectionHelper.js +3 -1
  53. package/examples/jsm/libs/basis/basis_transcoder.js +8 -10
  54. package/examples/jsm/libs/basis/basis_transcoder.wasm +0 -0
  55. package/examples/jsm/libs/demuxer_mp4.js +109 -0
  56. package/examples/jsm/libs/ktx-parse.module.js +1 -1
  57. package/examples/jsm/lighting/TiledLighting.js +18 -0
  58. package/examples/jsm/lights/LightProbeGenerator.js +26 -12
  59. package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -1
  60. package/examples/jsm/lines/LineGeometry.js +25 -0
  61. package/examples/jsm/lines/LineMaterial.js +0 -1
  62. package/examples/jsm/lines/LineSegmentsGeometry.js +2 -0
  63. package/examples/jsm/lines/webgpu/Line2.js +2 -1
  64. package/examples/jsm/lines/webgpu/LineSegments2.js +16 -21
  65. package/examples/jsm/lines/webgpu/Wireframe.js +57 -0
  66. package/examples/jsm/loaders/3DMLoader.js +1 -0
  67. package/examples/jsm/loaders/3MFLoader.js +104 -2
  68. package/examples/jsm/loaders/BVHLoader.js +1 -1
  69. package/examples/jsm/loaders/ColladaLoader.js +15 -12
  70. package/examples/jsm/loaders/DDSLoader.js +42 -0
  71. package/examples/jsm/loaders/DRACOLoader.js +3 -1
  72. package/examples/jsm/loaders/FBXLoader.js +71 -22
  73. package/examples/jsm/loaders/GCodeLoader.js +4 -2
  74. package/examples/jsm/loaders/GLTFLoader.js +29 -14
  75. package/examples/jsm/loaders/KTX2Loader.js +160 -58
  76. package/examples/jsm/loaders/KTXLoader.js +4 -4
  77. package/examples/jsm/loaders/LDrawLoader.js +22 -136
  78. package/examples/jsm/loaders/LottieLoader.js +2 -1
  79. package/examples/jsm/loaders/MTLLoader.js +27 -7
  80. package/examples/jsm/loaders/MaterialXLoader.js +40 -14
  81. package/examples/jsm/loaders/NRRDLoader.js +1 -1
  82. package/examples/jsm/loaders/OBJLoader.js +5 -3
  83. package/examples/jsm/loaders/PCDLoader.js +14 -13
  84. package/examples/jsm/loaders/PDBLoader.js +3 -2
  85. package/examples/jsm/loaders/PLYLoader.js +15 -12
  86. package/examples/jsm/loaders/PVRLoader.js +1 -1
  87. package/examples/jsm/loaders/STLLoader.js +3 -2
  88. package/examples/jsm/loaders/SVGLoader.js +2 -2
  89. package/examples/jsm/loaders/TDSLoader.js +17 -18
  90. package/examples/jsm/loaders/VRMLLoader.js +17 -17
  91. package/examples/jsm/loaders/VTKLoader.js +4 -3
  92. package/examples/jsm/loaders/XYZLoader.js +3 -2
  93. package/examples/jsm/loaders/lwo/IFFParser.js +4 -4
  94. package/examples/jsm/materials/LDrawConditionalLineMaterial.js +143 -0
  95. package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +114 -0
  96. package/examples/jsm/materials/MeshGouraudMaterial.js +2 -0
  97. package/examples/jsm/math/ColorSpaces.js +76 -0
  98. package/examples/jsm/math/ConvexHull.js +1 -1
  99. package/examples/jsm/math/OBB.js +17 -0
  100. package/examples/jsm/misc/GPUComputationRenderer.js +6 -7
  101. package/examples/jsm/misc/ProgressiveLightMap.js +54 -41
  102. package/examples/jsm/misc/ProgressiveLightMapGPU.js +294 -0
  103. package/examples/jsm/misc/Timer.js +27 -12
  104. package/examples/jsm/misc/Volume.js +28 -18
  105. package/examples/jsm/misc/VolumeSlice.js +19 -16
  106. package/examples/jsm/modifiers/CurveModifier.js +10 -8
  107. package/examples/jsm/modifiers/CurveModifierGPU.js +235 -0
  108. package/examples/jsm/modifiers/SimplifyModifier.js +2 -2
  109. package/examples/jsm/objects/GroundedSkybox.js +4 -4
  110. package/examples/jsm/objects/LensflareMesh.js +324 -0
  111. package/examples/jsm/objects/Reflector.js +5 -2
  112. package/examples/jsm/objects/Sky.js +2 -2
  113. package/examples/jsm/objects/SkyMesh.js +14 -14
  114. package/examples/jsm/objects/Water2.js +1 -1
  115. package/examples/jsm/objects/Water2Mesh.js +11 -9
  116. package/examples/jsm/objects/WaterMesh.js +38 -33
  117. package/examples/jsm/physics/JoltPhysics.js +8 -8
  118. package/examples/jsm/physics/RapierPhysics.js +5 -5
  119. package/examples/jsm/postprocessing/AfterimagePass.js +14 -3
  120. package/examples/jsm/postprocessing/BloomPass.js +2 -2
  121. package/examples/jsm/postprocessing/EffectComposer.js +1 -2
  122. package/examples/jsm/postprocessing/OutlinePass.js +37 -51
  123. package/examples/jsm/postprocessing/OutputPass.js +2 -0
  124. package/examples/jsm/postprocessing/SAOPass.js +1 -2
  125. package/examples/jsm/postprocessing/SMAAPass.js +1 -3
  126. package/examples/jsm/postprocessing/SSAARenderPass.js +3 -1
  127. package/examples/jsm/postprocessing/SSAOPass.js +2 -4
  128. package/examples/jsm/postprocessing/SSRPass.js +8 -4
  129. package/examples/jsm/postprocessing/UnrealBloomPass.js +2 -2
  130. package/examples/jsm/renderers/CSS2DRenderer.js +6 -3
  131. package/examples/jsm/renderers/CSS3DRenderer.js +7 -4
  132. package/examples/jsm/renderers/SVGRenderer.js +6 -4
  133. package/examples/jsm/shaders/BokehShader2.js +1 -1
  134. package/examples/jsm/shaders/FXAAShader.js +225 -224
  135. package/examples/jsm/shaders/GodRaysShader.js +3 -3
  136. package/examples/jsm/shaders/OutputShader.js +6 -2
  137. package/examples/jsm/shaders/SobelOperatorShader.js +1 -1
  138. package/examples/jsm/transpiler/AST.js +12 -2
  139. package/examples/jsm/transpiler/GLSLDecoder.js +77 -31
  140. package/examples/jsm/transpiler/ShaderToyDecoder.js +3 -3
  141. package/examples/jsm/transpiler/TSLEncoder.js +96 -21
  142. package/examples/jsm/tsl/display/AfterImageNode.js +243 -0
  143. package/examples/jsm/tsl/display/AnaglyphPassNode.js +106 -0
  144. package/examples/jsm/tsl/display/AnamorphicNode.js +257 -0
  145. package/{src/nodes/display/BleachBypassNode.js → examples/jsm/tsl/display/BleachBypass.js} +11 -6
  146. package/{src/nodes → examples/jsm/tsl}/display/BloomNode.js +252 -67
  147. package/examples/jsm/tsl/display/DenoiseNode.js +332 -0
  148. package/{src/nodes → examples/jsm/tsl}/display/DepthOfFieldNode.js +92 -14
  149. package/examples/jsm/tsl/display/DotScreenNode.js +103 -0
  150. package/examples/jsm/tsl/display/FXAANode.js +364 -0
  151. package/examples/jsm/tsl/display/FilmNode.js +100 -0
  152. package/examples/jsm/tsl/display/GTAONode.js +521 -0
  153. package/examples/jsm/tsl/display/GaussianBlurNode.js +393 -0
  154. package/examples/jsm/tsl/display/LensflareNode.js +278 -0
  155. package/examples/jsm/tsl/display/Lut3DNode.js +108 -0
  156. package/examples/jsm/tsl/display/MotionBlur.js +33 -0
  157. package/examples/jsm/tsl/display/OutlineNode.js +750 -0
  158. package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +88 -0
  159. package/{src/nodes → examples/jsm/tsl}/display/PixelationPassNode.js +160 -28
  160. package/examples/jsm/tsl/display/RGBShiftNode.js +95 -0
  161. package/examples/jsm/tsl/display/SMAANode.js +767 -0
  162. package/examples/jsm/tsl/display/SSAAPassNode.js +357 -0
  163. package/examples/jsm/tsl/display/SSRNode.js +538 -0
  164. package/examples/jsm/tsl/display/Sepia.js +24 -0
  165. package/{src/nodes → examples/jsm/tsl}/display/SobelOperatorNode.js +66 -20
  166. package/examples/jsm/tsl/display/StereoCompositePassNode.js +184 -0
  167. package/examples/jsm/tsl/display/StereoPassNode.js +119 -0
  168. package/examples/jsm/tsl/display/TRAAPassNode.js +451 -0
  169. package/examples/jsm/tsl/display/TransitionNode.js +140 -0
  170. package/examples/jsm/tsl/display/hashBlur.js +34 -0
  171. package/examples/jsm/tsl/lighting/TiledLightsNode.js +395 -0
  172. package/examples/jsm/tsl/math/Bayer.js +18 -0
  173. package/examples/jsm/tsl/utils/Raymarching.js +65 -0
  174. package/examples/jsm/utils/BufferGeometryUtils.js +2 -2
  175. package/examples/jsm/utils/CameraUtils.js +4 -1
  176. package/examples/jsm/utils/GeometryCompressionUtils.js +38 -123
  177. package/examples/jsm/utils/GeometryUtils.js +22 -19
  178. package/examples/jsm/utils/SceneOptimizer.js +410 -0
  179. package/examples/jsm/utils/SceneUtils.js +2 -2
  180. package/examples/jsm/utils/ShadowMapViewer.js +3 -8
  181. package/examples/jsm/utils/ShadowMapViewerGPU.js +201 -0
  182. package/examples/jsm/utils/SkeletonUtils.js +84 -66
  183. package/examples/jsm/utils/UVsDebug.js +1 -1
  184. package/examples/jsm/utils/{TextureUtils.js → WebGLTextureUtils.js} +1 -0
  185. package/examples/jsm/utils/WebGPUTextureUtils.js +64 -0
  186. package/examples/jsm/webxr/OculusHandPointerModel.js +21 -21
  187. package/examples/jsm/webxr/Text2D.js +6 -6
  188. package/examples/jsm/webxr/XRControllerModelFactory.js +7 -2
  189. package/examples/jsm/webxr/XREstimatedLight.js +1 -1
  190. package/package.json +14 -9
  191. package/src/Three.Core.js +182 -0
  192. package/src/Three.Legacy.js +0 -21
  193. package/src/Three.TSL.js +543 -0
  194. package/src/Three.WebGPU.Nodes.js +23 -0
  195. package/src/Three.WebGPU.js +13 -184
  196. package/src/Three.js +1 -176
  197. package/src/animation/AnimationClip.js +2 -2
  198. package/src/animation/AnimationObjectGroup.js +2 -2
  199. package/src/animation/AnimationUtils.js +1 -1
  200. package/src/animation/PropertyBinding.js +2 -2
  201. package/src/audio/Audio.js +379 -2
  202. package/src/audio/AudioAnalyser.js +58 -1
  203. package/src/audio/AudioContext.js +15 -0
  204. package/src/audio/AudioListener.js +76 -0
  205. package/src/audio/PositionalAudio.js +107 -0
  206. package/src/cameras/ArrayCamera.js +29 -0
  207. package/src/cameras/Camera.js +47 -0
  208. package/src/cameras/CubeCamera.js +66 -0
  209. package/src/cameras/OrthographicCamera.js +109 -0
  210. package/src/cameras/PerspectiveCamera.js +173 -34
  211. package/src/cameras/StereoCamera.js +48 -2
  212. package/src/constants.js +6 -6
  213. package/src/core/BufferAttribute.js +4 -9
  214. package/src/core/BufferGeometry.js +48 -8
  215. package/src/core/Clock.js +1 -1
  216. package/src/core/EventDispatcher.js +52 -8
  217. package/src/core/InterleavedBuffer.js +4 -13
  218. package/src/core/Object3D.js +573 -3
  219. package/src/core/RenderTarget.js +22 -4
  220. package/src/core/RenderTarget3D.js +22 -0
  221. package/src/core/RenderTargetArray.js +22 -0
  222. package/src/extras/Controls.js +104 -0
  223. package/src/extras/DataUtils.js +48 -8
  224. package/src/extras/Earcut.js +18 -7
  225. package/src/extras/ImageUtils.js +18 -11
  226. package/src/extras/PMREMGenerator.js +40 -9
  227. package/src/extras/ShapeUtils.js +24 -2
  228. package/src/extras/TextureUtils.js +96 -10
  229. package/src/extras/core/Curve.js +153 -53
  230. package/src/extras/core/CurvePath.js +63 -22
  231. package/src/extras/core/Interpolations.js +29 -3
  232. package/src/extras/core/Path.js +134 -1
  233. package/src/extras/core/Shape.js +66 -3
  234. package/src/extras/core/ShapePath.js +76 -0
  235. package/src/extras/curves/ArcCurve.js +22 -0
  236. package/src/extras/curves/CatmullRomCurve3.js +89 -18
  237. package/src/extras/curves/CubicBezierCurve.js +67 -0
  238. package/src/extras/curves/CubicBezierCurve3.js +50 -0
  239. package/src/extras/curves/EllipseCurve.js +102 -0
  240. package/src/extras/curves/LineCurve.js +36 -0
  241. package/src/extras/curves/LineCurve3.js +36 -0
  242. package/src/extras/curves/QuadraticBezierCurve.js +59 -0
  243. package/src/extras/curves/QuadraticBezierCurve3.js +43 -0
  244. package/src/extras/curves/SplineCurve.js +48 -0
  245. package/src/geometries/BoxGeometry.js +38 -0
  246. package/src/geometries/CapsuleGeometry.js +34 -0
  247. package/src/geometries/CircleGeometry.js +40 -0
  248. package/src/geometries/ConeGeometry.js +38 -0
  249. package/src/geometries/CylinderGeometry.js +50 -4
  250. package/src/geometries/DodecahedronGeometry.js +32 -0
  251. package/src/geometries/EdgesGeometry.js +30 -2
  252. package/src/geometries/ExtrudeGeometry.js +52 -0
  253. package/src/geometries/IcosahedronGeometry.js +32 -0
  254. package/src/geometries/LatheGeometry.js +43 -3
  255. package/src/geometries/OctahedronGeometry.js +32 -0
  256. package/src/geometries/PlaneGeometry.js +34 -0
  257. package/src/geometries/PolyhedronGeometry.js +29 -0
  258. package/src/geometries/RingGeometry.js +36 -0
  259. package/src/geometries/ShapeGeometry.js +37 -0
  260. package/src/geometries/SphereGeometry.js +37 -0
  261. package/src/geometries/TetrahedronGeometry.js +32 -0
  262. package/src/geometries/TorusGeometry.js +35 -0
  263. package/src/geometries/TorusKnotGeometry.js +38 -0
  264. package/src/geometries/TubeGeometry.js +49 -0
  265. package/src/geometries/WireframeGeometry.js +32 -0
  266. package/src/helpers/ArrowHelper.js +60 -3
  267. package/src/helpers/AxesHelper.js +28 -0
  268. package/src/helpers/Box3Helper.js +28 -0
  269. package/src/helpers/BoxHelper.js +43 -7
  270. package/src/helpers/CameraHelper.js +61 -18
  271. package/src/helpers/DirectionalLightHelper.js +52 -0
  272. package/src/helpers/GridHelper.js +26 -0
  273. package/src/helpers/HemisphereLightHelper.js +39 -0
  274. package/src/helpers/PlaneHelper.js +33 -0
  275. package/src/helpers/PointLightHelper.js +43 -0
  276. package/src/helpers/PolarGridHelper.js +30 -0
  277. package/src/helpers/SkeletonHelper.js +39 -2
  278. package/src/helpers/SpotLightHelper.js +40 -0
  279. package/src/lights/AmbientLight.js +25 -0
  280. package/src/lights/DirectionalLight.js +57 -0
  281. package/src/lights/DirectionalLightShadow.js +15 -0
  282. package/src/lights/HemisphereLight.js +32 -0
  283. package/src/lights/Light.js +36 -0
  284. package/src/lights/LightProbe.js +43 -0
  285. package/src/lights/LightShadow.js +159 -0
  286. package/src/lights/PointLight.js +59 -0
  287. package/src/lights/PointLightShadow.js +21 -0
  288. package/src/lights/RectAreaLight.js +59 -0
  289. package/src/lights/SpotLight.js +102 -0
  290. package/src/lights/SpotLightShadow.js +24 -2
  291. package/src/lights/webgpu/IESSpotLight.js +21 -0
  292. package/src/loaders/Loader.js +132 -0
  293. package/src/loaders/MaterialLoader.js +7 -1
  294. package/src/loaders/nodes/NodeLoader.js +189 -0
  295. package/src/loaders/nodes/NodeMaterialLoader.js +108 -0
  296. package/src/loaders/nodes/NodeObjectLoader.js +151 -0
  297. package/src/materials/LineDashedMaterial.js +0 -1
  298. package/src/materials/Material.js +469 -7
  299. package/src/materials/MeshPhongMaterial.js +1 -1
  300. package/src/materials/MeshPhysicalMaterial.js +2 -2
  301. package/src/materials/MeshStandardMaterial.js +2 -2
  302. package/src/{nodes/materials → materials/nodes}/Line2NodeMaterial.js +192 -82
  303. package/src/materials/nodes/LineBasicNodeMaterial.js +46 -0
  304. package/src/materials/nodes/LineDashedNodeMaterial.js +132 -0
  305. package/src/materials/nodes/MeshBasicNodeMaterial.js +133 -0
  306. package/src/materials/nodes/MeshLambertNodeMaterial.js +82 -0
  307. package/src/materials/nodes/MeshMatcapNodeMaterial.js +77 -0
  308. package/src/materials/nodes/MeshNormalNodeMaterial.js +67 -0
  309. package/src/materials/nodes/MeshPhongNodeMaterial.js +141 -0
  310. package/src/materials/nodes/MeshPhysicalNodeMaterial.js +517 -0
  311. package/src/materials/nodes/MeshSSSNodeMaterial.js +175 -0
  312. package/src/materials/nodes/MeshStandardNodeMaterial.js +186 -0
  313. package/src/materials/nodes/MeshToonNodeMaterial.js +66 -0
  314. package/src/materials/nodes/NodeMaterial.js +1180 -0
  315. package/src/{nodes/materials/Materials.js → materials/nodes/NodeMaterials.js} +3 -2
  316. package/src/materials/nodes/PointsNodeMaterial.js +153 -0
  317. package/src/materials/nodes/ShadowNodeMaterial.js +67 -0
  318. package/src/materials/nodes/SpriteNodeMaterial.js +198 -0
  319. package/src/materials/nodes/VolumeNodeMaterial.js +72 -0
  320. package/src/materials/nodes/manager/NodeMaterialObserver.js +509 -0
  321. package/src/math/Box2.js +177 -0
  322. package/src/math/Box3.js +243 -0
  323. package/src/math/Color.js +343 -0
  324. package/src/math/ColorManagement.js +143 -102
  325. package/src/math/Cylindrical.js +65 -6
  326. package/src/math/Euler.js +137 -4
  327. package/src/math/Frustum.js +83 -0
  328. package/src/math/Interpolant.js +87 -8
  329. package/src/math/Line3.js +96 -2
  330. package/src/math/MathUtils.js +182 -19
  331. package/src/math/Matrix2.js +70 -0
  332. package/src/math/Matrix3.js +229 -4
  333. package/src/math/Matrix4.js +368 -3
  334. package/src/math/Plane.js +164 -2
  335. package/src/math/Quaternion.js +265 -9
  336. package/src/math/Ray.js +160 -0
  337. package/src/math/Sphere.js +147 -0
  338. package/src/math/Spherical.js +73 -11
  339. package/src/math/SphericalHarmonics3.js +112 -14
  340. package/src/math/Triangle.js +230 -2
  341. package/src/math/Vector2.js +396 -10
  342. package/src/math/Vector3.js +550 -13
  343. package/src/math/Vector4.js +415 -9
  344. package/src/math/interpolants/CubicInterpolant.js +10 -1
  345. package/src/math/interpolants/DiscreteInterpolant.js +10 -2
  346. package/src/math/interpolants/LinearInterpolant.js +13 -0
  347. package/src/math/interpolants/QuaternionLinearInterpolant.js +10 -1
  348. package/src/nodes/Nodes.js +84 -166
  349. package/src/nodes/TSL.js +167 -0
  350. package/src/nodes/accessors/AccessorsUtils.js +39 -10
  351. package/src/nodes/accessors/Arrays.js +68 -0
  352. package/src/nodes/accessors/BatchNode.js +93 -26
  353. package/src/nodes/accessors/Bitangent.js +54 -0
  354. package/src/nodes/accessors/BufferAttributeNode.js +189 -11
  355. package/src/nodes/accessors/BufferNode.js +70 -5
  356. package/src/nodes/accessors/BuiltinNode.js +63 -0
  357. package/src/nodes/accessors/Camera.js +129 -0
  358. package/src/nodes/accessors/ClippingNode.js +152 -43
  359. package/src/nodes/accessors/CubeTextureNode.js +76 -13
  360. package/src/nodes/accessors/InstanceNode.js +118 -35
  361. package/src/nodes/accessors/InstancedMeshNode.js +50 -0
  362. package/src/nodes/accessors/Lights.js +129 -0
  363. package/src/nodes/accessors/MaterialNode.js +394 -58
  364. package/src/nodes/accessors/MaterialProperties.js +57 -1
  365. package/src/nodes/accessors/MaterialReferenceNode.js +60 -18
  366. package/src/nodes/accessors/ModelNode.js +159 -12
  367. package/src/nodes/accessors/ModelViewProjectionNode.js +10 -36
  368. package/src/nodes/accessors/MorphNode.js +60 -13
  369. package/src/nodes/accessors/Normal.js +156 -0
  370. package/src/nodes/accessors/Object3DNode.js +154 -35
  371. package/src/nodes/accessors/PointUVNode.js +35 -6
  372. package/src/nodes/accessors/Position.js +64 -0
  373. package/src/nodes/accessors/ReferenceBaseNode.js +357 -0
  374. package/src/nodes/accessors/ReferenceNode.js +243 -6
  375. package/src/nodes/accessors/ReflectVector.js +36 -0
  376. package/src/nodes/accessors/RendererReferenceNode.js +57 -7
  377. package/src/nodes/accessors/SceneNode.js +98 -6
  378. package/src/nodes/accessors/SkinningNode.js +214 -21
  379. package/src/nodes/accessors/StorageBufferNode.js +288 -28
  380. package/src/nodes/accessors/StorageTextureNode.js +139 -12
  381. package/src/nodes/accessors/Tangent.js +62 -0
  382. package/src/nodes/accessors/Texture3DNode.js +98 -12
  383. package/src/nodes/accessors/{TextureBicubicNode.js → TextureBicubic.js} +14 -34
  384. package/src/nodes/accessors/TextureNode.js +347 -34
  385. package/src/nodes/accessors/TextureSizeNode.js +51 -9
  386. package/src/nodes/accessors/UV.js +11 -0
  387. package/src/nodes/accessors/UniformArrayNode.js +241 -32
  388. package/src/nodes/accessors/UserDataNode.js +55 -7
  389. package/src/nodes/accessors/VelocityNode.js +223 -0
  390. package/src/nodes/accessors/VertexColorNode.js +45 -6
  391. package/src/nodes/code/CodeNode.js +108 -8
  392. package/src/nodes/code/ExpressionNode.js +38 -7
  393. package/src/nodes/code/FunctionCallNode.js +62 -11
  394. package/src/nodes/code/FunctionNode.js +54 -24
  395. package/src/nodes/code/ScriptableNode.js +241 -17
  396. package/src/nodes/code/ScriptableValueNode.js +93 -8
  397. package/src/nodes/core/ArrayNode.js +142 -0
  398. package/src/nodes/core/AssignNode.js +60 -12
  399. package/src/nodes/core/AttributeNode.js +55 -22
  400. package/src/nodes/core/BypassNode.js +59 -11
  401. package/src/nodes/core/CacheNode.js +64 -10
  402. package/src/nodes/core/ConstNode.js +38 -3
  403. package/src/nodes/core/ContextNode.js +87 -12
  404. package/src/nodes/core/IndexNode.js +102 -10
  405. package/src/nodes/core/InputNode.js +55 -3
  406. package/src/nodes/core/LightingModel.js +65 -5
  407. package/src/nodes/core/MRTNode.js +81 -7
  408. package/src/nodes/core/Node.js +368 -50
  409. package/src/nodes/core/NodeAttribute.js +38 -0
  410. package/src/nodes/core/NodeBuilder.js +1317 -83
  411. package/src/nodes/core/NodeCache.js +41 -2
  412. package/src/nodes/core/NodeCode.js +31 -0
  413. package/src/nodes/core/NodeFrame.js +123 -2
  414. package/src/nodes/core/NodeFunction.js +46 -0
  415. package/src/nodes/core/NodeFunctionInput.js +44 -0
  416. package/src/nodes/core/NodeParser.js +11 -0
  417. package/src/nodes/core/NodeUniform.js +52 -0
  418. package/src/nodes/core/NodeUtils.js +226 -6
  419. package/src/nodes/core/NodeVar.js +47 -1
  420. package/src/nodes/core/NodeVarying.js +28 -0
  421. package/src/nodes/core/OutputStructNode.js +61 -17
  422. package/src/nodes/core/ParameterNode.js +34 -4
  423. package/src/nodes/core/PropertyNode.js +296 -32
  424. package/src/nodes/core/StackNode.js +108 -8
  425. package/src/nodes/core/StructNode.js +120 -0
  426. package/src/nodes/core/StructType.js +13 -0
  427. package/src/nodes/core/StructTypeNode.js +116 -9
  428. package/src/nodes/core/TempNode.js +37 -7
  429. package/src/nodes/core/UniformGroupNode.js +98 -17
  430. package/src/nodes/core/UniformNode.js +72 -4
  431. package/src/nodes/core/VarNode.js +170 -13
  432. package/src/nodes/core/VaryingNode.js +109 -8
  433. package/src/nodes/core/constants.js +40 -0
  434. package/src/nodes/display/BlendModes.js +193 -0
  435. package/src/nodes/display/BumpMapNode.js +47 -10
  436. package/src/nodes/display/ColorAdjustment.js +141 -0
  437. package/src/nodes/display/ColorSpaceFunctions.js +54 -0
  438. package/src/nodes/display/ColorSpaceNode.js +147 -68
  439. package/src/nodes/display/FrontFacingNode.js +39 -6
  440. package/src/nodes/display/NormalMapNode.js +55 -13
  441. package/src/nodes/display/PassNode.js +420 -19
  442. package/src/nodes/display/PosterizeNode.js +40 -7
  443. package/src/nodes/display/RenderOutputNode.js +81 -13
  444. package/src/nodes/display/ScreenNode.js +286 -0
  445. package/src/nodes/display/ToneMappingFunctions.js +242 -0
  446. package/src/nodes/display/ToneMappingNode.js +68 -175
  447. package/src/nodes/display/ToonOutlinePassNode.js +183 -0
  448. package/src/nodes/display/ViewportDepthNode.js +210 -36
  449. package/src/nodes/display/ViewportDepthTextureNode.js +32 -9
  450. package/src/nodes/display/ViewportSharedTextureNode.js +32 -9
  451. package/src/nodes/display/ViewportTextureNode.js +68 -11
  452. package/src/nodes/fog/Fog.js +113 -0
  453. package/src/nodes/functions/BSDF/BRDF_GGX.js +4 -4
  454. package/src/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
  455. package/src/nodes/functions/BSDF/BRDF_Sheen.js +6 -6
  456. package/src/nodes/functions/BSDF/DFGApprox.js +2 -2
  457. package/src/nodes/functions/BSDF/D_GGX.js +2 -2
  458. package/src/nodes/functions/BSDF/D_GGX_Anisotropic.js +3 -3
  459. package/src/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
  460. package/src/nodes/functions/BSDF/F_Schlick.js +2 -2
  461. package/src/nodes/functions/BSDF/LTC.js +50 -6
  462. package/src/nodes/functions/BSDF/Schlick_to_F0.js +2 -2
  463. package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +2 -2
  464. package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +2 -2
  465. package/src/nodes/functions/BasicLightingModel.js +27 -6
  466. package/src/nodes/functions/PhongLightingModel.js +38 -8
  467. package/src/nodes/functions/PhysicalLightingModel.js +215 -51
  468. package/src/nodes/functions/ShadowMaskModel.js +24 -1
  469. package/src/nodes/functions/ToonLightingModel.js +24 -5
  470. package/src/nodes/functions/VolumetricLightingModel.js +183 -0
  471. package/src/nodes/functions/material/getAlphaHashThreshold.js +68 -0
  472. package/src/nodes/functions/material/getGeometryRoughness.js +10 -4
  473. package/src/nodes/functions/material/getParallaxCorrectNormal.js +37 -0
  474. package/src/nodes/functions/material/getRoughness.js +2 -2
  475. package/src/nodes/functions/material/getShIrradianceAt.js +28 -0
  476. package/src/nodes/geometry/RangeNode.js +62 -7
  477. package/src/nodes/gpgpu/AtomicFunctionNode.js +280 -0
  478. package/src/nodes/gpgpu/BarrierNode.js +89 -0
  479. package/src/nodes/gpgpu/ComputeBuiltinNode.js +227 -0
  480. package/src/nodes/gpgpu/ComputeNode.js +124 -9
  481. package/src/nodes/gpgpu/WorkgroupInfoNode.js +208 -0
  482. package/src/nodes/lighting/AONode.js +24 -3
  483. package/src/nodes/lighting/AmbientLightNode.js +16 -8
  484. package/src/nodes/lighting/AnalyticLightNode.js +151 -231
  485. package/src/nodes/lighting/BasicEnvironmentNode.js +25 -3
  486. package/src/nodes/lighting/BasicLightMapNode.js +25 -5
  487. package/src/nodes/lighting/DirectionalLightNode.js +19 -20
  488. package/src/nodes/lighting/EnvironmentNode.js +34 -17
  489. package/src/nodes/lighting/HemisphereLightNode.js +42 -11
  490. package/src/nodes/lighting/IESSpotLightNode.js +18 -9
  491. package/src/nodes/lighting/IrradianceNode.js +23 -3
  492. package/src/nodes/lighting/LightProbeNode.js +29 -36
  493. package/src/nodes/lighting/LightUtils.js +12 -4
  494. package/src/nodes/lighting/LightingContextNode.js +70 -21
  495. package/src/nodes/lighting/LightingNode.js +22 -9
  496. package/src/nodes/lighting/LightsNode.js +309 -86
  497. package/src/nodes/lighting/PointLightNode.js +66 -32
  498. package/src/nodes/lighting/PointShadowNode.js +306 -0
  499. package/src/nodes/lighting/RectAreaLightNode.js +61 -25
  500. package/src/nodes/lighting/ShadowBaseNode.js +92 -0
  501. package/src/nodes/lighting/ShadowNode.js +812 -0
  502. package/src/nodes/lighting/SpotLightNode.js +73 -31
  503. package/src/nodes/materialx/MaterialXNodes.js +2 -2
  504. package/src/nodes/materialx/lib/mx_hsv.js +27 -22
  505. package/src/nodes/materialx/lib/mx_noise.js +70 -70
  506. package/src/nodes/materialx/lib/mx_transform_color.js +2 -2
  507. package/src/nodes/math/ConditionalNode.js +230 -0
  508. package/src/nodes/math/Hash.js +21 -0
  509. package/src/nodes/math/MathNode.js +812 -131
  510. package/src/nodes/math/MathUtils.js +47 -8
  511. package/src/nodes/math/OperatorNode.js +410 -66
  512. package/src/nodes/math/TriNoise3D.js +32 -32
  513. package/src/nodes/parsers/GLSLNodeFunction.js +16 -0
  514. package/src/nodes/parsers/GLSLNodeParser.js +11 -0
  515. package/src/nodes/pmrem/PMREMNode.js +188 -28
  516. package/src/nodes/pmrem/PMREMUtils.js +24 -24
  517. package/src/nodes/procedural/Checker.js +22 -0
  518. package/src/nodes/shapes/Shapes.js +32 -0
  519. package/src/nodes/tsl/TSLBase.js +31 -0
  520. package/src/nodes/{shadernode/ShaderNode.js → tsl/TSLCore.js} +114 -98
  521. package/src/nodes/utils/ArrayElementNode.js +45 -5
  522. package/src/nodes/utils/ConvertNode.js +39 -4
  523. package/src/nodes/utils/CubeMapNode.js +88 -8
  524. package/src/nodes/utils/Discard.js +24 -0
  525. package/src/nodes/utils/EquirectUVNode.js +39 -7
  526. package/src/nodes/utils/FlipNode.js +106 -0
  527. package/src/nodes/utils/FunctionOverloadingNode.js +61 -6
  528. package/src/nodes/utils/JoinNode.js +31 -3
  529. package/src/nodes/utils/LoopNode.js +95 -9
  530. package/src/nodes/utils/MatcapUVNode.js +27 -8
  531. package/src/nodes/utils/MaxMipLevelNode.js +57 -6
  532. package/src/nodes/utils/MemberNode.js +68 -0
  533. package/src/nodes/utils/Oscillators.js +41 -0
  534. package/src/nodes/utils/Packing.js +21 -0
  535. package/src/nodes/utils/PostProcessingUtils.js +95 -0
  536. package/src/nodes/utils/RTTNode.js +141 -9
  537. package/src/nodes/utils/ReflectorNode.js +295 -21
  538. package/src/nodes/utils/RemapNode.js +93 -10
  539. package/src/nodes/utils/RotateNode.js +48 -13
  540. package/src/nodes/utils/SetNode.js +50 -4
  541. package/src/nodes/utils/SplitNode.js +62 -6
  542. package/src/nodes/utils/SpriteSheetUVNode.js +56 -7
  543. package/src/nodes/utils/SpriteUtils.js +21 -5
  544. package/src/nodes/utils/StorageArrayElementNode.js +64 -12
  545. package/src/nodes/utils/Timer.js +73 -0
  546. package/src/nodes/utils/TriplanarTexturesNode.js +96 -10
  547. package/src/nodes/utils/UVUtils.js +27 -9
  548. package/src/nodes/utils/ViewportUtils.js +16 -4
  549. package/src/objects/BatchedMesh.js +808 -281
  550. package/src/objects/Bone.js +24 -0
  551. package/src/objects/ClippingGroup.js +68 -0
  552. package/src/objects/Group.js +24 -0
  553. package/src/objects/InstancedMesh.js +120 -2
  554. package/src/objects/LOD.js +120 -5
  555. package/src/objects/Line.js +89 -6
  556. package/src/objects/LineLoop.js +20 -0
  557. package/src/objects/LineSegments.js +18 -0
  558. package/src/objects/Mesh.js +82 -23
  559. package/src/objects/Points.js +62 -0
  560. package/src/objects/Skeleton.js +107 -2
  561. package/src/objects/SkinnedMesh.js +99 -5
  562. package/src/objects/Sprite.js +54 -0
  563. package/src/renderers/WebGLRenderer.js +274 -157
  564. package/src/renderers/common/Animation.js +109 -12
  565. package/src/renderers/common/Attributes.js +40 -0
  566. package/src/renderers/common/Backend.js +504 -44
  567. package/src/renderers/common/Background.js +67 -9
  568. package/src/renderers/common/BindGroup.js +45 -1
  569. package/src/renderers/common/Binding.js +35 -0
  570. package/src/renderers/common/Bindings.js +136 -19
  571. package/src/renderers/common/Buffer.js +49 -0
  572. package/src/renderers/common/BufferUtils.js +25 -0
  573. package/src/renderers/common/BundleGroup.js +83 -0
  574. package/src/renderers/common/ChainMap.js +45 -6
  575. package/src/renderers/common/ClippingContext.js +175 -80
  576. package/src/renderers/common/Color4.js +40 -0
  577. package/src/renderers/common/ComputePipeline.js +24 -0
  578. package/src/renderers/common/Constants.js +2 -1
  579. package/src/renderers/common/CubeRenderTarget.js +22 -3
  580. package/src/renderers/common/DataMap.js +37 -1
  581. package/src/renderers/common/Geometries.js +111 -14
  582. package/src/renderers/common/IndirectStorageBufferAttribute.js +38 -0
  583. package/src/renderers/common/Info.js +78 -35
  584. package/src/renderers/common/Lighting.js +73 -0
  585. package/src/renderers/common/Pipeline.js +22 -0
  586. package/src/renderers/common/Pipelines.js +148 -5
  587. package/src/renderers/common/PostProcessing.js +112 -11
  588. package/src/renderers/common/ProgrammableStage.js +60 -2
  589. package/src/renderers/common/QuadMesh.js +56 -5
  590. package/src/renderers/common/RenderBundle.js +14 -8
  591. package/src/renderers/common/RenderBundles.js +39 -10
  592. package/src/renderers/common/RenderContext.js +205 -7
  593. package/src/renderers/common/RenderContexts.js +59 -6
  594. package/src/renderers/common/RenderList.js +230 -21
  595. package/src/renderers/common/RenderLists.js +45 -6
  596. package/src/renderers/common/RenderObject.js +552 -41
  597. package/src/renderers/common/RenderObjects.js +118 -9
  598. package/src/renderers/common/RenderPipeline.js +24 -0
  599. package/src/renderers/common/Renderer.js +1537 -239
  600. package/src/renderers/common/RendererUtils.js +191 -0
  601. package/src/renderers/common/SampledTexture.js +132 -3
  602. package/src/renderers/common/Sampler.js +30 -0
  603. package/src/renderers/common/StorageBuffer.js +24 -0
  604. package/src/renderers/common/StorageBufferAttribute.js +31 -2
  605. package/src/renderers/common/StorageInstancedBufferAttribute.js +31 -2
  606. package/src/renderers/common/StorageTexture.js +38 -0
  607. package/src/renderers/common/Textures.js +142 -32
  608. package/src/renderers/common/TimestampQueryPool.js +98 -0
  609. package/src/renderers/common/Uniform.js +225 -3
  610. package/src/renderers/common/UniformBuffer.js +19 -0
  611. package/src/renderers/common/UniformsGroup.js +157 -6
  612. package/src/renderers/common/XRManager.js +1185 -0
  613. package/src/renderers/common/XRRenderTarget.js +74 -0
  614. package/src/renderers/common/extras/PMREMGenerator.js +211 -53
  615. package/src/renderers/common/nodes/NodeBuilderState.js +100 -6
  616. package/src/renderers/common/nodes/NodeLibrary.js +194 -0
  617. package/src/renderers/common/nodes/NodeSampledTexture.js +92 -4
  618. package/src/renderers/common/nodes/NodeSampler.js +28 -0
  619. package/src/renderers/common/nodes/NodeStorageBuffer.js +37 -3
  620. package/src/renderers/common/nodes/NodeUniform.js +285 -2
  621. package/src/renderers/common/nodes/NodeUniformBuffer.js +29 -0
  622. package/src/renderers/common/nodes/NodeUniformsGroup.js +31 -18
  623. package/src/renderers/common/nodes/Nodes.js +390 -70
  624. package/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +4 -24
  625. package/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +8 -0
  626. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +2 -2
  627. package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +2 -2
  628. package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +2 -2
  629. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +7 -7
  630. package/src/renderers/shaders/ShaderLib/points.glsl.js +2 -0
  631. package/src/renderers/shaders/ShaderLib/sprite.glsl.js +2 -4
  632. package/src/renderers/webgl/WebGLAttributes.js +45 -14
  633. package/src/renderers/webgl/WebGLBackground.js +24 -1
  634. package/src/renderers/webgl/WebGLBufferRenderer.js +2 -6
  635. package/src/renderers/webgl/WebGLCapabilities.js +2 -0
  636. package/src/renderers/webgl/WebGLGeometries.js +0 -28
  637. package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +2 -6
  638. package/src/renderers/webgl/WebGLProgram.js +27 -29
  639. package/src/renderers/webgl/WebGLPrograms.js +24 -16
  640. package/src/renderers/webgl/WebGLState.js +68 -11
  641. package/src/renderers/webgl/WebGLTextures.js +49 -10
  642. package/src/renderers/webgl-fallback/WebGLBackend.js +1055 -238
  643. package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +5 -10
  644. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +425 -48
  645. package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +64 -1
  646. package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +28 -0
  647. package/src/renderers/webgl-fallback/utils/WebGLExtensions.js +45 -0
  648. package/src/renderers/webgl-fallback/utils/WebGLState.js +419 -14
  649. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +281 -59
  650. package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +367 -0
  651. package/src/renderers/webgl-fallback/utils/WebGLUtils.js +43 -0
  652. package/src/renderers/webgpu/WebGPUBackend.js +816 -236
  653. package/src/renderers/webgpu/WebGPURenderer.Nodes.js +78 -0
  654. package/src/renderers/webgpu/WebGPURenderer.js +45 -6
  655. package/src/renderers/webgpu/nodes/BasicNodeLibrary.js +63 -0
  656. package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +97 -0
  657. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +954 -147
  658. package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +29 -4
  659. package/src/renderers/webgpu/nodes/WGSLNodeParser.js +11 -0
  660. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +147 -31
  661. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +213 -31
  662. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +146 -28
  663. package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +161 -7
  664. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +333 -50
  665. package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +287 -0
  666. package/src/renderers/webgpu/utils/WebGPUUtils.js +131 -3
  667. package/src/renderers/webxr/WebXRDepthSensing.js +1 -1
  668. package/src/renderers/webxr/WebXRManager.js +54 -32
  669. package/src/scenes/Fog.js +60 -0
  670. package/src/scenes/FogExp2.js +51 -0
  671. package/src/scenes/Scene.js +87 -0
  672. package/src/textures/Data3DTexture.js +2 -2
  673. package/src/textures/DepthTexture.js +2 -0
  674. package/src/textures/Source.js +2 -2
  675. package/src/textures/Texture.js +368 -5
  676. package/src/textures/VideoFrameTexture.js +35 -0
  677. package/src/utils.js +33 -1
  678. package/examples/jsm/animation/MMDAnimationHelper.js +0 -1207
  679. package/examples/jsm/animation/MMDPhysics.js +0 -1406
  680. package/examples/jsm/cameras/CinematicCamera.js +0 -208
  681. package/examples/jsm/controls/Controls.js +0 -32
  682. package/examples/jsm/exporters/MMDExporter.js +0 -217
  683. package/examples/jsm/geometries/InstancedPointsGeometry.js +0 -174
  684. package/examples/jsm/geometries/SDFGeometryGenerator.js +0 -144
  685. package/examples/jsm/libs/mmdparser.module.js +0 -11530
  686. package/examples/jsm/loaders/LogLuvLoader.js +0 -606
  687. package/examples/jsm/loaders/MMDLoader.js +0 -2295
  688. package/examples/jsm/loaders/TiltLoader.js +0 -520
  689. package/examples/jsm/objects/InstancedPoints.js +0 -21
  690. package/examples/jsm/shaders/MMDToonShader.js +0 -134
  691. package/examples/jsm/utils/GPUStatsPanel.js +0 -95
  692. package/examples/jsm/utils/PackedPhongMaterial.js +0 -178
  693. package/src/nodes/accessors/BitangentNode.js +0 -13
  694. package/src/nodes/accessors/CameraNode.js +0 -19
  695. package/src/nodes/accessors/InstancedPointsMaterialNode.js +0 -21
  696. package/src/nodes/accessors/NormalNode.js +0 -14
  697. package/src/nodes/accessors/PositionNode.js +0 -10
  698. package/src/nodes/accessors/ReflectVectorNode.js +0 -10
  699. package/src/nodes/accessors/TangentNode.js +0 -23
  700. package/src/nodes/accessors/UVNode.js +0 -3
  701. package/src/nodes/core/NodeKeywords.js +0 -80
  702. package/src/nodes/core/UniformGroup.js +0 -13
  703. package/src/nodes/display/AfterImageNode.js +0 -152
  704. package/src/nodes/display/AnamorphicNode.js +0 -145
  705. package/src/nodes/display/BlendModeNode.js +0 -128
  706. package/src/nodes/display/ColorAdjustmentNode.js +0 -104
  707. package/src/nodes/display/DenoiseNode.js +0 -198
  708. package/src/nodes/display/DotScreenNode.js +0 -75
  709. package/src/nodes/display/FXAANode.js +0 -327
  710. package/src/nodes/display/FilmNode.js +0 -52
  711. package/src/nodes/display/GTAONode.js +0 -324
  712. package/src/nodes/display/GaussianBlurNode.js +0 -207
  713. package/src/nodes/display/Lut3DNode.js +0 -53
  714. package/src/nodes/display/RGBShiftNode.js +0 -49
  715. package/src/nodes/display/SepiaNode.js +0 -18
  716. package/src/nodes/display/TransitionNode.js +0 -76
  717. package/src/nodes/display/ViewportNode.js +0 -137
  718. package/src/nodes/fog/FogExp2Node.js +0 -34
  719. package/src/nodes/fog/FogNode.js +0 -48
  720. package/src/nodes/fog/FogRangeNode.js +0 -35
  721. package/src/nodes/lighting/LightNode.js +0 -57
  722. package/src/nodes/loaders/NodeLoader.js +0 -110
  723. package/src/nodes/loaders/NodeMaterialLoader.js +0 -60
  724. package/src/nodes/loaders/NodeObjectLoader.js +0 -71
  725. package/src/nodes/materials/InstancedPointsNodeMaterial.js +0 -162
  726. package/src/nodes/materials/LineBasicNodeMaterial.js +0 -28
  727. package/src/nodes/materials/LineDashedNodeMaterial.js +0 -55
  728. package/src/nodes/materials/MeshBasicNodeMaterial.js +0 -73
  729. package/src/nodes/materials/MeshLambertNodeMaterial.js +0 -43
  730. package/src/nodes/materials/MeshMatcapNodeMaterial.js +0 -53
  731. package/src/nodes/materials/MeshNormalNodeMaterial.js +0 -40
  732. package/src/nodes/materials/MeshPhongNodeMaterial.js +0 -74
  733. package/src/nodes/materials/MeshPhysicalNodeMaterial.js +0 -244
  734. package/src/nodes/materials/MeshSSSNodeMaterial.js +0 -84
  735. package/src/nodes/materials/MeshStandardNodeMaterial.js +0 -104
  736. package/src/nodes/materials/MeshToonNodeMaterial.js +0 -34
  737. package/src/nodes/materials/NodeMaterial.js +0 -680
  738. package/src/nodes/materials/PointsNodeMaterial.js +0 -39
  739. package/src/nodes/materials/ShadowNodeMaterial.js +0 -34
  740. package/src/nodes/materials/SpriteNodeMaterial.js +0 -90
  741. package/src/nodes/materials/VolumeNodeMaterial.js +0 -106
  742. package/src/nodes/math/CondNode.js +0 -139
  743. package/src/nodes/math/HashNode.js +0 -34
  744. package/src/nodes/procedural/CheckerNode.js +0 -42
  745. package/src/nodes/utils/DiscardNode.js +0 -28
  746. package/src/nodes/utils/OscNode.js +0 -81
  747. package/src/nodes/utils/PackingNode.js +0 -55
  748. package/src/nodes/utils/TimerNode.js +0 -94
@@ -39,7 +39,7 @@ const NUM_OBJECT_LAYERS = 2;
39
39
 
40
40
  function setupCollisionFiltering( settings ) {
41
41
 
42
- let objectFilter = new Jolt.ObjectLayerPairFilterTable( NUM_OBJECT_LAYERS );
42
+ const objectFilter = new Jolt.ObjectLayerPairFilterTable( NUM_OBJECT_LAYERS );
43
43
  objectFilter.EnableCollision( LAYER_NON_MOVING, LAYER_MOVING );
44
44
  objectFilter.EnableCollision( LAYER_MOVING, LAYER_MOVING );
45
45
 
@@ -47,7 +47,7 @@ function setupCollisionFiltering( settings ) {
47
47
  const BP_LAYER_MOVING = new Jolt.BroadPhaseLayer( 1 );
48
48
  const NUM_BROAD_PHASE_LAYERS = 2;
49
49
 
50
- let bpInterface = new Jolt.BroadPhaseLayerInterfaceTable( NUM_OBJECT_LAYERS, NUM_BROAD_PHASE_LAYERS );
50
+ const bpInterface = new Jolt.BroadPhaseLayerInterfaceTable( NUM_OBJECT_LAYERS, NUM_BROAD_PHASE_LAYERS );
51
51
  bpInterface.MapObjectToBroadPhaseLayer( LAYER_NON_MOVING, BP_LAYER_NON_MOVING );
52
52
  bpInterface.MapObjectToBroadPhaseLayer( LAYER_MOVING, BP_LAYER_MOVING );
53
53
 
@@ -55,13 +55,13 @@ function setupCollisionFiltering( settings ) {
55
55
  settings.mBroadPhaseLayerInterface = bpInterface;
56
56
  settings.mObjectVsBroadPhaseLayerFilter = new Jolt.ObjectVsBroadPhaseLayerFilterTable( settings.mBroadPhaseLayerInterface, NUM_BROAD_PHASE_LAYERS, settings.mObjectLayerPairFilter, NUM_OBJECT_LAYERS );
57
57
 
58
- };
58
+ }
59
59
 
60
60
  async function JoltPhysics() {
61
61
 
62
62
  if ( Jolt === null ) {
63
63
 
64
- const { default: initJolt } = await import( JOLT_PATH );
64
+ const { default: initJolt } = await import( `${JOLT_PATH}` );
65
65
  Jolt = await initJolt();
66
66
 
67
67
  }
@@ -111,8 +111,8 @@ async function JoltPhysics() {
111
111
  if ( shape === null ) return;
112
112
 
113
113
  const body = mesh.isInstancedMesh
114
- ? createInstancedBody( mesh, mass, restitution, shape )
115
- : createBody( mesh.position, mesh.quaternion, mass, restitution, shape );
114
+ ? createInstancedBody( mesh, mass, restitution, shape )
115
+ : createBody( mesh.position, mesh.quaternion, mass, restitution, shape );
116
116
 
117
117
  if ( mass > 0 ) {
118
118
 
@@ -175,8 +175,8 @@ async function JoltPhysics() {
175
175
 
176
176
  const physics = mesh.userData.physics;
177
177
 
178
- let shape = body.GetShape();
179
- let body2 = createBody( position, { x: 0, y: 0, z: 0, w: 1 }, physics.mass, physics.restitution, shape );
178
+ const shape = body.GetShape();
179
+ const body2 = createBody( position, { x: 0, y: 0, z: 0, w: 1 }, physics.mass, physics.restitution, shape );
180
180
 
181
181
  bodies[ index ] = body2;
182
182
 
@@ -43,8 +43,8 @@ function getShape( geometry ) {
43
43
 
44
44
  // if the buffer is non-indexed, generate an index buffer
45
45
  const indices = geometry.getIndex() === null
46
- ? Uint32Array.from( Array( parseInt( vertices.length / 3 ) ).keys() )
47
- : geometry.getIndex().array;
46
+ ? Uint32Array.from( Array( parseInt( vertices.length / 3 ) ).keys() )
47
+ : geometry.getIndex().array;
48
48
 
49
49
  return RAPIER.ColliderDesc.trimesh( vertices, indices );
50
50
 
@@ -58,7 +58,7 @@ async function RapierPhysics() {
58
58
 
59
59
  if ( RAPIER === null ) {
60
60
 
61
- RAPIER = await import( RAPIER_PATH );
61
+ RAPIER = await import( `${RAPIER_PATH}` );
62
62
  await RAPIER.init();
63
63
 
64
64
  }
@@ -105,8 +105,8 @@ async function RapierPhysics() {
105
105
  shape.setRestitution( restitution );
106
106
 
107
107
  const body = mesh.isInstancedMesh
108
- ? createInstancedBody( mesh, mass, shape )
109
- : createBody( mesh.position, mesh.quaternion, mass, shape );
108
+ ? createInstancedBody( mesh, mass, shape )
109
+ : createBody( mesh.position, mesh.quaternion, mass, shape );
110
110
 
111
111
  if ( mass > 0 ) {
112
112
 
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  HalfFloatType,
3
- MeshBasicMaterial,
4
3
  NearestFilter,
4
+ NoBlending,
5
5
  ShaderMaterial,
6
6
  UniformsUtils,
7
7
  WebGLRenderTarget
8
8
  } from 'three';
9
9
  import { Pass, FullScreenQuad } from './Pass.js';
10
+ import { CopyShader } from '../shaders/CopyShader.js';
10
11
  import { AfterimageShader } from '../shaders/AfterimageShader.js';
11
12
 
12
13
  class AfterimagePass extends Pass {
@@ -41,7 +42,17 @@ class AfterimagePass extends Pass {
41
42
 
42
43
  this.compFsQuad = new FullScreenQuad( this.compFsMaterial );
43
44
 
44
- this.copyFsMaterial = new MeshBasicMaterial();
45
+ const copyShader = CopyShader;
46
+
47
+ this.copyFsMaterial = new ShaderMaterial( {
48
+ uniforms: UniformsUtils.clone( copyShader.uniforms ),
49
+ vertexShader: copyShader.vertexShader,
50
+ fragmentShader: copyShader.fragmentShader,
51
+ blending: NoBlending,
52
+ depthTest: false,
53
+ depthWrite: false
54
+ } );
55
+
45
56
  this.copyFsQuad = new FullScreenQuad( this.copyFsMaterial );
46
57
 
47
58
  }
@@ -54,7 +65,7 @@ class AfterimagePass extends Pass {
54
65
  renderer.setRenderTarget( this.textureComp );
55
66
  this.compFsQuad.render( renderer );
56
67
 
57
- this.copyFsQuad.material.map = this.textureComp.texture;
68
+ this.copyFsQuad.material.uniforms.tDiffuse.value = this.textureComp.texture;
58
69
 
59
70
  if ( this.renderToScreen ) {
60
71
 
@@ -71,7 +71,7 @@ class BloomPass extends Pass {
71
71
 
72
72
  if ( maskActive ) renderer.state.buffers.stencil.setTest( false );
73
73
 
74
- // Render quad with blured scene into texture (convolution pass 1)
74
+ // Render quad with blurred scene into texture (convolution pass 1)
75
75
 
76
76
  this.fsQuad.material = this.materialConvolution;
77
77
 
@@ -83,7 +83,7 @@ class BloomPass extends Pass {
83
83
  this.fsQuad.render( renderer );
84
84
 
85
85
 
86
- // Render quad with blured scene into texture (convolution pass 2)
86
+ // Render quad with blurred scene into texture (convolution pass 2)
87
87
 
88
88
  this.convolutionUniforms[ 'tDiffuse' ].value = this.renderTargetX.texture;
89
89
  this.convolutionUniforms[ 'uImageIncrement' ].value = BloomPass.blurY;
@@ -7,8 +7,7 @@ import {
7
7
  } from 'three';
8
8
  import { CopyShader } from '../shaders/CopyShader.js';
9
9
  import { ShaderPass } from './ShaderPass.js';
10
- import { MaskPass } from './MaskPass.js';
11
- import { ClearMaskPass } from './MaskPass.js';
10
+ import { ClearMaskPass, MaskPass } from './MaskPass.js';
12
11
 
13
12
  class EffectComposer {
14
13
 
@@ -35,7 +35,7 @@ class OutlinePass extends Pass {
35
35
  this.pulsePeriod = 0;
36
36
 
37
37
  this._visibilityCache = new Map();
38
-
38
+ this._selectionCache = new Set();
39
39
 
40
40
  this.resolution = ( resolution !== undefined ) ? new Vector2( resolution.x, resolution.y ) : new Vector2( 256, 256 );
41
41
 
@@ -81,10 +81,10 @@ class OutlinePass extends Pass {
81
81
  const MAX_EDGE_THICKNESS = 4;
82
82
  const MAX_EDGE_GLOW = 4;
83
83
 
84
- this.separableBlurMaterial1 = this.getSeperableBlurMaterial( MAX_EDGE_THICKNESS );
84
+ this.separableBlurMaterial1 = this.getSeparableBlurMaterial( MAX_EDGE_THICKNESS );
85
85
  this.separableBlurMaterial1.uniforms[ 'texSize' ].value.set( resx, resy );
86
86
  this.separableBlurMaterial1.uniforms[ 'kernelRadius' ].value = 1;
87
- this.separableBlurMaterial2 = this.getSeperableBlurMaterial( MAX_EDGE_GLOW );
87
+ this.separableBlurMaterial2 = this.getSeparableBlurMaterial( MAX_EDGE_GLOW );
88
88
  this.separableBlurMaterial2.uniforms[ 'texSize' ].value.set( Math.round( resx / 2 ), Math.round( resy / 2 ) );
89
89
  this.separableBlurMaterial2.uniforms[ 'kernelRadius' ].value = MAX_EDGE_GLOW;
90
90
 
@@ -172,29 +172,18 @@ class OutlinePass extends Pass {
172
172
 
173
173
  }
174
174
 
175
- changeVisibilityOfSelectedObjects( bVisible ) {
175
+ updateSelectionCache() {
176
176
 
177
- const cache = this._visibilityCache;
177
+ const cache = this._selectionCache;
178
178
 
179
179
  function gatherSelectedMeshesCallBack( object ) {
180
180
 
181
- if ( object.isMesh ) {
182
-
183
- if ( bVisible === true ) {
184
-
185
- object.visible = cache.get( object );
186
-
187
- } else {
188
-
189
- cache.set( object, object.visible );
190
- object.visible = bVisible;
191
-
192
- }
193
-
194
- }
181
+ if ( object.isMesh ) cache.add( object );
195
182
 
196
183
  }
197
184
 
185
+ cache.clear();
186
+
198
187
  for ( let i = 0; i < this.selectedObjects.length; i ++ ) {
199
188
 
200
189
  const selectedObject = this.selectedObjects[ i ];
@@ -204,71 +193,64 @@ class OutlinePass extends Pass {
204
193
 
205
194
  }
206
195
 
207
- changeVisibilityOfNonSelectedObjects( bVisible ) {
196
+ changeVisibilityOfSelectedObjects( bVisible ) {
208
197
 
209
198
  const cache = this._visibilityCache;
210
- const selectedMeshes = [];
211
-
212
- function gatherSelectedMeshesCallBack( object ) {
213
-
214
- if ( object.isMesh ) selectedMeshes.push( object );
215
199
 
216
- }
217
-
218
- for ( let i = 0; i < this.selectedObjects.length; i ++ ) {
200
+ for ( const mesh of this._selectionCache ) {
219
201
 
220
- const selectedObject = this.selectedObjects[ i ];
221
- selectedObject.traverse( gatherSelectedMeshesCallBack );
202
+ if ( bVisible === true ) {
222
203
 
223
- }
204
+ mesh.visible = cache.get( mesh );
224
205
 
225
- function VisibilityChangeCallBack( object ) {
206
+ } else {
226
207
 
227
- if ( object.isMesh || object.isSprite ) {
208
+ cache.set( mesh, mesh.visible );
209
+ mesh.visible = bVisible;
228
210
 
229
- // only meshes and sprites are supported by OutlinePass
211
+ }
230
212
 
231
- let bFound = false;
213
+ }
232
214
 
233
- for ( let i = 0; i < selectedMeshes.length; i ++ ) {
215
+ }
234
216
 
235
- const selectedObjectId = selectedMeshes[ i ].id;
217
+ changeVisibilityOfNonSelectedObjects( bVisible ) {
236
218
 
237
- if ( selectedObjectId === object.id ) {
219
+ const visibilityCache = this._visibilityCache;
220
+ const selectionCache = this._selectionCache;
238
221
 
239
- bFound = true;
240
- break;
222
+ function VisibilityChangeCallBack( object ) {
241
223
 
242
- }
224
+ if ( object.isMesh || object.isSprite ) {
243
225
 
244
- }
226
+ // only meshes and sprites are supported by OutlinePass
245
227
 
246
- if ( bFound === false ) {
228
+ if ( ! selectionCache.has( object ) ) {
247
229
 
248
230
  const visibility = object.visible;
249
231
 
250
- if ( bVisible === false || cache.get( object ) === true ) {
232
+ if ( bVisible === false || visibilityCache.get( object ) === true ) {
251
233
 
252
234
  object.visible = bVisible;
253
235
 
254
236
  }
255
237
 
256
- cache.set( object, visibility );
238
+ visibilityCache.set( object, visibility );
257
239
 
258
240
  }
259
241
 
260
242
  } else if ( object.isPoints || object.isLine ) {
261
243
 
262
- // the visibilty of points and lines is always set to false in order to
244
+ // the visibility of points and lines is always set to false in order to
263
245
  // not affect the outline computation
264
246
 
265
247
  if ( bVisible === true ) {
266
248
 
267
- object.visible = cache.get( object ); // restore
249
+ object.visible = visibilityCache.get( object ); // restore
268
250
 
269
251
  } else {
270
252
 
271
- cache.set( object, object.visible );
253
+ visibilityCache.set( object, object.visible );
272
254
  object.visible = bVisible;
273
255
 
274
256
  }
@@ -306,10 +288,13 @@ class OutlinePass extends Pass {
306
288
 
307
289
  renderer.setClearColor( 0xffffff, 1 );
308
290
 
291
+ this.updateSelectionCache();
292
+
309
293
  // Make selected objects invisible
310
294
  this.changeVisibilityOfSelectedObjects( false );
311
295
 
312
296
  const currentBackground = this.renderScene.background;
297
+ const currentOverrideMaterial = this.renderScene.overrideMaterial;
313
298
  this.renderScene.background = null;
314
299
 
315
300
  // 1. Draw Non Selected objects in the depth buffer
@@ -334,11 +319,12 @@ class OutlinePass extends Pass {
334
319
  renderer.setRenderTarget( this.renderTargetMaskBuffer );
335
320
  renderer.clear();
336
321
  renderer.render( this.renderScene, this.renderCamera );
337
- this.renderScene.overrideMaterial = null;
338
322
  this.changeVisibilityOfNonSelectedObjects( true );
339
323
  this._visibilityCache.clear();
324
+ this._selectionCache.clear();
340
325
 
341
326
  this.renderScene.background = currentBackground;
327
+ this.renderScene.overrideMaterial = currentOverrideMaterial;
342
328
 
343
329
  // 2. Downsample to Half resolution
344
330
  this.fsQuad.material = this.materialCopy;
@@ -462,7 +448,7 @@ class OutlinePass extends Pass {
462
448
  worldPosition = instanceMatrix * worldPosition;
463
449
 
464
450
  #endif
465
-
451
+
466
452
  worldPosition = modelMatrix * worldPosition;
467
453
 
468
454
  projTexCoord = textureMatrix * worldPosition;
@@ -536,7 +522,7 @@ class OutlinePass extends Pass {
536
522
 
537
523
  }
538
524
 
539
- getSeperableBlurMaterial( maxRadius ) {
525
+ getSeparableBlurMaterial( maxRadius ) {
540
526
 
541
527
  return new ShaderMaterial( {
542
528
 
@@ -8,6 +8,7 @@ import {
8
8
  AgXToneMapping,
9
9
  ACESFilmicToneMapping,
10
10
  NeutralToneMapping,
11
+ CustomToneMapping,
11
12
  SRGBTransfer
12
13
  } from 'three';
13
14
  import { Pass, FullScreenQuad } from './Pass.js';
@@ -63,6 +64,7 @@ class OutputPass extends Pass {
63
64
  else if ( this._toneMapping === ACESFilmicToneMapping ) this.material.defines.ACES_FILMIC_TONE_MAPPING = '';
64
65
  else if ( this._toneMapping === AgXToneMapping ) this.material.defines.AGX_TONE_MAPPING = '';
65
66
  else if ( this._toneMapping === NeutralToneMapping ) this.material.defines.NEUTRAL_TONE_MAPPING = '';
67
+ else if ( this._toneMapping === CustomToneMapping ) this.material.defines.CUSTOM_TONE_MAPPING = '';
66
68
 
67
69
  this.material.needsUpdate = true;
68
70
 
@@ -19,8 +19,7 @@ import {
19
19
  } from 'three';
20
20
  import { Pass, FullScreenQuad } from './Pass.js';
21
21
  import { SAOShader } from '../shaders/SAOShader.js';
22
- import { DepthLimitedBlurShader } from '../shaders/DepthLimitedBlurShader.js';
23
- import { BlurShaderUtils } from '../shaders/DepthLimitedBlurShader.js';
22
+ import { BlurShaderUtils, DepthLimitedBlurShader } from '../shaders/DepthLimitedBlurShader.js';
24
23
  import { CopyShader } from '../shaders/CopyShader.js';
25
24
 
26
25
  /**
@@ -8,9 +8,7 @@ import {
8
8
  WebGLRenderTarget
9
9
  } from 'three';
10
10
  import { Pass, FullScreenQuad } from './Pass.js';
11
- import { SMAAEdgesShader } from '../shaders/SMAAShader.js';
12
- import { SMAAWeightsShader } from '../shaders/SMAAShader.js';
13
- import { SMAABlendShader } from '../shaders/SMAAShader.js';
11
+ import { SMAABlendShader, SMAAEdgesShader, SMAAWeightsShader } from '../shaders/SMAAShader.js';
14
12
 
15
13
  class SMAAPass extends Pass {
16
14
 
@@ -31,6 +31,8 @@ class SSAARenderPass extends Pass {
31
31
  this.sampleLevel = 4; // specified as n, where the number of samples is 2^n, so sampleLevel = 4, is 2^4 samples, 16.
32
32
  this.unbiased = true;
33
33
 
34
+ this.stencilBuffer = false;
35
+
34
36
  // as we need to clear the buffer in this pass, clearColor must be set to something, defaults to black.
35
37
  this.clearColor = ( clearColor !== undefined ) ? clearColor : 0x000000;
36
38
  this.clearAlpha = ( clearAlpha !== undefined ) ? clearAlpha : 0;
@@ -79,7 +81,7 @@ class SSAARenderPass extends Pass {
79
81
 
80
82
  if ( ! this.sampleRenderTarget ) {
81
83
 
82
- this.sampleRenderTarget = new WebGLRenderTarget( readBuffer.width, readBuffer.height, { type: HalfFloatType } );
84
+ this.sampleRenderTarget = new WebGLRenderTarget( readBuffer.width, readBuffer.height, { type: HalfFloatType, stencilBuffer: this.stencilBuffer } );
83
85
  this.sampleRenderTarget.texture.name = 'SSAARenderPass.sample';
84
86
 
85
87
  }
@@ -24,9 +24,7 @@ import {
24
24
  } from 'three';
25
25
  import { Pass, FullScreenQuad } from './Pass.js';
26
26
  import { SimplexNoise } from '../math/SimplexNoise.js';
27
- import { SSAOShader } from '../shaders/SSAOShader.js';
28
- import { SSAOBlurShader } from '../shaders/SSAOShader.js';
29
- import { SSAODepthShader } from '../shaders/SSAOShader.js';
27
+ import { SSAOBlurShader, SSAODepthShader, SSAOShader } from '../shaders/SSAOShader.js';
30
28
  import { CopyShader } from '../shaders/CopyShader.js';
31
29
 
32
30
  class SSAOPass extends Pass {
@@ -169,7 +167,7 @@ class SSAOPass extends Pass {
169
167
  this.copyMaterial.dispose();
170
168
  this.depthRenderMaterial.dispose();
171
169
 
172
- // dipsose full screen quad
170
+ // dispose full screen quad
173
171
 
174
172
  this.fsQuad.dispose();
175
173
 
@@ -16,9 +16,7 @@ import {
16
16
  HalfFloatType,
17
17
  } from 'three';
18
18
  import { Pass, FullScreenQuad } from './Pass.js';
19
- import { SSRShader } from '../shaders/SSRShader.js';
20
- import { SSRBlurShader } from '../shaders/SSRShader.js';
21
- import { SSRDepthShader } from '../shaders/SSRShader.js';
19
+ import { SSRBlurShader, SSRDepthShader, SSRShader } from '../shaders/SSRShader.js';
22
20
  import { CopyShader } from '../shaders/CopyShader.js';
23
21
 
24
22
  class SSRPass extends Pass {
@@ -337,7 +335,7 @@ class SSRPass extends Pass {
337
335
  this.copyMaterial.dispose();
338
336
  this.depthRenderMaterial.dispose();
339
337
 
340
- // dipsose full screen quad
338
+ // dispose full screen quad
341
339
 
342
340
  this.fsQuad.dispose();
343
341
 
@@ -558,9 +556,13 @@ class SSRPass extends Pass {
558
556
  this.originalClearColor.copy( renderer.getClearColor( this.tempColor ) );
559
557
  const originalClearAlpha = renderer.getClearAlpha( this.tempColor );
560
558
  const originalAutoClear = renderer.autoClear;
559
+ const originalBackground = this.scene.background;
560
+ const originalFog = this.scene.fog;
561
561
 
562
562
  renderer.setRenderTarget( renderTarget );
563
563
  renderer.autoClear = false;
564
+ this.scene.background = null;
565
+ this.scene.fog = null;
564
566
 
565
567
  clearColor = overrideMaterial.clearColor || clearColor;
566
568
  clearAlpha = overrideMaterial.clearAlpha || clearAlpha;
@@ -599,6 +601,8 @@ class SSRPass extends Pass {
599
601
  renderer.autoClear = originalAutoClear;
600
602
  renderer.setClearColor( this.originalClearColor );
601
603
  renderer.setClearAlpha( originalClearAlpha );
604
+ this.scene.background = originalBackground;
605
+ this.scene.fog = originalFog;
602
606
 
603
607
  }
604
608
 
@@ -92,7 +92,7 @@ class UnrealBloomPass extends Pass {
92
92
 
93
93
  for ( let i = 0; i < this.nMips; i ++ ) {
94
94
 
95
- this.separableBlurMaterials.push( this.getSeperableBlurMaterial( kernelSizeArray[ i ] ) );
95
+ this.separableBlurMaterials.push( this.getSeparableBlurMaterial( kernelSizeArray[ i ] ) );
96
96
 
97
97
  this.separableBlurMaterials[ i ].uniforms[ 'invSize' ].value = new Vector2( 1 / resx, 1 / resy );
98
98
 
@@ -296,7 +296,7 @@ class UnrealBloomPass extends Pass {
296
296
 
297
297
  }
298
298
 
299
- getSeperableBlurMaterial( kernelRadius ) {
299
+ getSeparableBlurMaterial( kernelRadius ) {
300
300
 
301
301
  const coefficients = [];
302
302
 
@@ -26,9 +26,12 @@ class CSS2DObject extends Object3D {
26
26
 
27
27
  this.traverse( function ( object ) {
28
28
 
29
- if ( object.element instanceof Element && object.element.parentNode !== null ) {
29
+ if (
30
+ object.element instanceof object.element.ownerDocument.defaultView.Element &&
31
+ object.element.parentNode !== null
32
+ ) {
30
33
 
31
- object.element.parentNode.removeChild( object.element );
34
+ object.element.remove();
32
35
 
33
36
  }
34
37
 
@@ -135,7 +138,7 @@ class CSS2DRenderer {
135
138
  return;
136
139
 
137
140
  }
138
-
141
+
139
142
  if ( object.isCSS2DObject ) {
140
143
 
141
144
  _vector.setFromMatrixPosition( object.matrixWorld );
@@ -32,9 +32,12 @@ class CSS3DObject extends Object3D {
32
32
 
33
33
  this.traverse( function ( object ) {
34
34
 
35
- if ( object.element instanceof Element && object.element.parentNode !== null ) {
35
+ if (
36
+ object.element instanceof object.element.ownerDocument.defaultView.Element &&
37
+ object.element.parentNode !== null
38
+ ) {
36
39
 
37
- object.element.parentNode.removeChild( object.element );
40
+ object.element.remove();
38
41
 
39
42
  }
40
43
 
@@ -254,10 +257,10 @@ class CSS3DRenderer {
254
257
  function hideObject( object ) {
255
258
 
256
259
  if ( object.isCSS3DObject ) object.element.style.display = 'none';
257
-
260
+
258
261
  for ( let i = 0, l = object.children.length; i < l; i ++ ) {
259
262
 
260
- hideObject( object.children[ i ] );
263
+ hideObject( object.children[ i ] );
261
264
 
262
265
  }
263
266
 
@@ -8,10 +8,12 @@ import {
8
8
  SRGBColorSpace,
9
9
  Vector3
10
10
  } from 'three';
11
- import { Projector } from '../renderers/Projector.js';
12
- import { RenderableFace } from '../renderers/Projector.js';
13
- import { RenderableLine } from '../renderers/Projector.js';
14
- import { RenderableSprite } from '../renderers/Projector.js';
11
+ import {
12
+ Projector,
13
+ RenderableFace,
14
+ RenderableLine,
15
+ RenderableSprite
16
+ } from '../renderers/Projector.js';
15
17
 
16
18
  class SVGObject extends Object3D {
17
19
 
@@ -104,7 +104,7 @@ const BokehShader = {
104
104
 
105
105
  float vignout = 1.3; // vignetting outer border
106
106
  float vignin = 0.0; // vignetting inner border
107
- float vignfade = 22.0; // f-stops till vignete fades
107
+ float vignfade = 22.0; // f-stops till vignette fades
108
108
 
109
109
  uniform bool shaderFocus;
110
110
  // disable if you use external focalDepth value