three-stdlib 2.35.4 → 2.35.5

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 +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":"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;;"}
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;;"}
@@ -6,51 +6,32 @@ const ConvolutionShader = {
6
6
  },
7
7
  uniforms: {
8
8
  tDiffuse: { value: null },
9
- uImageIncrement: { value: /* @__PURE__ */ new Vector2(1953125e-9, 0) },
9
+ uImageIncrement: { value: new Vector2(1953125e-9, 0) },
10
10
  cKernel: { value: [] }
11
11
  },
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
- ),
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"),
54
35
  buildKernel: function(sigma) {
55
36
  function gauss(x, sigma2) {
56
37
  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: /* @__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;"}
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;"}
@@ -5,36 +5,22 @@ const CopyShader = {
5
5
  tDiffuse: { value: null },
6
6
  opacity: { value: 1 }
7
7
  },
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
- )
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")
38
24
  };
39
25
  exports.CopyShader = CopyShader;
40
26
  //# 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: /* 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;;"}
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;;"}
@@ -3,36 +3,22 @@ const CopyShader = {
3
3
  tDiffuse: { value: null },
4
4
  opacity: { value: 1 }
5
5
  },
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
- )
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")
36
22
  };
37
23
  export {
38
24
  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: /* 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;"}
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;"}
@@ -7,44 +7,27 @@ const DOFMipMapShader = {
7
7
  focus: { value: 1 },
8
8
  maxblur: { value: 1 }
9
9
  },
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
- )
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")
48
31
  };
49
32
  exports.DOFMipMapShader = DOFMipMapShader;
50
33
  //# 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: /* 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;;"}
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;;"}
@@ -5,44 +5,27 @@ const DOFMipMapShader = {
5
5
  focus: { value: 1 },
6
6
  maxblur: { value: 1 }
7
7
  },
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
- )
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")
46
29
  };
47
30
  export {
48
31
  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: /* 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;"}
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;"}
@@ -9,110 +9,81 @@ const DepthLimitedBlurShader = {
9
9
  },
10
10
  uniforms: {
11
11
  tDiffuse: { value: null },
12
- size: { value: /* @__PURE__ */ new THREE.Vector2(512, 512) },
13
- sampleUvOffsets: { value: [/* @__PURE__ */ new THREE.Vector2(0, 0)] },
12
+ size: { value: new THREE.Vector2(512, 512) },
13
+ sampleUvOffsets: { value: [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
- /* 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
- )
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")
116
87
  };
117
88
  const BlurShaderUtils = {
118
89
  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: /* @__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;;;"}
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;;;"}