three-stdlib 2.35.3 → 2.35.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. package/_polyfill/CapsuleGeometry.cjs +20 -17
  2. package/_polyfill/CapsuleGeometry.cjs.map +1 -1
  3. package/_polyfill/CapsuleGeometry.js +20 -17
  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 +722 -715
  50. package/deprecated/Geometry.cjs.map +1 -1
  51. package/deprecated/Geometry.js +723 -716
  52. package/deprecated/Geometry.js.map +1 -1
  53. package/effects/AnaglyphEffect.cjs +2 -1
  54. package/effects/AnaglyphEffect.cjs.map +1 -1
  55. package/effects/AnaglyphEffect.js +3 -2
  56. package/effects/AnaglyphEffect.js.map +1 -1
  57. package/effects/OutlineEffect.cjs +2 -1
  58. package/effects/OutlineEffect.cjs.map +1 -1
  59. package/effects/OutlineEffect.js +3 -2
  60. package/effects/OutlineEffect.js.map +1 -1
  61. package/effects/ParallaxBarrierEffect.cjs +2 -1
  62. package/effects/ParallaxBarrierEffect.cjs.map +1 -1
  63. package/effects/ParallaxBarrierEffect.js +3 -2
  64. package/effects/ParallaxBarrierEffect.js.map +1 -1
  65. package/exporters/DRACOExporter.cjs +133 -122
  66. package/exporters/DRACOExporter.cjs.map +1 -1
  67. package/exporters/DRACOExporter.d.ts +23 -21
  68. package/exporters/DRACOExporter.js +133 -122
  69. package/exporters/DRACOExporter.js.map +1 -1
  70. package/exporters/GLTFExporter.cjs +170 -167
  71. package/exporters/GLTFExporter.cjs.map +1 -1
  72. package/exporters/GLTFExporter.js +170 -167
  73. package/exporters/GLTFExporter.js.map +1 -1
  74. package/geometries/LightningStrike.cjs +524 -515
  75. package/geometries/LightningStrike.cjs.map +1 -1
  76. package/geometries/LightningStrike.js +524 -515
  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 +2 -1
  123. package/lines/LineMaterial.cjs.map +1 -1
  124. package/lines/LineMaterial.js +3 -2
  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 +441 -435
  139. package/loaders/BasisTextureLoader.cjs.map +1 -1
  140. package/loaders/BasisTextureLoader.js +441 -435
  141. package/loaders/BasisTextureLoader.js.map +1 -1
  142. package/loaders/EXRLoader.cjs +2 -1
  143. package/loaders/EXRLoader.cjs.map +1 -1
  144. package/loaders/EXRLoader.js +3 -2
  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 +377 -374
  160. package/loaders/KTX2Loader.cjs.map +1 -1
  161. package/loaders/KTX2Loader.js +377 -374
  162. package/loaders/KTX2Loader.js.map +1 -1
  163. package/loaders/LDrawLoader.cjs +5 -4
  164. package/loaders/LDrawLoader.cjs.map +1 -1
  165. package/loaders/LDrawLoader.js +6 -5
  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 +46 -43
  172. package/loaders/PRWMLoader.cjs.map +1 -1
  173. package/loaders/PRWMLoader.js +46 -43
  174. package/loaders/PRWMLoader.js.map +1 -1
  175. package/loaders/SVGLoader.cjs +1694 -1688
  176. package/loaders/SVGLoader.cjs.map +1 -1
  177. package/loaders/SVGLoader.js +1694 -1688
  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 +53 -50
  192. package/math/ConvexHull.cjs.map +1 -1
  193. package/math/ConvexHull.js +53 -50
  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 +271 -268
  212. package/misc/ConvexObjectBreaker.cjs.map +1 -1
  213. package/misc/ConvexObjectBreaker.js +272 -269
  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 +2 -1
  232. package/objects/GroundProjectedEnv.cjs.map +1 -1
  233. package/objects/GroundProjectedEnv.js +3 -2
  234. package/objects/GroundProjectedEnv.js.map +1 -1
  235. package/objects/Lensflare.cjs +209 -206
  236. package/objects/Lensflare.cjs.map +1 -1
  237. package/objects/Lensflare.js +209 -206
  238. package/objects/Lensflare.js.map +1 -1
  239. package/objects/Reflector.cjs +154 -146
  240. package/objects/Reflector.cjs.map +1 -1
  241. package/objects/Reflector.js +154 -146
  242. package/objects/Reflector.js.map +1 -1
  243. package/objects/ReflectorForSSRPass.cjs +183 -180
  244. package/objects/ReflectorForSSRPass.cjs.map +1 -1
  245. package/objects/ReflectorForSSRPass.js +183 -180
  246. package/objects/ReflectorForSSRPass.js.map +1 -1
  247. package/objects/Refractor.cjs +164 -161
  248. package/objects/Refractor.cjs.map +1 -1
  249. package/objects/Refractor.js +164 -161
  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 +35 -32
  256. package/objects/Sky.cjs.map +1 -1
  257. package/objects/Sky.d.ts +100 -6
  258. package/objects/Sky.js +35 -32
  259. package/objects/Sky.js.map +1 -1
  260. package/objects/Water.cjs +2 -1
  261. package/objects/Water.cjs.map +1 -1
  262. package/objects/Water.js +3 -2
  263. package/objects/Water.js.map +1 -1
  264. package/objects/Water2.cjs +143 -140
  265. package/objects/Water2.cjs.map +1 -1
  266. package/objects/Water2.js +143 -140
  267. package/objects/Water2.js.map +1 -1
  268. package/package.json +1 -1
  269. package/postprocessing/SAOPass.cjs +267 -264
  270. package/postprocessing/SAOPass.cjs.map +1 -1
  271. package/postprocessing/SAOPass.js +267 -264
  272. package/postprocessing/SAOPass.js.map +1 -1
  273. package/postprocessing/SSAOPass.cjs +253 -250
  274. package/postprocessing/SSAOPass.cjs.map +1 -1
  275. package/postprocessing/SSAOPass.js +253 -250
  276. package/postprocessing/SSAOPass.js.map +1 -1
  277. package/postprocessing/SSRPass.cjs +379 -376
  278. package/postprocessing/SSRPass.cjs.map +1 -1
  279. package/postprocessing/SSRPass.js +379 -376
  280. package/postprocessing/SSRPass.js.map +1 -1
  281. package/postprocessing/UnrealBloomPass.cjs +205 -202
  282. package/postprocessing/UnrealBloomPass.cjs.map +1 -1
  283. package/postprocessing/UnrealBloomPass.js +205 -202
  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 +71 -46
  294. package/shaders/ACESFilmicToneMappingShader.cjs.map +1 -1
  295. package/shaders/ACESFilmicToneMappingShader.js +71 -46
  296. package/shaders/ACESFilmicToneMappingShader.js.map +1 -1
  297. package/shaders/AfterimageShader.cjs +41 -22
  298. package/shaders/AfterimageShader.cjs.map +1 -1
  299. package/shaders/AfterimageShader.js +41 -22
  300. package/shaders/AfterimageShader.js.map +1 -1
  301. package/shaders/BasicShader.cjs +20 -6
  302. package/shaders/BasicShader.cjs.map +1 -1
  303. package/shaders/BasicShader.js +20 -6
  304. package/shaders/BasicShader.js.map +1 -1
  305. package/shaders/BleachBypassShader.cjs +46 -26
  306. package/shaders/BleachBypassShader.cjs.map +1 -1
  307. package/shaders/BleachBypassShader.js +46 -26
  308. package/shaders/BleachBypassShader.js.map +1 -1
  309. package/shaders/BlendShader.cjs +33 -19
  310. package/shaders/BlendShader.cjs.map +1 -1
  311. package/shaders/BlendShader.js +33 -19
  312. package/shaders/BlendShader.js.map +1 -1
  313. package/shaders/BokehShader.cjs +117 -90
  314. package/shaders/BokehShader.cjs.map +1 -1
  315. package/shaders/BokehShader.js +117 -90
  316. package/shaders/BokehShader.js.map +1 -1
  317. package/shaders/BokehShader2.cjs +333 -232
  318. package/shaders/BokehShader2.cjs.map +1 -1
  319. package/shaders/BokehShader2.js +333 -232
  320. package/shaders/BokehShader2.js.map +1 -1
  321. package/shaders/BrightnessContrastShader.cjs +38 -22
  322. package/shaders/BrightnessContrastShader.cjs.map +1 -1
  323. package/shaders/BrightnessContrastShader.js +38 -22
  324. package/shaders/BrightnessContrastShader.js.map +1 -1
  325. package/shaders/ColorCorrectionShader.cjs +35 -21
  326. package/shaders/ColorCorrectionShader.cjs.map +1 -1
  327. package/shaders/ColorCorrectionShader.js +35 -21
  328. package/shaders/ColorCorrectionShader.js.map +1 -1
  329. package/shaders/ColorifyShader.cjs +34 -19
  330. package/shaders/ColorifyShader.cjs.map +1 -1
  331. package/shaders/ColorifyShader.js +34 -19
  332. package/shaders/ColorifyShader.js.map +1 -1
  333. package/shaders/ConvolutionShader.cjs +43 -24
  334. package/shaders/ConvolutionShader.cjs.map +1 -1
  335. package/shaders/ConvolutionShader.js +43 -24
  336. package/shaders/ConvolutionShader.js.map +1 -1
  337. package/shaders/CopyShader.cjs +30 -16
  338. package/shaders/CopyShader.cjs.map +1 -1
  339. package/shaders/CopyShader.js +30 -16
  340. package/shaders/CopyShader.js.map +1 -1
  341. package/shaders/DOFMipMapShader.cjs +38 -21
  342. package/shaders/DOFMipMapShader.cjs.map +1 -1
  343. package/shaders/DOFMipMapShader.js +38 -21
  344. package/shaders/DOFMipMapShader.js.map +1 -1
  345. package/shaders/DepthLimitedBlurShader.cjs +98 -69
  346. package/shaders/DepthLimitedBlurShader.cjs.map +1 -1
  347. package/shaders/DepthLimitedBlurShader.js +98 -69
  348. package/shaders/DepthLimitedBlurShader.js.map +1 -1
  349. package/shaders/DigitalGlitch.cjs +70 -59
  350. package/shaders/DigitalGlitch.cjs.map +1 -1
  351. package/shaders/DigitalGlitch.js +70 -59
  352. package/shaders/DigitalGlitch.js.map +1 -1
  353. package/shaders/DotScreenShader.cjs +49 -28
  354. package/shaders/DotScreenShader.cjs.map +1 -1
  355. package/shaders/DotScreenShader.js +49 -28
  356. package/shaders/DotScreenShader.js.map +1 -1
  357. package/shaders/FXAAShader.cjs +1098 -1089
  358. package/shaders/FXAAShader.cjs.map +1 -1
  359. package/shaders/FXAAShader.js +1098 -1089
  360. package/shaders/FXAAShader.js.map +1 -1
  361. package/shaders/FilmShader.cjs +57 -29
  362. package/shaders/FilmShader.cjs.map +1 -1
  363. package/shaders/FilmShader.js +57 -29
  364. package/shaders/FilmShader.js.map +1 -1
  365. package/shaders/FocusShader.cjs +70 -43
  366. package/shaders/FocusShader.cjs.map +1 -1
  367. package/shaders/FocusShader.js +70 -43
  368. package/shaders/FocusShader.js.map +1 -1
  369. package/shaders/FreiChenShader.cjs +74 -53
  370. package/shaders/FreiChenShader.cjs.map +1 -1
  371. package/shaders/FreiChenShader.js +74 -53
  372. package/shaders/FreiChenShader.js.map +1 -1
  373. package/shaders/FresnelShader.cjs +55 -35
  374. package/shaders/FresnelShader.cjs.map +1 -1
  375. package/shaders/FresnelShader.js +55 -35
  376. package/shaders/FresnelShader.js.map +1 -1
  377. package/shaders/GammaCorrectionShader.cjs +33 -19
  378. package/shaders/GammaCorrectionShader.cjs.map +1 -1
  379. package/shaders/GammaCorrectionShader.js +33 -19
  380. package/shaders/GammaCorrectionShader.js.map +1 -1
  381. package/shaders/GodRaysShader.cjs +193 -116
  382. package/shaders/GodRaysShader.cjs.map +1 -1
  383. package/shaders/GodRaysShader.js +193 -116
  384. package/shaders/GodRaysShader.js.map +1 -1
  385. package/shaders/HalftoneShader.cjs +270 -192
  386. package/shaders/HalftoneShader.cjs.map +1 -1
  387. package/shaders/HalftoneShader.js +270 -192
  388. package/shaders/HalftoneShader.js.map +1 -1
  389. package/shaders/HorizontalTiltShiftShader.cjs +43 -27
  390. package/shaders/HorizontalTiltShiftShader.cjs.map +1 -1
  391. package/shaders/HorizontalTiltShiftShader.js +43 -27
  392. package/shaders/HorizontalTiltShiftShader.js.map +1 -1
  393. package/shaders/HueSaturationShader.cjs +47 -31
  394. package/shaders/HueSaturationShader.cjs.map +1 -1
  395. package/shaders/HueSaturationShader.js +47 -31
  396. package/shaders/HueSaturationShader.js.map +1 -1
  397. package/shaders/KaleidoShader.cjs +37 -24
  398. package/shaders/KaleidoShader.cjs.map +1 -1
  399. package/shaders/KaleidoShader.js +37 -24
  400. package/shaders/KaleidoShader.js.map +1 -1
  401. package/shaders/LuminosityHighPassShader.cjs +43 -24
  402. package/shaders/LuminosityHighPassShader.cjs.map +1 -1
  403. package/shaders/LuminosityHighPassShader.js +43 -24
  404. package/shaders/LuminosityHighPassShader.js.map +1 -1
  405. package/shaders/LuminosityShader.cjs +34 -17
  406. package/shaders/LuminosityShader.cjs.map +1 -1
  407. package/shaders/LuminosityShader.js +34 -17
  408. package/shaders/LuminosityShader.js.map +1 -1
  409. package/shaders/MirrorShader.cjs +39 -26
  410. package/shaders/MirrorShader.cjs.map +1 -1
  411. package/shaders/MirrorShader.js +39 -26
  412. package/shaders/MirrorShader.js.map +1 -1
  413. package/shaders/NormalMapShader.cjs +36 -21
  414. package/shaders/NormalMapShader.cjs.map +1 -1
  415. package/shaders/NormalMapShader.js +36 -21
  416. package/shaders/NormalMapShader.js.map +1 -1
  417. package/shaders/ParallaxShader.cjs +147 -97
  418. package/shaders/ParallaxShader.cjs.map +1 -1
  419. package/shaders/ParallaxShader.js +147 -97
  420. package/shaders/ParallaxShader.js.map +1 -1
  421. package/shaders/PixelShader.cjs +31 -18
  422. package/shaders/PixelShader.cjs.map +1 -1
  423. package/shaders/PixelShader.js +31 -18
  424. package/shaders/PixelShader.js.map +1 -1
  425. package/shaders/RGBShiftShader.cjs +33 -20
  426. package/shaders/RGBShiftShader.cjs.map +1 -1
  427. package/shaders/RGBShiftShader.js +33 -20
  428. package/shaders/RGBShiftShader.js.map +1 -1
  429. package/shaders/SAOShader.cjs +154 -117
  430. package/shaders/SAOShader.cjs.map +1 -1
  431. package/shaders/SAOShader.js +154 -117
  432. package/shaders/SAOShader.js.map +1 -1
  433. package/shaders/SMAAShader.cjs +358 -270
  434. package/shaders/SMAAShader.cjs.map +1 -1
  435. package/shaders/SMAAShader.js +358 -270
  436. package/shaders/SMAAShader.js.map +1 -1
  437. package/shaders/SSAOShader.cjs +236 -142
  438. package/shaders/SSAOShader.cjs.map +1 -1
  439. package/shaders/SSAOShader.js +236 -142
  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 +36 -20
  446. package/shaders/SepiaShader.cjs.map +1 -1
  447. package/shaders/SepiaShader.js +36 -20
  448. package/shaders/SepiaShader.js.map +1 -1
  449. package/shaders/SobelOperatorShader.cjs +64 -37
  450. package/shaders/SobelOperatorShader.cjs.map +1 -1
  451. package/shaders/SobelOperatorShader.js +64 -37
  452. package/shaders/SobelOperatorShader.js.map +1 -1
  453. package/shaders/TechnicolorShader.cjs +29 -16
  454. package/shaders/TechnicolorShader.cjs.map +1 -1
  455. package/shaders/TechnicolorShader.js +29 -16
  456. package/shaders/TechnicolorShader.js.map +1 -1
  457. package/shaders/ToneMapShader.cjs +55 -35
  458. package/shaders/ToneMapShader.cjs.map +1 -1
  459. package/shaders/ToneMapShader.js +55 -35
  460. package/shaders/ToneMapShader.js.map +1 -1
  461. package/shaders/ToonShader.cjs +275 -165
  462. package/shaders/ToonShader.cjs.map +1 -1
  463. package/shaders/ToonShader.js +275 -165
  464. package/shaders/ToonShader.js.map +1 -1
  465. package/shaders/TriangleBlurShader.cjs +50 -27
  466. package/shaders/TriangleBlurShader.cjs.map +1 -1
  467. package/shaders/TriangleBlurShader.js +50 -27
  468. package/shaders/TriangleBlurShader.js.map +1 -1
  469. package/shaders/UnpackDepthRGBAShader.cjs +32 -17
  470. package/shaders/UnpackDepthRGBAShader.cjs.map +1 -1
  471. package/shaders/UnpackDepthRGBAShader.js +32 -17
  472. package/shaders/UnpackDepthRGBAShader.js.map +1 -1
  473. package/shaders/VerticalTiltShiftShader.cjs +43 -27
  474. package/shaders/VerticalTiltShiftShader.cjs.map +1 -1
  475. package/shaders/VerticalTiltShiftShader.js +43 -27
  476. package/shaders/VerticalTiltShiftShader.js.map +1 -1
  477. package/shaders/VignetteShader.cjs +43 -27
  478. package/shaders/VignetteShader.cjs.map +1 -1
  479. package/shaders/VignetteShader.js +43 -27
  480. package/shaders/VignetteShader.js.map +1 -1
  481. package/shaders/VolumeShader.cjs +264 -213
  482. package/shaders/VolumeShader.cjs.map +1 -1
  483. package/shaders/VolumeShader.js +264 -213
  484. package/shaders/VolumeShader.js.map +1 -1
  485. package/shaders/WaterRefractionShader.cjs +63 -35
  486. package/shaders/WaterRefractionShader.cjs.map +1 -1
  487. package/shaders/WaterRefractionShader.js +63 -35
  488. package/shaders/WaterRefractionShader.js.map +1 -1
  489. package/utils/GeometryCompressionUtils.cjs +2 -1
  490. package/utils/GeometryCompressionUtils.cjs.map +1 -1
  491. package/utils/GeometryCompressionUtils.js +3 -2
  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 +109 -106
  498. package/webxr/ARButton.cjs.map +1 -1
  499. package/webxr/ARButton.d.ts +4 -3
  500. package/webxr/ARButton.js +109 -106
  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 +98 -95
  507. package/webxr/VRButton.cjs.map +1 -1
  508. package/webxr/VRButton.d.ts +6 -5
  509. package/webxr/VRButton.js +98 -95
  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":"ConvolutionShader.cjs","sources":["../../src/shaders/ConvolutionShader.ts"],"sourcesContent":["import { Vector2 } from 'three'\n\n/**\n * Convolution shader\n * ported from o3d sample to WebGL / GLSL\n * http://o3d.googlecode.com/svn/trunk/samples/convolution.html\n */\n\nimport type { IUniform, Texture } from 'three'\nimport type { IShader } from './types'\n\nexport type ConvolutionShaderDefines = {\n KERNEL_SIZE_FLOAT: string\n KERNEL_SIZE_INT: string\n}\n\nexport type ConvolutionShaderUniforms = {\n cKernel: IUniform<number[]>\n tDiffuse: IUniform<Texture | null>\n uImageIncrement: IUniform<Vector2>\n}\n\nexport interface IConvolutionShader extends IShader<ConvolutionShaderUniforms, ConvolutionShaderDefines> {\n buildKernel: (sigma: number) => number[]\n}\n\nexport const ConvolutionShader: IConvolutionShader = {\n defines: {\n KERNEL_SIZE_FLOAT: '25.0',\n KERNEL_SIZE_INT: '25',\n },\n\n uniforms: {\n tDiffuse: { value: null },\n uImageIncrement: { value: new Vector2(0.001953125, 0.0) },\n cKernel: { value: [] },\n },\n\n vertexShader: [\n 'uniform vec2 uImageIncrement;',\n\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvUv = uv - ( ( KERNEL_SIZE_FLOAT - 1.0 ) / 2.0 ) * uImageIncrement;',\n '\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );',\n\n '}',\n ].join('\\n'),\n\n fragmentShader: [\n 'uniform float cKernel[ KERNEL_SIZE_INT ];',\n\n 'uniform sampler2D tDiffuse;',\n 'uniform vec2 uImageIncrement;',\n\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvec2 imageCoord = vUv;',\n '\tvec4 sum = vec4( 0.0, 0.0, 0.0, 0.0 );',\n\n '\tfor( int i = 0; i < KERNEL_SIZE_INT; i ++ ) {',\n\n '\t\tsum += texture2D( tDiffuse, imageCoord ) * cKernel[ i ];',\n '\t\timageCoord += uImageIncrement;',\n\n '\t}',\n\n '\tgl_FragColor = sum;',\n\n '}',\n ].join('\\n'),\n\n buildKernel: function (sigma) {\n // We lop off the sqrt(2 * pi) * sigma term, since we're going to normalize anyway.\n\n function gauss(x: number, sigma: number): number {\n return Math.exp(-(x * x) / (2.0 * sigma * sigma))\n }\n\n const kMaxKernelSize = 25\n\n const kernelSize = Math.min(2 * Math.ceil(sigma * 3.0) + 1, kMaxKernelSize)\n\n const halfWidth = (kernelSize - 1) * 0.5\n\n const values: number[] = new Array(kernelSize)\n\n let sum = 0.0\n\n for (let i = 0; i < kernelSize; ++i) {\n values[i] = gauss(i - halfWidth, sigma)\n sum += values[i]\n }\n\n // normalize the kernel\n\n for (let i = 0; i < kernelSize; ++i) values[i] /= sum\n\n return values\n },\n}\n"],"names":["Vector2","sigma"],"mappings":";;;AA0BO,MAAM,oBAAwC;AAAA,EACnD,SAAS;AAAA,IACP,mBAAmB;AAAA,IACnB,iBAAiB;AAAA,EACnB;AAAA,EAEA,UAAU;AAAA,IACR,UAAU,EAAE,OAAO,KAAK;AAAA,IACxB,iBAAiB,EAAE,OAAO,IAAIA,MAAQ,QAAA,YAAa,CAAG,EAAE;AAAA,IACxD,SAAS,EAAE,OAAO,GAAG;AAAA,EACvB;AAAA,EAEA,cAAc;AAAA,IACZ;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AAAA,EAEX,gBAAgB;AAAA,IACd;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AAAA,EAEX,aAAa,SAAU,OAAO;AAGnB,aAAA,MAAM,GAAWC,QAAuB;AAC/C,aAAO,KAAK,IAAI,EAAE,IAAI,MAAM,IAAMA,SAAQA,OAAM;AAAA,IAClD;AAEA,UAAM,iBAAiB;AAEjB,UAAA,aAAa,KAAK,IAAI,IAAI,KAAK,KAAK,QAAQ,CAAG,IAAI,GAAG,cAAc;AAEpE,UAAA,aAAa,aAAa,KAAK;AAE/B,UAAA,SAAmB,IAAI,MAAM,UAAU;AAE7C,QAAI,MAAM;AAEV,aAAS,IAAI,GAAG,IAAI,YAAY,EAAE,GAAG;AACnC,aAAO,CAAC,IAAI,MAAM,IAAI,WAAW,KAAK;AACtC,aAAO,OAAO,CAAC;AAAA,IACjB;AAIA,aAAS,IAAI,GAAG,IAAI,YAAY,EAAE;AAAG,aAAO,CAAC,KAAK;AAE3C,WAAA;AAAA,EACT;AACF;;"}
1
+ {"version":3,"file":"ConvolutionShader.cjs","sources":["../../src/shaders/ConvolutionShader.ts"],"sourcesContent":["import { Vector2 } from 'three'\n\n/**\n * Convolution shader\n * ported from o3d sample to WebGL / GLSL\n * http://o3d.googlecode.com/svn/trunk/samples/convolution.html\n */\n\nimport type { IUniform, Texture } from 'three'\nimport type { IShader } from './types'\n\nexport type ConvolutionShaderDefines = {\n KERNEL_SIZE_FLOAT: string\n KERNEL_SIZE_INT: string\n}\n\nexport type ConvolutionShaderUniforms = {\n cKernel: IUniform<number[]>\n tDiffuse: IUniform<Texture | null>\n uImageIncrement: IUniform<Vector2>\n}\n\nexport interface IConvolutionShader extends IShader<ConvolutionShaderUniforms, ConvolutionShaderDefines> {\n buildKernel: (sigma: number) => number[]\n}\n\nexport const ConvolutionShader: IConvolutionShader = {\n defines: {\n KERNEL_SIZE_FLOAT: '25.0',\n KERNEL_SIZE_INT: '25',\n },\n\n uniforms: {\n tDiffuse: { value: null },\n uImageIncrement: { value: /* @__PURE__ */ new Vector2(0.001953125, 0.0) },\n cKernel: { value: [] },\n },\n\n vertexShader: /* glsl */ `\n uniform vec2 uImageIncrement;\n\n varying vec2 vUv;\n\n void main() {\n\n \tvUv = uv - ( ( KERNEL_SIZE_FLOAT - 1.0 ) / 2.0 ) * uImageIncrement;\n \tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n `,\n\n fragmentShader: /* glsl */ `\n uniform float cKernel[ KERNEL_SIZE_INT ];\n\n uniform sampler2D tDiffuse;\n uniform vec2 uImageIncrement;\n\n varying vec2 vUv;\n\n void main() {\n\n \tvec2 imageCoord = vUv;\n \tvec4 sum = vec4( 0.0, 0.0, 0.0, 0.0 );\n\n \tfor( int i = 0; i < KERNEL_SIZE_INT; i ++ ) {\n\n \t\tsum += texture2D( tDiffuse, imageCoord ) * cKernel[ i ];\n \t\timageCoord += uImageIncrement;\n\n \t}\n\n \tgl_FragColor = sum;\n\n }\n `,\n\n buildKernel: function (sigma) {\n // We lop off the sqrt(2 * pi) * sigma term, since we're going to normalize anyway.\n\n function gauss(x: number, sigma: number): number {\n return Math.exp(-(x * x) / (2.0 * sigma * sigma))\n }\n\n const kMaxKernelSize = 25\n\n const kernelSize = Math.min(2 * Math.ceil(sigma * 3.0) + 1, kMaxKernelSize)\n\n const halfWidth = (kernelSize - 1) * 0.5\n\n const values: number[] = new Array(kernelSize)\n\n let sum = 0.0\n\n for (let i = 0; i < kernelSize; ++i) {\n values[i] = gauss(i - halfWidth, sigma)\n sum += values[i]\n }\n\n // normalize the kernel\n\n for (let i = 0; i < kernelSize; ++i) values[i] /= sum\n\n return values\n },\n}\n"],"names":["Vector2","sigma"],"mappings":";;;AA0BO,MAAM,oBAAwC;AAAA,EACnD,SAAS;AAAA,IACP,mBAAmB;AAAA,IACnB,iBAAiB;AAAA,EACnB;AAAA,EAEA,UAAU;AAAA,IACR,UAAU,EAAE,OAAO,KAAK;AAAA,IACxB,iBAAiB,EAAE,2BAA2BA,MAAQ,QAAA,YAAa,CAAG,EAAE;AAAA,IACxE,SAAS,EAAE,OAAO,GAAG;AAAA,EACvB;AAAA,EAEA;AAAA;AAAA,IAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAazB;AAAA;AAAA,IAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyB3B,aAAa,SAAU,OAAO;AAGnB,aAAA,MAAM,GAAWC,QAAuB;AAC/C,aAAO,KAAK,IAAI,EAAE,IAAI,MAAM,IAAMA,SAAQA,OAAM;AAAA,IAClD;AAEA,UAAM,iBAAiB;AAEjB,UAAA,aAAa,KAAK,IAAI,IAAI,KAAK,KAAK,QAAQ,CAAG,IAAI,GAAG,cAAc;AAEpE,UAAA,aAAa,aAAa,KAAK;AAE/B,UAAA,SAAmB,IAAI,MAAM,UAAU;AAE7C,QAAI,MAAM;AAEV,aAAS,IAAI,GAAG,IAAI,YAAY,EAAE,GAAG;AACnC,aAAO,CAAC,IAAI,MAAM,IAAI,WAAW,KAAK;AACtC,aAAO,OAAO,CAAC;AAAA,IACjB;AAIA,aAAS,IAAI,GAAG,IAAI,YAAY,EAAE;AAAG,aAAO,CAAC,KAAK;AAE3C,WAAA;AAAA,EACT;AACF;;"}
@@ -6,32 +6,51 @@ const ConvolutionShader = {
6
6
  },
7
7
  uniforms: {
8
8
  tDiffuse: { value: null },
9
- uImageIncrement: { value: new Vector2(1953125e-9, 0) },
9
+ uImageIncrement: { value: /* @__PURE__ */ new Vector2(1953125e-9, 0) },
10
10
  cKernel: { value: [] }
11
11
  },
12
- vertexShader: [
13
- "uniform vec2 uImageIncrement;",
14
- "varying vec2 vUv;",
15
- "void main() {",
16
- " vUv = uv - ( ( KERNEL_SIZE_FLOAT - 1.0 ) / 2.0 ) * uImageIncrement;",
17
- " gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
18
- "}"
19
- ].join("\n"),
20
- fragmentShader: [
21
- "uniform float cKernel[ KERNEL_SIZE_INT ];",
22
- "uniform sampler2D tDiffuse;",
23
- "uniform vec2 uImageIncrement;",
24
- "varying vec2 vUv;",
25
- "void main() {",
26
- " vec2 imageCoord = vUv;",
27
- " vec4 sum = vec4( 0.0, 0.0, 0.0, 0.0 );",
28
- " for( int i = 0; i < KERNEL_SIZE_INT; i ++ ) {",
29
- " sum += texture2D( tDiffuse, imageCoord ) * cKernel[ i ];",
30
- " imageCoord += uImageIncrement;",
31
- " }",
32
- " gl_FragColor = sum;",
33
- "}"
34
- ].join("\n"),
12
+ vertexShader: (
13
+ /* glsl */
14
+ `
15
+ uniform vec2 uImageIncrement;
16
+
17
+ varying vec2 vUv;
18
+
19
+ void main() {
20
+
21
+ vUv = uv - ( ( KERNEL_SIZE_FLOAT - 1.0 ) / 2.0 ) * uImageIncrement;
22
+ gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
23
+
24
+ }
25
+ `
26
+ ),
27
+ fragmentShader: (
28
+ /* glsl */
29
+ `
30
+ uniform float cKernel[ KERNEL_SIZE_INT ];
31
+
32
+ uniform sampler2D tDiffuse;
33
+ uniform vec2 uImageIncrement;
34
+
35
+ varying vec2 vUv;
36
+
37
+ void main() {
38
+
39
+ vec2 imageCoord = vUv;
40
+ vec4 sum = vec4( 0.0, 0.0, 0.0, 0.0 );
41
+
42
+ for( int i = 0; i < KERNEL_SIZE_INT; i ++ ) {
43
+
44
+ sum += texture2D( tDiffuse, imageCoord ) * cKernel[ i ];
45
+ imageCoord += uImageIncrement;
46
+
47
+ }
48
+
49
+ gl_FragColor = sum;
50
+
51
+ }
52
+ `
53
+ ),
35
54
  buildKernel: function(sigma) {
36
55
  function gauss(x, sigma2) {
37
56
  return Math.exp(-(x * x) / (2 * sigma2 * sigma2));
@@ -1 +1 @@
1
- {"version":3,"file":"ConvolutionShader.js","sources":["../../src/shaders/ConvolutionShader.ts"],"sourcesContent":["import { Vector2 } from 'three'\n\n/**\n * Convolution shader\n * ported from o3d sample to WebGL / GLSL\n * http://o3d.googlecode.com/svn/trunk/samples/convolution.html\n */\n\nimport type { IUniform, Texture } from 'three'\nimport type { IShader } from './types'\n\nexport type ConvolutionShaderDefines = {\n KERNEL_SIZE_FLOAT: string\n KERNEL_SIZE_INT: string\n}\n\nexport type ConvolutionShaderUniforms = {\n cKernel: IUniform<number[]>\n tDiffuse: IUniform<Texture | null>\n uImageIncrement: IUniform<Vector2>\n}\n\nexport interface IConvolutionShader extends IShader<ConvolutionShaderUniforms, ConvolutionShaderDefines> {\n buildKernel: (sigma: number) => number[]\n}\n\nexport const ConvolutionShader: IConvolutionShader = {\n defines: {\n KERNEL_SIZE_FLOAT: '25.0',\n KERNEL_SIZE_INT: '25',\n },\n\n uniforms: {\n tDiffuse: { value: null },\n uImageIncrement: { value: new Vector2(0.001953125, 0.0) },\n cKernel: { value: [] },\n },\n\n vertexShader: [\n 'uniform vec2 uImageIncrement;',\n\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvUv = uv - ( ( KERNEL_SIZE_FLOAT - 1.0 ) / 2.0 ) * uImageIncrement;',\n '\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );',\n\n '}',\n ].join('\\n'),\n\n fragmentShader: [\n 'uniform float cKernel[ KERNEL_SIZE_INT ];',\n\n 'uniform sampler2D tDiffuse;',\n 'uniform vec2 uImageIncrement;',\n\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvec2 imageCoord = vUv;',\n '\tvec4 sum = vec4( 0.0, 0.0, 0.0, 0.0 );',\n\n '\tfor( int i = 0; i < KERNEL_SIZE_INT; i ++ ) {',\n\n '\t\tsum += texture2D( tDiffuse, imageCoord ) * cKernel[ i ];',\n '\t\timageCoord += uImageIncrement;',\n\n '\t}',\n\n '\tgl_FragColor = sum;',\n\n '}',\n ].join('\\n'),\n\n buildKernel: function (sigma) {\n // We lop off the sqrt(2 * pi) * sigma term, since we're going to normalize anyway.\n\n function gauss(x: number, sigma: number): number {\n return Math.exp(-(x * x) / (2.0 * sigma * sigma))\n }\n\n const kMaxKernelSize = 25\n\n const kernelSize = Math.min(2 * Math.ceil(sigma * 3.0) + 1, kMaxKernelSize)\n\n const halfWidth = (kernelSize - 1) * 0.5\n\n const values: number[] = new Array(kernelSize)\n\n let sum = 0.0\n\n for (let i = 0; i < kernelSize; ++i) {\n values[i] = gauss(i - halfWidth, sigma)\n sum += values[i]\n }\n\n // normalize the kernel\n\n for (let i = 0; i < kernelSize; ++i) values[i] /= sum\n\n return values\n },\n}\n"],"names":["sigma"],"mappings":";AA0BO,MAAM,oBAAwC;AAAA,EACnD,SAAS;AAAA,IACP,mBAAmB;AAAA,IACnB,iBAAiB;AAAA,EACnB;AAAA,EAEA,UAAU;AAAA,IACR,UAAU,EAAE,OAAO,KAAK;AAAA,IACxB,iBAAiB,EAAE,OAAO,IAAI,QAAQ,YAAa,CAAG,EAAE;AAAA,IACxD,SAAS,EAAE,OAAO,GAAG;AAAA,EACvB;AAAA,EAEA,cAAc;AAAA,IACZ;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AAAA,EAEX,gBAAgB;AAAA,IACd;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AAAA,EAEX,aAAa,SAAU,OAAO;AAGnB,aAAA,MAAM,GAAWA,QAAuB;AAC/C,aAAO,KAAK,IAAI,EAAE,IAAI,MAAM,IAAMA,SAAQA,OAAM;AAAA,IAClD;AAEA,UAAM,iBAAiB;AAEjB,UAAA,aAAa,KAAK,IAAI,IAAI,KAAK,KAAK,QAAQ,CAAG,IAAI,GAAG,cAAc;AAEpE,UAAA,aAAa,aAAa,KAAK;AAE/B,UAAA,SAAmB,IAAI,MAAM,UAAU;AAE7C,QAAI,MAAM;AAEV,aAAS,IAAI,GAAG,IAAI,YAAY,EAAE,GAAG;AACnC,aAAO,CAAC,IAAI,MAAM,IAAI,WAAW,KAAK;AACtC,aAAO,OAAO,CAAC;AAAA,IACjB;AAIA,aAAS,IAAI,GAAG,IAAI,YAAY,EAAE;AAAG,aAAO,CAAC,KAAK;AAE3C,WAAA;AAAA,EACT;AACF;"}
1
+ {"version":3,"file":"ConvolutionShader.js","sources":["../../src/shaders/ConvolutionShader.ts"],"sourcesContent":["import { Vector2 } from 'three'\n\n/**\n * Convolution shader\n * ported from o3d sample to WebGL / GLSL\n * http://o3d.googlecode.com/svn/trunk/samples/convolution.html\n */\n\nimport type { IUniform, Texture } from 'three'\nimport type { IShader } from './types'\n\nexport type ConvolutionShaderDefines = {\n KERNEL_SIZE_FLOAT: string\n KERNEL_SIZE_INT: string\n}\n\nexport type ConvolutionShaderUniforms = {\n cKernel: IUniform<number[]>\n tDiffuse: IUniform<Texture | null>\n uImageIncrement: IUniform<Vector2>\n}\n\nexport interface IConvolutionShader extends IShader<ConvolutionShaderUniforms, ConvolutionShaderDefines> {\n buildKernel: (sigma: number) => number[]\n}\n\nexport const ConvolutionShader: IConvolutionShader = {\n defines: {\n KERNEL_SIZE_FLOAT: '25.0',\n KERNEL_SIZE_INT: '25',\n },\n\n uniforms: {\n tDiffuse: { value: null },\n uImageIncrement: { value: /* @__PURE__ */ new Vector2(0.001953125, 0.0) },\n cKernel: { value: [] },\n },\n\n vertexShader: /* glsl */ `\n uniform vec2 uImageIncrement;\n\n varying vec2 vUv;\n\n void main() {\n\n \tvUv = uv - ( ( KERNEL_SIZE_FLOAT - 1.0 ) / 2.0 ) * uImageIncrement;\n \tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n `,\n\n fragmentShader: /* glsl */ `\n uniform float cKernel[ KERNEL_SIZE_INT ];\n\n uniform sampler2D tDiffuse;\n uniform vec2 uImageIncrement;\n\n varying vec2 vUv;\n\n void main() {\n\n \tvec2 imageCoord = vUv;\n \tvec4 sum = vec4( 0.0, 0.0, 0.0, 0.0 );\n\n \tfor( int i = 0; i < KERNEL_SIZE_INT; i ++ ) {\n\n \t\tsum += texture2D( tDiffuse, imageCoord ) * cKernel[ i ];\n \t\timageCoord += uImageIncrement;\n\n \t}\n\n \tgl_FragColor = sum;\n\n }\n `,\n\n buildKernel: function (sigma) {\n // We lop off the sqrt(2 * pi) * sigma term, since we're going to normalize anyway.\n\n function gauss(x: number, sigma: number): number {\n return Math.exp(-(x * x) / (2.0 * sigma * sigma))\n }\n\n const kMaxKernelSize = 25\n\n const kernelSize = Math.min(2 * Math.ceil(sigma * 3.0) + 1, kMaxKernelSize)\n\n const halfWidth = (kernelSize - 1) * 0.5\n\n const values: number[] = new Array(kernelSize)\n\n let sum = 0.0\n\n for (let i = 0; i < kernelSize; ++i) {\n values[i] = gauss(i - halfWidth, sigma)\n sum += values[i]\n }\n\n // normalize the kernel\n\n for (let i = 0; i < kernelSize; ++i) values[i] /= sum\n\n return values\n },\n}\n"],"names":["sigma"],"mappings":";AA0BO,MAAM,oBAAwC;AAAA,EACnD,SAAS;AAAA,IACP,mBAAmB;AAAA,IACnB,iBAAiB;AAAA,EACnB;AAAA,EAEA,UAAU;AAAA,IACR,UAAU,EAAE,OAAO,KAAK;AAAA,IACxB,iBAAiB,EAAE,2BAA2B,QAAQ,YAAa,CAAG,EAAE;AAAA,IACxE,SAAS,EAAE,OAAO,GAAG;AAAA,EACvB;AAAA,EAEA;AAAA;AAAA,IAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAazB;AAAA;AAAA,IAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyB3B,aAAa,SAAU,OAAO;AAGnB,aAAA,MAAM,GAAWA,QAAuB;AAC/C,aAAO,KAAK,IAAI,EAAE,IAAI,MAAM,IAAMA,SAAQA,OAAM;AAAA,IAClD;AAEA,UAAM,iBAAiB;AAEjB,UAAA,aAAa,KAAK,IAAI,IAAI,KAAK,KAAK,QAAQ,CAAG,IAAI,GAAG,cAAc;AAEpE,UAAA,aAAa,aAAa,KAAK;AAE/B,UAAA,SAAmB,IAAI,MAAM,UAAU;AAE7C,QAAI,MAAM;AAEV,aAAS,IAAI,GAAG,IAAI,YAAY,EAAE,GAAG;AACnC,aAAO,CAAC,IAAI,MAAM,IAAI,WAAW,KAAK;AACtC,aAAO,OAAO,CAAC;AAAA,IACjB;AAIA,aAAS,IAAI,GAAG,IAAI,YAAY,EAAE;AAAG,aAAO,CAAC,KAAK;AAE3C,WAAA;AAAA,EACT;AACF;"}
@@ -5,22 +5,36 @@ const CopyShader = {
5
5
  tDiffuse: { value: null },
6
6
  opacity: { value: 1 }
7
7
  },
8
- vertexShader: [
9
- "varying vec2 vUv;",
10
- "void main() {",
11
- " vUv = uv;",
12
- " gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
13
- "}"
14
- ].join("\n"),
15
- fragmentShader: [
16
- "uniform float opacity;",
17
- "uniform sampler2D tDiffuse;",
18
- "varying vec2 vUv;",
19
- "void main() {",
20
- " vec4 texel = texture2D( tDiffuse, vUv );",
21
- " gl_FragColor = opacity * texel;",
22
- "}"
23
- ].join("\n")
8
+ vertexShader: (
9
+ /* glsl */
10
+ `
11
+ varying vec2 vUv;
12
+
13
+ void main() {
14
+
15
+ vUv = uv;
16
+ gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
17
+
18
+ }
19
+ `
20
+ ),
21
+ fragmentShader: (
22
+ /* glsl */
23
+ `
24
+ uniform float opacity;
25
+
26
+ uniform sampler2D tDiffuse;
27
+
28
+ varying vec2 vUv;
29
+
30
+ void main() {
31
+
32
+ vec4 texel = texture2D( tDiffuse, vUv );
33
+ gl_FragColor = opacity * texel;
34
+
35
+ }
36
+ `
37
+ )
24
38
  };
25
39
  exports.CopyShader = CopyShader;
26
40
  //# sourceMappingURL=CopyShader.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"CopyShader.cjs","sources":["../../src/shaders/CopyShader.ts"],"sourcesContent":["/**\n * Full-screen textured quad shader\n */\n\nimport type { IUniform, Texture } from 'three'\nimport type { IShader } from './types'\n\nexport type CopyShaderUniforms = {\n opacity: IUniform<number>\n tDiffuse: IUniform<Texture | null>\n}\n\nexport interface ICopyShader extends IShader<CopyShaderUniforms> {}\n\nexport const CopyShader: ICopyShader = {\n uniforms: {\n tDiffuse: { value: null },\n opacity: { value: 1.0 },\n },\n\n vertexShader: [\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvUv = uv;',\n '\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );',\n\n '}',\n ].join('\\n'),\n\n fragmentShader: [\n 'uniform float opacity;',\n\n 'uniform sampler2D tDiffuse;',\n\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvec4 texel = texture2D( tDiffuse, vUv );',\n '\tgl_FragColor = opacity * texel;',\n\n '}',\n ].join('\\n'),\n}\n"],"names":[],"mappings":";;AAcO,MAAM,aAA0B;AAAA,EACrC,UAAU;AAAA,IACR,UAAU,EAAE,OAAO,KAAK;AAAA,IACxB,SAAS,EAAE,OAAO,EAAI;AAAA,EACxB;AAAA,EAEA,cAAc;AAAA,IACZ;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AAAA,EAEX,gBAAgB;AAAA,IACd;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AACb;;"}
1
+ {"version":3,"file":"CopyShader.cjs","sources":["../../src/shaders/CopyShader.ts"],"sourcesContent":["/**\n * Full-screen textured quad shader\n */\n\nimport type { IUniform, Texture } from 'three'\nimport type { IShader } from './types'\n\nexport type CopyShaderUniforms = {\n opacity: IUniform<number>\n tDiffuse: IUniform<Texture | null>\n}\n\nexport interface ICopyShader extends IShader<CopyShaderUniforms> {}\n\nexport const CopyShader: ICopyShader = {\n uniforms: {\n tDiffuse: { value: null },\n opacity: { value: 1.0 },\n },\n\n vertexShader: /* glsl */ `\n varying vec2 vUv;\n\n void main() {\n\n \tvUv = uv;\n \tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n `,\n\n fragmentShader: /* glsl */ `\n uniform float opacity;\n\n uniform sampler2D tDiffuse;\n\n varying vec2 vUv;\n\n void main() {\n\n \tvec4 texel = texture2D( tDiffuse, vUv );\n \tgl_FragColor = opacity * texel;\n\n }\n `,\n}\n"],"names":[],"mappings":";;AAcO,MAAM,aAA0B;AAAA,EACrC,UAAU;AAAA,IACR,UAAU,EAAE,OAAO,KAAK;AAAA,IACxB,SAAS,EAAE,OAAO,EAAI;AAAA,EACxB;AAAA,EAEA;AAAA;AAAA,IAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWzB;AAAA;AAAA,IAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAc7B;;"}
@@ -3,22 +3,36 @@ const CopyShader = {
3
3
  tDiffuse: { value: null },
4
4
  opacity: { value: 1 }
5
5
  },
6
- vertexShader: [
7
- "varying vec2 vUv;",
8
- "void main() {",
9
- " vUv = uv;",
10
- " gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
11
- "}"
12
- ].join("\n"),
13
- fragmentShader: [
14
- "uniform float opacity;",
15
- "uniform sampler2D tDiffuse;",
16
- "varying vec2 vUv;",
17
- "void main() {",
18
- " vec4 texel = texture2D( tDiffuse, vUv );",
19
- " gl_FragColor = opacity * texel;",
20
- "}"
21
- ].join("\n")
6
+ vertexShader: (
7
+ /* glsl */
8
+ `
9
+ varying vec2 vUv;
10
+
11
+ void main() {
12
+
13
+ vUv = uv;
14
+ gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
15
+
16
+ }
17
+ `
18
+ ),
19
+ fragmentShader: (
20
+ /* glsl */
21
+ `
22
+ uniform float opacity;
23
+
24
+ uniform sampler2D tDiffuse;
25
+
26
+ varying vec2 vUv;
27
+
28
+ void main() {
29
+
30
+ vec4 texel = texture2D( tDiffuse, vUv );
31
+ gl_FragColor = opacity * texel;
32
+
33
+ }
34
+ `
35
+ )
22
36
  };
23
37
  export {
24
38
  CopyShader
@@ -1 +1 @@
1
- {"version":3,"file":"CopyShader.js","sources":["../../src/shaders/CopyShader.ts"],"sourcesContent":["/**\n * Full-screen textured quad shader\n */\n\nimport type { IUniform, Texture } from 'three'\nimport type { IShader } from './types'\n\nexport type CopyShaderUniforms = {\n opacity: IUniform<number>\n tDiffuse: IUniform<Texture | null>\n}\n\nexport interface ICopyShader extends IShader<CopyShaderUniforms> {}\n\nexport const CopyShader: ICopyShader = {\n uniforms: {\n tDiffuse: { value: null },\n opacity: { value: 1.0 },\n },\n\n vertexShader: [\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvUv = uv;',\n '\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );',\n\n '}',\n ].join('\\n'),\n\n fragmentShader: [\n 'uniform float opacity;',\n\n 'uniform sampler2D tDiffuse;',\n\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvec4 texel = texture2D( tDiffuse, vUv );',\n '\tgl_FragColor = opacity * texel;',\n\n '}',\n ].join('\\n'),\n}\n"],"names":[],"mappings":"AAcO,MAAM,aAA0B;AAAA,EACrC,UAAU;AAAA,IACR,UAAU,EAAE,OAAO,KAAK;AAAA,IACxB,SAAS,EAAE,OAAO,EAAI;AAAA,EACxB;AAAA,EAEA,cAAc;AAAA,IACZ;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AAAA,EAEX,gBAAgB;AAAA,IACd;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AACb;"}
1
+ {"version":3,"file":"CopyShader.js","sources":["../../src/shaders/CopyShader.ts"],"sourcesContent":["/**\n * Full-screen textured quad shader\n */\n\nimport type { IUniform, Texture } from 'three'\nimport type { IShader } from './types'\n\nexport type CopyShaderUniforms = {\n opacity: IUniform<number>\n tDiffuse: IUniform<Texture | null>\n}\n\nexport interface ICopyShader extends IShader<CopyShaderUniforms> {}\n\nexport const CopyShader: ICopyShader = {\n uniforms: {\n tDiffuse: { value: null },\n opacity: { value: 1.0 },\n },\n\n vertexShader: /* glsl */ `\n varying vec2 vUv;\n\n void main() {\n\n \tvUv = uv;\n \tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n `,\n\n fragmentShader: /* glsl */ `\n uniform float opacity;\n\n uniform sampler2D tDiffuse;\n\n varying vec2 vUv;\n\n void main() {\n\n \tvec4 texel = texture2D( tDiffuse, vUv );\n \tgl_FragColor = opacity * texel;\n\n }\n `,\n}\n"],"names":[],"mappings":"AAcO,MAAM,aAA0B;AAAA,EACrC,UAAU;AAAA,IACR,UAAU,EAAE,OAAO,KAAK;AAAA,IACxB,SAAS,EAAE,OAAO,EAAI;AAAA,EACxB;AAAA,EAEA;AAAA;AAAA,IAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWzB;AAAA;AAAA,IAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAc7B;"}
@@ -7,27 +7,44 @@ const DOFMipMapShader = {
7
7
  focus: { value: 1 },
8
8
  maxblur: { value: 1 }
9
9
  },
10
- vertexShader: [
11
- "varying vec2 vUv;",
12
- "void main() {",
13
- " vUv = uv;",
14
- " gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
15
- "}"
16
- ].join("\n"),
17
- fragmentShader: [
18
- "uniform float focus;",
19
- "uniform float maxblur;",
20
- "uniform sampler2D tColor;",
21
- "uniform sampler2D tDepth;",
22
- "varying vec2 vUv;",
23
- "void main() {",
24
- " vec4 depth = texture2D( tDepth, vUv );",
25
- " float factor = depth.x - focus;",
26
- " vec4 col = texture2D( tColor, vUv, 2.0 * maxblur * abs( focus - depth.x ) );",
27
- " gl_FragColor = col;",
28
- " gl_FragColor.a = 1.0;",
29
- "}"
30
- ].join("\n")
10
+ vertexShader: (
11
+ /* glsl */
12
+ `
13
+ varying vec2 vUv;
14
+
15
+ void main() {
16
+
17
+ vUv = uv;
18
+ gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
19
+
20
+ }
21
+ `
22
+ ),
23
+ fragmentShader: (
24
+ /* glsl */
25
+ `
26
+ uniform float focus;
27
+ uniform float maxblur;
28
+
29
+ uniform sampler2D tColor;
30
+ uniform sampler2D tDepth;
31
+
32
+ varying vec2 vUv;
33
+
34
+ void main() {
35
+
36
+ vec4 depth = texture2D( tDepth, vUv );
37
+
38
+ float factor = depth.x - focus;
39
+
40
+ vec4 col = texture2D( tColor, vUv, 2.0 * maxblur * abs( focus - depth.x ) );
41
+
42
+ gl_FragColor = col;
43
+ gl_FragColor.a = 1.0;
44
+
45
+ }
46
+ `
47
+ )
31
48
  };
32
49
  exports.DOFMipMapShader = DOFMipMapShader;
33
50
  //# sourceMappingURL=DOFMipMapShader.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"DOFMipMapShader.cjs","sources":["../../src/shaders/DOFMipMapShader.ts"],"sourcesContent":["/**\n * Depth-of-field shader using mipmaps\n * - from Matt Handley @applmak\n * - requires power-of-2 sized render target with enabled mipmaps\n */\n\nexport const DOFMipMapShader = {\n uniforms: {\n tColor: { value: null },\n tDepth: { value: null },\n focus: { value: 1.0 },\n maxblur: { value: 1.0 },\n },\n\n vertexShader: [\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvUv = uv;',\n '\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );',\n\n '}',\n ].join('\\n'),\n\n fragmentShader: [\n 'uniform float focus;',\n 'uniform float maxblur;',\n\n 'uniform sampler2D tColor;',\n 'uniform sampler2D tDepth;',\n\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvec4 depth = texture2D( tDepth, vUv );',\n\n '\tfloat factor = depth.x - focus;',\n\n '\tvec4 col = texture2D( tColor, vUv, 2.0 * maxblur * abs( focus - depth.x ) );',\n\n '\tgl_FragColor = col;',\n '\tgl_FragColor.a = 1.0;',\n\n '}',\n ].join('\\n'),\n}\n"],"names":[],"mappings":";;AAMO,MAAM,kBAAkB;AAAA,EAC7B,UAAU;AAAA,IACR,QAAQ,EAAE,OAAO,KAAK;AAAA,IACtB,QAAQ,EAAE,OAAO,KAAK;AAAA,IACtB,OAAO,EAAE,OAAO,EAAI;AAAA,IACpB,SAAS,EAAE,OAAO,EAAI;AAAA,EACxB;AAAA,EAEA,cAAc;AAAA,IACZ;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AAAA,EAEX,gBAAgB;AAAA,IACd;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AACb;;"}
1
+ {"version":3,"file":"DOFMipMapShader.cjs","sources":["../../src/shaders/DOFMipMapShader.ts"],"sourcesContent":["/**\n * Depth-of-field shader using mipmaps\n * - from Matt Handley @applmak\n * - requires power-of-2 sized render target with enabled mipmaps\n */\n\nexport const DOFMipMapShader = {\n uniforms: {\n tColor: { value: null },\n tDepth: { value: null },\n focus: { value: 1.0 },\n maxblur: { value: 1.0 },\n },\n\n vertexShader: /* glsl */ `\n varying vec2 vUv;\n\n void main() {\n\n \tvUv = uv;\n \tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n `,\n\n fragmentShader: /* glsl */ `\n uniform float focus;\n uniform float maxblur;\n\n uniform sampler2D tColor;\n uniform sampler2D tDepth;\n\n varying vec2 vUv;\n\n void main() {\n\n \tvec4 depth = texture2D( tDepth, vUv );\n\n \tfloat factor = depth.x - focus;\n\n \tvec4 col = texture2D( tColor, vUv, 2.0 * maxblur * abs( focus - depth.x ) );\n\n \tgl_FragColor = col;\n \tgl_FragColor.a = 1.0;\n\n }\n `,\n}\n"],"names":[],"mappings":";;AAMO,MAAM,kBAAkB;AAAA,EAC7B,UAAU;AAAA,IACR,QAAQ,EAAE,OAAO,KAAK;AAAA,IACtB,QAAQ,EAAE,OAAO,KAAK;AAAA,IACtB,OAAO,EAAE,OAAO,EAAI;AAAA,IACpB,SAAS,EAAE,OAAO,EAAI;AAAA,EACxB;AAAA,EAEA;AAAA;AAAA,IAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWzB;AAAA;AAAA,IAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsB7B;;"}
@@ -5,27 +5,44 @@ const DOFMipMapShader = {
5
5
  focus: { value: 1 },
6
6
  maxblur: { value: 1 }
7
7
  },
8
- vertexShader: [
9
- "varying vec2 vUv;",
10
- "void main() {",
11
- " vUv = uv;",
12
- " gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
13
- "}"
14
- ].join("\n"),
15
- fragmentShader: [
16
- "uniform float focus;",
17
- "uniform float maxblur;",
18
- "uniform sampler2D tColor;",
19
- "uniform sampler2D tDepth;",
20
- "varying vec2 vUv;",
21
- "void main() {",
22
- " vec4 depth = texture2D( tDepth, vUv );",
23
- " float factor = depth.x - focus;",
24
- " vec4 col = texture2D( tColor, vUv, 2.0 * maxblur * abs( focus - depth.x ) );",
25
- " gl_FragColor = col;",
26
- " gl_FragColor.a = 1.0;",
27
- "}"
28
- ].join("\n")
8
+ vertexShader: (
9
+ /* glsl */
10
+ `
11
+ varying vec2 vUv;
12
+
13
+ void main() {
14
+
15
+ vUv = uv;
16
+ gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
17
+
18
+ }
19
+ `
20
+ ),
21
+ fragmentShader: (
22
+ /* glsl */
23
+ `
24
+ uniform float focus;
25
+ uniform float maxblur;
26
+
27
+ uniform sampler2D tColor;
28
+ uniform sampler2D tDepth;
29
+
30
+ varying vec2 vUv;
31
+
32
+ void main() {
33
+
34
+ vec4 depth = texture2D( tDepth, vUv );
35
+
36
+ float factor = depth.x - focus;
37
+
38
+ vec4 col = texture2D( tColor, vUv, 2.0 * maxblur * abs( focus - depth.x ) );
39
+
40
+ gl_FragColor = col;
41
+ gl_FragColor.a = 1.0;
42
+
43
+ }
44
+ `
45
+ )
29
46
  };
