three-stdlib 2.35.4 → 2.35.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (514) hide show
  1. package/_polyfill/CapsuleGeometry.cjs +17 -20
  2. package/_polyfill/CapsuleGeometry.cjs.map +1 -1
  3. package/_polyfill/CapsuleGeometry.js +17 -20
  4. package/_polyfill/CapsuleGeometry.js.map +1 -1
  5. package/_polyfill/constants.cjs +1 -1
  6. package/_polyfill/constants.cjs.map +1 -1
  7. package/_polyfill/constants.js +1 -1
  8. package/_polyfill/constants.js.map +1 -1
  9. package/animation/AnimationClipCreator.cjs +13 -13
  10. package/animation/AnimationClipCreator.cjs.map +1 -1
  11. package/animation/AnimationClipCreator.js +13 -13
  12. package/animation/AnimationClipCreator.js.map +1 -1
  13. package/animation/CCDIKSolver.cjs +11 -11
  14. package/animation/CCDIKSolver.cjs.map +1 -1
  15. package/animation/CCDIKSolver.js +12 -12
  16. package/animation/CCDIKSolver.js.map +1 -1
  17. package/animation/MMDAnimationHelper.cjs +1 -1
  18. package/animation/MMDAnimationHelper.cjs.map +1 -1
  19. package/animation/MMDAnimationHelper.js +1 -1
  20. package/animation/MMDAnimationHelper.js.map +1 -1
  21. package/animation/MMDPhysics.cjs +4 -4
  22. package/animation/MMDPhysics.cjs.map +1 -1
  23. package/animation/MMDPhysics.js +4 -4
  24. package/animation/MMDPhysics.js.map +1 -1
  25. package/controls/ArcballControls.cjs +2 -2
  26. package/controls/ArcballControls.cjs.map +1 -1
  27. package/controls/ArcballControls.js +3 -3
  28. package/controls/ArcballControls.js.map +1 -1
  29. package/controls/FirstPersonControls.cjs +1 -1
  30. package/controls/FirstPersonControls.cjs.map +1 -1
  31. package/controls/FirstPersonControls.js +1 -1
  32. package/controls/FirstPersonControls.js.map +1 -1
  33. package/controls/OrbitControls.cjs +2 -2
  34. package/controls/OrbitControls.cjs.map +1 -1
  35. package/controls/OrbitControls.js +3 -3
  36. package/controls/OrbitControls.js.map +1 -1
  37. package/controls/PointerLockControls.cjs +2 -2
  38. package/controls/PointerLockControls.cjs.map +1 -1
  39. package/controls/PointerLockControls.js +3 -3
  40. package/controls/PointerLockControls.js.map +1 -1
  41. package/csm/CSM.cjs +4 -4
  42. package/csm/CSM.cjs.map +1 -1
  43. package/csm/CSM.js +5 -5
  44. package/csm/CSM.js.map +1 -1
  45. package/csm/CSMFrustum.cjs +1 -1
  46. package/csm/CSMFrustum.cjs.map +1 -1
  47. package/csm/CSMFrustum.js +2 -2
  48. package/csm/CSMFrustum.js.map +1 -1
  49. package/deprecated/Geometry.cjs +715 -722
  50. package/deprecated/Geometry.cjs.map +1 -1
  51. package/deprecated/Geometry.js +716 -723
  52. package/deprecated/Geometry.js.map +1 -1
  53. package/effects/AnaglyphEffect.cjs +1 -2
  54. package/effects/AnaglyphEffect.cjs.map +1 -1
  55. package/effects/AnaglyphEffect.js +2 -3
  56. package/effects/AnaglyphEffect.js.map +1 -1
  57. package/effects/OutlineEffect.cjs +1 -2
  58. package/effects/OutlineEffect.cjs.map +1 -1
  59. package/effects/OutlineEffect.js +2 -3
  60. package/effects/OutlineEffect.js.map +1 -1
  61. package/effects/ParallaxBarrierEffect.cjs +1 -2
  62. package/effects/ParallaxBarrierEffect.cjs.map +1 -1
  63. package/effects/ParallaxBarrierEffect.js +2 -3
  64. package/effects/ParallaxBarrierEffect.js.map +1 -1
  65. package/exporters/DRACOExporter.cjs +122 -133
  66. package/exporters/DRACOExporter.cjs.map +1 -1
  67. package/exporters/DRACOExporter.d.ts +21 -23
  68. package/exporters/DRACOExporter.js +122 -133
  69. package/exporters/DRACOExporter.js.map +1 -1
  70. package/exporters/GLTFExporter.cjs +167 -170
  71. package/exporters/GLTFExporter.cjs.map +1 -1
  72. package/exporters/GLTFExporter.js +167 -170
  73. package/exporters/GLTFExporter.js.map +1 -1
  74. package/geometries/LightningStrike.cjs +515 -524
  75. package/geometries/LightningStrike.cjs.map +1 -1
  76. package/geometries/LightningStrike.js +515 -524
  77. package/geometries/LightningStrike.js.map +1 -1
  78. package/geometries/RoundedBoxGeometry.cjs +1 -1
  79. package/geometries/RoundedBoxGeometry.cjs.map +1 -1
  80. package/geometries/RoundedBoxGeometry.js +2 -2
  81. package/geometries/RoundedBoxGeometry.js.map +1 -1
  82. package/helpers/RaycasterHelper.cjs +2 -2
  83. package/helpers/RaycasterHelper.cjs.map +1 -1
  84. package/helpers/RaycasterHelper.js +3 -3
  85. package/helpers/RaycasterHelper.js.map +1 -1
  86. package/helpers/VertexNormalsHelper.cjs +3 -3
  87. package/helpers/VertexNormalsHelper.cjs.map +1 -1
  88. package/helpers/VertexNormalsHelper.js +4 -4
  89. package/helpers/VertexNormalsHelper.js.map +1 -1
  90. package/helpers/VertexTangentsHelper.cjs +2 -2
  91. package/helpers/VertexTangentsHelper.cjs.map +1 -1
  92. package/helpers/VertexTangentsHelper.js +3 -3
  93. package/helpers/VertexTangentsHelper.js.map +1 -1
  94. package/interactive/InteractiveGroup.cjs +1 -1
  95. package/interactive/InteractiveGroup.cjs.map +1 -1
  96. package/interactive/InteractiveGroup.js +2 -2
  97. package/interactive/InteractiveGroup.js.map +1 -1
  98. package/interactive/SelectionBox.cjs +15 -15
  99. package/interactive/SelectionBox.cjs.map +1 -1
  100. package/interactive/SelectionBox.js +16 -16
  101. package/interactive/SelectionBox.js.map +1 -1
  102. package/libs/chevrotain.cjs +1 -1
  103. package/libs/chevrotain.cjs.map +1 -1
  104. package/libs/chevrotain.js +1 -1
  105. package/libs/chevrotain.js.map +1 -1
  106. package/libs/lottie.cjs +1 -1
  107. package/libs/lottie.cjs.map +1 -1
  108. package/libs/lottie.js +1 -1
  109. package/libs/lottie.js.map +1 -1
  110. package/libs/opentype.cjs +1 -1
  111. package/libs/opentype.cjs.map +1 -1
  112. package/libs/opentype.js +1 -1
  113. package/libs/opentype.js.map +1 -1
  114. package/lights/LightProbeGenerator.cjs +5 -5
  115. package/lights/LightProbeGenerator.cjs.map +1 -1
  116. package/lights/LightProbeGenerator.js +5 -5
  117. package/lights/LightProbeGenerator.js.map +1 -1
  118. package/lights/RectAreaLightUniformsLib.cjs +3 -3
  119. package/lights/RectAreaLightUniformsLib.cjs.map +1 -1
  120. package/lights/RectAreaLightUniformsLib.js +3 -3
  121. package/lights/RectAreaLightUniformsLib.js.map +1 -1
  122. package/lines/LineMaterial.cjs +1 -2
  123. package/lines/LineMaterial.cjs.map +1 -1
  124. package/lines/LineMaterial.js +2 -3
  125. package/lines/LineMaterial.js.map +1 -1
  126. package/lines/LineSegments2.cjs +13 -13
  127. package/lines/LineSegments2.cjs.map +1 -1
  128. package/lines/LineSegments2.js +14 -14
  129. package/lines/LineSegments2.js.map +1 -1
  130. package/lines/LineSegmentsGeometry.cjs +2 -2
  131. package/lines/LineSegmentsGeometry.cjs.map +1 -1
  132. package/lines/LineSegmentsGeometry.js +3 -3
  133. package/lines/LineSegmentsGeometry.js.map +1 -1
  134. package/lines/Wireframe.cjs +3 -3
  135. package/lines/Wireframe.cjs.map +1 -1
  136. package/lines/Wireframe.js +4 -4
  137. package/lines/Wireframe.js.map +1 -1
  138. package/loaders/BasisTextureLoader.cjs +435 -441
  139. package/loaders/BasisTextureLoader.cjs.map +1 -1
  140. package/loaders/BasisTextureLoader.js +435 -441
  141. package/loaders/BasisTextureLoader.js.map +1 -1
  142. package/loaders/EXRLoader.cjs +1 -2
  143. package/loaders/EXRLoader.cjs.map +1 -1
  144. package/loaders/EXRLoader.js +2 -3
  145. package/loaders/EXRLoader.js.map +1 -1
  146. package/loaders/FBXLoader.cjs +2 -2
  147. package/loaders/FBXLoader.cjs.map +1 -1
  148. package/loaders/FBXLoader.js +2 -2
  149. package/loaders/FBXLoader.js.map +1 -1
  150. package/loaders/FontLoader.cjs +2 -2
  151. package/loaders/FontLoader.cjs.map +1 -1
  152. package/loaders/FontLoader.d.ts +2 -2
  153. package/loaders/FontLoader.js +2 -2
  154. package/loaders/FontLoader.js.map +1 -1
  155. package/loaders/GLTFLoader.cjs +2 -2
  156. package/loaders/GLTFLoader.cjs.map +1 -1
  157. package/loaders/GLTFLoader.js +2 -2
  158. package/loaders/GLTFLoader.js.map +1 -1
  159. package/loaders/KTX2Loader.cjs +374 -377
  160. package/loaders/KTX2Loader.cjs.map +1 -1
  161. package/loaders/KTX2Loader.js +374 -377
  162. package/loaders/KTX2Loader.js.map +1 -1
  163. package/loaders/LDrawLoader.cjs +4 -5
  164. package/loaders/LDrawLoader.cjs.map +1 -1
  165. package/loaders/LDrawLoader.js +5 -6
  166. package/loaders/LDrawLoader.js.map +1 -1
  167. package/loaders/OBJLoader.cjs +5 -5
  168. package/loaders/OBJLoader.cjs.map +1 -1
  169. package/loaders/OBJLoader.js +6 -6
  170. package/loaders/OBJLoader.js.map +1 -1
  171. package/loaders/PRWMLoader.cjs +43 -46
  172. package/loaders/PRWMLoader.cjs.map +1 -1
  173. package/loaders/PRWMLoader.js +43 -46
  174. package/loaders/PRWMLoader.js.map +1 -1
  175. package/loaders/SVGLoader.cjs +1688 -1694
  176. package/loaders/SVGLoader.cjs.map +1 -1
  177. package/loaders/SVGLoader.js +1688 -1694
  178. package/loaders/SVGLoader.js.map +1 -1
  179. package/loaders/XLoader.cjs +1 -1
  180. package/loaders/XLoader.cjs.map +1 -1
  181. package/loaders/XLoader.js +1 -1
  182. package/loaders/XLoader.js.map +1 -1
  183. package/math/Capsule.cjs +3 -3
  184. package/math/Capsule.cjs.map +1 -1
  185. package/math/Capsule.js +3 -3
  186. package/math/Capsule.js.map +1 -1
  187. package/math/ColorConverter.cjs +9 -9
  188. package/math/ColorConverter.cjs.map +1 -1
  189. package/math/ColorConverter.js +9 -9
  190. package/math/ColorConverter.js.map +1 -1
  191. package/math/ConvexHull.cjs +50 -53
  192. package/math/ConvexHull.cjs.map +1 -1
  193. package/math/ConvexHull.js +50 -53
  194. package/math/ConvexHull.js.map +1 -1
  195. package/math/ImprovedNoise.cjs +1 -1
  196. package/math/ImprovedNoise.cjs.map +1 -1
  197. package/math/ImprovedNoise.js +1 -1
  198. package/math/ImprovedNoise.js.map +1 -1
  199. package/math/MeshSurfaceSampler.cjs +2 -2
  200. package/math/MeshSurfaceSampler.cjs.map +1 -1
  201. package/math/MeshSurfaceSampler.js +2 -2
  202. package/math/MeshSurfaceSampler.js.map +1 -1
  203. package/math/OBB.cjs +14 -14
  204. package/math/OBB.cjs.map +1 -1
  205. package/math/OBB.js +15 -15
  206. package/math/OBB.js.map +1 -1
  207. package/math/Octree.cjs +7 -7
  208. package/math/Octree.cjs.map +1 -1
  209. package/math/Octree.js +8 -8
  210. package/math/Octree.js.map +1 -1
  211. package/misc/ConvexObjectBreaker.cjs +268 -271
  212. package/misc/ConvexObjectBreaker.cjs.map +1 -1
  213. package/misc/ConvexObjectBreaker.js +269 -272
  214. package/misc/ConvexObjectBreaker.js.map +1 -1
  215. package/misc/Gyroscope.cjs +6 -6
  216. package/misc/Gyroscope.cjs.map +1 -1
  217. package/misc/Gyroscope.js +7 -7
  218. package/misc/Gyroscope.js.map +1 -1
  219. package/modifiers/CurveModifier.cjs +1 -1
  220. package/modifiers/CurveModifier.cjs.map +1 -1
  221. package/modifiers/CurveModifier.js +2 -2
  222. package/modifiers/CurveModifier.js.map +1 -1
  223. package/modifiers/SimplifyModifier.cjs +2 -2
  224. package/modifiers/SimplifyModifier.cjs.map +1 -1
  225. package/modifiers/SimplifyModifier.js +2 -2
  226. package/modifiers/SimplifyModifier.js.map +1 -1
  227. package/objects/BatchedMesh.cjs +2 -2
  228. package/objects/BatchedMesh.cjs.map +1 -1
  229. package/objects/BatchedMesh.js +3 -3
  230. package/objects/BatchedMesh.js.map +1 -1
  231. package/objects/GroundProjectedEnv.cjs +1 -2
  232. package/objects/GroundProjectedEnv.cjs.map +1 -1
  233. package/objects/GroundProjectedEnv.js +2 -3
  234. package/objects/GroundProjectedEnv.js.map +1 -1
  235. package/objects/Lensflare.cjs +206 -209
  236. package/objects/Lensflare.cjs.map +1 -1
  237. package/objects/Lensflare.js +206 -209
  238. package/objects/Lensflare.js.map +1 -1
  239. package/objects/Reflector.cjs +146 -154
  240. package/objects/Reflector.cjs.map +1 -1
  241. package/objects/Reflector.js +146 -154
  242. package/objects/Reflector.js.map +1 -1
  243. package/objects/ReflectorForSSRPass.cjs +180 -183
  244. package/objects/ReflectorForSSRPass.cjs.map +1 -1
  245. package/objects/ReflectorForSSRPass.js +180 -183
  246. package/objects/ReflectorForSSRPass.js.map +1 -1
  247. package/objects/Refractor.cjs +161 -164
  248. package/objects/Refractor.cjs.map +1 -1
  249. package/objects/Refractor.js +161 -164
  250. package/objects/Refractor.js.map +1 -1
  251. package/objects/ShadowMesh.cjs +1 -1
  252. package/objects/ShadowMesh.cjs.map +1 -1
  253. package/objects/ShadowMesh.js +2 -2
  254. package/objects/ShadowMesh.js.map +1 -1
  255. package/objects/Sky.cjs +32 -35
  256. package/objects/Sky.cjs.map +1 -1
  257. package/objects/Sky.d.ts +6 -100
  258. package/objects/Sky.js +32 -35
  259. package/objects/Sky.js.map +1 -1
  260. package/objects/Water.cjs +1 -2
  261. package/objects/Water.cjs.map +1 -1
  262. package/objects/Water.js +2 -3
  263. package/objects/Water.js.map +1 -1
  264. package/objects/Water2.cjs +140 -143
  265. package/objects/Water2.cjs.map +1 -1
  266. package/objects/Water2.js +140 -143
  267. package/objects/Water2.js.map +1 -1
  268. package/package.json +1 -1
  269. package/postprocessing/SAOPass.cjs +264 -267
  270. package/postprocessing/SAOPass.cjs.map +1 -1
  271. package/postprocessing/SAOPass.js +264 -267
  272. package/postprocessing/SAOPass.js.map +1 -1
  273. package/postprocessing/SSAOPass.cjs +250 -253
  274. package/postprocessing/SSAOPass.cjs.map +1 -1
  275. package/postprocessing/SSAOPass.js +250 -253
  276. package/postprocessing/SSAOPass.js.map +1 -1
  277. package/postprocessing/SSRPass.cjs +376 -379
  278. package/postprocessing/SSRPass.cjs.map +1 -1
  279. package/postprocessing/SSRPass.js +376 -379
  280. package/postprocessing/SSRPass.js.map +1 -1
  281. package/postprocessing/UnrealBloomPass.cjs +202 -205
  282. package/postprocessing/UnrealBloomPass.cjs.map +1 -1
  283. package/postprocessing/UnrealBloomPass.js +202 -205
  284. package/postprocessing/UnrealBloomPass.js.map +1 -1
  285. package/renderers/CSS2DRenderer.cjs +5 -5
  286. package/renderers/CSS2DRenderer.cjs.map +1 -1
  287. package/renderers/CSS2DRenderer.js +5 -5
  288. package/renderers/CSS2DRenderer.js.map +1 -1
  289. package/renderers/CSS3DRenderer.cjs +5 -5
  290. package/renderers/CSS3DRenderer.cjs.map +1 -1
  291. package/renderers/CSS3DRenderer.js +6 -6
  292. package/renderers/CSS3DRenderer.js.map +1 -1
  293. package/shaders/ACESFilmicToneMappingShader.cjs +46 -71
  294. package/shaders/ACESFilmicToneMappingShader.cjs.map +1 -1
  295. package/shaders/ACESFilmicToneMappingShader.js +46 -71
  296. package/shaders/ACESFilmicToneMappingShader.js.map +1 -1
  297. package/shaders/AfterimageShader.cjs +22 -41
  298. package/shaders/AfterimageShader.cjs.map +1 -1
  299. package/shaders/AfterimageShader.js +22 -41
  300. package/shaders/AfterimageShader.js.map +1 -1
  301. package/shaders/BasicShader.cjs +6 -20
  302. package/shaders/BasicShader.cjs.map +1 -1
  303. package/shaders/BasicShader.js +6 -20
  304. package/shaders/BasicShader.js.map +1 -1
  305. package/shaders/BleachBypassShader.cjs +26 -46
  306. package/shaders/BleachBypassShader.cjs.map +1 -1
  307. package/shaders/BleachBypassShader.js +26 -46
  308. package/shaders/BleachBypassShader.js.map +1 -1
  309. package/shaders/BlendShader.cjs +19 -33
  310. package/shaders/BlendShader.cjs.map +1 -1
  311. package/shaders/BlendShader.js +19 -33
  312. package/shaders/BlendShader.js.map +1 -1
  313. package/shaders/BokehShader.cjs +90 -117
  314. package/shaders/BokehShader.cjs.map +1 -1
  315. package/shaders/BokehShader.js +90 -117
  316. package/shaders/BokehShader.js.map +1 -1
  317. package/shaders/BokehShader2.cjs +232 -333
  318. package/shaders/BokehShader2.cjs.map +1 -1
  319. package/shaders/BokehShader2.js +232 -333
  320. package/shaders/BokehShader2.js.map +1 -1
  321. package/shaders/BrightnessContrastShader.cjs +22 -38
  322. package/shaders/BrightnessContrastShader.cjs.map +1 -1
  323. package/shaders/BrightnessContrastShader.js +22 -38
  324. package/shaders/BrightnessContrastShader.js.map +1 -1
  325. package/shaders/ColorCorrectionShader.cjs +21 -35
  326. package/shaders/ColorCorrectionShader.cjs.map +1 -1
  327. package/shaders/ColorCorrectionShader.js +21 -35
  328. package/shaders/ColorCorrectionShader.js.map +1 -1
  329. package/shaders/ColorifyShader.cjs +19 -34
  330. package/shaders/ColorifyShader.cjs.map +1 -1
  331. package/shaders/ColorifyShader.js +19 -34
  332. package/shaders/ColorifyShader.js.map +1 -1
  333. package/shaders/ConvolutionShader.cjs +24 -43
  334. package/shaders/ConvolutionShader.cjs.map +1 -1
  335. package/shaders/ConvolutionShader.js +24 -43
  336. package/shaders/ConvolutionShader.js.map +1 -1
  337. package/shaders/CopyShader.cjs +16 -30
  338. package/shaders/CopyShader.cjs.map +1 -1
  339. package/shaders/CopyShader.js +16 -30
  340. package/shaders/CopyShader.js.map +1 -1
  341. package/shaders/DOFMipMapShader.cjs +21 -38
  342. package/shaders/DOFMipMapShader.cjs.map +1 -1
  343. package/shaders/DOFMipMapShader.js +21 -38
  344. package/shaders/DOFMipMapShader.js.map +1 -1
  345. package/shaders/DepthLimitedBlurShader.cjs +69 -98
  346. package/shaders/DepthLimitedBlurShader.cjs.map +1 -1
  347. package/shaders/DepthLimitedBlurShader.js +69 -98
  348. package/shaders/DepthLimitedBlurShader.js.map +1 -1
  349. package/shaders/DigitalGlitch.cjs +59 -70
  350. package/shaders/DigitalGlitch.cjs.map +1 -1
  351. package/shaders/DigitalGlitch.js +59 -70
  352. package/shaders/DigitalGlitch.js.map +1 -1
  353. package/shaders/DotScreenShader.cjs +28 -49
  354. package/shaders/DotScreenShader.cjs.map +1 -1
  355. package/shaders/DotScreenShader.js +28 -49
  356. package/shaders/DotScreenShader.js.map +1 -1
  357. package/shaders/FXAAShader.cjs +1089 -1098
  358. package/shaders/FXAAShader.cjs.map +1 -1
  359. package/shaders/FXAAShader.js +1089 -1098
  360. package/shaders/FXAAShader.js.map +1 -1
  361. package/shaders/FilmShader.cjs +29 -57
  362. package/shaders/FilmShader.cjs.map +1 -1
  363. package/shaders/FilmShader.js +29 -57
  364. package/shaders/FilmShader.js.map +1 -1
  365. package/shaders/FocusShader.cjs +43 -70
  366. package/shaders/FocusShader.cjs.map +1 -1
  367. package/shaders/FocusShader.js +43 -70
  368. package/shaders/FocusShader.js.map +1 -1
  369. package/shaders/FreiChenShader.cjs +53 -74
  370. package/shaders/FreiChenShader.cjs.map +1 -1
  371. package/shaders/FreiChenShader.js +53 -74
  372. package/shaders/FreiChenShader.js.map +1 -1
  373. package/shaders/FresnelShader.cjs +35 -55
  374. package/shaders/FresnelShader.cjs.map +1 -1
  375. package/shaders/FresnelShader.js +35 -55
  376. package/shaders/FresnelShader.js.map +1 -1
  377. package/shaders/GammaCorrectionShader.cjs +19 -33
  378. package/shaders/GammaCorrectionShader.cjs.map +1 -1
  379. package/shaders/GammaCorrectionShader.js +19 -33
  380. package/shaders/GammaCorrectionShader.js.map +1 -1
  381. package/shaders/GodRaysShader.cjs +116 -193
  382. package/shaders/GodRaysShader.cjs.map +1 -1
  383. package/shaders/GodRaysShader.js +116 -193
  384. package/shaders/GodRaysShader.js.map +1 -1
  385. package/shaders/HalftoneShader.cjs +192 -270
  386. package/shaders/HalftoneShader.cjs.map +1 -1
  387. package/shaders/HalftoneShader.js +192 -270
  388. package/shaders/HalftoneShader.js.map +1 -1
  389. package/shaders/HorizontalTiltShiftShader.cjs +27 -43
  390. package/shaders/HorizontalTiltShiftShader.cjs.map +1 -1
  391. package/shaders/HorizontalTiltShiftShader.js +27 -43
  392. package/shaders/HorizontalTiltShiftShader.js.map +1 -1
  393. package/shaders/HueSaturationShader.cjs +31 -47
  394. package/shaders/HueSaturationShader.cjs.map +1 -1
  395. package/shaders/HueSaturationShader.js +31 -47
  396. package/shaders/HueSaturationShader.js.map +1 -1
  397. package/shaders/KaleidoShader.cjs +24 -37
  398. package/shaders/KaleidoShader.cjs.map +1 -1
  399. package/shaders/KaleidoShader.js +24 -37
  400. package/shaders/KaleidoShader.js.map +1 -1
  401. package/shaders/LuminosityHighPassShader.cjs +24 -43
  402. package/shaders/LuminosityHighPassShader.cjs.map +1 -1
  403. package/shaders/LuminosityHighPassShader.js +24 -43
  404. package/shaders/LuminosityHighPassShader.js.map +1 -1
  405. package/shaders/LuminosityShader.cjs +17 -34
  406. package/shaders/LuminosityShader.cjs.map +1 -1
  407. package/shaders/LuminosityShader.js +17 -34
  408. package/shaders/LuminosityShader.js.map +1 -1
  409. package/shaders/MirrorShader.cjs +26 -39
  410. package/shaders/MirrorShader.cjs.map +1 -1
  411. package/shaders/MirrorShader.js +26 -39
  412. package/shaders/MirrorShader.js.map +1 -1
  413. package/shaders/NormalMapShader.cjs +21 -36
  414. package/shaders/NormalMapShader.cjs.map +1 -1
  415. package/shaders/NormalMapShader.js +21 -36
  416. package/shaders/NormalMapShader.js.map +1 -1
  417. package/shaders/ParallaxShader.cjs +97 -147
  418. package/shaders/ParallaxShader.cjs.map +1 -1
  419. package/shaders/ParallaxShader.js +97 -147
  420. package/shaders/ParallaxShader.js.map +1 -1
  421. package/shaders/PixelShader.cjs +18 -31
  422. package/shaders/PixelShader.cjs.map +1 -1
  423. package/shaders/PixelShader.js +18 -31
  424. package/shaders/PixelShader.js.map +1 -1
  425. package/shaders/RGBShiftShader.cjs +20 -33
  426. package/shaders/RGBShiftShader.cjs.map +1 -1
  427. package/shaders/RGBShiftShader.js +20 -33
  428. package/shaders/RGBShiftShader.js.map +1 -1
  429. package/shaders/SAOShader.cjs +117 -154
  430. package/shaders/SAOShader.cjs.map +1 -1
  431. package/shaders/SAOShader.js +117 -154
  432. package/shaders/SAOShader.js.map +1 -1
  433. package/shaders/SMAAShader.cjs +270 -358
  434. package/shaders/SMAAShader.cjs.map +1 -1
  435. package/shaders/SMAAShader.js +270 -358
  436. package/shaders/SMAAShader.js.map +1 -1
  437. package/shaders/SSAOShader.cjs +142 -236
  438. package/shaders/SSAOShader.cjs.map +1 -1
  439. package/shaders/SSAOShader.js +142 -236
  440. package/shaders/SSAOShader.js.map +1 -1
  441. package/shaders/SSRShader.cjs +4 -4
  442. package/shaders/SSRShader.cjs.map +1 -1
  443. package/shaders/SSRShader.js +4 -4
  444. package/shaders/SSRShader.js.map +1 -1
  445. package/shaders/SepiaShader.cjs +20 -36
  446. package/shaders/SepiaShader.cjs.map +1 -1
  447. package/shaders/SepiaShader.js +20 -36
  448. package/shaders/SepiaShader.js.map +1 -1
  449. package/shaders/SobelOperatorShader.cjs +37 -64
  450. package/shaders/SobelOperatorShader.cjs.map +1 -1
  451. package/shaders/SobelOperatorShader.js +37 -64
  452. package/shaders/SobelOperatorShader.js.map +1 -1
  453. package/shaders/TechnicolorShader.cjs +16 -29
  454. package/shaders/TechnicolorShader.cjs.map +1 -1
  455. package/shaders/TechnicolorShader.js +16 -29
  456. package/shaders/TechnicolorShader.js.map +1 -1
  457. package/shaders/ToneMapShader.cjs +35 -55
  458. package/shaders/ToneMapShader.cjs.map +1 -1
  459. package/shaders/ToneMapShader.js +35 -55
  460. package/shaders/ToneMapShader.js.map +1 -1
  461. package/shaders/ToonShader.cjs +165 -275
  462. package/shaders/ToonShader.cjs.map +1 -1
  463. package/shaders/ToonShader.js +165 -275
  464. package/shaders/ToonShader.js.map +1 -1
  465. package/shaders/TriangleBlurShader.cjs +27 -50
  466. package/shaders/TriangleBlurShader.cjs.map +1 -1
  467. package/shaders/TriangleBlurShader.js +27 -50
  468. package/shaders/TriangleBlurShader.js.map +1 -1
  469. package/shaders/UnpackDepthRGBAShader.cjs +17 -32
  470. package/shaders/UnpackDepthRGBAShader.cjs.map +1 -1
  471. package/shaders/UnpackDepthRGBAShader.js +17 -32
  472. package/shaders/UnpackDepthRGBAShader.js.map +1 -1
  473. package/shaders/VerticalTiltShiftShader.cjs +27 -43
  474. package/shaders/VerticalTiltShiftShader.cjs.map +1 -1
  475. package/shaders/VerticalTiltShiftShader.js +27 -43
  476. package/shaders/VerticalTiltShiftShader.js.map +1 -1
  477. package/shaders/VignetteShader.cjs +27 -43
  478. package/shaders/VignetteShader.cjs.map +1 -1
  479. package/shaders/VignetteShader.js +27 -43
  480. package/shaders/VignetteShader.js.map +1 -1
  481. package/shaders/VolumeShader.cjs +213 -264
  482. package/shaders/VolumeShader.cjs.map +1 -1
  483. package/shaders/VolumeShader.js +213 -264
  484. package/shaders/VolumeShader.js.map +1 -1
  485. package/shaders/WaterRefractionShader.cjs +35 -63
  486. package/shaders/WaterRefractionShader.cjs.map +1 -1
  487. package/shaders/WaterRefractionShader.js +35 -63
  488. package/shaders/WaterRefractionShader.js.map +1 -1
  489. package/utils/GeometryCompressionUtils.cjs +1 -2
  490. package/utils/GeometryCompressionUtils.cjs.map +1 -1
  491. package/utils/GeometryCompressionUtils.js +2 -3
  492. package/utils/GeometryCompressionUtils.js.map +1 -1
  493. package/utils/RoughnessMipmapper.cjs +3 -3
  494. package/utils/RoughnessMipmapper.cjs.map +1 -1
  495. package/utils/RoughnessMipmapper.js +4 -4
  496. package/utils/RoughnessMipmapper.js.map +1 -1
  497. package/webxr/ARButton.cjs +106 -109
  498. package/webxr/ARButton.cjs.map +1 -1
  499. package/webxr/ARButton.d.ts +3 -4
  500. package/webxr/ARButton.js +106 -109
  501. package/webxr/ARButton.js.map +1 -1
  502. package/webxr/OculusHandPointerModel.cjs +2 -2
  503. package/webxr/OculusHandPointerModel.cjs.map +1 -1
  504. package/webxr/OculusHandPointerModel.js +2 -2
  505. package/webxr/OculusHandPointerModel.js.map +1 -1
  506. package/webxr/VRButton.cjs +95 -98
  507. package/webxr/VRButton.cjs.map +1 -1
  508. package/webxr/VRButton.d.ts +5 -6
  509. package/webxr/VRButton.js +95 -98
  510. package/webxr/VRButton.js.map +1 -1
  511. package/webxr/XRHandPrimitiveModel.cjs +2 -2
  512. package/webxr/XRHandPrimitiveModel.cjs.map +1 -1
  513. package/webxr/XRHandPrimitiveModel.js +3 -3
  514. package/webxr/XRHandPrimitiveModel.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SSRPass.js","sources":["../../src/postprocessing/SSRPass.js"],"sourcesContent":["import {\n AddEquation,\n Color,\n NormalBlending,\n DepthTexture,\n SrcAlphaFactor,\n OneMinusSrcAlphaFactor,\n MeshNormalMaterial,\n MeshBasicMaterial,\n NearestFilter,\n NoBlending,\n ShaderMaterial,\n UniformsUtils,\n UnsignedShortType,\n WebGLRenderTarget,\n HalfFloatType,\n} from 'three'\nimport { Pass, FullScreenQuad } from './Pass'\nimport { SSRShader } from '../shaders/SSRShader'\nimport { SSRBlurShader } from '../shaders/SSRShader'\nimport { SSRDepthShader } from '../shaders/SSRShader'\nimport { CopyShader } from '../shaders/CopyShader'\n\nconst SSRPass = /* @__PURE__ */ (() => {\n class SSRPass extends Pass {\n static OUTPUT = {\n Default: 0,\n SSR: 1,\n Beauty: 3,\n Depth: 4,\n Normal: 5,\n Metalness: 7,\n }\n constructor({ renderer, scene, camera, width, height, selects, bouncing = false, groundReflector }) {\n super()\n\n this.width = width !== undefined ? width : 512\n this.height = height !== undefined ? height : 512\n\n this.clear = true\n\n this.renderer = renderer\n this.scene = scene\n this.camera = camera\n this.groundReflector = groundReflector\n\n this.opacity = SSRShader.uniforms.opacity.value\n this.output = 0\n\n this.maxDistance = SSRShader.uniforms.maxDistance.value\n this.thickness = SSRShader.uniforms.thickness.value\n\n this.tempColor = new Color()\n\n this._selects = selects\n this.selective = Array.isArray(this._selects)\n Object.defineProperty(this, 'selects', {\n get() {\n return this._selects\n },\n set(val) {\n if (this._selects === val) return\n this._selects = val\n if (Array.isArray(val)) {\n this.selective = true\n this.ssrMaterial.defines.SELECTIVE = true\n this.ssrMaterial.needsUpdate = true\n } else {\n this.selective = false\n this.ssrMaterial.defines.SELECTIVE = false\n this.ssrMaterial.needsUpdate = true\n }\n },\n })\n\n this._bouncing = bouncing\n Object.defineProperty(this, 'bouncing', {\n get() {\n return this._bouncing\n },\n set(val) {\n if (this._bouncing === val) return\n this._bouncing = val\n if (val) {\n this.ssrMaterial.uniforms['tDiffuse'].value = this.prevRenderTarget.texture\n } else {\n this.ssrMaterial.uniforms['tDiffuse'].value = this.beautyRenderTarget.texture\n }\n },\n })\n\n this.blur = true\n\n this._distanceAttenuation = SSRShader.defines.DISTANCE_ATTENUATION\n Object.defineProperty(this, 'distanceAttenuation', {\n get() {\n return this._distanceAttenuation\n },\n set(val) {\n if (this._distanceAttenuation === val) return\n this._distanceAttenuation = val\n this.ssrMaterial.defines.DISTANCE_ATTENUATION = val\n this.ssrMaterial.needsUpdate = true\n },\n })\n\n this._fresnel = SSRShader.defines.FRESNEL\n Object.defineProperty(this, 'fresnel', {\n get() {\n return this._fresnel\n },\n set(val) {\n if (this._fresnel === val) return\n this._fresnel = val\n this.ssrMaterial.defines.FRESNEL = val\n this.ssrMaterial.needsUpdate = true\n },\n })\n\n this._infiniteThick = SSRShader.defines.INFINITE_THICK\n Object.defineProperty(this, 'infiniteThick', {\n get() {\n return this._infiniteThick\n },\n set(val) {\n if (this._infiniteThick === val) return\n this._infiniteThick = val\n this.ssrMaterial.defines.INFINITE_THICK = val\n this.ssrMaterial.needsUpdate = true\n },\n })\n\n // beauty render target with depth buffer\n\n const depthTexture = new DepthTexture()\n depthTexture.type = UnsignedShortType\n depthTexture.minFilter = NearestFilter\n depthTexture.magFilter = NearestFilter\n\n this.beautyRenderTarget = new WebGLRenderTarget(this.width, this.height, {\n minFilter: NearestFilter,\n magFilter: NearestFilter,\n type: HalfFloatType,\n depthTexture: depthTexture,\n depthBuffer: true,\n })\n\n //for bouncing\n this.prevRenderTarget = new WebGLRenderTarget(this.width, this.height, {\n minFilter: NearestFilter,\n magFilter: NearestFilter,\n })\n\n // normal render target\n\n this.normalRenderTarget = new WebGLRenderTarget(this.width, this.height, {\n minFilter: NearestFilter,\n magFilter: NearestFilter,\n type: HalfFloatType,\n })\n\n // metalness render target\n\n this.metalnessRenderTarget = new WebGLRenderTarget(this.width, this.height, {\n minFilter: NearestFilter,\n magFilter: NearestFilter,\n type: HalfFloatType,\n })\n\n // ssr render target\n\n this.ssrRenderTarget = new WebGLRenderTarget(this.width, this.height, {\n minFilter: NearestFilter,\n magFilter: NearestFilter,\n })\n\n this.blurRenderTarget = this.ssrRenderTarget.clone()\n this.blurRenderTarget2 = this.ssrRenderTarget.clone()\n // this.blurRenderTarget3 = this.ssrRenderTarget.clone();\n\n // ssr material\n\n this.ssrMaterial = new ShaderMaterial({\n defines: Object.assign({}, SSRShader.defines, {\n MAX_STEP: Math.sqrt(this.width * this.width + this.height * this.height),\n }),\n uniforms: UniformsUtils.clone(SSRShader.uniforms),\n vertexShader: SSRShader.vertexShader,\n fragmentShader: SSRShader.fragmentShader,\n blending: NoBlending,\n })\n\n this.ssrMaterial.uniforms['tDiffuse'].value = this.beautyRenderTarget.texture\n this.ssrMaterial.uniforms['tNormal'].value = this.normalRenderTarget.texture\n this.ssrMaterial.defines.SELECTIVE = this.selective\n this.ssrMaterial.needsUpdate = true\n this.ssrMaterial.uniforms['tMetalness'].value = this.metalnessRenderTarget.texture\n this.ssrMaterial.uniforms['tDepth'].value = this.beautyRenderTarget.depthTexture\n this.ssrMaterial.uniforms['cameraNear'].value = this.camera.near\n this.ssrMaterial.uniforms['cameraFar'].value = this.camera.far\n this.ssrMaterial.uniforms['thickness'].value = this.thickness\n this.ssrMaterial.uniforms['resolution'].value.set(this.width, this.height)\n this.ssrMaterial.uniforms['cameraProjectionMatrix'].value.copy(this.camera.projectionMatrix)\n this.ssrMaterial.uniforms['cameraInverseProjectionMatrix'].value.copy(this.camera.projectionMatrixInverse)\n\n // normal material\n\n this.normalMaterial = new MeshNormalMaterial()\n this.normalMaterial.blending = NoBlending\n\n // metalnessOn material\n\n this.metalnessOnMaterial = new MeshBasicMaterial({\n color: 'white',\n })\n\n // metalnessOff material\n\n this.metalnessOffMaterial = new MeshBasicMaterial({\n color: 'black',\n })\n\n // blur material\n\n this.blurMaterial = new ShaderMaterial({\n defines: Object.assign({}, SSRBlurShader.defines),\n uniforms: UniformsUtils.clone(SSRBlurShader.uniforms),\n vertexShader: SSRBlurShader.vertexShader,\n fragmentShader: SSRBlurShader.fragmentShader,\n })\n this.blurMaterial.uniforms['tDiffuse'].value = this.ssrRenderTarget.texture\n this.blurMaterial.uniforms['resolution'].value.set(this.width, this.height)\n\n // blur material 2\n\n this.blurMaterial2 = new ShaderMaterial({\n defines: Object.assign({}, SSRBlurShader.defines),\n uniforms: UniformsUtils.clone(SSRBlurShader.uniforms),\n vertexShader: SSRBlurShader.vertexShader,\n fragmentShader: SSRBlurShader.fragmentShader,\n })\n this.blurMaterial2.uniforms['tDiffuse'].value = this.blurRenderTarget.texture\n this.blurMaterial2.uniforms['resolution'].value.set(this.width, this.height)\n\n // // blur material 3\n\n // this.blurMaterial3 = new ShaderMaterial({\n // defines: Object.assign({}, SSRBlurShader.defines),\n // uniforms: UniformsUtils.clone(SSRBlurShader.uniforms),\n // vertexShader: SSRBlurShader.vertexShader,\n // fragmentShader: SSRBlurShader.fragmentShader\n // });\n // this.blurMaterial3.uniforms['tDiffuse'].value = this.blurRenderTarget2.texture;\n // this.blurMaterial3.uniforms['resolution'].value.set(this.width, this.height);\n\n // material for rendering the depth\n\n this.depthRenderMaterial = new ShaderMaterial({\n defines: Object.assign({}, SSRDepthShader.defines),\n uniforms: UniformsUtils.clone(SSRDepthShader.uniforms),\n vertexShader: SSRDepthShader.vertexShader,\n fragmentShader: SSRDepthShader.fragmentShader,\n blending: NoBlending,\n })\n this.depthRenderMaterial.uniforms['tDepth'].value = this.beautyRenderTarget.depthTexture\n this.depthRenderMaterial.uniforms['cameraNear'].value = this.camera.near\n this.depthRenderMaterial.uniforms['cameraFar'].value = this.camera.far\n\n // material for rendering the content of a render target\n\n this.copyMaterial = new ShaderMaterial({\n uniforms: UniformsUtils.clone(CopyShader.uniforms),\n vertexShader: CopyShader.vertexShader,\n fragmentShader: CopyShader.fragmentShader,\n transparent: true,\n depthTest: false,\n depthWrite: false,\n blendSrc: SrcAlphaFactor,\n blendDst: OneMinusSrcAlphaFactor,\n blendEquation: AddEquation,\n blendSrcAlpha: SrcAlphaFactor,\n blendDstAlpha: OneMinusSrcAlphaFactor,\n blendEquationAlpha: AddEquation,\n // premultipliedAlpha:true,\n })\n\n this.fsQuad = new FullScreenQuad(null)\n\n this.originalClearColor = new Color()\n }\n\n dispose() {\n // dispose render targets\n\n this.beautyRenderTarget.dispose()\n this.prevRenderTarget.dispose()\n this.normalRenderTarget.dispose()\n this.metalnessRenderTarget.dispose()\n this.ssrRenderTarget.dispose()\n this.blurRenderTarget.dispose()\n this.blurRenderTarget2.dispose()\n // this.blurRenderTarget3.dispose();\n\n // dispose materials\n\n this.normalMaterial.dispose()\n this.metalnessOnMaterial.dispose()\n this.metalnessOffMaterial.dispose()\n this.blurMaterial.dispose()\n this.blurMaterial2.dispose()\n this.copyMaterial.dispose()\n this.depthRenderMaterial.dispose()\n\n // dipsose full screen quad\n\n this.fsQuad.dispose()\n }\n\n render(renderer, writeBuffer /*, readBuffer, deltaTime, maskActive */) {\n // render beauty and depth\n\n renderer.setRenderTarget(this.beautyRenderTarget)\n renderer.clear()\n if (this.groundReflector) {\n this.groundReflector.visible = false\n this.groundReflector.doRender(this.renderer, this.scene, this.camera)\n this.groundReflector.visible = true\n }\n\n renderer.render(this.scene, this.camera)\n if (this.groundReflector) this.groundReflector.visible = false\n\n // render normals\n\n this.renderOverride(renderer, this.normalMaterial, this.normalRenderTarget, 0, 0)\n\n // render metalnesses\n\n if (this.selective) {\n this.renderMetalness(renderer, this.metalnessOnMaterial, this.metalnessRenderTarget, 0, 0)\n }\n\n // render SSR\n\n this.ssrMaterial.uniforms['opacity'].value = this.opacity\n this.ssrMaterial.uniforms['maxDistance'].value = this.maxDistance\n this.ssrMaterial.uniforms['thickness'].value = this.thickness\n this.renderPass(renderer, this.ssrMaterial, this.ssrRenderTarget)\n\n // render blur\n\n if (this.blur) {\n this.renderPass(renderer, this.blurMaterial, this.blurRenderTarget)\n this.renderPass(renderer, this.blurMaterial2, this.blurRenderTarget2)\n // this.renderPass(renderer, this.blurMaterial3, this.blurRenderTarget3);\n }\n\n // output result to screen\n\n switch (this.output) {\n case SSRPass.OUTPUT.Default:\n if (this.bouncing) {\n this.copyMaterial.uniforms['tDiffuse'].value = this.beautyRenderTarget.texture\n this.copyMaterial.blending = NoBlending\n this.renderPass(renderer, this.copyMaterial, this.prevRenderTarget)\n\n if (this.blur) this.copyMaterial.uniforms['tDiffuse'].value = this.blurRenderTarget2.texture\n else this.copyMaterial.uniforms['tDiffuse'].value = this.ssrRenderTarget.texture\n this.copyMaterial.blending = NormalBlending\n this.renderPass(renderer, this.copyMaterial, this.prevRenderTarget)\n\n this.copyMaterial.uniforms['tDiffuse'].value = this.prevRenderTarget.texture\n this.copyMaterial.blending = NoBlending\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer)\n } else {\n this.copyMaterial.uniforms['tDiffuse'].value = this.beautyRenderTarget.texture\n this.copyMaterial.blending = NoBlending\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer)\n\n if (this.blur) this.copyMaterial.uniforms['tDiffuse'].value = this.blurRenderTarget2.texture\n else this.copyMaterial.uniforms['tDiffuse'].value = this.ssrRenderTarget.texture\n this.copyMaterial.blending = NormalBlending\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer)\n }\n\n break\n case SSRPass.OUTPUT.SSR:\n if (this.blur) this.copyMaterial.uniforms['tDiffuse'].value = this.blurRenderTarget2.texture\n else this.copyMaterial.uniforms['tDiffuse'].value = this.ssrRenderTarget.texture\n this.copyMaterial.blending = NoBlending\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer)\n\n if (this.bouncing) {\n if (this.blur) this.copyMaterial.uniforms['tDiffuse'].value = this.blurRenderTarget2.texture\n else this.copyMaterial.uniforms['tDiffuse'].value = this.beautyRenderTarget.texture\n this.copyMaterial.blending = NoBlending\n this.renderPass(renderer, this.copyMaterial, this.prevRenderTarget)\n\n this.copyMaterial.uniforms['tDiffuse'].value = this.ssrRenderTarget.texture\n this.copyMaterial.blending = NormalBlending\n this.renderPass(renderer, this.copyMaterial, this.prevRenderTarget)\n }\n\n break\n\n case SSRPass.OUTPUT.Beauty:\n this.copyMaterial.uniforms['tDiffuse'].value = this.beautyRenderTarget.texture\n this.copyMaterial.blending = NoBlending\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer)\n\n break\n\n case SSRPass.OUTPUT.Depth:\n this.renderPass(renderer, this.depthRenderMaterial, this.renderToScreen ? null : writeBuffer)\n\n break\n\n case SSRPass.OUTPUT.Normal:\n this.copyMaterial.uniforms['tDiffuse'].value = this.normalRenderTarget.texture\n this.copyMaterial.blending = NoBlending\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer)\n\n break\n\n case SSRPass.OUTPUT.Metalness:\n this.copyMaterial.uniforms['tDiffuse'].value = this.metalnessRenderTarget.texture\n this.copyMaterial.blending = NoBlending\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer)\n\n break\n\n default:\n console.warn('THREE.SSRPass: Unknown output type.')\n }\n }\n\n renderPass(renderer, passMaterial, renderTarget, clearColor, clearAlpha) {\n // save original state\n this.originalClearColor.copy(renderer.getClearColor(this.tempColor))\n const originalClearAlpha = renderer.getClearAlpha(this.tempColor)\n const originalAutoClear = renderer.autoClear\n\n renderer.setRenderTarget(renderTarget)\n\n // setup pass state\n renderer.autoClear = false\n if (clearColor !== undefined && clearColor !== null) {\n renderer.setClearColor(clearColor)\n renderer.setClearAlpha(clearAlpha || 0.0)\n renderer.clear()\n }\n\n this.fsQuad.material = passMaterial\n this.fsQuad.render(renderer)\n\n // restore original state\n renderer.autoClear = originalAutoClear\n renderer.setClearColor(this.originalClearColor)\n renderer.setClearAlpha(originalClearAlpha)\n }\n\n renderOverride(renderer, overrideMaterial, renderTarget, clearColor, clearAlpha) {\n this.originalClearColor.copy(renderer.getClearColor(this.tempColor))\n const originalClearAlpha = renderer.getClearAlpha(this.tempColor)\n const originalAutoClear = renderer.autoClear\n\n renderer.setRenderTarget(renderTarget)\n renderer.autoClear = false\n\n clearColor = overrideMaterial.clearColor || clearColor\n clearAlpha = overrideMaterial.clearAlpha || clearAlpha\n\n if (clearColor !== undefined && clearColor !== null) {\n renderer.setClearColor(clearColor)\n renderer.setClearAlpha(clearAlpha || 0.0)\n renderer.clear()\n }\n\n this.scene.overrideMaterial = overrideMaterial\n renderer.render(this.scene, this.camera)\n this.scene.overrideMaterial = null\n\n // restore original state\n\n renderer.autoClear = originalAutoClear\n renderer.setClearColor(this.originalClearColor)\n renderer.setClearAlpha(originalClearAlpha)\n }\n\n renderMetalness(renderer, overrideMaterial, renderTarget, clearColor, clearAlpha) {\n this.originalClearColor.copy(renderer.getClearColor(this.tempColor))\n const originalClearAlpha = renderer.getClearAlpha(this.tempColor)\n const originalAutoClear = renderer.autoClear\n\n renderer.setRenderTarget(renderTarget)\n renderer.autoClear = false\n\n clearColor = overrideMaterial.clearColor || clearColor\n clearAlpha = overrideMaterial.clearAlpha || clearAlpha\n\n if (clearColor !== undefined && clearColor !== null) {\n renderer.setClearColor(clearColor)\n renderer.setClearAlpha(clearAlpha || 0.0)\n renderer.clear()\n }\n\n this.scene.traverseVisible((child) => {\n child._SSRPassBackupMaterial = child.material\n if (this._selects.includes(child)) {\n child.material = this.metalnessOnMaterial\n } else {\n child.material = this.metalnessOffMaterial\n }\n })\n renderer.render(this.scene, this.camera)\n this.scene.traverseVisible((child) => {\n child.material = child._SSRPassBackupMaterial\n })\n\n // restore original state\n\n renderer.autoClear = originalAutoClear\n renderer.setClearColor(this.originalClearColor)\n renderer.setClearAlpha(originalClearAlpha)\n }\n\n setSize(width, height) {\n this.width = width\n this.height = height\n\n this.ssrMaterial.defines.MAX_STEP = Math.sqrt(width * width + height * height)\n this.ssrMaterial.needsUpdate = true\n this.beautyRenderTarget.setSize(width, height)\n this.prevRenderTarget.setSize(width, height)\n this.ssrRenderTarget.setSize(width, height)\n this.normalRenderTarget.setSize(width, height)\n this.metalnessRenderTarget.setSize(width, height)\n this.blurRenderTarget.setSize(width, height)\n this.blurRenderTarget2.setSize(width, height)\n // this.blurRenderTarget3.setSize(width, height);\n\n this.ssrMaterial.uniforms['resolution'].value.set(width, height)\n this.ssrMaterial.uniforms['cameraProjectionMatrix'].value.copy(this.camera.projectionMatrix)\n this.ssrMaterial.uniforms['cameraInverseProjectionMatrix'].value.copy(this.camera.projectionMatrixInverse)\n\n this.blurMaterial.uniforms['resolution'].value.set(width, height)\n this.blurMaterial2.uniforms['resolution'].value.set(width, height)\n }\n }\n\n return SSRPass\n})()\n\nexport { SSRPass }\n"],"names":["SSRPass"],"mappings":"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"}
1
+ {"version":3,"file":"SSRPass.js","sources":["../../src/postprocessing/SSRPass.js"],"sourcesContent":["import {\n AddEquation,\n Color,\n NormalBlending,\n DepthTexture,\n SrcAlphaFactor,\n OneMinusSrcAlphaFactor,\n MeshNormalMaterial,\n MeshBasicMaterial,\n NearestFilter,\n NoBlending,\n ShaderMaterial,\n UniformsUtils,\n UnsignedShortType,\n WebGLRenderTarget,\n HalfFloatType,\n} from 'three'\nimport { Pass, FullScreenQuad } from './Pass'\nimport { SSRShader } from '../shaders/SSRShader'\nimport { SSRBlurShader } from '../shaders/SSRShader'\nimport { SSRDepthShader } from '../shaders/SSRShader'\nimport { CopyShader } from '../shaders/CopyShader'\n\nclass SSRPass extends Pass {\n static OUTPUT = {\n Default: 0,\n SSR: 1,\n Beauty: 3,\n Depth: 4,\n Normal: 5,\n Metalness: 7,\n }\n constructor({ renderer, scene, camera, width, height, selects, bouncing = false, groundReflector }) {\n super()\n\n this.width = width !== undefined ? width : 512\n this.height = height !== undefined ? height : 512\n\n this.clear = true\n\n this.renderer = renderer\n this.scene = scene\n this.camera = camera\n this.groundReflector = groundReflector\n\n this.opacity = SSRShader.uniforms.opacity.value\n this.output = 0\n\n this.maxDistance = SSRShader.uniforms.maxDistance.value\n this.thickness = SSRShader.uniforms.thickness.value\n\n this.tempColor = new Color()\n\n this._selects = selects\n this.selective = Array.isArray(this._selects)\n Object.defineProperty(this, 'selects', {\n get() {\n return this._selects\n },\n set(val) {\n if (this._selects === val) return\n this._selects = val\n if (Array.isArray(val)) {\n this.selective = true\n this.ssrMaterial.defines.SELECTIVE = true\n this.ssrMaterial.needsUpdate = true\n } else {\n this.selective = false\n this.ssrMaterial.defines.SELECTIVE = false\n this.ssrMaterial.needsUpdate = true\n }\n },\n })\n\n this._bouncing = bouncing\n Object.defineProperty(this, 'bouncing', {\n get() {\n return this._bouncing\n },\n set(val) {\n if (this._bouncing === val) return\n this._bouncing = val\n if (val) {\n this.ssrMaterial.uniforms['tDiffuse'].value = this.prevRenderTarget.texture\n } else {\n this.ssrMaterial.uniforms['tDiffuse'].value = this.beautyRenderTarget.texture\n }\n },\n })\n\n this.blur = true\n\n this._distanceAttenuation = SSRShader.defines.DISTANCE_ATTENUATION\n Object.defineProperty(this, 'distanceAttenuation', {\n get() {\n return this._distanceAttenuation\n },\n set(val) {\n if (this._distanceAttenuation === val) return\n this._distanceAttenuation = val\n this.ssrMaterial.defines.DISTANCE_ATTENUATION = val\n this.ssrMaterial.needsUpdate = true\n },\n })\n\n this._fresnel = SSRShader.defines.FRESNEL\n Object.defineProperty(this, 'fresnel', {\n get() {\n return this._fresnel\n },\n set(val) {\n if (this._fresnel === val) return\n this._fresnel = val\n this.ssrMaterial.defines.FRESNEL = val\n this.ssrMaterial.needsUpdate = true\n },\n })\n\n this._infiniteThick = SSRShader.defines.INFINITE_THICK\n Object.defineProperty(this, 'infiniteThick', {\n get() {\n return this._infiniteThick\n },\n set(val) {\n if (this._infiniteThick === val) return\n this._infiniteThick = val\n this.ssrMaterial.defines.INFINITE_THICK = val\n this.ssrMaterial.needsUpdate = true\n },\n })\n\n // beauty render target with depth buffer\n\n const depthTexture = new DepthTexture()\n depthTexture.type = UnsignedShortType\n depthTexture.minFilter = NearestFilter\n depthTexture.magFilter = NearestFilter\n\n this.beautyRenderTarget = new WebGLRenderTarget(this.width, this.height, {\n minFilter: NearestFilter,\n magFilter: NearestFilter,\n type: HalfFloatType,\n depthTexture: depthTexture,\n depthBuffer: true,\n })\n\n //for bouncing\n this.prevRenderTarget = new WebGLRenderTarget(this.width, this.height, {\n minFilter: NearestFilter,\n magFilter: NearestFilter,\n })\n\n // normal render target\n\n this.normalRenderTarget = new WebGLRenderTarget(this.width, this.height, {\n minFilter: NearestFilter,\n magFilter: NearestFilter,\n type: HalfFloatType,\n })\n\n // metalness render target\n\n this.metalnessRenderTarget = new WebGLRenderTarget(this.width, this.height, {\n minFilter: NearestFilter,\n magFilter: NearestFilter,\n type: HalfFloatType,\n })\n\n // ssr render target\n\n this.ssrRenderTarget = new WebGLRenderTarget(this.width, this.height, {\n minFilter: NearestFilter,\n magFilter: NearestFilter,\n })\n\n this.blurRenderTarget = this.ssrRenderTarget.clone()\n this.blurRenderTarget2 = this.ssrRenderTarget.clone()\n // this.blurRenderTarget3 = this.ssrRenderTarget.clone();\n\n // ssr material\n\n this.ssrMaterial = new ShaderMaterial({\n defines: Object.assign({}, SSRShader.defines, {\n MAX_STEP: Math.sqrt(this.width * this.width + this.height * this.height),\n }),\n uniforms: UniformsUtils.clone(SSRShader.uniforms),\n vertexShader: SSRShader.vertexShader,\n fragmentShader: SSRShader.fragmentShader,\n blending: NoBlending,\n })\n\n this.ssrMaterial.uniforms['tDiffuse'].value = this.beautyRenderTarget.texture\n this.ssrMaterial.uniforms['tNormal'].value = this.normalRenderTarget.texture\n this.ssrMaterial.defines.SELECTIVE = this.selective\n this.ssrMaterial.needsUpdate = true\n this.ssrMaterial.uniforms['tMetalness'].value = this.metalnessRenderTarget.texture\n this.ssrMaterial.uniforms['tDepth'].value = this.beautyRenderTarget.depthTexture\n this.ssrMaterial.uniforms['cameraNear'].value = this.camera.near\n this.ssrMaterial.uniforms['cameraFar'].value = this.camera.far\n this.ssrMaterial.uniforms['thickness'].value = this.thickness\n this.ssrMaterial.uniforms['resolution'].value.set(this.width, this.height)\n this.ssrMaterial.uniforms['cameraProjectionMatrix'].value.copy(this.camera.projectionMatrix)\n this.ssrMaterial.uniforms['cameraInverseProjectionMatrix'].value.copy(this.camera.projectionMatrixInverse)\n\n // normal material\n\n this.normalMaterial = new MeshNormalMaterial()\n this.normalMaterial.blending = NoBlending\n\n // metalnessOn material\n\n this.metalnessOnMaterial = new MeshBasicMaterial({\n color: 'white',\n })\n\n // metalnessOff material\n\n this.metalnessOffMaterial = new MeshBasicMaterial({\n color: 'black',\n })\n\n // blur material\n\n this.blurMaterial = new ShaderMaterial({\n defines: Object.assign({}, SSRBlurShader.defines),\n uniforms: UniformsUtils.clone(SSRBlurShader.uniforms),\n vertexShader: SSRBlurShader.vertexShader,\n fragmentShader: SSRBlurShader.fragmentShader,\n })\n this.blurMaterial.uniforms['tDiffuse'].value = this.ssrRenderTarget.texture\n this.blurMaterial.uniforms['resolution'].value.set(this.width, this.height)\n\n // blur material 2\n\n this.blurMaterial2 = new ShaderMaterial({\n defines: Object.assign({}, SSRBlurShader.defines),\n uniforms: UniformsUtils.clone(SSRBlurShader.uniforms),\n vertexShader: SSRBlurShader.vertexShader,\n fragmentShader: SSRBlurShader.fragmentShader,\n })\n this.blurMaterial2.uniforms['tDiffuse'].value = this.blurRenderTarget.texture\n this.blurMaterial2.uniforms['resolution'].value.set(this.width, this.height)\n\n // // blur material 3\n\n // this.blurMaterial3 = new ShaderMaterial({\n // defines: Object.assign({}, SSRBlurShader.defines),\n // uniforms: UniformsUtils.clone(SSRBlurShader.uniforms),\n // vertexShader: SSRBlurShader.vertexShader,\n // fragmentShader: SSRBlurShader.fragmentShader\n // });\n // this.blurMaterial3.uniforms['tDiffuse'].value = this.blurRenderTarget2.texture;\n // this.blurMaterial3.uniforms['resolution'].value.set(this.width, this.height);\n\n // material for rendering the depth\n\n this.depthRenderMaterial = new ShaderMaterial({\n defines: Object.assign({}, SSRDepthShader.defines),\n uniforms: UniformsUtils.clone(SSRDepthShader.uniforms),\n vertexShader: SSRDepthShader.vertexShader,\n fragmentShader: SSRDepthShader.fragmentShader,\n blending: NoBlending,\n })\n this.depthRenderMaterial.uniforms['tDepth'].value = this.beautyRenderTarget.depthTexture\n this.depthRenderMaterial.uniforms['cameraNear'].value = this.camera.near\n this.depthRenderMaterial.uniforms['cameraFar'].value = this.camera.far\n\n // material for rendering the content of a render target\n\n this.copyMaterial = new ShaderMaterial({\n uniforms: UniformsUtils.clone(CopyShader.uniforms),\n vertexShader: CopyShader.vertexShader,\n fragmentShader: CopyShader.fragmentShader,\n transparent: true,\n depthTest: false,\n depthWrite: false,\n blendSrc: SrcAlphaFactor,\n blendDst: OneMinusSrcAlphaFactor,\n blendEquation: AddEquation,\n blendSrcAlpha: SrcAlphaFactor,\n blendDstAlpha: OneMinusSrcAlphaFactor,\n blendEquationAlpha: AddEquation,\n // premultipliedAlpha:true,\n })\n\n this.fsQuad = new FullScreenQuad(null)\n\n this.originalClearColor = new Color()\n }\n\n dispose() {\n // dispose render targets\n\n this.beautyRenderTarget.dispose()\n this.prevRenderTarget.dispose()\n this.normalRenderTarget.dispose()\n this.metalnessRenderTarget.dispose()\n this.ssrRenderTarget.dispose()\n this.blurRenderTarget.dispose()\n this.blurRenderTarget2.dispose()\n // this.blurRenderTarget3.dispose();\n\n // dispose materials\n\n this.normalMaterial.dispose()\n this.metalnessOnMaterial.dispose()\n this.metalnessOffMaterial.dispose()\n this.blurMaterial.dispose()\n this.blurMaterial2.dispose()\n this.copyMaterial.dispose()\n this.depthRenderMaterial.dispose()\n\n // dipsose full screen quad\n\n this.fsQuad.dispose()\n }\n\n render(renderer, writeBuffer /*, readBuffer, deltaTime, maskActive */) {\n // render beauty and depth\n\n renderer.setRenderTarget(this.beautyRenderTarget)\n renderer.clear()\n if (this.groundReflector) {\n this.groundReflector.visible = false\n this.groundReflector.doRender(this.renderer, this.scene, this.camera)\n this.groundReflector.visible = true\n }\n\n renderer.render(this.scene, this.camera)\n if (this.groundReflector) this.groundReflector.visible = false\n\n // render normals\n\n this.renderOverride(renderer, this.normalMaterial, this.normalRenderTarget, 0, 0)\n\n // render metalnesses\n\n if (this.selective) {\n this.renderMetalness(renderer, this.metalnessOnMaterial, this.metalnessRenderTarget, 0, 0)\n }\n\n // render SSR\n\n this.ssrMaterial.uniforms['opacity'].value = this.opacity\n this.ssrMaterial.uniforms['maxDistance'].value = this.maxDistance\n this.ssrMaterial.uniforms['thickness'].value = this.thickness\n this.renderPass(renderer, this.ssrMaterial, this.ssrRenderTarget)\n\n // render blur\n\n if (this.blur) {\n this.renderPass(renderer, this.blurMaterial, this.blurRenderTarget)\n this.renderPass(renderer, this.blurMaterial2, this.blurRenderTarget2)\n // this.renderPass(renderer, this.blurMaterial3, this.blurRenderTarget3);\n }\n\n // output result to screen\n\n switch (this.output) {\n case SSRPass.OUTPUT.Default:\n if (this.bouncing) {\n this.copyMaterial.uniforms['tDiffuse'].value = this.beautyRenderTarget.texture\n this.copyMaterial.blending = NoBlending\n this.renderPass(renderer, this.copyMaterial, this.prevRenderTarget)\n\n if (this.blur) this.copyMaterial.uniforms['tDiffuse'].value = this.blurRenderTarget2.texture\n else this.copyMaterial.uniforms['tDiffuse'].value = this.ssrRenderTarget.texture\n this.copyMaterial.blending = NormalBlending\n this.renderPass(renderer, this.copyMaterial, this.prevRenderTarget)\n\n this.copyMaterial.uniforms['tDiffuse'].value = this.prevRenderTarget.texture\n this.copyMaterial.blending = NoBlending\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer)\n } else {\n this.copyMaterial.uniforms['tDiffuse'].value = this.beautyRenderTarget.texture\n this.copyMaterial.blending = NoBlending\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer)\n\n if (this.blur) this.copyMaterial.uniforms['tDiffuse'].value = this.blurRenderTarget2.texture\n else this.copyMaterial.uniforms['tDiffuse'].value = this.ssrRenderTarget.texture\n this.copyMaterial.blending = NormalBlending\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer)\n }\n\n break\n case SSRPass.OUTPUT.SSR:\n if (this.blur) this.copyMaterial.uniforms['tDiffuse'].value = this.blurRenderTarget2.texture\n else this.copyMaterial.uniforms['tDiffuse'].value = this.ssrRenderTarget.texture\n this.copyMaterial.blending = NoBlending\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer)\n\n if (this.bouncing) {\n if (this.blur) this.copyMaterial.uniforms['tDiffuse'].value = this.blurRenderTarget2.texture\n else this.copyMaterial.uniforms['tDiffuse'].value = this.beautyRenderTarget.texture\n this.copyMaterial.blending = NoBlending\n this.renderPass(renderer, this.copyMaterial, this.prevRenderTarget)\n\n this.copyMaterial.uniforms['tDiffuse'].value = this.ssrRenderTarget.texture\n this.copyMaterial.blending = NormalBlending\n this.renderPass(renderer, this.copyMaterial, this.prevRenderTarget)\n }\n\n break\n\n case SSRPass.OUTPUT.Beauty:\n this.copyMaterial.uniforms['tDiffuse'].value = this.beautyRenderTarget.texture\n this.copyMaterial.blending = NoBlending\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer)\n\n break\n\n case SSRPass.OUTPUT.Depth:\n this.renderPass(renderer, this.depthRenderMaterial, this.renderToScreen ? null : writeBuffer)\n\n break\n\n case SSRPass.OUTPUT.Normal:\n this.copyMaterial.uniforms['tDiffuse'].value = this.normalRenderTarget.texture\n this.copyMaterial.blending = NoBlending\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer)\n\n break\n\n case SSRPass.OUTPUT.Metalness:\n this.copyMaterial.uniforms['tDiffuse'].value = this.metalnessRenderTarget.texture\n this.copyMaterial.blending = NoBlending\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer)\n\n break\n\n default:\n console.warn('THREE.SSRPass: Unknown output type.')\n }\n }\n\n renderPass(renderer, passMaterial, renderTarget, clearColor, clearAlpha) {\n // save original state\n this.originalClearColor.copy(renderer.getClearColor(this.tempColor))\n const originalClearAlpha = renderer.getClearAlpha(this.tempColor)\n const originalAutoClear = renderer.autoClear\n\n renderer.setRenderTarget(renderTarget)\n\n // setup pass state\n renderer.autoClear = false\n if (clearColor !== undefined && clearColor !== null) {\n renderer.setClearColor(clearColor)\n renderer.setClearAlpha(clearAlpha || 0.0)\n renderer.clear()\n }\n\n this.fsQuad.material = passMaterial\n this.fsQuad.render(renderer)\n\n // restore original state\n renderer.autoClear = originalAutoClear\n renderer.setClearColor(this.originalClearColor)\n renderer.setClearAlpha(originalClearAlpha)\n }\n\n renderOverride(renderer, overrideMaterial, renderTarget, clearColor, clearAlpha) {\n this.originalClearColor.copy(renderer.getClearColor(this.tempColor))\n const originalClearAlpha = renderer.getClearAlpha(this.tempColor)\n const originalAutoClear = renderer.autoClear\n\n renderer.setRenderTarget(renderTarget)\n renderer.autoClear = false\n\n clearColor = overrideMaterial.clearColor || clearColor\n clearAlpha = overrideMaterial.clearAlpha || clearAlpha\n\n if (clearColor !== undefined && clearColor !== null) {\n renderer.setClearColor(clearColor)\n renderer.setClearAlpha(clearAlpha || 0.0)\n renderer.clear()\n }\n\n this.scene.overrideMaterial = overrideMaterial\n renderer.render(this.scene, this.camera)\n this.scene.overrideMaterial = null\n\n // restore original state\n\n renderer.autoClear = originalAutoClear\n renderer.setClearColor(this.originalClearColor)\n renderer.setClearAlpha(originalClearAlpha)\n }\n\n renderMetalness(renderer, overrideMaterial, renderTarget, clearColor, clearAlpha) {\n this.originalClearColor.copy(renderer.getClearColor(this.tempColor))\n const originalClearAlpha = renderer.getClearAlpha(this.tempColor)\n const originalAutoClear = renderer.autoClear\n\n renderer.setRenderTarget(renderTarget)\n renderer.autoClear = false\n\n clearColor = overrideMaterial.clearColor || clearColor\n clearAlpha = overrideMaterial.clearAlpha || clearAlpha\n\n if (clearColor !== undefined && clearColor !== null) {\n renderer.setClearColor(clearColor)\n renderer.setClearAlpha(clearAlpha || 0.0)\n renderer.clear()\n }\n\n this.scene.traverseVisible((child) => {\n child._SSRPassBackupMaterial = child.material\n if (this._selects.includes(child)) {\n child.material = this.metalnessOnMaterial\n } else {\n child.material = this.metalnessOffMaterial\n }\n })\n renderer.render(this.scene, this.camera)\n this.scene.traverseVisible((child) => {\n child.material = child._SSRPassBackupMaterial\n })\n\n // restore original state\n\n renderer.autoClear = originalAutoClear\n renderer.setClearColor(this.originalClearColor)\n renderer.setClearAlpha(originalClearAlpha)\n }\n\n setSize(width, height) {\n this.width = width\n this.height = height\n\n this.ssrMaterial.defines.MAX_STEP = Math.sqrt(width * width + height * height)\n this.ssrMaterial.needsUpdate = true\n this.beautyRenderTarget.setSize(width, height)\n this.prevRenderTarget.setSize(width, height)\n this.ssrRenderTarget.setSize(width, height)\n this.normalRenderTarget.setSize(width, height)\n this.metalnessRenderTarget.setSize(width, height)\n this.blurRenderTarget.setSize(width, height)\n this.blurRenderTarget2.setSize(width, height)\n // this.blurRenderTarget3.setSize(width, height);\n\n this.ssrMaterial.uniforms['resolution'].value.set(width, height)\n this.ssrMaterial.uniforms['cameraProjectionMatrix'].value.copy(this.camera.projectionMatrix)\n this.ssrMaterial.uniforms['cameraInverseProjectionMatrix'].value.copy(this.camera.projectionMatrixInverse)\n\n this.blurMaterial.uniforms['resolution'].value.set(width, height)\n this.blurMaterial2.uniforms['resolution'].value.set(width, height)\n }\n}\n\nexport { SSRPass }\n"],"names":[],"mappings":"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"}
@@ -10,195 +10,194 @@ const THREE = require("three");
10
10
  const Pass = require("./Pass.cjs");
11
11
  const CopyShader = require("../shaders/CopyShader.cjs");
12
12
  const LuminosityHighPassShader = require("../shaders/LuminosityHighPassShader.cjs");
13
- const UnrealBloomPass = /* @__PURE__ */ (() => {
14
- const _UnrealBloomPass = class extends Pass.Pass {
15
- constructor(resolution, strength, radius, threshold) {
16
- super();
17
- this.strength = strength !== void 0 ? strength : 1;
18
- this.radius = radius;
19
- this.threshold = threshold;
20
- this.resolution = resolution !== void 0 ? new THREE.Vector2(resolution.x, resolution.y) : new THREE.Vector2(256, 256);
21
- this.clearColor = new THREE.Color(0, 0, 0);
22
- this.renderTargetsHorizontal = [];
23
- this.renderTargetsVertical = [];
24
- this.nMips = 5;
25
- let resx = Math.round(this.resolution.x / 2);
26
- let resy = Math.round(this.resolution.y / 2);
27
- this.renderTargetBright = new THREE.WebGLRenderTarget(resx, resy, { type: THREE.HalfFloatType });
28
- this.renderTargetBright.texture.name = "UnrealBloomPass.bright";
29
- this.renderTargetBright.texture.generateMipmaps = false;
30
- for (let i = 0; i < this.nMips; i++) {
31
- const renderTargetHorizonal = new THREE.WebGLRenderTarget(resx, resy, { type: THREE.HalfFloatType });
32
- renderTargetHorizonal.texture.name = "UnrealBloomPass.h" + i;
33
- renderTargetHorizonal.texture.generateMipmaps = false;
34
- this.renderTargetsHorizontal.push(renderTargetHorizonal);
35
- const renderTargetVertical = new THREE.WebGLRenderTarget(resx, resy, { type: THREE.HalfFloatType });
36
- renderTargetVertical.texture.name = "UnrealBloomPass.v" + i;
37
- renderTargetVertical.texture.generateMipmaps = false;
38
- this.renderTargetsVertical.push(renderTargetVertical);
39
- resx = Math.round(resx / 2);
40
- resy = Math.round(resy / 2);
41
- }
42
- const highPassShader = LuminosityHighPassShader.LuminosityHighPassShader;
43
- this.highPassUniforms = THREE.UniformsUtils.clone(highPassShader.uniforms);
44
- this.highPassUniforms["luminosityThreshold"].value = threshold;
45
- this.highPassUniforms["smoothWidth"].value = 0.01;
46
- this.materialHighPassFilter = new THREE.ShaderMaterial({
47
- uniforms: this.highPassUniforms,
48
- vertexShader: highPassShader.vertexShader,
49
- fragmentShader: highPassShader.fragmentShader,
50
- defines: {}
51
- });
52
- this.separableBlurMaterials = [];
53
- const kernelSizeArray = [3, 5, 7, 9, 11];
54
- resx = Math.round(this.resolution.x / 2);
55
- resy = Math.round(this.resolution.y / 2);
56
- for (let i = 0; i < this.nMips; i++) {
57
- this.separableBlurMaterials.push(this.getSeperableBlurMaterial(kernelSizeArray[i]));
58
- this.separableBlurMaterials[i].uniforms["texSize"].value = new THREE.Vector2(resx, resy);
59
- resx = Math.round(resx / 2);
60
- resy = Math.round(resy / 2);
61
- }
62
- this.compositeMaterial = this.getCompositeMaterial(this.nMips);
63
- this.compositeMaterial.uniforms["blurTexture1"].value = this.renderTargetsVertical[0].texture;
64
- this.compositeMaterial.uniforms["blurTexture2"].value = this.renderTargetsVertical[1].texture;
65
- this.compositeMaterial.uniforms["blurTexture3"].value = this.renderTargetsVertical[2].texture;
66
- this.compositeMaterial.uniforms["blurTexture4"].value = this.renderTargetsVertical[3].texture;
67
- this.compositeMaterial.uniforms["blurTexture5"].value = this.renderTargetsVertical[4].texture;
68
- this.compositeMaterial.uniforms["bloomStrength"].value = strength;
69
- this.compositeMaterial.uniforms["bloomRadius"].value = 0.1;
70
- this.compositeMaterial.needsUpdate = true;
71
- const bloomFactors = [1, 0.8, 0.6, 0.4, 0.2];
72
- this.compositeMaterial.uniforms["bloomFactors"].value = bloomFactors;
73
- this.bloomTintColors = [
74
- new THREE.Vector3(1, 1, 1),
75
- new THREE.Vector3(1, 1, 1),
76
- new THREE.Vector3(1, 1, 1),
77
- new THREE.Vector3(1, 1, 1),
78
- new THREE.Vector3(1, 1, 1)
79
- ];
80
- this.compositeMaterial.uniforms["bloomTintColors"].value = this.bloomTintColors;
81
- const copyShader = CopyShader.CopyShader;
82
- this.copyUniforms = THREE.UniformsUtils.clone(copyShader.uniforms);
83
- this.copyUniforms["opacity"].value = 1;
84
- this.materialCopy = new THREE.ShaderMaterial({
85
- uniforms: this.copyUniforms,
86
- vertexShader: copyShader.vertexShader,
87
- fragmentShader: copyShader.fragmentShader,
88
- blending: THREE.AdditiveBlending,
89
- depthTest: false,
90
- depthWrite: false,
91
- transparent: true
92
- });
93
- this.enabled = true;
94
- this.needsSwap = false;
95
- this._oldClearColor = new THREE.Color();
96
- this.oldClearAlpha = 1;
97
- this.basic = new THREE.MeshBasicMaterial();
98
- this.fsQuad = new Pass.FullScreenQuad(null);
13
+ const _UnrealBloomPass = class extends Pass.Pass {
14
+ constructor(resolution, strength, radius, threshold) {
15
+ super();
16
+ this.strength = strength !== void 0 ? strength : 1;
17
+ this.radius = radius;
18
+ this.threshold = threshold;
19
+ this.resolution = resolution !== void 0 ? new THREE.Vector2(resolution.x, resolution.y) : new THREE.Vector2(256, 256);
20
+ this.clearColor = new THREE.Color(0, 0, 0);
21
+ this.renderTargetsHorizontal = [];
22
+ this.renderTargetsVertical = [];
23
+ this.nMips = 5;
24
+ let resx = Math.round(this.resolution.x / 2);
25
+ let resy = Math.round(this.resolution.y / 2);
26
+ this.renderTargetBright = new THREE.WebGLRenderTarget(resx, resy, { type: THREE.HalfFloatType });
27
+ this.renderTargetBright.texture.name = "UnrealBloomPass.bright";
28
+ this.renderTargetBright.texture.generateMipmaps = false;
29
+ for (let i = 0; i < this.nMips; i++) {
30
+ const renderTargetHorizonal = new THREE.WebGLRenderTarget(resx, resy, { type: THREE.HalfFloatType });
31
+ renderTargetHorizonal.texture.name = "UnrealBloomPass.h" + i;
32
+ renderTargetHorizonal.texture.generateMipmaps = false;
33
+ this.renderTargetsHorizontal.push(renderTargetHorizonal);
34
+ const renderTargetVertical = new THREE.WebGLRenderTarget(resx, resy, { type: THREE.HalfFloatType });
35
+ renderTargetVertical.texture.name = "UnrealBloomPass.v" + i;
36
+ renderTargetVertical.texture.generateMipmaps = false;
37
+ this.renderTargetsVertical.push(renderTargetVertical);
38
+ resx = Math.round(resx / 2);
39
+ resy = Math.round(resy / 2);
99
40
  }
100
- dispose() {
101
- for (let i = 0; i < this.renderTargetsHorizontal.length; i++) {
102
- this.renderTargetsHorizontal[i].dispose();
103
- }
104
- for (let i = 0; i < this.renderTargetsVertical.length; i++) {
105
- this.renderTargetsVertical[i].dispose();
106
- }
107
- this.renderTargetBright.dispose();
108
- for (let i = 0; i < this.separableBlurMaterials.length; i++) {
109
- this.separableBlurMaterials[i].dispose();
110
- }
111
- this.compositeMaterial.dispose();
112
- this.materialCopy.dispose();
113
- this.basic.dispose();
114
- this.fsQuad.dispose();
41
+ const highPassShader = LuminosityHighPassShader.LuminosityHighPassShader;
42
+ this.highPassUniforms = THREE.UniformsUtils.clone(highPassShader.uniforms);
43
+ this.highPassUniforms["luminosityThreshold"].value = threshold;
44
+ this.highPassUniforms["smoothWidth"].value = 0.01;
45
+ this.materialHighPassFilter = new THREE.ShaderMaterial({
46
+ uniforms: this.highPassUniforms,
47
+ vertexShader: highPassShader.vertexShader,
48
+ fragmentShader: highPassShader.fragmentShader,
49
+ defines: {}
50
+ });
51
+ this.separableBlurMaterials = [];
52
+ const kernelSizeArray = [3, 5, 7, 9, 11];
53
+ resx = Math.round(this.resolution.x / 2);
54
+ resy = Math.round(this.resolution.y / 2);
55
+ for (let i = 0; i < this.nMips; i++) {
56
+ this.separableBlurMaterials.push(this.getSeperableBlurMaterial(kernelSizeArray[i]));
57
+ this.separableBlurMaterials[i].uniforms["texSize"].value = new THREE.Vector2(resx, resy);
58
+ resx = Math.round(resx / 2);
59
+ resy = Math.round(resy / 2);
115
60
  }
116
- setSize(width, height) {
117
- let resx = Math.round(width / 2);
118
- let resy = Math.round(height / 2);
119
- this.renderTargetBright.setSize(resx, resy);
120
- for (let i = 0; i < this.nMips; i++) {
121
- this.renderTargetsHorizontal[i].setSize(resx, resy);
122
- this.renderTargetsVertical[i].setSize(resx, resy);
123
- this.separableBlurMaterials[i].uniforms["texSize"].value = new THREE.Vector2(resx, resy);
124
- resx = Math.round(resx / 2);
125
- resy = Math.round(resy / 2);
126
- }
61
+ this.compositeMaterial = this.getCompositeMaterial(this.nMips);
62
+ this.compositeMaterial.uniforms["blurTexture1"].value = this.renderTargetsVertical[0].texture;
63
+ this.compositeMaterial.uniforms["blurTexture2"].value = this.renderTargetsVertical[1].texture;
64
+ this.compositeMaterial.uniforms["blurTexture3"].value = this.renderTargetsVertical[2].texture;
65
+ this.compositeMaterial.uniforms["blurTexture4"].value = this.renderTargetsVertical[3].texture;
66
+ this.compositeMaterial.uniforms["blurTexture5"].value = this.renderTargetsVertical[4].texture;
67
+ this.compositeMaterial.uniforms["bloomStrength"].value = strength;
68
+ this.compositeMaterial.uniforms["bloomRadius"].value = 0.1;
69
+ this.compositeMaterial.needsUpdate = true;
70
+ const bloomFactors = [1, 0.8, 0.6, 0.4, 0.2];
71
+ this.compositeMaterial.uniforms["bloomFactors"].value = bloomFactors;
72
+ this.bloomTintColors = [
73
+ new THREE.Vector3(1, 1, 1),
74
+ new THREE.Vector3(1, 1, 1),
75
+ new THREE.Vector3(1, 1, 1),
76
+ new THREE.Vector3(1, 1, 1),
77
+ new THREE.Vector3(1, 1, 1)
78
+ ];
79
+ this.compositeMaterial.uniforms["bloomTintColors"].value = this.bloomTintColors;
80
+ const copyShader = CopyShader.CopyShader;
81
+ this.copyUniforms = THREE.UniformsUtils.clone(copyShader.uniforms);
82
+ this.copyUniforms["opacity"].value = 1;
83
+ this.materialCopy = new THREE.ShaderMaterial({
84
+ uniforms: this.copyUniforms,
85
+ vertexShader: copyShader.vertexShader,
86
+ fragmentShader: copyShader.fragmentShader,
87
+ blending: THREE.AdditiveBlending,
88
+ depthTest: false,
89
+ depthWrite: false,
90
+ transparent: true
91
+ });
92
+ this.enabled = true;
93
+ this.needsSwap = false;
94
+ this._oldClearColor = new THREE.Color();
95
+ this.oldClearAlpha = 1;
96
+ this.basic = new THREE.MeshBasicMaterial();
97
+ this.fsQuad = new Pass.FullScreenQuad(null);
98
+ }
99
+ dispose() {
100
+ for (let i = 0; i < this.renderTargetsHorizontal.length; i++) {
101
+ this.renderTargetsHorizontal[i].dispose();
127
102
  }
128
- render(renderer, writeBuffer, readBuffer, deltaTime, maskActive) {
129
- renderer.getClearColor(this._oldClearColor);
130
- this.oldClearAlpha = renderer.getClearAlpha();
131
- const oldAutoClear = renderer.autoClear;
132
- renderer.autoClear = false;
133
- renderer.setClearColor(this.clearColor, 0);
134
- if (maskActive)
135
- renderer.state.buffers.stencil.setTest(false);
136
- if (this.renderToScreen) {
137
- this.fsQuad.material = this.basic;
138
- this.basic.map = readBuffer.texture;
139
- renderer.setRenderTarget(null);
140
- renderer.clear();
141
- this.fsQuad.render(renderer);
142
- }
143
- this.highPassUniforms["tDiffuse"].value = readBuffer.texture;
144
- this.highPassUniforms["luminosityThreshold"].value = this.threshold;
145
- this.fsQuad.material = this.materialHighPassFilter;
146
- renderer.setRenderTarget(this.renderTargetBright);
103
+ for (let i = 0; i < this.renderTargetsVertical.length; i++) {
104
+ this.renderTargetsVertical[i].dispose();
105
+ }
106
+ this.renderTargetBright.dispose();
107
+ for (let i = 0; i < this.separableBlurMaterials.length; i++) {
108
+ this.separableBlurMaterials[i].dispose();
109
+ }
110
+ this.compositeMaterial.dispose();
111
+ this.materialCopy.dispose();
112
+ this.basic.dispose();
113
+ this.fsQuad.dispose();
114
+ }
115
+ setSize(width, height) {
116
+ let resx = Math.round(width / 2);
117
+ let resy = Math.round(height / 2);
118
+ this.renderTargetBright.setSize(resx, resy);
119
+ for (let i = 0; i < this.nMips; i++) {
120
+ this.renderTargetsHorizontal[i].setSize(resx, resy);
121
+ this.renderTargetsVertical[i].setSize(resx, resy);
122
+ this.separableBlurMaterials[i].uniforms["texSize"].value = new THREE.Vector2(resx, resy);
123
+ resx = Math.round(resx / 2);
124
+ resy = Math.round(resy / 2);
125
+ }
126
+ }
127
+ render(renderer, writeBuffer, readBuffer, deltaTime, maskActive) {
128
+ renderer.getClearColor(this._oldClearColor);
129
+ this.oldClearAlpha = renderer.getClearAlpha();
130
+ const oldAutoClear = renderer.autoClear;
131
+ renderer.autoClear = false;
132
+ renderer.setClearColor(this.clearColor, 0);
133
+ if (maskActive)
134
+ renderer.state.buffers.stencil.setTest(false);
135
+ if (this.renderToScreen) {
136
+ this.fsQuad.material = this.basic;
137
+ this.basic.map = readBuffer.texture;
138
+ renderer.setRenderTarget(null);
139
+ renderer.clear();
140
+ this.fsQuad.render(renderer);
141
+ }
142
+ this.highPassUniforms["tDiffuse"].value = readBuffer.texture;
143
+ this.highPassUniforms["luminosityThreshold"].value = this.threshold;
144
+ this.fsQuad.material = this.materialHighPassFilter;
145
+ renderer.setRenderTarget(this.renderTargetBright);
146
+ renderer.clear();
147
+ this.fsQuad.render(renderer);
148
+ let inputRenderTarget = this.renderTargetBright;
149
+ for (let i = 0; i < this.nMips; i++) {
150
+ this.fsQuad.material = this.separableBlurMaterials[i];
151
+ this.separableBlurMaterials[i].uniforms["colorTexture"].value = inputRenderTarget.texture;
152
+ this.separableBlurMaterials[i].uniforms["direction"].value = _UnrealBloomPass.BlurDirectionX;
153
+ renderer.setRenderTarget(this.renderTargetsHorizontal[i]);
147
154
  renderer.clear();
148
155
  this.fsQuad.render(renderer);
149
- let inputRenderTarget = this.renderTargetBright;
150
- for (let i = 0; i < this.nMips; i++) {
151
- this.fsQuad.material = this.separableBlurMaterials[i];
152
- this.separableBlurMaterials[i].uniforms["colorTexture"].value = inputRenderTarget.texture;
153
- this.separableBlurMaterials[i].uniforms["direction"].value = _UnrealBloomPass.BlurDirectionX;
154
- renderer.setRenderTarget(this.renderTargetsHorizontal[i]);
155
- renderer.clear();
156
- this.fsQuad.render(renderer);
157
- this.separableBlurMaterials[i].uniforms["colorTexture"].value = this.renderTargetsHorizontal[i].texture;
158
- this.separableBlurMaterials[i].uniforms["direction"].value = _UnrealBloomPass.BlurDirectionY;
159
- renderer.setRenderTarget(this.renderTargetsVertical[i]);
160
- renderer.clear();
161
- this.fsQuad.render(renderer);
162
- inputRenderTarget = this.renderTargetsVertical[i];
163
- }
164
- this.fsQuad.material = this.compositeMaterial;
165
- this.compositeMaterial.uniforms["bloomStrength"].value = this.strength;
166
- this.compositeMaterial.uniforms["bloomRadius"].value = this.radius;
167
- this.compositeMaterial.uniforms["bloomTintColors"].value = this.bloomTintColors;
168
- renderer.setRenderTarget(this.renderTargetsHorizontal[0]);
156
+ this.separableBlurMaterials[i].uniforms["colorTexture"].value = this.renderTargetsHorizontal[i].texture;
157
+ this.separableBlurMaterials[i].uniforms["direction"].value = _UnrealBloomPass.BlurDirectionY;
158
+ renderer.setRenderTarget(this.renderTargetsVertical[i]);
169
159
  renderer.clear();
170
160
  this.fsQuad.render(renderer);
171
- this.fsQuad.material = this.materialCopy;
172
- this.copyUniforms["tDiffuse"].value = this.renderTargetsHorizontal[0].texture;
173
- if (maskActive)
174
- renderer.state.buffers.stencil.setTest(true);
175
- if (this.renderToScreen) {
176
- renderer.setRenderTarget(null);
177
- this.fsQuad.render(renderer);
178
- } else {
179
- renderer.setRenderTarget(readBuffer);
180
- this.fsQuad.render(renderer);
181
- }
182
- renderer.setClearColor(this._oldClearColor, this.oldClearAlpha);
183
- renderer.autoClear = oldAutoClear;
161
+ inputRenderTarget = this.renderTargetsVertical[i];
184
162
  }
185
- getSeperableBlurMaterial(kernelRadius) {
186
- return new THREE.ShaderMaterial({
187
- defines: {
188
- KERNEL_RADIUS: kernelRadius,
189
- SIGMA: kernelRadius
190
- },
191
- uniforms: {
192
- colorTexture: { value: null },
193
- texSize: { value: new THREE.Vector2(0.5, 0.5) },
194
- direction: { value: new THREE.Vector2(0.5, 0.5) }
195
- },
196
- vertexShader: `varying vec2 vUv;
163
+ this.fsQuad.material = this.compositeMaterial;
164
+ this.compositeMaterial.uniforms["bloomStrength"].value = this.strength;
165
+ this.compositeMaterial.uniforms["bloomRadius"].value = this.radius;
166
+ this.compositeMaterial.uniforms["bloomTintColors"].value = this.bloomTintColors;
167
+ renderer.setRenderTarget(this.renderTargetsHorizontal[0]);
168
+ renderer.clear();
169
+ this.fsQuad.render(renderer);
170
+ this.fsQuad.material = this.materialCopy;
171
+ this.copyUniforms["tDiffuse"].value = this.renderTargetsHorizontal[0].texture;
172
+ if (maskActive)
173
+ renderer.state.buffers.stencil.setTest(true);
174
+ if (this.renderToScreen) {
175
+ renderer.setRenderTarget(null);
176
+ this.fsQuad.render(renderer);
177
+ } else {
178
+ renderer.setRenderTarget(readBuffer);
179
+ this.fsQuad.render(renderer);
180
+ }
181
+ renderer.setClearColor(this._oldClearColor, this.oldClearAlpha);
182
+ renderer.autoClear = oldAutoClear;
183
+ }
184
+ getSeperableBlurMaterial(kernelRadius) {
185
+ return new THREE.ShaderMaterial({
186
+ defines: {
187
+ KERNEL_RADIUS: kernelRadius,
188
+ SIGMA: kernelRadius
189
+ },
190
+ uniforms: {
191
+ colorTexture: { value: null },
192
+ texSize: { value: new THREE.Vector2(0.5, 0.5) },
193
+ direction: { value: new THREE.Vector2(0.5, 0.5) }
194
+ },
195
+ vertexShader: `varying vec2 vUv;
197
196
  void main() {
198
197
  vUv = uv;
199
198
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
200
199
  }`,
201
- fragmentShader: `#include <common>
200
+ fragmentShader: `#include <common>
202
201
  varying vec2 vUv;
203
202
  uniform sampler2D colorTexture;
204
203
  uniform vec2 texSize;
@@ -223,30 +222,30 @@ const UnrealBloomPass = /* @__PURE__ */ (() => {
223
222
  }
224
223
  gl_FragColor = vec4(diffuseSum/weightSum, 1.0);
225
224
  }`
226
- });
227
- }
228
- getCompositeMaterial(nMips) {
229
- return new THREE.ShaderMaterial({
230
- defines: {
231
- NUM_MIPS: nMips
232
- },
233
- uniforms: {
234
- blurTexture1: { value: null },
235
- blurTexture2: { value: null },
236
- blurTexture3: { value: null },
237
- blurTexture4: { value: null },
238
- blurTexture5: { value: null },
239
- bloomStrength: { value: 1 },
240
- bloomFactors: { value: null },
241
- bloomTintColors: { value: null },
242
- bloomRadius: { value: 0 }
243
- },
244
- vertexShader: `varying vec2 vUv;
225
+ });
226
+ }
227
+ getCompositeMaterial(nMips) {
228
+ return new THREE.ShaderMaterial({
229
+ defines: {
230
+ NUM_MIPS: nMips
231
+ },
232
+ uniforms: {
233
+ blurTexture1: { value: null },
234
+ blurTexture2: { value: null },
235
+ blurTexture3: { value: null },
236
+ blurTexture4: { value: null },
237
+ blurTexture5: { value: null },
238
+ bloomStrength: { value: 1 },
239
+ bloomFactors: { value: null },
240
+ bloomTintColors: { value: null },
241
+ bloomRadius: { value: 0 }
242
+ },
243
+ vertexShader: `varying vec2 vUv;
245
244
  void main() {
246
245
  vUv = uv;
247
246
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
248
247
  }`,
249
- fragmentShader: `varying vec2 vUv;
248
+ fragmentShader: `varying vec2 vUv;
250
249
  uniform sampler2D blurTexture1;
251
250
  uniform sampler2D blurTexture2;
252
251
  uniform sampler2D blurTexture3;
@@ -269,13 +268,11 @@ const UnrealBloomPass = /* @__PURE__ */ (() => {
269
268
  lerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) +
270
269
  lerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) );
271
270
  }`
272
- });
273
- }
274
- };
275
- let UnrealBloomPass2 = _UnrealBloomPass;
276
- __publicField(UnrealBloomPass2, "BlurDirectionX", new THREE.Vector2(1, 0));
277
- __publicField(UnrealBloomPass2, "BlurDirectionY", new THREE.Vector2(0, 1));
278
- return UnrealBloomPass2;
279
- })();
271
+ });
272
+ }
273
+ };
274
+ let UnrealBloomPass = _UnrealBloomPass;
275
+ __publicField(UnrealBloomPass, "BlurDirectionX", new THREE.Vector2(1, 0));
276
+ __publicField(UnrealBloomPass, "BlurDirectionY", new THREE.Vector2(0, 1));
280
277
  exports.UnrealBloomPass = UnrealBloomPass;
281
278
  //# sourceMappingURL=UnrealBloomPass.cjs.map