angular-three-soba 1.14.1 → 2.0.0-beta.11

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 (426) hide show
  1. package/README.md +2 -2
  2. package/abstractions/billboard/billboard.d.ts +28 -0
  3. package/abstractions/detailed/detailed.d.ts +26 -0
  4. package/abstractions/edges/edges.d.ts +34 -0
  5. package/abstractions/grid/grid.d.ts +50 -0
  6. package/abstractions/index.d.ts +6 -11
  7. package/abstractions/text/text.d.ts +82 -0
  8. package/abstractions/text-3d/text-3d.d.ts +81 -0
  9. package/cameras/{lib/camera → camera}/camera-content.d.ts +2 -2
  10. package/cameras/camera/camera.d.ts +26 -0
  11. package/cameras/cube-camera/cube-camera.d.ts +69 -0
  12. package/cameras/index.d.ts +4 -4
  13. package/cameras/orthographic-camera/orthographic-camera.d.ts +37 -0
  14. package/cameras/{lib/perspective-camera → perspective-camera}/perspective-camera.d.ts +10 -1
  15. package/controls/index.d.ts +1 -1
  16. package/controls/orbit-controls/orbit-controls.d.ts +54 -0
  17. package/esm2022/abstractions/angular-three-soba-abstractions.mjs +1 -1
  18. package/esm2022/abstractions/billboard/billboard.mjs +74 -0
  19. package/esm2022/abstractions/detailed/detailed.mjs +64 -0
  20. package/esm2022/abstractions/edges/edges.mjs +88 -0
  21. package/esm2022/abstractions/grid/grid.mjs +180 -0
  22. package/esm2022/abstractions/index.mjs +7 -12
  23. package/esm2022/abstractions/text/text.mjs +274 -0
  24. package/esm2022/abstractions/text-3d/text-3d.mjs +165 -0
  25. package/esm2022/angular-three-soba.mjs +1 -1
  26. package/esm2022/cameras/angular-three-soba-cameras.mjs +1 -1
  27. package/esm2022/cameras/camera/camera-content.mjs +20 -0
  28. package/esm2022/cameras/camera/camera.mjs +77 -0
  29. package/esm2022/cameras/cube-camera/cube-camera.mjs +161 -0
  30. package/esm2022/cameras/index.mjs +5 -5
  31. package/esm2022/cameras/orthographic-camera/orthographic-camera.mjs +102 -0
  32. package/esm2022/cameras/perspective-camera/perspective-camera.mjs +46 -0
  33. package/esm2022/controls/angular-three-soba-controls.mjs +1 -1
  34. package/esm2022/controls/index.mjs +2 -2
  35. package/esm2022/controls/orbit-controls/orbit-controls.mjs +181 -0
  36. package/esm2022/index.mjs +1 -1
  37. package/esm2022/loaders/angular-three-soba-loaders.mjs +1 -1
  38. package/esm2022/loaders/gltf-loader/gltf-loader.mjs +30 -0
  39. package/esm2022/loaders/index.mjs +5 -6
  40. package/esm2022/loaders/loader/loader.mjs +138 -0
  41. package/esm2022/loaders/progress/progress.mjs +45 -0
  42. package/esm2022/loaders/texture-loader/texture-loader.mjs +28 -0
  43. package/esm2022/materials/angular-three-soba-materials.mjs +1 -1
  44. package/esm2022/materials/index.mjs +7 -6
  45. package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +82 -0
  46. package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +367 -0
  47. package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +171 -0
  48. package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +278 -0
  49. package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +68 -0
  50. package/esm2022/materials/point-material/point-material.mjs +46 -0
  51. package/esm2022/misc/angular-three-soba-misc.mjs +1 -1
  52. package/esm2022/misc/animations/animations.mjs +59 -0
  53. package/esm2022/misc/bake-shadows/bake-shadows.mjs +24 -0
  54. package/esm2022/misc/caustics/caustics.mjs +387 -0
  55. package/esm2022/misc/decal/decal.mjs +187 -0
  56. package/esm2022/misc/depth-buffer/depth-buffer.mjs +44 -0
  57. package/esm2022/misc/example/example.mjs +160 -0
  58. package/esm2022/misc/fbo/fbo.mjs +47 -0
  59. package/esm2022/misc/html/html-wrapper.mjs +478 -0
  60. package/esm2022/misc/html/html.mjs +304 -0
  61. package/esm2022/misc/index.mjs +14 -5
  62. package/esm2022/misc/sampler/sampler.mjs +142 -0
  63. package/esm2022/misc/shadow/shadow.mjs +111 -0
  64. package/esm2022/misc/stats-gl/stats-gl.mjs +61 -0
  65. package/esm2022/misc/trail/trail.mjs +209 -0
  66. package/esm2022/misc/trail-texture/inject-trail-texture.mjs +17 -0
  67. package/esm2022/misc/trail-texture/trail-texture.mjs +106 -0
  68. package/esm2022/modifiers/angular-three-soba-modifiers.mjs +5 -0
  69. package/esm2022/modifiers/curve-modifier/curve-modifier.mjs +64 -0
  70. package/esm2022/modifiers/index.mjs +2 -0
  71. package/esm2022/performances/adaptive-dpr/adaptive-dpr.mjs +44 -0
  72. package/esm2022/performances/adaptive-events/adaptive-events.mjs +27 -0
  73. package/esm2022/performances/angular-three-soba-performances.mjs +5 -0
  74. package/esm2022/performances/index.mjs +6 -0
  75. package/esm2022/performances/points/points-input.mjs +64 -0
  76. package/esm2022/performances/points/points.mjs +329 -0
  77. package/esm2022/performances/points/position-point.mjs +54 -0
  78. package/esm2022/performances/segments/segment-object.mjs +9 -0
  79. package/esm2022/performances/segments/segments.mjs +182 -0
  80. package/esm2022/shaders/angular-three-soba-shaders.mjs +1 -1
  81. package/esm2022/shaders/blur-pass/blur-pass.mjs +61 -0
  82. package/esm2022/shaders/caustics/caustics-material.mjs +130 -0
  83. package/esm2022/shaders/caustics/caustics-projection-material.mjs +31 -0
  84. package/esm2022/shaders/convolution-material/convolution-material.mjs +94 -0
  85. package/esm2022/shaders/discard-material/discard-material.mjs +3 -0
  86. package/esm2022/shaders/grid-material/grid-material.mjs +77 -0
  87. package/esm2022/shaders/index.mjs +18 -15
  88. package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +56 -0
  89. package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +223 -0
  90. package/esm2022/shaders/mesh-refraction-material/mesh-refraction-material.mjs +170 -0
  91. package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +268 -0
  92. package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +37 -0
  93. package/esm2022/shaders/shader-material/shader-material.mjs +34 -0
  94. package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +25 -0
  95. package/esm2022/shaders/sparkles-material/sparkles-material.mjs +33 -0
  96. package/esm2022/shaders/spot-light-material/spot-light-material.mjs +86 -0
  97. package/esm2022/shaders/star-field-material/star-field-material.mjs +33 -0
  98. package/esm2022/shaders/wireframe-material/wireframe-material.mjs +247 -0
  99. package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +267 -0
  100. package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +108 -0
  101. package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +206 -0
  102. package/esm2022/staging/angular-three-soba-staging.mjs +1 -1
  103. package/esm2022/staging/backdrop/backdrop.mjs +77 -0
  104. package/esm2022/staging/bb-anchor/bb-anchor.mjs +69 -0
  105. package/esm2022/staging/bounds/bounds.mjs +308 -0
  106. package/esm2022/staging/camera-shake/camera-shake.mjs +123 -0
  107. package/esm2022/staging/center/center.mjs +163 -0
  108. package/esm2022/staging/cloud/cloud.mjs +158 -0
  109. package/esm2022/staging/contact-shadows/contact-shadows.mjs +246 -0
  110. package/esm2022/staging/environment/assets.mjs +13 -0
  111. package/esm2022/staging/environment/environment-cube.mjs +47 -0
  112. package/esm2022/staging/environment/environment-ground.mjs +41 -0
  113. package/esm2022/staging/environment/environment-input.mjs +119 -0
  114. package/esm2022/staging/environment/environment-map.mjs +53 -0
  115. package/esm2022/staging/environment/environment-portal.mjs +113 -0
  116. package/esm2022/staging/environment/environment.mjs +61 -0
  117. package/esm2022/staging/environment/utils.mjs +105 -0
  118. package/esm2022/staging/float/float.mjs +94 -0
  119. package/esm2022/staging/index.mjs +22 -18
  120. package/esm2022/staging/matcap-texture/matcap-texture.mjs +64 -0
  121. package/esm2022/staging/normal-texture/normal-texture.mjs +53 -0
  122. package/esm2022/staging/sky/sky.mjs +119 -0
  123. package/esm2022/staging/sparkles/sparkles.mjs +164 -0
  124. package/esm2022/staging/spot-light/shadow-mesh-input.mjs +63 -0
  125. package/esm2022/staging/spot-light/shadow-mesh.mjs +266 -0
  126. package/esm2022/staging/spot-light/spot-light-input.mjs +84 -0
  127. package/esm2022/staging/spot-light/spot-light.mjs +81 -0
  128. package/esm2022/staging/spot-light/volumetric-mesh.mjs +98 -0
  129. package/esm2022/staging/stage/stage.mjs +388 -0
  130. package/esm2022/staging/stars/stars.mjs +147 -0
  131. package/esm2022/staging/wireframe/wireframe-input.mjs +191 -0
  132. package/esm2022/staging/wireframe/wireframe.mjs +224 -0
  133. package/esm2022/utils/angular-three-soba-utils.mjs +5 -0
  134. package/esm2022/utils/content/content.mjs +15 -0
  135. package/esm2022/utils/index.mjs +2 -0
  136. package/fesm2022/angular-three-soba-abstractions.mjs +668 -1882
  137. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  138. package/fesm2022/angular-three-soba-cameras.mjs +279 -232
  139. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  140. package/fesm2022/angular-three-soba-controls.mjs +104 -69
  141. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  142. package/fesm2022/angular-three-soba-loaders.mjs +177 -164
  143. package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
  144. package/fesm2022/angular-three-soba-materials.mjs +630 -482
  145. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  146. package/fesm2022/angular-three-soba-misc.mjs +2248 -122
  147. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  148. package/fesm2022/angular-three-soba-modifiers.mjs +71 -0
  149. package/fesm2022/angular-three-soba-modifiers.mjs.map +1 -0
  150. package/fesm2022/angular-three-soba-performances.mjs +697 -0
  151. package/fesm2022/angular-three-soba-performances.mjs.map +1 -0
  152. package/fesm2022/angular-three-soba-shaders.mjs +554 -209
  153. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
  154. package/fesm2022/angular-three-soba-staging.mjs +3230 -2852
  155. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  156. package/fesm2022/angular-three-soba-utils.mjs +22 -0
  157. package/fesm2022/angular-three-soba-utils.mjs.map +1 -0
  158. package/fesm2022/angular-three-soba.mjs.map +1 -1
  159. package/loaders/gltf-loader/gltf-loader.d.ts +10 -0
  160. package/loaders/index.d.ts +4 -5
  161. package/loaders/loader/loader.d.ts +33 -0
  162. package/loaders/progress/progress.d.ts +9 -0
  163. package/loaders/texture-loader/texture-loader.d.ts +7 -0
  164. package/materials/index.d.ts +6 -5
  165. package/materials/mesh-distort-material/mesh-distort-material.d.ts +40 -0
  166. package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +99 -0
  167. package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +62 -0
  168. package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +107 -0
  169. package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +29 -0
  170. package/materials/point-material/point-material.d.ts +24 -0
  171. package/metadata.json +1 -0
  172. package/misc/animations/animations.d.ts +15 -0
  173. package/misc/{lib/bake-shadows → bake-shadows}/bake-shadows.d.ts +2 -5
  174. package/misc/caustics/caustics.d.ts +87 -0
  175. package/misc/decal/decal.d.ts +49 -0
  176. package/misc/depth-buffer/depth-buffer.d.ts +9 -0
  177. package/misc/example/example.d.ts +81 -0
  178. package/misc/{lib/fbo → fbo}/fbo.d.ts +4 -2
  179. package/misc/html/html-wrapper.d.ts +559 -0
  180. package/misc/html/html.d.ts +214 -0
  181. package/misc/index.d.ts +13 -4
  182. package/misc/sampler/sampler.d.ts +67 -0
  183. package/misc/shadow/shadow.d.ts +37 -0
  184. package/misc/stats-gl/stats-gl.d.ts +24 -0
  185. package/misc/trail/trail.d.ts +57 -0
  186. package/misc/trail-texture/inject-trail-texture.d.ts +9 -0
  187. package/misc/trail-texture/trail-texture.d.ts +50 -0
  188. package/modifiers/README.md +3 -0
  189. package/modifiers/curve-modifier/curve-modifier.d.ts +23 -0
  190. package/modifiers/index.d.ts +1 -0
  191. package/package.json +43 -32
  192. package/performances/README.md +3 -0
  193. package/performances/adaptive-dpr/adaptive-dpr.d.ts +14 -0
  194. package/{performance/lib/adaptive → performances/adaptive-events}/adaptive-events.d.ts +5 -6
  195. package/performances/index.d.ts +5 -0
  196. package/performances/points/points-input.d.ts +32 -0
  197. package/performances/points/points.d.ts +92 -0
  198. package/performances/points/position-point.d.ts +11 -0
  199. package/performances/segments/segment-object.d.ts +7 -0
  200. package/performances/segments/segments.d.ts +124 -0
  201. package/shaders/{lib/blur-pass → blur-pass}/blur-pass.d.ts +2 -2
  202. package/shaders/grid-material/grid-material.d.ts +37 -0
  203. package/shaders/index.d.ts +17 -14
  204. package/shaders/{lib/mesh-distort-material → mesh-distort-material}/mesh-distort-material.d.ts +147 -2
  205. package/shaders/{lib/mesh-transmission-material → mesh-transmission-material}/mesh-transmission-material.d.ts +1 -1
  206. package/shaders/{lib/mesh-wobble-material → mesh-wobble-material}/mesh-wobble-material.d.ts +1 -0
  207. package/shaders/{lib/shader-material → shader-material}/shader-material.d.ts +2 -2
  208. package/shaders/soft-shadow-material/soft-shadow-material.d.ts +19 -0
  209. package/shaders/sparkles-material/sparkles-material.d.ts +17 -0
  210. package/shaders/spot-light-material/spot-light-material.d.ts +13 -0
  211. package/shaders/star-field-material/star-field-material.d.ts +13 -0
  212. package/shaders/wireframe-material/wireframe-material.d.ts +58 -0
  213. package/staging/accumulative-shadows/accumulative-shadows.d.ts +146 -0
  214. package/staging/{lib/accumulative-shadows → accumulative-shadows}/progressive-light-map.d.ts +2 -2
  215. package/staging/accumulative-shadows/randomized-lights.d.ts +90 -0
  216. package/staging/backdrop/backdrop.d.ts +30 -0
  217. package/staging/bb-anchor/bb-anchor.d.ts +27 -0
  218. package/staging/bounds/bounds.d.ts +134 -0
  219. package/staging/camera-shake/camera-shake.d.ts +43 -0
  220. package/staging/center/center.d.ts +70 -0
  221. package/staging/cloud/cloud.d.ts +51 -0
  222. package/staging/contact-shadows/contact-shadows.d.ts +70 -0
  223. package/staging/{lib/environment → environment}/assets.d.ts +9 -9
  224. package/staging/environment/environment-cube.d.ts +15 -0
  225. package/staging/environment/environment-ground.d.ts +13 -0
  226. package/staging/environment/environment-input.d.ts +68 -0
  227. package/staging/environment/environment-map.d.ts +16 -0
  228. package/staging/environment/environment-portal.d.ts +18 -0
  229. package/staging/{lib/environment → environment}/environment.d.ts +2 -6
  230. package/staging/environment/utils.d.ts +7 -0
  231. package/staging/float/float.d.ts +31 -0
  232. package/staging/index.d.ts +21 -17
  233. package/staging/matcap-texture/matcap-texture.d.ts +13 -0
  234. package/staging/normal-texture/normal-texture.d.ts +16 -0
  235. package/staging/sky/sky.d.ts +48 -0
  236. package/staging/sparkles/sparkles.d.ts +63 -0
  237. package/staging/spot-light/shadow-mesh-input.d.ts +29 -0
  238. package/staging/spot-light/shadow-mesh.d.ts +37 -0
  239. package/staging/spot-light/spot-light-input.d.ts +38 -0
  240. package/staging/spot-light/spot-light.d.ts +39 -0
  241. package/staging/spot-light/volumetric-mesh.d.ts +24 -0
  242. package/staging/stage/stage.d.ts +130 -0
  243. package/staging/stars/stars.d.ts +45 -0
  244. package/staging/wireframe/wireframe-input.d.ts +65 -0
  245. package/staging/wireframe/wireframe.d.ts +28 -0
  246. package/utils/README.md +3 -0
  247. package/utils/content/content.d.ts +8 -0
  248. package/utils/index.d.ts +1 -0
  249. package/web-types.json +1 -0
  250. package/abstractions/lib/billboard/billboard.d.ts +0 -14
  251. package/abstractions/lib/catmull-rom-line/catmull-rom-line.d.ts +0 -15
  252. package/abstractions/lib/cubic-bezier-line/cubic-bezier-line.d.ts +0 -15
  253. package/abstractions/lib/edges/edges.d.ts +0 -18
  254. package/abstractions/lib/gizmo-helper/gizmo-helper.d.ts +0 -41
  255. package/abstractions/lib/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -12
  256. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +0 -16
  257. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +0 -24
  258. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +0 -14
  259. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +0 -15
  260. package/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +0 -28
  261. package/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +0 -21
  262. package/abstractions/lib/line/line-input.d.ts +0 -19
  263. package/abstractions/lib/line/line.d.ts +0 -21
  264. package/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.d.ts +0 -19
  265. package/abstractions/lib/text/text.d.ts +0 -21
  266. package/abstractions/lib/text-3d/text-3d.d.ts +0 -39
  267. package/assets/default-spot-light-shadow.glsl +0 -10
  268. package/cameras/lib/camera/camera.d.ts +0 -19
  269. package/cameras/lib/cube-camera/cube-camera.d.ts +0 -27
  270. package/cameras/lib/orthographic-camera/orthographic-camera.d.ts +0 -17
  271. package/controls/lib/orbit-controls/orbit-controls.d.ts +0 -27
  272. package/esm2022/abstractions/lib/billboard/billboard.mjs +0 -74
  273. package/esm2022/abstractions/lib/catmull-rom-line/catmull-rom-line.mjs +0 -120
  274. package/esm2022/abstractions/lib/cubic-bezier-line/cubic-bezier-line.mjs +0 -99
  275. package/esm2022/abstractions/lib/edges/edges.mjs +0 -96
  276. package/esm2022/abstractions/lib/gizmo-helper/gizmo-helper.mjs +0 -213
  277. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/constants.mjs +0 -31
  278. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -92
  279. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -184
  280. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -46
  281. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +0 -134
  282. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -195
  283. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +0 -267
  284. package/esm2022/abstractions/lib/line/line-input.mjs +0 -76
  285. package/esm2022/abstractions/lib/line/line.mjs +0 -133
  286. package/esm2022/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -128
  287. package/esm2022/abstractions/lib/text/text.mjs +0 -115
  288. package/esm2022/abstractions/lib/text-3d/text-3d.mjs +0 -145
  289. package/esm2022/cameras/lib/camera/camera-content.mjs +0 -21
  290. package/esm2022/cameras/lib/camera/camera.mjs +0 -75
  291. package/esm2022/cameras/lib/cube-camera/cube-camera.mjs +0 -131
  292. package/esm2022/cameras/lib/orthographic-camera/orthographic-camera.mjs +0 -93
  293. package/esm2022/cameras/lib/perspective-camera/perspective-camera.mjs +0 -47
  294. package/esm2022/controls/lib/orbit-controls/orbit-controls.mjs +0 -147
  295. package/esm2022/loaders/lib/cube-texture-loader/cube-texture-loader.mjs +0 -10
  296. package/esm2022/loaders/lib/gltf-loader/gltf-loader.mjs +0 -32
  297. package/esm2022/loaders/lib/loader/loader.mjs +0 -134
  298. package/esm2022/loaders/lib/progress/progress.mjs +0 -39
  299. package/esm2022/loaders/lib/texture-loader/texture-loader.mjs +0 -19
  300. package/esm2022/materials/lib/mesh-distort-material/mesh-distort-material.mjs +0 -75
  301. package/esm2022/materials/lib/mesh-reflector-material/mesh-reflector-material.mjs +0 -328
  302. package/esm2022/materials/lib/mesh-refraction-material/mesh-refraction-material.mjs +0 -158
  303. package/esm2022/materials/lib/mesh-transmission-material/mesh-transmission-material.mjs +0 -238
  304. package/esm2022/materials/lib/mesh-wobble-material/mesh-wobble-material.mjs +0 -68
  305. package/esm2022/misc/lib/animations/animations.mjs +0 -52
  306. package/esm2022/misc/lib/bake-shadows/bake-shadows.mjs +0 -26
  307. package/esm2022/misc/lib/depth-buffer/depth-buffer.mjs +0 -39
  308. package/esm2022/misc/lib/fbo/fbo.mjs +0 -39
  309. package/esm2022/performance/angular-three-soba-performance.mjs +0 -5
  310. package/esm2022/performance/index.mjs +0 -5
  311. package/esm2022/performance/lib/adaptive/adaptive-dpr.mjs +0 -47
  312. package/esm2022/performance/lib/adaptive/adaptive-events.mjs +0 -37
  313. package/esm2022/performance/lib/detailed/detailed.mjs +0 -54
  314. package/esm2022/performance/lib/stats/stats.mjs +0 -80
  315. package/esm2022/shaders/lib/blur-pass/blur-pass.mjs +0 -61
  316. package/esm2022/shaders/lib/caustics-material/caustics-material.mjs +0 -128
  317. package/esm2022/shaders/lib/caustics-projection-material/caustics-projection-material.mjs +0 -33
  318. package/esm2022/shaders/lib/convolution-material/convolution-material.mjs +0 -94
  319. package/esm2022/shaders/lib/discard-material/discard-material.mjs +0 -3
  320. package/esm2022/shaders/lib/mesh-distort-material/mesh-distort-material.mjs +0 -55
  321. package/esm2022/shaders/lib/mesh-reflector-material/mesh-reflector-material.mjs +0 -223
  322. package/esm2022/shaders/lib/mesh-refraction-material/mesh-refraction-material.mjs +0 -169
  323. package/esm2022/shaders/lib/mesh-transmission-material/mesh-transmission-material.mjs +0 -268
  324. package/esm2022/shaders/lib/mesh-wobble-material/mesh-wobble-material.mjs +0 -37
  325. package/esm2022/shaders/lib/shader-material/shader-material.mjs +0 -34
  326. package/esm2022/shaders/lib/soft-shadow-material/soft-shadow-material.mjs +0 -33
  327. package/esm2022/shaders/lib/spot-light-material/spot-light-material.mjs +0 -86
  328. package/esm2022/shaders/lib/star-field-material/star-field-material.mjs +0 -32
  329. package/esm2022/staging/lib/accumulative-shadows/accumulative-shadows.mjs +0 -249
  330. package/esm2022/staging/lib/accumulative-shadows/progressive-light-map.mjs +0 -108
  331. package/esm2022/staging/lib/accumulative-shadows/randomized-lights.mjs +0 -201
  332. package/esm2022/staging/lib/bounds/bounds.mjs +0 -284
  333. package/esm2022/staging/lib/camera-shake/camera-shake.mjs +0 -122
  334. package/esm2022/staging/lib/caustics/caustics.mjs +0 -364
  335. package/esm2022/staging/lib/center/center.mjs +0 -143
  336. package/esm2022/staging/lib/cloud/cloud.mjs +0 -160
  337. package/esm2022/staging/lib/contact-shadows/contact-shadows.mjs +0 -228
  338. package/esm2022/staging/lib/environment/assets.mjs +0 -13
  339. package/esm2022/staging/lib/environment/environment-cube.mjs +0 -41
  340. package/esm2022/staging/lib/environment/environment-ground.mjs +0 -67
  341. package/esm2022/staging/lib/environment/environment-inputs.mjs +0 -87
  342. package/esm2022/staging/lib/environment/environment-map.mjs +0 -39
  343. package/esm2022/staging/lib/environment/environment-portal.mjs +0 -111
  344. package/esm2022/staging/lib/environment/environment.mjs +0 -165
  345. package/esm2022/staging/lib/environment/utils.mjs +0 -70
  346. package/esm2022/staging/lib/float/float.mjs +0 -77
  347. package/esm2022/staging/lib/sky/sky.mjs +0 -109
  348. package/esm2022/staging/lib/sparkles/sparkles.mjs +0 -210
  349. package/esm2022/staging/lib/spot-light/common.mjs +0 -42
  350. package/esm2022/staging/lib/spot-light/shadow-mesh-input.mjs +0 -51
  351. package/esm2022/staging/lib/spot-light/spot-light-input.mjs +0 -62
  352. package/esm2022/staging/lib/spot-light/spot-light-shadow-no-shader.mjs +0 -74
  353. package/esm2022/staging/lib/spot-light/spot-light-shadow-shader.mjs +0 -126
  354. package/esm2022/staging/lib/spot-light/spot-light-shadow.mjs +0 -63
  355. package/esm2022/staging/lib/spot-light/spot-light.mjs +0 -117
  356. package/esm2022/staging/lib/spot-light/volumetric-mesh.mjs +0 -86
  357. package/esm2022/staging/lib/stage/stage.mjs +0 -368
  358. package/esm2022/staging/lib/stars/stars.mjs +0 -140
  359. package/fesm2022/angular-three-soba-performance.mjs +0 -210
  360. package/fesm2022/angular-three-soba-performance.mjs.map +0 -1
  361. package/loaders/lib/cube-texture-loader/cube-texture-loader.d.ts +0 -3
  362. package/loaders/lib/gltf-loader/gltf-loader.d.ts +0 -8
  363. package/loaders/lib/loader/loader.d.ts +0 -26
  364. package/loaders/lib/progress/progress.d.ts +0 -16
  365. package/loaders/lib/texture-loader/texture-loader.d.ts +0 -5
  366. package/materials/lib/mesh-distort-material/mesh-distort-material.d.ts +0 -24
  367. package/materials/lib/mesh-reflector-material/mesh-reflector-material.d.ts +0 -41
  368. package/materials/lib/mesh-refraction-material/mesh-refraction-material.d.ts +0 -28
  369. package/materials/lib/mesh-transmission-material/mesh-transmission-material.d.ts +0 -46
  370. package/materials/lib/mesh-wobble-material/mesh-wobble-material.d.ts +0 -14
  371. package/misc/lib/animations/animations.d.ts +0 -13
  372. package/misc/lib/depth-buffer/depth-buffer.d.ts +0 -7
  373. package/performance/README.md +0 -3
  374. package/performance/index.d.ts +0 -4
  375. package/performance/lib/adaptive/adaptive-dpr.d.ts +0 -11
  376. package/performance/lib/detailed/detailed.d.ts +0 -13
  377. package/performance/lib/stats/stats.d.ts +0 -15
  378. package/plugin/README.md +0 -11
  379. package/plugin/generators.json +0 -19
  380. package/plugin/package.json +0 -9
  381. package/plugin/src/generators/init/compat.d.ts +0 -2
  382. package/plugin/src/generators/init/compat.js +0 -6
  383. package/plugin/src/generators/init/compat.js.map +0 -1
  384. package/plugin/src/generators/init/init.d.ts +0 -4
  385. package/plugin/src/generators/init/init.js +0 -22
  386. package/plugin/src/generators/init/init.js.map +0 -1
  387. package/plugin/src/generators/init/schema.json +0 -6
  388. package/plugin/src/index.d.ts +0 -1
  389. package/plugin/src/index.js +0 -6
  390. package/plugin/src/index.js.map +0 -1
  391. package/shaders/lib/soft-shadow-material/soft-shadow-material.d.ts +0 -10
  392. package/shaders/lib/spot-light-material/spot-light-material.d.ts +0 -4
  393. package/shaders/lib/star-field-material/star-field-material.d.ts +0 -3
  394. package/staging/lib/accumulative-shadows/accumulative-shadows.d.ts +0 -58
  395. package/staging/lib/accumulative-shadows/randomized-lights.d.ts +0 -42
  396. package/staging/lib/bounds/bounds.d.ts +0 -48
  397. package/staging/lib/camera-shake/camera-shake.d.ts +0 -28
  398. package/staging/lib/caustics/caustics.d.ts +0 -47
  399. package/staging/lib/center/center.d.ts +0 -40
  400. package/staging/lib/cloud/cloud.d.ts +0 -23
  401. package/staging/lib/contact-shadows/contact-shadows.d.ts +0 -29
  402. package/staging/lib/environment/environment-cube.d.ts +0 -11
  403. package/staging/lib/environment/environment-ground.d.ts +0 -9
  404. package/staging/lib/environment/environment-inputs.d.ts +0 -28
  405. package/staging/lib/environment/environment-map.d.ts +0 -10
  406. package/staging/lib/environment/environment-portal.d.ts +0 -15
  407. package/staging/lib/environment/utils.d.ts +0 -8
  408. package/staging/lib/float/float.d.ts +0 -16
  409. package/staging/lib/sky/sky.d.ts +0 -20
  410. package/staging/lib/sparkles/sparkles.d.ts +0 -29
  411. package/staging/lib/spot-light/common.d.ts +0 -3
  412. package/staging/lib/spot-light/shadow-mesh-input.d.ts +0 -14
  413. package/staging/lib/spot-light/spot-light-input.d.ts +0 -16
  414. package/staging/lib/spot-light/spot-light-shadow-no-shader.d.ts +0 -14
  415. package/staging/lib/spot-light/spot-light-shadow-shader.d.ts +0 -25
  416. package/staging/lib/spot-light/spot-light-shadow.d.ts +0 -6
  417. package/staging/lib/spot-light/spot-light.d.ts +0 -17
  418. package/staging/lib/spot-light/volumetric-mesh.d.ts +0 -15
  419. package/staging/lib/stage/stage.d.ts +0 -87
  420. package/staging/lib/stars/stars.d.ts +0 -20
  421. /package/shaders/{lib/caustics-material → caustics}/caustics-material.d.ts +0 -0
  422. /package/shaders/{lib/caustics-projection-material → caustics}/caustics-projection-material.d.ts +0 -0
  423. /package/shaders/{lib/convolution-material → convolution-material}/convolution-material.d.ts +0 -0
  424. /package/shaders/{lib/discard-material → discard-material}/discard-material.d.ts +0 -0
  425. /package/shaders/{lib/mesh-reflector-material → mesh-reflector-material}/mesh-reflector-material.d.ts +0 -0
  426. /package/shaders/{lib/mesh-refraction-material → mesh-refraction-material}/mesh-refraction-material.d.ts +0 -0
