fra.ktu.red-component 0.1.0

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 (208) hide show
  1. package/LICENSE +44 -0
  2. package/README.md +1 -0
  3. package/dist/components/red_viewer.d.ts +5 -0
  4. package/dist/components/red_viewer.d.ts.map +1 -0
  5. package/dist/components/red_viewer.js +86 -0
  6. package/dist/components/red_viewer.js.map +1 -0
  7. package/dist/ffmpeg/ffmpeg-core.js +21 -0
  8. package/dist/ffmpeg/ffmpeg-core.wasm +0 -0
  9. package/dist/helpers/assets.d.ts +8 -0
  10. package/dist/helpers/assets.d.ts.map +1 -0
  11. package/dist/helpers/assets.js +63 -0
  12. package/dist/helpers/assets.js.map +1 -0
  13. package/dist/helpers/export.d.ts +8 -0
  14. package/dist/helpers/export.d.ts.map +1 -0
  15. package/dist/helpers/export.js +58 -0
  16. package/dist/helpers/export.js.map +1 -0
  17. package/dist/helpers/ffmpeg-core.js +21 -0
  18. package/dist/helpers/ffmpeg-core.wasm +0 -0
  19. package/dist/helpers/ids.d.ts +2 -0
  20. package/dist/helpers/ids.d.ts.map +1 -0
  21. package/dist/helpers/ids.js +11 -0
  22. package/dist/helpers/ids.js.map +1 -0
  23. package/dist/helpers/layers.d.ts +8 -0
  24. package/dist/helpers/layers.d.ts.map +1 -0
  25. package/dist/helpers/layers.js +32 -0
  26. package/dist/helpers/layers.js.map +1 -0
  27. package/dist/helpers/signals.d.ts +13 -0
  28. package/dist/helpers/signals.d.ts.map +1 -0
  29. package/dist/helpers/signals.js +61 -0
  30. package/dist/helpers/signals.js.map +1 -0
  31. package/dist/helpers/sparkle.d.ts +4 -0
  32. package/dist/helpers/sparkle.d.ts.map +1 -0
  33. package/dist/helpers/sparkle.js +4742 -0
  34. package/dist/helpers/sparkle.js.map +1 -0
  35. package/dist/index.d.ts +57 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +31 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/ktu/ui/core/data_store.d.ts +12 -0
  40. package/dist/ktu/ui/core/data_store.d.ts.map +1 -0
  41. package/dist/ktu/ui/core/data_store.js +71 -0
  42. package/dist/ktu/ui/core/data_store.js.map +1 -0
  43. package/dist/ktu/ui/core/event_dispatcher.d.ts +11 -0
  44. package/dist/ktu/ui/core/event_dispatcher.d.ts.map +1 -0
  45. package/dist/ktu/ui/core/event_dispatcher.js +37 -0
  46. package/dist/ktu/ui/core/event_dispatcher.js.map +1 -0
  47. package/dist/ktu/ui/core/ktu_component.d.ts +22 -0
  48. package/dist/ktu/ui/core/ktu_component.d.ts.map +1 -0
  49. package/dist/ktu/ui/core/ktu_component.js +74 -0
  50. package/dist/ktu/ui/core/ktu_component.js.map +1 -0
  51. package/dist/ktu/ui/core/translation_manager.d.ts +12 -0
  52. package/dist/ktu/ui/core/translation_manager.d.ts.map +1 -0
  53. package/dist/ktu/ui/core/translation_manager.js +34 -0
  54. package/dist/ktu/ui/core/translation_manager.js.map +1 -0
  55. package/dist/layers/base_layer.d.ts +18 -0
  56. package/dist/layers/base_layer.d.ts.map +1 -0
  57. package/dist/layers/base_layer.js +68 -0
  58. package/dist/layers/base_layer.js.map +1 -0
  59. package/dist/layers/display/background_layer.d.ts +15 -0
  60. package/dist/layers/display/background_layer.d.ts.map +1 -0
  61. package/dist/layers/display/background_layer.js +40 -0
  62. package/dist/layers/display/background_layer.js.map +1 -0
  63. package/dist/layers/display/display_layer.d.ts +24 -0
  64. package/dist/layers/display/display_layer.d.ts.map +1 -0
  65. package/dist/layers/display/display_layer.js +131 -0
  66. package/dist/layers/display/display_layer.js.map +1 -0
  67. package/dist/layers/display/video_layer.d.ts +36 -0
  68. package/dist/layers/display/video_layer.d.ts.map +1 -0
  69. package/dist/layers/display/video_layer.js +296 -0
  70. package/dist/layers/display/video_layer.js.map +1 -0
  71. package/dist/layers/ilayer.d.ts +21 -0
  72. package/dist/layers/ilayer.d.ts.map +1 -0
  73. package/dist/layers/ilayer.js +2 -0
  74. package/dist/layers/ilayer.js.map +1 -0
  75. package/dist/layers/shaders/anaglyph/anaglyph_shader.d.ts +16 -0
  76. package/dist/layers/shaders/anaglyph/anaglyph_shader.d.ts.map +1 -0
  77. package/dist/layers/shaders/anaglyph/anaglyph_shader.frag +36 -0
  78. package/dist/layers/shaders/anaglyph/anaglyph_shader.js +28 -0
  79. package/dist/layers/shaders/anaglyph/anaglyph_shader.js.map +1 -0
  80. package/dist/layers/shaders/blur/blur_shader.d.ts +17 -0
  81. package/dist/layers/shaders/blur/blur_shader.d.ts.map +1 -0
  82. package/dist/layers/shaders/blur/blur_shader.frag +47 -0
  83. package/dist/layers/shaders/blur/blur_shader.js +36 -0
  84. package/dist/layers/shaders/blur/blur_shader.js.map +1 -0
  85. package/dist/layers/shaders/bnw/bnw_shader.d.ts +11 -0
  86. package/dist/layers/shaders/bnw/bnw_shader.d.ts.map +1 -0
  87. package/dist/layers/shaders/bnw/bnw_shader.frag +13 -0
  88. package/dist/layers/shaders/bnw/bnw_shader.js +21 -0
  89. package/dist/layers/shaders/bnw/bnw_shader.js.map +1 -0
  90. package/dist/layers/shaders/chroma/chroma_shader.d.ts +18 -0
  91. package/dist/layers/shaders/chroma/chroma_shader.d.ts.map +1 -0
  92. package/dist/layers/shaders/chroma/chroma_shader.frag +32 -0
  93. package/dist/layers/shaders/chroma/chroma_shader.js +45 -0
  94. package/dist/layers/shaders/chroma/chroma_shader.js.map +1 -0
  95. package/dist/layers/shaders/crosses/crosses_shader.d.ts +20 -0
  96. package/dist/layers/shaders/crosses/crosses_shader.d.ts.map +1 -0
  97. package/dist/layers/shaders/crosses/crosses_shader.frag +78 -0
  98. package/dist/layers/shaders/crosses/crosses_shader.js +51 -0
  99. package/dist/layers/shaders/crosses/crosses_shader.js.map +1 -0
  100. package/dist/layers/shaders/defaultFilter.vert +27 -0
  101. package/dist/layers/shaders/hlines/hlines_shader.d.ts +17 -0
  102. package/dist/layers/shaders/hlines/hlines_shader.d.ts.map +1 -0
  103. package/dist/layers/shaders/hlines/hlines_shader.frag +43 -0
  104. package/dist/layers/shaders/hlines/hlines_shader.js +31 -0
  105. package/dist/layers/shaders/hlines/hlines_shader.js.map +1 -0
  106. package/dist/layers/shaders/hnoise/hnoise_shader.d.ts +19 -0
  107. package/dist/layers/shaders/hnoise/hnoise_shader.d.ts.map +1 -0
  108. package/dist/layers/shaders/hnoise/hnoise_shader.frag +68 -0
  109. package/dist/layers/shaders/hnoise/hnoise_shader.js +40 -0
  110. package/dist/layers/shaders/hnoise/hnoise_shader.js.map +1 -0
  111. package/dist/layers/shaders/hsb_blur/hsb_blur_shader.d.ts +19 -0
  112. package/dist/layers/shaders/hsb_blur/hsb_blur_shader.d.ts.map +1 -0
  113. package/dist/layers/shaders/hsb_blur/hsb_blur_shader.frag +73 -0
  114. package/dist/layers/shaders/hsb_blur/hsb_blur_shader.js +50 -0
  115. package/dist/layers/shaders/hsb_blur/hsb_blur_shader.js.map +1 -0
  116. package/dist/layers/shaders/light_split/light_split_shader.d.ts +20 -0
  117. package/dist/layers/shaders/light_split/light_split_shader.d.ts.map +1 -0
  118. package/dist/layers/shaders/light_split/light_split_shader.frag +54 -0
  119. package/dist/layers/shaders/light_split/light_split_shader.js +40 -0
  120. package/dist/layers/shaders/light_split/light_split_shader.js.map +1 -0
  121. package/dist/layers/shaders/montecarlo/montecarlo_shader.d.ts +17 -0
  122. package/dist/layers/shaders/montecarlo/montecarlo_shader.d.ts.map +1 -0
  123. package/dist/layers/shaders/montecarlo/montecarlo_shader.frag +31 -0
  124. package/dist/layers/shaders/montecarlo/montecarlo_shader.js +31 -0
  125. package/dist/layers/shaders/montecarlo/montecarlo_shader.js.map +1 -0
  126. package/dist/layers/shaders/negative/negative_shader.d.ts +11 -0
  127. package/dist/layers/shaders/negative/negative_shader.d.ts.map +1 -0
  128. package/dist/layers/shaders/negative/negative_shader.frag +13 -0
  129. package/dist/layers/shaders/negative/negative_shader.js +21 -0
  130. package/dist/layers/shaders/negative/negative_shader.js.map +1 -0
  131. package/dist/layers/shaders/pixelate/pixelate_shader.d.ts +16 -0
  132. package/dist/layers/shaders/pixelate/pixelate_shader.d.ts.map +1 -0
  133. package/dist/layers/shaders/pixelate/pixelate_shader.frag +50 -0
  134. package/dist/layers/shaders/pixelate/pixelate_shader.js +28 -0
  135. package/dist/layers/shaders/pixelate/pixelate_shader.js.map +1 -0
  136. package/dist/layers/shaders/posterize/posterize_shader.d.ts +16 -0
  137. package/dist/layers/shaders/posterize/posterize_shader.d.ts.map +1 -0
  138. package/dist/layers/shaders/posterize/posterize_shader.frag +24 -0
  139. package/dist/layers/shaders/posterize/posterize_shader.js +28 -0
  140. package/dist/layers/shaders/posterize/posterize_shader.js.map +1 -0
  141. package/dist/layers/shaders/recolour/recolour_shader.d.ts +22 -0
  142. package/dist/layers/shaders/recolour/recolour_shader.d.ts.map +1 -0
  143. package/dist/layers/shaders/recolour/recolour_shader.frag +68 -0
  144. package/dist/layers/shaders/recolour/recolour_shader.js +83 -0
  145. package/dist/layers/shaders/recolour/recolour_shader.js.map +1 -0
  146. package/dist/layers/shaders/scramble/scramble_shader.d.ts +16 -0
  147. package/dist/layers/shaders/scramble/scramble_shader.d.ts.map +1 -0
  148. package/dist/layers/shaders/scramble/scramble_shader.frag +45 -0
  149. package/dist/layers/shaders/scramble/scramble_shader.js +28 -0
  150. package/dist/layers/shaders/scramble/scramble_shader.js.map +1 -0
  151. package/dist/layers/shaders/shader_layer.d.ts +36 -0
  152. package/dist/layers/shaders/shader_layer.d.ts.map +1 -0
  153. package/dist/layers/shaders/shader_layer.js +100 -0
  154. package/dist/layers/shaders/shader_layer.js.map +1 -0
  155. package/dist/layers/shaders/vlines/vlines_shader.d.ts +17 -0
  156. package/dist/layers/shaders/vlines/vlines_shader.d.ts.map +1 -0
  157. package/dist/layers/shaders/vlines/vlines_shader.frag +43 -0
  158. package/dist/layers/shaders/vlines/vlines_shader.js +31 -0
  159. package/dist/layers/shaders/vlines/vlines_shader.js.map +1 -0
  160. package/dist/managers/export_manager.d.ts +2 -0
  161. package/dist/managers/export_manager.d.ts.map +1 -0
  162. package/dist/managers/export_manager.js +51 -0
  163. package/dist/managers/export_manager.js.map +1 -0
  164. package/dist/managers/layer_manager.d.ts +2 -0
  165. package/dist/managers/layer_manager.d.ts.map +1 -0
  166. package/dist/managers/layer_manager.js +62 -0
  167. package/dist/managers/layer_manager.js.map +1 -0
  168. package/dist/managers/modulator_manager.d.ts +2 -0
  169. package/dist/managers/modulator_manager.d.ts.map +1 -0
  170. package/dist/managers/modulator_manager.js +54 -0
  171. package/dist/managers/modulator_manager.js.map +1 -0
  172. package/dist/managers/shader_manager.d.ts +2 -0
  173. package/dist/managers/shader_manager.d.ts.map +1 -0
  174. package/dist/managers/shader_manager.js +106 -0
  175. package/dist/managers/shader_manager.js.map +1 -0
  176. package/dist/modulators/base_modulator.d.ts +20 -0
  177. package/dist/modulators/base_modulator.d.ts.map +1 -0
  178. package/dist/modulators/base_modulator.js +109 -0
  179. package/dist/modulators/base_modulator.js.map +1 -0
  180. package/dist/modulators/compressor_modulator.d.ts +17 -0
  181. package/dist/modulators/compressor_modulator.d.ts.map +1 -0
  182. package/dist/modulators/compressor_modulator.js +34 -0
  183. package/dist/modulators/compressor_modulator.js.map +1 -0
  184. package/dist/modulators/imodulator.d.ts +22 -0
  185. package/dist/modulators/imodulator.d.ts.map +1 -0
  186. package/dist/modulators/imodulator.js +2 -0
  187. package/dist/modulators/imodulator.js.map +1 -0
  188. package/dist/modulators/lfo_modulator.d.ts +13 -0
  189. package/dist/modulators/lfo_modulator.d.ts.map +1 -0
  190. package/dist/modulators/lfo_modulator.js +53 -0
  191. package/dist/modulators/lfo_modulator.js.map +1 -0
  192. package/dist/modulators/random_modulator.d.ts +12 -0
  193. package/dist/modulators/random_modulator.d.ts.map +1 -0
  194. package/dist/modulators/random_modulator.js +22 -0
  195. package/dist/modulators/random_modulator.js.map +1 -0
  196. package/dist/modulators/ring_modulator.d.ts +15 -0
  197. package/dist/modulators/ring_modulator.d.ts.map +1 -0
  198. package/dist/modulators/ring_modulator.js +39 -0
  199. package/dist/modulators/ring_modulator.js.map +1 -0
  200. package/dist/types/red_scene_state.d.ts +16 -0
  201. package/dist/types/red_scene_state.d.ts.map +1 -0
  202. package/dist/types/red_scene_state.js +2 -0
  203. package/dist/types/red_scene_state.js.map +1 -0
  204. package/dist/util.d.ts +2 -0
  205. package/dist/util.d.ts.map +1 -0
  206. package/dist/util.js +2 -0
  207. package/dist/util.js.map +1 -0
  208. package/package.json +39 -0
