react-native-shine 0.3.0 → 0.3.2

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 (99) hide show
  1. package/README.md +21 -6
  2. package/lib/module/components/Content.js +232 -0
  3. package/lib/module/components/Content.js.map +1 -0
  4. package/lib/module/components/Shine.js +18 -254
  5. package/lib/module/components/Shine.js.map +1 -1
  6. package/lib/module/components/ShineGroup.js +11 -23
  7. package/lib/module/components/ShineGroup.js.map +1 -1
  8. package/lib/module/hooks/useAnimationFrame.js +17 -0
  9. package/lib/module/hooks/useAnimationFrame.js.map +1 -0
  10. package/lib/module/hooks/useOrientation.js +2 -8
  11. package/lib/module/hooks/useOrientation.js.map +1 -1
  12. package/lib/module/index.js +3 -2
  13. package/lib/module/index.js.map +1 -1
  14. package/lib/module/shaders/bindGroupLayouts.js +8 -8
  15. package/lib/module/shaders/bindGroupLayouts.js.map +1 -1
  16. package/lib/module/shaders/bindGroupUtils.js +18 -40
  17. package/lib/module/shaders/bindGroupUtils.js.map +1 -1
  18. package/lib/module/shaders/fragmentShaders/glareFragment.js +8 -7
  19. package/lib/module/shaders/fragmentShaders/glareFragment.js.map +1 -1
  20. package/lib/module/shaders/fragmentShaders/holoFragment.js +5 -10
  21. package/lib/module/shaders/fragmentShaders/holoFragment.js.map +1 -1
  22. package/lib/module/shaders/fragmentShaders/reverseHoloFragment.js +3 -3
  23. package/lib/module/shaders/fragmentShaders/reverseHoloFragment.js.map +1 -1
  24. package/lib/module/shaders/pipelineSetups.js +29 -43
  25. package/lib/module/shaders/pipelineSetups.js.map +1 -1
  26. package/lib/module/shaders/resourceManagement/textures.js +7 -0
  27. package/lib/module/shaders/resourceManagement/textures.js.map +1 -1
  28. package/lib/module/shaders/utils.js +8 -22
  29. package/lib/module/shaders/utils.js.map +1 -1
  30. package/lib/module/shaders/vertexShaders/mainRotationEffectVertex.js +2 -2
  31. package/lib/module/shaders/vertexShaders/mainRotationEffectVertex.js.map +1 -1
  32. package/lib/module/types/size.js +2 -0
  33. package/lib/module/types/size.js.map +1 -0
  34. package/lib/module/types/typeUtils.js +0 -14
  35. package/lib/module/types/typeUtils.js.map +1 -1
  36. package/lib/module/types/vector.js +2 -0
  37. package/lib/module/types/vector.js.map +1 -0
  38. package/lib/module/utils/size.js +25 -0
  39. package/lib/module/utils/size.js.map +1 -0
  40. package/lib/module/utils/vector.js +168 -0
  41. package/lib/module/utils/vector.js.map +1 -0
  42. package/lib/typescript/src/components/Content.d.ts +23 -0
  43. package/lib/typescript/src/components/Content.d.ts.map +1 -0
  44. package/lib/typescript/src/components/Shine.d.ts +3 -13
  45. package/lib/typescript/src/components/Shine.d.ts.map +1 -1
  46. package/lib/typescript/src/components/ShineGroup.d.ts +3 -5
  47. package/lib/typescript/src/components/ShineGroup.d.ts.map +1 -1
  48. package/lib/typescript/src/hooks/useAnimationFrame.d.ts +2 -0
  49. package/lib/typescript/src/hooks/useAnimationFrame.d.ts.map +1 -0
  50. package/lib/typescript/src/hooks/useOrientation.d.ts +3 -1
  51. package/lib/typescript/src/hooks/useOrientation.d.ts.map +1 -1
  52. package/lib/typescript/src/index.d.ts +4 -2
  53. package/lib/typescript/src/index.d.ts.map +1 -1
  54. package/lib/typescript/src/shaders/bindGroupLayouts.d.ts +9 -9
  55. package/lib/typescript/src/shaders/bindGroupLayouts.d.ts.map +1 -1
  56. package/lib/typescript/src/shaders/bindGroupUtils.d.ts +3 -3
  57. package/lib/typescript/src/shaders/bindGroupUtils.d.ts.map +1 -1
  58. package/lib/typescript/src/shaders/fragmentShaders/glareFragment.d.ts.map +1 -1
  59. package/lib/typescript/src/shaders/fragmentShaders/holoFragment.d.ts.map +1 -1
  60. package/lib/typescript/src/shaders/pipelineSetups.d.ts +7 -7
  61. package/lib/typescript/src/shaders/pipelineSetups.d.ts.map +1 -1
  62. package/lib/typescript/src/shaders/resourceManagement/textures.d.ts +2 -1
  63. package/lib/typescript/src/shaders/resourceManagement/textures.d.ts.map +1 -1
  64. package/lib/typescript/src/shaders/utils.d.ts +3 -4
  65. package/lib/typescript/src/shaders/utils.d.ts.map +1 -1
  66. package/lib/typescript/src/types/size.d.ts +5 -0
  67. package/lib/typescript/src/types/size.d.ts.map +1 -0
  68. package/lib/typescript/src/types/typeUtils.d.ts +1 -4
  69. package/lib/typescript/src/types/typeUtils.d.ts.map +1 -1
  70. package/lib/typescript/src/types/types.d.ts +3 -1
  71. package/lib/typescript/src/types/types.d.ts.map +1 -1
  72. package/lib/typescript/src/types/vector.d.ts +11 -0
  73. package/lib/typescript/src/types/vector.d.ts.map +1 -0
  74. package/lib/typescript/src/utils/size.d.ts +5 -0
  75. package/lib/typescript/src/utils/size.d.ts.map +1 -0
  76. package/lib/typescript/src/utils/vector.d.ts +33 -0
  77. package/lib/typescript/src/utils/vector.d.ts.map +1 -0
  78. package/package.json +8 -7
  79. package/src/components/Content.tsx +403 -0
  80. package/src/components/Shine.tsx +24 -466
  81. package/src/components/ShineGroup.tsx +17 -24
  82. package/src/hooks/useAnimationFrame.ts +21 -0
  83. package/src/hooks/useOrientation.ts +11 -13
  84. package/src/index.tsx +9 -1
  85. package/src/shaders/bindGroupLayouts.ts +11 -11
  86. package/src/shaders/bindGroupUtils.ts +31 -61
  87. package/src/shaders/fragmentShaders/glareFragment.ts +8 -7
  88. package/src/shaders/fragmentShaders/holoFragment.ts +5 -13
  89. package/src/shaders/fragmentShaders/reverseHoloFragment.ts +4 -4
  90. package/src/shaders/pipelineSetups.ts +54 -69
  91. package/src/shaders/resourceManagement/textures.ts +13 -1
  92. package/src/shaders/utils.ts +13 -27
  93. package/src/shaders/vertexShaders/mainRotationEffectVertex.ts +2 -2
  94. package/src/types/size.ts +4 -0
  95. package/src/types/typeUtils.ts +0 -28
  96. package/src/types/types.ts +11 -1
  97. package/src/types/vector.ts +13 -0
  98. package/src/utils/size.ts +12 -0
  99. package/src/utils/vector.ts +132 -0
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
 
3
- import React, { useEffect, useRef, useState } from 'react';
3
+ import { useEffect, useRef, useState } from 'react';
4
4
  import { View, StyleSheet, Image, PixelRatio } from 'react-native';
5
5
  import ViewShot, { captureRef } from 'react-native-view-shot';
6
+ import { sizeFromV2d, sizeToV2d } from "../utils/size.js";
7
+ import { areV2dEqual, multiplyV2d, round2D } from "../utils/vector.js";
6
8
  import { Shine } from "./Shine.js";