30
47
  export {
31
48
  DOFMipMapShader
@@ -1 +1 @@
1
- {"version":3,"file":"DOFMipMapShader.js","sources":["../../src/shaders/DOFMipMapShader.ts"],"sourcesContent":["/**\n * Depth-of-field shader using mipmaps\n * - from Matt Handley @applmak\n * - requires power-of-2 sized render target with enabled mipmaps\n */\n\nexport const DOFMipMapShader = {\n uniforms: {\n tColor: { value: null },\n tDepth: { value: null },\n focus: { value: 1.0 },\n maxblur: { value: 1.0 },\n },\n\n vertexShader: [\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvUv = uv;',\n '\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );',\n\n '}',\n ].join('\\n'),\n\n fragmentShader: [\n 'uniform float focus;',\n 'uniform float maxblur;',\n\n 'uniform sampler2D tColor;',\n 'uniform sampler2D tDepth;',\n\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvec4 depth = texture2D( tDepth, vUv );',\n\n '\tfloat factor = depth.x - focus;',\n\n '\tvec4 col = texture2D( tColor, vUv, 2.0 * maxblur * abs( focus - depth.x ) );',\n\n '\tgl_FragColor = col;',\n '\tgl_FragColor.a = 1.0;',\n\n '}',\n ].join('\\n'),\n}\n"],"names":[],"mappings":"AAMO,MAAM,kBAAkB;AAAA,EAC7B,UAAU;AAAA,IACR,QAAQ,EAAE,OAAO,KAAK;AAAA,IACtB,QAAQ,EAAE,OAAO,KAAK;AAAA,IACtB,OAAO,EAAE,OAAO,EAAI;AAAA,IACpB,SAAS,EAAE,OAAO,EAAI;AAAA,EACxB;AAAA,EAEA,cAAc;AAAA,IACZ;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AAAA,EAEX,gBAAgB;AAAA,IACd;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AACb;"}
1
+ {"version":3,"file":"DOFMipMapShader.js","sources":["../../src/shaders/DOFMipMapShader.ts"],"sourcesContent":["/**\n * Depth-of-field shader using mipmaps\n * - from Matt Handley @applmak\n * - requires power-of-2 sized render target with enabled mipmaps\n */\n\nexport const DOFMipMapShader = {\n uniforms: {\n tColor: { value: null },\n tDepth: { value: null },\n focus: { value: 1.0 },\n maxblur: { value: 1.0 },\n },\n\n vertexShader: /* glsl */ `\n varying vec2 vUv;\n\n void main() {\n\n \tvUv = uv;\n \tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n `,\n\n fragmentShader: /* glsl */ `\n uniform float focus;\n uniform float maxblur;\n\n uniform sampler2D tColor;\n uniform sampler2D tDepth;\n\n varying vec2 vUv;\n\n void main() {\n\n \tvec4 depth = texture2D( tDepth, vUv );\n\n \tfloat factor = depth.x - focus;\n\n \tvec4 col = texture2D( tColor, vUv, 2.0 * maxblur * abs( focus - depth.x ) );\n\n \tgl_FragColor = col;\n \tgl_FragColor.a = 1.0;\n\n }\n `,\n}\n"],"names":[],"mappings":"AAMO,MAAM,kBAAkB;AAAA,EAC7B,UAAU;AAAA,IACR,QAAQ,EAAE,OAAO,KAAK;AAAA,IACtB,QAAQ,EAAE,OAAO,KAAK;AAAA,IACtB,OAAO,EAAE,OAAO,EAAI;AAAA,IACpB,SAAS,EAAE,OAAO,EAAI;AAAA,EACxB;AAAA,EAEA;AAAA;AAAA,IAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWzB;AAAA;AAAA,IAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsB7B;"}
@@ -9,81 +9,110 @@ const DepthLimitedBlurShader = {
9
9
  },
10
10
  uniforms: {
11
11
  tDiffuse: { value: null },
12
- size: { value: new THREE.Vector2(512, 512) },
13
- sampleUvOffsets: { value: [new THREE.Vector2(0, 0)] },
12
+ size: { value: /* @__PURE__ */ new THREE.Vector2(512, 512) },
13
+ sampleUvOffsets: { value: [/* @__PURE__ */ new THREE.Vector2(0, 0)] },
14
14
  sampleWeights: { value: [1] },
15
15
  tDepth: { value: null },
16
16
  cameraNear: { value: 10 },
17
17
  cameraFar: { value: 1e3 },
18
18
  depthCutoff: { value: 10 }
19
19
  },
20
- vertexShader: [
21
- "#include <common>",
22
- "uniform vec2 size;",
23
- "varying vec2 vUv;",
24
- "varying vec2 vInvSize;",
25
- "void main() {",
26
- " vUv = uv;",
27
- " vInvSize = 1.0 / size;",
28
- " gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
29
- "}"
30
- ].join("\n"),
31
- fragmentShader: [
32
- "#include <common>",
33
- "#include <packing>",
34
- "uniform sampler2D tDiffuse;",
35
- "uniform sampler2D tDepth;",
36
- "uniform float cameraNear;",
37
- "uniform float cameraFar;",
38
- "uniform float depthCutoff;",
39
- "uniform vec2 sampleUvOffsets[ KERNEL_RADIUS + 1 ];",
40
- "uniform float sampleWeights[ KERNEL_RADIUS + 1 ];",
41
- "varying vec2 vUv;",
42
- "varying vec2 vInvSize;",
43
- "float getDepth( const in vec2 screenPosition ) {",
44
- " #if DEPTH_PACKING == 1",
45
- " return unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );",
46
- " #else",
47
- " return texture2D( tDepth, screenPosition ).x;",
48
- " #endif",
49
- "}",
50
- "float getViewZ( const in float depth ) {",
51
- " #if PERSPECTIVE_CAMERA == 1",
52
- " return perspectiveDepthToViewZ( depth, cameraNear, cameraFar );",
53
- " #else",
54
- " return orthographicDepthToViewZ( depth, cameraNear, cameraFar );",
55
- " #endif",
56
- "}",
57
- "void main() {",
58
- " float depth = getDepth( vUv );",
59
- " if( depth >= ( 1.0 - EPSILON ) ) {",
60
- " discard;",
61
- " }",
62
- " float centerViewZ = -getViewZ( depth );",
63
- " bool rBreak = false, lBreak = false;",
64
- " float weightSum = sampleWeights[0];",
65
- " vec4 diffuseSum = texture2D( tDiffuse, vUv ) * weightSum;",
66
- " for( int i = 1; i <= KERNEL_RADIUS; i ++ ) {",
67
- " float sampleWeight = sampleWeights[i];",
68
- " vec2 sampleUvOffset = sampleUvOffsets[i] * vInvSize;",
69
- " vec2 sampleUv = vUv + sampleUvOffset;",
70
- " float viewZ = -getViewZ( getDepth( sampleUv ) );",
71
- " if( abs( viewZ - centerViewZ ) > depthCutoff ) rBreak = true;",
72
- " if( ! rBreak ) {",
73
- " diffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight;",
74
- " weightSum += sampleWeight;",
75
- " }",
76
- " sampleUv = vUv - sampleUvOffset;",
77
- " viewZ = -getViewZ( getDepth( sampleUv ) );",
78
- " if( abs( viewZ - centerViewZ ) > depthCutoff ) lBreak = true;",
79
- " if( ! lBreak ) {",
80
- " diffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight;",
81
- " weightSum += sampleWeight;",
82
- " }",
83
- " }",
84
- " gl_FragColor = diffuseSum / weightSum;",
85
- "}"
86
- ].join("\n")
20
+ vertexShader: (
21
+ /* glsl */
22
+ `
23
+ #include <common>
24
+
25
+ uniform vec2 size;
26
+
27
+ varying vec2 vUv;
28
+ varying vec2 vInvSize;
29
+
30
+ void main() {
31
+ vUv = uv;
32
+ vInvSize = 1.0 / size;
33
+
34
+ gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
35
+ }
36
+ `
37
+ ),
38
+ fragmentShader: (
39
+ /* glsl */
40
+ `
41
+ #include <common>
42
+ #include <packing>
43
+
44
+ uniform sampler2D tDiffuse;
45
+ uniform sampler2D tDepth;
46
+
47
+ uniform float cameraNear;
48
+ uniform float cameraFar;
49
+ uniform float depthCutoff;
50
+
51
+ uniform vec2 sampleUvOffsets[ KERNEL_RADIUS + 1 ];
52
+ uniform float sampleWeights[ KERNEL_RADIUS + 1 ];
53
+
54
+ varying vec2 vUv;
55
+ varying vec2 vInvSize;
56
+
57
+ float getDepth( const in vec2 screenPosition ) {
58
+ #if DEPTH_PACKING == 1
59
+ return unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );
60
+ #else
61
+ return texture2D( tDepth, screenPosition ).x;
62
+ #endif
63
+ }
64
+
65
+ float getViewZ( const in float depth ) {
66
+ #if PERSPECTIVE_CAMERA == 1
67
+ return perspectiveDepthToViewZ( depth, cameraNear, cameraFar );
68
+ #else
69
+ return orthographicDepthToViewZ( depth, cameraNear, cameraFar );
70
+ #endif
71
+ }
72
+
73
+ void main() {
74
+ float depth = getDepth( vUv );
75
+ if( depth >= ( 1.0 - EPSILON ) ) {
76
+ discard;
77
+ }
78
+
79
+ float centerViewZ = -getViewZ( depth );
80
+ bool rBreak = false, lBreak = false;
81
+
82
+ float weightSum = sampleWeights[0];
83
+ vec4 diffuseSum = texture2D( tDiffuse, vUv ) * weightSum;
84
+
85
+ for( int i = 1; i <= KERNEL_RADIUS; i ++ ) {
86
+
87
+ float sampleWeight = sampleWeights[i];
88
+ vec2 sampleUvOffset = sampleUvOffsets[i] * vInvSize;
89
+
90
+ vec2 sampleUv = vUv + sampleUvOffset;
91
+ float viewZ = -getViewZ( getDepth( sampleUv ) );
92
+
93
+ if( abs( viewZ - centerViewZ ) > depthCutoff ) rBreak = true;
94
+
95
+ if( ! rBreak ) {
96
+ diffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight;
97
+ weightSum += sampleWeight;
98
+ }
99
+
100
+ sampleUv = vUv - sampleUvOffset;
101
+ viewZ = -getViewZ( getDepth( sampleUv ) );
102
+
103
+ if( abs( viewZ - centerViewZ ) > depthCutoff ) lBreak = true;
104
+
105
+ if( ! lBreak ) {
106
+ diffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight;
107
+ weightSum += sampleWeight;
108
+ }
109
+
110
+ }
111
+
112
+ gl_FragColor = diffuseSum / weightSum;
113
+ }
114
+ `
115
+ )
87
116
  };