@@ -0,0 +1,43 @@
1
+ precision highp float;
2
+ in vec2 vTextureCoord;
3
+
4
+ uniform sampler2D uTexture;
5
+ uniform vec4 uInputSize;
6
+
7
+ uniform float uDistance;
8
+ uniform float uThickness;
9
+ uniform vec4 uDryWet;
10
+
11
+ vec2 mapCoord( vec2 coord )
12
+ {
13
+ coord *= uInputSize.xy;
14
+ coord += uInputSize.zw;
15
+
16
+ return coord;
17
+ }
18
+
19
+ vec2 unmapCoord( vec2 coord )
20
+ {
21
+ coord -= uInputSize.zw;
22
+ coord /= uInputSize.xy;
23
+
24
+ return coord;
25
+ }
26
+
27
+ vec2 pixelate(vec2 coord, float uDistance)
28
+ {
29
+ return (floor( coord / vec2(uDistance,uDistance) ) * vec2(uDistance,uDistance)) + (uDistance / 2.0);
30
+ }
31
+
32
+ void main(){
33
+ vec2 pixelCoord = mapCoord(vTextureCoord);
34
+ vec2 newCoords = pixelate(pixelCoord, uDistance);
35
+ vec4 oTex = texture(uTexture, vTextureCoord);
36
+ vec4 tex = vec4(0.0, 0.0, 0.0, 0.0);
37
+ if(pixelCoord.y > newCoords.y-(uThickness/2.0) && pixelCoord.y < newCoords.y+(uThickness/2.0)){
38
+ tex = vec4(oTex.r, oTex.g, oTex.b, oTex.a);
39
+ }
40
+
41
+ //DRY/WET
42
+ gl_FragColor = (1.0-uDryWet)*oTex +uDryWet * tex;
43
+ }
@@ -0,0 +1,31 @@
1
+ import { getCount } from "../../../helpers/ids.js";
2
+ import { ShaderLayer } from "../shader_layer.js";
3
+ import fragment from "./hlines_shader.frag?raw";
4
+ export class HLinesShader extends ShaderLayer {
5
+ fragment = fragment;
6
+ static getDefaultState(sceneStateId) {
7
+ return {
8
+ ...ShaderLayer.getDefaultState(sceneStateId),
9
+ type: "hlines",
10
+ name: "hlines_" + getCount(sceneStateId),
11
+ distance: 10,
12
+ thickness: 2,
13
+ };
14
+ }
15
+ constructor(sceneStateId, state, owner) {
16
+ super(sceneStateId, state, owner);
17
+ console.trace();
18
+ }
19
+ setupUniformValues() {
20
+ return {
21
+ uDistance: { value: this.getFieldValue("distance"), type: "f32" },
22
+ uThickness: { value: this.getFieldValue("thickness"), type: "f32" },
23
+ };
24
+ }
25
+ updateUniforms() {
26
+ super.updateUniforms();
27
+ this.uniforms.uniforms.uDistance = this.getFieldValue("distance");
28
+ this.uniforms.uniforms.uThickness = this.getFieldValue("thickness");
29
+ }
30
+ }
31
+ //# sourceMappingURL=hlines_shader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hlines_shader.js","sourceRoot":"","sources":["../../../../src/layers/shaders/hlines/hlines_shader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAyB,MAAM,oBAAoB,CAAC;AACxE,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAOhD,MAAM,OAAO,YAAa,SAAQ,WAAW;IAE3C,QAAQ,GAAW,QAAQ,CAAC;IAE5B,MAAM,CAAC,eAAe,CAAC,YAAoB;QACzC,OAAO;YACL,GAAG,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC;YAC5C,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC;YACxC,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,CAAC;SACb,CAAC;IACJ,CAAC;IAED,YAAY,YAAoB,EAAE,KAAwB,EAAE,KAAa;QACvE,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;YACjE,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;SACpE,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IACtE,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ import type { UniformData } from "pixi.js";
2
+ import { ShaderLayer, type ShaderLayerState } from "../shader_layer.js";
3
+ export type HNoiseShaderState = ShaderLayerState & {
4
+ noiseSize: number;
5
+ lineThickness: number;
6
+ strength: number;
7
+ negative: boolean;
8
+ };
9
+ export declare class HNoiseShader extends ShaderLayer {
10
+ _state: HNoiseShaderState;
11
+ fragment: string;
12
+ static getDefaultState(sceneStateId: string): HNoiseShaderState;
13
+ constructor(sceneStateId: string, state: HNoiseShaderState, owner: string);
14
+ setupUniformValues(): {
15
+ [key: string]: UniformData;
16
+ };
17
+ updateUniforms(): void;
18
+ }
19
+ //# sourceMappingURL=hnoise_shader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hnoise_shader.d.ts","sourceRoot":"","sources":["../../../../src/layers/shaders/hnoise/hnoise_shader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGxE,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,qBAAa,YAAa,SAAQ,WAAW;IACnC,MAAM,EAAE,iBAAiB,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAY;IAE5B,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB;gBAYnD,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM;IAKzE,kBAAkB,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE;IAYpD,cAAc,IAAI,IAAI;CAOvB"}
@@ -0,0 +1,68 @@
1
+ precision highp float;
2
+ in vec2 vTextureCoord;
3
+
4
+ uniform sampler2D uTexture;
5
+ uniform vec4 uInputSize;
6
+
7
+ uniform float uNoiseSize;
8
+ uniform float uTime;
9
+ uniform float uStrength;
10
+ uniform float uLineThickness;
11
+ uniform int uNegative;
12
+ uniform vec4 uDryWet;
13
+
14
+ float PHI = 1.61803398874989484820459; // Φ = Golden Ratio
15
+
16
+ float gold_noise(vec2 xy, float seed){
17
+ return fract(tan(distance(xy*PHI, xy)*seed)*xy.x);
18
+ }
19
+
20
+ vec2 mapCoord( vec2 coord )
21
+ {
22
+ coord *= uInputSize.xy;
23
+ coord += uInputSize.zw;
24
+
25
+ return coord;
26
+ }
27
+
28
+ vec2 unmapCoord( vec2 coord )
29
+ {
30
+ coord -= uInputSize.zw;
31
+ coord /= uInputSize.xy;
32
+
33
+ return coord;
34
+ }
35
+
36
+ vec2 pixelate(vec2 coord, float uNoiseSize, float uLineThickness)
37
+ {
38
+ return vec2((floor( coord.x / uNoiseSize ) * uNoiseSize) + (uNoiseSize / 2.0), (floor( coord.y / uLineThickness ) * uLineThickness));
39
+ }
40
+
41
+ void main(){
42
+ vec4 oTex = texture(uTexture, vTextureCoord);
43
+
44
+ vec2 pixelCoord = mapCoord(vTextureCoord);
45
+ float rowNoiseSize = gold_noise(vec2(floor(pixelCoord.y/uLineThickness)+1080.0, floor(pixelCoord.y/uLineThickness))+1080.0, uTime+2.0)*uNoiseSize;
46
+ vec2 newCoord = pixelate(pixelCoord, rowNoiseSize, uLineThickness);
47
+ float factor = gold_noise(newCoord, uTime+0.0);
48
+ float elegible = gold_noise(newCoord, uTime+1.0);
49
+
50
+ vec4 tex = oTex;
51
+ if(pixelCoord.x >= newCoord.x - (rowNoiseSize * factor) && pixelCoord.x <= newCoord.x + (rowNoiseSize * factor) &&
52
+ pixelCoord.y >= newCoord.y-1.0 && pixelCoord.y < newCoord.y + (uLineThickness)
53
+ && elegible < uStrength){
54
+ if(uNegative == 0){
55
+ tex = texture(uTexture, unmapCoord(newCoord));
56
+ }else{
57
+ vec4 ntex = texture(uTexture, unmapCoord(newCoord));
58
+ if(oTex.a != 0.0){
59
+ tex = 1.0-ntex;
60
+ }else{
61
+ tex = vec4(0.0,0.0,0.0,0.0);
62
+ }
63
+ }
64
+ }
65
+
66
+ //DRY/WET
67
+ gl_FragColor = ((1.0-uDryWet)*oTex) + (uDryWet * tex);
68
+ }
@@ -0,0 +1,40 @@
1
+ import { getCount } from "../../../helpers/ids.js";
2
+ import { ShaderLayer } from "../shader_layer.js";
3
+ import fragment from "./hnoise_shader.frag?raw";
4
+ export class HNoiseShader extends ShaderLayer {
5
+ fragment = fragment;
6
+ static getDefaultState(sceneStateId) {
7
+ return {
8
+ ...ShaderLayer.getDefaultState(sceneStateId),
9
+ type: "hnoise",
10
+ name: "hnoise_" + getCount(sceneStateId),
11
+ noiseSize: 1,
12
+ lineThickness: 1,
13
+ strength: 0.1,
14
+ negative: false,
15
+ };
16
+ }
17
+ constructor(sceneStateId, state, owner) {
18
+ super(sceneStateId, state, owner);
19
+ console.trace();
20
+ }
21
+ setupUniformValues() {
22
+ return {
23
+ uNoiseSize: { value: this.getFieldValue("noiseSize"), type: "f32" },
24
+ uLineThickness: {
25
+ value: this.getFieldValue("lineThickness"),
26
+ type: "f32",
27
+ },
28
+ uStrength: { value: this.getFieldValue("strength"), type: "f32" },
29
+ uNegative: { value: this.getFieldValue("negative") ? 1 : 0, type: "i32" },
30
+ };
31
+ }
32
+ updateUniforms() {
33
+ super.updateUniforms();
34
+ this.uniforms.uniforms.uNoiseSize = this.getFieldValue("noiseSize");
35
+ this.uniforms.uniforms.uLineThickness = this.getFieldValue("lineThickness");
36
+ this.uniforms.uniforms.uStrength = this.getFieldValue("strength");
37
+ this.uniforms.uniforms.uNegative = this.getFieldValue("negative") ? 1 : 0;
38
+ }
39
+ }
40
+ //# sourceMappingURL=hnoise_shader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hnoise_shader.js","sourceRoot":"","sources":["../../../../src/layers/shaders/hnoise/hnoise_shader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAyB,MAAM,oBAAoB,CAAC;AACxE,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAShD,MAAM,OAAO,YAAa,SAAQ,WAAW;IAE3C,QAAQ,GAAW,QAAQ,CAAC;IAE5B,MAAM,CAAC,eAAe,CAAC,YAAoB;QACzC,OAAO;YACL,GAAG,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC;YAC5C,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC;YACxC,SAAS,EAAE,CAAC;YACZ,aAAa,EAAE,CAAC;YAChB,QAAQ,EAAE,GAAG;YACb,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC;IAED,YAAY,YAAoB,EAAE,KAAwB,EAAE,KAAa;QACvE,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;YACnE,cAAc,EAAE;gBACd,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;gBAC1C,IAAI,EAAE,KAAK;aACZ;YACD,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;YACjE,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;SAC1E,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACpE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;QAC5E,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ import type { UniformData } from "pixi.js";
2
+ import { ShaderLayer, type ShaderLayerState } from "../shader_layer.js";
3
+ export type HSBBlurShaderState = ShaderLayerState & {
4
+ hueRadius: number;
5
+ saturationRadius: number;
6
+ lightnessRadius: number;
7
+ ignoreAlpha: boolean;
8
+ };
9
+ export declare class HSBBlurShader extends ShaderLayer {
10
+ _state: HSBBlurShaderState;
11
+ fragment: string;
12
+ static getDefaultState(sceneStateId: string): HSBBlurShaderState;
13
+ constructor(sceneStateId: string, state: HSBBlurShaderState, owner: string);
14
+ setupUniformValues(): {
15
+ [key: string]: UniformData;
16
+ };
17
+ updateUniforms(): void;
18
+ }
19
+ //# sourceMappingURL=hsb_blur_shader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hsb_blur_shader.d.ts","sourceRoot":"","sources":["../../../../src/layers/shaders/hsb_blur/hsb_blur_shader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGxE,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,GAAG;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,qBAAa,aAAc,SAAQ,WAAW;IACpC,MAAM,EAAE,kBAAkB,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAY;IAE5B,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,kBAAkB;gBAYpD,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM;IAK1E,kBAAkB,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE;IAkBpD,cAAc,IAAI,IAAI;CAWvB"}
@@ -0,0 +1,73 @@
1
+ in vec2 vTextureCoord;
2
+
3
+ uniform sampler2D uTexture;
4
+ uniform highp vec4 uInputSize;
5
+ uniform float uHueRadius;
6
+ uniform float uSaturationRadius;
7
+ uniform float uLightnessRadius;
8
+ uniform int uIgnoreAlpha;
9
+ uniform vec4 uDryWet;
10
+
11
+ const float Pi = 6.28318530718;
12
+ const float uQuality = 4.0;
13
+ const float Directions = 16.0;
14
+ const float stepSize = Pi / Directions;
15
+ const float qualityStep = 1.0 / uQuality;
16
+
17
+ vec3 rgb2hsv(vec3 c) {
18
+ vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
19
+ vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
20
+ vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
21
+
22
+ float d = q.x - min(q.w, q.y);
23
+ float e = 1.0e-10;
24
+ return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
25
+ }
26
+
27
+ vec3 hsv2rgb(vec3 c) {
28
+ vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
29
+ vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
30
+ return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
31
+ }
32
+
33
+ void main() {
34
+ vec4 oTex = texture(uTexture, vTextureCoord);
35
+ vec2 hueRadius = uHueRadius / uInputSize.xy;
36
+ vec2 saturationRadius = uSaturationRadius / uInputSize.xy;
37
+ vec2 lightnessRadius = uLightnessRadius / uInputSize.xy;
38
+ vec2 alphaRadius = (hueRadius + saturationRadius + lightnessRadius) / 3.0;
39
+
40
+ vec4 color = oTex;
41
+ color.xyz = rgb2hsv(color.xyz);
42
+
43
+ for (float d = 0.0; d < Pi; d += stepSize) {
44
+ for (float i = qualityStep; i < 1.001; i += qualityStep) {
45
+ vec2 hueCoord = vTextureCoord + vec2(cos(d), sin(d)) * hueRadius * i;
46
+ vec2 saturationCoord = vTextureCoord + vec2(cos(d), sin(d)) * saturationRadius * i;
47
+ vec2 lightnessCoord = vTextureCoord + vec2(cos(d), sin(d)) * lightnessRadius * i;
48
+ vec2 alphaCoord = vTextureCoord + vec2(cos(d), sin(d)) * alphaRadius * i;
49
+
50
+ color.x += rgb2hsv(texture(uTexture, hueCoord).xyz).x;
51
+ color.y += rgb2hsv(texture(uTexture, saturationCoord).xyz).y;
52
+ color.z += rgb2hsv(texture(uTexture, lightnessCoord).xyz).z;
53
+
54
+ if (uIgnoreAlpha == 1) {
55
+ color.a += 1.0;
56
+ } else if (
57
+ alphaCoord.x < 0.0 ||
58
+ alphaCoord.x >= 0.99 ||
59
+ alphaCoord.y < 0.0 ||
60
+ alphaCoord.y >= 0.99
61
+ ) {
62
+ color.a += oTex.a;
63
+ } else {
64
+ color.a += texture(uTexture, alphaCoord).a;
65
+ }
66
+ }
67
+ }
68
+
69
+ color /= uQuality * Directions + 1.0;
70
+ color.xyz = hsv2rgb(color.xyz);
71
+
72
+ gl_FragColor = (1.0 - uDryWet) * oTex + uDryWet * color;
73
+ }
@@ -0,0 +1,50 @@
1
+ import { getCount } from "../../../helpers/ids.js";
2
+ import { ShaderLayer } from "../shader_layer.js";
3
+ import fragment from "./hsb_blur_shader.frag?raw";
4
+ export class HSBBlurShader extends ShaderLayer {
5
+ fragment = fragment;
6
+ static getDefaultState(sceneStateId) {
7
+ return {
8
+ ...ShaderLayer.getDefaultState(sceneStateId),
9
+ type: "hsb_blur",
10
+ name: "hsb_blur_" + getCount(sceneStateId),
11
+ hueRadius: 5,
12
+ saturationRadius: 5,
13
+ lightnessRadius: 5,
14
+ ignoreAlpha: false,
15
+ };
16
+ }
17
+ constructor(sceneStateId, state, owner) {
18
+ super(sceneStateId, state, owner);
19
+ console.trace();
20
+ }
21
+ setupUniformValues() {
22
+ return {
23
+ uHueRadius: { value: this.getFieldValue("hueRadius"), type: "f32" },
24
+ uSaturationRadius: {
25
+ value: this.getFieldValue("saturationRadius"),
26
+ type: "f32",
27
+ },
28
+ uLightnessRadius: {
29
+ value: this.getFieldValue("lightnessRadius"),
30
+ type: "f32",
31
+ },
32
+ uIgnoreAlpha: {
33
+ value: this.getFieldBoolean("ignoreAlpha") ? 1 : 0,
34
+ type: "i32",
35
+ },
36
+ };
37
+ }
38
+ updateUniforms() {
39
+ super.updateUniforms();
40
+ this.uniforms.uniforms.uHueRadius = this.getFieldValue("hueRadius");
41
+ this.uniforms.uniforms.uSaturationRadius =
42
+ this.getFieldValue("saturationRadius");
43
+ this.uniforms.uniforms.uLightnessRadius =
44
+ this.getFieldValue("lightnessRadius");
45
+ this.uniforms.uniforms.uIgnoreAlpha = this.getFieldBoolean("ignoreAlpha")
46
+ ? 1
47
+ : 0;
48
+ }
49
+ }
50
+ //# sourceMappingURL=hsb_blur_shader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hsb_blur_shader.js","sourceRoot":"","sources":["../../../../src/layers/shaders/hsb_blur/hsb_blur_shader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAyB,MAAM,oBAAoB,CAAC;AACxE,OAAO,QAAQ,MAAM,4BAA4B,CAAC;AASlD,MAAM,OAAO,aAAc,SAAQ,WAAW;IAE5C,QAAQ,GAAW,QAAQ,CAAC;IAE5B,MAAM,CAAC,eAAe,CAAC,YAAoB;QACzC,OAAO;YACL,GAAG,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC;YAC5C,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC;YAC1C,SAAS,EAAE,CAAC;YACZ,gBAAgB,EAAE,CAAC;YACnB,eAAe,EAAE,CAAC;YAClB,WAAW,EAAE,KAAK;SACnB,CAAC;IACJ,CAAC;IAED,YAAY,YAAoB,EAAE,KAAyB,EAAE,KAAa;QACxE,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;YACnE,iBAAiB,EAAE;gBACjB,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC;gBAC7C,IAAI,EAAE,KAAK;aACZ;YACD,gBAAgB,EAAE;gBAChB,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC;gBAC5C,IAAI,EAAE,KAAK;aACZ;YACD,YAAY,EAAE;gBACZ,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,IAAI,EAAE,KAAK;aACZ;SACF,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACpE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB;YACtC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB;YACrC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;YACvE,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ import type { UniformData } from "pixi.js";
2
+ import { ShaderLayer, type ShaderLayerState } from "../shader_layer.js";
3
+ export type LightSplitShaderState = ShaderLayerState & {
4
+ threshold: number;
5
+ power: number;
6
+ darken: boolean;
7
+ lighten: boolean;
8
+ inverse: boolean;
9
+ };
10
+ export declare class LightSplitShader extends ShaderLayer {
11
+ _state: LightSplitShaderState;
12
+ fragment: string;
13
+ static getDefaultState(sceneStateId: string): LightSplitShaderState;
14
+ constructor(sceneStateId: string, state: LightSplitShaderState, owner: string);
15
+ setupUniformValues(): {
16
+ [key: string]: UniformData;
17
+ };
18
+ updateUniforms(): void;
19
+ }
20
+ //# sourceMappingURL=light_split_shader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"light_split_shader.d.ts","sourceRoot":"","sources":["../../../../src/layers/shaders/light_split/light_split_shader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGxE,MAAM,MAAM,qBAAqB,GAAG,gBAAgB,GAAG;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,WAAW;IACvC,MAAM,EAAE,qBAAqB,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAY;IAE5B,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,qBAAqB;gBAcjE,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,qBAAqB,EAC5B,KAAK,EAAE,MAAM;IAMf,kBAAkB,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE;IAUpD,cAAc,IAAI,IAAI;CAQvB"}
@@ -0,0 +1,54 @@
1
+ in vec2 vTextureCoord;
2
+
3
+ uniform sampler2D uTexture;
4
+
5
+ uniform float uThreshold;
6
+ uniform float uPower;
7
+ uniform int uDarken;
8
+ uniform int uLighten;
9
+ uniform int uInverse;
10
+ uniform vec4 uDryWet;
11
+
12
+
13
+ vec3 rgb2hsv(vec3 c)
14
+ {
15
+ vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
16
+ vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
17
+ vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
18
+
19
+ float d = q.x - min(q.w, q.y);
20
+ float e = 1.0e-10;
21
+ return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
22
+ }
23
+
24
+ vec3 hsv2rgb(vec3 c)
25
+ {
26
+ vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
27
+ vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
28
+ return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
29
+ }
30
+
31
+ void main(){
32
+ vec4 oTex = texture(uTexture, vTextureCoord);
33
+
34
+ vec3 hsv = rgb2hsv(oTex.rgb);
35
+ if(hsv.z <= uThreshold && uDarken == 1){
36
+ if(uInverse == 0){
37
+ hsv.z = pow(hsv.z-0.01, uPower);
38
+ }else{
39
+ hsv.z = pow(hsv.z+0.01, 1.0/uPower);
40
+ }
41
+ }else if(hsv.z >= uThreshold && uLighten == 1){
42
+ if(uInverse == 0){
43
+ hsv.z = pow(hsv.z+0.01, 1.0/uPower);
44
+ }else{
45
+ hsv.z = pow(hsv.z-0.01, uPower);
46
+ }
47
+ }
48
+ vec3 tex3 = hsv2rgb(hsv);
49
+
50
+ vec4 tex = vec4(tex3.r, tex3.g, tex3.b, oTex.a);
51
+
52
+ //DRY/WET
53
+ gl_FragColor = ((1.0-uDryWet)*oTex) + (uDryWet * tex);
54
+ }
@@ -0,0 +1,40 @@
1
+ import { getCount } from "../../../helpers/ids.js";
2
+ import { ShaderLayer } from "../shader_layer.js";
3
+ import fragment from "./light_split_shader.frag?raw";
4
+ export class LightSplitShader extends ShaderLayer {
5
+ fragment = fragment;
6
+ static getDefaultState(sceneStateId) {
7
+ return {
8
+ ...ShaderLayer.getDefaultState(sceneStateId),
9
+ type: "light_split",
10
+ name: "light_split_" + getCount(sceneStateId),
11
+ threshold: 0.5,
12
+ power: 2,
13
+ darken: false,
14
+ lighten: false,
15
+ inverse: false,
16
+ };
17
+ }
18
+ constructor(sceneStateId, state, owner) {
19
+ super(sceneStateId, state, owner);
20
+ console.trace();
21
+ }
22
+ setupUniformValues() {
23
+ return {
24
+ uThreshold: { value: this.getFieldValue("threshold"), type: "f32" },
25
+ uPower: { value: this.getFieldValue("power"), type: "f32" },
26
+ uDarken: { value: this.getFieldValue("darken") ? 1 : 0, type: "i32" },
27
+ uLighten: { value: this.getFieldValue("lighten") ? 1 : 0, type: "i32" },
28
+ uInverse: { value: this.getFieldValue("inverse") ? 1 : 0, type: "i32" },
29
+ };
30
+ }
31
+ updateUniforms() {
32
+ super.updateUniforms();
33
+ this.uniforms.uniforms.uThreshold = this.getFieldValue("threshold");
34
+ this.uniforms.uniforms.uPower = this.getFieldValue("power");
35
+ this.uniforms.uniforms.uDarken = this.getFieldValue("darken") ? 1 : 0;
36
+ this.uniforms.uniforms.uLighten = this.getFieldValue("lighten") ? 1 : 0;
37
+ this.uniforms.uniforms.uInverse = this.getFieldValue("inverse") ? 1 : 0;
38
+ }
39
+ }
40
+ //# sourceMappingURL=light_split_shader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"light_split_shader.js","sourceRoot":"","sources":["../../../../src/layers/shaders/light_split/light_split_shader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAyB,MAAM,oBAAoB,CAAC;AACxE,OAAO,QAAQ,MAAM,+BAA+B,CAAC;AAUrD,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IAE/C,QAAQ,GAAW,QAAQ,CAAC;IAE5B,MAAM,CAAC,eAAe,CAAC,YAAoB;QACzC,OAAO;YACL,GAAG,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC;YAC5C,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,cAAc,GAAG,QAAQ,CAAC,YAAY,CAAC;YAC7C,SAAS,EAAE,GAAG;YACd,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAED,YACE,YAAoB,EACpB,KAA4B,EAC5B,KAAa;QAEb,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;YACnE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;YAC3D,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;YACrE,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;YACvE,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;SACxE,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACpE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import type { UniformData } from "pixi.js";
2
+ import { ShaderLayer, type ShaderLayerState } from "../shader_layer.js";
3
+ export type MontecarloShaderState = ShaderLayerState & {
4
+ strength: number;
5
+ not: boolean;
6
+ };
7
+ export declare class MontecarloShader extends ShaderLayer {
8
+ _state: MontecarloShaderState;
9
+ fragment: string;
10
+ static getDefaultState(sceneStateId: string): MontecarloShaderState;
11
+ constructor(sceneStateId: string, state: MontecarloShaderState, owner: string);
12
+ setupUniformValues(): {
13
+ [key: string]: UniformData;
14
+ };
15
+ updateUniforms(): void;
16
+ }
17
+ //# sourceMappingURL=montecarlo_shader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"montecarlo_shader.d.ts","sourceRoot":"","sources":["../../../../src/layers/shaders/montecarlo/montecarlo_shader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGxE,MAAM,MAAM,qBAAqB,GAAG,gBAAgB,GAAG;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;CACd,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,WAAW;IACvC,MAAM,EAAE,qBAAqB,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAY;IAE5B,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,qBAAqB;gBAWjE,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,qBAAqB,EAC5B,KAAK,EAAE,MAAM;IAMf,kBAAkB,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE;IAOpD,cAAc,IAAI,IAAI;CAKvB"}
@@ -0,0 +1,31 @@
1
+ in vec2 vTextureCoord;
2
+
3
+ uniform sampler2D uTexture;
4
+
5
+ uniform vec2 uSize;
6
+ uniform float uTime;
7
+ uniform float uStrength;
8
+ uniform int uNot;
9
+ uniform vec4 uDryWet;
10
+
11
+ float PHI = 1.61803398874989484820459; // Φ = Golden Ratio
12
+
13
+ float gold_noise(vec2 xy, float seed){
14
+ return fract(tan(distance(xy*PHI, xy)*seed)*xy.x);
15
+ }
16
+
17
+ void main(){
18
+ vec4 oTex = texture(uTexture, vTextureCoord);
19
+ float noise = gold_noise(vTextureCoord*uSize, uTime);
20
+ vec4 tex = vec4(0.0, 0.0, 0.0, 0.0);
21
+ if(noise < 1.0-uStrength){
22
+ if(uNot == 0){
23
+ tex = oTex;
24
+ }
25
+ }else if(uNot == 1){
26
+ tex = oTex;
27
+ }
28
+
29
+ //DRY/WET
30
+ gl_FragColor = (1.0-uDryWet)*oTex +uDryWet * tex;
31
+ }
@@ -0,0 +1,31 @@
1
+ import { getCount } from "../../../helpers/ids.js";
2
+ import { ShaderLayer } from "../shader_layer.js";
3
+ import fragment from "./montecarlo_shader.frag?raw";
4
+ export class MontecarloShader extends ShaderLayer {
5
+ fragment = fragment;
6
+ static getDefaultState(sceneStateId) {
7
+ return {
8
+ ...ShaderLayer.getDefaultState(sceneStateId),
9
+ type: "montecarlo",
10
+ name: "montecarlo_" + getCount(sceneStateId),
11
+ strength: 0.1,
12
+ not: false,
13
+ };
14
+ }
15
+ constructor(sceneStateId, state, owner) {
16
+ super(sceneStateId, state, owner);
17
+ console.trace();
18
+ }
19
+ setupUniformValues() {
20
+ return {
21
+ uStrength: { value: this.getFieldValue("strength"), type: "f32" },
22
+ uNot: { value: this.getFieldValue("not"), type: "i32" },
23
+ };
24
+ }
25
+ updateUniforms() {
26
+ super.updateUniforms();
27
+ this.uniforms.uniforms.uStrength = this.getFieldValue("strength");
28
+ this.uniforms.uniforms.uNot = this.getFieldValue("not");
29
+ }
30
+ }
31
+ //# sourceMappingURL=montecarlo_shader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"montecarlo_shader.js","sourceRoot":"","sources":["../../../../src/layers/shaders/montecarlo/montecarlo_shader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAyB,MAAM,oBAAoB,CAAC;AACxE,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AAOpD,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IAE/C,QAAQ,GAAW,QAAQ,CAAC;IAE5B,MAAM,CAAC,eAAe,CAAC,YAAoB;QACzC,OAAO;YACL,GAAG,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC;YAC5C,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,aAAa,GAAG,QAAQ,CAAC,YAAY,CAAC;YAC5C,QAAQ,EAAE,GAAG;YACb,GAAG,EAAE,KAAK;SACX,CAAC;IACJ,CAAC;IAED,YACE,YAAoB,EACpB,KAA4B,EAC5B,KAAa;QAEb,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;YACjE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;SACxD,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import type { UniformData } from "pixi.js";
2
+ import { ShaderLayer, type ShaderLayerState } from "../shader_layer.js";
3
+ export declare class NegativeShader extends ShaderLayer {
4
+ fragment: string;
5
+ static getDefaultState(sceneStateId: string): ShaderLayerState;
6
+ constructor(sceneStateId: string, state: ShaderLayerState, owner: string);
7
+ setupUniformValues(): {
8
+ [key: string]: UniformData;
9
+ };
10
+ }
11
+ //# sourceMappingURL=negative_shader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"negative_shader.d.ts","sourceRoot":"","sources":["../../../../src/layers/shaders/negative/negative_shader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGxE,qBAAa,cAAe,SAAQ,WAAW;IAC7C,QAAQ,EAAE,MAAM,CAAY;IAE5B,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,gBAAgB;gBAQlD,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM;IAKxE,kBAAkB,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE;CAGrD"}
@@ -0,0 +1,13 @@
1
+ in vec2 vTextureCoord;
2
+
3
+ uniform sampler2D uTexture;
4
+ uniform vec4 uDryWet;
5
+
6
+ void main(){
7
+ vec4 oTex = texture(uTexture, vTextureCoord);
8
+ vec4 tex = 1.0-oTex;
9
+ tex.a = oTex.a;
10
+
11
+ //DRY/WET
12
+ gl_FragColor = (1.0-uDryWet)*oTex +uDryWet * tex;
13
+ }
@@ -0,0 +1,21 @@
1
+ import { getCount } from "../../../helpers/ids.js";
2
+ import { ShaderLayer } from "../shader_layer.js";
3
+ import fragment from "./negative_shader.frag?raw";
4
+ export class NegativeShader extends ShaderLayer {
5
+ fragment = fragment;
6
+ static getDefaultState(sceneStateId) {
7
+ return {
8
+ ...ShaderLayer.getDefaultState(sceneStateId),
9
+ type: "negative",
10
+ name: "negative_" + getCount(sceneStateId),
11
+ };
12
+ }
13
+ constructor(sceneStateId, state, owner) {
14
+ super(sceneStateId, state, owner);
15
+ console.trace();
16
+ }
17
+ setupUniformValues() {
18
+ return {};
19
+ }
20
+ }
21
+ //# sourceMappingURL=negative_shader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"negative_shader.js","sourceRoot":"","sources":["../../../../src/layers/shaders/negative/negative_shader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAyB,MAAM,oBAAoB,CAAC;AACxE,OAAO,QAAQ,MAAM,4BAA4B,CAAC;AAElD,MAAM,OAAO,cAAe,SAAQ,WAAW;IAC7C,QAAQ,GAAW,QAAQ,CAAC;IAE5B,MAAM,CAAC,eAAe,CAAC,YAAoB;QACzC,OAAO;YACL,GAAG,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC;YAC5C,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC;SAC3C,CAAC;IACJ,CAAC;IAED,YAAY,YAAoB,EAAE,KAAuB,EAAE,KAAa;QACtE,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAED,kBAAkB;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}