three-stdlib 2.35.4 → 2.35.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (514) hide show
  1. package/_polyfill/CapsuleGeometry.cjs +17 -20
  2. package/_polyfill/CapsuleGeometry.cjs.map +1 -1
  3. package/_polyfill/CapsuleGeometry.js +17 -20
  4. package/_polyfill/CapsuleGeometry.js.map +1 -1
  5. package/_polyfill/constants.cjs +1 -1
  6. package/_polyfill/constants.cjs.map +1 -1
  7. package/_polyfill/constants.js +1 -1
  8. package/_polyfill/constants.js.map +1 -1
  9. package/animation/AnimationClipCreator.cjs +13 -13
  10. package/animation/AnimationClipCreator.cjs.map +1 -1
  11. package/animation/AnimationClipCreator.js +13 -13
  12. package/animation/AnimationClipCreator.js.map +1 -1
  13. package/animation/CCDIKSolver.cjs +11 -11
  14. package/animation/CCDIKSolver.cjs.map +1 -1
  15. package/animation/CCDIKSolver.js +12 -12
  16. package/animation/CCDIKSolver.js.map +1 -1
  17. package/animation/MMDAnimationHelper.cjs +1 -1
  18. package/animation/MMDAnimationHelper.cjs.map +1 -1
  19. package/animation/MMDAnimationHelper.js +1 -1
  20. package/animation/MMDAnimationHelper.js.map +1 -1
  21. package/animation/MMDPhysics.cjs +4 -4
  22. package/animation/MMDPhysics.cjs.map +1 -1
  23. package/animation/MMDPhysics.js +4 -4
  24. package/animation/MMDPhysics.js.map +1 -1
  25. package/controls/ArcballControls.cjs +2 -2
  26. package/controls/ArcballControls.cjs.map +1 -1
  27. package/controls/ArcballControls.js +3 -3
  28. package/controls/ArcballControls.js.map +1 -1
  29. package/controls/FirstPersonControls.cjs +1 -1
  30. package/controls/FirstPersonControls.cjs.map +1 -1
  31. package/controls/FirstPersonControls.js +1 -1
  32. package/controls/FirstPersonControls.js.map +1 -1
  33. package/controls/OrbitControls.cjs +2 -2
  34. package/controls/OrbitControls.cjs.map +1 -1
  35. package/controls/OrbitControls.js +3 -3
  36. package/controls/OrbitControls.js.map +1 -1
  37. package/controls/PointerLockControls.cjs +2 -2
  38. package/controls/PointerLockControls.cjs.map +1 -1
  39. package/controls/PointerLockControls.js +3 -3
  40. package/controls/PointerLockControls.js.map +1 -1
  41. package/csm/CSM.cjs +4 -4
  42. package/csm/CSM.cjs.map +1 -1
  43. package/csm/CSM.js +5 -5
  44. package/csm/CSM.js.map +1 -1
  45. package/csm/CSMFrustum.cjs +1 -1
  46. package/csm/CSMFrustum.cjs.map +1 -1
  47. package/csm/CSMFrustum.js +2 -2
  48. package/csm/CSMFrustum.js.map +1 -1
  49. package/deprecated/Geometry.cjs +715 -722
  50. package/deprecated/Geometry.cjs.map +1 -1
  51. package/deprecated/Geometry.js +716 -723
  52. package/deprecated/Geometry.js.map +1 -1
  53. package/effects/AnaglyphEffect.cjs +1 -2
  54. package/effects/AnaglyphEffect.cjs.map +1 -1
  55. package/effects/AnaglyphEffect.js +2 -3
  56. package/effects/AnaglyphEffect.js.map +1 -1
  57. package/effects/OutlineEffect.cjs +1 -2
  58. package/effects/OutlineEffect.cjs.map +1 -1
  59. package/effects/OutlineEffect.js +2 -3
  60. package/effects/OutlineEffect.js.map +1 -1
  61. package/effects/ParallaxBarrierEffect.cjs +1 -2
  62. package/effects/ParallaxBarrierEffect.cjs.map +1 -1
  63. package/effects/ParallaxBarrierEffect.js +2 -3
  64. package/effects/ParallaxBarrierEffect.js.map +1 -1
  65. package/exporters/DRACOExporter.cjs +122 -133
  66. package/exporters/DRACOExporter.cjs.map +1 -1
  67. package/exporters/DRACOExporter.d.ts +21 -23
  68. package/exporters/DRACOExporter.js +122 -133
  69. package/exporters/DRACOExporter.js.map +1 -1
  70. package/exporters/GLTFExporter.cjs +167 -170
  71. package/exporters/GLTFExporter.cjs.map +1 -1
  72. package/exporters/GLTFExporter.js +167 -170
  73. package/exporters/GLTFExporter.js.map +1 -1
  74. package/geometries/LightningStrike.cjs +515 -524
  75. package/geometries/LightningStrike.cjs.map +1 -1
  76. package/geometries/LightningStrike.js +515 -524
  77. package/geometries/LightningStrike.js.map +1 -1
  78. package/geometries/RoundedBoxGeometry.cjs +1 -1
  79. package/geometries/RoundedBoxGeometry.cjs.map +1 -1
  80. package/geometries/RoundedBoxGeometry.js +2 -2
  81. package/geometries/RoundedBoxGeometry.js.map +1 -1
  82. package/helpers/RaycasterHelper.cjs +2 -2
  83. package/helpers/RaycasterHelper.cjs.map +1 -1
  84. package/helpers/RaycasterHelper.js +3 -3
  85. package/helpers/RaycasterHelper.js.map +1 -1
  86. package/helpers/VertexNormalsHelper.cjs +3 -3
  87. package/helpers/VertexNormalsHelper.cjs.map +1 -1
  88. package/helpers/VertexNormalsHelper.js +4 -4
  89. package/helpers/VertexNormalsHelper.js.map +1 -1
  90. package/helpers/VertexTangentsHelper.cjs +2 -2
  91. package/helpers/VertexTangentsHelper.cjs.map +1 -1
  92. package/helpers/VertexTangentsHelper.js +3 -3
  93. package/helpers/VertexTangentsHelper.js.map +1 -1
  94. package/interactive/InteractiveGroup.cjs +1 -1
  95. package/interactive/InteractiveGroup.cjs.map +1 -1
  96. package/interactive/InteractiveGroup.js +2 -2
  97. package/interactive/InteractiveGroup.js.map +1 -1
  98. package/interactive/SelectionBox.cjs +15 -15
  99. package/interactive/SelectionBox.cjs.map +1 -1
  100. package/interactive/SelectionBox.js +16 -16
  101. package/interactive/SelectionBox.js.map +1 -1
  102. package/libs/chevrotain.cjs +1 -1
  103. package/libs/chevrotain.cjs.map +1 -1
  104. package/libs/chevrotain.js +1 -1
  105. package/libs/chevrotain.js.map +1 -1
  106. package/libs/lottie.cjs +1 -1
  107. package/libs/lottie.cjs.map +1 -1
  108. package/libs/lottie.js +1 -1
  109. package/libs/lottie.js.map +1 -1
  110. package/libs/opentype.cjs +1 -1
  111. package/libs/opentype.cjs.map +1 -1
  112. package/libs/opentype.js +1 -1
  113. package/libs/opentype.js.map +1 -1
  114. package/lights/LightProbeGenerator.cjs +5 -5
  115. package/lights/LightProbeGenerator.cjs.map +1 -1
  116. package/lights/LightProbeGenerator.js +5 -5
  117. package/lights/LightProbeGenerator.js.map +1 -1
  118. package/lights/RectAreaLightUniformsLib.cjs +3 -3
  119. package/lights/RectAreaLightUniformsLib.cjs.map +1 -1
  120. package/lights/RectAreaLightUniformsLib.js +3 -3
  121. package/lights/RectAreaLightUniformsLib.js.map +1 -1
  122. package/lines/LineMaterial.cjs +1 -2
  123. package/lines/LineMaterial.cjs.map +1 -1
  124. package/lines/LineMaterial.js +2 -3
  125. package/lines/LineMaterial.js.map +1 -1
  126. package/lines/LineSegments2.cjs +13 -13
  127. package/lines/LineSegments2.cjs.map +1 -1
  128. package/lines/LineSegments2.js +14 -14
  129. package/lines/LineSegments2.js.map +1 -1
  130. package/lines/LineSegmentsGeometry.cjs +2 -2
  131. package/lines/LineSegmentsGeometry.cjs.map +1 -1
  132. package/lines/LineSegmentsGeometry.js +3 -3
  133. package/lines/LineSegmentsGeometry.js.map +1 -1
  134. package/lines/Wireframe.cjs +3 -3
  135. package/lines/Wireframe.cjs.map +1 -1
  136. package/lines/Wireframe.js +4 -4
  137. package/lines/Wireframe.js.map +1 -1
  138. package/loaders/BasisTextureLoader.cjs +435 -441
  139. package/loaders/BasisTextureLoader.cjs.map +1 -1
  140. package/loaders/BasisTextureLoader.js +435 -441
  141. package/loaders/BasisTextureLoader.js.map +1 -1
  142. package/loaders/EXRLoader.cjs +1 -2
  143. package/loaders/EXRLoader.cjs.map +1 -1
  144. package/loaders/EXRLoader.js +2 -3
  145. package/loaders/EXRLoader.js.map +1 -1
  146. package/loaders/FBXLoader.cjs +2 -2
  147. package/loaders/FBXLoader.cjs.map +1 -1
  148. package/loaders/FBXLoader.js +2 -2
  149. package/loaders/FBXLoader.js.map +1 -1
  150. package/loaders/FontLoader.cjs +2 -2
  151. package/loaders/FontLoader.cjs.map +1 -1
  152. package/loaders/FontLoader.d.ts +2 -2
  153. package/loaders/FontLoader.js +2 -2
  154. package/loaders/FontLoader.js.map +1 -1
  155. package/loaders/GLTFLoader.cjs +2 -2
  156. package/loaders/GLTFLoader.cjs.map +1 -1
  157. package/loaders/GLTFLoader.js +2 -2
  158. package/loaders/GLTFLoader.js.map +1 -1
  159. package/loaders/KTX2Loader.cjs +374 -377
  160. package/loaders/KTX2Loader.cjs.map +1 -1
  161. package/loaders/KTX2Loader.js +374 -377
  162. package/loaders/KTX2Loader.js.map +1 -1
  163. package/loaders/LDrawLoader.cjs +4 -5
  164. package/loaders/LDrawLoader.cjs.map +1 -1
  165. package/loaders/LDrawLoader.js +5 -6
  166. package/loaders/LDrawLoader.js.map +1 -1
  167. package/loaders/OBJLoader.cjs +5 -5
  168. package/loaders/OBJLoader.cjs.map +1 -1
  169. package/loaders/OBJLoader.js +6 -6
  170. package/loaders/OBJLoader.js.map +1 -1
  171. package/loaders/PRWMLoader.cjs +43 -46
  172. package/loaders/PRWMLoader.cjs.map +1 -1
  173. package/loaders/PRWMLoader.js +43 -46
  174. package/loaders/PRWMLoader.js.map +1 -1
  175. package/loaders/SVGLoader.cjs +1688 -1694
  176. package/loaders/SVGLoader.cjs.map +1 -1
  177. package/loaders/SVGLoader.js +1688 -1694
  178. package/loaders/SVGLoader.js.map +1 -1
  179. package/loaders/XLoader.cjs +1 -1
  180. package/loaders/XLoader.cjs.map +1 -1
  181. package/loaders/XLoader.js +1 -1
  182. package/loaders/XLoader.js.map +1 -1
  183. package/math/Capsule.cjs +3 -3
  184. package/math/Capsule.cjs.map +1 -1
  185. package/math/Capsule.js +3 -3
  186. package/math/Capsule.js.map +1 -1
  187. package/math/ColorConverter.cjs +9 -9
  188. package/math/ColorConverter.cjs.map +1 -1
  189. package/math/ColorConverter.js +9 -9
  190. package/math/ColorConverter.js.map +1 -1
  191. package/math/ConvexHull.cjs +50 -53
  192. package/math/ConvexHull.cjs.map +1 -1
  193. package/math/ConvexHull.js +50 -53
  194. package/math/ConvexHull.js.map +1 -1
  195. package/math/ImprovedNoise.cjs +1 -1
  196. package/math/ImprovedNoise.cjs.map +1 -1
  197. package/math/ImprovedNoise.js +1 -1
  198. package/math/ImprovedNoise.js.map +1 -1
  199. package/math/MeshSurfaceSampler.cjs +2 -2
  200. package/math/MeshSurfaceSampler.cjs.map +1 -1
  201. package/math/MeshSurfaceSampler.js +2 -2
  202. package/math/MeshSurfaceSampler.js.map +1 -1
  203. package/math/OBB.cjs +14 -14
  204. package/math/OBB.cjs.map +1 -1
  205. package/math/OBB.js +15 -15
  206. package/math/OBB.js.map +1 -1
  207. package/math/Octree.cjs +7 -7
  208. package/math/Octree.cjs.map +1 -1
  209. package/math/Octree.js +8 -8
  210. package/math/Octree.js.map +1 -1
  211. package/misc/ConvexObjectBreaker.cjs +268 -271
  212. package/misc/ConvexObjectBreaker.cjs.map +1 -1
  213. package/misc/ConvexObjectBreaker.js +269 -272
  214. package/misc/ConvexObjectBreaker.js.map +1 -1
  215. package/misc/Gyroscope.cjs +6 -6
  216. package/misc/Gyroscope.cjs.map +1 -1
  217. package/misc/Gyroscope.js +7 -7
  218. package/misc/Gyroscope.js.map +1 -1
  219. package/modifiers/CurveModifier.cjs +1 -1
  220. package/modifiers/CurveModifier.cjs.map +1 -1
  221. package/modifiers/CurveModifier.js +2 -2
  222. package/modifiers/CurveModifier.js.map +1 -1
  223. package/modifiers/SimplifyModifier.cjs +2 -2
  224. package/modifiers/SimplifyModifier.cjs.map +1 -1
  225. package/modifiers/SimplifyModifier.js +2 -2
  226. package/modifiers/SimplifyModifier.js.map +1 -1
  227. package/objects/BatchedMesh.cjs +2 -2
  228. package/objects/BatchedMesh.cjs.map +1 -1
  229. package/objects/BatchedMesh.js +3 -3
  230. package/objects/BatchedMesh.js.map +1 -1
  231. package/objects/GroundProjectedEnv.cjs +1 -2
  232. package/objects/GroundProjectedEnv.cjs.map +1 -1
  233. package/objects/GroundProjectedEnv.js +2 -3
  234. package/objects/GroundProjectedEnv.js.map +1 -1
  235. package/objects/Lensflare.cjs +206 -209
  236. package/objects/Lensflare.cjs.map +1 -1
  237. package/objects/Lensflare.js +206 -209
  238. package/objects/Lensflare.js.map +1 -1
  239. package/objects/Reflector.cjs +146 -154
  240. package/objects/Reflector.cjs.map +1 -1
  241. package/objects/Reflector.js +146 -154
  242. package/objects/Reflector.js.map +1 -1
  243. package/objects/ReflectorForSSRPass.cjs +180 -183
  244. package/objects/ReflectorForSSRPass.cjs.map +1 -1
  245. package/objects/ReflectorForSSRPass.js +180 -183
  246. package/objects/ReflectorForSSRPass.js.map +1 -1
  247. package/objects/Refractor.cjs +161 -164
  248. package/objects/Refractor.cjs.map +1 -1
  249. package/objects/Refractor.js +161 -164
  250. package/objects/Refractor.js.map +1 -1
  251. package/objects/ShadowMesh.cjs +1 -1
  252. package/objects/ShadowMesh.cjs.map +1 -1
  253. package/objects/ShadowMesh.js +2 -2
  254. package/objects/ShadowMesh.js.map +1 -1
  255. package/objects/Sky.cjs +32 -35
  256. package/objects/Sky.cjs.map +1 -1
  257. package/objects/Sky.d.ts +6 -100
  258. package/objects/Sky.js +32 -35
  259. package/objects/Sky.js.map +1 -1
  260. package/objects/Water.cjs +1 -2
  261. package/objects/Water.cjs.map +1 -1
  262. package/objects/Water.js +2 -3
  263. package/objects/Water.js.map +1 -1
  264. package/objects/Water2.cjs +140 -143
  265. package/objects/Water2.cjs.map +1 -1
  266. package/objects/Water2.js +140 -143
  267. package/objects/Water2.js.map +1 -1
  268. package/package.json +1 -1
  269. package/postprocessing/SAOPass.cjs +264 -267
  270. package/postprocessing/SAOPass.cjs.map +1 -1
  271. package/postprocessing/SAOPass.js +264 -267
  272. package/postprocessing/SAOPass.js.map +1 -1
  273. package/postprocessing/SSAOPass.cjs +250 -253
  274. package/postprocessing/SSAOPass.cjs.map +1 -1
  275. package/postprocessing/SSAOPass.js +250 -253
  276. package/postprocessing/SSAOPass.js.map +1 -1
  277. package/postprocessing/SSRPass.cjs +376 -379
  278. package/postprocessing/SSRPass.cjs.map +1 -1
  279. package/postprocessing/SSRPass.js +376 -379
  280. package/postprocessing/SSRPass.js.map +1 -1
  281. package/postprocessing/UnrealBloomPass.cjs +202 -205
  282. package/postprocessing/UnrealBloomPass.cjs.map +1 -1
  283. package/postprocessing/UnrealBloomPass.js +202 -205
  284. package/postprocessing/UnrealBloomPass.js.map +1 -1
  285. package/renderers/CSS2DRenderer.cjs +5 -5
  286. package/renderers/CSS2DRenderer.cjs.map +1 -1
  287. package/renderers/CSS2DRenderer.js +5 -5
  288. package/renderers/CSS2DRenderer.js.map +1 -1
  289. package/renderers/CSS3DRenderer.cjs +5 -5
  290. package/renderers/CSS3DRenderer.cjs.map +1 -1
  291. package/renderers/CSS3DRenderer.js +6 -6
  292. package/renderers/CSS3DRenderer.js.map +1 -1
  293. package/shaders/ACESFilmicToneMappingShader.cjs +46 -71
  294. package/shaders/ACESFilmicToneMappingShader.cjs.map +1 -1
  295. package/shaders/ACESFilmicToneMappingShader.js +46 -71
  296. package/shaders/ACESFilmicToneMappingShader.js.map +1 -1
  297. package/shaders/AfterimageShader.cjs +22 -41
  298. package/shaders/AfterimageShader.cjs.map +1 -1
  299. package/shaders/AfterimageShader.js +22 -41
  300. package/shaders/AfterimageShader.js.map +1 -1
  301. package/shaders/BasicShader.cjs +6 -20
  302. package/shaders/BasicShader.cjs.map +1 -1
  303. package/shaders/BasicShader.js +6 -20
  304. package/shaders/BasicShader.js.map +1 -1
  305. package/shaders/BleachBypassShader.cjs +26 -46
  306. package/shaders/BleachBypassShader.cjs.map +1 -1
  307. package/shaders/BleachBypassShader.js +26 -46
  308. package/shaders/BleachBypassShader.js.map +1 -1
  309. package/shaders/BlendShader.cjs +19 -33
  310. package/shaders/BlendShader.cjs.map +1 -1
  311. package/shaders/BlendShader.js +19 -33
  312. package/shaders/BlendShader.js.map +1 -1
  313. package/shaders/BokehShader.cjs +90 -117
  314. package/shaders/BokehShader.cjs.map +1 -1
  315. package/shaders/BokehShader.js +90 -117
  316. package/shaders/BokehShader.js.map +1 -1
  317. package/shaders/BokehShader2.cjs +232 -333
  318. package/shaders/BokehShader2.cjs.map +1 -1
  319. package/shaders/BokehShader2.js +232 -333
  320. package/shaders/BokehShader2.js.map +1 -1
  321. package/shaders/BrightnessContrastShader.cjs +22 -38
  322. package/shaders/BrightnessContrastShader.cjs.map +1 -1
  323. package/shaders/BrightnessContrastShader.js +22 -38
  324. package/shaders/BrightnessContrastShader.js.map +1 -1
  325. package/shaders/ColorCorrectionShader.cjs +21 -35
  326. package/shaders/ColorCorrectionShader.cjs.map +1 -1
  327. package/shaders/ColorCorrectionShader.js +21 -35
  328. package/shaders/ColorCorrectionShader.js.map +1 -1
  329. package/shaders/ColorifyShader.cjs +19 -34
  330. package/shaders/ColorifyShader.cjs.map +1 -1
  331. package/shaders/ColorifyShader.js +19 -34
  332. package/shaders/ColorifyShader.js.map +1 -1
  333. package/shaders/ConvolutionShader.cjs +24 -43
  334. package/shaders/ConvolutionShader.cjs.map +1 -1
  335. package/shaders/ConvolutionShader.js +24 -43
  336. package/shaders/ConvolutionShader.js.map +1 -1
  337. package/shaders/CopyShader.cjs +16 -30
  338. package/shaders/CopyShader.cjs.map +1 -1
  339. package/shaders/CopyShader.js +16 -30
  340. package/shaders/CopyShader.js.map +1 -1
  341. package/shaders/DOFMipMapShader.cjs +21 -38
  342. package/shaders/DOFMipMapShader.cjs.map +1 -1
  343. package/shaders/DOFMipMapShader.js +21 -38
  344. package/shaders/DOFMipMapShader.js.map +1 -1
  345. package/shaders/DepthLimitedBlurShader.cjs +69 -98
  346. package/shaders/DepthLimitedBlurShader.cjs.map +1 -1
  347. package/shaders/DepthLimitedBlurShader.js +69 -98
  348. package/shaders/DepthLimitedBlurShader.js.map +1 -1
  349. package/shaders/DigitalGlitch.cjs +59 -70
  350. package/shaders/DigitalGlitch.cjs.map +1 -1
  351. package/shaders/DigitalGlitch.js +59 -70
  352. package/shaders/DigitalGlitch.js.map +1 -1
  353. package/shaders/DotScreenShader.cjs +28 -49
  354. package/shaders/DotScreenShader.cjs.map +1 -1
  355. package/shaders/DotScreenShader.js +28 -49
  356. package/shaders/DotScreenShader.js.map +1 -1
  357. package/shaders/FXAAShader.cjs +1089 -1098
  358. package/shaders/FXAAShader.cjs.map +1 -1
  359. package/shaders/FXAAShader.js +1089 -1098
  360. package/shaders/FXAAShader.js.map +1 -1
  361. package/shaders/FilmShader.cjs +29 -57
  362. package/shaders/FilmShader.cjs.map +1 -1
  363. package/shaders/FilmShader.js +29 -57
  364. package/shaders/FilmShader.js.map +1 -1
  365. package/shaders/FocusShader.cjs +43 -70
  366. package/shaders/FocusShader.cjs.map +1 -1
  367. package/shaders/FocusShader.js +43 -70
  368. package/shaders/FocusShader.js.map +1 -1
  369. package/shaders/FreiChenShader.cjs +53 -74
  370. package/shaders/FreiChenShader.cjs.map +1 -1
  371. package/shaders/FreiChenShader.js +53 -74
  372. package/shaders/FreiChenShader.js.map +1 -1
  373. package/shaders/FresnelShader.cjs +35 -55
  374. package/shaders/FresnelShader.cjs.map +1 -1
  375. package/shaders/FresnelShader.js +35 -55
  376. package/shaders/FresnelShader.js.map +1 -1
  377. package/shaders/GammaCorrectionShader.cjs +19 -33
  378. package/shaders/GammaCorrectionShader.cjs.map +1 -1
  379. package/shaders/GammaCorrectionShader.js +19 -33
  380. package/shaders/GammaCorrectionShader.js.map +1 -1
  381. package/shaders/GodRaysShader.cjs +116 -193
  382. package/shaders/GodRaysShader.cjs.map +1 -1
  383. package/shaders/GodRaysShader.js +116 -193
  384. package/shaders/GodRaysShader.js.map +1 -1
  385. package/shaders/HalftoneShader.cjs +192 -270
  386. package/shaders/HalftoneShader.cjs.map +1 -1
  387. package/shaders/HalftoneShader.js +192 -270
  388. package/shaders/HalftoneShader.js.map +1 -1
  389. package/shaders/HorizontalTiltShiftShader.cjs +27 -43
  390. package/shaders/HorizontalTiltShiftShader.cjs.map +1 -1
  391. package/shaders/HorizontalTiltShiftShader.js +27 -43
  392. package/shaders/HorizontalTiltShiftShader.js.map +1 -1
  393. package/shaders/HueSaturationShader.cjs +31 -47
  394. package/shaders/HueSaturationShader.cjs.map +1 -1
  395. package/shaders/HueSaturationShader.js +31 -47
  396. package/shaders/HueSaturationShader.js.map +1 -1
  397. package/shaders/KaleidoShader.cjs +24 -37
  398. package/shaders/KaleidoShader.cjs.map +1 -1
  399. package/shaders/KaleidoShader.js +24 -37
  400. package/shaders/KaleidoShader.js.map +1 -1
  401. package/shaders/LuminosityHighPassShader.cjs +24 -43
  402. package/shaders/LuminosityHighPassShader.cjs.map +1 -1
  403. package/shaders/LuminosityHighPassShader.js +24 -43
  404. package/shaders/LuminosityHighPassShader.js.map +1 -1
  405. package/shaders/LuminosityShader.cjs +17 -34
  406. package/shaders/LuminosityShader.cjs.map +1 -1
  407. package/shaders/LuminosityShader.js +17 -34
  408. package/shaders/LuminosityShader.js.map +1 -1
  409. package/shaders/MirrorShader.cjs +26 -39
  410. package/shaders/MirrorShader.cjs.map +1 -1
  411. package/shaders/MirrorShader.js +26 -39
  412. package/shaders/MirrorShader.js.map +1 -1
  413. package/shaders/NormalMapShader.cjs +21 -36
  414. package/shaders/NormalMapShader.cjs.map +1 -1
  415. package/shaders/NormalMapShader.js +21 -36
  416. package/shaders/NormalMapShader.js.map +1 -1
  417. package/shaders/ParallaxShader.cjs +97 -147
  418. package/shaders/ParallaxShader.cjs.map +1 -1
  419. package/shaders/ParallaxShader.js +97 -147
  420. package/shaders/ParallaxShader.js.map +1 -1
  421. package/shaders/PixelShader.cjs +18 -31
  422. package/shaders/PixelShader.cjs.map +1 -1
  423. package/shaders/PixelShader.js +18 -31
  424. package/shaders/PixelShader.js.map +1 -1
  425. package/shaders/RGBShiftShader.cjs +20 -33
  426. package/shaders/RGBShiftShader.cjs.map +1 -1
  427. package/shaders/RGBShiftShader.js +20 -33
  428. package/shaders/RGBShiftShader.js.map +1 -1
  429. package/shaders/SAOShader.cjs +117 -154
  430. package/shaders/SAOShader.cjs.map +1 -1
  431. package/shaders/SAOShader.js +117 -154
  432. package/shaders/SAOShader.js.map +1 -1
  433. package/shaders/SMAAShader.cjs +270 -358
  434. package/shaders/SMAAShader.cjs.map +1 -1
  435. package/shaders/SMAAShader.js +270 -358
  436. package/shaders/SMAAShader.js.map +1 -1
  437. package/shaders/SSAOShader.cjs +142 -236
  438. package/shaders/SSAOShader.cjs.map +1 -1
  439. package/shaders/SSAOShader.js +142 -236
  440. package/shaders/SSAOShader.js.map +1 -1
  441. package/shaders/SSRShader.cjs +4 -4
  442. package/shaders/SSRShader.cjs.map +1 -1
  443. package/shaders/SSRShader.js +4 -4
  444. package/shaders/SSRShader.js.map +1 -1
  445. package/shaders/SepiaShader.cjs +20 -36
  446. package/shaders/SepiaShader.cjs.map +1 -1
  447. package/shaders/SepiaShader.js +20 -36
  448. package/shaders/SepiaShader.js.map +1 -1
  449. package/shaders/SobelOperatorShader.cjs +37 -64
  450. package/shaders/SobelOperatorShader.cjs.map +1 -1
  451. package/shaders/SobelOperatorShader.js +37 -64
  452. package/shaders/SobelOperatorShader.js.map +1 -1
  453. package/shaders/TechnicolorShader.cjs +16 -29
  454. package/shaders/TechnicolorShader.cjs.map +1 -1
  455. package/shaders/TechnicolorShader.js +16 -29
  456. package/shaders/TechnicolorShader.js.map +1 -1
  457. package/shaders/ToneMapShader.cjs +35 -55
  458. package/shaders/ToneMapShader.cjs.map +1 -1
  459. package/shaders/ToneMapShader.js +35 -55
  460. package/shaders/ToneMapShader.js.map +1 -1
  461. package/shaders/ToonShader.cjs +165 -275
  462. package/shaders/ToonShader.cjs.map +1 -1
  463. package/shaders/ToonShader.js +165 -275
  464. package/shaders/ToonShader.js.map +1 -1
  465. package/shaders/TriangleBlurShader.cjs +27 -50
  466. package/shaders/TriangleBlurShader.cjs.map +1 -1
  467. package/shaders/TriangleBlurShader.js +27 -50
  468. package/shaders/TriangleBlurShader.js.map +1 -1
  469. package/shaders/UnpackDepthRGBAShader.cjs +17 -32
  470. package/shaders/UnpackDepthRGBAShader.cjs.map +1 -1
  471. package/shaders/UnpackDepthRGBAShader.js +17 -32
  472. package/shaders/UnpackDepthRGBAShader.js.map +1 -1
  473. package/shaders/VerticalTiltShiftShader.cjs +27 -43
  474. package/shaders/VerticalTiltShiftShader.cjs.map +1 -1
  475. package/shaders/VerticalTiltShiftShader.js +27 -43
  476. package/shaders/VerticalTiltShiftShader.js.map +1 -1
  477. package/shaders/VignetteShader.cjs +27 -43
  478. package/shaders/VignetteShader.cjs.map +1 -1
  479. package/shaders/VignetteShader.js +27 -43
  480. package/shaders/VignetteShader.js.map +1 -1
  481. package/shaders/VolumeShader.cjs +213 -264
  482. package/shaders/VolumeShader.cjs.map +1 -1
  483. package/shaders/VolumeShader.js +213 -264
  484. package/shaders/VolumeShader.js.map +1 -1
  485. package/shaders/WaterRefractionShader.cjs +35 -63
  486. package/shaders/WaterRefractionShader.cjs.map +1 -1
  487. package/shaders/WaterRefractionShader.js +35 -63
  488. package/shaders/WaterRefractionShader.js.map +1 -1
  489. package/utils/GeometryCompressionUtils.cjs +1 -2
  490. package/utils/GeometryCompressionUtils.cjs.map +1 -1
  491. package/utils/GeometryCompressionUtils.js +2 -3
  492. package/utils/GeometryCompressionUtils.js.map +1 -1
  493. package/utils/RoughnessMipmapper.cjs +3 -3
  494. package/utils/RoughnessMipmapper.cjs.map +1 -1
  495. package/utils/RoughnessMipmapper.js +4 -4
  496. package/utils/RoughnessMipmapper.js.map +1 -1
  497. package/webxr/ARButton.cjs +106 -109
  498. package/webxr/ARButton.cjs.map +1 -1
  499. package/webxr/ARButton.d.ts +3 -4
  500. package/webxr/ARButton.js +106 -109
  501. package/webxr/ARButton.js.map +1 -1
  502. package/webxr/OculusHandPointerModel.cjs +2 -2
  503. package/webxr/OculusHandPointerModel.cjs.map +1 -1
  504. package/webxr/OculusHandPointerModel.js +2 -2
  505. package/webxr/OculusHandPointerModel.js.map +1 -1
  506. package/webxr/VRButton.cjs +95 -98
  507. package/webxr/VRButton.cjs.map +1 -1
  508. package/webxr/VRButton.d.ts +5 -6
  509. package/webxr/VRButton.js +95 -98
  510. package/webxr/VRButton.js.map +1 -1
  511. package/webxr/XRHandPrimitiveModel.cjs +2 -2
  512. package/webxr/XRHandPrimitiveModel.cjs.map +1 -1
  513. package/webxr/XRHandPrimitiveModel.js +3 -3
  514. package/webxr/XRHandPrimitiveModel.js.map +1 -1
