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":"SSAOPass.cjs","sources":["../../src/postprocessing/SSAOPass.js"],"sourcesContent":["import {\n AddEquation,\n Color,\n CustomBlending,\n DataTexture,\n DepthTexture,\n DstAlphaFactor,\n DstColorFactor,\n FloatType,\n MathUtils,\n MeshNormalMaterial,\n NearestFilter,\n NoBlending,\n RedFormat,\n LuminanceFormat,\n DepthStencilFormat,\n UnsignedInt248Type,\n RepeatWrapping,\n ShaderMaterial,\n UniformsUtils,\n Vector3,\n WebGLRenderTarget,\n ZeroFactor,\n} from 'three'\nimport { Pass, FullScreenQuad } from './Pass'\nimport { SimplexNoise } from '../math/SimplexNoise'\nimport { SSAOShader, SSAOBlurShader, SSAODepthShader } from '../shaders/SSAOShader'\n\nimport { CopyShader } from '../shaders/CopyShader'\n\nconst SSAOPass = /* @__PURE__ */ (() => {\n class SSAOPass extends Pass {\n static OUTPUT = {\n Default: 0,\n SSAO: 1,\n Blur: 2,\n Beauty: 3,\n Depth: 4,\n Normal: 5,\n }\n\n constructor(scene, camera, width, height) {\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.camera = camera\n this.scene = scene\n\n this.kernelRadius = 8\n this.kernelSize = 32\n this.kernel = []\n this.noiseTexture = null\n this.output = 0\n\n this.minDistance = 0.005\n this.maxDistance = 0.1\n\n this._visibilityCache = new Map()\n\n //\n\n this.generateSampleKernel()\n this.generateRandomKernelRotations()\n\n // beauty render target\n\n const depthTexture = new DepthTexture()\n depthTexture.format = DepthStencilFormat\n depthTexture.type = UnsignedInt248Type\n\n this.beautyRenderTarget = new WebGLRenderTarget(this.width, this.height)\n\n // normal render target with depth buffer\n\n this.normalRenderTarget = new WebGLRenderTarget(this.width, this.height, {\n minFilter: NearestFilter,\n magFilter: NearestFilter,\n depthTexture: depthTexture,\n })\n\n // ssao render target\n\n this.ssaoRenderTarget = new WebGLRenderTarget(this.width, this.height)\n\n this.blurRenderTarget = this.ssaoRenderTarget.clone()\n\n // ssao material\n\n if (SSAOShader === undefined) {\n console.error('THREE.SSAOPass: The pass relies on SSAOShader.')\n }\n\n this.ssaoMaterial = new ShaderMaterial({\n defines: Object.assign({}, SSAOShader.defines),\n uniforms: UniformsUtils.clone(SSAOShader.uniforms),\n vertexShader: SSAOShader.vertexShader,\n fragmentShader: SSAOShader.fragmentShader,\n blending: NoBlending,\n })\n\n this.ssaoMaterial.uniforms['tDiffuse'].value = this.beautyRenderTarget.texture\n this.ssaoMaterial.uniforms['tNormal'].value = this.normalRenderTarget.texture\n this.ssaoMaterial.uniforms['tDepth'].value = this.normalRenderTarget.depthTexture\n this.ssaoMaterial.uniforms['tNoise'].value = this.noiseTexture\n this.ssaoMaterial.uniforms['kernel'].value = this.kernel\n this.ssaoMaterial.uniforms['cameraNear'].value = this.camera.near\n this.ssaoMaterial.uniforms['cameraFar'].value = this.camera.far\n this.ssaoMaterial.uniforms['resolution'].value.set(this.width, this.height)\n this.ssaoMaterial.uniforms['cameraProjectionMatrix'].value.copy(this.camera.projectionMatrix)\n this.ssaoMaterial.uniforms['cameraInverseProjectionMatrix'].value.copy(this.camera.projectionMatrixInverse)\n\n // normal material\n\n this.normalMaterial = new MeshNormalMaterial()\n this.normalMaterial.blending = NoBlending\n\n // blur material\n\n this.blurMaterial = new ShaderMaterial({\n defines: Object.assign({}, SSAOBlurShader.defines),\n uniforms: UniformsUtils.clone(SSAOBlurShader.uniforms),\n vertexShader: SSAOBlurShader.vertexShader,\n fragmentShader: SSAOBlurShader.fragmentShader,\n })\n this.blurMaterial.uniforms['tDiffuse'].value = this.ssaoRenderTarget.texture\n this.blurMaterial.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({}, SSAODepthShader.defines),\n uniforms: UniformsUtils.clone(SSAODepthShader.uniforms),\n vertexShader: SSAODepthShader.vertexShader,\n fragmentShader: SSAODepthShader.fragmentShader,\n blending: NoBlending,\n })\n this.depthRenderMaterial.uniforms['tDepth'].value = this.normalRenderTarget.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: DstColorFactor,\n blendDst: ZeroFactor,\n blendEquation: AddEquation,\n blendSrcAlpha: DstAlphaFactor,\n blendDstAlpha: ZeroFactor,\n blendEquationAlpha: AddEquation,\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.normalRenderTarget.dispose()\n this.ssaoRenderTarget.dispose()\n this.blurRenderTarget.dispose()\n\n // dispose materials\n\n this.normalMaterial.dispose()\n this.blurMaterial.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 if (renderer.capabilities.isWebGL2 === false) this.noiseTexture.format = LuminanceFormat\n\n // render beauty\n\n renderer.setRenderTarget(this.beautyRenderTarget)\n renderer.clear()\n renderer.render(this.scene, this.camera)\n\n // render normals and depth (honor only meshes, points and lines do not contribute to SSAO)\n\n this.overrideVisibility()\n this.renderOverride(renderer, this.normalMaterial, this.normalRenderTarget, 0x7777ff, 1.0)\n this.restoreVisibility()\n\n // render SSAO\n\n this.ssaoMaterial.uniforms['kernelRadius'].value = this.kernelRadius\n this.ssaoMaterial.uniforms['minDistance'].value = this.minDistance\n this.ssaoMaterial.uniforms['maxDistance'].value = this.maxDistance\n this.renderPass(renderer, this.ssaoMaterial, this.ssaoRenderTarget)\n\n // render blur\n\n this.renderPass(renderer, this.blurMaterial, this.blurRenderTarget)\n\n // output result to screen\n\n switch (this.output) {\n case SSAOPass.OUTPUT.SSAO:\n this.copyMaterial.uniforms['tDiffuse'].value = this.ssaoRenderTarget.texture\n this.copyMaterial.blending = NoBlending\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer)\n\n break\n\n case SSAOPass.OUTPUT.Blur:\n this.copyMaterial.uniforms['tDiffuse'].value = this.blurRenderTarget.texture\n this.copyMaterial.blending = NoBlending\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer)\n\n break\n\n case SSAOPass.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 SSAOPass.OUTPUT.Depth:\n this.renderPass(renderer, this.depthRenderMaterial, this.renderToScreen ? null : writeBuffer)\n\n break\n\n case SSAOPass.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 SSAOPass.OUTPUT.Default:\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 this.copyMaterial.uniforms['tDiffuse'].value = this.blurRenderTarget.texture\n this.copyMaterial.blending = CustomBlending\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer)\n\n break\n\n default:\n console.warn('THREE.SSAOPass: Unknown output type.')\n }\n }\n\n renderPass(renderer, passMaterial, renderTarget, clearColor, clearAlpha) {\n // save original state\n renderer.getClearColor(this.originalClearColor)\n const originalClearAlpha = renderer.getClearAlpha()\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 renderer.getClearColor(this.originalClearColor)\n const originalClearAlpha = renderer.getClearAlpha()\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 setSize(width, height) {\n this.width = width\n this.height = height\n\n this.beautyRenderTarget.setSize(width, height)\n this.ssaoRenderTarget.setSize(width, height)\n this.normalRenderTarget.setSize(width, height)\n this.blurRenderTarget.setSize(width, height)\n\n this.ssaoMaterial.uniforms['resolution'].value.set(width, height)\n this.ssaoMaterial.uniforms['cameraProjectionMatrix'].value.copy(this.camera.projectionMatrix)\n this.ssaoMaterial.uniforms['cameraInverseProjectionMatrix'].value.copy(this.camera.projectionMatrixInverse)\n\n this.blurMaterial.uniforms['resolution'].value.set(width, height)\n }\n\n generateSampleKernel() {\n const kernelSize = this.kernelSize\n const kernel = this.kernel\n\n for (let i = 0; i < kernelSize; i++) {\n const sample = new Vector3()\n sample.x = Math.random() * 2 - 1\n sample.y = Math.random() * 2 - 1\n sample.z = Math.random()\n\n sample.normalize()\n\n let scale = i / kernelSize\n scale = MathUtils.lerp(0.1, 1, scale * scale)\n sample.multiplyScalar(scale)\n\n kernel.push(sample)\n }\n }\n\n generateRandomKernelRotations() {\n const width = 4,\n height = 4\n\n if (SimplexNoise === undefined) {\n console.error('THREE.SSAOPass: The pass relies on SimplexNoise.')\n }\n\n const simplex = new SimplexNoise()\n\n const size = width * height\n const data = new Float32Array(size)\n\n for (let i = 0; i < size; i++) {\n const x = Math.random() * 2 - 1\n const y = Math.random() * 2 - 1\n const z = 0\n\n data[i] = simplex.noise3d(x, y, z)\n }\n\n this.noiseTexture = new DataTexture(data, width, height, RedFormat, FloatType)\n this.noiseTexture.wrapS = RepeatWrapping\n this.noiseTexture.wrapT = RepeatWrapping\n this.noiseTexture.needsUpdate = true\n }\n\n overrideVisibility() {\n const scene = this.scene\n const cache = this._visibilityCache\n\n scene.traverse(function (object) {\n cache.set(object, object.visible)\n\n if (object.isPoints || object.isLine) object.visible = false\n })\n }\n\n restoreVisibility() {\n const scene = this.scene\n const cache = this._visibilityCache\n\n scene.traverse(function (object) {\n const visible = cache.get(object)\n object.visible = visible\n })\n\n cache.clear()\n }\n }\n\n return SSAOPass\n})()\n\nexport { SSAOPass }\n"],"names":["Pass","DepthTexture","DepthStencilFormat","UnsignedInt248Type","WebGLRenderTarget","NearestFilter","SSAOShader","ShaderMaterial","UniformsUtils","NoBlending","MeshNormalMaterial","SSAOBlurShader","SSAODepthShader","CopyShader","DstColorFactor","ZeroFactor","AddEquation","DstAlphaFactor","FullScreenQuad","Color","LuminanceFormat","CustomBlending","Vector3","MathUtils","SimplexNoise","DataTexture","RedFormat","FloatType","RepeatWrapping","SSAOPass"],"mappings":"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"}
1
+ {"version":3,"file":"SSAOPass.cjs","sources":["../../src/postprocessing/SSAOPass.js"],"sourcesContent":["import {\n AddEquation,\n Color,\n CustomBlending,\n DataTexture,\n DepthTexture,\n DstAlphaFactor,\n DstColorFactor,\n FloatType,\n MathUtils,\n MeshNormalMaterial,\n NearestFilter,\n NoBlending,\n RedFormat,\n LuminanceFormat,\n DepthStencilFormat,\n UnsignedInt248Type,\n RepeatWrapping,\n ShaderMaterial,\n UniformsUtils,\n Vector3,\n WebGLRenderTarget,\n ZeroFactor,\n} from 'three'\nimport { Pass, FullScreenQuad } from './Pass'\nimport { SimplexNoise } from '../math/SimplexNoise'\nimport { SSAOShader, SSAOBlurShader, SSAODepthShader } from '../shaders/SSAOShader'\n\nimport { CopyShader } from '../shaders/CopyShader'\n\nclass SSAOPass extends Pass {\n static OUTPUT = {\n Default: 0,\n SSAO: 1,\n Blur: 2,\n Beauty: 3,\n Depth: 4,\n Normal: 5,\n }\n\n constructor(scene, camera, width, height) {\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.camera = camera\n this.scene = scene\n\n this.kernelRadius = 8\n this.kernelSize = 32\n this.kernel = []\n this.noiseTexture = null\n this.output = 0\n\n this.minDistance = 0.005\n this.maxDistance = 0.1\n\n this._visibilityCache = new Map()\n\n //\n\n this.generateSampleKernel()\n this.generateRandomKernelRotations()\n\n // beauty render target\n\n const depthTexture = new DepthTexture()\n depthTexture.format = DepthStencilFormat\n depthTexture.type = UnsignedInt248Type\n\n this.beautyRenderTarget = new WebGLRenderTarget(this.width, this.height)\n\n // normal render target with depth buffer\n\n this.normalRenderTarget = new WebGLRenderTarget(this.width, this.height, {\n minFilter: NearestFilter,\n magFilter: NearestFilter,\n depthTexture: depthTexture,\n })\n\n // ssao render target\n\n this.ssaoRenderTarget = new WebGLRenderTarget(this.width, this.height)\n\n this.blurRenderTarget = this.ssaoRenderTarget.clone()\n\n // ssao material\n\n if (SSAOShader === undefined) {\n console.error('THREE.SSAOPass: The pass relies on SSAOShader.')\n }\n\n this.ssaoMaterial = new ShaderMaterial({\n defines: Object.assign({}, SSAOShader.defines),\n uniforms: UniformsUtils.clone(SSAOShader.uniforms),\n vertexShader: SSAOShader.vertexShader,\n fragmentShader: SSAOShader.fragmentShader,\n blending: NoBlending,\n })\n\n this.ssaoMaterial.uniforms['tDiffuse'].value = this.beautyRenderTarget.texture\n this.ssaoMaterial.uniforms['tNormal'].value = this.normalRenderTarget.texture\n this.ssaoMaterial.uniforms['tDepth'].value = this.normalRenderTarget.depthTexture\n this.ssaoMaterial.uniforms['tNoise'].value = this.noiseTexture\n this.ssaoMaterial.uniforms['kernel'].value = this.kernel\n this.ssaoMaterial.uniforms['cameraNear'].value = this.camera.near\n this.ssaoMaterial.uniforms['cameraFar'].value = this.camera.far\n this.ssaoMaterial.uniforms['resolution'].value.set(this.width, this.height)\n this.ssaoMaterial.uniforms['cameraProjectionMatrix'].value.copy(this.camera.projectionMatrix)\n this.ssaoMaterial.uniforms['cameraInverseProjectionMatrix'].value.copy(this.camera.projectionMatrixInverse)\n\n // normal material\n\n this.normalMaterial = new MeshNormalMaterial()\n this.normalMaterial.blending = NoBlending\n\n // blur material\n\n this.blurMaterial = new ShaderMaterial({\n defines: Object.assign({}, SSAOBlurShader.defines),\n uniforms: UniformsUtils.clone(SSAOBlurShader.uniforms),\n vertexShader: SSAOBlurShader.vertexShader,\n fragmentShader: SSAOBlurShader.fragmentShader,\n })\n this.blurMaterial.uniforms['tDiffuse'].value = this.ssaoRenderTarget.texture\n this.blurMaterial.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({}, SSAODepthShader.defines),\n uniforms: UniformsUtils.clone(SSAODepthShader.uniforms),\n vertexShader: SSAODepthShader.vertexShader,\n fragmentShader: SSAODepthShader.fragmentShader,\n blending: NoBlending,\n })\n this.depthRenderMaterial.uniforms['tDepth'].value = this.normalRenderTarget.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: DstColorFactor,\n blendDst: ZeroFactor,\n blendEquation: AddEquation,\n blendSrcAlpha: DstAlphaFactor,\n blendDstAlpha: ZeroFactor,\n blendEquationAlpha: AddEquation,\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.normalRenderTarget.dispose()\n this.ssaoRenderTarget.dispose()\n this.blurRenderTarget.dispose()\n\n // dispose materials\n\n this.normalMaterial.dispose()\n this.blurMaterial.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 if (renderer.capabilities.isWebGL2 === false) this.noiseTexture.format = LuminanceFormat\n\n // render beauty\n\n renderer.setRenderTarget(this.beautyRenderTarget)\n renderer.clear()\n renderer.render(this.scene, this.camera)\n\n // render normals and depth (honor only meshes, points and lines do not contribute to SSAO)\n\n this.overrideVisibility()\n this.renderOverride(renderer, this.normalMaterial, this.normalRenderTarget, 0x7777ff, 1.0)\n this.restoreVisibility()\n\n // render SSAO\n\n this.ssaoMaterial.uniforms['kernelRadius'].value = this.kernelRadius\n this.ssaoMaterial.uniforms['minDistance'].value = this.minDistance\n this.ssaoMaterial.uniforms['maxDistance'].value = this.maxDistance\n this.renderPass(renderer, this.ssaoMaterial, this.ssaoRenderTarget)\n\n // render blur\n\n this.renderPass(renderer, this.blurMaterial, this.blurRenderTarget)\n\n // output result to screen\n\n switch (this.output) {\n case SSAOPass.OUTPUT.SSAO:\n this.copyMaterial.uniforms['tDiffuse'].value = this.ssaoRenderTarget.texture\n this.copyMaterial.blending = NoBlending\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer)\n\n break\n\n case SSAOPass.OUTPUT.Blur:\n this.copyMaterial.uniforms['tDiffuse'].value = this.blurRenderTarget.texture\n this.copyMaterial.blending = NoBlending\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer)\n\n break\n\n case SSAOPass.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 SSAOPass.OUTPUT.Depth:\n this.renderPass(renderer, this.depthRenderMaterial, this.renderToScreen ? null : writeBuffer)\n\n break\n\n case SSAOPass.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 SSAOPass.OUTPUT.Default:\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 this.copyMaterial.uniforms['tDiffuse'].value = this.blurRenderTarget.texture\n this.copyMaterial.blending = CustomBlending\n this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer)\n\n break\n\n default:\n console.warn('THREE.SSAOPass: Unknown output type.')\n }\n }\n\n renderPass(renderer, passMaterial, renderTarget, clearColor, clearAlpha) {\n // save original state\n renderer.getClearColor(this.originalClearColor)\n const originalClearAlpha = renderer.getClearAlpha()\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 renderer.getClearColor(this.originalClearColor)\n const originalClearAlpha = renderer.getClearAlpha()\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 setSize(width, height) {\n this.width = width\n this.height = height\n\n this.beautyRenderTarget.setSize(width, height)\n this.ssaoRenderTarget.setSize(width, height)\n this.normalRenderTarget.setSize(width, height)\n this.blurRenderTarget.setSize(width, height)\n\n this.ssaoMaterial.uniforms['resolution'].value.set(width, height)\n this.ssaoMaterial.uniforms['cameraProjectionMatrix'].value.copy(this.camera.projectionMatrix)\n this.ssaoMaterial.uniforms['cameraInverseProjectionMatrix'].value.copy(this.camera.projectionMatrixInverse)\n\n this.blurMaterial.uniforms['resolution'].value.set(width, height)\n }\n\n generateSampleKernel() {\n const kernelSize = this.kernelSize\n const kernel = this.kernel\n\n for (let i = 0; i < kernelSize; i++) {\n const sample = new Vector3()\n sample.x = Math.random() * 2 - 1\n sample.y = Math.random() * 2 - 1\n sample.z = Math.random()\n\n sample.normalize()\n\n let scale = i / kernelSize\n scale = MathUtils.lerp(0.1, 1, scale * scale)\n sample.multiplyScalar(scale)\n\n kernel.push(sample)\n }\n }\n\n generateRandomKernelRotations() {\n const width = 4,\n height = 4\n\n if (SimplexNoise === undefined) {\n console.error('THREE.SSAOPass: The pass relies on SimplexNoise.')\n }\n\n const simplex = new SimplexNoise()\n\n const size = width * height\n const data = new Float32Array(size)\n\n for (let i = 0; i < size; i++) {\n const x = Math.random() * 2 - 1\n const y = Math.random() * 2 - 1\n const z = 0\n\n data[i] = simplex.noise3d(x, y, z)\n }\n\n this.noiseTexture = new DataTexture(data, width, height, RedFormat, FloatType)\n this.noiseTexture.wrapS = RepeatWrapping\n this.noiseTexture.wrapT = RepeatWrapping\n this.noiseTexture.needsUpdate = true\n }\n\n overrideVisibility() {\n const scene = this.scene\n const cache = this._visibilityCache\n\n scene.traverse(function (object) {\n cache.set(object, object.visible)\n\n if (object.isPoints || object.isLine) object.visible = false\n })\n }\n\n restoreVisibility() {\n const scene = this.scene\n const cache = this._visibilityCache\n\n scene.traverse(function (object) {\n const visible = cache.get(object)\n object.visible = visible\n })\n\n cache.clear()\n }\n}\n\nexport { SSAOPass }\n"],"names":["Pass","DepthTexture","DepthStencilFormat","UnsignedInt248Type","WebGLRenderTarget","NearestFilter","SSAOShader","ShaderMaterial","UniformsUtils","NoBlending","MeshNormalMaterial","SSAOBlurShader","SSAODepthShader","CopyShader","DstColorFactor","ZeroFactor","AddEquation","DstAlphaFactor","FullScreenQuad","Color","LuminanceFormat","CustomBlending","Vector3","MathUtils","SimplexNoise","DataTexture","RedFormat","FloatType","RepeatWrapping"],"mappings":"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"}
@@ -9,267 +9,264 @@ import { Pass, FullScreenQuad } from "./Pass.js";
9
9
  import { SimplexNoise } from "../math/SimplexNoise.js";
10
10
  import { SSAOShader, SSAOBlurShader, SSAODepthShader } from "../shaders/SSAOShader.js";
11
11
  import { CopyShader } from "../shaders/CopyShader.js";
12
- const SSAOPass = /* @__PURE__ */ (() => {
13
- const _SSAOPass = class extends Pass {
14
- constructor(scene, camera, width, height) {
15
- super();
16
- this.width = width !== void 0 ? width : 512;
17
- this.height = height !== void 0 ? height : 512;
18
- this.clear = true;
19
- this.camera = camera;
20
- this.scene = scene;
21
- this.kernelRadius = 8;
22
- this.kernelSize = 32;
23
- this.kernel = [];
24
- this.noiseTexture = null;
25
- this.output = 0;
26
- this.minDistance = 5e-3;
27
- this.maxDistance = 0.1;
28
- this._visibilityCache = /* @__PURE__ */ new Map();
29
- this.generateSampleKernel();
30
- this.generateRandomKernelRotations();
31
- const depthTexture = new DepthTexture();
32
- depthTexture.format = DepthStencilFormat;
33
- depthTexture.type = UnsignedInt248Type;
34
- this.beautyRenderTarget = new WebGLRenderTarget(this.width, this.height);
35
- this.normalRenderTarget = new WebGLRenderTarget(this.width, this.height, {
36
- minFilter: NearestFilter,
37
- magFilter: NearestFilter,
38
- depthTexture
39
- });
40
- this.ssaoRenderTarget = new WebGLRenderTarget(this.width, this.height);
41
- this.blurRenderTarget = this.ssaoRenderTarget.clone();
42
- if (SSAOShader === void 0) {
43
- console.error("THREE.SSAOPass: The pass relies on SSAOShader.");
44
- }
45
- this.ssaoMaterial = new ShaderMaterial({
46
- defines: Object.assign({}, SSAOShader.defines),
47
- uniforms: UniformsUtils.clone(SSAOShader.uniforms),
48
- vertexShader: SSAOShader.vertexShader,
49
- fragmentShader: SSAOShader.fragmentShader,
50
- blending: NoBlending
51
- });
52
- this.ssaoMaterial.uniforms["tDiffuse"].value = this.beautyRenderTarget.texture;
53
- this.ssaoMaterial.uniforms["tNormal"].value = this.normalRenderTarget.texture;
54
- this.ssaoMaterial.uniforms["tDepth"].value = this.normalRenderTarget.depthTexture;
55
- this.ssaoMaterial.uniforms["tNoise"].value = this.noiseTexture;
56
- this.ssaoMaterial.uniforms["kernel"].value = this.kernel;
57
- this.ssaoMaterial.uniforms["cameraNear"].value = this.camera.near;
58
- this.ssaoMaterial.uniforms["cameraFar"].value = this.camera.far;
59
- this.ssaoMaterial.uniforms["resolution"].value.set(this.width, this.height);
60
- this.ssaoMaterial.uniforms["cameraProjectionMatrix"].value.copy(this.camera.projectionMatrix);
61
- this.ssaoMaterial.uniforms["cameraInverseProjectionMatrix"].value.copy(this.camera.projectionMatrixInverse);
62
- this.normalMaterial = new MeshNormalMaterial();
63
- this.normalMaterial.blending = NoBlending;
64
- this.blurMaterial = new ShaderMaterial({
65
- defines: Object.assign({}, SSAOBlurShader.defines),
66
- uniforms: UniformsUtils.clone(SSAOBlurShader.uniforms),
67
- vertexShader: SSAOBlurShader.vertexShader,
68
- fragmentShader: SSAOBlurShader.fragmentShader
69
- });
70
- this.blurMaterial.uniforms["tDiffuse"].value = this.ssaoRenderTarget.texture;
71
- this.blurMaterial.uniforms["resolution"].value.set(this.width, this.height);
72
- this.depthRenderMaterial = new ShaderMaterial({
73
- defines: Object.assign({}, SSAODepthShader.defines),
74
- uniforms: UniformsUtils.clone(SSAODepthShader.uniforms),
75
- vertexShader: SSAODepthShader.vertexShader,
76
- fragmentShader: SSAODepthShader.fragmentShader,
77
- blending: NoBlending
78
- });
79
- this.depthRenderMaterial.uniforms["tDepth"].value = this.normalRenderTarget.depthTexture;
80
- this.depthRenderMaterial.uniforms["cameraNear"].value = this.camera.near;
81
- this.depthRenderMaterial.uniforms["cameraFar"].value = this.camera.far;
82
- this.copyMaterial = new ShaderMaterial({
83
- uniforms: UniformsUtils.clone(CopyShader.uniforms),
84
- vertexShader: CopyShader.vertexShader,
85
- fragmentShader: CopyShader.fragmentShader,
86
- transparent: true,
87
- depthTest: false,
88
- depthWrite: false,
89
- blendSrc: DstColorFactor,
90
- blendDst: ZeroFactor,
91
- blendEquation: AddEquation,
92
- blendSrcAlpha: DstAlphaFactor,
93
- blendDstAlpha: ZeroFactor,
94
- blendEquationAlpha: AddEquation
95
- });
96
- this.fsQuad = new FullScreenQuad(null);
97
- this.originalClearColor = new Color();
12
+ const _SSAOPass = class extends Pass {
13
+ constructor(scene, camera, width, height) {
14
+ super();
15
+ this.width = width !== void 0 ? width : 512;
16
+ this.height = height !== void 0 ? height : 512;
17
+ this.clear = true;
18
+ this.camera = camera;
19
+ this.scene = scene;
20
+ this.kernelRadius = 8;
21
+ this.kernelSize = 32;
22
+ this.kernel = [];
23
+ this.noiseTexture = null;
24
+ this.output = 0;
25
+ this.minDistance = 5e-3;
26
+ this.maxDistance = 0.1;
27
+ this._visibilityCache = /* @__PURE__ */ new Map();
28
+ this.generateSampleKernel();
29
+ this.generateRandomKernelRotations();
30
+ const depthTexture = new DepthTexture();
31
+ depthTexture.format = DepthStencilFormat;
32
+ depthTexture.type = UnsignedInt248Type;
33
+ this.beautyRenderTarget = new WebGLRenderTarget(this.width, this.height);
34
+ this.normalRenderTarget = new WebGLRenderTarget(this.width, this.height, {
35
+ minFilter: NearestFilter,
36
+ magFilter: NearestFilter,
37
+ depthTexture
38
+ });
39
+ this.ssaoRenderTarget = new WebGLRenderTarget(this.width, this.height);
40
+ this.blurRenderTarget = this.ssaoRenderTarget.clone();
41
+ if (SSAOShader === void 0) {
42
+ console.error("THREE.SSAOPass: The pass relies on SSAOShader.");
98
43
  }
99
- dispose() {
100
- this.beautyRenderTarget.dispose();
101
- this.normalRenderTarget.dispose();
102
- this.ssaoRenderTarget.dispose();
103
- this.blurRenderTarget.dispose();
104
- this.normalMaterial.dispose();
105
- this.blurMaterial.dispose();
106
- this.copyMaterial.dispose();
107
- this.depthRenderMaterial.dispose();
108
- this.fsQuad.dispose();
44
+ this.ssaoMaterial = new ShaderMaterial({
45
+ defines: Object.assign({}, SSAOShader.defines),
46
+ uniforms: UniformsUtils.clone(SSAOShader.uniforms),
47
+ vertexShader: SSAOShader.vertexShader,
48
+ fragmentShader: SSAOShader.fragmentShader,
49
+ blending: NoBlending
50
+ });
51
+ this.ssaoMaterial.uniforms["tDiffuse"].value = this.beautyRenderTarget.texture;
52
+ this.ssaoMaterial.uniforms["tNormal"].value = this.normalRenderTarget.texture;
53
+ this.ssaoMaterial.uniforms["tDepth"].value = this.normalRenderTarget.depthTexture;
54
+ this.ssaoMaterial.uniforms["tNoise"].value = this.noiseTexture;
55
+ this.ssaoMaterial.uniforms["kernel"].value = this.kernel;
56
+ this.ssaoMaterial.uniforms["cameraNear"].value = this.camera.near;
57
+ this.ssaoMaterial.uniforms["cameraFar"].value = this.camera.far;
58
+ this.ssaoMaterial.uniforms["resolution"].value.set(this.width, this.height);
59
+ this.ssaoMaterial.uniforms["cameraProjectionMatrix"].value.copy(this.camera.projectionMatrix);
60
+ this.ssaoMaterial.uniforms["cameraInverseProjectionMatrix"].value.copy(this.camera.projectionMatrixInverse);
61
+ this.normalMaterial = new MeshNormalMaterial();
62
+ this.normalMaterial.blending = NoBlending;
63
+ this.blurMaterial = new ShaderMaterial({
64
+ defines: Object.assign({}, SSAOBlurShader.defines),
65
+ uniforms: UniformsUtils.clone(SSAOBlurShader.uniforms),
66
+ vertexShader: SSAOBlurShader.vertexShader,
67
+ fragmentShader: SSAOBlurShader.fragmentShader
68
+ });
69
+ this.blurMaterial.uniforms["tDiffuse"].value = this.ssaoRenderTarget.texture;
70
+ this.blurMaterial.uniforms["resolution"].value.set(this.width, this.height);
71
+ this.depthRenderMaterial = new ShaderMaterial({
72
+ defines: Object.assign({}, SSAODepthShader.defines),
73
+ uniforms: UniformsUtils.clone(SSAODepthShader.uniforms),
74
+ vertexShader: SSAODepthShader.vertexShader,
75
+ fragmentShader: SSAODepthShader.fragmentShader,
76
+ blending: NoBlending
77
+ });
78
+ this.depthRenderMaterial.uniforms["tDepth"].value = this.normalRenderTarget.depthTexture;
79
+ this.depthRenderMaterial.uniforms["cameraNear"].value = this.camera.near;
80
+ this.depthRenderMaterial.uniforms["cameraFar"].value = this.camera.far;
81
+ this.copyMaterial = new ShaderMaterial({
82
+ uniforms: UniformsUtils.clone(CopyShader.uniforms),
83
+ vertexShader: CopyShader.vertexShader,
84
+ fragmentShader: CopyShader.fragmentShader,
85
+ transparent: true,
86
+ depthTest: false,
87
+ depthWrite: false,
88
+ blendSrc: DstColorFactor,
89
+ blendDst: ZeroFactor,
90
+ blendEquation: AddEquation,
91
+ blendSrcAlpha: DstAlphaFactor,
92
+ blendDstAlpha: ZeroFactor,
93
+ blendEquationAlpha: AddEquation
94
+ });
95
+ this.fsQuad = new FullScreenQuad(null);
96
+ this.originalClearColor = new Color();
97
+ }
98
+ dispose() {
99
+ this.beautyRenderTarget.dispose();
100
+ this.normalRenderTarget.dispose();
101
+ this.ssaoRenderTarget.dispose();
102
+ this.blurRenderTarget.dispose();
103
+ this.normalMaterial.dispose();
104
+ this.blurMaterial.dispose();
105
+ this.copyMaterial.dispose();
106
+ this.depthRenderMaterial.dispose();
107
+ this.fsQuad.dispose();
108
+ }
109
+ render(renderer, writeBuffer) {
110
+ if (renderer.capabilities.isWebGL2 === false)
111
+ this.noiseTexture.format = LuminanceFormat;
112
+ renderer.setRenderTarget(this.beautyRenderTarget);
113
+ renderer.clear();
114
+ renderer.render(this.scene, this.camera);
115
+ this.overrideVisibility();
116
+ this.renderOverride(renderer, this.normalMaterial, this.normalRenderTarget, 7829503, 1);
117
+ this.restoreVisibility();
118
+ this.ssaoMaterial.uniforms["kernelRadius"].value = this.kernelRadius;
119
+ this.ssaoMaterial.uniforms["minDistance"].value = this.minDistance;
120
+ this.ssaoMaterial.uniforms["maxDistance"].value = this.maxDistance;
121
+ this.renderPass(renderer, this.ssaoMaterial, this.ssaoRenderTarget);
122
+ this.renderPass(renderer, this.blurMaterial, this.blurRenderTarget);
123
+ switch (this.output) {
124
+ case _SSAOPass.OUTPUT.SSAO:
125
+ this.copyMaterial.uniforms["tDiffuse"].value = this.ssaoRenderTarget.texture;
126
+ this.copyMaterial.blending = NoBlending;
127
+ this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer);
128
+ break;
129
+ case _SSAOPass.OUTPUT.Blur:
130
+ this.copyMaterial.uniforms["tDiffuse"].value = this.blurRenderTarget.texture;
131
+ this.copyMaterial.blending = NoBlending;
132
+ this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer);
133
+ break;
134
+ case _SSAOPass.OUTPUT.Beauty:
135
+ this.copyMaterial.uniforms["tDiffuse"].value = this.beautyRenderTarget.texture;
136
+ this.copyMaterial.blending = NoBlending;
137
+ this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer);
138
+ break;
139
+ case _SSAOPass.OUTPUT.Depth:
140
+ this.renderPass(renderer, this.depthRenderMaterial, this.renderToScreen ? null : writeBuffer);
141
+ break;
142
+ case _SSAOPass.OUTPUT.Normal:
143
+ this.copyMaterial.uniforms["tDiffuse"].value = this.normalRenderTarget.texture;
144
+ this.copyMaterial.blending = NoBlending;
145
+ this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer);
146
+ break;
147
+ case _SSAOPass.OUTPUT.Default:
148
+ this.copyMaterial.uniforms["tDiffuse"].value = this.beautyRenderTarget.texture;
149
+ this.copyMaterial.blending = NoBlending;
150
+ this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer);
151
+ this.copyMaterial.uniforms["tDiffuse"].value = this.blurRenderTarget.texture;
152
+ this.copyMaterial.blending = CustomBlending;
153
+ this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer);
154
+ break;
155
+ default:
156
+ console.warn("THREE.SSAOPass: Unknown output type.");
109
157
  }
110
- render(renderer, writeBuffer) {
111
- if (renderer.capabilities.isWebGL2 === false)
112
- this.noiseTexture.format = LuminanceFormat;
113
- renderer.setRenderTarget(this.beautyRenderTarget);
158
+ }
159
+ renderPass(renderer, passMaterial, renderTarget, clearColor, clearAlpha) {
160
+ renderer.getClearColor(this.originalClearColor);
161
+ const originalClearAlpha = renderer.getClearAlpha();
162
+ const originalAutoClear = renderer.autoClear;
163
+ renderer.setRenderTarget(renderTarget);
164
+ renderer.autoClear = false;
165
+ if (clearColor !== void 0 && clearColor !== null) {
166
+ renderer.setClearColor(clearColor);
167
+ renderer.setClearAlpha(clearAlpha || 0);
114
168
  renderer.clear();
115
- renderer.render(this.scene, this.camera);
116
- this.overrideVisibility();
117
- this.renderOverride(renderer, this.normalMaterial, this.normalRenderTarget, 7829503, 1);
118
- this.restoreVisibility();
119
- this.ssaoMaterial.uniforms["kernelRadius"].value = this.kernelRadius;
120
- this.ssaoMaterial.uniforms["minDistance"].value = this.minDistance;
121
- this.ssaoMaterial.uniforms["maxDistance"].value = this.maxDistance;
122
- this.renderPass(renderer, this.ssaoMaterial, this.ssaoRenderTarget);
123
- this.renderPass(renderer, this.blurMaterial, this.blurRenderTarget);
124
- switch (this.output) {
125
- case _SSAOPass.OUTPUT.SSAO:
126
- this.copyMaterial.uniforms["tDiffuse"].value = this.ssaoRenderTarget.texture;
127
- this.copyMaterial.blending = NoBlending;
128
- this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer);
129
- break;
130
- case _SSAOPass.OUTPUT.Blur:
131
- this.copyMaterial.uniforms["tDiffuse"].value = this.blurRenderTarget.texture;
132
- this.copyMaterial.blending = NoBlending;
133
- this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer);
134
- break;
135
- case _SSAOPass.OUTPUT.Beauty:
136
- this.copyMaterial.uniforms["tDiffuse"].value = this.beautyRenderTarget.texture;
137
- this.copyMaterial.blending = NoBlending;
138
- this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer);
139
- break;
140
- case _SSAOPass.OUTPUT.Depth:
141
- this.renderPass(renderer, this.depthRenderMaterial, this.renderToScreen ? null : writeBuffer);
142
- break;
143
- case _SSAOPass.OUTPUT.Normal:
144
- this.copyMaterial.uniforms["tDiffuse"].value = this.normalRenderTarget.texture;
145
- this.copyMaterial.blending = NoBlending;
146
- this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer);
147
- break;
148
- case _SSAOPass.OUTPUT.Default:
149
- this.copyMaterial.uniforms["tDiffuse"].value = this.beautyRenderTarget.texture;
150
- this.copyMaterial.blending = NoBlending;
151
- this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer);
152
- this.copyMaterial.uniforms["tDiffuse"].value = this.blurRenderTarget.texture;
153
- this.copyMaterial.blending = CustomBlending;
154
- this.renderPass(renderer, this.copyMaterial, this.renderToScreen ? null : writeBuffer);
155
- break;
156
- default:
157
- console.warn("THREE.SSAOPass: Unknown output type.");
158
- }
159
169
  }
160
- renderPass(renderer, passMaterial, renderTarget, clearColor, clearAlpha) {
161
- renderer.getClearColor(this.originalClearColor);
162
- const originalClearAlpha = renderer.getClearAlpha();
163
- const originalAutoClear = renderer.autoClear;
164
- renderer.setRenderTarget(renderTarget);
165
- renderer.autoClear = false;
166
- if (clearColor !== void 0 && clearColor !== null) {
167
- renderer.setClearColor(clearColor);
168
- renderer.setClearAlpha(clearAlpha || 0);
169
- renderer.clear();
170
- }
171
- this.fsQuad.material = passMaterial;
172
- this.fsQuad.render(renderer);
173
- renderer.autoClear = originalAutoClear;
174
- renderer.setClearColor(this.originalClearColor);
175
- renderer.setClearAlpha(originalClearAlpha);
176
- }
177
- renderOverride(renderer, overrideMaterial, renderTarget, clearColor, clearAlpha) {
178
- renderer.getClearColor(this.originalClearColor);
179
- const originalClearAlpha = renderer.getClearAlpha();
180
- const originalAutoClear = renderer.autoClear;
181
- renderer.setRenderTarget(renderTarget);
182
- renderer.autoClear = false;
183
- clearColor = overrideMaterial.clearColor || clearColor;
184
- clearAlpha = overrideMaterial.clearAlpha || clearAlpha;
185
- if (clearColor !== void 0 && clearColor !== null) {
186
- renderer.setClearColor(clearColor);
187
- renderer.setClearAlpha(clearAlpha || 0);
188
- renderer.clear();
189
- }
190
- this.scene.overrideMaterial = overrideMaterial;
191
- renderer.render(this.scene, this.camera);
192
- this.scene.overrideMaterial = null;
193
- renderer.autoClear = originalAutoClear;
194
- renderer.setClearColor(this.originalClearColor);
195
- renderer.setClearAlpha(originalClearAlpha);
196
- }
197
- setSize(width, height) {
198
- this.width = width;
199
- this.height = height;
200
- this.beautyRenderTarget.setSize(width, height);
201
- this.ssaoRenderTarget.setSize(width, height);
202
- this.normalRenderTarget.setSize(width, height);
203
- this.blurRenderTarget.setSize(width, height);
204
- this.ssaoMaterial.uniforms["resolution"].value.set(width, height);
205
- this.ssaoMaterial.uniforms["cameraProjectionMatrix"].value.copy(this.camera.projectionMatrix);
206
- this.ssaoMaterial.uniforms["cameraInverseProjectionMatrix"].value.copy(this.camera.projectionMatrixInverse);
207
- this.blurMaterial.uniforms["resolution"].value.set(width, height);
208
- }
209
- generateSampleKernel() {
210
- const kernelSize = this.kernelSize;
211
- const kernel = this.kernel;
212
- for (let i = 0; i < kernelSize; i++) {
213
- const sample = new Vector3();
214
- sample.x = Math.random() * 2 - 1;
215
- sample.y = Math.random() * 2 - 1;
216
- sample.z = Math.random();
217
- sample.normalize();
218
- let scale = i / kernelSize;
219
- scale = MathUtils.lerp(0.1, 1, scale * scale);
220
- sample.multiplyScalar(scale);
221
- kernel.push(sample);
222
- }
170
+ this.fsQuad.material = passMaterial;
171
+ this.fsQuad.render(renderer);
172
+ renderer.autoClear = originalAutoClear;
173
+ renderer.setClearColor(this.originalClearColor);
174
+ renderer.setClearAlpha(originalClearAlpha);
175
+ }
176
+ renderOverride(renderer, overrideMaterial, renderTarget, clearColor, clearAlpha) {
177
+ renderer.getClearColor(this.originalClearColor);
178
+ const originalClearAlpha = renderer.getClearAlpha();
179
+ const originalAutoClear = renderer.autoClear;
180
+ renderer.setRenderTarget(renderTarget);
181
+ renderer.autoClear = false;
182
+ clearColor = overrideMaterial.clearColor || clearColor;
183
+ clearAlpha = overrideMaterial.clearAlpha || clearAlpha;
184
+ if (clearColor !== void 0 && clearColor !== null) {
185
+ renderer.setClearColor(clearColor);
186
+ renderer.setClearAlpha(clearAlpha || 0);
187
+ renderer.clear();
223
188
  }
224
- generateRandomKernelRotations() {
225
- const width = 4, height = 4;
226
- if (SimplexNoise === void 0) {
227
- console.error("THREE.SSAOPass: The pass relies on SimplexNoise.");
228
- }
229
- const simplex = new SimplexNoise();
230
- const size = width * height;
231
- const data = new Float32Array(size);
232
- for (let i = 0; i < size; i++) {
233
- const x = Math.random() * 2 - 1;
234
- const y = Math.random() * 2 - 1;
235
- const z = 0;
236
- data[i] = simplex.noise3d(x, y, z);
237
- }
238
- this.noiseTexture = new DataTexture(data, width, height, RedFormat, FloatType);
239
- this.noiseTexture.wrapS = RepeatWrapping;
240
- this.noiseTexture.wrapT = RepeatWrapping;
241
- this.noiseTexture.needsUpdate = true;
189
+ this.scene.overrideMaterial = overrideMaterial;
190
+ renderer.render(this.scene, this.camera);
191
+ this.scene.overrideMaterial = null;
192
+ renderer.autoClear = originalAutoClear;
193
+ renderer.setClearColor(this.originalClearColor);
194
+ renderer.setClearAlpha(originalClearAlpha);
195
+ }
196
+ setSize(width, height) {
197
+ this.width = width;
198
+ this.height = height;
199
+ this.beautyRenderTarget.setSize(width, height);
200
+ this.ssaoRenderTarget.setSize(width, height);
201
+ this.normalRenderTarget.setSize(width, height);
202
+ this.blurRenderTarget.setSize(width, height);
203
+ this.ssaoMaterial.uniforms["resolution"].value.set(width, height);
204
+ this.ssaoMaterial.uniforms["cameraProjectionMatrix"].value.copy(this.camera.projectionMatrix);
205
+ this.ssaoMaterial.uniforms["cameraInverseProjectionMatrix"].value.copy(this.camera.projectionMatrixInverse);
206
+ this.blurMaterial.uniforms["resolution"].value.set(width, height);
207
+ }
208
+ generateSampleKernel() {
209
+ const kernelSize = this.kernelSize;
210
+ const kernel = this.kernel;
211
+ for (let i = 0; i < kernelSize; i++) {
212
+ const sample = new Vector3();
213
+ sample.x = Math.random() * 2 - 1;
214
+ sample.y = Math.random() * 2 - 1;
215
+ sample.z = Math.random();
216
+ sample.normalize();
217
+ let scale = i / kernelSize;
218
+ scale = MathUtils.lerp(0.1, 1, scale * scale);
219
+ sample.multiplyScalar(scale);
220
+ kernel.push(sample);
242
221
  }
243
- overrideVisibility() {
244
- const scene = this.scene;
245
- const cache = this._visibilityCache;
246
- scene.traverse(function(object) {
247
- cache.set(object, object.visible);
248
- if (object.isPoints || object.isLine)
249
- object.visible = false;
250
- });
222
+ }
223
+ generateRandomKernelRotations() {
224
+ const width = 4, height = 4;
225
+ if (SimplexNoise === void 0) {
226
+ console.error("THREE.SSAOPass: The pass relies on SimplexNoise.");
251
227
  }
252
- restoreVisibility() {
253
- const scene = this.scene;
254
- const cache = this._visibilityCache;
255
- scene.traverse(function(object) {
256
- const visible = cache.get(object);
257
- object.visible = visible;
258
- });
259
- cache.clear();
228
+ const simplex = new SimplexNoise();
229
+ const size = width * height;
230
+ const data = new Float32Array(size);
231
+ for (let i = 0; i < size; i++) {
232
+ const x = Math.random() * 2 - 1;
233
+ const y = Math.random() * 2 - 1;
234
+ const z = 0;
235
+ data[i] = simplex.noise3d(x, y, z);
260
236
  }
261
- };
262
- let SSAOPass2 = _SSAOPass;
263
- __publicField(SSAOPass2, "OUTPUT", {
264
- Default: 0,
265
- SSAO: 1,
266
- Blur: 2,
267
- Beauty: 3,
268
- Depth: 4,
269
- Normal: 5
270
- });
271
- return SSAOPass2;
272
- })();
237
+ this.noiseTexture = new DataTexture(data, width, height, RedFormat, FloatType);
238
+ this.noiseTexture.wrapS = RepeatWrapping;
239
+ this.noiseTexture.wrapT = RepeatWrapping;
240
+ this.noiseTexture.needsUpdate = true;
241
+ }
242
+ overrideVisibility() {
243
+ const scene = this.scene;
244
+ const cache = this._visibilityCache;
245
+ scene.traverse(function(object) {
246
+ cache.set(object, object.visible);
247
+ if (object.isPoints || object.isLine)
248
+ object.visible = false;
249
+ });
250
+ }
251
+ restoreVisibility() {
252
+ const scene = this.scene;
253
+ const cache = this._visibilityCache;
254
+ scene.traverse(function(object) {
255
+ const visible = cache.get(object);
256
+ object.visible = visible;
257
+ });
258
+ cache.clear();
259
+ }
260
+ };
261
+ let SSAOPass = _SSAOPass;
262
+ __publicField(SSAOPass, "OUTPUT", {
263
+ Default: 0,
264
+ SSAO: 1,
265
+ Blur: 2,
266
+ Beauty: 3,
267
+ Depth: 4,
268
+ Normal: 5
269
+ });
273
270
  export {
274
271
  SSAOPass
275
272
  };