@@ -1,37 +0,0 @@
1
- import { Directive, inject } from '@angular/core';
2
- import { RxActionFactory } from '@rx-angular/state/actions';
3
- import { NgtRxStore, NgtStore } from 'angular-three';
4
- import * as i0 from "@angular/core";
5
- class NgtsAdaptiveEvents extends NgtRxStore {
6
- constructor() {
7
- super(...arguments);
8
- this.store = inject(NgtStore);
9
- this.actions = inject((RxActionFactory)).create();
10
- }
11
- ngOnInit() {
12
- this.effect(this.actions.setEvents$, () => {
13
- const enabled = this.store.get('events', 'enabled');
14
- return () => {
15
- const setEvents = this.store.get('setEvents');
16
- setEvents({ enabled });
17
- };
18
- });
19
- this.actions.setEvents();
20
- this.hold(this.store.select('performance', 'current'), (current) => {
21
- const setEvents = this.store.get('setEvents');
22
- setEvents({ enabled: current === 1 });
23
- });
24
- }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsAdaptiveEvents, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
26
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgtsAdaptiveEvents, isStandalone: true, selector: "ngts-adaptive-events", providers: [RxActionFactory], usesInheritance: true, ngImport: i0 }); }
27
- }
28
- export { NgtsAdaptiveEvents };
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsAdaptiveEvents, decorators: [{
30
- type: Directive,
31
- args: [{
32
- selector: 'ngts-adaptive-events',
33
- standalone: true,
34
- providers: [RxActionFactory],
35
- }]
36
- }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRpdmUtZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvcGVyZm9ybWFuY2Uvc3JjL2xpYi9hZGFwdGl2ZS9hZGFwdGl2ZS1ldmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVyRCxNQUthLGtCQUFtQixTQUFRLFVBQVU7SUFMbEQ7O1FBTXFCLFVBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxDQUFBLGVBQW9DLENBQUEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBaUJwRjtJQWZHLFFBQVE7UUFDSixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUN0QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDcEQsT0FBTyxHQUFHLEVBQUU7Z0JBQ1IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzlDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDM0IsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDL0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDOUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0FsQlEsa0JBQWtCO2tHQUFsQixrQkFBa0IsbUVBRmhCLENBQUMsZUFBZSxDQUFDOztTQUVuQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFMOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJ4QWN0aW9uRmFjdG9yeSB9IGZyb20gJ0ByeC1hbmd1bGFyL3N0YXRlL2FjdGlvbnMnO1xuaW1wb3J0IHsgTmd0UnhTdG9yZSwgTmd0U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLWFkYXB0aXZlLWV2ZW50cycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtSeEFjdGlvbkZhY3RvcnldLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzQWRhcHRpdmVFdmVudHMgZXh0ZW5kcyBOZ3RSeFN0b3JlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JlID0gaW5qZWN0KE5ndFN0b3JlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbnMgPSBpbmplY3QoUnhBY3Rpb25GYWN0b3J5PHsgc2V0RXZlbnRzOiB2b2lkIH0+KS5jcmVhdGUoKTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVmZmVjdCh0aGlzLmFjdGlvbnMuc2V0RXZlbnRzJCwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW5hYmxlZCA9IHRoaXMuc3RvcmUuZ2V0KCdldmVudHMnLCAnZW5hYmxlZCcpO1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRFdmVudHMgPSB0aGlzLnN0b3JlLmdldCgnc2V0RXZlbnRzJyk7XG4gICAgICAgICAgICAgICAgc2V0RXZlbnRzKHsgZW5hYmxlZCB9KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFjdGlvbnMuc2V0RXZlbnRzKCk7XG5cbiAgICAgICAgdGhpcy5ob2xkKHRoaXMuc3RvcmUuc2VsZWN0KCdwZXJmb3JtYW5jZScsICdjdXJyZW50JyksIChjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZXRFdmVudHMgPSB0aGlzLnN0b3JlLmdldCgnc2V0RXZlbnRzJyk7XG4gICAgICAgICAgICBzZXRFdmVudHMoeyBlbmFibGVkOiBjdXJyZW50ID09PSAxIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
@@ -1,54 +0,0 @@
1
- import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
2
- import { extend, injectNgtRef, NgtRxStore } from 'angular-three';
3
- import { combineLatest } from 'rxjs';
4
- import { LOD } from 'three';
5
- import * as i0 from "@angular/core";
6
- extend({ LOD });
7
- class NgtsDetailed extends NgtRxStore {
8
- constructor() {
9
- super(...arguments);
10
- this.lodRef = injectNgtRef();
11
- }
12
- set distances(distances) {
13
- this.set({ distances });
14
- }
15
- ngOnInit() {
16
- this.updateLodChildren();
17
- }
18
- onLODBeforeRender({ object, state }) {
19
- object.update(state.camera);
20
- }
21
- updateLodChildren() {
22
- this.hold(combineLatest([this.lodRef.children$(), this.select('distances')]), ([children, distances]) => {
23
- this.lodRef.nativeElement.levels.length = 0;
24
- children.forEach((child, index) => {
25
- this.lodRef.nativeElement.addLevel(child, distances[index]);
26
- });
27
- });
28
- }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsDetailed, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgtsDetailed, isStandalone: true, selector: "ngts-detailed[distances]", inputs: { lodRef: "lodRef", distances: "distances" }, usesInheritance: true, ngImport: i0, template: `
31
- <ngt-lOD [ref]="lodRef" ngtCompound (beforeRender)="onLODBeforeRender($any($event))">
32
- <ng-content />
33
- </ngt-lOD>
34
- `, isInline: true }); }
35
- }
36
- export { NgtsDetailed };
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsDetailed, decorators: [{
38
- type: Component,
39
- args: [{
40
- selector: 'ngts-detailed[distances]',
41
- standalone: true,
42
- template: `
43
- <ngt-lOD [ref]="lodRef" ngtCompound (beforeRender)="onLODBeforeRender($any($event))">
44
- <ng-content />
45
- </ngt-lOD>
46
- `,
47
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
48
- }]
49
- }], propDecorators: { lodRef: [{
50
- type: Input
51
- }], distances: [{
52
- type: Input
53
- }] } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9wZXJmb3JtYW5jZS9zcmMvbGliL2RldGFpbGVkL2RldGFpbGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUF3QixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sT0FBTyxDQUFDOztBQUU1QixNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBRWhCLE1BVWEsWUFBYSxTQUFRLFVBQVU7SUFWNUM7O1FBV2EsV0FBTSxHQUFHLFlBQVksRUFBTyxDQUFDO0tBc0J6QztJQXBCRyxJQUFhLFNBQVMsQ0FBQyxTQUFtQjtRQUN0QyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQW1DO1FBQ2hFLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTyxpQkFBaUI7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRTtZQUNwRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUM1QyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2hFLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQXRCUSxZQUFZO2tHQUFaLFlBQVksaUtBUFg7Ozs7S0FJVDs7U0FHUSxZQUFZOzJGQUFaLFlBQVk7a0JBVnhCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7OztLQUlUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQzs4QkFFWSxNQUFNO3NCQUFkLEtBQUs7Z0JBRU8sU0FBUztzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0ZW5kLCBpbmplY3ROZ3RSZWYsIE5ndEJlZm9yZVJlbmRlckV2ZW50LCBOZ3RSeFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMT0QgfSBmcm9tICd0aHJlZSc7XG5cbmV4dGVuZCh7IExPRCB9KTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLWRldGFpbGVkW2Rpc3RhbmNlc10nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1sT0QgW3JlZl09XCJsb2RSZWZcIiBuZ3RDb21wb3VuZCAoYmVmb3JlUmVuZGVyKT1cIm9uTE9EQmVmb3JlUmVuZGVyKCRhbnkoJGV2ZW50KSlcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgIDwvbmd0LWxPRD5cbiAgICBgLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c0RldGFpbGVkIGV4dGVuZHMgTmd0UnhTdG9yZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgbG9kUmVmID0gaW5qZWN0Tmd0UmVmPExPRD4oKTtcblxuICAgIEBJbnB1dCgpIHNldCBkaXN0YW5jZXMoZGlzdGFuY2VzOiBudW1iZXJbXSkge1xuICAgICAgICB0aGlzLnNldCh7IGRpc3RhbmNlcyB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVMb2RDaGlsZHJlbigpO1xuICAgIH1cblxuICAgIG9uTE9EQmVmb3JlUmVuZGVyKHsgb2JqZWN0LCBzdGF0ZSB9OiBOZ3RCZWZvcmVSZW5kZXJFdmVudDxUSFJFRS5MT0Q+KSB7XG4gICAgICAgIG9iamVjdC51cGRhdGUoc3RhdGUuY2FtZXJhKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUxvZENoaWxkcmVuKCkge1xuICAgICAgICB0aGlzLmhvbGQoY29tYmluZUxhdGVzdChbdGhpcy5sb2RSZWYuY2hpbGRyZW4kKCksIHRoaXMuc2VsZWN0KCdkaXN0YW5jZXMnKV0pLCAoW2NoaWxkcmVuLCBkaXN0YW5jZXNdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvZFJlZi5uYXRpdmVFbGVtZW50LmxldmVscy5sZW5ndGggPSAwO1xuICAgICAgICAgICAgY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2RSZWYubmF0aXZlRWxlbWVudC5hZGRMZXZlbChjaGlsZCwgZGlzdGFuY2VzW2luZGV4XSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -1,80 +0,0 @@
1
- import { DOCUMENT } from '@angular/common';
2
- import { Directive, inject, Input } from '@angular/core';
3
- import { addAfterEffect, addEffect, is, NgtRxStore, startWithUndefined } from 'angular-three';
4
- import { combineLatest } from 'rxjs';
5
- import * as Stats from 'stats.js';
6
- import * as i0 from "@angular/core";
7
- class NgtsStats extends NgtRxStore {
8
- constructor() {
9
- super(...arguments);
10
- this.document = inject(DOCUMENT);
11
- this.stats = Stats['default']
12
- ? new Stats['default']()
13
- : new Stats();
14
- }
15
- set showPanel(showPanel) {
16
- this.set({ showPanel: showPanel === undefined ? this.get('showPanel') : showPanel });
17
- }
18
- set parent(parent) {
19
- this.set({ parent: is.ref(parent) ? parent.nativeElement : parent });
20
- }
21
- set classes(classes) {
22
- this.set({ classes });
23
- }
24
- set right(right) {
25
- this.set({ right });
26
- }
27
- initialize() {
28
- super.initialize();
29
- this.set({ showPanel: 0, right: false });
30
- }
31
- ngOnInit() {
32
- this.effect(combineLatest([
33
- this.select('showPanel'),
34
- this.select('right'),
35
- this.select('parent').pipe(startWithUndefined()),
36
- this.select('classes').pipe(startWithUndefined()),
37
- ]), ([showPanel, right, parent, classes]) => {
38
- const node = parent ?? this.document.body;
39
- this.stats.showPanel(showPanel);
40
- node.appendChild(this.stats.dom);
41
- if (classes) {
42
- this.stats.dom.classList.add(...classes.split(' ').filter((cls) => cls));
43
- }
44
- if (right) {
45
- this.stats.dom.style.right = '0px';
46
- this.stats.dom.style.left = 'inherit';
47
- }
48
- else {
49
- this.stats.dom.style.left = '0px';
50
- this.stats.dom.style.right = 'inherit';
51
- }
52
- const begin = addEffect(() => this.stats.begin());
53
- const end = addAfterEffect(() => this.stats.end());
54
- return () => {
55
- node.removeChild(this.stats.dom);
56
- begin();
57
- end();
58
- };
59
- });
60
- }
61
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsStats, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
62
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgtsStats, isStandalone: true, selector: "ngts-stats", inputs: { showPanel: "showPanel", parent: "parent", classes: "classes", right: "right" }, usesInheritance: true, ngImport: i0 }); }
63
- }
64
- export { NgtsStats };
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsStats, decorators: [{
66
- type: Directive,
67
- args: [{
68
- selector: 'ngts-stats',
69
- standalone: true,
70
- }]
71
- }], propDecorators: { showPanel: [{
72
- type: Input
73
- }], parent: [{
74
- type: Input
75
- }], classes: [{
76
- type: Input
77
- }], right: [{
78
- type: Input
79
- }] } });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9wZXJmb3JtYW5jZS9zcmMvbGliL3N0YXRzL3N0YXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFnQixVQUFVLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLFVBQVUsQ0FBQzs7QUFFbEMsTUFJYSxTQUFVLFNBQVEsVUFBVTtJQUp6Qzs7UUFLcUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixVQUFLLEdBQVcsS0FBc0IsQ0FBQyxTQUFTLENBQUM7WUFDOUQsQ0FBQyxDQUFDLElBQUssS0FBc0IsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMxQyxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztLQXVEckI7SUFyREcsSUFBYSxTQUFTLENBQUMsU0FBaUI7UUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxJQUFhLE1BQU0sQ0FBQyxNQUE2QztRQUM3RCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFD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QVUsRUFBRSxJQUFJO2lCQUNuQjs4QkFPZ0IsU0FBUztzQkFBckIsS0FBSztnQkFJTyxNQUFNO3NCQUFsQixLQUFLO2dCQUlPLE9BQU87c0JBQW5CLEtBQUs7Z0JBSU8sS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhZGRBZnRlckVmZmVjdCwgYWRkRWZmZWN0LCBpcywgTmd0QW55UmVjb3JkLCBOZ3RSeFN0b3JlLCBzdGFydFdpdGhVbmRlZmluZWQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIFN0YXRzIGZyb20gJ3N0YXRzLmpzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLXN0YXRzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzU3RhdHMgZXh0ZW5kcyBOZ3RSeFN0b3JlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXRzOiBTdGF0cyA9IChTdGF0cyBhcyBOZ3RBbnlSZWNvcmQpWydkZWZhdWx0J11cbiAgICAgICAgPyBuZXcgKFN0YXRzIGFzIE5ndEFueVJlY29yZClbJ2RlZmF1bHQnXSgpXG4gICAgICAgIDogbmV3IFN0YXRzKCk7XG5cbiAgICBASW5wdXQoKSBzZXQgc2hvd1BhbmVsKHNob3dQYW5lbDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc2hvd1BhbmVsOiBzaG93UGFuZWwgPT09IHVuZGVmaW5lZCA/IHRoaXMuZ2V0KCdzaG93UGFuZWwnKSA6IHNob3dQYW5lbCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgcGFyZW50KHBhcmVudDogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgICAgICB0aGlzLnNldCh7IHBhcmVudDogaXMucmVmKHBhcmVudCkgPyBwYXJlbnQubmF0aXZlRWxlbWVudCA6IHBhcmVudCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgY2xhc3NlcyhjbGFzc2VzOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBjbGFzc2VzIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCByaWdodChyaWdodDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IHJpZ2h0IH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoeyBzaG93UGFuZWw6IDAsIHJpZ2h0OiBmYWxzZSB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5lZmZlY3QoXG4gICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCgnc2hvd1BhbmVsJyksXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ3JpZ2h0JyksXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ3BhcmVudCcpLnBpcGUoc3RhcnRXaXRoVW5kZWZpbmVkKCkpLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdjbGFzc2VzJykucGlwZShzdGFydFdpdGhVbmRlZmluZWQoKSksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIChbc2hvd1BhbmVsLCByaWdodCwgcGFyZW50LCBjbGFzc2VzXSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBwYXJlbnQgPz8gdGhpcy5kb2N1bWVudC5ib2R5O1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHMuc2hvd1BhbmVsKHNob3dQYW5lbCk7XG4gICAgICAgICAgICAgICAgbm9kZS5hcHBlbmRDaGlsZCh0aGlzLnN0YXRzLmRvbSk7XG4gICAgICAgICAgICAgICAgaWYgKGNsYXNzZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0cy5kb20uY2xhc3NMaXN0LmFkZCguLi5jbGFzc2VzLnNwbGl0KCcgJykuZmlsdGVyKChjbHM6IHN0cmluZykgPT4gY2xzKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChyaWdodCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRzLmRvbS5zdHlsZS5yaWdodCA9ICcwcHgnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRzLmRvbS5zdHlsZS5sZWZ0ID0gJ2luaGVyaXQnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdHMuZG9tLnN0eWxlLmxlZnQgPSAnMHB4JztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0cy5kb20uc3R5bGUucmlnaHQgPSAnaW5oZXJpdCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGJlZ2luID0gYWRkRWZmZWN0KCgpID0+IHRoaXMuc3RhdHMuYmVnaW4oKSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kID0gYWRkQWZ0ZXJFZmZlY3QoKCkgPT4gdGhpcy5zdGF0cy5lbmQoKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5yZW1vdmVDaGlsZCh0aGlzLnN0YXRzLmRvbSk7XG4gICAgICAgICAgICAgICAgICAgIGJlZ2luKCk7XG4gICAgICAgICAgICAgICAgICAgIGVuZCgpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
@@ -1,61 +0,0 @@
1
- import { BufferAttribute, BufferGeometry, LinearFilter, Mesh, PerspectiveCamera, Scene, Vector2, WebGLRenderTarget, } from 'three';
2
- import { ConvolutionMaterial } from '../convolution-material/convolution-material';
3
- export class BlurPass {
4
- constructor({ gl, resolution, width = 500, height = 500, minDepthThreshold = 0, maxDepthThreshold = 1, depthScale = 0, depthToBlurRatioBias = 0.25, }) {
5
- this.renderToScreen = false;
6
- this.renderTargetA = new WebGLRenderTarget(resolution, resolution, {
7
- minFilter: LinearFilter,
8
- magFilter: LinearFilter,
9
- stencilBuffer: false,
10
- depthBuffer: false,
11
- encoding: gl.outputEncoding,
12
- });
13
- this.renderTargetB = this.renderTargetA.clone();
14
- this.convolutionMaterial = new ConvolutionMaterial();
15
- this.convolutionMaterial.setTexelSize(1.0 / width, 1.0 / height);
16
- this.convolutionMaterial.setResolution(new Vector2(width, height));
17
- this.scene = new Scene();
18
- this.camera = new PerspectiveCamera();
19
- this.convolutionMaterial.uniforms['minDepthThreshold'].value = minDepthThreshold;
20
- this.convolutionMaterial.uniforms['maxDepthThreshold'].value = maxDepthThreshold;
21
- this.convolutionMaterial.uniforms['depthScale'].value = depthScale;
22
- this.convolutionMaterial.uniforms['depthToBlurRatioBias'].value = depthToBlurRatioBias;
23
- this.convolutionMaterial.defines['USE_DEPTH'] = depthScale > 0;
24
- const vertices = new Float32Array([-1, -1, 0, 3, -1, 0, -1, 3, 0]);
25
- const uvs = new Float32Array([0, 0, 2, 0, 0, 2]);
26
- const geometry = new BufferGeometry();
27
- geometry.setAttribute('position', new BufferAttribute(vertices, 3));
28
- geometry.setAttribute('uv', new BufferAttribute(uvs, 2));
29
- this.screen = new Mesh(geometry, this.convolutionMaterial);
30
- this.screen.frustumCulled = false;
31
- this.scene.add(this.screen);
32
- }
33
- render(renderer, inputBuffer, outputBuffer) {
34
- const scene = this.scene;
35
- const camera = this.camera;
36
- const renderTargetA = this.renderTargetA;
37
- const renderTargetB = this.renderTargetB;
38
- const material = this.convolutionMaterial;
39
- const uniforms = material.uniforms;
40
- uniforms['depthBuffer'].value = inputBuffer.depthTexture;
41
- const kernel = material.kernel;
42
- let lastRT = inputBuffer;
43
- let destRT;
44
- let i, l;
45
- // Apply the multi-pass blur.
46
- for (i = 0, l = kernel.length - 1; i < l; ++i) {
47
- // Alternate between targets.
48
- destRT = (i & 1) === 0 ? renderTargetA : renderTargetB;
49
- uniforms['kernel'].value = kernel[i];
50
- uniforms['inputBuffer'].value = lastRT.texture;
51
- renderer.setRenderTarget(destRT);
52
- renderer.render(scene, camera);
53
- lastRT = destRT;
54
- }
55
- uniforms['kernel'].value = kernel[i];
56
- uniforms['inputBuffer'].value = lastRT.texture;
57
- renderer.setRenderTarget(this.renderToScreen ? null : outputBuffer);
58
- renderer.render(scene, camera);
59
- }
60
- }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmx1ci1wYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvc2hhZGVycy9zcmMvbGliL2JsdXItcGFzcy9ibHVyLXBhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGVBQWUsRUFDZixjQUFjLEVBRWQsWUFBWSxFQUNaLElBQUksRUFDSixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE9BQU8sRUFFUCxpQkFBaUIsR0FDcEIsTUFBTSxPQUFPLENBQUM7QUFFZixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQWFuRixNQUFNLE9BQU8sUUFBUTtJQVNqQixZQUFZLEVBQ1IsRUFBRSxFQUNGLFVBQVUsRUFDVixLQUFLLEdBQUcsR0FBRyxFQUNYLE1BQU0sR0FBRyxHQUFHLEVBQ1osaUJBQWlCLEdBQUcsQ0FBQyxFQUNyQixpQkFBaUIsR0FBRyxDQUFDLEVBQ3JCLFVBQVUsR0FBRyxDQUFDLEVBQ2Qsb0JBQW9CLEdBQUcsSUFBSSxHQUNmO1FBWGhCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBWW5CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFO1lBQy9ELFNBQVMsRUFBRSxZQUFZO1lBQ3ZCLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFFBQVEsRUFBRSxFQUFFLENBQUMsY0FBYztTQUM5QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLEdBQUcsR0FBRyxLQUFL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QUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQzNDLDZCQUE2QjtZQUM3QixNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztZQUN2RCxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDL0MsUUFBUSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMvQixNQUFNLEdBQUcsTUFBTSxDQUFDO1NBQ25CO1FBQ0QsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQy9DLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRSxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEJ1ZmZlckF0dHJpYnV0ZSxcbiAgICBCdWZmZXJHZW9tZXRyeSxcbiAgICBDYW1lcmEsXG4gICAgTGluZWFyRmlsdGVyLFxuICAgIE1lc2gsXG4gICAgUGVyc3BlY3RpdmVDYW1lcmEsXG4gICAgU2NlbmUsXG4gICAgVmVjdG9yMixcbiAgICBXZWJHTFJlbmRlcmVyLFxuICAgIFdlYkdMUmVuZGVyVGFyZ2V0LFxufSBmcm9tICd0aHJlZSc7XG5cbmltcG9ydCB7IENvbnZvbHV0aW9uTWF0ZXJpYWwgfSBmcm9tICcuLi9jb252b2x1dGlvbi1tYXRlcmlhbC9jb252b2x1dGlvbi1tYXRlcmlhbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmx1clBhc3NQcm9wcyB7XG4gICAgZ2w6IFdlYkdMUmVuZGVyZXI7XG4gICAgcmVzb2x1dGlvbjogbnVtYmVyO1xuICAgIHdpZHRoPzogbnVtYmVyO1xuICAgIGhlaWdodD86IG51bWJlcjtcbiAgICBtaW5EZXB0aFRocmVzaG9sZD86IG51bWJlcjtcbiAgICBtYXhEZXB0aFRocmVzaG9sZD86IG51bWJlcjtcbiAgICBkZXB0aFNjYWxlPzogbnVtYmVyO1xuICAgIGRlcHRoVG9CbHVyUmF0aW9CaWFzPzogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgQmx1clBhc3Mge1xuICAgIHJlYWRvbmx5IHJlbmRlclRhcmdldEE6IFdlYkdMUmVuZGVyVGFyZ2V0O1xuICAgIHJlYWRvbmx5IHJlbmRlclRhcmdldEI6IFdlYkdMUmVuZGVyVGFyZ2V0O1xuICAgIHJlYWRvbmx5IGNvbnZvbHV0aW9uTWF0ZXJpYWw6IENvbnZvbHV0aW9uTWF0ZXJpYWw7XG4gICAgcmVhZG9ubHkgc2NlbmU6IFNjZW5lO1xuICAgIHJlYWRvbmx5IGNhbWVyYTogQ2FtZXJhO1xuICAgIHJlYWRvbmx5IHNjcmVlbjogTWVzaDtcbiAgICByZW5kZXJUb1NjcmVlbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3Ioe1xuICAgICAgICBnbCxcbiAgICAgICAgcmVzb2x1dGlvbixcbiAgICAgICAgd2lkdGggPSA1MDAsXG4gICAgICAgIGhlaWdodCA9IDUwMCxcbiAgICAgICAgbWluRGVwdGhUaHJlc2hvbGQgPSAwLFxuICAgICAgICBtYXhEZXB0aFRocmVzaG9sZCA9IDEsXG4gICAgICAgIGRlcHRoU2NhbGUgPSAwLFxuICAgICAgICBkZXB0aFRvQmx1clJhdGlvQmlhcyA9IDAuMjUsXG4gICAgfTogQmx1clBhc3NQcm9wcykge1xuICAgICAgICB0aGlzLnJlbmRlclRhcmdldEEgPSBuZXcgV2ViR0xSZW5kZXJUYXJnZXQocmVzb2x1dGlvbiwgcmVzb2x1dGlvbiwge1xuICAgICAgICAgICAgbWluRmlsdGVyOiBMaW5lYXJGaWx0ZXIsXG4gICAgICAgICAgICBtYWdGaWx0ZXI6IExpbmVhckZpbHRlcixcbiAgICAgICAgICAgIHN0ZW5jaWxCdWZmZXI6IGZhbHNlLFxuICAgICAgICAgICAgZGVwdGhCdWZmZXI6IGZhbHNlLFxuICAgICAgICAgICAgZW5jb2Rpbmc6IGdsLm91dHB1dEVuY29kaW5nLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZW5kZXJUYXJnZXRCID0gdGhpcy5yZW5kZXJUYXJnZXRBLmNsb25lKCk7XG4gICAgICAgIHRoaXMuY29udm9sdXRpb25NYXRlcmlhbCA9IG5ldyBDb252b2x1dGlvbk1hdGVyaWFsKCk7XG4gICAgICAgIHRoaXMuY29udm9sdXRpb25NYXRlcmlhbC5zZXRUZXhlbFNpemUoMS4wIC8gd2lkdGgsIDEuMCAvIGhlaWdodCk7XG4gICAgICAgIHRoaXMuY29udm9sdXRpb25NYXRlcmlhbC5zZXRSZXNvbHV0aW9uKG5ldyBWZWN0b3IyKHdpZHRoLCBoZWlnaHQpKTtcbiAgICAgICAgdGhpcy5zY2VuZSA9IG5ldyBTY2VuZSgpO1xuICAgICAgICB0aGlzLmNhbWVyYSA9IG5ldyBQZXJzcGVjdGl2ZUNhbWVyYSgpO1xuICAgICAgICB0aGlzLmNvbnZvbHV0aW9uTWF0ZXJpYWwudW5pZm9ybXNbJ21pbkRlcHRoVGhyZXNob2xkJ10udmFsdWUgPSBtaW5EZXB0aFRocmVzaG9sZDtcbiAgICAgICAgdGhpcy5jb252b2x1dGlvbk1hdGVyaWFsLnVuaWZvcm1zWydtYXhEZXB0aFRocmVzaG9sZCddLnZhbHVlID0gbWF4RGVwdGhUaHJlc2hvbGQ7XG4gICAgICAgIHRoaXMuY29udm9sdXRpb25NYXRlcmlhbC51bmlmb3Jtc1snZGVwdGhTY2FsZSddLnZhbHVlID0gZGVwdGhTY2FsZTtcbiAgICAgICAgdGhpcy5jb252b2x1dGlvbk1hdGVyaWFsLnVuaWZvcm1zWydkZXB0aFRvQmx1clJhdGlvQmlhcyddLnZhbHVlID0gZGVwdGhUb0JsdXJSYXRpb0JpYXM7XG4gICAgICAgIHRoaXMuY29udm9sdXRpb25NYXRlcmlhbC5kZWZpbmVzWydVU0VfREVQVEgnXSA9IGRlcHRoU2NhbGUgPiAwO1xuICAgICAgICBjb25zdCB2ZXJ0aWNlcyA9IG5ldyBGbG9hdDMyQXJyYXkoWy0xLCAtMSwgMCwgMywgLTEsIDAsIC0xLCAzLCAwXSk7XG4gICAgICAgIGNvbnN0IHV2cyA9IG5ldyBGbG9hdDMyQXJyYXkoWzAsIDAsIDIsIDAsIDAsIDJdKTtcbiAgICAgICAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgQnVmZmVyR2VvbWV0cnkoKTtcbiAgICAgICAgZ2VvbWV0cnkuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIG5ldyBCdWZmZXJBdHRyaWJ1dGUodmVydGljZXMsIDMpKTtcbiAgICAgICAgZ2VvbWV0cnkuc2V0QXR0cmlidXRlKCd1dicsIG5ldyBCdWZmZXJBdHRyaWJ1dGUodXZzLCAyKSk7XG4gICAgICAgIHRoaXMuc2NyZWVuID0gbmV3IE1lc2goZ2VvbWV0cnksIHRoaXMuY29udm9sdXRpb25NYXRlcmlhbCk7XG4gICAgICAgIHRoaXMuc2NyZWVuLmZydXN0dW1DdWxsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zY2VuZS5hZGQodGhpcy5zY3JlZW4pO1xuICAgIH1cblxuICAgIHJlbmRlcihyZW5kZXJlcjogV2ViR0xSZW5kZXJlciwgaW5wdXRCdWZmZXI6IGFueSwgb3V0cHV0QnVmZmVyOiBhbnkpIHtcbiAgICAgICAgY29uc3Qgc2NlbmUgPSB0aGlzLnNjZW5lO1xuICAgICAgICBjb25zdCBjYW1lcmEgPSB0aGlzLmNhbWVyYTtcbiAgICAgICAgY29uc3QgcmVuZGVyVGFyZ2V0QSA9IHRoaXMucmVuZGVyVGFyZ2V0QTtcbiAgICAgICAgY29uc3QgcmVuZGVyVGFyZ2V0QiA9IHRoaXMucmVuZGVyVGFyZ2V0QjtcbiAgICAgICAgY29uc3QgbWF0ZXJpYWwgPSB0aGlzLmNvbnZvbHV0aW9uTWF0ZXJpYWw7XG4gICAgICAgIGNvbnN0IHVuaWZvcm1zID0gbWF0ZXJpYWwudW5pZm9ybXM7XG4gICAgICAgIHVuaWZvcm1zWydkZXB0aEJ1ZmZlciddLnZhbHVlID0gaW5wdXRCdWZmZXIuZGVwdGhUZXh0dXJlO1xuICAgICAgICBjb25zdCBrZXJuZWwgPSBtYXRlcmlhbC5rZXJuZWw7XG4gICAgICAgIGxldCBsYXN0UlQgPSBpbnB1dEJ1ZmZlcjtcbiAgICAgICAgbGV0IGRlc3RSVDtcbiAgICAgICAgbGV0IGksIGw7XG4gICAgICAgIC8vIEFwcGx5IHRoZSBtdWx0aS1wYXNzIGJsdXIuXG4gICAgICAgIGZvciAoaSA9IDAsIGwgPSBrZXJuZWwubGVuZ3RoIC0gMTsgaSA8IGw7ICsraSkge1xuICAgICAgICAgICAgLy8gQWx0ZXJuYXRlIGJldHdlZW4gdGFyZ2V0cy5cbiAgICAgICAgICAgIGRlc3RSVCA9IChpICYgMSkgPT09IDAgPyByZW5kZXJUYXJnZXRBIDogcmVuZGVyVGFyZ2V0QjtcbiAgICAgICAgICAgIHVuaWZvcm1zWydrZXJuZWwnXS52YWx1ZSA9IGtlcm5lbFtpXTtcbiAgICAgICAgICAgIHVuaWZvcm1zWydpbnB1dEJ1ZmZlciddLnZhbHVlID0gbGFzdFJULnRleHR1cmU7XG4gICAgICAgICAgICByZW5kZXJlci5zZXRSZW5kZXJUYXJnZXQoZGVzdFJUKTtcbiAgICAgICAgICAgIHJlbmRlcmVyLnJlbmRlcihzY2VuZSwgY2FtZXJhKTtcbiAgICAgICAgICAgIGxhc3RSVCA9IGRlc3RSVDtcbiAgICAgICAgfVxuICAgICAgICB1bmlmb3Jtc1sna2VybmVsJ10udmFsdWUgPSBrZXJuZWxbaV07XG4gICAgICAgIHVuaWZvcm1zWydpbnB1dEJ1ZmZlciddLnZhbHVlID0gbGFzdFJULnRleHR1cmU7XG4gICAgICAgIHJlbmRlcmVyLnNldFJlbmRlclRhcmdldCh0aGlzLnJlbmRlclRvU2NyZWVuID8gbnVsbCA6IG91dHB1dEJ1ZmZlcik7XG4gICAgICAgIHJlbmRlcmVyLnJlbmRlcihzY2VuZSwgY2FtZXJhKTtcbiAgICB9XG59XG4iXX0=
@@ -1,128 +0,0 @@
1
- import * as THREE from 'three';
2
- import { shaderMaterial } from '../shader-material/shader-material';
3
- export const CausticsMaterial = shaderMaterial({
4
- cameraMatrixWorld: new THREE.Matrix4(),
5
- cameraProjectionMatrixInv: new THREE.Matrix4(),
6
- normalTexture: null,
7
- depthTexture: null,
8
- lightDir: new THREE.Vector3(0, 1, 0),
9
- lightPlaneNormal: new THREE.Vector3(0, 1, 0),
10
- lightPlaneConstant: 0,
11
- near: 0.1,
12
- far: 100,
13
- modelMatrix: new THREE.Matrix4(),
14
- worldRadius: 1 / 40,
15
- ior: 1.1,
16
- bounces: 0,
17
- resolution: 1024,
18
- size: 10,
19
- intensity: 0.5,
20
- },
21
- /* glsl */ `varying vec2 vUv;
22
- void main() {
23
- vUv = uv;
24
- gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
25
- }`,
26
- /* glsl */ `uniform mat4 cameraMatrixWorld;
27
- uniform mat4 cameraProjectionMatrixInv;
28
- uniform vec3 lightDir;
29
- uniform vec3 lightPlaneNormal;
30
- uniform float lightPlaneConstant;
31
- uniform float near;
32
- uniform float far;
33
- uniform float time;
34
- uniform float worldRadius;
35
- uniform float resolution;
36
- uniform float size;
37
- uniform float intensity;
38
- uniform float ior;
39
- precision highp isampler2D;
40
- precision highp usampler2D;
41
- uniform sampler2D normalTexture;
42
- uniform sampler2D depthTexture;
43
- uniform float bounces;
44
- varying vec2 vUv;
45
- vec3 WorldPosFromDepth(float depth, vec2 coord) {
46
- float z = depth * 2.0 - 1.0;
47
- vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0);
48
- vec4 viewSpacePosition = cameraProjectionMatrixInv * clipSpacePosition;
49
- // Perspective division
50
- viewSpacePosition /= viewSpacePosition.w;
51
- vec4 worldSpacePosition = cameraMatrixWorld * viewSpacePosition;
52
- return worldSpacePosition.xyz;
53
- }
54
- float sdPlane( vec3 p, vec3 n, float h ) {
55
- // n must be normalized
56
- return dot(p,n) + h;
57
- }
58
- float planeIntersect( vec3 ro, vec3 rd, vec4 p ) {
59
- return -(dot(ro,p.xyz)+p.w)/dot(rd,p.xyz);
60
- }
61
- vec3 totalInternalReflection(vec3 ro, vec3 rd, vec3 pos, vec3 normal, float ior, out vec3 rayOrigin, out vec3 rayDirection) {
62
- rayOrigin = ro;
63
- rayDirection = rd;
64
- rayDirection = refract(rayDirection, normal, 1.0 / ior);
65
- rayOrigin = pos + rayDirection * 0.1;
66
- return rayDirection;
67
- }
68
- void main() {
69
- // Each sample consists of random offset in the x and y direction
70
- float caustic = 0.0;
71
- float causticTexelSize = (1.0 / resolution) * size * 2.0;
72
- float texelsNeeded = worldRadius / causticTexelSize;
73
- float sampleRadius = texelsNeeded / resolution;
74
- float sum = 0.0;
75
- if (texture2D(depthTexture, vUv).x == 1.0) {
76
- gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
77
- return;
78
- }
79
- vec2 offset1 = vec2(-0.5, -0.5);//vec2(rand() - 0.5, rand() - 0.5);
80
- vec2 offset2 = vec2(-0.5, 0.5);//vec2(rand() - 0.5, rand() - 0.5);
81
- vec2 offset3 = vec2(0.5, 0.5);//vec2(rand() - 0.5, rand() - 0.5);
82
- vec2 offset4 = vec2(0.5, -0.5);//vec2(rand() - 0.5, rand() - 0.5);
83
- vec2 uv1 = vUv + offset1 * sampleRadius;
84
- vec2 uv2 = vUv + offset2 * sampleRadius;
85
- vec2 uv3 = vUv + offset3 * sampleRadius;
86
- vec2 uv4 = vUv + offset4 * sampleRadius;
87
- vec3 normal1 = texture2D(normalTexture, uv1, -10.0).rgb * 2.0 - 1.0;
88
- vec3 normal2 = texture2D(normalTexture, uv2, -10.0).rgb * 2.0 - 1.0;
89
- vec3 normal3 = texture2D(normalTexture, uv3, -10.0).rgb * 2.0 - 1.0;
90
- vec3 normal4 = texture2D(normalTexture, uv4, -10.0).rgb * 2.0 - 1.0;
91
- float depth1 = texture2D(depthTexture, uv1, -10.0).x;
92
- float depth2 = texture2D(depthTexture, uv2, -10.0).x;
93
- float depth3 = texture2D(depthTexture, uv3, -10.0).x;
94
- float depth4 = texture2D(depthTexture, uv4, -10.0).x;
95
- // Sanity check the depths
96
- if (depth1 == 1.0 || depth2 == 1.0 || depth3 == 1.0 || depth4 == 1.0) {
97
- gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
98
- return;
99
- }
100
- vec3 pos1 = WorldPosFromDepth(depth1, uv1);
101
- vec3 pos2 = WorldPosFromDepth(depth2, uv2);
102
- vec3 pos3 = WorldPosFromDepth(depth3, uv3);
103
- vec3 pos4 = WorldPosFromDepth(depth4, uv4);
104
- vec3 originPos1 = WorldPosFromDepth(0.0, uv1);
105
- vec3 originPos2 = WorldPosFromDepth(0.0, uv2);
106
- vec3 originPos3 = WorldPosFromDepth(0.0, uv3);
107
- vec3 originPos4 = WorldPosFromDepth(0.0, uv4);
108
- vec3 endPos1, endPos2, endPos3, endPos4;
109
- vec3 endDir1, endDir2, endDir3, endDir4;
110
- totalInternalReflection(originPos1, lightDir, pos1, normal1, ior, endPos1, endDir1);
111
- totalInternalReflection(originPos2, lightDir, pos2, normal2, ior, endPos2, endDir2);
112
- totalInternalReflection(originPos3, lightDir, pos3, normal3, ior, endPos3, endDir3);
113
- totalInternalReflection(originPos4, lightDir, pos4, normal4, ior, endPos4, endDir4);
114
- float lightPosArea = length(cross(originPos2 - originPos1, originPos3 - originPos1)) + length(cross(originPos3 - originPos1, originPos4 - originPos1));
115
- float t1 = planeIntersect(endPos1, endDir1, vec4(lightPlaneNormal, lightPlaneConstant));
116
- float t2 = planeIntersect(endPos2, endDir2, vec4(lightPlaneNormal, lightPlaneConstant));
117
- float t3 = planeIntersect(endPos3, endDir3, vec4(lightPlaneNormal, lightPlaneConstant));
118
- float t4 = planeIntersect(endPos4, endDir4, vec4(lightPlaneNormal, lightPlaneConstant));
119
- vec3 finalPos1 = endPos1 + endDir1 * t1;
120
- vec3 finalPos2 = endPos2 + endDir2 * t2;
121
- vec3 finalPos3 = endPos3 + endDir3 * t3;
122
- vec3 finalPos4 = endPos4 + endDir4 * t4;
123
- float finalArea = length(cross(finalPos2 - finalPos1, finalPos3 - finalPos1)) + length(cross(finalPos3 - finalPos1, finalPos4 - finalPos1));
124
- caustic += intensity * (lightPosArea / finalArea);
125
- // Calculate the area of the triangle in light spaces
126
- gl_FragColor = vec4(vec3(max(caustic, 0.0)), 1.0);
127
- }`);
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F1c3RpY3MtbWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zaGFkZXJzL3NyYy9saWIvY2F1c3RpY3MtbWF0ZXJpYWwvY2F1c3RpY3MtbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXBFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLGNBQWMsQ0FDMUM7SUFDSSxpQkFBaUIsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7SUFDdEMseUJBQXlCLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO0lBQzlDLGFBQWEsRUFBRSxJQUFJO0lBQ25CLFlBQVksRUFBRSxJQUFJO0lBQ2xCLFFBQVEsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEMsZ0JBQWdCLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLGtCQUFrQixFQUFFLENBQUM7SUFDckIsSUFBSSxFQUFFLEdBQUc7SUFDVCxHQUFHLEVBQUUsR0FBRztJQUNSLFdBQVcsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7SUFDaEMsV0FBVyxFQUFFLENBQUMsR0FBRyxFQUFFO0lBQ25CLEdBQUcsRUFBRSxHQUFHO0lBQ1IsT0FBTyxFQUFFLENBQUM7SUFDVixVQUFVLEVBQUUsSUFBSTtJQUNoQixJQUFJLEVBQUUsRUFBRTtJQUNSLFNBQVMsRUFBRSxHQUFHO0NBQ2pCO0FBQ0QsVUFBVSxDQUFDOzs7O0VBSWI7QUFDRSxVQUFVLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBcUdiLENBQ0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IHNoYWRlck1hdGVyaWFsIH0gZnJvbSAnLi4vc2hhZGVyLW1hdGVyaWFsL3NoYWRlci1tYXRlcmlhbCc7XG5cbmV4cG9ydCBjb25zdCBDYXVzdGljc01hdGVyaWFsID0gc2hhZGVyTWF0ZXJpYWwoXG4gICAge1xuICAgICAgICBjYW1lcmFNYXRyaXhXb3JsZDogbmV3IFRIUkVFLk1hdHJpeDQoKSxcbiAgICAgICAgY2FtZXJhUHJvamVjdGlvbk1hdHJpeEludjogbmV3IFRIUkVFLk1hdHJpeDQoKSxcbiAgICAgICAgbm9ybWFsVGV4dHVyZTogbnVsbCxcbiAgICAgICAgZGVwdGhUZXh0dXJlOiBudWxsLFxuICAgICAgICBsaWdodERpcjogbmV3IFRIUkVFLlZlY3RvcjMoMCwgMSwgMCksXG4gICAgICAgIGxpZ2h0UGxhbmVOb3JtYWw6IG5ldyBUSFJFRS5WZWN0b3IzKDAsIDEsIDApLFxuICAgICAgICBsaWdodFBsYW5lQ29uc3RhbnQ6IDAsXG4gICAgICAgIG5lYXI6IDAuMSxcbiAgICAgICAgZmFyOiAxMDAsXG4gICAgICAgIG1vZGVsTWF0cml4OiBuZXcgVEhSRUUuTWF0cml4NCgpLFxuICAgICAgICB3b3JsZFJhZGl1czogMSAvIDQwLFxuICAgICAgICBpb3I6IDEuMSxcbiAgICAgICAgYm91bmNlczogMCxcbiAgICAgICAgcmVzb2x1dGlvbjogMTAyNCxcbiAgICAgICAgc2l6ZTogMTAsXG4gICAgICAgIGludGVuc2l0eTogMC41LFxuICAgIH0sXG4gICAgLyogZ2xzbCAqLyBgdmFyeWluZyB2ZWMyIHZVdjtcbnZvaWQgbWFpbigpIHtcbiAgICB2VXYgPSB1djtcbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KHBvc2l0aW9uLCAxLjApO1xufWAsXG4gICAgLyogZ2xzbCAqLyBgdW5pZm9ybSBtYXQ0IGNhbWVyYU1hdHJpeFdvcmxkO1xudW5pZm9ybSBtYXQ0IGNhbWVyYVByb2plY3Rpb25NYXRyaXhJbnY7XG51bmlmb3JtIHZlYzMgbGlnaHREaXI7XG51bmlmb3JtIHZlYzMgbGlnaHRQbGFuZU5vcm1hbDtcbnVuaWZvcm0gZmxvYXQgbGlnaHRQbGFuZUNvbnN0YW50O1xudW5pZm9ybSBmbG9hdCBuZWFyO1xudW5pZm9ybSBmbG9hdCBmYXI7XG51bmlmb3JtIGZsb2F0IHRpbWU7XG51bmlmb3JtIGZsb2F0IHdvcmxkUmFkaXVzO1xudW5pZm9ybSBmbG9hdCByZXNvbHV0aW9uO1xudW5pZm9ybSBmbG9hdCBzaXplO1xudW5pZm9ybSBmbG9hdCBpbnRlbnNpdHk7XG51bmlmb3JtIGZsb2F0IGlvcjtcbnByZWNpc2lvbiBoaWdocCBpc2FtcGxlcjJEO1xucHJlY2lzaW9uIGhpZ2hwIHVzYW1wbGVyMkQ7XG51bmlmb3JtIHNhbXBsZXIyRCBub3JtYWxUZXh0dXJlO1xudW5pZm9ybSBzYW1wbGVyMkQgZGVwdGhUZXh0dXJlO1xudW5pZm9ybSBmbG9hdCBib3VuY2VzO1xudmFyeWluZyB2ZWMyIHZVdjtcbnZlYzMgV29ybGRQb3NGcm9tRGVwdGgoZmxvYXQgZGVwdGgsIHZlYzIgY29vcmQpIHtcbiAgZmxvYXQgeiA9IGRlcHRoICogMi4wIC0gMS4wO1xuICB2ZWM0IGNsaXBTcGFjZVBvc2l0aW9uID0gdmVjNChjb29yZCAqIDIuMCAtIDEuMCwgeiwgMS4wKTtcbiAgdmVjNCB2aWV3U3BhY2VQb3NpdGlvbiA9IGNhbWVyYVByb2plY3Rpb25NYXRyaXhJbnYgKiBjbGlwU3BhY2VQb3NpdGlvbjtcbiAgLy8gUGVyc3BlY3RpdmUgZGl2aXNpb25cbiAgdmlld1NwYWNlUG9zaXRpb24gLz0gdmlld1NwYWNlUG9zaXRpb24udztcbiAgdmVjNCB3b3JsZFNwYWNlUG9zaXRpb24gPSBjYW1lcmFNYXRyaXhXb3JsZCAqIHZpZXdTcGFjZVBvc2l0aW9uO1xuICByZXR1cm4gd29ybGRTcGFjZVBvc2l0aW9uLnh5ejtcbn1cbmZsb2F0IHNkUGxhbmUoIHZlYzMgcCwgdmVjMyBuLCBmbG9hdCBoICkge1xuICAvLyBuIG11c3QgYmUgbm9ybWFsaXplZFxuICByZXR1cm4gZG90KHAsbikgKyBoO1xufVxuZmxvYXQgcGxhbmVJbnRlcnNlY3QoIHZlYzMgcm8sIHZlYzMgcmQsIHZlYzQgcCApIHtcbiAgcmV0dXJuIC0oZG90KHJvLHAueHl6KStwLncpL2RvdChyZCxwLnh5eik7XG59XG52ZWMzIHRvdGFsSW50ZXJuYWxSZWZsZWN0aW9uKHZlYzMgcm8sIHZlYzMgcmQsIHZlYzMgcG9zLCB2ZWMzIG5vcm1hbCwgZmxvYXQgaW9yLCBvdXQgdmVjMyByYXlPcmlnaW4sIG91dCB2ZWMzIHJheURpcmVjdGlvbikge1xuICByYXlPcmlnaW4gPSBybztcbiAgcmF5RGlyZWN0aW9uID0gcmQ7XG4gIHJheURpcmVjdGlvbiA9IHJlZnJhY3QocmF5RGlyZWN0aW9uLCBub3JtYWwsIDEuMCAvIGlvcik7XG4gIHJheU9yaWdpbiA9IHBvcyArIHJheURpcmVjdGlvbiAqIDAuMTtcbiAgcmV0dXJuIHJheURpcmVjdGlvbjtcbn1cbnZvaWQgbWFpbigpIHtcbiAgLy8gRWFjaCBzYW1wbGUgY29uc2lzdHMgb2YgcmFuZG9tIG9mZnNldCBpbiB0aGUgeCBhbmQgeSBkaXJlY3Rpb25cbiAgZmxvYXQgY2F1c3RpYyA9IDAuMDtcbiAgZmxvYXQgY2F1c3RpY1RleGVsU2l6ZSA9ICgxLjAgLyByZXNvbHV0aW9uKSAqIHNpemUgKiAyLjA7XG4gIGZsb2F0IHRleGVsc05lZWRlZCA9IHdvcmxkUmFkaXVzIC8gY2F1c3RpY1RleGVsU2l6ZTtcbiAgZmxvYXQgc2FtcGxlUmFkaXVzID0gdGV4ZWxzTmVlZGVkIC8gcmVzb2x1dGlvbjtcbiAgZmxvYXQgc3VtID0gMC4wO1xuICBpZiAodGV4dHVyZTJEKGRlcHRoVGV4dHVyZSwgdlV2KS54ID09IDEuMCkge1xuICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMC4wLCAwLjAsIDAuMCwgMS4wKTtcbiAgICByZXR1cm47XG4gIH1cbiAgdmVjMiBvZmZzZXQxID0gdmVjMigtMC41LCAtMC41KTsvL3ZlYzIocmFuZCgpIC0gMC41LCByYW5kKCkgLSAwLjUpO1xuICB2ZWMyIG9mZnNldDIgPSB2ZWMyKC0wLjUsIDAuNSk7Ly92ZWMyKHJhbmQoKSAtIDAuNSwgcmFuZCgpIC0gMC41KTtcbiAgdmVjMiBvZmZzZXQzID0gdmVjMigwLjUsIDAuNSk7Ly92ZWMyKHJhbmQoKSAtIDAuNSwgcmFuZCgpIC0gMC41KTtcbiAgdmVjMiBvZmZzZXQ0ID0gdmVjMigwLjUsIC0wLjUpOy8vdmVjMihyYW5kKCkgLSAwLjUsIHJhbmQoKSAtIDAuNSk7XG4gIHZlYzIgdXYxID0gdlV2ICsgb2Zmc2V0MSAqIHNhbXBsZVJhZGl1cztcbiAgdmVjMiB1djIgPSB2VXYgKyBvZmZzZXQyICogc2FtcGxlUmFkaXVzO1xuICB2ZWMyIHV2MyA9IHZVdiArIG9mZnNldDMgKiBzYW1wbGVSYWRpdXM7XG4gIHZlYzIgdXY0ID0gdlV2ICsgb2Zmc2V0NCAqIHNhbXBsZVJhZGl1cztcbiAgdmVjMyBub3JtYWwxID0gdGV4dHVyZTJEKG5vcm1hbFRleHR1cmUsIHV2MSwgLTEwLjApLnJnYiAqIDIuMCAtIDEuMDtcbiAgdmVjMyBub3JtYWwyID0gdGV4dHVyZTJEKG5vcm1hbFRleHR1cmUsIHV2MiwgLTEwLjApLnJnYiAqIDIuMCAtIDEuMDtcbiAgdmVjMyBub3JtYWwzID0gdGV4dHVyZTJEKG5vcm1hbFRleHR1cmUsIHV2MywgLTEwLjApLnJnYiAqIDIuMCAtIDEuMDtcbiAgdmVjMyBub3JtYWw0ID0gdGV4dHVyZTJEKG5vcm1hbFRleHR1cmUsIHV2NCwgLTEwLjApLnJnYiAqIDIuMCAtIDEuMDtcbiAgZmxvYXQgZGVwdGgxID0gdGV4dHVyZTJEKGRlcHRoVGV4dHVyZSwgdXYxLCAtMTAuMCkueDtcbiAgZmxvYXQgZGVwdGgyID0gdGV4dHVyZTJEKGRlcHRoVGV4dHVyZSwgdXYyLCAtMTAuMCkueDtcbiAgZmxvYXQgZGVwdGgzID0gdGV4dHVyZTJEKGRlcHRoVGV4dHVyZSwgdXYzLCAtMTAuMCkueDtcbiAgZmxvYXQgZGVwdGg0ID0gdGV4dHVyZTJEKGRlcHRoVGV4dHVyZSwgdXY0LCAtMTAuMCkueDtcbiAgLy8gU2FuaXR5IGNoZWNrIHRoZSBkZXB0aHNcbiAgaWYgKGRlcHRoMSA9PSAxLjAgfHwgZGVwdGgyID09IDEuMCB8fCBkZXB0aDMgPT0gMS4wIHx8IGRlcHRoNCA9PSAxLjApIHtcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDAuMCwgMC4wLCAwLjAsIDEuMCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZlYzMgcG9zMSA9IFdvcmxkUG9zRnJvbURlcHRoKGRlcHRoMSwgdXYxKTtcbiAgdmVjMyBwb3MyID0gV29ybGRQb3NGcm9tRGVwdGgoZGVwdGgyLCB1djIpO1xuICB2ZWMzIHBvczMgPSBXb3JsZFBvc0Zyb21EZXB0aChkZXB0aDMsIHV2Myk7XG4gIHZlYzMgcG9zNCA9IFdvcmxkUG9zRnJvbURlcHRoKGRlcHRoNCwgdXY0KTtcbiAgdmVjMyBvcmlnaW5Qb3MxID0gV29ybGRQb3NGcm9tRGVwdGgoMC4wLCB1djEpO1xuICB2ZWMzIG9yaWdpblBvczIgPSBXb3JsZFBvc0Zyb21EZXB0aCgwLjAsIHV2Mik7XG4gIHZlYzMgb3JpZ2luUG9zMyA9IFdvcmxkUG9zRnJvbURlcHRoKDAuMCwgdXYzKTtcbiAgdmVjMyBvcmlnaW5Qb3M0ID0gV29ybGRQb3NGcm9tRGVwdGgoMC4wLCB1djQpO1xuICB2ZWMzIGVuZFBvczEsIGVuZFBvczIsIGVuZFBvczMsIGVuZFBvczQ7XG4gIHZlYzMgZW5kRGlyMSwgZW5kRGlyMiwgZW5kRGlyMywgZW5kRGlyNDtcbiAgdG90YWxJbnRlcm5hbFJlZmxlY3Rpb24ob3JpZ2luUG9zMSwgbGlnaHREaXIsIHBvczEsIG5vcm1hbDEsIGlvciwgZW5kUG9zMSwgZW5kRGlyMSk7XG4gIHRvdGFsSW50ZXJuYWxSZWZsZWN0aW9uKG9yaWdpblBvczIsIGxpZ2h0RGlyLCBwb3MyLCBub3JtYWwyLCBpb3IsIGVuZFBvczIsIGVuZERpcjIpO1xuICB0b3RhbEludGVybmFsUmVmbGVjdGlvbihvcmlnaW5Qb3MzLCBsaWdodERpciwgcG9zMywgbm9ybWFsMywgaW9yLCBlbmRQb3MzLCBlbmREaXIzKTtcbiAgdG90YWxJbnRlcm5hbFJlZmxlY3Rpb24ob3JpZ2luUG9zNCwgbGlnaHREaXIsIHBvczQsIG5vcm1hbDQsIGlvciwgZW5kUG9zNCwgZW5kRGlyNCk7XG4gIGZsb2F0IGxpZ2h0UG9zQXJlYSA9IGxlbmd0aChjcm9zcyhvcmlnaW5Qb3MyIC0gb3JpZ2luUG9zMSwgb3JpZ2luUG9zMyAtIG9yaWdpblBvczEpKSArIGxlbmd0aChjcm9zcyhvcmlnaW5Qb3MzIC0gb3JpZ2luUG9zMSwgb3JpZ2luUG9zNCAtIG9yaWdpblBvczEpKTtcbiAgZmxvYXQgdDEgPSBwbGFuZUludGVyc2VjdChlbmRQb3MxLCBlbmREaXIxLCB2ZWM0KGxpZ2h0UGxhbmVOb3JtYWwsIGxpZ2h0UGxhbmVDb25zdGFudCkpO1xuICBmbG9hdCB0MiA9IHBsYW5lSW50ZXJzZWN0KGVuZFBvczIsIGVuZERpcjIsIHZlYzQobGlnaHRQbGFuZU5vcm1hbCwgbGlnaHRQbGFuZUNvbnN0YW50KSk7XG4gIGZsb2F0IHQzID0gcGxhbmVJbnRlcnNlY3QoZW5kUG9zMywgZW5kRGlyMywgdmVjNChsaWdodFBsYW5lTm9ybWFsLCBsaWdodFBsYW5lQ29uc3RhbnQpKTtcbiAgZmxvYXQgdDQgPSBwbGFuZUludGVyc2VjdChlbmRQb3M0LCBlbmREaXI0LCB2ZWM0KGxpZ2h0UGxhbmVOb3JtYWwsIGxpZ2h0UGxhbmVDb25zdGFudCkpO1xuICB2ZWMzIGZpbmFsUG9zMSA9IGVuZFBvczEgKyBlbmREaXIxICogdDE7XG4gIHZlYzMgZmluYWxQb3MyID0gZW5kUG9zMiArIGVuZERpcjIgKiB0MjtcbiAgdmVjMyBmaW5hbFBvczMgPSBlbmRQb3MzICsgZW5kRGlyMyAqIHQzO1xuICB2ZWMzIGZpbmFsUG9zNCA9IGVuZFBvczQgKyBlbmREaXI0ICogdDQ7XG4gIGZsb2F0IGZpbmFsQXJlYSA9IGxlbmd0aChjcm9zcyhmaW5hbFBvczIgLSBmaW5hbFBvczEsIGZpbmFsUG9zMyAtIGZpbmFsUG9zMSkpICsgbGVuZ3RoKGNyb3NzKGZpbmFsUG9zMyAtIGZpbmFsUG9zMSwgZmluYWxQb3M0IC0gZmluYWxQb3MxKSk7XG4gIGNhdXN0aWMgKz0gaW50ZW5zaXR5ICogKGxpZ2h0UG9zQXJlYSAvIGZpbmFsQXJlYSk7XG4gIC8vIENhbGN1bGF0ZSB0aGUgYXJlYSBvZiB0aGUgdHJpYW5nbGUgaW4gbGlnaHQgc3BhY2VzXG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQodmVjMyhtYXgoY2F1c3RpYywgMC4wKSksIDEuMCk7XG59YFxuKTtcbiJdfQ==
@@ -1,33 +0,0 @@
1
- import * as THREE from 'three';
2
- import { shaderMaterial } from '../shader-material/shader-material';
3
- export const CausticsProjectionMaterial = shaderMaterial({
4
- causticsTexture: null,
5
- causticsTextureB: null,
6
- color: new THREE.Color(),
7
- lightProjMatrix: new THREE.Matrix4(),
8
- lightViewMatrix: new THREE.Matrix4(),
9
- },
10
- /* glsl */ `varying vec3 vWorldPosition;
11
- void main() {
12
- gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);
13
- vec4 worldPosition = modelMatrix * vec4(position, 1.);
14
- vWorldPosition = worldPosition.xyz;
15
- }`,
16
- /* glsl */ `varying vec3 vWorldPosition;
17
- uniform vec3 color;
18
- uniform sampler2D causticsTexture;
19
- uniform sampler2D causticsTextureB;
20
- uniform mat4 lightProjMatrix;
21
- uniform mat4 lightViewMatrix;
22
- void main() {
23
- // Apply caustics
24
- vec4 lightSpacePos = lightProjMatrix * lightViewMatrix * vec4(vWorldPosition, 1.0);
25
- lightSpacePos.xyz /= lightSpacePos.w;
26
- lightSpacePos.xyz = lightSpacePos.xyz * 0.5 + 0.5;
27
- vec3 front = texture2D(causticsTexture, lightSpacePos.xy).rgb;
28
- vec3 back = texture2D(causticsTextureB, lightSpacePos.xy).rgb;
29
- gl_FragColor = vec4((front + back) * color, 1.0);
30
- #include <tonemapping_fragment>
31
- #include <encodings_fragment>
32
- }`);
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F1c3RpY3MtcHJvamVjdGlvbi1tYXRlcmlhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL3NoYWRlcnMvc3JjL2xpYi9jYXVzdGljcy1wcm9qZWN0aW9uLW1hdGVyaWFsL2NhdXN0aWNzLXByb2plY3Rpb24tbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXBFLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLGNBQWMsQ0FDcEQ7SUFDSSxlQUFlLEVBQUUsSUFBSTtJQUNyQixnQkFBZ0IsRUFBRSxJQUFJO0lBQ3RCLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUU7SUFDeEIsZUFBZSxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtJQUNwQyxlQUFlLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO0NBQ3ZDO0FBQ0QsVUFBVSxDQUFDOzs7OztFQUtiO0FBQ0UsVUFBVSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0VBZ0JiLENBQ0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IHNoYWRlck1hdGVyaWFsIH0gZnJvbSAnLi4vc2hhZGVyLW1hdGVyaWFsL3NoYWRlci1tYXRlcmlhbCc7XG5cbmV4cG9ydCBjb25zdCBDYXVzdGljc1Byb2plY3Rpb25NYXRlcmlhbCA9IHNoYWRlck1hdGVyaWFsKFxuICAgIHtcbiAgICAgICAgY2F1c3RpY3NUZXh0dXJlOiBudWxsLFxuICAgICAgICBjYXVzdGljc1RleHR1cmVCOiBudWxsLFxuICAgICAgICBjb2xvcjogbmV3IFRIUkVFLkNvbG9yKCksXG4gICAgICAgIGxpZ2h0UHJvak1hdHJpeDogbmV3IFRIUkVFLk1hdHJpeDQoKSxcbiAgICAgICAgbGlnaHRWaWV3TWF0cml4OiBuZXcgVEhSRUUuTWF0cml4NCgpLFxuICAgIH0sXG4gICAgLyogZ2xzbCAqLyBgdmFyeWluZyB2ZWMzIHZXb3JsZFBvc2l0aW9uO1xudm9pZCBtYWluKCkge1xuICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiB2aWV3TWF0cml4ICogbW9kZWxNYXRyaXggKiB2ZWM0KHBvc2l0aW9uLCAxLik7XG4gIHZlYzQgd29ybGRQb3NpdGlvbiA9IG1vZGVsTWF0cml4ICogdmVjNChwb3NpdGlvbiwgMS4pO1xuICB2V29ybGRQb3NpdGlvbiA9IHdvcmxkUG9zaXRpb24ueHl6O1xufWAsXG4gICAgLyogZ2xzbCAqLyBgdmFyeWluZyB2ZWMzIHZXb3JsZFBvc2l0aW9uO1xudW5pZm9ybSB2ZWMzIGNvbG9yO1xudW5pZm9ybSBzYW1wbGVyMkQgY2F1c3RpY3NUZXh0dXJlO1xudW5pZm9ybSBzYW1wbGVyMkQgY2F1c3RpY3NUZXh0dXJlQjtcbnVuaWZvcm0gbWF0NCBsaWdodFByb2pNYXRyaXg7XG51bmlmb3JtIG1hdDQgbGlnaHRWaWV3TWF0cml4O1xuIHZvaWQgbWFpbigpIHtcbiAgLy8gQXBwbHkgY2F1c3RpY3NcbiAgdmVjNCBsaWdodFNwYWNlUG9zID0gbGlnaHRQcm9qTWF0cml4ICogbGlnaHRWaWV3TWF0cml4ICogdmVjNCh2V29ybGRQb3NpdGlvbiwgMS4wKTtcbiAgbGlnaHRTcGFjZVBvcy54eXogLz0gbGlnaHRTcGFjZVBvcy53O1xuICBsaWdodFNwYWNlUG9zLnh5eiA9IGxpZ2h0U3BhY2VQb3MueHl6ICogMC41ICsgMC41O1xuICB2ZWMzIGZyb250ID0gdGV4dHVyZTJEKGNhdXN0aWNzVGV4dHVyZSwgbGlnaHRTcGFjZVBvcy54eSkucmdiO1xuICB2ZWMzIGJhY2sgPSB0ZXh0dXJlMkQoY2F1c3RpY3NUZXh0dXJlQiwgbGlnaHRTcGFjZVBvcy54eSkucmdiO1xuICBnbF9GcmFnQ29sb3IgPSB2ZWM0KChmcm9udCArIGJhY2spICogY29sb3IsIDEuMCk7XG4gICNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cbiAgI2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cbn1gXG4pO1xuIl19
@@ -1,94 +0,0 @@
1
- import { NoBlending, ShaderMaterial, Uniform, Vector2 } from 'three';
2
- export class ConvolutionMaterial extends ShaderMaterial {
3
- constructor(texelSize = new Vector2()) {
4
- super({
5
- uniforms: {
6
- inputBuffer: new Uniform(null),
7
- depthBuffer: new Uniform(null),
8
- resolution: new Uniform(new Vector2()),
9
- texelSize: new Uniform(new Vector2()),
10
- halfTexelSize: new Uniform(new Vector2()),
11
- kernel: new Uniform(0.0),
12
- scale: new Uniform(1.0),
13
- cameraNear: new Uniform(0.0),
14
- cameraFar: new Uniform(1.0),
15
- minDepthThreshold: new Uniform(0.0),
16
- maxDepthThreshold: new Uniform(1.0),
17
- depthScale: new Uniform(0.0),
18
- depthToBlurRatioBias: new Uniform(0.25),
19
- },
20
- fragmentShader: `#include <common>
21
- #include <dithering_pars_fragment>
22
- uniform sampler2D inputBuffer;
23
- uniform sampler2D depthBuffer;
24
- uniform float cameraNear;
25
- uniform float cameraFar;
26
- uniform float minDepthThreshold;
27
- uniform float maxDepthThreshold;
28
- uniform float depthScale;
29
- uniform float depthToBlurRatioBias;
30
- varying vec2 vUv;
31
- varying vec2 vUv0;
32
- varying vec2 vUv1;
33
- varying vec2 vUv2;
34
- varying vec2 vUv3;
35
-
36
- void main() {
37
- float depthFactor = 0.0;
38
-
39
- #ifdef USE_DEPTH
40
- vec4 depth = texture2D(depthBuffer, vUv);
41
- depthFactor = smoothstep(minDepthThreshold, maxDepthThreshold, 1.0-(depth.r * depth.a));
42
- depthFactor *= depthScale;
43
- depthFactor = max(0.0, min(1.0, depthFactor + 0.25));
44
- #endif
45
-
46
- vec4 sum = texture2D(inputBuffer, mix(vUv0, vUv, depthFactor));
47
- sum += texture2D(inputBuffer, mix(vUv1, vUv, depthFactor));
48
- sum += texture2D(inputBuffer, mix(vUv2, vUv, depthFactor));
49
- sum += texture2D(inputBuffer, mix(vUv3, vUv, depthFactor));
50
- gl_FragColor = sum * 0.25 ;
51
-
52
- #include <dithering_fragment>
53
- #include <tonemapping_fragment>
54
- #include <encodings_fragment>
55
- }`,
56
- vertexShader: `uniform vec2 texelSize;
57
- uniform vec2 halfTexelSize;
58
- uniform float kernel;
59
- uniform float scale;
60
- varying vec2 vUv;
61
- varying vec2 vUv0;
62
- varying vec2 vUv1;
63
- varying vec2 vUv2;
64
- varying vec2 vUv3;
65
-
66
- void main() {
67
- vec2 uv = position.xy * 0.5 + 0.5;
68
- vUv = uv;
69
-
70
- vec2 dUv = (texelSize * vec2(kernel) + halfTexelSize) * scale;
71
- vUv0 = vec2(uv.x - dUv.x, uv.y + dUv.y);
72
- vUv1 = vec2(uv.x + dUv.x, uv.y + dUv.y);
73
- vUv2 = vec2(uv.x + dUv.x, uv.y - dUv.y);
74
- vUv3 = vec2(uv.x - dUv.x, uv.y - dUv.y);
75
-
76
- gl_Position = vec4(position.xy, 1.0, 1.0);
77
- }`,
78
- blending: NoBlending,
79
- depthWrite: false,
80
- depthTest: false,
81
- });
82
- this.toneMapped = false;
83
- this.setTexelSize(texelSize.x, texelSize.y);
84
- this.kernel = new Float32Array([0.0, 1.0, 2.0, 2.0, 3.0]);
85
- }
86
- setTexelSize(x, y) {
87
- this.uniforms['texelSize'].value.set(x, y);
88
- this.uniforms['halfTexelSize'].value.set(x, y).multiplyScalar(0.5);
89
- }
90
- setResolution(resolution) {
91
- this.uniforms['resolution'].value.copy(resolution);
92
- }
93
- }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udm9sdXRpb24tbWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zaGFkZXJzL3NyYy9saWIvY29udm9sdXRpb24tbWF0ZXJpYWwvY29udm9sdXRpb24tbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVyRSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsY0FBYztJQUVuRCxZQUFZLFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRTtRQUNqQyxLQUFLLENBQUM7WUFDRixRQUFRLEVBQUU7Z0JBQ04sV0FBVyxFQUFFLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDOUIsV0FBVyxFQUFFLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDOUIsVUFBVSxFQUFFLElBQUksT0FBTyxDQUFDLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ3RDLFNBQVMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNyQyxhQUFhLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDekMsTUFBTSxFQUFFLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFDeEIsS0FBSyxFQUFFLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFDdkIsVUFBVSxFQUFFLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFDNUIsU0FBUyxFQUFFLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFDM0IsaUJBQWlCLEVBQUUsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDO2dCQUNuQyxpQkFBaUIsRUFBRSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUM7Z0JBQ25DLFVBQVUsRUFBRSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUM7Z0JBQzVCLG9CQUFvQixFQUFFLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQzthQUMxQztZQUNELGNBQWMsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7VUFtQ2xCO1lBQ0UsWUFBWSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7VUFxQmhCO1lBQ0UsUUFBUSxFQUFFLFVBQVU7WUFDcEIsVUFBVSxFQUFFLEtBQUs7WUFDakIsU0FBUyxFQUFFLEtBQUs7U0FDbkIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksWUFBWSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFlBQVksQ0FBQyxDQUFTLEVBQUUsQ0FBUztRQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFDRCxhQUFhLENBQUMsVUFBbUI7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vQmxlbmRpbmcsIFNoYWRlck1hdGVyaWFsLCBVbmlmb3JtLCBWZWN0b3IyIH0gZnJvbSAndGhyZWUnO1xuXG5leHBvcnQgY2xhc3MgQ29udm9sdXRpb25NYXRlcmlhbCBleHRlbmRzIFNoYWRlck1hdGVyaWFsIHtcbiAgICByZWFkb25seSBrZXJuZWw6IEZsb2F0MzJBcnJheTtcbiAgICBjb25zdHJ1Y3Rvcih0ZXhlbFNpemUgPSBuZXcgVmVjdG9yMigpKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIHVuaWZvcm1zOiB7XG4gICAgICAgICAgICAgICAgaW5wdXRCdWZmZXI6IG5ldyBVbmlmb3JtKG51bGwpLFxuICAgICAgICAgICAgICAgIGRlcHRoQnVmZmVyOiBuZXcgVW5pZm9ybShudWxsKSxcbiAgICAgICAgICAgICAgICByZXNvbHV0aW9uOiBuZXcgVW5pZm9ybShuZXcgVmVjdG9yMigpKSxcbiAgICAgICAgICAgICAgICB0ZXhlbFNpemU6IG5ldyBVbmlmb3JtKG5ldyBWZWN0b3IyKCkpLFxuICAgICAgICAgICAgICAgIGhhbGZUZXhlbFNpemU6IG5ldyBVbmlmb3JtKG5ldyBWZWN0b3IyKCkpLFxuICAgICAgICAgICAgICAgIGtlcm5lbDogbmV3IFVuaWZvcm0oMC4wKSxcbiAgICAgICAgICAgICAgICBzY2FsZTogbmV3IFVuaWZvcm0oMS4wKSxcbiAgICAgICAgICAgICAgICBjYW1lcmFOZWFyOiBuZXcgVW5pZm9ybSgwLjApLFxuICAgICAgICAgICAgICAgIGNhbWVyYUZhcjogbmV3IFVuaWZvcm0oMS4wKSxcbiAgICAgICAgICAgICAgICBtaW5EZXB0aFRocmVzaG9sZDogbmV3IFVuaWZvcm0oMC4wKSxcbiAgICAgICAgICAgICAgICBtYXhEZXB0aFRocmVzaG9sZDogbmV3IFVuaWZvcm0oMS4wKSxcbiAgICAgICAgICAgICAgICBkZXB0aFNjYWxlOiBuZXcgVW5pZm9ybSgwLjApLFxuICAgICAgICAgICAgICAgIGRlcHRoVG9CbHVyUmF0aW9CaWFzOiBuZXcgVW5pZm9ybSgwLjI1KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmcmFnbWVudFNoYWRlcjogYCNpbmNsdWRlIDxjb21tb24+XG4gICAgICAgICNpbmNsdWRlIDxkaXRoZXJpbmdfcGFyc19mcmFnbWVudD5cbiAgICAgICAgdW5pZm9ybSBzYW1wbGVyMkQgaW5wdXRCdWZmZXI7XG4gICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIGRlcHRoQnVmZmVyO1xuICAgICAgICB1bmlmb3JtIGZsb2F0IGNhbWVyYU5lYXI7XG4gICAgICAgIHVuaWZvcm0gZmxvYXQgY2FtZXJhRmFyO1xuICAgICAgICB1bmlmb3JtIGZsb2F0IG1pbkRlcHRoVGhyZXNob2xkO1xuICAgICAgICB1bmlmb3JtIGZsb2F0IG1heERlcHRoVGhyZXNob2xkO1xuICAgICAgICB1bmlmb3JtIGZsb2F0IGRlcHRoU2NhbGU7XG4gICAgICAgIHVuaWZvcm0gZmxvYXQgZGVwdGhUb0JsdXJSYXRpb0JpYXM7XG4gICAgICAgIHZhcnlpbmcgdmVjMiB2VXY7XG4gICAgICAgIHZhcnlpbmcgdmVjMiB2VXYwO1xuICAgICAgICB2YXJ5aW5nIHZlYzIgdlV2MTtcbiAgICAgICAgdmFyeWluZyB2ZWMyIHZVdjI7XG4gICAgICAgIHZhcnlpbmcgdmVjMiB2VXYzO1xuXG4gICAgICAgIHZvaWQgbWFpbigpIHtcbiAgICAgICAgICBmbG9hdCBkZXB0aEZhY3RvciA9IDAuMDtcblxuICAgICAgICAgICNpZmRlZiBVU0VfREVQVEhcbiAgICAgICAgICAgIHZlYzQgZGVwdGggPSB0ZXh0dXJlMkQoZGVwdGhCdWZmZXIsIHZVdik7XG4gICAgICAgICAgICBkZXB0aEZhY3RvciA9IHNtb290aHN0ZXAobWluRGVwdGhUaHJlc2hvbGQsIG1heERlcHRoVGhyZXNob2xkLCAxLjAtKGRlcHRoLnIgKiBkZXB0aC5hKSk7XG4gICAgICAgICAgICBkZXB0aEZhY3RvciAqPSBkZXB0aFNjYWxlO1xuICAgICAgICAgICAgZGVwdGhGYWN0b3IgPSBtYXgoMC4wLCBtaW4oMS4wLCBkZXB0aEZhY3RvciArIDAuMjUpKTtcbiAgICAgICAgICAjZW5kaWZcblxuICAgICAgICAgIHZlYzQgc3VtID0gdGV4dHVyZTJEKGlucHV0QnVmZmVyLCBtaXgodlV2MCwgdlV2LCBkZXB0aEZhY3RvcikpO1xuICAgICAgICAgIHN1bSArPSB0ZXh0dXJlMkQoaW5wdXRCdWZmZXIsIG1peCh2VXYxLCB2VXYsIGRlcHRoRmFjdG9yKSk7XG4gICAgICAgICAgc3VtICs9IHRleHR1cmUyRChpbnB1dEJ1ZmZlciwgbWl4KHZVdjIsIHZVdiwgZGVwdGhGYWN0b3IpKTtcbiAgICAgICAgICBzdW0gKz0gdGV4dHVyZTJEKGlucHV0QnVmZmVyLCBtaXgodlV2MywgdlV2LCBkZXB0aEZhY3RvcikpO1xuICAgICAgICAgIGdsX0ZyYWdDb2xvciA9IHN1bSAqIDAuMjUgO1xuXG4gICAgICAgICAgI2luY2x1ZGUgPGRpdGhlcmluZ19mcmFnbWVudD5cbiAgICAgICAgICAjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG4gICAgICAgICAgI2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cbiAgICAgICAgfWAsXG4gICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IGB1bmlmb3JtIHZlYzIgdGV4ZWxTaXplO1xuICAgICAgICB1bmlmb3JtIHZlYzIgaGFsZlRleGVsU2l6ZTtcbiAgICAgICAgdW5pZm9ybSBmbG9hdCBrZXJuZWw7XG4gICAgICAgIHVuaWZvcm0gZmxvYXQgc2NhbGU7XG4gICAgICAgIHZhcnlpbmcgdmVjMiB2VXY7XG4gICAgICAgIHZhcnlpbmcgdmVjMiB2VXYwO1xuICAgICAgICB2YXJ5aW5nIHZlYzIgdlV2MTtcbiAgICAgICAgdmFyeWluZyB2ZWMyIHZVdjI7XG4gICAgICAgIHZhcnlpbmcgdmVjMiB2VXYzO1xuXG4gICAgICAgIHZvaWQgbWFpbigpIHtcbiAgICAgICAgICB2ZWMyIHV2ID0gcG9zaXRpb24ueHkgKiAwLjUgKyAwLjU7XG4gICAgICAgICAgdlV2ID0gdXY7XG5cbiAgICAgICAgICB2ZWMyIGRVdiA9ICh0ZXhlbFNpemUgKiB2ZWMyKGtlcm5lbCkgKyBoYWxmVGV4ZWxTaXplKSAqIHNjYWxlO1xuICAgICAgICAgIHZVdjAgPSB2ZWMyKHV2LnggLSBkVXYueCwgdXYueSArIGRVdi55KTtcbiAgICAgICAgICB2VXYxID0gdmVjMih1di54ICsgZFV2LngsIHV2LnkgKyBkVXYueSk7XG4gICAgICAgICAgdlV2MiA9IHZlYzIodXYueCArIGRVdi54LCB1di55IC0gZFV2LnkpO1xuICAgICAgICAgIHZVdjMgPSB2ZWMyKHV2LnggLSBkVXYueCwgdXYueSAtIGRVdi55KTtcblxuICAgICAgICAgIGdsX1Bvc2l0aW9uID0gdmVjNChwb3NpdGlvbi54eSwgMS4wLCAxLjApO1xuICAgICAgICB9YCxcbiAgICAgICAgICAgIGJsZW5kaW5nOiBOb0JsZW5kaW5nLFxuICAgICAgICAgICAgZGVwdGhXcml0ZTogZmFsc2UsXG4gICAgICAgICAgICBkZXB0aFRlc3Q6IGZhbHNlLFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnRvbmVNYXBwZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZXRUZXhlbFNpemUodGV4ZWxTaXplLngsIHRleGVsU2l6ZS55KTtcbiAgICAgICAgdGhpcy5rZXJuZWwgPSBuZXcgRmxvYXQzMkFycmF5KFswLjAsIDEuMCwgMi4wLCAyLjAsIDMuMF0pO1xuICAgIH1cblxuICAgIHNldFRleGVsU2l6ZSh4OiBudW1iZXIsIHk6IG51bWJlcikge1xuICAgICAgICB0aGlzLnVuaWZvcm1zWyd0ZXhlbFNpemUnXS52YWx1ZS5zZXQoeCwgeSk7XG4gICAgICAgIHRoaXMudW5pZm9ybXNbJ2hhbGZUZXhlbFNpemUnXS52YWx1ZS5zZXQoeCwgeSkubXVsdGlwbHlTY2FsYXIoMC41KTtcbiAgICB9XG4gICAgc2V0UmVzb2x1dGlvbihyZXNvbHV0aW9uOiBWZWN0b3IyKSB7XG4gICAgICAgIHRoaXMudW5pZm9ybXNbJ3Jlc29sdXRpb24nXS52YWx1ZS5jb3B5KHJlc29sdXRpb24pO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,3 +0,0 @@
1
- import { shaderMaterial } from '../shader-material/shader-material';
2
- export const DiscardMaterial = shaderMaterial({}, 'void main() { }', 'void main() { gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); discard; }');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY2FyZC1tYXRlcmlhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL3NoYWRlcnMvc3JjL2xpYi9kaXNjYXJkLW1hdGVyaWFsL2Rpc2NhcmQtbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXBFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxjQUFjLENBQ3pDLEVBQUUsRUFDRixpQkFBaUIsRUFDakIsb0VBQW9FLENBQ3ZFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaGFkZXJNYXRlcmlhbCB9IGZyb20gJy4uL3NoYWRlci1tYXRlcmlhbC9zaGFkZXItbWF0ZXJpYWwnO1xuXG5leHBvcnQgY29uc3QgRGlzY2FyZE1hdGVyaWFsID0gc2hhZGVyTWF0ZXJpYWwoXG4gICAge30sXG4gICAgJ3ZvaWQgbWFpbigpIHsgfScsXG4gICAgJ3ZvaWQgbWFpbigpIHsgZ2xfRnJhZ0NvbG9yID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAwLjApOyBkaXNjYXJkOyAgfSdcbik7XG4iXX0=