react-native-shine 0.6.0 → 0.7.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.
- package/lib/module/components/Content.js +41 -27
- package/lib/module/components/Content.js.map +1 -1
- package/lib/module/components/ShineGroup.js +16 -8
- package/lib/module/components/ShineGroup.js.map +1 -1
- package/lib/module/enums/colorHighlightPresets.js +24 -0
- package/lib/module/enums/colorHighlightPresets.js.map +1 -0
- package/lib/module/enums/effectPresets.js +16 -0
- package/lib/module/enums/effectPresets.js.map +1 -0
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/shaders/bindGroupLayouts.js +19 -15
- package/lib/module/shaders/bindGroupLayouts.js.map +1 -1
- package/lib/module/shaders/bindGroupUtils.js +16 -7
- package/lib/module/shaders/bindGroupUtils.js.map +1 -1
- package/lib/module/shaders/fragmentShaders/colorMaskFragment.js +53 -41
- package/lib/module/shaders/fragmentShaders/colorMaskFragment.js.map +1 -1
- package/lib/module/shaders/fragmentShaders/glareFragment.js +11 -8
- package/lib/module/shaders/fragmentShaders/glareFragment.js.map +1 -1
- package/lib/module/shaders/fragmentShaders/holoFragment.js +6 -5
- package/lib/module/shaders/fragmentShaders/holoFragment.js.map +1 -1
- package/lib/module/shaders/fragmentShaders/reverseHoloFragment.js +12 -8
- package/lib/module/shaders/fragmentShaders/reverseHoloFragment.js.map +1 -1
- package/lib/module/types/size.js +2 -0
- package/lib/module/types/typeUtils.js +97 -51
- package/lib/module/types/typeUtils.js.map +1 -1
- package/lib/module/types/vector.js +2 -0
- package/lib/module/utils/vector.js +6 -6
- package/lib/typescript/src/components/Content.d.ts +11 -8
- package/lib/typescript/src/components/Content.d.ts.map +1 -1
- package/lib/typescript/src/components/ShineGroup.d.ts +1 -1
- package/lib/typescript/src/components/ShineGroup.d.ts.map +1 -1
- package/lib/typescript/src/enums/colorHighlightPresets.d.ts +12 -0
- package/lib/typescript/src/enums/colorHighlightPresets.d.ts.map +1 -0
- package/lib/typescript/src/enums/effectPresets.d.ts +14 -0
- package/lib/typescript/src/enums/effectPresets.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +2 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/shaders/bindGroupLayouts.d.ts +93 -49
- package/lib/typescript/src/shaders/bindGroupLayouts.d.ts.map +1 -1
- package/lib/typescript/src/shaders/bindGroupUtils.d.ts +41 -48
- package/lib/typescript/src/shaders/bindGroupUtils.d.ts.map +1 -1
- package/lib/typescript/src/shaders/fragmentShaders/colorMaskFragment.d.ts.map +1 -1
- package/lib/typescript/src/shaders/fragmentShaders/glareFragment.d.ts.map +1 -1
- package/lib/typescript/src/shaders/fragmentShaders/reverseHoloFragment.d.ts.map +1 -1
- package/lib/typescript/src/types/typeUtils.d.ts +32 -3
- package/lib/typescript/src/types/typeUtils.d.ts.map +1 -1
- package/lib/typescript/src/types/types.d.ts +31 -4
- package/lib/typescript/src/types/types.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/components/Content.tsx +62 -34
- package/src/components/ShineGroup.tsx +16 -8
- package/src/enums/colorHighlightPresets.ts +33 -0
- package/src/enums/effectPresets.ts +11 -0
- package/src/index.tsx +2 -0
- package/src/shaders/bindGroupLayouts.ts +26 -10
- package/src/shaders/bindGroupUtils.ts +19 -26
- package/src/shaders/fragmentShaders/colorMaskFragment.ts +64 -45
- package/src/shaders/fragmentShaders/glareFragment.ts +10 -6
- package/src/shaders/fragmentShaders/holoFragment.ts +5 -5
- package/src/shaders/fragmentShaders/reverseHoloFragment.ts +12 -7
- package/src/types/typeUtils.ts +100 -57
- package/src/types/types.ts +36 -4
|
@@ -12,61 +12,73 @@ const colorMaskFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tgpu['~u
|
|
|
12
12
|
out: d.vec4f
|
|
13
13
|
})(($ => (globalThis.__TYPEGPU_META__ ??= new WeakMap()).set($.f = input => {
|
|
14
14
|
const texcoord = d.vec2f(input.uv.x, 1.0 - input.uv.y);
|
|
15
|
-
const mask = colorMaskBindGroupLayout.$.mask;
|
|
16
|
-
const maskedColor = mask.baseColor;
|
|
17
|
-
const rgbToleranceRange = mask.rgbToleranceRange;
|
|
18
|
-
const useHSV = mask.useHSV;
|
|
19
|
-
const hueToleranceRange = mask.hueToleranceRange;
|
|
20
|
-
const hueUpper = hueToleranceRange.upper;
|
|
21
|
-
const hueLower = hueToleranceRange.lower;
|
|
22
|
-
const brightnessTolerance = mask.brightnessTolerance;
|
|
23
|
-
const saturationTolerance = mask.saturationTolerance;
|
|
24
|
-
const lowSaturationThreshold = mask.lowSaturationThreshold;
|
|
25
|
-
const lowBrightnessThreshold = mask.lowBrightnessThreshold;
|
|
26
|
-
const colorMaskDebug = mask.debugMode;
|
|
27
15
|
let color = std.textureSample(textureBindGroupLayout.$.texture, textureBindGroupLayout.$.sampler, texcoord);
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const maskedHSV = rgbToHSV(maskedColor);
|
|
16
|
+
const masks = colorMaskBindGroupLayout.$.colorMasks.masks;
|
|
17
|
+
const usedMaskCount = colorMaskBindGroupLayout.$.colorMasks.usedMaskCount;
|
|
18
|
+
const reverseHighlight = colorMaskBindGroupLayout.$.colorMasks.reverseHighlight;
|
|
19
|
+
let colorMaskDebug = d.u32(0);
|
|
20
|
+
let cumulativeMaskCheck = d.u32(0);
|
|
34
21
|
const colorHSV = rgbToHSV(color.xyz);
|
|
35
|
-
let hueDiff = std.sub(colorHSV.x, maskedHSV.x);
|
|
36
|
-
hueDiff = std.select(hueDiff, std.sub(hueDiff, 1.0), hueDiff > d.f32(0.5));
|
|
37
|
-
hueDiff = std.select(hueDiff, std.add(hueDiff, 1.0), hueDiff < d.f32(-0.5));
|
|
38
|
-
const lowerHueCheck = hueDiff >= -hueLower;
|
|
39
|
-
const upperHueCheck = hueDiff <= hueUpper;
|
|
40
|
-
let hueCheck = lowerHueCheck && upperHueCheck;
|
|
41
|
-
const saturationDiff = std.abs(std.sub(colorHSV.y, maskedHSV.y));
|
|
42
|
-
const saturationCheck = saturationDiff <= saturationTolerance;
|
|
43
|
-
const brightnessDiff = std.abs(std.sub(colorHSV.z, maskedHSV.z));
|
|
44
|
-
const brightnessCheck = brightnessDiff <= brightnessTolerance;
|
|
45
|
-
const pixelIsGray = colorHSV.y < lowSaturationThreshold;
|
|
46
|
-
const targetIsGray = maskedHSV.y < lowSaturationThreshold;
|
|
47
|
-
const pixelIsBlack = colorHSV.z < lowBrightnessThreshold;
|
|
48
|
-
const targetIsBlack = maskedHSV.z < lowBrightnessThreshold;
|
|
49
22
|
|
|
50
|
-
//
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
23
|
+
//TODO: optimize this more
|
|
24
|
+
for (let i = 0; i < 16; i++) {
|
|
25
|
+
if (usedMaskCount <= i) break;
|
|
26
|
+
const mask = masks[i];
|
|
27
|
+
const maskedColor = mask.baseColor;
|
|
28
|
+
const rgbToleranceRange = mask.rgbToleranceRange;
|
|
29
|
+
const useHSV = mask.useHSV;
|
|
30
|
+
const hueToleranceRange = mask.hueToleranceRange;
|
|
31
|
+
const hueUpper = hueToleranceRange.upper;
|
|
32
|
+
const hueLower = hueToleranceRange.lower;
|
|
33
|
+
const brightnessTolerance = mask.brightnessTolerance;
|
|
34
|
+
const saturationTolerance = mask.saturationTolerance;
|
|
35
|
+
const lowSaturationThreshold = mask.lowSaturationThreshold;
|
|
36
|
+
const lowBrightnessThreshold = mask.lowBrightnessThreshold;
|
|
37
|
+
const maskedColorLower = std.sub(maskedColor, rgbToleranceRange.lower);
|
|
38
|
+
const maskedColorUpper = std.add(maskedColor, rgbToleranceRange.upper);
|
|
39
|
+
const upperCheck = std.all(std.le(color.xyz, maskedColorUpper));
|
|
40
|
+
const lowerCheck = std.all(std.ge(color.xyz, maskedColorLower));
|
|
41
|
+
const rgbCheck = upperCheck && lowerCheck;
|
|
42
|
+
const maskedHSV = rgbToHSV(maskedColor);
|
|
43
|
+
let hueDiff = std.sub(colorHSV.x, maskedHSV.x);
|
|
44
|
+
hueDiff = std.select(hueDiff, std.sub(hueDiff, 1.0), hueDiff > d.f32(0.5));
|
|
45
|
+
hueDiff = std.select(hueDiff, std.add(hueDiff, 1.0), hueDiff < d.f32(-0.5));
|
|
46
|
+
const lowerHueCheck = hueDiff >= -hueLower;
|
|
47
|
+
const upperHueCheck = hueDiff <= hueUpper;
|
|
48
|
+
let hueCheck = lowerHueCheck && upperHueCheck;
|
|
49
|
+
const saturationDiff = std.abs(std.sub(colorHSV.y, maskedHSV.y));
|
|
50
|
+
const saturationCheck = saturationDiff <= saturationTolerance;
|
|
51
|
+
const brightnessDiff = std.abs(std.sub(colorHSV.z, maskedHSV.z));
|
|
52
|
+
const brightnessCheck = brightnessDiff <= brightnessTolerance;
|
|
53
|
+
const pixelIsGray = colorHSV.y < lowSaturationThreshold;
|
|
54
|
+
const targetIsGray = maskedHSV.y < lowSaturationThreshold;
|
|
55
|
+
const pixelIsBlack = colorHSV.z < lowBrightnessThreshold;
|
|
56
|
+
const targetIsBlack = maskedHSV.z < lowBrightnessThreshold;
|
|
56
57
|
|
|
58
|
+
//hue is unstable when either color is gray or black (low saturation or low brightness)
|
|
59
|
+
//TODO: investigate the '||' operator usage, it seems to severely slow down the shader?
|
|
60
|
+
const hueIsUnstable = pixelIsGray || targetIsGray || pixelIsBlack || targetIsBlack;
|
|
61
|
+
hueCheck = std.select(hueCheck, d.bool(true), hueIsUnstable);
|
|
62
|
+
const hsvCheck = hueCheck && saturationCheck && brightnessCheck;
|
|
63
|
+
const maskCheck = std.select(rgbCheck, hsvCheck, useHSV === d.u32(1));
|
|
64
|
+
cumulativeMaskCheck = cumulativeMaskCheck + d.u32(maskCheck);
|
|
65
|
+
colorMaskDebug = colorMaskDebug + mask.debugMode;
|
|
66
|
+
}
|
|
67
|
+
const maskingLogic = std.select(cumulativeMaskCheck > 0, cumulativeMaskCheck === 0, reverseHighlight === 1);
|
|
68
|
+
color = std.select(color, d.vec4f(color.xyz, 0.0), maskingLogic);
|
|
57
69
|
//debug - shows masked areas coloring them red
|
|
58
|
-
color = std.select(color, d.vec4f(1.0, 0.0, 0.0, 0.0),
|
|
70
|
+
color = std.select(color, d.vec4f(1.0, 0.0, 0.0, 0.0), maskingLogic && colorMaskDebug > 0);
|
|
59
71
|
return color;
|
|
60
72
|
}, {
|
|
61
73
|
v: 1,
|
|
62
74
|
name: void 0,
|
|
63
|
-
ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"texcoord",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[
|
|
75
|
+
ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"texcoord",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[12,"color",[6,[7,"std","textureSample"],[[7,[7,"textureBindGroupLayout","$"],"texture"],[7,[7,"textureBindGroupLayout","$"],"sampler"],"texcoord"]]],[13,"masks",[7,[7,[7,"colorMaskBindGroupLayout","$"],"colorMasks"],"masks"]],[13,"usedMaskCount",[7,[7,[7,"colorMaskBindGroupLayout","$"],"colorMasks"],"usedMaskCount"]],[13,"reverseHighlight",[7,[7,[7,"colorMaskBindGroupLayout","$"],"colorMasks"],"reverseHighlight"]],[12,"colorMaskDebug",[6,[7,"d","u32"],[[5,"0"]]]],[12,"cumulativeMaskCheck",[6,[7,"d","u32"],[[5,"0"]]]],[13,"colorHSV",[6,"rgbToHSV",[[7,"color","xyz"]]]],[14,[12,"i",[5,"0"]],[1,"i","<",[5,"16"]],[102,"++","i"],[0,[[11,[1,"usedMaskCount","<=","i"],[17]],[13,"mask",[8,"masks","i"]],[13,"maskedColor",[7,"mask","baseColor"]],[13,"rgbToleranceRange",[7,"mask","rgbToleranceRange"]],[13,"useHSV",[7,"mask","useHSV"]],[13,"hueToleranceRange",[7,"mask","hueToleranceRange"]],[13,"hueUpper",[7,"hueToleranceRange","upper"]],[13,"hueLower",[7,"hueToleranceRange","lower"]],[13,"brightnessTolerance",[7,"mask","brightnessTolerance"]],[13,"saturationTolerance",[7,"mask","saturationTolerance"]],[13,"lowSaturationThreshold",[7,"mask","lowSaturationThreshold"]],[13,"lowBrightnessThreshold",[7,"mask","lowBrightnessThreshold"]],[13,"maskedColorLower",[6,[7,"std","sub"],["maskedColor",[7,"rgbToleranceRange","lower"]]]],[13,"maskedColorUpper",[6,[7,"std","add"],["maskedColor",[7,"rgbToleranceRange","upper"]]]],[13,"upperCheck",[6,[7,"std","all"],[[6,[7,"std","le"],[[7,"color","xyz"],"maskedColorUpper"]]]]],[13,"lowerCheck",[6,[7,"std","all"],[[6,[7,"std","ge"],[[7,"color","xyz"],"maskedColorLower"]]]]],[13,"rgbCheck",[3,"upperCheck","&&","lowerCheck"]],[13,"maskedHSV",[6,"rgbToHSV",["maskedColor"]]],[12,"hueDiff",[6,[7,"std","sub"],[[7,"colorHSV","x"],[7,"maskedHSV","x"]]]],[2,"hueDiff","=",[6,[7,"std","select"],["hueDiff",[6,[7,"std","sub"],["hueDiff",[5,"1"]]],[1,"hueDiff",">",[6,[7,"d","f32"],[[5,"0.5"]]]]]]],[2,"hueDiff","=",[6,[7,"std","select"],["hueDiff",[6,[7,"std","add"],["hueDiff",[5,"1"]]],[1,"hueDiff","<",[6,[7,"d","f32"],[[4,"-",[5,"0.5"]]]]]]]],[13,"lowerHueCheck",[1,"hueDiff",">=",[4,"-","hueLower"]]],[13,"upperHueCheck",[1,"hueDiff","<=","hueUpper"]],[12,"hueCheck",[3,"lowerHueCheck","&&","upperHueCheck"]],[13,"saturationDiff",[6,[7,"std","abs"],[[6,[7,"std","sub"],[[7,"colorHSV","y"],[7,"maskedHSV","y"]]]]]],[13,"saturationCheck",[1,"saturationDiff","<=","saturationTolerance"]],[13,"brightnessDiff",[6,[7,"std","abs"],[[6,[7,"std","sub"],[[7,"colorHSV","z"],[7,"maskedHSV","z"]]]]]],[13,"brightnessCheck",[1,"brightnessDiff","<=","brightnessTolerance"]],[13,"pixelIsGray",[1,[7,"colorHSV","y"],"<","lowSaturationThreshold"]],[13,"targetIsGray",[1,[7,"maskedHSV","y"],"<","lowSaturationThreshold"]],[13,"pixelIsBlack",[1,[7,"colorHSV","z"],"<","lowBrightnessThreshold"]],[13,"targetIsBlack",[1,[7,"maskedHSV","z"],"<","lowBrightnessThreshold"]],[13,"hueIsUnstable",[3,[3,[3,"pixelIsGray","||","targetIsGray"],"||","pixelIsBlack"],"||","targetIsBlack"]],[2,"hueCheck","=",[6,[7,"std","select"],["hueCheck",[6,[7,"d","bool"],[true]],"hueIsUnstable"]]],[13,"hsvCheck",[3,[3,"hueCheck","&&","saturationCheck"],"&&","brightnessCheck"]],[13,"maskCheck",[6,[7,"std","select"],["rgbCheck","hsvCheck",[1,"useHSV","==",[6,[7,"d","u32"],[[5,"1"]]]]]]],[2,"cumulativeMaskCheck","=",[1,"cumulativeMaskCheck","+",[6,[7,"d","u32"],["maskCheck"]]]],[2,"colorMaskDebug","=",[1,"colorMaskDebug","+",[7,"mask","debugMode"]]]]]],[13,"maskingLogic",[6,[7,"std","select"],[[1,"cumulativeMaskCheck",">",[5,"0"]],[1,"cumulativeMaskCheck","==",[5,"0"]],[1,"reverseHighlight","==",[5,"1"]]]]],[2,"color","=",[6,[7,"std","select"],["color",[6,[7,"d","vec4f"],[[7,"color","xyz"],[5,"0"]]],"maskingLogic"]]],[2,"color","=",[6,[7,"std","select"],["color",[6,[7,"d","vec4f"],[[5,"1"],[5,"0"],[5,"0"],[5,"0"]]],[3,"maskingLogic","&&",[1,"colorMaskDebug",">",[5,"0"]]]]]],[10,"color"]]],"externalNames":["d","std","textureBindGroupLayout","colorMaskBindGroupLayout","rgbToHSV"]},
|
|
64
76
|
get externals() {
|
|
65
77
|
return {
|
|
66
78
|
d,
|
|
67
|
-
colorMaskBindGroupLayout,
|
|
68
79
|
std,
|
|
69
80
|
textureBindGroupLayout,
|
|
81
|
+
colorMaskBindGroupLayout,
|
|
70
82
|
rgbToHSV
|
|
71
83
|
};
|
|
72
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["tgpu","d","std","textureBindGroupLayout","colorMaskBindGroupLayout","rgbToHSV","colorMaskFragment","globalThis","__TYPEGPU_AUTONAME__","a","fragmentFn","in","uv","vec2f","out","vec4f","$","__TYPEGPU_META__","WeakMap","set","f","input","texcoord","x","y","mask","maskedColor","baseColor","rgbToleranceRange","useHSV","hueToleranceRange","hueUpper","upper","hueLower","lower","brightnessTolerance","saturationTolerance","lowSaturationThreshold","lowBrightnessThreshold","colorMaskDebug","debugMode","color","textureSample","texture","sampler","maskedColorLower","sub","maskedColorUpper","add","upperCheck","all","le","xyz","lowerCheck","ge","rgbCheck","maskedHSV","colorHSV","hueDiff","select","f32","lowerHueCheck","upperHueCheck","hueCheck","saturationDiff","abs","saturationCheck","brightnessDiff","z","brightnessCheck","pixelIsGray","targetIsGray","pixelIsBlack","targetIsBlack","hueIsUnstable","bool","hsvCheck","maskCheck","u32","v","name","ast","{\"params\":[{\"type\":\"i\",\"name\":\"input\"}],\"body\":[0,[[13,\"texcoord\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"mask\",[7,[7,\"colorMaskBindGroupLayout\",\"$\"],\"mask\"]],[13,\"maskedColor\",[7,\"mask\",\"baseColor\"]],[13,\"rgbToleranceRange\",[7,\"mask\",\"rgbToleranceRange\"]],[13,\"useHSV\",[7,\"mask\",\"useHSV\"]],[13,\"hueToleranceRange\",[7,\"mask\",\"hueToleranceRange\"]],[13,\"hueUpper\",[7,\"hueToleranceRange\",\"upper\"]],[13,\"hueLower\",[7,\"hueToleranceRange\",\"lower\"]],[13,\"brightnessTolerance\",[7,\"mask\",\"brightnessTolerance\"]],[13,\"saturationTolerance\",[7,\"mask\",\"saturationTolerance\"]],[13,\"lowSaturationThreshold\",[7,\"mask\",\"lowSaturationThreshold\"]],[13,\"lowBrightnessThreshold\",[7,\"mask\",\"lowBrightnessThreshold\"]],[13,\"colorMaskDebug\",[7,\"mask\",\"debugMode\"]],[12,\"color\",[6,[7,\"std\",\"textureSample\"],[[7,[7,\"textureBindGroupLayout\",\"$\"],\"texture\"],[7,[7,\"textureBindGroupLayout\",\"$\"],\"sampler\"],\"texcoord\"]]],[13,\"maskedColorLower\",[6,[7,\"std\",\"sub\"],[\"maskedColor\",[7,\"rgbToleranceRange\",\"lower\"]]]],[13,\"maskedColorUpper\",[6,[7,\"std\",\"add\"],[\"maskedColor\",[7,\"rgbToleranceRange\",\"upper\"]]]],[13,\"upperCheck\",[6,[7,\"std\",\"all\"],[[6,[7,\"std\",\"le\"],[[7,\"color\",\"xyz\"],\"maskedColorUpper\"]]]]],[13,\"lowerCheck\",[6,[7,\"std\",\"all\"],[[6,[7,\"std\",\"ge\"],[[7,\"color\",\"xyz\"],\"maskedColorLower\"]]]]],[13,\"rgbCheck\",[3,\"upperCheck\",\"&&\",\"lowerCheck\"]],[13,\"maskedHSV\",[6,\"rgbToHSV\",[\"maskedColor\"]]],[13,\"colorHSV\",[6,\"rgbToHSV\",[[7,\"color\",\"xyz\"]]]],[12,\"hueDiff\",[6,[7,\"std\",\"sub\"],[[7,\"colorHSV\",\"x\"],[7,\"maskedHSV\",\"x\"]]]],[2,\"hueDiff\",\"=\",[6,[7,\"std\",\"select\"],[\"hueDiff\",[6,[7,\"std\",\"sub\"],[\"hueDiff\",[5,\"1\"]]],[1,\"hueDiff\",\">\",[6,[7,\"d\",\"f32\"],[[5,\"0.5\"]]]]]]],[2,\"hueDiff\",\"=\",[6,[7,\"std\",\"select\"],[\"hueDiff\",[6,[7,\"std\",\"add\"],[\"hueDiff\",[5,\"1\"]]],[1,\"hueDiff\",\"<\",[6,[7,\"d\",\"f32\"],[[4,\"-\",[5,\"0.5\"]]]]]]]],[13,\"lowerHueCheck\",[1,\"hueDiff\",\">=\",[4,\"-\",\"hueLower\"]]],[13,\"upperHueCheck\",[1,\"hueDiff\",\"<=\",\"hueUpper\"]],[12,\"hueCheck\",[3,\"lowerHueCheck\",\"&&\",\"upperHueCheck\"]],[13,\"saturationDiff\",[6,[7,\"std\",\"abs\"],[[6,[7,\"std\",\"sub\"],[[7,\"colorHSV\",\"y\"],[7,\"maskedHSV\",\"y\"]]]]]],[13,\"saturationCheck\",[1,\"saturationDiff\",\"<=\",\"saturationTolerance\"]],[13,\"brightnessDiff\",[6,[7,\"std\",\"abs\"],[[6,[7,\"std\",\"sub\"],[[7,\"colorHSV\",\"z\"],[7,\"maskedHSV\",\"z\"]]]]]],[13,\"brightnessCheck\",[1,\"brightnessDiff\",\"<=\",\"brightnessTolerance\"]],[13,\"pixelIsGray\",[1,[7,\"colorHSV\",\"y\"],\"<\",\"lowSaturationThreshold\"]],[13,\"targetIsGray\",[1,[7,\"maskedHSV\",\"y\"],\"<\",\"lowSaturationThreshold\"]],[13,\"pixelIsBlack\",[1,[7,\"colorHSV\",\"z\"],\"<\",\"lowBrightnessThreshold\"]],[13,\"targetIsBlack\",[1,[7,\"maskedHSV\",\"z\"],\"<\",\"lowBrightnessThreshold\"]],[13,\"hueIsUnstable\",[3,[3,[3,\"pixelIsGray\",\"||\",\"targetIsGray\"],\"||\",\"pixelIsBlack\"],\"||\",\"targetIsBlack\"]],[2,\"hueCheck\",\"=\",[6,[7,\"std\",\"select\"],[\"hueCheck\",[6,[7,\"d\",\"bool\"],[true]],\"hueIsUnstable\"]]],[13,\"hsvCheck\",[3,[3,\"hueCheck\",\"&&\",\"saturationCheck\"],\"&&\",\"brightnessCheck\"]],[13,\"maskCheck\",[6,[7,\"std\",\"select\"],[\"rgbCheck\",\"hsvCheck\",[1,\"useHSV\",\"==\",[6,[7,\"d\",\"u32\"],[[5,\"1\"]]]]]]],[2,\"color\",\"=\",[6,[7,\"std\",\"select\"],[\"color\",[6,[7,\"d\",\"vec4f\"],[[7,\"color\",\"xyz\"],[5,\"0\"]]],\"maskCheck\"]]],[2,\"color\",\"=\",[6,[7,\"std\",\"select\"],[\"color\",[6,[7,\"d\",\"vec4f\"],[[5,\"1\"],[5,\"0\"],[5,\"0\"],[5,\"0\"]]],[3,\"maskCheck\",\"&&\",[1,\"colorMaskDebug\",\"==\",[6,[7,\"d\",\"u32\"],[[5,\"1\"]]]]]]]],[10,\"color\"]]],\"externalNames\":[\"d\",\"colorMaskBindGroupLayout\",\"std\",\"textureBindGroupLayout\",\"rgbToHSV\"]}","externals"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/colorMaskFragment.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["tgpu","d","std","textureBindGroupLayout","colorMaskBindGroupLayout","rgbToHSV","colorMaskFragment","globalThis","__TYPEGPU_AUTONAME__","a","fragmentFn","in","uv","vec2f","out","vec4f","$","__TYPEGPU_META__","WeakMap","set","f","input","texcoord","x","y","color","textureSample","texture","sampler","masks","colorMasks","usedMaskCount","reverseHighlight","colorMaskDebug","u32","cumulativeMaskCheck","colorHSV","xyz","i","mask","maskedColor","baseColor","rgbToleranceRange","useHSV","hueToleranceRange","hueUpper","upper","hueLower","lower","brightnessTolerance","saturationTolerance","lowSaturationThreshold","lowBrightnessThreshold","maskedColorLower","sub","maskedColorUpper","add","upperCheck","all","le","lowerCheck","ge","rgbCheck","maskedHSV","hueDiff","select","f32","lowerHueCheck","upperHueCheck","hueCheck","saturationDiff","abs","saturationCheck","brightnessDiff","z","brightnessCheck","pixelIsGray","targetIsGray","pixelIsBlack","targetIsBlack","hueIsUnstable","bool","hsvCheck","maskCheck","debugMode","maskingLogic","v","name","ast","{\"params\":[{\"type\":\"i\",\"name\":\"input\"}],\"body\":[0,[[13,\"texcoord\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[12,\"color\",[6,[7,\"std\",\"textureSample\"],[[7,[7,\"textureBindGroupLayout\",\"$\"],\"texture\"],[7,[7,\"textureBindGroupLayout\",\"$\"],\"sampler\"],\"texcoord\"]]],[13,\"masks\",[7,[7,[7,\"colorMaskBindGroupLayout\",\"$\"],\"colorMasks\"],\"masks\"]],[13,\"usedMaskCount\",[7,[7,[7,\"colorMaskBindGroupLayout\",\"$\"],\"colorMasks\"],\"usedMaskCount\"]],[13,\"reverseHighlight\",[7,[7,[7,\"colorMaskBindGroupLayout\",\"$\"],\"colorMasks\"],\"reverseHighlight\"]],[12,\"colorMaskDebug\",[6,[7,\"d\",\"u32\"],[[5,\"0\"]]]],[12,\"cumulativeMaskCheck\",[6,[7,\"d\",\"u32\"],[[5,\"0\"]]]],[13,\"colorHSV\",[6,\"rgbToHSV\",[[7,\"color\",\"xyz\"]]]],[14,[12,\"i\",[5,\"0\"]],[1,\"i\",\"<\",[5,\"16\"]],[102,\"++\",\"i\"],[0,[[11,[1,\"usedMaskCount\",\"<=\",\"i\"],[17]],[13,\"mask\",[8,\"masks\",\"i\"]],[13,\"maskedColor\",[7,\"mask\",\"baseColor\"]],[13,\"rgbToleranceRange\",[7,\"mask\",\"rgbToleranceRange\"]],[13,\"useHSV\",[7,\"mask\",\"useHSV\"]],[13,\"hueToleranceRange\",[7,\"mask\",\"hueToleranceRange\"]],[13,\"hueUpper\",[7,\"hueToleranceRange\",\"upper\"]],[13,\"hueLower\",[7,\"hueToleranceRange\",\"lower\"]],[13,\"brightnessTolerance\",[7,\"mask\",\"brightnessTolerance\"]],[13,\"saturationTolerance\",[7,\"mask\",\"saturationTolerance\"]],[13,\"lowSaturationThreshold\",[7,\"mask\",\"lowSaturationThreshold\"]],[13,\"lowBrightnessThreshold\",[7,\"mask\",\"lowBrightnessThreshold\"]],[13,\"maskedColorLower\",[6,[7,\"std\",\"sub\"],[\"maskedColor\",[7,\"rgbToleranceRange\",\"lower\"]]]],[13,\"maskedColorUpper\",[6,[7,\"std\",\"add\"],[\"maskedColor\",[7,\"rgbToleranceRange\",\"upper\"]]]],[13,\"upperCheck\",[6,[7,\"std\",\"all\"],[[6,[7,\"std\",\"le\"],[[7,\"color\",\"xyz\"],\"maskedColorUpper\"]]]]],[13,\"lowerCheck\",[6,[7,\"std\",\"all\"],[[6,[7,\"std\",\"ge\"],[[7,\"color\",\"xyz\"],\"maskedColorLower\"]]]]],[13,\"rgbCheck\",[3,\"upperCheck\",\"&&\",\"lowerCheck\"]],[13,\"maskedHSV\",[6,\"rgbToHSV\",[\"maskedColor\"]]],[12,\"hueDiff\",[6,[7,\"std\",\"sub\"],[[7,\"colorHSV\",\"x\"],[7,\"maskedHSV\",\"x\"]]]],[2,\"hueDiff\",\"=\",[6,[7,\"std\",\"select\"],[\"hueDiff\",[6,[7,\"std\",\"sub\"],[\"hueDiff\",[5,\"1\"]]],[1,\"hueDiff\",\">\",[6,[7,\"d\",\"f32\"],[[5,\"0.5\"]]]]]]],[2,\"hueDiff\",\"=\",[6,[7,\"std\",\"select\"],[\"hueDiff\",[6,[7,\"std\",\"add\"],[\"hueDiff\",[5,\"1\"]]],[1,\"hueDiff\",\"<\",[6,[7,\"d\",\"f32\"],[[4,\"-\",[5,\"0.5\"]]]]]]]],[13,\"lowerHueCheck\",[1,\"hueDiff\",\">=\",[4,\"-\",\"hueLower\"]]],[13,\"upperHueCheck\",[1,\"hueDiff\",\"<=\",\"hueUpper\"]],[12,\"hueCheck\",[3,\"lowerHueCheck\",\"&&\",\"upperHueCheck\"]],[13,\"saturationDiff\",[6,[7,\"std\",\"abs\"],[[6,[7,\"std\",\"sub\"],[[7,\"colorHSV\",\"y\"],[7,\"maskedHSV\",\"y\"]]]]]],[13,\"saturationCheck\",[1,\"saturationDiff\",\"<=\",\"saturationTolerance\"]],[13,\"brightnessDiff\",[6,[7,\"std\",\"abs\"],[[6,[7,\"std\",\"sub\"],[[7,\"colorHSV\",\"z\"],[7,\"maskedHSV\",\"z\"]]]]]],[13,\"brightnessCheck\",[1,\"brightnessDiff\",\"<=\",\"brightnessTolerance\"]],[13,\"pixelIsGray\",[1,[7,\"colorHSV\",\"y\"],\"<\",\"lowSaturationThreshold\"]],[13,\"targetIsGray\",[1,[7,\"maskedHSV\",\"y\"],\"<\",\"lowSaturationThreshold\"]],[13,\"pixelIsBlack\",[1,[7,\"colorHSV\",\"z\"],\"<\",\"lowBrightnessThreshold\"]],[13,\"targetIsBlack\",[1,[7,\"maskedHSV\",\"z\"],\"<\",\"lowBrightnessThreshold\"]],[13,\"hueIsUnstable\",[3,[3,[3,\"pixelIsGray\",\"||\",\"targetIsGray\"],\"||\",\"pixelIsBlack\"],\"||\",\"targetIsBlack\"]],[2,\"hueCheck\",\"=\",[6,[7,\"std\",\"select\"],[\"hueCheck\",[6,[7,\"d\",\"bool\"],[true]],\"hueIsUnstable\"]]],[13,\"hsvCheck\",[3,[3,\"hueCheck\",\"&&\",\"saturationCheck\"],\"&&\",\"brightnessCheck\"]],[13,\"maskCheck\",[6,[7,\"std\",\"select\"],[\"rgbCheck\",\"hsvCheck\",[1,\"useHSV\",\"==\",[6,[7,\"d\",\"u32\"],[[5,\"1\"]]]]]]],[2,\"cumulativeMaskCheck\",\"=\",[1,\"cumulativeMaskCheck\",\"+\",[6,[7,\"d\",\"u32\"],[\"maskCheck\"]]]],[2,\"colorMaskDebug\",\"=\",[1,\"colorMaskDebug\",\"+\",[7,\"mask\",\"debugMode\"]]]]]],[13,\"maskingLogic\",[6,[7,\"std\",\"select\"],[[1,\"cumulativeMaskCheck\",\">\",[5,\"0\"]],[1,\"cumulativeMaskCheck\",\"==\",[5,\"0\"]],[1,\"reverseHighlight\",\"==\",[5,\"1\"]]]]],[2,\"color\",\"=\",[6,[7,\"std\",\"select\"],[\"color\",[6,[7,\"d\",\"vec4f\"],[[7,\"color\",\"xyz\"],[5,\"0\"]]],\"maskingLogic\"]]],[2,\"color\",\"=\",[6,[7,\"std\",\"select\"],[\"color\",[6,[7,\"d\",\"vec4f\"],[[5,\"1\"],[5,\"0\"],[5,\"0\"],[5,\"0\"]]],[3,\"maskingLogic\",\"&&\",[1,\"colorMaskDebug\",\">\",[5,\"0\"]]]]]],[10,\"color\"]]],\"externalNames\":[\"d\",\"std\",\"textureBindGroupLayout\",\"colorMaskBindGroupLayout\",\"rgbToHSV\"]}","externals"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/colorMaskFragment.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -22,10 +22,11 @@ export const glareFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tgpu[
|
|
|
22
22
|
const glareOptions = glareBindGroupLayout.$.glareOptions;
|
|
23
23
|
const glareIntensity = glareOptions.glareIntensity;
|
|
24
24
|
const glowPower = glareOptions.glowPower;
|
|
25
|
-
const hueBlendPower = glareOptions.hueBlendPower;
|
|
26
|
-
const hueShiftAngleMax = glareOptions.hueShiftAngleMax;
|
|
27
|
-
const hueShiftAngleMin = glareOptions.hueShiftAngleMin;
|
|
28
25
|
const lightIntensity = glareOptions.lightIntensity;
|
|
26
|
+
const glareColor = glareOptions.glareColor;
|
|
27
|
+
const hueBlendPower = glareColor.hueBlendPower;
|
|
28
|
+
const hueShiftAngleMax = glareColor.hueShiftAngleMax;
|
|
29
|
+
const hueShiftAngleMin = glareColor.hueShiftAngleMin;
|
|
29
30
|
|
|
30
31
|
// const mask = colorMaskBindGroupLayout.$.mask;
|
|
31
32
|
// const maskedColor = mask.baseColor;
|
|
@@ -69,7 +70,7 @@ export const glareFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tgpu[
|
|
|
69
70
|
}, {
|
|
70
71
|
v: 1,
|
|
71
72
|
name: void 0,
|
|
72
|
-
ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"texcoord",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"uv",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"centeredCoords",[6,[7,"std","sub"],[[6,[7,"std","mul"],["uv",[5,"2"]]],[5,"1"]]]],[13,"rot",[7,[7,"rotationBindGroupLayout","$"],"vec"]],[13,"center",[6,[7,"std","add"],[[6,[7,"d","vec2f"],[[5,"0"]]],[6,[7,"d","vec2f"],[[7,"rot","x"],[7,"rot","y"]]]]]],[13,"glareOptions",[7,[7,"glareBindGroupLayout","$"],"glareOptions"]],[13,"glareIntensity",[7,"glareOptions","glareIntensity"]],[13,"glowPower",[7,"glareOptions","glowPower"]],[13,"
|
|
73
|
+
ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"texcoord",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"uv",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"centeredCoords",[6,[7,"std","sub"],[[6,[7,"std","mul"],["uv",[5,"2"]]],[5,"1"]]]],[13,"rot",[7,[7,"rotationBindGroupLayout","$"],"vec"]],[13,"center",[6,[7,"std","add"],[[6,[7,"d","vec2f"],[[5,"0"]]],[6,[7,"d","vec2f"],[[7,"rot","x"],[7,"rot","y"]]]]]],[13,"glareOptions",[7,[7,"glareBindGroupLayout","$"],"glareOptions"]],[13,"glareIntensity",[7,"glareOptions","glareIntensity"]],[13,"glowPower",[7,"glareOptions","glowPower"]],[13,"lightIntensity",[7,"glareOptions","lightIntensity"]],[13,"glareColor",[7,"glareOptions","glareColor"]],[13,"hueBlendPower",[7,"glareColor","hueBlendPower"]],[13,"hueShiftAngleMax",[7,"glareColor","hueShiftAngleMax"]],[13,"hueShiftAngleMin",[7,"glareColor","hueShiftAngleMin"]],[12,"color",[6,[7,"std","textureSample"],[[7,[7,"textureBindGroupLayout","$"],"texture"],[7,[7,"textureBindGroupLayout","$"],"sampler"],"texcoord"]]],[13,"dst",[6,[7,"std","exp"],[[4,"-",[6,[7,"std","distance"],["center","centeredCoords"]]]]]],[13,"distToCenter",[6,[7,"std","smoothstep"],[[5,"0"],[1,[5,"1"],"/","glareIntensity"],"dst"]]],[12,"glow",[6,[7,"d","vec3f"],["distToCenter"]]],[2,"glow","=",[6,[7,"std","mul"],["glow",[1,"glowPower","*",[7,"color","w"]]]]],[13,"hueBlend",[1,[1,[6,[7,"d","f32"],["hueBlendPower"]],"*","dst"],"/",[5,"10"]]],[2,"glow","=",[6,[7,"std","add"],["glow",[1,"lightIntensity","/",[5,"10"]]]]],[12,"shiftedRGB",[6,"glareColorShift",[[7,"color","xyz"],[1,"dst","/",[1,"lightIntensity","*",[5,"2"]]]]]],[13,"hueShiftAngle",[6,[7,"std","smoothstep"],["hueShiftAngleMin","hueShiftAngleMax","distToCenter"]]],[13,"shiftedHue",[6,"hueShift",["shiftedRGB","hueShiftAngle"]]],[2,"shiftedRGB","=",[6,"overlayChannels",["shiftedRGB","shiftedHue"]]],[2,"color","=",[6,[7,"d","vec4f"],[[6,[7,"std","mix"],[[7,"color","xyz"],"shiftedRGB","hueBlend"]],[7,"color","w"]]]],[13,"baseColor","color"],[13,"blendColor","glow"],[13,"combined",[6,"overlayChannels",[[7,"baseColor","xyz"],"blendColor"]]],[2,"color","=",[6,[7,"d","vec4f"],[[6,[7,"std","mix"],[[7,"color","xyz"],"combined","glow"]],[7,"color","w"]]]],[10,"color"]]],"externalNames":["d","std","rotationBindGroupLayout","glareBindGroupLayout","textureBindGroupLayout","glareColorShift","hueShift","overlayChannels"]},
|
|
73
74
|
get externals() {
|
|
74
75
|
return {
|
|
75
76
|
d,
|
|
@@ -98,11 +99,13 @@ export const newGlareFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tg
|
|
|
98
99
|
const opts = glareBindGroupLayout.$.glareOptions;
|
|
99
100
|
const glareIntensity = opts.glareIntensity; // [0..∞): bigger → wider/stronger area
|
|
100
101
|
const glowPower = opts.glowPower; // (0..∞): curve shaping; bigger → softer/wider glow
|
|
101
|
-
const hueBlendPower = opts.hueBlendPower; // [0..1+]: how much hue-shifted color blends in
|
|
102
|
-
const hueShiftAngleMin = opts.hueShiftAngleMin; // degrees
|
|
103
|
-
const hueShiftAngleMax = opts.hueShiftAngleMax; // degrees
|
|
104
102
|
const lightIntensity = opts.lightIntensity / 1.3; // [0..∞): brightness boost of the glare/bloom
|
|
105
103
|
|
|
104
|
+
const glareColor = opts.glareColor;
|
|
105
|
+
const hueBlendPower = glareColor.hueBlendPower; // [0..1+]: how much hue-shifted color blends in
|
|
106
|
+
const hueShiftAngleMin = glareColor.hueShiftAngleMin; // degrees
|
|
107
|
+
const hueShiftAngleMax = glareColor.hueShiftAngleMax; // degrees
|
|
108
|
+
|
|
106
109
|
let color = std.textureSample(textureBindGroupLayout.$.texture, textureBindGroupLayout.$.sampler, texcoord);
|
|
107
110
|
const dist = std.distance(center, centeredCoords);
|
|
108
111
|
const radial = std.exp(-dist); // (0,1], steeper near center
|
|
@@ -127,7 +130,7 @@ export const newGlareFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tg
|
|
|
127
130
|
}, {
|
|
128
131
|
v: 1,
|
|
129
132
|
name: void 0,
|
|
130
|
-
ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"texcoord",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"uv",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"centeredCoords",[6,[7,"std","sub"],[[6,[7,"std","mul"],["uv",[5,"2"]]],[5,"1"]]]],[13,"rot",[7,[7,"rotationBindGroupLayout","$"],"vec"]],[13,"center",[6,[7,"std","add"],[[6,[7,"d","vec2f"],[[5,"0"]]],[6,[7,"d","vec2f"],[[7,"rot","x"],[7,"rot","y"]]]]]],[13,"opts",[7,[7,"glareBindGroupLayout","$"],"glareOptions"]],[13,"glareIntensity",[7,"opts","glareIntensity"]],[13,"glowPower",[7,"opts","glowPower"]],[13,"
|
|
133
|
+
ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"texcoord",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"uv",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"centeredCoords",[6,[7,"std","sub"],[[6,[7,"std","mul"],["uv",[5,"2"]]],[5,"1"]]]],[13,"rot",[7,[7,"rotationBindGroupLayout","$"],"vec"]],[13,"center",[6,[7,"std","add"],[[6,[7,"d","vec2f"],[[5,"0"]]],[6,[7,"d","vec2f"],[[7,"rot","x"],[7,"rot","y"]]]]]],[13,"opts",[7,[7,"glareBindGroupLayout","$"],"glareOptions"]],[13,"glareIntensity",[7,"opts","glareIntensity"]],[13,"glowPower",[7,"opts","glowPower"]],[13,"lightIntensity",[1,[7,"opts","lightIntensity"],"/",[5,"1.3"]]],[13,"glareColor",[7,"opts","glareColor"]],[13,"hueBlendPower",[7,"glareColor","hueBlendPower"]],[13,"hueShiftAngleMin",[7,"glareColor","hueShiftAngleMin"]],[13,"hueShiftAngleMax",[7,"glareColor","hueShiftAngleMax"]],[12,"color",[6,[7,"std","textureSample"],[[7,[7,"textureBindGroupLayout","$"],"texture"],[7,[7,"textureBindGroupLayout","$"],"sampler"],"texcoord"]]],[13,"dist",[6,[7,"std","distance"],["center","centeredCoords"]]],[13,"radial",[6,[7,"std","exp"],[[4,"-","dist"]]]],[13,"radialScaled",[6,[7,"std","mul"],["radial",[6,[7,"std","add"],[[5,"1"],[6,[7,"std","max"],[[5,"0"],"glareIntensity"]]]]]]],[13,"influenceRaw",[6,[7,"std","smoothstep"],[[5,"0"],[5,"1"],"radialScaled"]]],[13,"curveExp",[6,[7,"std","clamp"],["glowPower",[5,"0.05"],[5,"64"]]]],[13,"glowMask",[6,[7,"std","pow"],["influenceRaw",[6,[7,"std","div"],[[5,"1"],"curveExp"]]]]],[13,"maskedGlow",[6,[7,"std","mul"],["glowMask",[7,"color","w"]]]],[13,"boostedRGB",[6,"glareColorShift",[[7,"color","xyz"],"maskedGlow"]]],[13,"hueT",[6,[7,"std","clamp"],["maskedGlow",[5,"0"],[5,"1"]]]],[13,"hueAngle",[6,[7,"std","mix"],["hueShiftAngleMin","hueShiftAngleMax","hueT"]]],[13,"hueShifted",[6,"hueShift",["boostedRGB","hueAngle"]]],[13,"hueMixWeight",[6,[7,"std","clamp"],[[6,[7,"std","mul"],[[1,"hueBlendPower","/",[5,"5"]],"maskedGlow"]],[5,"0"],[5,"1"]]]],[13,"chromaMixed",[6,[7,"std","mix"],[[7,"color","xyz"],"hueShifted","hueMixWeight"]]],[13,"glareStrength",[6,[7,"std","clamp"],["lightIntensity",[5,"0"],[5,"100"]]]],[13,"glareLayer",[6,[7,"std","mul"],[[6,[7,"d","vec3f"],["maskedGlow"]],"glareStrength"]]],[13,"overlaidRGB",[6,"overlayChannels",["chromaMixed","glareLayer"]]],[13,"finalRGB",[6,[7,"std","mix"],["chromaMixed","overlaidRGB",[6,[7,"d","vec3f"],["maskedGlow"]]]]],[13,"outRGB",[6,[7,"std","clamp"],["finalRGB",[6,[7,"d","vec3f"],[[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"]]]]]],[10,[6,[7,"d","vec4f"],["outRGB",[7,"color","w"]]]]]],"externalNames":["d","std","rotationBindGroupLayout","glareBindGroupLayout","textureBindGroupLayout","glareColorShift","hueShift","overlayChannels"]},
|
|
131
134
|
get externals() {
|
|
132
135
|
return {
|
|
133
136
|
d,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["tgpu","d","std","rotationBindGroupLayout","textureBindGroupLayout","glareBindGroupLayout","glareColorShift","hueShift","overlayChannels","glareFragment","globalThis","__TYPEGPU_AUTONAME__","a","fragmentFn","in","uv","vec2f","out","vec4f","$","__TYPEGPU_META__","WeakMap","set","f","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","v","name","ast","{\"params\":[{\"type\":\"i\",\"name\":\"input\"}],\"body\":[0,[[13,\"texcoord\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"uv\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"centeredCoords\",[6,[7,\"std\",\"sub\"],[[6,[7,\"std\",\"mul\"],[\"uv\",[5,\"2\"]]],[5,\"1\"]]]],[13,\"rot\",[7,[7,\"rotationBindGroupLayout\",\"$\"],\"vec\"]],[13,\"center\",[6,[7,\"std\",\"add\"],[[6,[7,\"d\",\"vec2f\"],[[5,\"0\"]]],[6,[7,\"d\",\"vec2f\"],[[7,\"rot\",\"x\"],[7,\"rot\",\"y\"]]]]]],[13,\"glareOptions\",[7,[7,\"glareBindGroupLayout\",\"$\"],\"glareOptions\"]],[13,\"glareIntensity\",[7,\"glareOptions\",\"glareIntensity\"]],[13,\"glowPower\",[7,\"glareOptions\",\"glowPower\"]],[13,\"hueBlendPower\",[7,\"glareOptions\",\"hueBlendPower\"]],[13,\"hueShiftAngleMax\",[7,\"glareOptions\",\"hueShiftAngleMax\"]],[13,\"hueShiftAngleMin\",[7,\"glareOptions\",\"hueShiftAngleMin\"]],[13,\"lightIntensity\",[7,\"glareOptions\",\"lightIntensity\"]],[12,\"color\",[6,[7,\"std\",\"textureSample\"],[[7,[7,\"textureBindGroupLayout\",\"$\"],\"texture\"],[7,[7,\"textureBindGroupLayout\",\"$\"],\"sampler\"],\"texcoord\"]]],[13,\"dst\",[6,[7,\"std\",\"exp\"],[[4,\"-\",[6,[7,\"std\",\"distance\"],[\"center\",\"centeredCoords\"]]]]]],[13,\"distToCenter\",[6,[7,\"std\",\"smoothstep\"],[[5,\"0\"],[1,[5,\"1\"],\"/\",\"glareIntensity\"],\"dst\"]]],[12,\"glow\",[6,[7,\"d\",\"vec3f\"],[\"distToCenter\"]]],[2,\"glow\",\"=\",[6,[7,\"std\",\"mul\"],[\"glow\",[1,\"glowPower\",\"*\",[7,\"color\",\"w\"]]]]],[13,\"hueBlend\",[1,[1,[6,[7,\"d\",\"f32\"],[\"hueBlendPower\"]],\"*\",\"dst\"],\"/\",[5,\"10\"]]],[2,\"glow\",\"=\",[6,[7,\"std\",\"add\"],[\"glow\",[1,\"lightIntensity\",\"/\",[5,\"10\"]]]]],[12,\"shiftedRGB\",[6,\"glareColorShift\",[[7,\"color\",\"xyz\"],[1,\"dst\",\"/\",[1,\"lightIntensity\",\"*\",[5,\"2\"]]]]]],[13,\"hueShiftAngle\",[6,[7,\"std\",\"smoothstep\"],[\"hueShiftAngleMin\",\"hueShiftAngleMax\",\"distToCenter\"]]],[13,\"shiftedHue\",[6,\"hueShift\",[\"shiftedRGB\",\"hueShiftAngle\"]]],[2,\"shiftedRGB\",\"=\",[6,\"overlayChannels\",[\"shiftedRGB\",\"shiftedHue\"]]],[2,\"color\",\"=\",[6,[7,\"d\",\"vec4f\"],[[6,[7,\"std\",\"mix\"],[[7,\"color\",\"xyz\"],\"shiftedRGB\",\"hueBlend\"]],[7,\"color\",\"w\"]]]],[13,\"baseColor\",\"color\"],[13,\"blendColor\",\"glow\"],[13,\"combined\",[6,\"overlayChannels\",[[7,\"baseColor\",\"xyz\"],\"blendColor\"]]],[2,\"color\",\"=\",[6,[7,\"d\",\"vec4f\"],[[6,[7,\"std\",\"mix\"],[[7,\"color\",\"xyz\"],\"combined\",\"glow\"]],[7,\"color\",\"w\"]]]],[10,\"color\"]]],\"externalNames\":[\"d\",\"std\",\"rotationBindGroupLayout\",\"glareBindGroupLayout\",\"textureBindGroupLayout\",\"glareColorShift\",\"hueShift\",\"overlayChannels\"]}","externals","newGlareFragment","opts","dist","radial","radialScaled","max","influenceRaw","curveExp","clamp","glowMask","pow","div","maskedGlow","boostedRGB","hueT","hueAngle","hueShifted","hueMixWeight","chromaMixed","glareStrength","glareLayer","overlaidRGB","finalRGB","outRGB","{\"params\":[{\"type\":\"i\",\"name\":\"input\"}],\"body\":[0,[[13,\"texcoord\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"uv\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"centeredCoords\",[6,[7,\"std\",\"sub\"],[[6,[7,\"std\",\"mul\"],[\"uv\",[5,\"2\"]]],[5,\"1\"]]]],[13,\"rot\",[7,[7,\"rotationBindGroupLayout\",\"$\"],\"vec\"]],[13,\"center\",[6,[7,\"std\",\"add\"],[[6,[7,\"d\",\"vec2f\"],[[5,\"0\"]]],[6,[7,\"d\",\"vec2f\"],[[7,\"rot\",\"x\"],[7,\"rot\",\"y\"]]]]]],[13,\"opts\",[7,[7,\"glareBindGroupLayout\",\"$\"],\"glareOptions\"]],[13,\"glareIntensity\",[7,\"opts\",\"glareIntensity\"]],[13,\"glowPower\",[7,\"opts\",\"glowPower\"]],[13,\"hueBlendPower\",[7,\"opts\",\"hueBlendPower\"]],[13,\"hueShiftAngleMin\",[7,\"opts\",\"hueShiftAngleMin\"]],[13,\"hueShiftAngleMax\",[7,\"opts\",\"hueShiftAngleMax\"]],[13,\"lightIntensity\",[1,[7,\"opts\",\"lightIntensity\"],\"/\",[5,\"1.3\"]]],[12,\"color\",[6,[7,\"std\",\"textureSample\"],[[7,[7,\"textureBindGroupLayout\",\"$\"],\"texture\"],[7,[7,\"textureBindGroupLayout\",\"$\"],\"sampler\"],\"texcoord\"]]],[13,\"dist\",[6,[7,\"std\",\"distance\"],[\"center\",\"centeredCoords\"]]],[13,\"radial\",[6,[7,\"std\",\"exp\"],[[4,\"-\",\"dist\"]]]],[13,\"radialScaled\",[6,[7,\"std\",\"mul\"],[\"radial\",[6,[7,\"std\",\"add\"],[[5,\"1\"],[6,[7,\"std\",\"max\"],[[5,\"0\"],\"glareIntensity\"]]]]]]],[13,\"influenceRaw\",[6,[7,\"std\",\"smoothstep\"],[[5,\"0\"],[5,\"1\"],\"radialScaled\"]]],[13,\"curveExp\",[6,[7,\"std\",\"clamp\"],[\"glowPower\",[5,\"0.05\"],[5,\"64\"]]]],[13,\"glowMask\",[6,[7,\"std\",\"pow\"],[\"influenceRaw\",[6,[7,\"std\",\"div\"],[[5,\"1\"],\"curveExp\"]]]]],[13,\"maskedGlow\",[6,[7,\"std\",\"mul\"],[\"glowMask\",[7,\"color\",\"w\"]]]],[13,\"boostedRGB\",[6,\"glareColorShift\",[[7,\"color\",\"xyz\"],\"maskedGlow\"]]],[13,\"hueT\",[6,[7,\"std\",\"clamp\"],[\"maskedGlow\",[5,\"0\"],[5,\"1\"]]]],[13,\"hueAngle\",[6,[7,\"std\",\"mix\"],[\"hueShiftAngleMin\",\"hueShiftAngleMax\",\"hueT\"]]],[13,\"hueShifted\",[6,\"hueShift\",[\"boostedRGB\",\"hueAngle\"]]],[13,\"hueMixWeight\",[6,[7,\"std\",\"clamp\"],[[6,[7,\"std\",\"mul\"],[[1,\"hueBlendPower\",\"/\",[5,\"5\"]],\"maskedGlow\"]],[5,\"0\"],[5,\"1\"]]]],[13,\"chromaMixed\",[6,[7,\"std\",\"mix\"],[[7,\"color\",\"xyz\"],\"hueShifted\",\"hueMixWeight\"]]],[13,\"glareStrength\",[6,[7,\"std\",\"clamp\"],[\"lightIntensity\",[5,\"0\"],[5,\"100\"]]]],[13,\"glareLayer\",[6,[7,\"std\",\"mul\"],[[6,[7,\"d\",\"vec3f\"],[\"maskedGlow\"]],\"glareStrength\"]]],[13,\"overlaidRGB\",[6,\"overlayChannels\",[\"chromaMixed\",\"glareLayer\"]]],[13,\"finalRGB\",[6,[7,\"std\",\"mix\"],[\"chromaMixed\",\"overlaidRGB\",[6,[7,\"d\",\"vec3f\"],[\"maskedGlow\"]]]]],[13,\"outRGB\",[6,[7,\"std\",\"clamp\"],[\"finalRGB\",[6,[7,\"d\",\"vec3f\"],[[5,\"0\"]]],[6,[7,\"d\",\"vec3f\"],[[5,\"1\"]]]]]],[10,[6,[7,\"d\",\"vec4f\"],[\"outRGB\",[7,\"color\",\"w\"]]]]]],\"externalNames\":[\"d\",\"std\",\"rotationBindGroupLayout\",\"glareBindGroupLayout\",\"textureBindGroupLayout\",\"glareColorShift\",\"hueShift\",\"overlayChannels\"]}"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/glareFragment.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["tgpu","d","std","rotationBindGroupLayout","textureBindGroupLayout","glareBindGroupLayout","glareColorShift","hueShift","overlayChannels","glareFragment","globalThis","__TYPEGPU_AUTONAME__","a","fragmentFn","in","uv","vec2f","out","vec4f","$","__TYPEGPU_META__","WeakMap","set","f","input","texcoord","x","y","centeredCoords","sub","mul","rot","vec","center","add","glareOptions","glareIntensity","glowPower","lightIntensity","glareColor","hueBlendPower","hueShiftAngleMax","hueShiftAngleMin","color","textureSample","texture","sampler","dst","exp","distance","distToCenter","smoothstep","glow","vec3f","w","hueBlend","f32","shiftedRGB","xyz","hueShiftAngle","shiftedHue","mix","baseColor","blendColor","combined","v","name","ast","{\"params\":[{\"type\":\"i\",\"name\":\"input\"}],\"body\":[0,[[13,\"texcoord\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"uv\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"centeredCoords\",[6,[7,\"std\",\"sub\"],[[6,[7,\"std\",\"mul\"],[\"uv\",[5,\"2\"]]],[5,\"1\"]]]],[13,\"rot\",[7,[7,\"rotationBindGroupLayout\",\"$\"],\"vec\"]],[13,\"center\",[6,[7,\"std\",\"add\"],[[6,[7,\"d\",\"vec2f\"],[[5,\"0\"]]],[6,[7,\"d\",\"vec2f\"],[[7,\"rot\",\"x\"],[7,\"rot\",\"y\"]]]]]],[13,\"glareOptions\",[7,[7,\"glareBindGroupLayout\",\"$\"],\"glareOptions\"]],[13,\"glareIntensity\",[7,\"glareOptions\",\"glareIntensity\"]],[13,\"glowPower\",[7,\"glareOptions\",\"glowPower\"]],[13,\"lightIntensity\",[7,\"glareOptions\",\"lightIntensity\"]],[13,\"glareColor\",[7,\"glareOptions\",\"glareColor\"]],[13,\"hueBlendPower\",[7,\"glareColor\",\"hueBlendPower\"]],[13,\"hueShiftAngleMax\",[7,\"glareColor\",\"hueShiftAngleMax\"]],[13,\"hueShiftAngleMin\",[7,\"glareColor\",\"hueShiftAngleMin\"]],[12,\"color\",[6,[7,\"std\",\"textureSample\"],[[7,[7,\"textureBindGroupLayout\",\"$\"],\"texture\"],[7,[7,\"textureBindGroupLayout\",\"$\"],\"sampler\"],\"texcoord\"]]],[13,\"dst\",[6,[7,\"std\",\"exp\"],[[4,\"-\",[6,[7,\"std\",\"distance\"],[\"center\",\"centeredCoords\"]]]]]],[13,\"distToCenter\",[6,[7,\"std\",\"smoothstep\"],[[5,\"0\"],[1,[5,\"1\"],\"/\",\"glareIntensity\"],\"dst\"]]],[12,\"glow\",[6,[7,\"d\",\"vec3f\"],[\"distToCenter\"]]],[2,\"glow\",\"=\",[6,[7,\"std\",\"mul\"],[\"glow\",[1,\"glowPower\",\"*\",[7,\"color\",\"w\"]]]]],[13,\"hueBlend\",[1,[1,[6,[7,\"d\",\"f32\"],[\"hueBlendPower\"]],\"*\",\"dst\"],\"/\",[5,\"10\"]]],[2,\"glow\",\"=\",[6,[7,\"std\",\"add\"],[\"glow\",[1,\"lightIntensity\",\"/\",[5,\"10\"]]]]],[12,\"shiftedRGB\",[6,\"glareColorShift\",[[7,\"color\",\"xyz\"],[1,\"dst\",\"/\",[1,\"lightIntensity\",\"*\",[5,\"2\"]]]]]],[13,\"hueShiftAngle\",[6,[7,\"std\",\"smoothstep\"],[\"hueShiftAngleMin\",\"hueShiftAngleMax\",\"distToCenter\"]]],[13,\"shiftedHue\",[6,\"hueShift\",[\"shiftedRGB\",\"hueShiftAngle\"]]],[2,\"shiftedRGB\",\"=\",[6,\"overlayChannels\",[\"shiftedRGB\",\"shiftedHue\"]]],[2,\"color\",\"=\",[6,[7,\"d\",\"vec4f\"],[[6,[7,\"std\",\"mix\"],[[7,\"color\",\"xyz\"],\"shiftedRGB\",\"hueBlend\"]],[7,\"color\",\"w\"]]]],[13,\"baseColor\",\"color\"],[13,\"blendColor\",\"glow\"],[13,\"combined\",[6,\"overlayChannels\",[[7,\"baseColor\",\"xyz\"],\"blendColor\"]]],[2,\"color\",\"=\",[6,[7,\"d\",\"vec4f\"],[[6,[7,\"std\",\"mix\"],[[7,\"color\",\"xyz\"],\"combined\",\"glow\"]],[7,\"color\",\"w\"]]]],[10,\"color\"]]],\"externalNames\":[\"d\",\"std\",\"rotationBindGroupLayout\",\"glareBindGroupLayout\",\"textureBindGroupLayout\",\"glareColorShift\",\"hueShift\",\"overlayChannels\"]}","externals","newGlareFragment","opts","dist","radial","radialScaled","max","influenceRaw","curveExp","clamp","glowMask","pow","div","maskedGlow","boostedRGB","hueT","hueAngle","hueShifted","hueMixWeight","chromaMixed","glareStrength","glareLayer","overlaidRGB","finalRGB","outRGB","{\"params\":[{\"type\":\"i\",\"name\":\"input\"}],\"body\":[0,[[13,\"texcoord\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"uv\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"centeredCoords\",[6,[7,\"std\",\"sub\"],[[6,[7,\"std\",\"mul\"],[\"uv\",[5,\"2\"]]],[5,\"1\"]]]],[13,\"rot\",[7,[7,\"rotationBindGroupLayout\",\"$\"],\"vec\"]],[13,\"center\",[6,[7,\"std\",\"add\"],[[6,[7,\"d\",\"vec2f\"],[[5,\"0\"]]],[6,[7,\"d\",\"vec2f\"],[[7,\"rot\",\"x\"],[7,\"rot\",\"y\"]]]]]],[13,\"opts\",[7,[7,\"glareBindGroupLayout\",\"$\"],\"glareOptions\"]],[13,\"glareIntensity\",[7,\"opts\",\"glareIntensity\"]],[13,\"glowPower\",[7,\"opts\",\"glowPower\"]],[13,\"lightIntensity\",[1,[7,\"opts\",\"lightIntensity\"],\"/\",[5,\"1.3\"]]],[13,\"glareColor\",[7,\"opts\",\"glareColor\"]],[13,\"hueBlendPower\",[7,\"glareColor\",\"hueBlendPower\"]],[13,\"hueShiftAngleMin\",[7,\"glareColor\",\"hueShiftAngleMin\"]],[13,\"hueShiftAngleMax\",[7,\"glareColor\",\"hueShiftAngleMax\"]],[12,\"color\",[6,[7,\"std\",\"textureSample\"],[[7,[7,\"textureBindGroupLayout\",\"$\"],\"texture\"],[7,[7,\"textureBindGroupLayout\",\"$\"],\"sampler\"],\"texcoord\"]]],[13,\"dist\",[6,[7,\"std\",\"distance\"],[\"center\",\"centeredCoords\"]]],[13,\"radial\",[6,[7,\"std\",\"exp\"],[[4,\"-\",\"dist\"]]]],[13,\"radialScaled\",[6,[7,\"std\",\"mul\"],[\"radial\",[6,[7,\"std\",\"add\"],[[5,\"1\"],[6,[7,\"std\",\"max\"],[[5,\"0\"],\"glareIntensity\"]]]]]]],[13,\"influenceRaw\",[6,[7,\"std\",\"smoothstep\"],[[5,\"0\"],[5,\"1\"],\"radialScaled\"]]],[13,\"curveExp\",[6,[7,\"std\",\"clamp\"],[\"glowPower\",[5,\"0.05\"],[5,\"64\"]]]],[13,\"glowMask\",[6,[7,\"std\",\"pow\"],[\"influenceRaw\",[6,[7,\"std\",\"div\"],[[5,\"1\"],\"curveExp\"]]]]],[13,\"maskedGlow\",[6,[7,\"std\",\"mul\"],[\"glowMask\",[7,\"color\",\"w\"]]]],[13,\"boostedRGB\",[6,\"glareColorShift\",[[7,\"color\",\"xyz\"],\"maskedGlow\"]]],[13,\"hueT\",[6,[7,\"std\",\"clamp\"],[\"maskedGlow\",[5,\"0\"],[5,\"1\"]]]],[13,\"hueAngle\",[6,[7,\"std\",\"mix\"],[\"hueShiftAngleMin\",\"hueShiftAngleMax\",\"hueT\"]]],[13,\"hueShifted\",[6,\"hueShift\",[\"boostedRGB\",\"hueAngle\"]]],[13,\"hueMixWeight\",[6,[7,\"std\",\"clamp\"],[[6,[7,\"std\",\"mul\"],[[1,\"hueBlendPower\",\"/\",[5,\"5\"]],\"maskedGlow\"]],[5,\"0\"],[5,\"1\"]]]],[13,\"chromaMixed\",[6,[7,\"std\",\"mix\"],[[7,\"color\",\"xyz\"],\"hueShifted\",\"hueMixWeight\"]]],[13,\"glareStrength\",[6,[7,\"std\",\"clamp\"],[\"lightIntensity\",[5,\"0\"],[5,\"100\"]]]],[13,\"glareLayer\",[6,[7,\"std\",\"mul\"],[[6,[7,\"d\",\"vec3f\"],[\"maskedGlow\"]],\"glareStrength\"]]],[13,\"overlaidRGB\",[6,\"overlayChannels\",[\"chromaMixed\",\"glareLayer\"]]],[13,\"finalRGB\",[6,[7,\"std\",\"mix\"],[\"chromaMixed\",\"overlaidRGB\",[6,[7,\"d\",\"vec3f\"],[\"maskedGlow\"]]]]],[13,\"outRGB\",[6,[7,\"std\",\"clamp\"],[\"finalRGB\",[6,[7,\"d\",\"vec3f\"],[[5,\"0\"]]],[6,[7,\"d\",\"vec3f\"],[[5,\"1\"]]]]]],[10,[6,[7,\"d\",\"vec4f\"],[\"outRGB\",[7,\"color\",\"w\"]]]]]],\"externalNames\":[\"d\",\"std\",\"rotationBindGroupLayout\",\"glareBindGroupLayout\",\"textureBindGroupLayout\",\"glareColorShift\",\"hueShift\",\"overlayChannels\"]}"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/glareFragment.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,22 +19,23 @@ export const holoFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tgpu['
|
|
|
19
19
|
const wave = waveCallbackSlot.$(rot.xy);
|
|
20
20
|
const waveX = wave.x;
|
|
21
21
|
const waveY = wave.y;
|
|
22
|
-
const band = std.add(
|
|
22
|
+
const band = std.add(waveX * uv.x, waveY * uv.y * 2.0);
|
|
23
|
+
// const band = waveX * uv.x;
|
|
23
24
|
|
|
24
25
|
//TODO: fix holo
|
|
25
|
-
const
|
|
26
|
-
const
|
|
26
|
+
const frequency = d.f32(1.0);
|
|
27
|
+
const hueAngle = d.f32(180) * std.mul(band, frequency * Math.PI * rot.x);
|
|
28
|
+
const rainbowColor = hueShift(d.vec3f(uv.x, 0.0, 0.0), hueAngle);
|
|
27
29
|
const finalColor = std.mul(rainbowColor, 1.0);
|
|
28
30
|
|
|
29
31
|
// console.log('\ncurrentColor = (', rainbowColor.xyz, ')');
|
|
30
32
|
// console.log('hueAngle = ', hueAngle);
|
|
31
33
|
// console.clear();
|
|
32
|
-
|
|
33
34
|
return d.vec4f(finalColor, 0.9 * textureColor.w);
|
|
34
35
|
}, {
|
|
35
36
|
v: 1,
|
|
36
37
|
name: void 0,
|
|
37
|
-
ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"texcoord",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"uv","texcoord"],[13,"textureColor",[6,[7,"std","textureSample"],[[7,[7,"textureBindGroupLayout","$"],"texture"],[7,[7,"textureBindGroupLayout","$"],"sampler"],"texcoord"]]],[13,"rot",[7,[7,"rotationBindGroupLayout","$"],"vec"]],[13,"wave",[6,[7,"waveCallbackSlot","$"],[[7,"rot","xy"]]]],[13,"waveX",[7,"wave","x"]],[13,"waveY",[7,"wave","y"]],[13,"band",[6,[7,"std","add"],[[1,
|
|
38
|
+
ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"texcoord",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"uv","texcoord"],[13,"textureColor",[6,[7,"std","textureSample"],[[7,[7,"textureBindGroupLayout","$"],"texture"],[7,[7,"textureBindGroupLayout","$"],"sampler"],"texcoord"]]],[13,"rot",[7,[7,"rotationBindGroupLayout","$"],"vec"]],[13,"wave",[6,[7,"waveCallbackSlot","$"],[[7,"rot","xy"]]]],[13,"waveX",[7,"wave","x"]],[13,"waveY",[7,"wave","y"]],[13,"band",[6,[7,"std","add"],[[1,"waveX","*",[7,"uv","x"]],[1,[1,"waveY","*",[7,"uv","y"]],"*",[5,"2"]]]]],[13,"frequency",[6,[7,"d","f32"],[[5,"1"]]]],[13,"hueAngle",[1,[6,[7,"d","f32"],[[5,"180"]]],"*",[6,[7,"std","mul"],["band",[1,[1,"frequency","*",[7,"Math","PI"]],"*",[7,"rot","x"]]]]]],[13,"rainbowColor",[6,"hueShift",[[6,[7,"d","vec3f"],[[7,"uv","x"],[5,"0"],[5,"0"]]],"hueAngle"]]],[13,"finalColor",[6,[7,"std","mul"],["rainbowColor",[5,"1"]]]],[10,[6,[7,"d","vec4f"],["finalColor",[1,[5,"0.9"],"*",[7,"textureColor","w"]]]]]]],"externalNames":["d","std","textureBindGroupLayout","rotationBindGroupLayout","waveCallbackSlot","Math","hueShift"]},
|
|
38
39
|
get externals() {
|
|
39
40
|
return {
|
|
40
41
|
d,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["tgpu","d","std","rotationBindGroupLayout","textureBindGroupLayout","hueShift","waveCallbackSlot","holoFragment","globalThis","__TYPEGPU_AUTONAME__","a","fragmentFn","in","uv","vec2f","out","vec4f","$","__TYPEGPU_META__","WeakMap","set","f","input","texcoord","x","y","textureColor","textureSample","texture","sampler","rot","vec","wave","xy","waveX","waveY","band","add","
|
|
1
|
+
{"version":3,"names":["tgpu","d","std","rotationBindGroupLayout","textureBindGroupLayout","hueShift","waveCallbackSlot","holoFragment","globalThis","__TYPEGPU_AUTONAME__","a","fragmentFn","in","uv","vec2f","out","vec4f","$","__TYPEGPU_META__","WeakMap","set","f","input","texcoord","x","y","textureColor","textureSample","texture","sampler","rot","vec","wave","xy","waveX","waveY","band","add","frequency","f32","hueAngle","mul","Math","PI","rainbowColor","vec3f","finalColor","w","v","name","ast","{\"params\":[{\"type\":\"i\",\"name\":\"input\"}],\"body\":[0,[[13,\"texcoord\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"uv\",\"texcoord\"],[13,\"textureColor\",[6,[7,\"std\",\"textureSample\"],[[7,[7,\"textureBindGroupLayout\",\"$\"],\"texture\"],[7,[7,\"textureBindGroupLayout\",\"$\"],\"sampler\"],\"texcoord\"]]],[13,\"rot\",[7,[7,\"rotationBindGroupLayout\",\"$\"],\"vec\"]],[13,\"wave\",[6,[7,\"waveCallbackSlot\",\"$\"],[[7,\"rot\",\"xy\"]]]],[13,\"waveX\",[7,\"wave\",\"x\"]],[13,\"waveY\",[7,\"wave\",\"y\"]],[13,\"band\",[6,[7,\"std\",\"add\"],[[1,\"waveX\",\"*\",[7,\"uv\",\"x\"]],[1,[1,\"waveY\",\"*\",[7,\"uv\",\"y\"]],\"*\",[5,\"2\"]]]]],[13,\"frequency\",[6,[7,\"d\",\"f32\"],[[5,\"1\"]]]],[13,\"hueAngle\",[1,[6,[7,\"d\",\"f32\"],[[5,\"180\"]]],\"*\",[6,[7,\"std\",\"mul\"],[\"band\",[1,[1,\"frequency\",\"*\",[7,\"Math\",\"PI\"]],\"*\",[7,\"rot\",\"x\"]]]]]],[13,\"rainbowColor\",[6,\"hueShift\",[[6,[7,\"d\",\"vec3f\"],[[7,\"uv\",\"x\"],[5,\"0\"],[5,\"0\"]]],\"hueAngle\"]]],[13,\"finalColor\",[6,[7,\"std\",\"mul\"],[\"rainbowColor\",[5,\"1\"]]]],[10,[6,[7,\"d\",\"vec4f\"],[\"finalColor\",[1,[5,\"0.9\"],\"*\",[7,\"textureColor\",\"w\"]]]]]]],\"externalNames\":[\"d\",\"std\",\"textureBindGroupLayout\",\"rotationBindGroupLayout\",\"waveCallbackSlot\",\"Math\",\"hueShift\"]}","externals"],"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,IAAAC,UAAA,CAAAC,oBAAA,KAAAC,CAAA,IAAAA,CAAA,GAAGV,IAAI,CAAC,WAAW,CAAC,CAACW,UAAU,CAAC;EACvDC,EAAE,EAAE;IAAEC,EAAE,EAAEZ,CAAC,CAACa;EAAM,CAAC;EACnBC,GAAG,EAAEd,CAAC,CAACe;AACT,CAAC,CAAC,EAAAC,CAAA,KAAAT,UAAA,CAAAU,gBAAA,SAAAC,OAAA,IAAAC,GAAA,CAAAH,CAAA,CAAAI,CAAA,GAAEC,KAAK,IAAK;EACZ,MAAMC,QAAQ,GAAGtB,CAAC,CAACa,KAAK,CAACQ,KAAK,CAACT,EAAE,CAACW,CAAC,EAAE,GAAG,GAAGF,KAAK,CAACT,EAAE,CAACY,CAAC,CAAC;EACtD,MAAMZ,EAAE,GAAGU,QAAQ;EACnB,MAAMG,YAAY,GAAGxB,GAAG,CAACyB,aAAa,CACpCvB,sBAAsB,CAACa,CAAC,CAACW,OAAO,EAChCxB,sBAAsB,CAACa,CAAC,CAACY,OAAO,EAChCN,QACF,CAAC;EACD,MAAMO,GAAG,GAAG3B,uBAAuB,CAACc,CAAC,CAACc,GAAG;EAEzC,MAAMC,IAAI,GAAG1B,gBAAgB,CAACW,CAAC,CAACa,GAAG,CAACG,EAAE,CAAC;EACvC,MAAMC,KAAK,GAAGF,IAAI,CAACR,CAAC;EACpB,MAAMW,KAAK,GAAGH,IAAI,CAACP,CAAC;EAEpB,MAAMW,IAAI,GAAGlC,GAAG,CAACmC,GAAG,CAACH,KAAK,GAAGrB,EAAE,CAACW,CAAC,EAAEW,KAAK,GAAGtB,EAAE,CAACY,CAAC,GAAG,GAAG,CAAC;EACtD;;EAEA;EACA,MAAMa,SAAS,GAAGrC,CAAC,CAACsC,GAAG,CAAC,GAAG,CAAC;EAC5B,MAAMC,QAAQ,GAAGvC,CAAC,CAACsC,GAAG,CAAC,GAAG,CAAC,GAAGrC,GAAG,CAACuC,GAAG,CAACL,IAAI,EAAEE,SAAS,GAAGI,IAAI,CAACC,EAAE,GAAGb,GAAG,CAACN,CAAC,CAAC;EACxE,MAAMoB,YAAY,GAAGvC,QAAQ,CAACJ,CAAC,CAAC4C,KAAK,CAAChC,EAAE,CAACW,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAEgB,QAAQ,CAAC;EAChE,MAAMM,UAAU,GAAG5C,GAAG,CAACuC,GAAG,CAACG,YAAY,EAAE,GAAG,CAAC;;EAE7C;EACA;EACA;EACA,OAAO3C,CAAC,CAACe,KAAK,CAAC8B,UAAU,EAAE,GAAG,GAAGpB,YAAY,CAACqB,CAAC,CAAC;AAClD,CAAC;EAAAC,CAAA;EAAAC,IAAA;EAAAC,GAAA,EAAAC,uoCAAA;EAAA,IAAAC,UAAA;IAAA;MAAAnD,CAAA;MAAAC,GAAA;MAAAE,sBAAA;MAAAD,uBAAA;MAAAG,gBAAA;MAAAoC,IAAA;MAAArC;IAAA;EAAA;AAAA,MAAAY,CAAA,CAAAI,CAAA,uBAAC","ignoreList":[]}
|
|
@@ -21,10 +21,11 @@ export const reverseHoloFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))
|
|
|
21
21
|
const opts = reverseHoloDetectionChannelFlagsBindGroupLayout.$.glareOptions;
|
|
22
22
|
const glareIntensity = opts.glareIntensity;
|
|
23
23
|
const glowPower = opts.glowPower;
|
|
24
|
-
const hueBlendPower = opts.hueBlendPower;
|
|
25
|
-
const hueShiftAngleMin = opts.hueShiftAngleMin;
|
|
26
|
-
const hueShiftAngleMax = opts.hueShiftAngleMax;
|
|
27
24
|
const lightIntensity = opts.lightIntensity;
|
|
25
|
+
const glareColor = opts.glareColor;
|
|
26
|
+
const hueBlendPower = glareColor.hueBlendPower;
|
|
27
|
+
const hueShiftAngleMin = glareColor.hueShiftAngleMin;
|
|
28
|
+
const hueShiftAngleMax = glareColor.hueShiftAngleMax;
|
|
28
29
|
//-----------------------------------------------
|
|
29
30
|
|
|
30
31
|
// detection channel flags-----------------------
|
|
@@ -54,19 +55,22 @@ export const reverseHoloFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))
|
|
|
54
55
|
// maybe add weights later or choice of combination method
|
|
55
56
|
const channelFactorCombined = std.mix(channelFactor, channelFactorHSV, 0.0);
|
|
56
57
|
const holoFactor = (1.0 - channelFactorCombined) * holoMaskColor.w * std.pow(scaledRadial, 1.5);
|
|
57
|
-
|
|
58
|
+
|
|
59
|
+
// const decayedGlowMask = std.exp(1.0 - glowMask);
|
|
60
|
+
const maskedGlow = std.pow(std.mul(glowMask, holoFactor), 2.0); // only affect masked areas
|
|
58
61
|
|
|
59
62
|
const hueAmount = std.mix(hueShiftAngleMin, hueShiftAngleMax, std.clamp(maskedGlow, 0.0, 1.0));
|
|
60
63
|
const sparkleHue = hueShift(cardColor.xyz, hueAmount);
|
|
64
|
+
const shineStrength = std.clamp(lightIntensity, 1.0, 100.0);
|
|
65
|
+
const shineIntensity = 1.5 * shineStrength * maskedGlow;
|
|
61
66
|
const hueMixAmt = std.clamp(hueBlendPower / 5.0 * maskedGlow, 0.0, 1.0);
|
|
62
67
|
const chromaMix = std.mix(cardColor.xyz, sparkleHue, hueMixAmt);
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
return d.vec4f(shineLayer, 1 - maskedGlow);
|
|
68
|
+
const shineLayer = std.mul(chromaMix, shineIntensity);
|
|
69
|
+
return d.vec4f(d.vec3f(shineLayer), 1.0 - maskedGlow);
|
|
66
70
|
}, {
|
|
67
71
|
v: 1,
|
|
68
72
|
name: void 0,
|
|
69
|
-
ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"texcoord",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"uv","texcoord"],[13,"centeredCoords",[6,[7,"std","sub"],[[6,[7,"std","mul"],["uv",[5,"2"]]],[5,"1"]]]],[13,"rot",[7,[7,"rotationBindGroupLayout","$"],"vec"]],[13,"center",[6,[7,"std","add"],[[6,[7,"d","vec2f"],[[5,"0"]]],[6,[7,"d","vec2f"],[[7,"rot","x"],[7,"rot","y"]]]]]],[13,"opts",[7,[7,"reverseHoloDetectionChannelFlagsBindGroupLayout","$"],"glareOptions"]],[13,"glareIntensity",[7,"opts","glareIntensity"]],[13,"glowPower",[7,"opts","glowPower"]],[13,"
|
|
73
|
+
ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"texcoord",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"uv","texcoord"],[13,"centeredCoords",[6,[7,"std","sub"],[[6,[7,"std","mul"],["uv",[5,"2"]]],[5,"1"]]]],[13,"rot",[7,[7,"rotationBindGroupLayout","$"],"vec"]],[13,"center",[6,[7,"std","add"],[[6,[7,"d","vec2f"],[[5,"0"]]],[6,[7,"d","vec2f"],[[7,"rot","x"],[7,"rot","y"]]]]]],[13,"opts",[7,[7,"reverseHoloDetectionChannelFlagsBindGroupLayout","$"],"glareOptions"]],[13,"glareIntensity",[7,"opts","glareIntensity"]],[13,"glowPower",[7,"opts","glowPower"]],[13,"lightIntensity",[7,"opts","lightIntensity"]],[13,"glareColor",[7,"opts","glareColor"]],[13,"hueBlendPower",[7,"glareColor","hueBlendPower"]],[13,"hueShiftAngleMin",[7,"glareColor","hueShiftAngleMin"]],[13,"hueShiftAngleMax",[7,"glareColor","hueShiftAngleMax"]],[13,"detectionChannelFlags",[7,[7,"reverseHoloDetectionChannelFlagsBindGroupLayout","$"],"channelFlags"]],[13,"redChannelFlag",[7,"detectionChannelFlags","redChannel"]],[13,"greenChannelFlag",[7,"detectionChannelFlags","greenChannel"]],[13,"blueChannelFlag",[7,"detectionChannelFlags","blueChannel"]],[13,"hueFlag",[7,"detectionChannelFlags","hue"]],[13,"saturationFlag",[7,"detectionChannelFlags","saturation"]],[13,"valueFlag",[7,"detectionChannelFlags","value"]],[13,"cardColor",[6,[7,"std","textureSample"],[[7,[7,"textureBindGroupLayout","$"],"texture"],[7,[7,"textureBindGroupLayout","$"],"sampler"],"texcoord"]]],[13,"holoMaskColor",[6,[7,"std","textureSample"],[[7,[7,"maskTextureBindGroupLayout","$"],"texture"],[7,[7,"maskTextureBindGroupLayout","$"],"sampler"],"texcoord"]]],[13,"dist",[6,[7,"std","distance"],["centeredCoords","center"]]],[13,"rFalloff",[6,[7,"std","exp"],[[4,"-","dist"]]]],[13,"scaledRadial",[6,[7,"std","mul"],["rFalloff",[6,[7,"std","add"],[[5,"1"],[6,[7,"std","max"],[[5,"0"],"glareIntensity"]]]]]]],[13,"influence",[6,[7,"std","smoothstep"],[[5,"0"],[5,"1"],"scaledRadial"]]],[13,"curvePower",[6,[7,"std","clamp"],["glowPower",[5,"0.05"],[5,"64"]]]],[13,"glowMask",[6,[7,"std","pow"],["influence",[6,[7,"std","div"],[[5,"1"],"curvePower"]]]]],[13,"holoMaskColorHSV",[6,"rgbToHSV",[[7,"holoMaskColor","xyz"]]]],[13,"rgbSelection",[6,[7,"d","vec3f"],["redChannelFlag","greenChannelFlag","blueChannelFlag"]]],[13,"channelFactor",[6,[7,"std","dot"],[[7,"holoMaskColor","xyz"],"rgbSelection"]]],[13,"hsvSelection",[6,[7,"d","vec3f"],["hueFlag","saturationFlag","valueFlag"]]],[13,"channelFactorHSV",[6,[7,"std","dot"],[[7,"holoMaskColorHSV","xyz"],"hsvSelection"]]],[13,"channelFactorCombined",[6,[7,"std","mix"],["channelFactor","channelFactorHSV",[5,"0"]]]],[13,"holoFactor",[1,[1,[1,[5,"1"],"-","channelFactorCombined"],"*",[7,"holoMaskColor","w"]],"*",[6,[7,"std","pow"],["scaledRadial",[5,"1.5"]]]]],[13,"maskedGlow",[6,[7,"std","pow"],[[6,[7,"std","mul"],["glowMask","holoFactor"]],[5,"2"]]]],[13,"hueAmount",[6,[7,"std","mix"],["hueShiftAngleMin","hueShiftAngleMax",[6,[7,"std","clamp"],["maskedGlow",[5,"0"],[5,"1"]]]]]],[13,"sparkleHue",[6,"hueShift",[[7,"cardColor","xyz"],"hueAmount"]]],[13,"shineStrength",[6,[7,"std","clamp"],["lightIntensity",[5,"1"],[5,"100"]]]],[13,"shineIntensity",[1,[1,[5,"1.5"],"*","shineStrength"],"*","maskedGlow"]],[13,"hueMixAmt",[6,[7,"std","clamp"],[[1,[1,"hueBlendPower","/",[5,"5"]],"*","maskedGlow"],[5,"0"],[5,"1"]]]],[13,"chromaMix",[6,[7,"std","mix"],[[7,"cardColor","xyz"],"sparkleHue","hueMixAmt"]]],[13,"shineLayer",[6,[7,"std","mul"],["chromaMix","shineIntensity"]]],[10,[6,[7,"d","vec4f"],[[6,[7,"d","vec3f"],["shineLayer"]],[1,[5,"1"],"-","maskedGlow"]]]]]],"externalNames":["d","std","rotationBindGroupLayout","reverseHoloDetectionChannelFlagsBindGroupLayout","textureBindGroupLayout","maskTextureBindGroupLayout","rgbToHSV","hueShift"]},
|
|
70
74
|
get externals() {
|
|
71
75
|
return {
|
|
72
76
|
d,
|