@@ -14,292 +14,214 @@ const HalftoneShader = {
14
14
  greyscale: { value: false },
15
15
  disable: { value: false }
16
16
  },
17
- vertexShader: (
18
- /* glsl */
19
- `
20
- varying vec2 vUV;
21
-
22
- void main() {
23
-
24
- vUV = uv;
25
- gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
26
-
27
- }
28
- `
29
- ),
30
- fragmentShader: (
31
- /* glsl */
32
- `
33
- #define SQRT2_MINUS_ONE 0.41421356
34
- #define SQRT2_HALF_MINUS_ONE 0.20710678
35
- #define PI2 6.28318531
36
- #define SHAPE_DOT 1
37
- #define SHAPE_ELLIPSE 2
38
- #define SHAPE_LINE 3
39
- #define SHAPE_SQUARE 4
40
- #define BLENDING_LINEAR 1
41
- #define BLENDING_MULTIPLY 2
42
- #define BLENDING_ADD 3
43
- #define BLENDING_LIGHTER 4
44
- #define BLENDING_DARKER 5
45
- uniform sampler2D tDiffuse;
46
- uniform float radius;
47
- uniform float rotateR;
48
- uniform float rotateG;
49
- uniform float rotateB;
50
- uniform float scatter;
51
- uniform float width;
52
- uniform float height;
53
- uniform int shape;
54
- uniform bool disable;
55
- uniform float blending;
56
- uniform int blendingMode;
57
- varying vec2 vUV;
58
- uniform bool greyscale;
59
- const int samples = 8;
60
-
61
- float blend( float a, float b, float t ) {
62
-
17
+ vertexShader: [
18
+ "varying vec2 vUV;",
19
+ "void main() {",
20
+ " vUV = uv;",
21
+ " gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);",
22
+ "}"
23
+ ].join("\n"),
24
+ fragmentShader: [
25
+ "#define SQRT2_MINUS_ONE 0.41421356",
26
+ "#define SQRT2_HALF_MINUS_ONE 0.20710678",
27
+ "#define PI2 6.28318531",
28
+ "#define SHAPE_DOT 1",
29
+ "#define SHAPE_ELLIPSE 2",
30
+ "#define SHAPE_LINE 3",
31
+ "#define SHAPE_SQUARE 4",
32
+ "#define BLENDING_LINEAR 1",
33
+ "#define BLENDING_MULTIPLY 2",
34
+ "#define BLENDING_ADD 3",
35
+ "#define BLENDING_LIGHTER 4",
36
+ "#define BLENDING_DARKER 5",
37
+ "uniform sampler2D tDiffuse;",
38
+ "uniform float radius;",
39
+ "uniform float rotateR;",
40
+ "uniform float rotateG;",
41
+ "uniform float rotateB;",
42
+ "uniform float scatter;",
43
+ "uniform float width;",
44
+ "uniform float height;",
45
+ "uniform int shape;",
46
+ "uniform bool disable;",
47
+ "uniform float blending;",
48
+ "uniform int blendingMode;",
49
+ "varying vec2 vUV;",
50
+ "uniform bool greyscale;",
51
+ "const int samples = 8;",
52
+ "float blend( float a, float b, float t ) {",
63
53
  // linear blend
64
- return a * ( 1.0 - t ) + b * t;
65
-
66
- }
67
-
68
- float hypot( float x, float y ) {
69
-
54
+ " return a * ( 1.0 - t ) + b * t;",
55
+ "}",
56
+ "float hypot( float x, float y ) {",
70
57
  // vector magnitude
71
- return sqrt( x * x + y * y );
72
-
73
- }
74
-
75
- float rand( vec2 seed ){
76
-
58
+ " return sqrt( x * x + y * y );",
59
+ "}",
60
+ "float rand( vec2 seed ){",
77
61
  // get pseudo-random number
78
- return fract( sin( dot( seed.xy, vec2( 12.9898, 78.233 ) ) ) * 43758.5453 );
79
-
80
- }
81
-
82
- float distanceToDotRadius( float channel, vec2 coord, vec2 normal, vec2 p, float angle, float rad_max ) {
83
-
62
+ "return fract( sin( dot( seed.xy, vec2( 12.9898, 78.233 ) ) ) * 43758.5453 );",
63
+ "}",
64
+ "float distanceToDotRadius( float channel, vec2 coord, vec2 normal, vec2 p, float angle, float rad_max ) {",
84
65
  // apply shape-specific transforms
85
- float dist = hypot( coord.x - p.x, coord.y - p.y );
86
- float rad = channel;
87
-
88
- if ( shape == SHAPE_DOT ) {
89
-
90
- rad = pow( abs( rad ), 1.125 ) * rad_max;
91
-
92
- } else if ( shape == SHAPE_ELLIPSE ) {
93
-
94
- rad = pow( abs( rad ), 1.125 ) * rad_max;
95
-
96
- if ( dist != 0.0 ) {
97
- float dot_p = abs( ( p.x - coord.x ) / dist * normal.x + ( p.y - coord.y ) / dist * normal.y );
98
- dist = ( dist * ( 1.0 - SQRT2_HALF_MINUS_ONE ) ) + dot_p * dist * SQRT2_MINUS_ONE;
99
- }
100
-
101
- } else if ( shape == SHAPE_LINE ) {
102
-
103
- rad = pow( abs( rad ), 1.5) * rad_max;
104
- float dot_p = ( p.x - coord.x ) * normal.x + ( p.y - coord.y ) * normal.y;
105
- dist = hypot( normal.x * dot_p, normal.y * dot_p );
106
-
107
- } else if ( shape == SHAPE_SQUARE ) {
108
-
109
- float theta = atan( p.y - coord.y, p.x - coord.x ) - angle;
110
- float sin_t = abs( sin( theta ) );
111
- float cos_t = abs( cos( theta ) );
112
- rad = pow( abs( rad ), 1.4 );
113
- rad = rad_max * ( rad + ( ( sin_t > cos_t ) ? rad - sin_t * rad : rad - cos_t * rad ) );
114
-
115
- }
116
-
117
- return rad - dist;
118
-
119
- }
120
-
121
- struct Cell {
122
-
66
+ " float dist = hypot( coord.x - p.x, coord.y - p.y );",
67
+ " float rad = channel;",
68
+ " if ( shape == SHAPE_DOT ) {",
69
+ " rad = pow( abs( rad ), 1.125 ) * rad_max;",
70
+ " } else if ( shape == SHAPE_ELLIPSE ) {",
71
+ " rad = pow( abs( rad ), 1.125 ) * rad_max;",
72
+ " if ( dist != 0.0 ) {",
73
+ " float dot_p = abs( ( p.x - coord.x ) / dist * normal.x + ( p.y - coord.y ) / dist * normal.y );",
74
+ " dist = ( dist * ( 1.0 - SQRT2_HALF_MINUS_ONE ) ) + dot_p * dist * SQRT2_MINUS_ONE;",
75
+ " }",
76
+ " } else if ( shape == SHAPE_LINE ) {",
77
+ " rad = pow( abs( rad ), 1.5) * rad_max;",
78
+ " float dot_p = ( p.x - coord.x ) * normal.x + ( p.y - coord.y ) * normal.y;",
79
+ " dist = hypot( normal.x * dot_p, normal.y * dot_p );",
80
+ " } else if ( shape == SHAPE_SQUARE ) {",
81
+ " float theta = atan( p.y - coord.y, p.x - coord.x ) - angle;",
82
+ " float sin_t = abs( sin( theta ) );",
83
+ " float cos_t = abs( cos( theta ) );",
84
+ " rad = pow( abs( rad ), 1.4 );",
85
+ " rad = rad_max * ( rad + ( ( sin_t > cos_t ) ? rad - sin_t * rad : rad - cos_t * rad ) );",
86
+ " }",
87
+ " return rad - dist;",
88
+ "}",
89
+ "struct Cell {",
123
90
  // grid sample positions
124
- vec2 normal;
125
- vec2 p1;
126
- vec2 p2;
127
- vec2 p3;
128
- vec2 p4;
129
- float samp2;
130
- float samp1;
131
- float samp3;
132
- float samp4;
133
-
134
- };
135
-
136
- vec4 getSample( vec2 point ) {
137
-
91
+ " vec2 normal;",
92
+ " vec2 p1;",
93
+ " vec2 p2;",
94
+ " vec2 p3;",
95
+ " vec2 p4;",
96
+ " float samp2;",
97
+ " float samp1;",
98
+ " float samp3;",
99
+ " float samp4;",
100
+ "};",
101
+ "vec4 getSample( vec2 point ) {",
138
102
  // multi-sampled point
139
- vec4 tex = texture2D( tDiffuse, vec2( point.x / width, point.y / height ) );
140
- float base = rand( vec2( floor( point.x ), floor( point.y ) ) ) * PI2;
141
- float step = PI2 / float( samples );
142
- float dist = radius * 0.66;
143
-
144
- for ( int i = 0; i < samples; ++i ) {
145
-
146
- float r = base + step * float( i );
147
- vec2 coord = point + vec2( cos( r ) * dist, sin( r ) * dist );
148
- tex += texture2D( tDiffuse, vec2( coord.x / width, coord.y / height ) );
149
-
150
- }
151
-
152
- tex /= float( samples ) + 1.0;
153
- return tex;
154
-
155
- }
156
-
157
- float getDotColour( Cell c, vec2 p, int channel, float angle, float aa ) {
158
-
103
+ " vec4 tex = texture2D( tDiffuse, vec2( point.x / width, point.y / height ) );",
104
+ " float base = rand( vec2( floor( point.x ), floor( point.y ) ) ) * PI2;",
105
+ " float step = PI2 / float( samples );",
106
+ " float dist = radius * 0.66;",
107
+ " for ( int i = 0; i < samples; ++i ) {",
108
+ " float r = base + step * float( i );",
109
+ " vec2 coord = point + vec2( cos( r ) * dist, sin( r ) * dist );",
110
+ " tex += texture2D( tDiffuse, vec2( coord.x / width, coord.y / height ) );",
111
+ " }",
112
+ " tex /= float( samples ) + 1.0;",
113
+ " return tex;",
114
+ "}",
115
+ "float getDotColour( Cell c, vec2 p, int channel, float angle, float aa ) {",
159
116
  // get colour for given point
160
- float dist_c_1, dist_c_2, dist_c_3, dist_c_4, res;
161
-
162
- if ( channel == 0 ) {
163
-
164
- c.samp1 = getSample( c.p1 ).r;
165
- c.samp2 = getSample( c.p2 ).r;
166
- c.samp3 = getSample( c.p3 ).r;
167
- c.samp4 = getSample( c.p4 ).r;
168
-
169
- } else if (channel == 1) {
170
-
171
- c.samp1 = getSample( c.p1 ).g;
172
- c.samp2 = getSample( c.p2 ).g;
173
- c.samp3 = getSample( c.p3 ).g;
174
- c.samp4 = getSample( c.p4 ).g;
175
-
176
- } else {
177
-
178
- c.samp1 = getSample( c.p1 ).b;
179
- c.samp3 = getSample( c.p3 ).b;
180
- c.samp2 = getSample( c.p2 ).b;
181
- c.samp4 = getSample( c.p4 ).b;
182
-
183
- }
184
-
185
- dist_c_1 = distanceToDotRadius( c.samp1, c.p1, c.normal, p, angle, radius );
186
- dist_c_2 = distanceToDotRadius( c.samp2, c.p2, c.normal, p, angle, radius );
187
- dist_c_3 = distanceToDotRadius( c.samp3, c.p3, c.normal, p, angle, radius );
188
- dist_c_4 = distanceToDotRadius( c.samp4, c.p4, c.normal, p, angle, radius );
189
- res = ( dist_c_1 > 0.0 ) ? clamp( dist_c_1 / aa, 0.0, 1.0 ) : 0.0;
190
- res += ( dist_c_2 > 0.0 ) ? clamp( dist_c_2 / aa, 0.0, 1.0 ) : 0.0;
191
- res += ( dist_c_3 > 0.0 ) ? clamp( dist_c_3 / aa, 0.0, 1.0 ) : 0.0;
192
- res += ( dist_c_4 > 0.0 ) ? clamp( dist_c_4 / aa, 0.0, 1.0 ) : 0.0;
193
- res = clamp( res, 0.0, 1.0 );
194
-
195
- return res;
196
-
197
- }
198
-
199
- Cell getReferenceCell( vec2 p, vec2 origin, float grid_angle, float step ) {
200
-
117
+ " float dist_c_1, dist_c_2, dist_c_3, dist_c_4, res;",
118
+ " if ( channel == 0 ) {",
119
+ " c.samp1 = getSample( c.p1 ).r;",
120
+ " c.samp2 = getSample( c.p2 ).r;",
121
+ " c.samp3 = getSample( c.p3 ).r;",
122
+ " c.samp4 = getSample( c.p4 ).r;",
123
+ " } else if (channel == 1) {",
124
+ " c.samp1 = getSample( c.p1 ).g;",
125
+ " c.samp2 = getSample( c.p2 ).g;",
126
+ " c.samp3 = getSample( c.p3 ).g;",
127
+ " c.samp4 = getSample( c.p4 ).g;",
128
+ " } else {",
129
+ " c.samp1 = getSample( c.p1 ).b;",
130
+ " c.samp3 = getSample( c.p3 ).b;",
131
+ " c.samp2 = getSample( c.p2 ).b;",
132
+ " c.samp4 = getSample( c.p4 ).b;",
133
+ " }",
134
+ " dist_c_1 = distanceToDotRadius( c.samp1, c.p1, c.normal, p, angle, radius );",
135
+ " dist_c_2 = distanceToDotRadius( c.samp2, c.p2, c.normal, p, angle, radius );",
136
+ " dist_c_3 = distanceToDotRadius( c.samp3, c.p3, c.normal, p, angle, radius );",
137
+ " dist_c_4 = distanceToDotRadius( c.samp4, c.p4, c.normal, p, angle, radius );",
138
+ " res = ( dist_c_1 > 0.0 ) ? clamp( dist_c_1 / aa, 0.0, 1.0 ) : 0.0;",
139
+ " res += ( dist_c_2 > 0.0 ) ? clamp( dist_c_2 / aa, 0.0, 1.0 ) : 0.0;",
140
+ " res += ( dist_c_3 > 0.0 ) ? clamp( dist_c_3 / aa, 0.0, 1.0 ) : 0.0;",
141
+ " res += ( dist_c_4 > 0.0 ) ? clamp( dist_c_4 / aa, 0.0, 1.0 ) : 0.0;",
142
+ " res = clamp( res, 0.0, 1.0 );",
143
+ " return res;",
144
+ "}",
145
+ "Cell getReferenceCell( vec2 p, vec2 origin, float grid_angle, float step ) {",
201
146
  // get containing cell
202
- Cell c;
203
-
147
+ " Cell c;",
204
148
  // calc grid
205
- vec2 n = vec2( cos( grid_angle ), sin( grid_angle ) );
206
- float threshold = step * 0.5;
207
- float dot_normal = n.x * ( p.x - origin.x ) + n.y * ( p.y - origin.y );
208
- float dot_line = -n.y * ( p.x - origin.x ) + n.x * ( p.y - origin.y );
209
- vec2 offset = vec2( n.x * dot_normal, n.y * dot_normal );
210
- float offset_normal = mod( hypot( offset.x, offset.y ), step );
211
- float normal_dir = ( dot_normal < 0.0 ) ? 1.0 : -1.0;
212
- float normal_scale = ( ( offset_normal < threshold ) ? -offset_normal : step - offset_normal ) * normal_dir;
213
- float offset_line = mod( hypot( ( p.x - offset.x ) - origin.x, ( p.y - offset.y ) - origin.y ), step );
214
- float line_dir = ( dot_line < 0.0 ) ? 1.0 : -1.0;
215
- float line_scale = ( ( offset_line < threshold ) ? -offset_line : step - offset_line ) * line_dir;
216
-
149
+ " vec2 n = vec2( cos( grid_angle ), sin( grid_angle ) );",
150
+ " float threshold = step * 0.5;",
151
+ " float dot_normal = n.x * ( p.x - origin.x ) + n.y * ( p.y - origin.y );",
152
+ " float dot_line = -n.y * ( p.x - origin.x ) + n.x * ( p.y - origin.y );",
153
+ " vec2 offset = vec2( n.x * dot_normal, n.y * dot_normal );",
154
+ " float offset_normal = mod( hypot( offset.x, offset.y ), step );",
155
+ " float normal_dir = ( dot_normal < 0.0 ) ? 1.0 : -1.0;",
156
+ " float normal_scale = ( ( offset_normal < threshold ) ? -offset_normal : step - offset_normal ) * normal_dir;",
157
+ " float offset_line = mod( hypot( ( p.x - offset.x ) - origin.x, ( p.y - offset.y ) - origin.y ), step );",
158
+ " float line_dir = ( dot_line < 0.0 ) ? 1.0 : -1.0;",
159
+ " float line_scale = ( ( offset_line < threshold ) ? -offset_line : step - offset_line ) * line_dir;",
217
160
  // get closest corner
218
- c.normal = n;
219
- c.p1.x = p.x - n.x * normal_scale + n.y * line_scale;
220
- c.p1.y = p.y - n.y * normal_scale - n.x * line_scale;
221
-
161
+ " c.normal = n;",
162
+ " c.p1.x = p.x - n.x * normal_scale + n.y * line_scale;",
163
+ " c.p1.y = p.y - n.y * normal_scale - n.x * line_scale;",
222
164
  // scatter
223
- if ( scatter != 0.0 ) {
224
-
225
- float off_mag = scatter * threshold * 0.5;
226
- float off_angle = rand( vec2( floor( c.p1.x ), floor( c.p1.y ) ) ) * PI2;
227
- c.p1.x += cos( off_angle ) * off_mag;
228
- c.p1.y += sin( off_angle ) * off_mag;
229
-
230
- }
231
-
165
+ " if ( scatter != 0.0 ) {",
166
+ " float off_mag = scatter * threshold * 0.5;",
167
+ " float off_angle = rand( vec2( floor( c.p1.x ), floor( c.p1.y ) ) ) * PI2;",
168
+ " c.p1.x += cos( off_angle ) * off_mag;",
169
+ " c.p1.y += sin( off_angle ) * off_mag;",
170
+ " }",
232
171
  // find corners
233
- float normal_step = normal_dir * ( ( offset_normal < threshold ) ? step : -step );
234
- float line_step = line_dir * ( ( offset_line < threshold ) ? step : -step );
235
- c.p2.x = c.p1.x - n.x * normal_step;
236
- c.p2.y = c.p1.y - n.y * normal_step;
237
- c.p3.x = c.p1.x + n.y * line_step;
238
- c.p3.y = c.p1.y - n.x * line_step;
239
- c.p4.x = c.p1.x - n.x * normal_step + n.y * line_step;
240
- c.p4.y = c.p1.y - n.y * normal_step - n.x * line_step;
241
-
242
- return c;
243
-
244
- }
245
-
246
- float blendColour( float a, float b, float t ) {
247
-
172
+ " float normal_step = normal_dir * ( ( offset_normal < threshold ) ? step : -step );",
173
+ " float line_step = line_dir * ( ( offset_line < threshold ) ? step : -step );",
174
+ " c.p2.x = c.p1.x - n.x * normal_step;",
175
+ " c.p2.y = c.p1.y - n.y * normal_step;",
176
+ " c.p3.x = c.p1.x + n.y * line_step;",
177
+ " c.p3.y = c.p1.y - n.x * line_step;",
178
+ " c.p4.x = c.p1.x - n.x * normal_step + n.y * line_step;",
179
+ " c.p4.y = c.p1.y - n.y * normal_step - n.x * line_step;",
180
+ " return c;",
181
+ "}",
182
+ "float blendColour( float a, float b, float t ) {",
248
183
  // blend colours
249
- if ( blendingMode == BLENDING_LINEAR ) {
250
- return blend( a, b, 1.0 - t );
251
- } else if ( blendingMode == BLENDING_ADD ) {
252
- return blend( a, min( 1.0, a + b ), t );
253
- } else if ( blendingMode == BLENDING_MULTIPLY ) {
254
- return blend( a, max( 0.0, a * b ), t );
255
- } else if ( blendingMode == BLENDING_LIGHTER ) {
256
- return blend( a, max( a, b ), t );
257
- } else if ( blendingMode == BLENDING_DARKER ) {
258
- return blend( a, min( a, b ), t );
259
- } else {
260
- return blend( a, b, 1.0 - t );
261
- }
262
-
263
- }
264
-
265
- void main() {
266
-
267
- if ( ! disable ) {
268
-
184
+ " if ( blendingMode == BLENDING_LINEAR ) {",
185
+ " return blend( a, b, 1.0 - t );",
186
+ " } else if ( blendingMode == BLENDING_ADD ) {",
187
+ " return blend( a, min( 1.0, a + b ), t );",
188
+ " } else if ( blendingMode == BLENDING_MULTIPLY ) {",
189
+ " return blend( a, max( 0.0, a * b ), t );",
190
+ " } else if ( blendingMode == BLENDING_LIGHTER ) {",
191
+ " return blend( a, max( a, b ), t );",
192
+ " } else if ( blendingMode == BLENDING_DARKER ) {",
193
+ " return blend( a, min( a, b ), t );",
194
+ " } else {",
195
+ " return blend( a, b, 1.0 - t );",
196
+ " }",
197
+ "}",
198
+ "void main() {",
199
+ " if ( ! disable ) {",
269
200
  // setup
270
- vec2 p = vec2( vUV.x * width, vUV.y * height );
271
- vec2 origin = vec2( 0, 0 );
272
- float aa = ( radius < 2.5 ) ? radius * 0.5 : 1.25;
273
-
201
+ " vec2 p = vec2( vUV.x * width, vUV.y * height );",
202
+ " vec2 origin = vec2( 0, 0 );",
203
+ " float aa = ( radius < 2.5 ) ? radius * 0.5 : 1.25;",
274
204
  // get channel samples
275
- Cell cell_r = getReferenceCell( p, origin, rotateR, radius );
276
- Cell cell_g = getReferenceCell( p, origin, rotateG, radius );
277
- Cell cell_b = getReferenceCell( p, origin, rotateB, radius );
278
- float r = getDotColour( cell_r, p, 0, rotateR, aa );
279
- float g = getDotColour( cell_g, p, 1, rotateG, aa );
280
- float b = getDotColour( cell_b, p, 2, rotateB, aa );
281
-
205
+ " Cell cell_r = getReferenceCell( p, origin, rotateR, radius );",
206
+ " Cell cell_g = getReferenceCell( p, origin, rotateG, radius );",
207
+ " Cell cell_b = getReferenceCell( p, origin, rotateB, radius );",
208
+ " float r = getDotColour( cell_r, p, 0, rotateR, aa );",
209
+ " float g = getDotColour( cell_g, p, 1, rotateG, aa );",
210
+ " float b = getDotColour( cell_b, p, 2, rotateB, aa );",
282
211
  // blend with original
283
- vec4 colour = texture2D( tDiffuse, vUV );
284
- r = blendColour( r, colour.r, blending );
285
- g = blendColour( g, colour.g, blending );
286
- b = blendColour( b, colour.b, blending );
287
-
288
- if ( greyscale ) {
289
- r = g = b = (r + b + g) / 3.0;
290
- }
291
-
292
- gl_FragColor = vec4( r, g, b, 1.0 );
293
-
294
- } else {
295
-
296
- gl_FragColor = texture2D( tDiffuse, vUV );
297
-
298
- }
299
-
300
- }
301
- `
302
- )
212
+ " vec4 colour = texture2D( tDiffuse, vUV );",
213
+ " r = blendColour( r, colour.r, blending );",
214
+ " g = blendColour( g, colour.g, blending );",
215
+ " b = blendColour( b, colour.b, blending );",
216
+ " if ( greyscale ) {",
217
+ " r = g = b = (r + b + g) / 3.0;",
218
+ " }",
219
+ " gl_FragColor = vec4( r, g, b, 1.0 );",
220
+ " } else {",
221
+ " gl_FragColor = texture2D( tDiffuse, vUV );",
222
+ " }",
223
+ "}"
224
+ ].join("\n")
303
225
  };