88
117
  const BlurShaderUtils = {
89
118
  createSampleWeights: (kernelRadius, stdDev) => {
@@ -1 +1 @@
1
- {"version":3,"file":"DepthLimitedBlurShader.cjs","sources":["../../src/shaders/DepthLimitedBlurShader.ts"],"sourcesContent":["import { Vector2 } from 'three'\nimport type { IUniform, Texture } from 'three'\nimport type { IShader } from './types'\n\nexport type DepthLimitedBlurShaderDefines = {\n DEPTH_PACKING: number\n KERNEL_RADIUS: number\n PERSPECTIVE_CAMERA: number\n}\n\nexport type DepthLimitedBlurShaderUniforms = {\n cameraFar: IUniform<number>\n cameraNear: IUniform<number>\n depthCutoff: IUniform<number>\n sampleUvOffsets: IUniform<Vector2[]>\n sampleWeights: IUniform<number[]>\n size: IUniform<Vector2>\n tDepth: IUniform<Texture | null>\n tDiffuse: IUniform<Texture | null>\n}\n\nexport interface IDepthLimitedBlurShader\n extends IShader<DepthLimitedBlurShaderUniforms, DepthLimitedBlurShaderDefines> {\n defines: DepthLimitedBlurShaderDefines\n needsUpdate?: boolean\n}\n\nexport const DepthLimitedBlurShader: IDepthLimitedBlurShader = {\n defines: {\n KERNEL_RADIUS: 4,\n DEPTH_PACKING: 1,\n PERSPECTIVE_CAMERA: 1,\n },\n uniforms: {\n tDiffuse: { value: null },\n size: { value: new Vector2(512, 512) },\n sampleUvOffsets: { value: [new Vector2(0, 0)] },\n sampleWeights: { value: [1.0] },\n tDepth: { value: null },\n cameraNear: { value: 10 },\n cameraFar: { value: 1000 },\n depthCutoff: { value: 10 },\n },\n vertexShader: [\n '#include <common>',\n\n 'uniform vec2 size;',\n\n 'varying vec2 vUv;',\n 'varying vec2 vInvSize;',\n\n 'void main() {',\n '\tvUv = uv;',\n '\tvInvSize = 1.0 / size;',\n\n '\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );',\n '}',\n ].join('\\n'),\n fragmentShader: [\n '#include <common>',\n '#include <packing>',\n\n 'uniform sampler2D tDiffuse;',\n 'uniform sampler2D tDepth;',\n\n 'uniform float cameraNear;',\n 'uniform float cameraFar;',\n 'uniform float depthCutoff;',\n\n 'uniform vec2 sampleUvOffsets[ KERNEL_RADIUS + 1 ];',\n 'uniform float sampleWeights[ KERNEL_RADIUS + 1 ];',\n\n 'varying vec2 vUv;',\n 'varying vec2 vInvSize;',\n\n 'float getDepth( const in vec2 screenPosition ) {',\n '\t#if DEPTH_PACKING == 1',\n '\treturn unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );',\n '\t#else',\n '\treturn texture2D( tDepth, screenPosition ).x;',\n '\t#endif',\n '}',\n\n 'float getViewZ( const in float depth ) {',\n '\t#if PERSPECTIVE_CAMERA == 1',\n '\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );',\n '\t#else',\n '\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );',\n '\t#endif',\n '}',\n\n 'void main() {',\n '\tfloat depth = getDepth( vUv );',\n '\tif( depth >= ( 1.0 - EPSILON ) ) {',\n '\t\tdiscard;',\n '\t}',\n\n '\tfloat centerViewZ = -getViewZ( depth );',\n '\tbool rBreak = false, lBreak = false;',\n\n '\tfloat weightSum = sampleWeights[0];',\n '\tvec4 diffuseSum = texture2D( tDiffuse, vUv ) * weightSum;',\n\n '\tfor( int i = 1; i <= KERNEL_RADIUS; i ++ ) {',\n\n '\t\tfloat sampleWeight = sampleWeights[i];',\n '\t\tvec2 sampleUvOffset = sampleUvOffsets[i] * vInvSize;',\n\n '\t\tvec2 sampleUv = vUv + sampleUvOffset;',\n '\t\tfloat viewZ = -getViewZ( getDepth( sampleUv ) );',\n\n '\t\tif( abs( viewZ - centerViewZ ) > depthCutoff ) rBreak = true;',\n\n '\t\tif( ! rBreak ) {',\n '\t\t\tdiffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight;',\n '\t\t\tweightSum += sampleWeight;',\n '\t\t}',\n\n '\t\tsampleUv = vUv - sampleUvOffset;',\n '\t\tviewZ = -getViewZ( getDepth( sampleUv ) );',\n\n '\t\tif( abs( viewZ - centerViewZ ) > depthCutoff ) lBreak = true;',\n\n '\t\tif( ! lBreak ) {',\n '\t\t\tdiffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight;',\n '\t\t\tweightSum += sampleWeight;',\n '\t\t}',\n\n '\t}',\n\n '\tgl_FragColor = diffuseSum / weightSum;',\n '}',\n ].join('\\n'),\n}\n\nexport const BlurShaderUtils = {\n createSampleWeights: (kernelRadius: number, stdDev: number): number[] => {\n const gaussian = (x: number, stdDev: number): number => {\n return Math.exp(-(x * x) / (2.0 * (stdDev * stdDev))) / (Math.sqrt(2.0 * Math.PI) * stdDev)\n }\n\n const weights: number[] = []\n\n for (let i = 0; i <= kernelRadius; i++) {\n weights.push(gaussian(i, stdDev))\n }\n\n return weights\n },\n\n createSampleOffsets: (kernelRadius: number, uvIncrement: Vector2): Vector2[] => {\n const offsets: Vector2[] = []\n\n for (let i = 0; i <= kernelRadius; i++) {\n offsets.push(uvIncrement.clone().multiplyScalar(i))\n }\n\n return offsets\n },\n\n configure: (shader: IDepthLimitedBlurShader, kernelRadius: number, stdDev: number, uvIncrement: Vector2): void => {\n shader.defines['KERNEL_RADIUS'] = kernelRadius\n shader.uniforms['sampleUvOffsets'].value = BlurShaderUtils.createSampleOffsets(kernelRadius, uvIncrement)\n shader.uniforms['sampleWeights'].value = BlurShaderUtils.createSampleWeights(kernelRadius, stdDev)\n shader.needsUpdate = true\n },\n}\n"],"names":["Vector2","stdDev"],"mappings":";;;AA2BO,MAAM,yBAAkD;AAAA,EAC7D,SAAS;AAAA,IACP,eAAe;AAAA,IACf,eAAe;AAAA,IACf,oBAAoB;AAAA,EACtB;AAAA,EACA,UAAU;AAAA,IACR,UAAU,EAAE,OAAO,KAAK;AAAA,IACxB,MAAM,EAAE,OAAO,IAAIA,MAAQ,QAAA,KAAK,GAAG,EAAE;AAAA,IACrC,iBAAiB,EAAE,OAAO,CAAC,IAAIA,MAAQ,QAAA,GAAG,CAAC,CAAC,EAAE;AAAA,IAC9C,eAAe,EAAE,OAAO,CAAC,CAAG,EAAE;AAAA,IAC9B,QAAQ,EAAE,OAAO,KAAK;AAAA,IACtB,YAAY,EAAE,OAAO,GAAG;AAAA,IACxB,WAAW,EAAE,OAAO,IAAK;AAAA,IACzB,aAAa,EAAE,OAAO,GAAG;AAAA,EAC3B;AAAA,EACA,cAAc;AAAA,IACZ;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,EAAA,EACA,KAAK,IAAI;AAAA,EACX,gBAAgB;AAAA,IACd;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,EAAA,EACA,KAAK,IAAI;AACb;AAEO,MAAM,kBAAkB;AAAA,EAC7B,qBAAqB,CAAC,cAAsB,WAA6B;AACjE,UAAA,WAAW,CAAC,GAAWC,YAA2B;AACtD,aAAO,KAAK,IAAI,EAAE,IAAI,MAAM,KAAOA,UAASA,SAAQ,KAAK,KAAK,KAAK,IAAM,KAAK,EAAE,IAAIA;AAAAA,IAAA;AAGtF,UAAM,UAAoB,CAAA;AAE1B,aAAS,IAAI,GAAG,KAAK,cAAc,KAAK;AACtC,cAAQ,KAAK,SAAS,GAAG,MAAM,CAAC;AAAA,IAClC;AAEO,WAAA;AAAA,EACT;AAAA,EAEA,qBAAqB,CAAC,cAAsB,gBAAoC;AAC9E,UAAM,UAAqB,CAAA;AAE3B,aAAS,IAAI,GAAG,KAAK,cAAc,KAAK;AACtC,cAAQ,KAAK,YAAY,MAAQ,EAAA,eAAe,CAAC,CAAC;AAAA,IACpD;AAEO,WAAA;AAAA,EACT;AAAA,EAEA,WAAW,CAAC,QAAiC,cAAsB,QAAgB,gBAA+B;AACzG,WAAA,QAAQ,eAAe,IAAI;AAClC,WAAO,SAAS,iBAAiB,EAAE,QAAQ,gBAAgB,oBAAoB,cAAc,WAAW;AACxG,WAAO,SAAS,eAAe,EAAE,QAAQ,gBAAgB,oBAAoB,cAAc,MAAM;AACjG,WAAO,cAAc;AAAA,EACvB;AACF;;;"}
1
+ {"version":3,"file":"DepthLimitedBlurShader.cjs","sources":["../../src/shaders/DepthLimitedBlurShader.ts"],"sourcesContent":["import { Vector2 } from 'three'\nimport type { IUniform, Texture } from 'three'\nimport type { IShader } from './types'\n\nexport type DepthLimitedBlurShaderDefines = {\n DEPTH_PACKING: number\n KERNEL_RADIUS: number\n PERSPECTIVE_CAMERA: number\n}\n\nexport type DepthLimitedBlurShaderUniforms = {\n cameraFar: IUniform<number>\n cameraNear: IUniform<number>\n depthCutoff: IUniform<number>\n sampleUvOffsets: IUniform<Vector2[]>\n sampleWeights: IUniform<number[]>\n size: IUniform<Vector2>\n tDepth: IUniform<Texture | null>\n tDiffuse: IUniform<Texture | null>\n}\n\nexport interface IDepthLimitedBlurShader\n extends IShader<DepthLimitedBlurShaderUniforms, DepthLimitedBlurShaderDefines> {\n defines: DepthLimitedBlurShaderDefines\n needsUpdate?: boolean\n}\n\nexport const DepthLimitedBlurShader: IDepthLimitedBlurShader = {\n defines: {\n KERNEL_RADIUS: 4,\n DEPTH_PACKING: 1,\n PERSPECTIVE_CAMERA: 1,\n },\n uniforms: {\n tDiffuse: { value: null },\n size: { value: /* @__PURE__ */ new Vector2(512, 512) },\n sampleUvOffsets: { value: [/* @__PURE__ */ new Vector2(0, 0)] },\n sampleWeights: { value: [1.0] },\n tDepth: { value: null },\n cameraNear: { value: 10 },\n cameraFar: { value: 1000 },\n depthCutoff: { value: 10 },\n },\n vertexShader: /* glsl */ `\n #include <common>\n\n uniform vec2 size;\n\n varying vec2 vUv;\n varying vec2 vInvSize;\n\n void main() {\n \tvUv = uv;\n \tvInvSize = 1.0 / size;\n\n \tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }\n `,\n fragmentShader: /* glsl */ `\n #include <common>\n #include <packing>\n\n uniform sampler2D tDiffuse;\n uniform sampler2D tDepth;\n\n uniform float cameraNear;\n uniform float cameraFar;\n uniform float depthCutoff;\n\n uniform vec2 sampleUvOffsets[ KERNEL_RADIUS + 1 ];\n uniform float sampleWeights[ KERNEL_RADIUS + 1 ];\n\n varying vec2 vUv;\n varying vec2 vInvSize;\n\n float getDepth( const in vec2 screenPosition ) {\n \t#if DEPTH_PACKING == 1\n \treturn unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );\n \t#else\n \treturn texture2D( tDepth, screenPosition ).x;\n \t#endif\n }\n\n float getViewZ( const in float depth ) {\n \t#if PERSPECTIVE_CAMERA == 1\n \treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\n \t#else\n \treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\n \t#endif\n }\n\n void main() {\n \tfloat depth = getDepth( vUv );\n \tif( depth >= ( 1.0 - EPSILON ) ) {\n \t\tdiscard;\n \t}\n\n \tfloat centerViewZ = -getViewZ( depth );\n \tbool rBreak = false, lBreak = false;\n\n \tfloat weightSum = sampleWeights[0];\n \tvec4 diffuseSum = texture2D( tDiffuse, vUv ) * weightSum;\n\n \tfor( int i = 1; i <= KERNEL_RADIUS; i ++ ) {\n\n \t\tfloat sampleWeight = sampleWeights[i];\n \t\tvec2 sampleUvOffset = sampleUvOffsets[i] * vInvSize;\n\n \t\tvec2 sampleUv = vUv + sampleUvOffset;\n \t\tfloat viewZ = -getViewZ( getDepth( sampleUv ) );\n\n \t\tif( abs( viewZ - centerViewZ ) > depthCutoff ) rBreak = true;\n\n \t\tif( ! rBreak ) {\n \t\t\tdiffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight;\n \t\t\tweightSum += sampleWeight;\n \t\t}\n\n \t\tsampleUv = vUv - sampleUvOffset;\n \t\tviewZ = -getViewZ( getDepth( sampleUv ) );\n\n \t\tif( abs( viewZ - centerViewZ ) > depthCutoff ) lBreak = true;\n\n \t\tif( ! lBreak ) {\n \t\t\tdiffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight;\n \t\t\tweightSum += sampleWeight;\n \t\t}\n\n \t}\n\n \tgl_FragColor = diffuseSum / weightSum;\n }\n `,\n}\n\nexport const BlurShaderUtils = {\n createSampleWeights: (kernelRadius: number, stdDev: number): number[] => {\n const gaussian = (x: number, stdDev: number): number => {\n return Math.exp(-(x * x) / (2.0 * (stdDev * stdDev))) / (Math.sqrt(2.0 * Math.PI) * stdDev)\n }\n\n const weights: number[] = []\n\n for (let i = 0; i <= kernelRadius; i++) {\n weights.push(gaussian(i, stdDev))\n }\n\n return weights\n },\n\n createSampleOffsets: (kernelRadius: number, uvIncrement: Vector2): Vector2[] => {\n const offsets: Vector2[] = []\n\n for (let i = 0; i <= kernelRadius; i++) {\n offsets.push(uvIncrement.clone().multiplyScalar(i))\n }\n\n return offsets\n },\n\n configure: (shader: IDepthLimitedBlurShader, kernelRadius: number, stdDev: number, uvIncrement: Vector2): void => {\n shader.defines['KERNEL_RADIUS'] = kernelRadius\n shader.uniforms['sampleUvOffsets'].value = BlurShaderUtils.createSampleOffsets(kernelRadius, uvIncrement)\n shader.uniforms['sampleWeights'].value = BlurShaderUtils.createSampleWeights(kernelRadius, stdDev)\n shader.needsUpdate = true\n },\n}\n"],"names":["Vector2","stdDev"],"mappings":";;;AA2BO,MAAM,yBAAkD;AAAA,EAC7D,SAAS;AAAA,IACP,eAAe;AAAA,IACf,eAAe;AAAA,IACf,oBAAoB;AAAA,EACtB;AAAA,EACA,UAAU;AAAA,IACR,UAAU,EAAE,OAAO,KAAK;AAAA,IACxB,MAAM,EAAE,2BAA2BA,MAAQ,QAAA,KAAK,GAAG,EAAE;AAAA,IACrD,iBAAiB,EAAE,OAAO,qBAAqBA,MAAQ,QAAA,GAAG,CAAC,CAAC,EAAE;AAAA,IAC9D,eAAe,EAAE,OAAO,CAAC,CAAG,EAAE;AAAA,IAC9B,QAAQ,EAAE,OAAO,KAAK;AAAA,IACtB,YAAY,EAAE,OAAO,GAAG;AAAA,IACxB,WAAW,EAAE,OAAO,IAAK;AAAA,IACzB,aAAa,EAAE,OAAO,GAAG;AAAA,EAC3B;AAAA,EACA;AAAA;AAAA,IAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAezB;AAAA;AAAA,IAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2E7B;AAEO,MAAM,kBAAkB;AAAA,EAC7B,qBAAqB,CAAC,cAAsB,WAA6B;AACjE,UAAA,WAAW,CAAC,GAAWC,YAA2B;AACtD,aAAO,KAAK,IAAI,EAAE,IAAI,MAAM,KAAOA,UAASA,SAAQ,KAAK,KAAK,KAAK,IAAM,KAAK,EAAE,IAAIA;AAAAA,IAAA;AAGtF,UAAM,UAAoB,CAAA;AAE1B,aAAS,IAAI,GAAG,KAAK,cAAc,KAAK;AACtC,cAAQ,KAAK,SAAS,GAAG,MAAM,CAAC;AAAA,IAClC;AAEO,WAAA;AAAA,EACT;AAAA,EAEA,qBAAqB,CAAC,cAAsB,gBAAoC;AAC9E,UAAM,UAAqB,CAAA;AAE3B,aAAS,IAAI,GAAG,KAAK,cAAc,KAAK;AACtC,cAAQ,KAAK,YAAY,MAAQ,EAAA,eAAe,CAAC,CAAC;AAAA,IACpD;AAEO,WAAA;AAAA,EACT;AAAA,EAEA,WAAW,CAAC,QAAiC,cAAsB,QAAgB,gBAA+B;AACzG,WAAA,QAAQ,eAAe,IAAI;AAClC,WAAO,SAAS,iBAAiB,EAAE,QAAQ,gBAAgB,oBAAoB,cAAc,WAAW;AACxG,WAAO,SAAS,eAAe,EAAE,QAAQ,gBAAgB,oBAAoB,cAAc,MAAM;AACjG,WAAO,cAAc;AAAA,EACvB;AACF;;;"}