7
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
10
  export function ShineGroup({
@@ -20,19 +22,10 @@ export function ShineGroup({
20
22
  const [capturedURI, setCapturedURI] = useState(null);
21
23
  const [size, setSize] = useState(null);
22
24
  const onInnerLayout = e => {
23
- const {
24
- width,
25
- height
26
- } = e.nativeEvent.layout;
27
- if (width > 0 && height > 0) {
28
- if (!size || size.width !== width || size.height !== height) {
29
- setSize({
30
- width,
31
- height
32
- });
33
- }
25
+ const layoutV2d = sizeToV2d(e.nativeEvent.layout);
26
+ if (!size || !areV2dEqual(size, layoutV2d)) {
27
+ setSize(layoutV2d);
34
28
  }
35
- console.log('onInnerLayout', width, height);
36
29
  };
37
30
 
38
31
  // When we have a valid measured size, take a snapshot (after a short tick)
@@ -42,14 +35,11 @@ export function ShineGroup({
42
35
  let mounted = true;
43
36
  const t = setTimeout(async () => {
44
37
  try {
45
- const dpr = PixelRatio.get();
46
- const pixelW = Math.round(size.width * dpr);
47
- const pixelH = Math.round(size.height * dpr);
48
- const uri = await captureRef(viewShotRef.current, {
38
+ const pixel = round2D(multiplyV2d(size, PixelRatio.get()));
39
+ const uri = await captureRef(viewShotRef, {
49
40
  format: 'png',
50
41
  quality: 1,
51
- width: pixelW,
52
- height: pixelH
42
+ ...sizeFromV2d(pixel)
53
43
  });
54
44
  if (mounted) setCapturedURI(uri);
55
45
  } catch (err) {
@@ -76,11 +66,9 @@ export function ShineGroup({
76
66
  })
77
67
  }), capturedURI && size && /*#__PURE__*/_jsx(Image, {
78
68
  src: capturedURI,
79
- width: size.width,
80
- height: size.height
69
+ ...sizeFromV2d(size)
81
70
  }), capturedURI && size && /*#__PURE__*/_jsx(Shine, {
82
- width: size.width,
83
- height: size.height,
71
+ ...sizeFromV2d(size),
84
72
  imageURI: capturedURI,
85
73
  glareOptions: glareOptions,
86
74
  colorMaskOptions: colorMaskOptions,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useRef","useState","View","StyleSheet","Image","PixelRatio","ViewShot","captureRef","Shine","jsx","_jsx","jsxs","_jsxs","ShineGroup","children","glareOptions","colorMaskOptions","maskURI","touchPosition","useTouchControl","addTextureMask","addHolo","addReverseHolo","viewShotRef","capturedURI","setCapturedURI","size","setSize","onInnerLayout","e","width","height","nativeEvent","layout","console","log","current","mounted","t","setTimeout","dpr","get","pixelW","Math","round","pixelH","uri","format","quality","err","warn","clearTimeout","style","styles","container","ref","options","onLayout","inner","src","imageURI","create","display","flexDirection","gap"],"sourceRoot":"../../../src","sources":["components/ShineGroup.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","useState","View","StyleSheet","Image","PixelRatio","ViewShot","captureRef","sizeFromV2d","sizeToV2d","areV2dEqual","multiplyV2d","round2D","Shine","jsx","_jsx","jsxs","_jsxs","ShineGroup","children","glareOptions","colorMaskOptions","maskURI","touchPosition","useTouchControl","addTextureMask","addHolo","addReverseHolo","viewShotRef","capturedURI","setCapturedURI","size","setSize","onInnerLayout","e","layoutV2d","nativeEvent","layout","current","mounted","t","setTimeout","pixel","get","uri","format","quality","err","console","warn","clearTimeout","style","styles","container","ref","options","onLayout","inner","src","imageURI","create","display","flexDirection","gap"],"sourceRoot":"../../../src","sources":["components/ShineGroup.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useEffect, useRef } from 'react';
4
+ export default function useAnimationFrame(cb) {
5
+ const requestId = useRef(null);
6
+ const onFrame = useCallback(function () {
7
+ cb();
8
+ requestId.current = requestAnimationFrame(onFrame);
9
+ }, [cb]);
10
+ useEffect(() => {
11
+ requestId.current = requestAnimationFrame(onFrame);
12
+ return () => {
13
+ requestId.current === null || cancelAnimationFrame(requestId.current);
14
+ };
15
+ }, [onFrame]);
16
+ }
17
+ //# sourceMappingURL=useAnimationFrame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useAnimationFrame","cb","requestId","onFrame","current","requestAnimationFrame","cancelAnimationFrame"],"sourceRoot":"../../../src","sources":["hooks/useAnimationFrame.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAEtD,eAAe,SAASC,iBAAiBA,CAACC,EAAc,EAAE;EACxD,MAAMC,SAAS,GAAGH,MAAM,CAAS,IAAI,CAAC;EAEtC,MAAMI,OAAO,GAAGN,WAAW,CACzB,YAAY;IACVI,EAAE,CAAC,CAAC;IACJC,SAAS,CAACE,OAAO,GAAGC,qBAAqB,CAACF,OAAO,CAAC;EACpD,CAAC,EACD,CAACF,EAAE,CACL,CAAC;EAEDH,SAAS,CAAC,MAAM;IACdI,SAAS,CAACE,OAAO,GAAGC,qBAAqB,CAACF,OAAO,CAAC;IAElD,OAAO,MAAM;MACXD,SAAS,CAACE,OAAO,KAAK,IAAI,IAAIE,oBAAoB,CAACJ,SAAS,CAACE,OAAO,CAAC;IACvE,CAAC;EACH,CAAC,EAAE,CAACD,OAAO,CAAC,CAAC;AACf","ignoreList":[]}
@@ -1,16 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  import { useEffect, useState } from 'react';
4
- import { getAngleFromDimensions, subscribeToOrientationChange } from "../shaders/utils.js";
4
+ import { subscribeToOrientationChange } from "../shaders/utils.js";
5
5
  export const useOrientation = () => {
6
6
  const [orientation, setOrientation] = useState();
7
- useEffect(() => {
8
- setOrientation(getAngleFromDimensions() === 0 ? 'PORTRAIT' : 'LANDSCAPE');
9
- const unsubscribe = subscribeToOrientationChange(angleDeg => {
10
- setOrientation(angleDeg === 0 ? 'PORTRAIT' : 'LANDSCAPE');
11
- });
12
- return () => unsubscribe();
13
- }, []);
7
+ useEffect(() => subscribeToOrientationChange(isLandscape => setOrientation(isLandscape ? 'LANDSCAPE' : 'PORTRAIT')), []);
14
8
  return orientation;
15
9
  };
16
10
  //# sourceMappingURL=useOrientation.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useState","getAngleFromDimensions","subscribeToOrientationChange","useOrientation","orientation","setOrientation","unsubscribe","angleDeg"],"sourceRoot":"../../../src","sources":["hooks/useOrientation.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SACEC,sBAAsB,EACtBC,4BAA4B,QACvB,qBAAkB;AAEzB,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAM;EAClC,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGL,QAAQ,CAAS,CAAC;EAExDD,SAAS,CAAC,MAAM;IACdM,cAAc,CAACJ,sBAAsB,CAAC,CAAC,KAAK,CAAC,GAAG,UAAU,GAAG,WAAW,CAAC;IACzE,MAAMK,WAAW,GAAGJ,4BAA4B,CAAEK,QAAQ,IAAK;MAC7DF,cAAc,CAACE,QAAQ,KAAK,CAAC,GAAG,UAAU,GAAG,WAAW,CAAC;IAC3D,CAAC,CAAC;IAEF,OAAO,MAAMD,WAAW,CAAC,CAAC;EAC5B,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOF,WAAW;AACpB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useState","subscribeToOrientationChange","useOrientation","orientation","setOrientation","isLandscape"],"sourceRoot":"../../../src","sources":["hooks/useOrientation.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,4BAA4B,QAAQ,qBAAkB;AAI/D,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAM;EAClC,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGJ,QAAQ,CAAc,CAAC;EAE7DD,SAAS,CACP,MACEE,4BAA4B,CAAEI,WAAW,IACvCD,cAAc,CAACC,WAAW,GAAG,WAAW,GAAG,UAAU,CACvD,CAAC,EACH,EACF,CAAC;EAED,OAAOF,WAAW;AACpB,CAAC","ignoreList":[]}
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
 
3
3
  import { useOrientation } from "./hooks/useOrientation.js";
4
- import { getAngleFromDimensions, subscribeToOrientationChange } from "./shaders/utils.js";
5
- export { subscribeToOrientationChange, getAngleFromDimensions, useOrientation };
4
+ import { getAngleFromDimensions, isLandscapeMode, subscribeToOrientationChange } from "./shaders/utils.js";
5
+ export { subscribeToOrientationChange, getAngleFromDimensions, isLandscapeMode, useOrientation };
6
6
  export { Shine } from "./components/Shine.js";
7
7
  export { ShineGroup } from "./components/ShineGroup.js";
8
+ export * from "./utils/vector.js";
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useOrientation","getAngleFromDimensions","subscribeToOrientationChange","Shine","ShineGroup"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,cAAc,QAAQ,2BAAwB;AACvD,SACEC,sBAAsB,EACtBC,4BAA4B,QACvB,oBAAiB;AAExB,SAASA,4BAA4B,EAAED,sBAAsB,EAAED,cAAc;AAC7E,SAASG,KAAK,QAAQ,uBAAoB;AAC1C,SAASC,UAAU,QAAQ,4BAAyB","ignoreList":[]}
1
+ {"version":3,"names":["useOrientation","getAngleFromDimensions","isLandscapeMode","subscribeToOrientationChange","Shine","ShineGroup"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,cAAc,QAAQ,2BAAwB;AACvD,SACEC,sBAAsB,EACtBC,eAAe,EACfC,4BAA4B,QACvB,oBAAiB;AAExB,SACEA,4BAA4B,EAC5BF,sBAAsB,EACtBC,eAAe,EACfF,cAAc;AAEhB,SAASI,KAAK,QAAQ,uBAAoB;AAC1C,SAASC,UAAU,QAAQ,4BAAyB;AAEpD,cAAc,mBAAgB","ignoreList":[]}
@@ -22,12 +22,12 @@ export const maskTextureBindGroupLayout = tgpu.bindGroupLayout({
22
22
  sampler: 'filtering'
23
23
  }
24
24
  });
25
- export const rotationValuesBindGroupLayout = tgpu.bindGroupLayout({
25
+ export const rotationBindGroupLayout = tgpu.bindGroupLayout({
26
26
  vec: {
27
27
  uniform: d.vec3f
28
28
  }
29
29
  });
30
- export const glareOptionsSchema = d.struct({
30
+ export const glareSchema = d.struct({
31
31
  glowPower: d.f32,
32
32
  hueShiftAngleMax: d.f32,
33
33
  hueShiftAngleMin: d.f32,
@@ -35,9 +35,9 @@ export const glareOptionsSchema = d.struct({
35
35
  lightIntensity: d.f32,
36
36
  glareIntensity: d.f32
37
37
  });
38
- export const glareOptionsBindGroupLayout = tgpu.bindGroupLayout({
38
+ export const glareBindGroupLayout = tgpu.bindGroupLayout({
39
39
  glareOptions: {
40
- uniform: glareOptionsSchema
40
+ uniform: glareSchema
41
41
  }
42
42
  });
43
43
  export const colorMaskSchema = d.struct({
@@ -53,15 +53,15 @@ export const colorMaskBindGroupLayout = tgpu.bindGroupLayout({
53
53
  }
54
54
  });
55
55
  export const bufferData = {
56
- rotationBuffer: {
56
+ rotation: {
57
57
  schema: d.vec3f,
58
58
  usage: 'uniform'
59
59
  },
60
- glareBuffer: {
61
- schema: glareOptionsSchema,
60
+ glare: {
61
+ schema: glareSchema,
62
62
  usage: 'uniform'
63
63
  },
64
- colorMaskBuffer: {
64
+ colorMask: {
65
65
  schema: colorMaskSchema,
66
66
  usage: 'uniform'
67
67
  }
@@ -1 +1 @@
1
- {"version":3,"names":["tgpu","d","textureBindGroupLayout","bindGroupLayout","texture","dimension","sampleType","sampler","maskTextureBindGroupLayout","rotationValuesBindGroupLayout","vec","uniform","vec3f","glareOptionsSchema","struct","glowPower","f32","hueShiftAngleMax","hueShiftAngleMin","hueBlendPower","lightIntensity","glareIntensity","glareOptionsBindGroupLayout","glareOptions","colorMaskSchema","baseColor","rgbToleranceRange","upper","lower","colorMaskBindGroupLayout","mask","bufferData","rotationBuffer","schema","usage","glareBuffer","colorMaskBuffer"],"sourceRoot":"../../../src","sources":["shaders/bindGroupLayouts.ts"],"mappings":";;AAAA,OAAOA,IAAI,MAAqC,SAAS;AACzD,OAAO,KAAKC,CAAC,MAAM,cAAc;AAGjC,OAAO,MAAMC,sBAAsB,GAAGF,IAAI,CAACG,eAAe,CAAC;EACzDC,OAAO,EAAE;IAAEA,OAAO,EAAE,OAAO;IAAEC,SAAS,EAAE,IAAI;IAAEC,UAAU,EAAE;EAAQ,CAAC;EACnEC,OAAO,EAAE;IAAEA,OAAO,EAAE;EAAY;AAClC,CAAC,CAAC;AAEF,OAAO,MAAMC,0BAA0B,GAAGR,IAAI,CAACG,eAAe,CAAC;EAC7DC,OAAO,EAAE;IAAEA,OAAO,EAAE,OAAO;IAAEC,SAAS,EAAE,IAAI;IAAEC,UAAU,EAAE;EAAQ,CAAC;EACnEC,OAAO,EAAE;IAAEA,OAAO,EAAE;EAAY;AAClC,CAAC,CAAC;AAEF,OAAO,MAAME,6BAA6B,GAAGT,IAAI,CAACG,eAAe,CAAC;EAChEO,GAAG,EAAE;IAAEC,OAAO,EAAEV,CAAC,CAACW;EAAM;AAC1B,CAAC,CAAC;AAEF,OAAO,MAAMC,kBAAkB,GAAGZ,CAAC,CAACa,MAAM,CAAC;EACzCC,SAAS,EAAEd,CAAC,CAACe,GAAG;EAChBC,gBAAgB,EAAEhB,CAAC,CAACe,GAAG;EACvBE,gBAAgB,EAAEjB,CAAC,CAACe,GAAG;EACvBG,aAAa,EAAElB,CAAC,CAACe,GAAG;EACpBI,cAAc,EAAEnB,CAAC,CAACe,GAAG;EACrBK,cAAc,EAAEpB,CAAC,CAACe;AACpB,CAAC,CAAC;AAIF,OAAO,MAAMM,2BAA2B,GAAGtB,IAAI,CAACG,eAAe,CAAC;EAC9DoB,YAAY,EAAE;IAAEZ,OAAO,EAAEE;EAAmB;AAC9C,CAAC,CAAC;AAEF,OAAO,MAAMW,eAAe,GAAGvB,CAAC,CAACa,MAAM,CAAC;EACtCW,SAAS,EAAExB,CAAC,CAACW,KAAK;EAClBc,iBAAiB,EAAEzB,CAAC,CAACa,MAAM,CAAC;IAC1Ba,KAAK,EAAE1B,CAAC,CAACW,KAAK;IACdgB,KAAK,EAAE3B,CAAC,CAACW;EACX,CAAC;AACH,CAAC,CAAC;AAIF,OAAO,MAAMiB,wBAAwB,GAAG7B,IAAI,CAACG,eAAe,CAAC;EAC3D2B,IAAI,EAAE;IAAEnB,OAAO,EAAEa;EAAgB;AACnC,CAAC,CAAC;AAEF,OAAO,MAAMO,UAAU,GAAG;EACxBC,cAAc,EAAE;IACdC,MAAM,EAAEhC,CAAC,CAACW,KAAK;IACfsB,KAAK,EAAE;EACT,CAAC;EACDC,WAAW,EAAE;IACXF,MAAM,EAAEpB,kBAAkB;IAC1BqB,KAAK,EAAE;EACT,CAAC;EACDE,eAAe,EAAE;IACfH,MAAM,EAAET,eAAe;IACvBU,KAAK,EAAE;EACT;AACF,CAGC;;AAID;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["tgpu","d","textureBindGroupLayout","bindGroupLayout","texture","dimension","sampleType","sampler","maskTextureBindGroupLayout","rotationBindGroupLayout","vec","uniform","vec3f","glareSchema","struct","glowPower","f32","hueShiftAngleMax","hueShiftAngleMin","hueBlendPower","lightIntensity","glareIntensity","glareBindGroupLayout","glareOptions","colorMaskSchema","baseColor","rgbToleranceRange","upper","lower","colorMaskBindGroupLayout","mask","bufferData","rotation","schema","usage","glare","colorMask"],"sourceRoot":"../../../src","sources":["shaders/bindGroupLayouts.ts"],"mappings":";;AAAA,OAAOA,IAAI,MAAqC,SAAS;AACzD,OAAO,KAAKC,CAAC,MAAM,cAAc;AAGjC,OAAO,MAAMC,sBAAsB,GAAGF,IAAI,CAACG,eAAe,CAAC;EACzDC,OAAO,EAAE;IAAEA,OAAO,EAAE,OAAO;IAAEC,SAAS,EAAE,IAAI;IAAEC,UAAU,EAAE;EAAQ,CAAC;EACnEC,OAAO,EAAE;IAAEA,OAAO,EAAE;EAAY;AAClC,CAAC,CAAC;AAEF,OAAO,MAAMC,0BAA0B,GAAGR,IAAI,CAACG,eAAe,CAAC;EAC7DC,OAAO,EAAE;IAAEA,OAAO,EAAE,OAAO;IAAEC,SAAS,EAAE,IAAI;IAAEC,UAAU,EAAE;EAAQ,CAAC;EACnEC,OAAO,EAAE;IAAEA,OAAO,EAAE;EAAY;AAClC,CAAC,CAAC;AAEF,OAAO,MAAME,uBAAuB,GAAGT,IAAI,CAACG,eAAe,CAAC;EAC1DO,GAAG,EAAE;IAAEC,OAAO,EAAEV,CAAC,CAACW;EAAM;AAC1B,CAAC,CAAC;AAEF,OAAO,MAAMC,WAAW,GAAGZ,CAAC,CAACa,MAAM,CAAC;EAClCC,SAAS,EAAEd,CAAC,CAACe,GAAG;EAChBC,gBAAgB,EAAEhB,CAAC,CAACe,GAAG;EACvBE,gBAAgB,EAAEjB,CAAC,CAACe,GAAG;EACvBG,aAAa,EAAElB,CAAC,CAACe,GAAG;EACpBI,cAAc,EAAEnB,CAAC,CAACe,GAAG;EACrBK,cAAc,EAAEpB,CAAC,CAACe;AACpB,CAAC,CAAC;AAIF,OAAO,MAAMM,oBAAoB,GAAGtB,IAAI,CAACG,eAAe,CAAC;EACvDoB,YAAY,EAAE;IAAEZ,OAAO,EAAEE;EAAY;AACvC,CAAC,CAAC;AAEF,OAAO,MAAMW,eAAe,GAAGvB,CAAC,CAACa,MAAM,CAAC;EACtCW,SAAS,EAAExB,CAAC,CAACW,KAAK;EAClBc,iBAAiB,EAAEzB,CAAC,CAACa,MAAM,CAAC;IAC1Ba,KAAK,EAAE1B,CAAC,CAACW,KAAK;IACdgB,KAAK,EAAE3B,CAAC,CAACW;EACX,CAAC;AACH,CAAC,CAAC;AAIF,OAAO,MAAMiB,wBAAwB,GAAG7B,IAAI,CAACG,eAAe,CAAC;EAC3D2B,IAAI,EAAE;IAAEnB,OAAO,EAAEa;EAAgB;AACnC,CAAC,CAAC;AAEF,OAAO,MAAMO,UAAU,GAAG;EACxBC,QAAQ,EAAE;IACRC,MAAM,EAAEhC,CAAC,CAACW,KAAK;IACfsB,KAAK,EAAE;EACT,CAAC;EACDC,KAAK,EAAE;IACLF,MAAM,EAAEpB,WAAW;IACnBqB,KAAK,EAAE;EACT,CAAC;EACDE,SAAS,EAAE;IACTH,MAAM,EAAET,eAAe;IACvBU,KAAK,EAAE;EACT;AACF,CAGC;;AAID;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA","ignoreList":[]}
@@ -1,47 +1,25 @@
1
1
  "use strict";
2
2
 
3
3
  import * as d from 'typegpu/data';
4
- import { glareOptionsBindGroupLayout, glareOptionsSchema, colorMaskBindGroupLayout, colorMaskSchema, rotationValuesBindGroupLayout } from "./bindGroupLayouts.js";
4
+ import { glareBindGroupLayout, glareSchema, colorMaskBindGroupLayout, rotationBindGroupLayout, colorMaskSchema } from "./bindGroupLayouts.js";
5
5
  import { colorMaskToTyped, createGlareOptions, createColorMask, mapToF32 } from "../types/typeUtils.js";
6
- export const createRotationBuffer = (root, initValues) => {
7
- const init = initValues ? d.vec3f(initValues.x, initValues.y, initValues.z) : d.vec3f(0.0);
8
- const rotationValuesBuffer = root.createBuffer(d.vec3f, init).$usage('uniform');
9
- return rotationValuesBuffer;
10
- };
11
- export const createRotationValuesBindGroup = (root, buffer) => {
12
- const rotationValuesBindGroup = root.createBindGroup(rotationValuesBindGroupLayout, {
13
- vec: root.unwrap(buffer)
14
- });
15
- return rotationValuesBindGroup;
16
- };
17
- export const createGlareOptionsBuffer = (root, initValues) => {
18
- const glareOptions = createGlareOptions({
19
- ...initValues
20
- });
21
- const glareOptionsTyped = mapToF32(glareOptions);
22
- const glareOptionsBuffer = root.createBuffer(glareOptionsSchema, glareOptionsTyped).$usage('uniform');
23
- return glareOptionsBuffer;
24
- };
25
- export const createGlareOptionsBindGroup = (root, buffer) => {
26
- const glareOptionsBindGroup = root.createBindGroup(glareOptionsBindGroupLayout, {
27
- glareOptions: buffer
28
- });
29
- return glareOptionsBindGroup;
30
- };
31
- export const createColorMaskBuffer = (root, initValues) => {
32
- const colorMask = createColorMask({
33
- ...initValues
34
- });
35
- const colorMaskTyped = colorMaskToTyped(colorMask);
36
- const colorMaskBuffer = root.createBuffer(colorMaskSchema, colorMaskTyped).$usage('uniform');
37
- return colorMaskBuffer;
38
- };
39
- export const createColorMaskBindGroup = (root, buffer) => {
40
- const colorMaskBindGroup = root.createBindGroup(colorMaskBindGroupLayout, {
41
- mask: buffer
42
- });
43
- return colorMaskBindGroup;
44
- };
6
+ import { componentsFromV3d, zeroV3d } from "../utils/vector.js";
7
+ export const createRotationBuffer = (root, initValues = zeroV3d) => root.createBuffer(d.vec3f, d.vec3f(...componentsFromV3d(initValues))).$usage('uniform');
8
+ export const createRotationValuesBindGroup = (root, buffer) => root.createBindGroup(rotationBindGroupLayout, {
9
+ vec: root.unwrap(buffer)
10
+ });
11
+ export const createGlareOptionsBuffer = (root, initValues) => root.createBuffer(glareSchema, mapToF32(createGlareOptions({
12
+ ...initValues
13
+ }))).$usage('uniform');
14
+ export const createGlareBindGroup = (root, buffer) => root.createBindGroup(glareBindGroupLayout, {
15
+ glareOptions: buffer
16
+ });
17
+ export const createColorMaskBuffer = (root, initValues) => root.createBuffer(colorMaskSchema, colorMaskToTyped(createColorMask({
18
+ ...initValues
19
+ }))).$usage('uniform');
20
+ export const createColorMaskBindGroup = (root, buffer) => root.createBindGroup(colorMaskBindGroupLayout, {
21
+ mask: buffer
22
+ });
45
23
 
46
24
  // export const crateHoloBuffer = (
47
25
  // root: TgpuRoot,
@@ -1 +1 @@
1
- {"version":3,"names":["d","glareOptionsBindGroupLayout","glareOptionsSchema","colorMaskBindGroupLayout","colorMaskSchema","rotationValuesBindGroupLayout","colorMaskToTyped","createGlareOptions","createColorMask","mapToF32","createRotationBuffer","root","initValues","init","vec3f","x","y","z","rotationValuesBuffer","createBuffer","$usage","createRotationValuesBindGroup","buffer","rotationValuesBindGroup","createBindGroup","vec","unwrap","createGlareOptionsBuffer","glareOptions","glareOptionsTyped","glareOptionsBuffer","createGlareOptionsBindGroup","glareOptionsBindGroup","createColorMaskBuffer","colorMask","colorMaskTyped","colorMaskBuffer","createColorMaskBindGroup","colorMaskBindGroup","mask"],"sourceRoot":"../../../src","sources":["shaders/bindGroupUtils.ts"],"mappings":";;AACA,OAAO,KAAKA,CAAC,MAAM,cAAc;AACjC,SACEC,2BAA2B,EAC3BC,kBAAkB,EAClBC,wBAAwB,EACxBC,eAAe,EACfC,6BAA6B,QACxB,uBAAoB;AAM3B,SACEC,gBAAgB,EAChBC,kBAAkB,EAClBC,eAAe,EACfC,QAAQ,QACH,uBAAoB;AAE3B,OAAO,MAAMC,oBAAoB,GAAGA,CAClCC,IAAc,EACdC,UAAgD,KAC7C;EACH,MAAMC,IAAI,GAAGD,UAAU,GACnBZ,CAAC,CAACc,KAAK,CAACF,UAAU,CAACG,CAAC,EAAEH,UAAU,CAACI,CAAC,EAAEJ,UAAU,CAACK,CAAC,CAAC,GACjDjB,CAAC,CAACc,KAAK,CAAC,GAAG,CAAC;EAChB,MAAMI,oBAAoB,GAAGP,IAAI,CAC9BQ,YAAY,CAACnB,CAAC,CAACc,KAAK,EAAED,IAAI,CAAC,CAC3BO,MAAM,CAAC,SAAS,CAAC;EAEpB,OAAOF,oBAAoB;AAC7B,CAAC;AAED,OAAO,MAAMG,6BAA6B,GAAGA,CAC3CV,IAAc,EACdW,MAA2B,KACxB;EACH,MAAMC,uBAAuB,GAAGZ,IAAI,CAACa,eAAe,CAClDnB,6BAA6B,EAC7B;IACEoB,GAAG,EAAEd,IAAI,CAACe,MAAM,CAACJ,MAAM;EACzB,CACF,CAAC;EAED,OAAOC,uBAAuB;AAChC,CAAC;AAED,OAAO,MAAMI,wBAAwB,GAAGA,CACtChB,IAAc,EACdC,UAAkC,KAC/B;EACH,MAAMgB,YAA0B,GAAGrB,kBAAkB,CAAC;IAAE,GAAGK;EAAW,CAAC,CAAC;EACxE,MAAMiB,iBAAiB,GAAGpB,QAAQ,CAACmB,YAAY,CAAC;EAEhD,MAAME,kBAAkB,GAAGnB,IAAI,CAC5BQ,YAAY,CAACjB,kBAAkB,EAAE2B,iBAAiB,CAAC,CACnDT,MAAM,CAAC,SAAS,CAAC;EAEpB,OAAOU,kBAAkB;AAC3B,CAAC;AAED,OAAO,MAAMC,2BAA2B,GAAGA,CACzCpB,IAAc,EACdW,MAAoD,KACjD;EACH,MAAMU,qBAAqB,GAAGrB,IAAI,CAACa,eAAe,CAChDvB,2BAA2B,EAC3B;IACE2B,YAAY,EAAEN;EAChB,CACF,CAAC;EAED,OAAOU,qBAAqB;AAC9B,CAAC;AAED,OAAO,MAAMC,qBAAqB,GAAGA,CACnCtB,IAAc,EACdC,UAAqD,KAClD;EACH,MAAMsB,SAAoB,GAAG1B,eAAe,CAAC;IAAE,GAAGI;EAAW,CAAC,CAAC;EAC/D,MAAMuB,cAAc,GAAG7B,gBAAgB,CAAC4B,SAAS,CAAC;EAElD,MAAME,eAAe,GAAGzB,IAAI,CACzBQ,YAAY,CAACf,eAAe,EAAE+B,cAAc,CAAC,CAC7Cf,MAAM,CAAC,SAAS,CAAC;EAEpB,OAAOgB,eAAe;AACxB,CAAC;AAED,OAAO,MAAMC,wBAAwB,GAAGA,CACtC1B,IAAc,EACdW,MAAiD,KAC9C;EACH,MAAMgB,kBAAkB,GAAG3B,IAAI,CAACa,eAAe,CAACrB,wBAAwB,EAAE;IACxEoC,IAAI,EAAEjB;EACR,CAAC,CAAC;EAEF,OAAOgB,kBAAkB;AAC3B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["d","glareBindGroupLayout","glareSchema","colorMaskBindGroupLayout","rotationBindGroupLayout","colorMaskSchema","colorMaskToTyped","createGlareOptions","createColorMask","mapToF32","componentsFromV3d","zeroV3d","createRotationBuffer","root","initValues","createBuffer","vec3f","$usage","createRotationValuesBindGroup","buffer","createBindGroup","vec","unwrap","createGlareOptionsBuffer","createGlareBindGroup","glareOptions","createColorMaskBuffer","createColorMaskBindGroup","mask"],"sourceRoot":"../../../src","sources":["shaders/bindGroupUtils.ts"],"mappings":";;AACA,OAAO,KAAKA,CAAC,MAAM,cAAc;AACjC,SACEC,oBAAoB,EACpBC,WAAW,EACXC,wBAAwB,EAExBC,uBAAuB,EAEvBC,eAAe,QACV,uBAAoB;AAM3B,SACEC,gBAAgB,EAChBC,kBAAkB,EAClBC,eAAe,EACfC,QAAQ,QACH,uBAAoB;AAC3B,SAASC,iBAAiB,EAAEC,OAAO,QAAQ,oBAAiB;AAE5D,OAAO,MAAMC,oBAAoB,GAAGA,CAACC,IAAc,EAAEC,UAAU,GAAGH,OAAO,KACvEE,IAAI,CACDE,YAAY,CAACf,CAAC,CAACgB,KAAK,EAAEhB,CAAC,CAACgB,KAAK,CAAC,GAAGN,iBAAiB,CAACI,UAAU,CAAC,CAAC,CAAC,CAChEG,MAAM,CAAC,SAAS,CAAC;AAEtB,OAAO,MAAMC,6BAA6B,GAAGA,CAC3CL,IAAc,EACdM,MAA2B,KAE3BN,IAAI,CAACO,eAAe,CAAChB,uBAAuB,EAAE;EAC5CiB,GAAG,EAAER,IAAI,CAACS,MAAM,CAACH,MAAM;AACzB,CAAC,CAAC;AAEJ,OAAO,MAAMI,wBAAwB,GAAGA,CACtCV,IAAc,EACdC,UAAkC,KAElCD,IAAI,CACDE,YAAY,CAACb,WAAW,EAAEO,QAAQ,CAACF,kBAAkB,CAAC;EAAE,GAAGO;AAAW,CAAC,CAAC,CAAC,CAAC,CAC1EG,MAAM,CAAC,SAAS,CAAC;AAEtB,OAAO,MAAMO,oBAAoB,GAAGA,CAClCX,IAAc,EACdM,MAA6C,KAE7CN,IAAI,CAACO,eAAe,CAACnB,oBAAoB,EAAE;EACzCwB,YAAY,EAAEN;AAChB,CAAC,CAAC;AAEJ,OAAO,MAAMO,qBAAqB,GAAGA,CACnCb,IAAc,EACdC,UAAqD,KAErDD,IAAI,CACDE,YAAY,CACXV,eAAe,EACfC,gBAAgB,CAACE,eAAe,CAAC;EAAE,GAAGM;AAAW,CAAC,CAAC,CACrD,CAAC,CACAG,MAAM,CAAC,SAAS,CAAC;AAEtB,OAAO,MAAMU,wBAAwB,GAAGA,CACtCd,IAAc,EACdM,MAAiD,KAEjDN,IAAI,CAACO,eAAe,CAACjB,wBAAwB,EAAE;EAC7CyB,IAAI,EAAET;AACR,CAAC,CAAC;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  import tgpu from 'typegpu';
4
4
  import * as d from 'typegpu/data';
5
5
  import * as std from 'typegpu/std';
6
- import { rotationValuesBindGroupLayout, textureBindGroupLayout, glareOptionsBindGroupLayout
6
+ import { rotationBindGroupLayout, textureBindGroupLayout, glareBindGroupLayout
7
7
  // colorMaskBindGroupLayout,
8
8
  } from "../bindGroupLayouts.js";
9
9
  import { glareColorShift, hueShift, overlayChannels } from "../tgpuUtils.js";
@@ -17,9 +17,9 @@ export const glareFragment = tgpu['~unstable'].fragmentFn({
17
17
  const uv = d.vec2f(input.uv.x, 1.0 - input.uv.y);
18
18
  const centeredCoords = std.sub(std.mul(uv, 2.0), 1); //-1 to 1
19
19
 
20
- const rot = rotationValuesBindGroupLayout.$.vec;
20
+ const rot = rotationBindGroupLayout.$.vec;
21
21
  const center = std.add(d.vec2f(0.0), d.vec2f(rot.x, rot.y));
22
- const glareOptions = glareOptionsBindGroupLayout.$.glareOptions;
22
+ const glareOptions = glareBindGroupLayout.$.glareOptions;
23
23
  const glareIntensity = glareOptions.glareIntensity;
24
24
  const glowPower = glareOptions.glowPower;
25
25
  const hueBlendPower = glareOptions.hueBlendPower;
@@ -76,10 +76,10 @@ export const newGlareFragment = tgpu['~unstable'].fragmentFn({
76
76
  const texcoord = d.vec2f(input.uv.x, 1.0 - input.uv.y);
77
77
  const uv = d.vec2f(input.uv.x, 1.0 - input.uv.y);
78
78
  const centeredCoords = std.sub(std.mul(uv, 2.0), 1.0);
79
- const rot = rotationValuesBindGroupLayout.$.vec;
79
+ const rot = rotationBindGroupLayout.$.vec;
80
80
  const center = std.add(d.vec2f(0.0), d.vec2f(rot.x, rot.y)); // do not change
81
81
 
82
- const opts = glareOptionsBindGroupLayout.$.glareOptions;
82
+ const opts = glareBindGroupLayout.$.glareOptions;
83
83
  const glareIntensity = opts.glareIntensity; // [0..∞): bigger → wider/stronger area
84
84
  const glowPower = opts.glowPower; // (0..∞): curve shaping; bigger → softer/wider glow
85
85
  const hueBlendPower = opts.hueBlendPower; // [0..1+]: how much hue-shifted color blends in
@@ -106,9 +106,10 @@ export const newGlareFragment = tgpu['~unstable'].fragmentFn({
106
106
  const glareLayer = std.mul(d.vec3f(maskedGlow), glareStrength);
107
107
  const overlaidRGB = overlayChannels(chromaMixed, glareLayer);
108
108
  const finalRGB = std.mix(chromaMixed, overlaidRGB, d.vec3f(maskedGlow));
109
-
110
- // Optional mild safety clamp to avoid NaNs/overflow artifacts.
111
109
  const outRGB = std.clamp(finalRGB, d.vec3f(0.0), d.vec3f(1.0));
110
+
111
+ // if (maskedGlow > 0.6) return d.vec4f(0.0, 0.0, 0.0, 0.0);
112
+
112
113
  return d.vec4f(outRGB, color.w);
113
114
  });
114
115
  //# sourceMappingURL=glareFragment.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["tgpu","d","std","rotationValuesBindGroupLayout","textureBindGroupLayout","glareOptionsBindGroupLayout","glareColorShift","hueShift","overlayChannels","glareFragment","fragmentFn","in","uv","vec2f","out","vec4f","input","texcoord","x","y","centeredCoords","sub","mul","rot","$","vec","center","add","glareOptions","glareIntensity","glowPower","hueBlendPower","hueShiftAngleMax","hueShiftAngleMin","lightIntensity","color","textureSample","texture","sampler","dst","exp","distance","distToCenter","smoothstep","glow","vec3f","w","hueBlend","f32","shiftedRGB","xyz","hueShiftAngle","shiftedHue","mix","baseColor","blendColor","combined","newGlareFragment","opts","dist","radial","radialScaled","max","influenceRaw","curveExp","clamp","glowMask","pow","div","maskedGlow","boostedRGB","hueT","hueAngle","hueShifted","hueMixWeight","chromaMixed","glareStrength","glareLayer","overlaidRGB","finalRGB","outRGB"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/glareFragment.ts"],"mappings":";;AAAA,OAAOA,IAAI,MAAM,SAAS;AAC1B,OAAO,KAAKC,CAAC,MAAM,cAAc;AACjC,OAAO,KAAKC,GAAG,MAAM,aAAa;AAClC,SACEC,6BAA6B,EAC7BC,sBAAsB,EACtBC;AACA;AAAA,OACK,wBAAqB;AAC5B,SAASC,eAAe,EAAEC,QAAQ,EAAEC,eAAe,QAAQ,iBAAc;AAEzE,OAAO,MAAMC,aAAa,GAAGT,IAAI,CAAC,WAAW,CAAC,CAACU,UAAU,CAAC;EACxDC,EAAE,EAAE;IAAEC,EAAE,EAAEX,CAAC,CAACY;EAAM,CAAC;EACnBC,GAAG,EAAEb,CAAC,CAACc;AACT,CAAC,CAAC,CAAEC,KAAK,IAAK;EACZ,MAAMC,QAAQ,GAAGhB,CAAC,CAACY,KAAK,CAACG,KAAK,CAACJ,EAAE,CAACM,CAAC,EAAE,GAAG,GAAGF,KAAK,CAACJ,EAAE,CAACO,CAAC,CAAC;EACtD,MAAMP,EAAE,GAAGX,CAAC,CAACY,KAAK,CAACG,KAAK,CAACJ,EAAE,CAACM,CAAC,EAAE,GAAG,GAAGF,KAAK,CAACJ,EAAE,CAACO,CAAC,CAAC;EAChD,MAAMC,cAAc,GAAGlB,GAAG,CAACmB,GAAG,CAACnB,GAAG,CAACoB,GAAG,CAACV,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;;EAErD,MAAMW,GAAG,GAAGpB,6BAA6B,CAACqB,CAAC,CAACC,GAAG;EAC/C,MAAMC,MAAM,GAAGxB,GAAG,CAACyB,GAAG,CAAC1B,CAAC,CAACY,KAAK,CAAC,GAAG,CAAC,EAAEZ,CAAC,CAACY,KAAK,CAACU,GAAG,CAACL,CAAC,EAAEK,GAAG,CAACJ,CAAC,CAAC,CAAC;EAE3D,MAAMS,YAAY,GAAGvB,2BAA2B,CAACmB,CAAC,CAACI,YAAY;EAC/D,MAAMC,cAAc,GAAGD,YAAY,CAACC,cAAc;EAClD,MAAMC,SAAS,GAAGF,YAAY,CAACE,SAAS;EACxC,MAAMC,aAAa,GAAGH,YAAY,CAACG,aAAa;EAChD,MAAMC,gBAAgB,GAAGJ,YAAY,CAACI,gBAAgB;EACtD,MAAMC,gBAAgB,GAAGL,YAAY,CAACK,gBAAgB;EACtD,MAAMC,cAAc,GAAGN,YAAY,CAACM,cAAc;;EAElD;EACA;EACA;;EAEA,IAAIC,KAAK,GAAGjC,GAAG,CAACkC,aAAa,CAC3BhC,sBAAsB,CAACoB,CAAC,CAACa,OAAO,EAChCjC,sBAAsB,CAACoB,CAAC,CAACc,OAAO,EAChCrB,QACF,CAAC;;EAED;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA,MAAMsB,GAAG,GAAGrC,GAAG,CAACsC,GAAG,CAAC,CAACtC,GAAG,CAACuC,QAAQ,CAACf,MAAM,EAAEN,cAAc,CAAC,CAAC;EAC1D,MAAMsB,YAAY,GAAGxC,GAAG,CAACyC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAGd,cAAc,EAAEU,GAAG,CAAC;;EAEjE;EACA,IAAIK,IAAI,GAAG3C,CAAC,CAAC4C,KAAK,CAACH,YAAY,CAAC;EAChCE,IAAI,GAAG1C,GAAG,CAACoB,GAAG,CAACsB,IAAI,EAAEd,SAAS,GAAGK,KAAK,CAACW,CAAC,CAAC;;EAEzC;EACA,MAAMC,QAAQ,GAAI9C,CAAC,CAAC+C,GAAG,CAACjB,aAAa,CAAC,GAAGQ,GAAG,GAAI,IAAI;;EAEpD;EACAK,IAAI,GAAG1C,GAAG,CAACyB,GAAG,CAACiB,IAAI,EAAEV,cAAc,GAAG,IAAI,CAAC;EAC3C,IAAIe,UAAU,GAAG3C,eAAe,CAAC6B,KAAK,CAACe,GAAG,EAAEX,GAAG,IAAIL,cAAc,GAAG,CAAC,CAAC,CAAC;;EAEvE;EACA,MAAMiB,aAAa,GAAGjD,GAAG,CAACyC,UAAU,CAClCV,gBAAgB,EAChBD,gBAAgB,EAChBU,YACF,CAAC;EACD,MAAMU,UAAU,GAAG7C,QAAQ,CAAC0C,UAAU,EAAEE,aAAa,CAAC;EACtDF,UAAU,GAAGzC,eAAe,CAACyC,UAAU,EAAEG,UAAU,CAAC;EAEpDjB,KAAK,GAAGlC,CAAC,CAACc,KAAK,CAACb,GAAG,CAACmD,GAAG,CAAClB,KAAK,CAACe,GAAG,EAAED,UAAU,EAAEF,QAAQ,CAAC,EAAEZ,KAAK,CAACW,CAAC,CAAC;EAClE,MAAMQ,SAAS,GAAGnB,KAAK;EACvB,MAAMoB,UAAU,GAAGX,IAAI;EAEvB,MAAMY,QAAQ,GAAGhD,eAAe,CAAC8C,SAAS,CAACJ,GAAG,EAAEK,UAAU,CAAC;EAC3DpB,KAAK,GAAGlC,CAAC,CAACc,KAAK,CAACb,GAAG,CAACmD,GAAG,CAAClB,KAAK,CAACe,GAAG,EAAEM,QAAQ,EAAEZ,IAAI,CAAC,EAAET,KAAK,CAACW,CAAC,CAAC;EAE5D,OAAOX,KAAK;AACd,CAAC,CAAC;AAEF,OAAO,MAAMsB,gBAAgB,GAAGzD,IAAI,CAAC,WAAW,CAAC,CAACU,UAAU,CAAC;EAC3DC,EAAE,EAAE;IAAEC,EAAE,EAAEX,CAAC,CAACY;EAAM,CAAC;EACnBC,GAAG,EAAEb,CAAC,CAACc;AACT,CAAC,CAAC,CAAEC,KAAK,IAAK;EACZ,MAAMC,QAAQ,GAAGhB,CAAC,CAACY,KAAK,CAACG,KAAK,CAACJ,EAAE,CAACM,CAAC,EAAE,GAAG,GAAGF,KAAK,CAACJ,EAAE,CAACO,CAAC,CAAC;EACtD,MAAMP,EAAE,GAAGX,CAAC,CAACY,KAAK,CAACG,KAAK,CAACJ,EAAE,CAACM,CAAC,EAAE,GAAG,GAAGF,KAAK,CAACJ,EAAE,CAACO,CAAC,CAAC;EAChD,MAAMC,cAAc,GAAGlB,GAAG,CAACmB,GAAG,CAACnB,GAAG,CAACoB,GAAG,CAACV,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC;EAErD,MAAMW,GAAG,GAAGpB,6BAA6B,CAACqB,CAAC,CAACC,GAAG;EAC/C,MAAMC,MAAM,GAAGxB,GAAG,CAACyB,GAAG,CAAC1B,CAAC,CAACY,KAAK,CAAC,GAAG,CAAC,EAAEZ,CAAC,CAACY,KAAK,CAACU,GAAG,CAACL,CAAC,EAAEK,GAAG,CAACJ,CAAC,CAAC,CAAC,CAAC,CAAC;;EAE7D,MAAMuC,IAAI,GAAGrD,2BAA2B,CAACmB,CAAC,CAACI,YAAY;EACvD,MAAMC,cAAc,GAAG6B,IAAI,CAAC7B,cAAc,CAAC,CAAC;EAC5C,MAAMC,SAAS,GAAG4B,IAAI,CAAC5B,SAAS,CAAC,CAAC;EAClC,MAAMC,aAAa,GAAG2B,IAAI,CAAC3B,aAAa,CAAC,CAAC;EAC1C,MAAME,gBAAgB,GAAGyB,IAAI,CAACzB,gBAAgB,CAAC,CAAC;EAChD,MAAMD,gBAAgB,GAAG0B,IAAI,CAAC1B,gBAAgB,CAAC,CAAC;EAChD,MAAME,cAAc,GAAGwB,IAAI,CAACxB,cAAc,GAAG,GAAG,CAAC,CAAC;;EAElD,IAAIC,KAAK,GAAGjC,GAAG,CAACkC,aAAa,CAC3BhC,sBAAsB,CAACoB,CAAC,CAACa,OAAO,EAChCjC,sBAAsB,CAACoB,CAAC,CAACc,OAAO,EAChCrB,QACF,CAAC;EAED,MAAM0C,IAAI,GAAGzD,GAAG,CAACuC,QAAQ,CAACf,MAAM,EAAEN,cAAc,CAAC;EACjD,MAAMwC,MAAM,GAAG1D,GAAG,CAACsC,GAAG,CAAC,CAACmB,IAAI,CAAC,CAAC,CAAC;EAC/B,MAAME,YAAY,GAAG3D,GAAG,CAACoB,GAAG,CAC1BsC,MAAM,EACN1D,GAAG,CAACyB,GAAG,CAAC,GAAG,EAAEzB,GAAG,CAAC4D,GAAG,CAAC,GAAG,EAAEjC,cAAc,CAAC,CAC3C,CAAC;EACD,MAAMkC,YAAY,GAAG7D,GAAG,CAACyC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAEkB,YAAY,CAAC,CAAC,CAAC;EAC7D,MAAMG,QAAQ,GAAG9D,GAAG,CAAC+D,KAAK,CAACnC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC;EACjD,MAAMoC,QAAQ,GAAGhE,GAAG,CAACiE,GAAG,CAACJ,YAAY,EAAE7D,GAAG,CAACkE,GAAG,CAAC,GAAG,EAAEJ,QAAQ,CAAC,CAAC,CAAC,CAAC;;EAEhE,MAAMK,UAAU,GAAGnE,GAAG,CAACoB,GAAG,CAAC4C,QAAQ,EAAE/B,KAAK,CAACW,CAAC,CAAC,CAAC,CAAC;EAC/C,MAAMwB,UAAU,GAAGhE,eAAe,CAAC6B,KAAK,CAACe,GAAG,EAAEmB,UAAU,CAAC;EAEzD,MAAME,IAAI,GAAGrE,GAAG,CAAC+D,KAAK,CAACI,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC;EAC5C,MAAMG,QAAQ,GAAGtE,GAAG,CAACmD,GAAG,CAACpB,gBAAgB,EAAED,gBAAgB,EAAEuC,IAAI,CAAC;EAClE,MAAME,UAAU,GAAGlE,QAAQ,CAAC+D,UAAU,EAAEE,QAAQ,CAAC;EAEjD,MAAME,YAAY,GAAGxE,GAAG,CAAC+D,KAAK,CAC5B/D,GAAG,CAACoB,GAAG,CAACS,aAAa,GAAG,GAAG,EAAEsC,UAAU,CAAC,EACxC,GAAG,EACH,GACF,CAAC;EACD,MAAMM,WAAW,GAAGzE,GAAG,CAACmD,GAAG,CAAClB,KAAK,CAACe,GAAG,EAAEuB,UAAU,EAAEC,YAAY,CAAC;EAEhE,MAAME,aAAa,GAAG1E,GAAG,CAAC+D,KAAK,CAAC/B,cAAc,EAAE,GAAG,EAAE,KAAK,CAAC;EAC3D,MAAM2C,UAAU,GAAG3E,GAAG,CAACoB,GAAG,CAACrB,CAAC,CAAC4C,KAAK,CAACwB,UAAU,CAAC,EAAEO,aAAa,CAAC;EAE9D,MAAME,WAAW,GAAGtE,eAAe,CAACmE,WAAW,EAAEE,UAAU,CAAC;EAC5D,MAAME,QAAQ,GAAG7E,GAAG,CAACmD,GAAG,CAACsB,WAAW,EAAEG,WAAW,EAAE7E,CAAC,CAAC4C,KAAK,CAACwB,UAAU,CAAC,CAAC;;EAEvE;EACA,MAAMW,MAAM,GAAG9E,GAAG,CAAC+D,KAAK,CAACc,QAAQ,EAAE9E,CAAC,CAAC4C,KAAK,CAAC,GAAG,CAAC,EAAE5C,CAAC,CAAC4C,KAAK,CAAC,GAAG,CAAC,CAAC;EAE9D,OAAO5C,CAAC,CAACc,KAAK,CAACiE,MAAM,EAAE7C,KAAK,CAACW,CAAC,CAAC;AACjC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["tgpu","d","std","rotationBindGroupLayout","textureBindGroupLayout","glareBindGroupLayout","glareColorShift","hueShift","overlayChannels","glareFragment","fragmentFn","in","uv","vec2f","out","vec4f","input","texcoord","x","y","centeredCoords","sub","mul","rot","$","vec","center","add","glareOptions","glareIntensity","glowPower","hueBlendPower","hueShiftAngleMax","hueShiftAngleMin","lightIntensity","color","textureSample","texture","sampler","dst","exp","distance","distToCenter","smoothstep","glow","vec3f","w","hueBlend","f32","shiftedRGB","xyz","hueShiftAngle","shiftedHue","mix","baseColor","blendColor","combined","newGlareFragment","opts","dist","radial","radialScaled","max","influenceRaw","curveExp","clamp","glowMask","pow","div","maskedGlow","boostedRGB","hueT","hueAngle","hueShifted","hueMixWeight","chromaMixed","glareStrength","glareLayer","overlaidRGB","finalRGB","outRGB"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/glareFragment.ts"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  import tgpu from 'typegpu';
4
4
  import * as d from 'typegpu/data';
5
5
  import * as std from 'typegpu/std';
6
- import { rotationValuesBindGroupLayout, textureBindGroupLayout } from "../bindGroupLayouts.js";
6
+ import { rotationBindGroupLayout, textureBindGroupLayout } from "../bindGroupLayouts.js";
7
7
  import { hueShift } from "../tgpuUtils.js";
8
8
  import { waveCallbackSlot } from "../../enums/waveCallback.js";
9
9
  export const holoFragment = tgpu['~unstable'].fragmentFn({
@@ -14,20 +14,15 @@ export const holoFragment = tgpu['~unstable'].fragmentFn({
14
14
  })(input => {
15
15
  const texcoord = d.vec2f(input.uv.x, 1.0 - input.uv.y);
16
16
  const uv = texcoord;
17
- const centeredCoords = std.sub(std.mul(uv, 2.0), 1.0);
18
17
  const textureColor = std.textureSample(textureBindGroupLayout.$.texture, textureBindGroupLayout.$.sampler, texcoord);
19
- const rot = rotationValuesBindGroupLayout.$.vec;
20
- const center = std.add(d.vec2f(0.0), d.vec2f(rot.x, rot.y));
18
+ const rot = rotationBindGroupLayout.$.vec;
21
19
  const wave = waveCallbackSlot.$(rot.xy);
22
20
  const waveX = wave.x;
23
21
  const waveY = wave.y;
24
- const band = std.add(waveX, waveY);
25
- const dist = std.distance(centeredCoords, center);
26
- const intensity = std.clamp(1.0 - dist, 0.0, 1.0);
27
- const falloff = std.pow(std.exp(-dist), 1.0 / intensity);
22
+ const band = std.add(0.2 * waveX * uv.x, 2 * waveY * uv.y);
28
23
  const hueAngle = std.mul(std.abs(band), 10 * Math.PI * rot.x / 3);
29
24
  const rainbowColor = hueShift(d.vec3f(1.0, 1.0, 1.0), hueAngle);
30
- const finalColor = std.mul(rainbowColor, falloff);
31
- return d.vec4f(finalColor, 1 - falloff * dist * textureColor.w);
25
+ const finalColor = std.mul(rainbowColor, 1.0);
26
+ return d.vec4f(finalColor, 0.7 * textureColor.w);
32
27
  });
33
28
  //# sourceMappingURL=holoFragment.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["tgpu","d","std","rotationValuesBindGroupLayout","textureBindGroupLayout","hueShift","waveCallbackSlot","holoFragment","fragmentFn","in","uv","vec2f","out","vec4f","input","texcoord","x","y","centeredCoords","sub","mul","textureColor","textureSample","$","texture","sampler","rot","vec","center","add","wave","xy","waveX","waveY","band","dist","distance","intensity","clamp","falloff","pow","exp","hueAngle","abs","Math","PI","rainbowColor","vec3f","finalColor","w"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/holoFragment.ts"],"mappings":";;AAAA,OAAOA,IAAI,MAAM,SAAS;AAC1B,OAAO,KAAKC,CAAC,MAAM,cAAc;AACjC,OAAO,KAAKC,GAAG,MAAM,aAAa;AAClC,SACEC,6BAA6B,EAC7BC,sBAAsB,QACjB,wBAAqB;AAC5B,SAASC,QAAQ,QAAQ,iBAAc;AACvC,SAASC,gBAAgB,QAAQ,6BAA0B;AAE3D,OAAO,MAAMC,YAAY,GAAGP,IAAI,CAAC,WAAW,CAAC,CAACQ,UAAU,CAAC;EACvDC,EAAE,EAAE;IAAEC,EAAE,EAAET,CAAC,CAACU;EAAM,CAAC;EACnBC,GAAG,EAAEX,CAAC,CAACY;AACT,CAAC,CAAC,CAAEC,KAAK,IAAK;EACZ,MAAMC,QAAQ,GAAGd,CAAC,CAACU,KAAK,CAACG,KAAK,CAACJ,EAAE,CAACM,CAAC,EAAE,GAAG,GAAGF,KAAK,CAACJ,EAAE,CAACO,CAAC,CAAC;EACtD,MAAMP,EAAE,GAAGK,QAAQ;EACnB,MAAMG,cAAc,GAAGhB,GAAG,CAACiB,GAAG,CAACjB,GAAG,CAACkB,GAAG,CAACV,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC;EAErD,MAAMW,YAAY,GAAGnB,GAAG,CAACoB,aAAa,CACpClB,sBAAsB,CAACmB,CAAC,CAACC,OAAO,EAChCpB,sBAAsB,CAACmB,CAAC,CAACE,OAAO,EAChCV,QACF,CAAC;EAED,MAAMW,GAAG,GAAGvB,6BAA6B,CAACoB,CAAC,CAACI,GAAG;EAC/C,MAAMC,MAAM,GAAG1B,GAAG,CAAC2B,GAAG,CAAC5B,CAAC,CAACU,KAAK,CAAC,GAAG,CAAC,EAAEV,CAAC,CAACU,KAAK,CAACe,GAAG,CAACV,CAAC,EAAEU,GAAG,CAACT,CAAC,CAAC,CAAC;EAE3D,MAAMa,IAAI,GAAGxB,gBAAgB,CAACiB,CAAC,CAACG,GAAG,CAACK,EAAE,CAAC;EACvC,MAAMC,KAAK,GAAGF,IAAI,CAACd,CAAC;EACpB,MAAMiB,KAAK,GAAGH,IAAI,CAACb,CAAC;EAEpB,MAAMiB,IAAI,GAAGhC,GAAG,CAAC2B,GAAG,CAACG,KAAK,EAAEC,KAAK,CAAC;EAElC,MAAME,IAAI,GAAGjC,GAAG,CAACkC,QAAQ,CAAClB,cAAc,EAAEU,MAAM,CAAC;EACjD,MAAMS,SAAS,GAAGnC,GAAG,CAACoC,KAAK,CAAC,GAAG,GAAGH,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;EACjD,MAAMI,OAAO,GAAGrC,GAAG,CAACsC,GAAG,CAACtC,GAAG,CAACuC,GAAG,CAAC,CAACN,IAAI,CAAC,EAAE,GAAG,GAAGE,SAAS,CAAC;EAExD,MAAMK,QAAQ,GAAGxC,GAAG,CAACkB,GAAG,CAAClB,GAAG,CAACyC,GAAG,CAACT,IAAI,CAAC,EAAG,EAAE,GAAGU,IAAI,CAACC,EAAE,GAAGnB,GAAG,CAACV,CAAC,GAAI,CAAC,CAAC;EACnE,MAAM8B,YAAY,GAAGzC,QAAQ,CAACJ,CAAC,CAAC8C,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAEL,QAAQ,CAAC;EAC/D,MAAMM,UAAU,GAAG9C,GAAG,CAACkB,GAAG,CAAC0B,YAAY,EAAEP,OAAO,CAAC;EAEjD,OAAOtC,CAAC,CAACY,KAAK,CAACmC,UAAU,EAAE,CAAC,GAAGT,OAAO,GAAGJ,IAAI,GAAGd,YAAY,CAAC4B,CAAC,CAAC;AACjE,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["tgpu","d","std","rotationBindGroupLayout","textureBindGroupLayout","hueShift","waveCallbackSlot","holoFragment","fragmentFn","in","uv","vec2f","out","vec4f","input","texcoord","x","y","textureColor","textureSample","$","texture","sampler","rot","vec","wave","xy","waveX","waveY","band","add","hueAngle","mul","abs","Math","PI","rainbowColor","vec3f","finalColor","w"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/holoFragment.ts"],"mappings":";;AAAA,OAAOA,IAAI,MAAM,SAAS;AAC1B,OAAO,KAAKC,CAAC,MAAM,cAAc;AACjC,OAAO,KAAKC,GAAG,MAAM,aAAa;AAClC,SACEC,uBAAuB,EACvBC,sBAAsB,QACjB,wBAAqB;AAC5B,SAASC,QAAQ,QAAQ,iBAAc;AACvC,SAASC,gBAAgB,QAAQ,6BAA0B;AAE3D,OAAO,MAAMC,YAAY,GAAGP,IAAI,CAAC,WAAW,CAAC,CAACQ,UAAU,CAAC;EACvDC,EAAE,EAAE;IAAEC,EAAE,EAAET,CAAC,CAACU;EAAM,CAAC;EACnBC,GAAG,EAAEX,CAAC,CAACY;AACT,CAAC,CAAC,CAAEC,KAAK,IAAK;EACZ,MAAMC,QAAQ,GAAGd,CAAC,CAACU,KAAK,CAACG,KAAK,CAACJ,EAAE,CAACM,CAAC,EAAE,GAAG,GAAGF,KAAK,CAACJ,EAAE,CAACO,CAAC,CAAC;EACtD,MAAMP,EAAE,GAAGK,QAAQ;EACnB,MAAMG,YAAY,GAAGhB,GAAG,CAACiB,aAAa,CACpCf,sBAAsB,CAACgB,CAAC,CAACC,OAAO,EAChCjB,sBAAsB,CAACgB,CAAC,CAACE,OAAO,EAChCP,QACF,CAAC;EACD,MAAMQ,GAAG,GAAGpB,uBAAuB,CAACiB,CAAC,CAACI,GAAG;EAEzC,MAAMC,IAAI,GAAGnB,gBAAgB,CAACc,CAAC,CAACG,GAAG,CAACG,EAAE,CAAC;EACvC,MAAMC,KAAK,GAAGF,IAAI,CAACT,CAAC;EACpB,MAAMY,KAAK,GAAGH,IAAI,CAACR,CAAC;EAEpB,MAAMY,IAAI,GAAG3B,GAAG,CAAC4B,GAAG,CAAC,GAAG,GAAGH,KAAK,GAAGjB,EAAE,CAACM,CAAC,EAAE,CAAC,GAAGY,KAAK,GAAGlB,EAAE,CAACO,CAAC,CAAC;EAE1D,MAAMc,QAAQ,GAAG7B,GAAG,CAAC8B,GAAG,CAAC9B,GAAG,CAAC+B,GAAG,CAACJ,IAAI,CAAC,EAAG,EAAE,GAAGK,IAAI,CAACC,EAAE,GAAGZ,GAAG,CAACP,CAAC,GAAI,CAAC,CAAC;EACnE,MAAMoB,YAAY,GAAG/B,QAAQ,CAACJ,CAAC,CAACoC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAEN,QAAQ,CAAC;EAC/D,MAAMO,UAAU,GAAGpC,GAAG,CAAC8B,GAAG,CAACI,YAAY,EAAE,GAAG,CAAC;EAE7C,OAAOnC,CAAC,CAACY,KAAK,CAACyB,UAAU,EAAE,GAAG,GAAGpB,YAAY,CAACqB,CAAC,CAAC;AAClD,CAAC,CAAC","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  import tgpu from 'typegpu';
4
4
  import * as d from 'typegpu/data';
5
5
  import * as std from 'typegpu/std';
6
- import { textureBindGroupLayout, maskTextureBindGroupLayout, rotationValuesBindGroupLayout, glareOptionsBindGroupLayout } from "../bindGroupLayouts.js";
6
+ import { textureBindGroupLayout, maskTextureBindGroupLayout, rotationBindGroupLayout, glareBindGroupLayout } from "../bindGroupLayouts.js";
7
7
  import { hueShift } from "../tgpuUtils.js";
8
8
  export const reverseHoloFragment = tgpu['~unstable'].fragmentFn({
9
9
  in: {
@@ -14,10 +14,10 @@ export const reverseHoloFragment = tgpu['~unstable'].fragmentFn({
14
14
  const texcoord = d.vec2f(input.uv.x, 1.0 - input.uv.y);
15
15
  const uv = texcoord;
16
16
  const centeredCoords = std.sub(std.mul(uv, 2.0), 1.0);
17
- const rot = rotationValuesBindGroupLayout.$.vec;
17
+ const rot = rotationBindGroupLayout.$.vec;
18
18
  const center = std.add(d.vec2f(0.0), d.vec2f(rot.x, rot.y)); // center from device orientation/touch
19
19
 
20
- const opts = glareOptionsBindGroupLayout.$.glareOptions;
20
+ const opts = glareBindGroupLayout.$.glareOptions;
21
21
  const glareIntensity = opts.glareIntensity;
22
22
  const glowPower = opts.glowPower;
23
23
  const hueBlendPower = opts.hueBlendPower;
@@ -1 +1 @@
1
- {"version":3,"names":["tgpu","d","std","textureBindGroupLayout","maskTextureBindGroupLayout","rotationValuesBindGroupLayout","glareOptionsBindGroupLayout","hueShift","reverseHoloFragment","fragmentFn","in","uv","vec2f","out","vec4f","input","texcoord","x","y","centeredCoords","sub","mul","rot","$","vec","center","add","opts","glareOptions","glareIntensity","glowPower","hueBlendPower","hueShiftAngleMin","hueShiftAngleMax","lightIntensity","cardColor","textureSample","texture","sampler","holoMaskColor","dist","distance","rFalloff","exp","scaledRadial","max","influence","smoothstep","curvePower","clamp","glowMask","pow","div","holoFactor","w","maskedGlow","hueAmount","mix","sparkleHue","xyz","hueMixAmt","chromaMix","shineStrength","shineLayer"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/reverseHoloFragment.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["tgpu","d","std","textureBindGroupLayout","maskTextureBindGroupLayout","rotationBindGroupLayout","glareBindGroupLayout","hueShift","reverseHoloFragment","fragmentFn","in","uv","vec2f","out","vec4f","input","texcoord","x","y","centeredCoords","sub","mul","rot","$","vec","center","add","opts","glareOptions","glareIntensity","glowPower","hueBlendPower","hueShiftAngleMin","hueShiftAngleMax","lightIntensity","cardColor","textureSample","texture","sampler","holoMaskColor","dist","distance","rFalloff","exp","scaledRadial","max","influence","smoothstep","curvePower","clamp","glowMask","pow","div","holoFactor","w","maskedGlow","hueAmount","mix","sparkleHue","xyz","hueMixAmt","chromaMix","shineStrength","shineLayer"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/reverseHoloFragment.ts"],"mappings":"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","ignoreList":[]}
@@ -1,18 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  import { maskTextureBindGroupLayout, textureBindGroupLayout } from "./bindGroupLayouts.js";
4
- import { createBindGroupPair, createBindGroupPairs } from "../types/typeUtils.js";
5
4
  import mainVertex from "./vertexShaders/mainVertex.js";
6
5
  import maskFragment from "./fragmentShaders/maskFragment.js";
7
6
  import { reverseHoloFragment } from "./fragmentShaders/reverseHoloFragment.js";
8
7
  import { holoFragment } from "./fragmentShaders/holoFragment.js";
9
8
  import { WAVE_CALLBACKS, waveCallbackFn, waveCallbackSlot } from "../enums/waveCallback.js";
10
- export const attachBindGroups = (pipeline, bindGroupPairs) => {
11
- for (const pair of bindGroupPairs) {
12
- pipeline = pipeline.with(pair.layout, pair.group);
13
- }
14
- return pipeline;
15
- };
9
+ export const attachBindGroups = (pipeline, bindGroups) => bindGroups.reduce((acc, bindGroup) => acc.with(bindGroup.layout, bindGroup), pipeline);
16
10
  export const blend = {
17
11
  color: {
18
12
  srcFactor: 'one-minus-src-alpha',
@@ -37,65 +31,57 @@ export const attachBindGroupsToPass = (pass, bindGroupPairs) => {
37
31
  }
38
32
  return pass;
39
33
  };
40
- export const createMaskPipeline = (root, maskTexture, BGP, sampler, presentationFormat) => {
41
- if (!maskTexture) return null;
34
+ export const createMaskPipeline = (root, maskTexture, bindGroups, sampler, presentationFormat) => {
35
+ if (!maskTexture) return;
42
36
  const maskTextureBindGroup = root.createBindGroup(maskTextureBindGroupLayout, {
43
37
  texture: root.unwrap(maskTexture).createView(),
44
38
  sampler
45
39
  });
46
- const maskBGP = createBindGroupPairs([maskTextureBindGroupLayout], [maskTextureBindGroup]);
47
- for (let i = 0; i < BGP.length; i++) {
48
- maskBGP.push(BGP[i]);
40
+ const maskBGP = [maskTextureBindGroup];
41
+ for (let i = 0; i < bindGroups.length; i++) {
42
+ maskBGP.push(bindGroups[i]);
49
43
  }
50
44
  let maskPipeline = root['~unstable'].withVertex(mainVertex, {}).withFragment(maskFragment, getDefaultTarget(presentationFormat, blend)).createPipeline();
51
45
  maskPipeline = attachBindGroups(maskPipeline, maskBGP);
52
46
  return maskPipeline;
53
47
  };
54
- export const createReverseHoloPipeline = (root, texture, BGP, sampler, presentationFormat) => {
55
- if (!texture) return null;
48
+ export const createReverseHoloPipeline = (root, texture, bindGroups, sampler, presentationFormat) => {
49
+ if (!texture) return;
56
50
  const reverseHoloBindGroup = root.createBindGroup(maskTextureBindGroupLayout, {
57
51
  texture: root.unwrap(texture).createView(),
58
52
  sampler
59
53
  });
60
- const reverseHoloBGP = BGP;
61
- reverseHoloBGP.push(createBindGroupPair(maskTextureBindGroupLayout, reverseHoloBindGroup));
54
+ const reverseHoloBGP = [...bindGroups, reverseHoloBindGroup];
62
55
  let reverseHoloPipeline = root['~unstable'].withVertex(mainVertex, {}).withFragment(reverseHoloFragment, getDefaultTarget(presentationFormat, blend)).createPipeline();
63
56
  reverseHoloPipeline = attachBindGroups(reverseHoloPipeline, reverseHoloBGP);
64
57
  return reverseHoloPipeline;
65
58
  };
66
- export const createRainbowHoloPipeline = (root, texture, BGP, sampler, presentationFormat) => {
67
- if (!texture) return null;
59
+ export const createRainbowHoloPipeline = (root, texture, bindGroups, sampler, presentationFormat) => {
60
+ if (!texture) return;
68
61
  const imageTextureBindGroup = root.createBindGroup(textureBindGroupLayout, {
69
62
  texture: root.unwrap(texture).createView(),
70
63
  sampler
71
64
  });
72
- const texBGP = createBindGroupPair(textureBindGroupLayout, imageTextureBindGroup);
73
65
  let rainbowHoloPipeline = root['~unstable'].with(waveCallbackSlot, waveCallbackFn(WAVE_CALLBACKS.default)).withVertex(mainVertex, {}).withFragment(holoFragment, getDefaultTarget(presentationFormat, blend)).createPipeline();
74
- rainbowHoloPipeline = attachBindGroups(rainbowHoloPipeline, [...BGP, texBGP]);
66
+ rainbowHoloPipeline = attachBindGroups(rainbowHoloPipeline, [...bindGroups, imageTextureBindGroup]);
75
67
  return rainbowHoloPipeline;
76
68
  };
77
- export const pipelineRenderFunction = (root, pipelines, attachments, view, isInSinglePass) => {
78
- if (isInSinglePass) {
79
- root['~unstable'].beginRenderPass({
80
- colorAttachments: [{
81
- view: view,
82
- clearValue: [0, 0, 0, 0],
83
- loadOp: 'clear',
84
- storeOp: 'store'
85
- }]
86
- }, pass => {
87
- for (let i = 0; i < pipelines.length; i++) {
88
- pass.setPipeline(pipelines[i]);
89
- pass.draw(6);
90
- }
91
- });
92
- root['~unstable'].flush();
93
- } else {
94
- for (let i = 0; i < pipelines.length; i++) {
95
- const attachment = attachments[i];
96
- if (!attachment) return;
97
- pipelines[i].withColorAttachment(attachment).draw(6);
69
+ export function renderPipelinesInSinglePass(root, pipelines, view) {
70
+ const unstableRoot = root['~unstable'];
71
+ const attachment = {
72
+ view,
73
+ clearValue: [0, 0, 0, 0],
74
+ loadOp: 'clear',
75
+ storeOp: 'store'
76
+ };
77
+ unstableRoot.beginRenderPass({
78
+ colorAttachments: [attachment]
79
+ }, pass => {
80
+ for (const pipeline of pipelines) {
81
+ pass.setPipeline(pipeline);
82
+ pass.draw(6);
98
83
  }
99
- }
100
- };
84
+ });
85
+ unstableRoot.flush();
86
+ }
101
87
  //# sourceMappingURL=pipelineSetups.js.map