304
226
  export {
305
227
  HalftoneShader
@@ -1 +1 @@
1
- {"version":3,"file":"HalftoneShader.js","sources":["../../src/shaders/HalftoneShader.ts"],"sourcesContent":["/**\n * RGB Halftone shader for three.js.\n *\tNOTE:\n * \t\tShape (1 = Dot, 2 = Ellipse, 3 = Line, 4 = Square)\n *\t\tBlending Mode (1 = Linear, 2 = Multiply, 3 = Add, 4 = Lighter, 5 = Darker)\n */\n\nexport const HalftoneShader = {\n uniforms: {\n tDiffuse: { value: null },\n shape: { value: 1 },\n radius: { value: 4 },\n rotateR: { value: (Math.PI / 12) * 1 },\n rotateG: { value: (Math.PI / 12) * 2 },\n rotateB: { value: (Math.PI / 12) * 3 },\n scatter: { value: 0 },\n width: { value: 1 },\n height: { value: 1 },\n blending: { value: 1 },\n blendingMode: { value: 1 },\n greyscale: { value: false },\n disable: { value: false },\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 #define SQRT2_MINUS_ONE 0.41421356\n #define SQRT2_HALF_MINUS_ONE 0.20710678\n #define PI2 6.28318531\n #define SHAPE_DOT 1\n #define SHAPE_ELLIPSE 2\n #define SHAPE_LINE 3\n #define SHAPE_SQUARE 4\n #define BLENDING_LINEAR 1\n #define BLENDING_MULTIPLY 2\n #define BLENDING_ADD 3\n #define BLENDING_LIGHTER 4\n #define BLENDING_DARKER 5\n uniform sampler2D tDiffuse;\n uniform float radius;\n uniform float rotateR;\n uniform float rotateG;\n uniform float rotateB;\n uniform float scatter;\n uniform float width;\n uniform float height;\n uniform int shape;\n uniform bool disable;\n uniform float blending;\n uniform int blendingMode;\n varying vec2 vUV;\n uniform bool greyscale;\n const int samples = 8;\n\n float blend( float a, float b, float t ) {\n\n // linear blend\n \treturn a * ( 1.0 - t ) + b * t;\n\n }\n\n float hypot( float x, float y ) {\n\n // vector magnitude\n \treturn sqrt( x * x + y * y );\n\n }\n\n float rand( vec2 seed ){\n\n // get pseudo-random number\n return fract( sin( dot( seed.xy, vec2( 12.9898, 78.233 ) ) ) * 43758.5453 );\n\n }\n\n float distanceToDotRadius( float channel, vec2 coord, vec2 normal, vec2 p, float angle, float rad_max ) {\n\n // apply shape-specific transforms\n \tfloat dist = hypot( coord.x - p.x, coord.y - p.y );\n \tfloat rad = channel;\n\n \tif ( shape == SHAPE_DOT ) {\n\n \t\trad = pow( abs( rad ), 1.125 ) * rad_max;\n\n \t} else if ( shape == SHAPE_ELLIPSE ) {\n\n \t\trad = pow( abs( rad ), 1.125 ) * rad_max;\n\n \t\tif ( dist != 0.0 ) {\n \t\t\tfloat dot_p = abs( ( p.x - coord.x ) / dist * normal.x + ( p.y - coord.y ) / dist * normal.y );\n \t\t\tdist = ( dist * ( 1.0 - SQRT2_HALF_MINUS_ONE ) ) + dot_p * dist * SQRT2_MINUS_ONE;\n \t\t}\n\n \t} else if ( shape == SHAPE_LINE ) {\n\n \t\trad = pow( abs( rad ), 1.5) * rad_max;\n \t\tfloat dot_p = ( p.x - coord.x ) * normal.x + ( p.y - coord.y ) * normal.y;\n \t\tdist = hypot( normal.x * dot_p, normal.y * dot_p );\n\n \t} else if ( shape == SHAPE_SQUARE ) {\n\n \t\tfloat theta = atan( p.y - coord.y, p.x - coord.x ) - angle;\n \t\tfloat sin_t = abs( sin( theta ) );\n \t\tfloat cos_t = abs( cos( theta ) );\n \t\trad = pow( abs( rad ), 1.4 );\n \t\trad = rad_max * ( rad + ( ( sin_t > cos_t ) ? rad - sin_t * rad : rad - cos_t * rad ) );\n\n \t}\n\n \treturn rad - dist;\n\n }\n\n struct Cell {\n\n // grid sample positions\n \tvec2 normal;\n \tvec2 p1;\n \tvec2 p2;\n \tvec2 p3;\n \tvec2 p4;\n \tfloat samp2;\n \tfloat samp1;\n \tfloat samp3;\n \tfloat samp4;\n\n };\n\n vec4 getSample( vec2 point ) {\n\n // multi-sampled point\n \tvec4 tex = texture2D( tDiffuse, vec2( point.x / width, point.y / height ) );\n \tfloat base = rand( vec2( floor( point.x ), floor( point.y ) ) ) * PI2;\n \tfloat step = PI2 / float( samples );\n \tfloat dist = radius * 0.66;\n\n \tfor ( int i = 0; i < samples; ++i ) {\n\n \t\tfloat r = base + step * float( i );\n \t\tvec2 coord = point + vec2( cos( r ) * dist, sin( r ) * dist );\n \t\ttex += texture2D( tDiffuse, vec2( coord.x / width, coord.y / height ) );\n\n \t}\n\n \ttex /= float( samples ) + 1.0;\n \treturn tex;\n\n }\n\n float getDotColour( Cell c, vec2 p, int channel, float angle, float aa ) {\n\n // get colour for given point\n \tfloat dist_c_1, dist_c_2, dist_c_3, dist_c_4, res;\n\n \tif ( channel == 0 ) {\n\n \t\tc.samp1 = getSample( c.p1 ).r;\n \t\tc.samp2 = getSample( c.p2 ).r;\n \t\tc.samp3 = getSample( c.p3 ).r;\n \t\tc.samp4 = getSample( c.p4 ).r;\n\n \t} else if (channel == 1) {\n\n \t\tc.samp1 = getSample( c.p1 ).g;\n \t\tc.samp2 = getSample( c.p2 ).g;\n \t\tc.samp3 = getSample( c.p3 ).g;\n \t\tc.samp4 = getSample( c.p4 ).g;\n\n \t} else {\n\n \t\tc.samp1 = getSample( c.p1 ).b;\n \t\tc.samp3 = getSample( c.p3 ).b;\n \t\tc.samp2 = getSample( c.p2 ).b;\n \t\tc.samp4 = getSample( c.p4 ).b;\n\n \t}\n\n \tdist_c_1 = distanceToDotRadius( c.samp1, c.p1, c.normal, p, angle, radius );\n \tdist_c_2 = distanceToDotRadius( c.samp2, c.p2, c.normal, p, angle, radius );\n \tdist_c_3 = distanceToDotRadius( c.samp3, c.p3, c.normal, p, angle, radius );\n \tdist_c_4 = distanceToDotRadius( c.samp4, c.p4, c.normal, p, angle, radius );\n \tres = ( dist_c_1 > 0.0 ) ? clamp( dist_c_1 / aa, 0.0, 1.0 ) : 0.0;\n \tres += ( dist_c_2 > 0.0 ) ? clamp( dist_c_2 / aa, 0.0, 1.0 ) : 0.0;\n \tres += ( dist_c_3 > 0.0 ) ? clamp( dist_c_3 / aa, 0.0, 1.0 ) : 0.0;\n \tres += ( dist_c_4 > 0.0 ) ? clamp( dist_c_4 / aa, 0.0, 1.0 ) : 0.0;\n \tres = clamp( res, 0.0, 1.0 );\n\n \treturn res;\n\n }\n\n Cell getReferenceCell( vec2 p, vec2 origin, float grid_angle, float step ) {\n\n // get containing cell\n \tCell c;\n\n // calc grid\n \tvec2 n = vec2( cos( grid_angle ), sin( grid_angle ) );\n \tfloat threshold = step * 0.5;\n \tfloat dot_normal = n.x * ( p.x - origin.x ) + n.y * ( p.y - origin.y );\n \tfloat dot_line = -n.y * ( p.x - origin.x ) + n.x * ( p.y - origin.y );\n \tvec2 offset = vec2( n.x * dot_normal, n.y * dot_normal );\n \tfloat offset_normal = mod( hypot( offset.x, offset.y ), step );\n \tfloat normal_dir = ( dot_normal < 0.0 ) ? 1.0 : -1.0;\n \tfloat normal_scale = ( ( offset_normal < threshold ) ? -offset_normal : step - offset_normal ) * normal_dir;\n \tfloat offset_line = mod( hypot( ( p.x - offset.x ) - origin.x, ( p.y - offset.y ) - origin.y ), step );\n \tfloat line_dir = ( dot_line < 0.0 ) ? 1.0 : -1.0;\n \tfloat line_scale = ( ( offset_line < threshold ) ? -offset_line : step - offset_line ) * line_dir;\n\n // get closest corner\n \tc.normal = n;\n \tc.p1.x = p.x - n.x * normal_scale + n.y * line_scale;\n \tc.p1.y = p.y - n.y * normal_scale - n.x * line_scale;\n\n // scatter\n \tif ( scatter != 0.0 ) {\n\n \t\tfloat off_mag = scatter * threshold * 0.5;\n \t\tfloat off_angle = rand( vec2( floor( c.p1.x ), floor( c.p1.y ) ) ) * PI2;\n \t\tc.p1.x += cos( off_angle ) * off_mag;\n \t\tc.p1.y += sin( off_angle ) * off_mag;\n\n \t}\n\n // find corners\n \tfloat normal_step = normal_dir * ( ( offset_normal < threshold ) ? step : -step );\n \tfloat line_step = line_dir * ( ( offset_line < threshold ) ? step : -step );\n \tc.p2.x = c.p1.x - n.x * normal_step;\n \tc.p2.y = c.p1.y - n.y * normal_step;\n \tc.p3.x = c.p1.x + n.y * line_step;\n \tc.p3.y = c.p1.y - n.x * line_step;\n \tc.p4.x = c.p1.x - n.x * normal_step + n.y * line_step;\n \tc.p4.y = c.p1.y - n.y * normal_step - n.x * line_step;\n\n \treturn c;\n\n }\n\n float blendColour( float a, float b, float t ) {\n\n // blend colours\n \tif ( blendingMode == BLENDING_LINEAR ) {\n \t\treturn blend( a, b, 1.0 - t );\n \t} else if ( blendingMode == BLENDING_ADD ) {\n \t\treturn blend( a, min( 1.0, a + b ), t );\n \t} else if ( blendingMode == BLENDING_MULTIPLY ) {\n \t\treturn blend( a, max( 0.0, a * b ), t );\n \t} else if ( blendingMode == BLENDING_LIGHTER ) {\n \t\treturn blend( a, max( a, b ), t );\n \t} else if ( blendingMode == BLENDING_DARKER ) {\n \t\treturn blend( a, min( a, b ), t );\n \t} else {\n \t\treturn blend( a, b, 1.0 - t );\n \t}\n\n }\n\n void main() {\n\n \tif ( ! disable ) {\n\n // setup\n \t\tvec2 p = vec2( vUV.x * width, vUV.y * height );\n \t\tvec2 origin = vec2( 0, 0 );\n \t\tfloat aa = ( radius < 2.5 ) ? radius * 0.5 : 1.25;\n\n // get channel samples\n \t\tCell cell_r = getReferenceCell( p, origin, rotateR, radius );\n \t\tCell cell_g = getReferenceCell( p, origin, rotateG, radius );\n \t\tCell cell_b = getReferenceCell( p, origin, rotateB, radius );\n \t\tfloat r = getDotColour( cell_r, p, 0, rotateR, aa );\n \t\tfloat g = getDotColour( cell_g, p, 1, rotateG, aa );\n \t\tfloat b = getDotColour( cell_b, p, 2, rotateB, aa );\n\n // blend with original\n \t\tvec4 colour = texture2D( tDiffuse, vUV );\n \t\tr = blendColour( r, colour.r, blending );\n \t\tg = blendColour( g, colour.g, blending );\n \t\tb = blendColour( b, colour.b, blending );\n\n \t\tif ( greyscale ) {\n \t\t\tr = g = b = (r + b + g) / 3.0;\n \t\t}\n\n \t\tgl_FragColor = vec4( r, g, b, 1.0 );\n\n \t} else {\n\n \t\tgl_FragColor = texture2D( tDiffuse, vUV );\n\n \t}\n\n }\n `,\n}\n"],"names":[],"mappings":"AAOO,MAAM,iBAAiB;AAAA,EAC5B,UAAU;AAAA,IACR,UAAU,EAAE,OAAO,KAAK;AAAA,IACxB,OAAO,EAAE,OAAO,EAAE;AAAA,IAClB,QAAQ,EAAE,OAAO,EAAE;AAAA,IACnB,SAAS,EAAE,OAAQ,KAAK,KAAK,KAAM,EAAE;AAAA,IACrC,SAAS,EAAE,OAAQ,KAAK,KAAK,KAAM,EAAE;AAAA,IACrC,SAAS,EAAE,OAAQ,KAAK,KAAK,KAAM,EAAE;AAAA,IACrC,SAAS,EAAE,OAAO,EAAE;AAAA,IACpB,OAAO,EAAE,OAAO,EAAE;AAAA,IAClB,QAAQ,EAAE,OAAO,EAAE;AAAA,IACnB,UAAU,EAAE,OAAO,EAAE;AAAA,IACrB,cAAc,EAAE,OAAO,EAAE;AAAA,IACzB,WAAW,EAAE,OAAO,MAAM;AAAA,IAC1B,SAAS,EAAE,OAAO,MAAM;AAAA,EAC1B;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;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;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;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA8Q7B;"}
1
+ {"version":3,"file":"HalftoneShader.js","sources":["../../src/shaders/HalftoneShader.ts"],"sourcesContent":["/**\n * RGB Halftone shader for three.js.\n *\tNOTE:\n * \t\tShape (1 = Dot, 2 = Ellipse, 3 = Line, 4 = Square)\n *\t\tBlending Mode (1 = Linear, 2 = Multiply, 3 = Add, 4 = Lighter, 5 = Darker)\n */\n\nexport const HalftoneShader = {\n uniforms: {\n tDiffuse: { value: null },\n shape: { value: 1 },\n radius: { value: 4 },\n rotateR: { value: (Math.PI / 12) * 1 },\n rotateG: { value: (Math.PI / 12) * 2 },\n rotateB: { value: (Math.PI / 12) * 3 },\n scatter: { value: 0 },\n width: { value: 1 },\n height: { value: 1 },\n blending: { value: 1 },\n blendingMode: { value: 1 },\n greyscale: { value: false },\n disable: { value: false },\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 '#define SQRT2_MINUS_ONE 0.41421356',\n '#define SQRT2_HALF_MINUS_ONE 0.20710678',\n '#define PI2 6.28318531',\n '#define SHAPE_DOT 1',\n '#define SHAPE_ELLIPSE 2',\n '#define SHAPE_LINE 3',\n '#define SHAPE_SQUARE 4',\n '#define BLENDING_LINEAR 1',\n '#define BLENDING_MULTIPLY 2',\n '#define BLENDING_ADD 3',\n '#define BLENDING_LIGHTER 4',\n '#define BLENDING_DARKER 5',\n 'uniform sampler2D tDiffuse;',\n 'uniform float radius;',\n 'uniform float rotateR;',\n 'uniform float rotateG;',\n 'uniform float rotateB;',\n 'uniform float scatter;',\n 'uniform float width;',\n 'uniform float height;',\n 'uniform int shape;',\n 'uniform bool disable;',\n 'uniform float blending;',\n 'uniform int blendingMode;',\n 'varying vec2 vUV;',\n 'uniform bool greyscale;',\n 'const int samples = 8;',\n\n 'float blend( float a, float b, float t ) {',\n\n // linear blend\n '\treturn a * ( 1.0 - t ) + b * t;',\n\n '}',\n\n 'float hypot( float x, float y ) {',\n\n // vector magnitude\n '\treturn sqrt( x * x + y * y );',\n\n '}',\n\n 'float rand( vec2 seed ){',\n\n // get pseudo-random number\n 'return fract( sin( dot( seed.xy, vec2( 12.9898, 78.233 ) ) ) * 43758.5453 );',\n\n '}',\n\n 'float distanceToDotRadius( float channel, vec2 coord, vec2 normal, vec2 p, float angle, float rad_max ) {',\n\n // apply shape-specific transforms\n '\tfloat dist = hypot( coord.x - p.x, coord.y - p.y );',\n '\tfloat rad = channel;',\n\n '\tif ( shape == SHAPE_DOT ) {',\n\n '\t\trad = pow( abs( rad ), 1.125 ) * rad_max;',\n\n '\t} else if ( shape == SHAPE_ELLIPSE ) {',\n\n '\t\trad = pow( abs( rad ), 1.125 ) * rad_max;',\n\n '\t\tif ( dist != 0.0 ) {',\n '\t\t\tfloat dot_p = abs( ( p.x - coord.x ) / dist * normal.x + ( p.y - coord.y ) / dist * normal.y );',\n '\t\t\tdist = ( dist * ( 1.0 - SQRT2_HALF_MINUS_ONE ) ) + dot_p * dist * SQRT2_MINUS_ONE;',\n '\t\t}',\n\n '\t} else if ( shape == SHAPE_LINE ) {',\n\n '\t\trad = pow( abs( rad ), 1.5) * rad_max;',\n '\t\tfloat dot_p = ( p.x - coord.x ) * normal.x + ( p.y - coord.y ) * normal.y;',\n '\t\tdist = hypot( normal.x * dot_p, normal.y * dot_p );',\n\n '\t} else if ( shape == SHAPE_SQUARE ) {',\n\n '\t\tfloat theta = atan( p.y - coord.y, p.x - coord.x ) - angle;',\n '\t\tfloat sin_t = abs( sin( theta ) );',\n '\t\tfloat cos_t = abs( cos( theta ) );',\n '\t\trad = pow( abs( rad ), 1.4 );',\n '\t\trad = rad_max * ( rad + ( ( sin_t > cos_t ) ? rad - sin_t * rad : rad - cos_t * rad ) );',\n\n '\t}',\n\n '\treturn rad - dist;',\n\n '}',\n\n 'struct Cell {',\n\n // grid sample positions\n '\tvec2 normal;',\n '\tvec2 p1;',\n '\tvec2 p2;',\n '\tvec2 p3;',\n '\tvec2 p4;',\n '\tfloat samp2;',\n '\tfloat samp1;',\n '\tfloat samp3;',\n '\tfloat samp4;',\n\n '};',\n\n 'vec4 getSample( vec2 point ) {',\n\n // multi-sampled point\n '\tvec4 tex = texture2D( tDiffuse, vec2( point.x / width, point.y / height ) );',\n '\tfloat base = rand( vec2( floor( point.x ), floor( point.y ) ) ) * PI2;',\n '\tfloat step = PI2 / float( samples );',\n '\tfloat dist = radius * 0.66;',\n\n '\tfor ( int i = 0; i < samples; ++i ) {',\n\n '\t\tfloat r = base + step * float( i );',\n '\t\tvec2 coord = point + vec2( cos( r ) * dist, sin( r ) * dist );',\n '\t\ttex += texture2D( tDiffuse, vec2( coord.x / width, coord.y / height ) );',\n\n '\t}',\n\n '\ttex /= float( samples ) + 1.0;',\n '\treturn tex;',\n\n '}',\n\n 'float getDotColour( Cell c, vec2 p, int channel, float angle, float aa ) {',\n\n // get colour for given point\n '\tfloat dist_c_1, dist_c_2, dist_c_3, dist_c_4, res;',\n\n '\tif ( channel == 0 ) {',\n\n '\t\tc.samp1 = getSample( c.p1 ).r;',\n '\t\tc.samp2 = getSample( c.p2 ).r;',\n '\t\tc.samp3 = getSample( c.p3 ).r;',\n '\t\tc.samp4 = getSample( c.p4 ).r;',\n\n '\t} else if (channel == 1) {',\n\n '\t\tc.samp1 = getSample( c.p1 ).g;',\n '\t\tc.samp2 = getSample( c.p2 ).g;',\n '\t\tc.samp3 = getSample( c.p3 ).g;',\n '\t\tc.samp4 = getSample( c.p4 ).g;',\n\n '\t} else {',\n\n '\t\tc.samp1 = getSample( c.p1 ).b;',\n '\t\tc.samp3 = getSample( c.p3 ).b;',\n '\t\tc.samp2 = getSample( c.p2 ).b;',\n '\t\tc.samp4 = getSample( c.p4 ).b;',\n\n '\t}',\n\n '\tdist_c_1 = distanceToDotRadius( c.samp1, c.p1, c.normal, p, angle, radius );',\n '\tdist_c_2 = distanceToDotRadius( c.samp2, c.p2, c.normal, p, angle, radius );',\n '\tdist_c_3 = distanceToDotRadius( c.samp3, c.p3, c.normal, p, angle, radius );',\n '\tdist_c_4 = distanceToDotRadius( c.samp4, c.p4, c.normal, p, angle, radius );',\n '\tres = ( dist_c_1 > 0.0 ) ? clamp( dist_c_1 / aa, 0.0, 1.0 ) : 0.0;',\n '\tres += ( dist_c_2 > 0.0 ) ? clamp( dist_c_2 / aa, 0.0, 1.0 ) : 0.0;',\n '\tres += ( dist_c_3 > 0.0 ) ? clamp( dist_c_3 / aa, 0.0, 1.0 ) : 0.0;',\n '\tres += ( dist_c_4 > 0.0 ) ? clamp( dist_c_4 / aa, 0.0, 1.0 ) : 0.0;',\n '\tres = clamp( res, 0.0, 1.0 );',\n\n '\treturn res;',\n\n '}',\n\n 'Cell getReferenceCell( vec2 p, vec2 origin, float grid_angle, float step ) {',\n\n // get containing cell\n '\tCell c;',\n\n // calc grid\n '\tvec2 n = vec2( cos( grid_angle ), sin( grid_angle ) );',\n '\tfloat threshold = step * 0.5;',\n '\tfloat dot_normal = n.x * ( p.x - origin.x ) + n.y * ( p.y - origin.y );',\n '\tfloat dot_line = -n.y * ( p.x - origin.x ) + n.x * ( p.y - origin.y );',\n '\tvec2 offset = vec2( n.x * dot_normal, n.y * dot_normal );',\n '\tfloat offset_normal = mod( hypot( offset.x, offset.y ), step );',\n '\tfloat normal_dir = ( dot_normal < 0.0 ) ? 1.0 : -1.0;',\n '\tfloat normal_scale = ( ( offset_normal < threshold ) ? -offset_normal : step - offset_normal ) * normal_dir;',\n '\tfloat offset_line = mod( hypot( ( p.x - offset.x ) - origin.x, ( p.y - offset.y ) - origin.y ), step );',\n '\tfloat line_dir = ( dot_line < 0.0 ) ? 1.0 : -1.0;',\n '\tfloat line_scale = ( ( offset_line < threshold ) ? -offset_line : step - offset_line ) * line_dir;',\n\n // get closest corner\n '\tc.normal = n;',\n '\tc.p1.x = p.x - n.x * normal_scale + n.y * line_scale;',\n '\tc.p1.y = p.y - n.y * normal_scale - n.x * line_scale;',\n\n // scatter\n '\tif ( scatter != 0.0 ) {',\n\n '\t\tfloat off_mag = scatter * threshold * 0.5;',\n '\t\tfloat off_angle = rand( vec2( floor( c.p1.x ), floor( c.p1.y ) ) ) * PI2;',\n '\t\tc.p1.x += cos( off_angle ) * off_mag;',\n '\t\tc.p1.y += sin( off_angle ) * off_mag;',\n\n '\t}',\n\n // find corners\n '\tfloat normal_step = normal_dir * ( ( offset_normal < threshold ) ? step : -step );',\n '\tfloat line_step = line_dir * ( ( offset_line < threshold ) ? step : -step );',\n '\tc.p2.x = c.p1.x - n.x * normal_step;',\n '\tc.p2.y = c.p1.y - n.y * normal_step;',\n '\tc.p3.x = c.p1.x + n.y * line_step;',\n '\tc.p3.y = c.p1.y - n.x * line_step;',\n '\tc.p4.x = c.p1.x - n.x * normal_step + n.y * line_step;',\n '\tc.p4.y = c.p1.y - n.y * normal_step - n.x * line_step;',\n\n '\treturn c;',\n\n '}',\n\n 'float blendColour( float a, float b, float t ) {',\n\n // blend colours\n '\tif ( blendingMode == BLENDING_LINEAR ) {',\n '\t\treturn blend( a, b, 1.0 - t );',\n '\t} else if ( blendingMode == BLENDING_ADD ) {',\n '\t\treturn blend( a, min( 1.0, a + b ), t );',\n '\t} else if ( blendingMode == BLENDING_MULTIPLY ) {',\n '\t\treturn blend( a, max( 0.0, a * b ), t );',\n '\t} else if ( blendingMode == BLENDING_LIGHTER ) {',\n '\t\treturn blend( a, max( a, b ), t );',\n '\t} else if ( blendingMode == BLENDING_DARKER ) {',\n '\t\treturn blend( a, min( a, b ), t );',\n '\t} else {',\n '\t\treturn blend( a, b, 1.0 - t );',\n '\t}',\n\n '}',\n\n 'void main() {',\n\n '\tif ( ! disable ) {',\n\n // setup\n '\t\tvec2 p = vec2( vUV.x * width, vUV.y * height );',\n '\t\tvec2 origin = vec2( 0, 0 );',\n '\t\tfloat aa = ( radius < 2.5 ) ? radius * 0.5 : 1.25;',\n\n // get channel samples\n '\t\tCell cell_r = getReferenceCell( p, origin, rotateR, radius );',\n '\t\tCell cell_g = getReferenceCell( p, origin, rotateG, radius );',\n '\t\tCell cell_b = getReferenceCell( p, origin, rotateB, radius );',\n '\t\tfloat r = getDotColour( cell_r, p, 0, rotateR, aa );',\n '\t\tfloat g = getDotColour( cell_g, p, 1, rotateG, aa );',\n '\t\tfloat b = getDotColour( cell_b, p, 2, rotateB, aa );',\n\n // blend with original\n '\t\tvec4 colour = texture2D( tDiffuse, vUV );',\n '\t\tr = blendColour( r, colour.r, blending );',\n '\t\tg = blendColour( g, colour.g, blending );',\n '\t\tb = blendColour( b, colour.b, blending );',\n\n '\t\tif ( greyscale ) {',\n '\t\t\tr = g = b = (r + b + g) / 3.0;',\n '\t\t}',\n\n '\t\tgl_FragColor = vec4( r, g, b, 1.0 );',\n\n '\t} else {',\n\n '\t\tgl_FragColor = texture2D( tDiffuse, vUV );',\n\n '\t}',\n\n '}',\n ].join('\\n'),\n}\n"],"names":[],"mappings":"AAOO,MAAM,iBAAiB;AAAA,EAC5B,UAAU;AAAA,IACR,UAAU,EAAE,OAAO,KAAK;AAAA,IACxB,OAAO,EAAE,OAAO,EAAE;AAAA,IAClB,QAAQ,EAAE,OAAO,EAAE;AAAA,IACnB,SAAS,EAAE,OAAQ,KAAK,KAAK,KAAM,EAAE;AAAA,IACrC,SAAS,EAAE,OAAQ,KAAK,KAAK,KAAM,EAAE;AAAA,IACrC,SAAS,EAAE,OAAQ,KAAK,KAAK,KAAM,EAAE;AAAA,IACrC,SAAS,EAAE,OAAO,EAAE;AAAA,IACpB,OAAO,EAAE,OAAO,EAAE;AAAA,IAClB,QAAQ,EAAE,OAAO,EAAE;AAAA,IACnB,UAAU,EAAE,OAAO,EAAE;AAAA,IACrB,cAAc,EAAE,OAAO,EAAE;AAAA,IACzB,WAAW,EAAE,OAAO,MAAM;AAAA,IAC1B,SAAS,EAAE,OAAO,MAAM;AAAA,EAC1B;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,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA;AAAA,IAGA;AAAA,IAEA;AAAA,IAEA;AAAA;AAAA,IAGA;AAAA,IAEA;AAAA,IAEA;AAAA;AAAA,IAGA;AAAA,IAEA;AAAA,IAEA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA;AAAA,IAGA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA;AAAA,IAGA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AACb;"}
@@ -6,49 +6,33 @@ const HorizontalTiltShiftShader = {
6
6
  h: { value: 1 / 512 },
7
7
  r: { value: 0.35 }
8
8
  },
9
- vertexShader: (
10
- /* glsl */
11
- `
12
- varying vec2 vUv;
13
-
14
- void main() {
15
-
16
- vUv = uv;
17
- gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
18
-
19
- }
20
- `
21
- ),
22
- fragmentShader: (
23
- /* glsl */
24
- `
25
- uniform sampler2D tDiffuse;
26
- uniform float h;
27
- uniform float r;
28
-
29
- varying vec2 vUv;
30
-
31
- void main() {
32
-
33
- vec4 sum = vec4( 0.0 );
34
-
35
- float hh = h * abs( r - vUv.y );
36
-
37
- sum += texture2D( tDiffuse, vec2( vUv.x - 4.0 * hh, vUv.y ) ) * 0.051;
38
- sum += texture2D( tDiffuse, vec2( vUv.x - 3.0 * hh, vUv.y ) ) * 0.0918;
39
- sum += texture2D( tDiffuse, vec2( vUv.x - 2.0 * hh, vUv.y ) ) * 0.12245;
40
- sum += texture2D( tDiffuse, vec2( vUv.x - 1.0 * hh, vUv.y ) ) * 0.1531;
41
- sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;
42
- sum += texture2D( tDiffuse, vec2( vUv.x + 1.0 * hh, vUv.y ) ) * 0.1531;
43
- sum += texture2D( tDiffuse, vec2( vUv.x + 2.0 * hh, vUv.y ) ) * 0.12245;
44
- sum += texture2D( tDiffuse, vec2( vUv.x + 3.0 * hh, vUv.y ) ) * 0.0918;
45
- sum += texture2D( tDiffuse, vec2( vUv.x + 4.0 * hh, vUv.y ) ) * 0.051;
46
-
47
- gl_FragColor = sum;
48
-
49
- }
50
- `
51
- )
9
+ vertexShader: [
10
+ "varying vec2 vUv;",
11
+ "void main() {",
12
+ " vUv = uv;",
13
+ " gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
14
+ "}"
15
+ ].join("\n"),
16
+ fragmentShader: [
17
+ "uniform sampler2D tDiffuse;",
18
+ "uniform float h;",
19
+ "uniform float r;",
20
+ "varying vec2 vUv;",
21
+ "void main() {",
22
+ " vec4 sum = vec4( 0.0 );",
23
+ " float hh = h * abs( r - vUv.y );",
24
+ " sum += texture2D( tDiffuse, vec2( vUv.x - 4.0 * hh, vUv.y ) ) * 0.051;",
25
+ " sum += texture2D( tDiffuse, vec2( vUv.x - 3.0 * hh, vUv.y ) ) * 0.0918;",
26
+ " sum += texture2D( tDiffuse, vec2( vUv.x - 2.0 * hh, vUv.y ) ) * 0.12245;",
27
+ " sum += texture2D( tDiffuse, vec2( vUv.x - 1.0 * hh, vUv.y ) ) * 0.1531;",
28
+ " sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;",
29
+ " sum += texture2D( tDiffuse, vec2( vUv.x + 1.0 * hh, vUv.y ) ) * 0.1531;",
30
+ " sum += texture2D( tDiffuse, vec2( vUv.x + 2.0 * hh, vUv.y ) ) * 0.12245;",
31
+ " sum += texture2D( tDiffuse, vec2( vUv.x + 3.0 * hh, vUv.y ) ) * 0.0918;",
32
+ " sum += texture2D( tDiffuse, vec2( vUv.x + 4.0 * hh, vUv.y ) ) * 0.051;",
33
+ " gl_FragColor = sum;",
34
+ "}"
35
+ ].join("\n")
52
36
  };
53
37
  exports.HorizontalTiltShiftShader = HorizontalTiltShiftShader;
54
38
  //# sourceMappingURL=HorizontalTiltShiftShader.cjs.map