react-native-shine 0.7.0 → 0.8.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 +126 -135
- package/lib/module/components/Content.js.map +1 -1
- package/lib/module/components/Shine.js +22 -3
- package/lib/module/components/Shine.js.map +1 -1
- package/lib/module/components/ShineGroup.js +0 -4
- package/lib/module/components/ShineGroup.js.map +1 -1
- package/lib/module/enums/colorPresets.js +192 -0
- package/lib/module/enums/colorPresets.js.map +1 -1
- package/lib/module/enums/effectDefaults.js +59 -0
- package/lib/module/enums/effectDefaults.js.map +1 -0
- package/lib/module/enums/effectPresets.js +67 -10
- package/lib/module/enums/effectPresets.js.map +1 -1
- package/lib/module/shaders/bindGroupLayouts.js +50 -27
- package/lib/module/shaders/bindGroupLayouts.js.map +1 -1
- package/lib/module/shaders/bindGroupUtils.js +30 -44
- package/lib/module/shaders/bindGroupUtils.js.map +1 -1
- package/lib/module/shaders/colorConversions.js +78 -0
- package/lib/module/shaders/colorConversions.js.map +1 -0
- package/lib/module/shaders/computeShaders/precomputeColorMask.js +34 -0
- package/lib/module/shaders/computeShaders/precomputeColorMask.js.map +1 -0
- package/lib/module/shaders/fragmentShaders/baseTextureFragment.js +4 -9
- package/lib/module/shaders/fragmentShaders/baseTextureFragment.js.map +1 -1
- package/lib/module/shaders/fragmentShaders/colorMaskFragment.js +28 -41
- package/lib/module/shaders/fragmentShaders/colorMaskFragment.js.map +1 -1
- package/lib/module/shaders/fragmentShaders/glareFlareFragment.js +84 -0
- package/lib/module/shaders/fragmentShaders/glareFlareFragment.js.map +1 -0
- package/lib/module/shaders/fragmentShaders/glareFragment.js +8 -88
- package/lib/module/shaders/fragmentShaders/glareFragment.js.map +1 -1
- package/lib/module/shaders/fragmentShaders/holoFragment.js +120 -11
- package/lib/module/shaders/fragmentShaders/holoFragment.js.map +1 -1
- package/lib/module/shaders/fragmentShaders/maskFragment.js +5 -4
- package/lib/module/shaders/fragmentShaders/maskFragment.js.map +1 -1
- package/lib/module/shaders/fragmentShaders/reverseHoloFragment.js +7 -7
- package/lib/module/shaders/fragmentShaders/reverseHoloFragment.js.map +1 -1
- package/lib/module/shaders/pipelineSetups.js +5 -62
- package/lib/module/shaders/pipelineSetups.js.map +1 -1
- package/lib/module/shaders/resourceManagement/bufferManager.js.map +1 -1
- package/lib/module/shaders/resourceManagement/buffersMap.js +41 -0
- package/lib/module/shaders/resourceManagement/buffersMap.js.map +1 -0
- package/lib/module/shaders/resourceManagement/pipelineMap.js +115 -0
- package/lib/module/shaders/resourceManagement/pipelineMap.js.map +1 -0
- package/lib/module/shaders/resourceManagement/textures.js +2 -2
- package/lib/module/shaders/resourceManagement/textures.js.map +1 -1
- package/lib/module/shaders/tgpuUtils.js +41 -0
- package/lib/module/shaders/tgpuUtils.js.map +1 -1
- package/lib/module/shaders/utils.js +21 -2
- package/lib/module/shaders/utils.js.map +1 -1
- package/lib/module/shaders/vertexShaders/mainRotationEffectVertex.js +4 -4
- package/lib/module/shaders/vertexShaders/mainRotationEffectVertex.js.map +1 -1
- package/lib/module/types/typeUtils.js +29 -159
- package/lib/module/types/typeUtils.js.map +1 -1
- package/lib/module/types/types.js +8 -1
- package/lib/module/types/types.js.map +1 -1
- package/lib/module/utils/size.js +4 -4
- package/lib/module/utils/vector.js +38 -38
- package/lib/typescript/src/components/Content.d.ts +6 -6
- package/lib/typescript/src/components/Content.d.ts.map +1 -1
- package/lib/typescript/src/components/Shine.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/colorPresets.d.ts +152 -0
- package/lib/typescript/src/enums/colorPresets.d.ts.map +1 -1
- package/lib/typescript/src/enums/effectDefaults.d.ts +39 -0
- package/lib/typescript/src/enums/effectDefaults.d.ts.map +1 -0
- package/lib/typescript/src/enums/effectPresets.d.ts +284 -5
- package/lib/typescript/src/enums/effectPresets.d.ts.map +1 -1
- package/lib/typescript/src/shaders/bindGroupLayouts.d.ts +82 -41
- package/lib/typescript/src/shaders/bindGroupLayouts.d.ts.map +1 -1
- package/lib/typescript/src/shaders/bindGroupUtils.d.ts +86 -70
- package/lib/typescript/src/shaders/bindGroupUtils.d.ts.map +1 -1
- package/lib/typescript/src/shaders/colorConversions.d.ts +4 -0
- package/lib/typescript/src/shaders/colorConversions.d.ts.map +1 -0
- package/lib/typescript/src/shaders/computeShaders/precomputeColorMask.d.ts +5 -0
- package/lib/typescript/src/shaders/computeShaders/precomputeColorMask.d.ts.map +1 -0
- package/lib/typescript/src/shaders/fragmentShaders/baseTextureFragment.d.ts.map +1 -1
- package/lib/typescript/src/shaders/fragmentShaders/colorMaskFragment.d.ts.map +1 -1
- package/lib/typescript/src/shaders/fragmentShaders/glareFlareFragment.d.ts +5 -0
- package/lib/typescript/src/shaders/fragmentShaders/glareFlareFragment.d.ts.map +1 -0
- package/lib/typescript/src/shaders/fragmentShaders/glareFragment.d.ts +0 -3
- package/lib/typescript/src/shaders/fragmentShaders/glareFragment.d.ts.map +1 -1
- package/lib/typescript/src/shaders/fragmentShaders/holoFragment.d.ts +7 -0
- package/lib/typescript/src/shaders/fragmentShaders/holoFragment.d.ts.map +1 -1
- package/lib/typescript/src/shaders/fragmentShaders/maskFragment.d.ts.map +1 -1
- package/lib/typescript/src/shaders/fragmentShaders/reverseHoloFragment.d.ts.map +1 -1
- package/lib/typescript/src/shaders/pipelineSetups.d.ts +3 -10
- package/lib/typescript/src/shaders/pipelineSetups.d.ts.map +1 -1
- package/lib/typescript/src/shaders/resourceManagement/bufferManager.d.ts +5 -3
- package/lib/typescript/src/shaders/resourceManagement/bufferManager.d.ts.map +1 -1
- package/lib/typescript/src/shaders/resourceManagement/buffersMap.d.ts +10 -0
- package/lib/typescript/src/shaders/resourceManagement/buffersMap.d.ts.map +1 -0
- package/lib/typescript/src/shaders/resourceManagement/pipelineMap.d.ts +24 -0
- package/lib/typescript/src/shaders/resourceManagement/pipelineMap.d.ts.map +1 -0
- package/lib/typescript/src/shaders/resourceManagement/textures.d.ts +0 -1
- package/lib/typescript/src/shaders/resourceManagement/textures.d.ts.map +1 -1
- package/lib/typescript/src/shaders/tgpuUtils.d.ts +3 -0
- package/lib/typescript/src/shaders/tgpuUtils.d.ts.map +1 -1
- package/lib/typescript/src/shaders/utils.d.ts +1 -0
- package/lib/typescript/src/shaders/utils.d.ts.map +1 -1
- package/lib/typescript/src/types/typeUtils.d.ts +16 -51
- package/lib/typescript/src/types/typeUtils.d.ts.map +1 -1
- package/lib/typescript/src/types/types.d.ts +59 -54
- package/lib/typescript/src/types/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/Content.tsx +130 -269
- package/src/components/Shine.tsx +28 -3
- package/src/components/ShineGroup.tsx +0 -4
- package/src/enums/colorPresets.ts +59 -1
- package/src/enums/effectDefaults.ts +57 -0
- package/src/enums/effectPresets.ts +142 -9
- package/src/shaders/bindGroupLayouts.ts +64 -28
- package/src/shaders/bindGroupUtils.ts +66 -69
- package/src/shaders/colorConversions.ts +88 -0
- package/src/shaders/computeShaders/precomputeColorMask.ts +29 -0
- package/src/shaders/fragmentShaders/baseTextureFragment.ts +2 -10
- package/src/shaders/fragmentShaders/colorMaskFragment.ts +34 -55
- package/src/shaders/fragmentShaders/glareFlareFragment.ts +79 -0
- package/src/shaders/fragmentShaders/glareFragment.ts +9 -84
- package/src/shaders/fragmentShaders/holoFragment.ts +139 -11
- package/src/shaders/fragmentShaders/maskFragment.ts +3 -9
- package/src/shaders/fragmentShaders/reverseHoloFragment.ts +4 -9
- package/src/shaders/pipelineSetups.ts +16 -125
- package/src/shaders/resourceManagement/bufferManager.ts +8 -3
- package/src/shaders/resourceManagement/buffersMap.ts +80 -0
- package/src/shaders/resourceManagement/pipelineMap.ts +169 -0
- package/src/shaders/resourceManagement/textures.ts +2 -2
- package/src/shaders/tgpuUtils.ts +29 -0
- package/src/shaders/utils.ts +29 -0
- package/src/shaders/vertexShaders/mainRotationEffectVertex.ts +2 -2
- package/src/types/typeUtils.ts +53 -164
- package/src/types/types.ts +111 -60
|
@@ -3,97 +3,17 @@
|
|
|
3
3
|
import tgpu from 'typegpu';
|
|
4
4
|
import * as d from 'typegpu/data';
|
|
5
5
|
import * as std from 'typegpu/std';
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
} from "../bindGroupLayouts.js";
|
|
9
|
-
import { glareColorShift, hueShift, overlayChannels } from "../tgpuUtils.js";
|
|
6
|
+
import { sharedBindGroupLayout, glareBindGroupLayout } from "../bindGroupLayouts.js";
|
|
7
|
+
import { getPixelColorFromVector, glareColorShift, hueShift, overlayChannels } from "../tgpuUtils.js";
|
|
10
8
|
export const glareFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tgpu['~unstable'].fragmentFn({
|
|
11
9
|
in: {
|
|
12
10
|
uv: d.vec2f
|
|
13
11
|
},
|
|
14
12
|
out: d.vec4f
|
|
15
13
|
})(($ => (globalThis.__TYPEGPU_META__ ??= new WeakMap()).set($.f = input => {
|
|
16
|
-
const texcoord = d.vec2f(input.uv.x, 1.0 - input.uv.y);
|
|
17
|
-
const uv = d.vec2f(input.uv.x, 1.0 - input.uv.y);
|
|
18
|
-
const centeredCoords = std.sub(std.mul(uv, 2.0), 1); //-1 to 1
|
|
19
|
-
|
|
20
|
-
const rot = rotationBindGroupLayout.$.vec;
|
|
21
|
-
const center = std.add(d.vec2f(0.0), d.vec2f(rot.x, rot.y));
|
|
22
|
-
const glareOptions = glareBindGroupLayout.$.glareOptions;
|
|
23
|
-
const glareIntensity = glareOptions.glareIntensity;
|
|
24
|
-
const glowPower = glareOptions.glowPower;
|
|
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;
|
|
30
|
-
|
|
31
|
-
// const mask = colorMaskBindGroupLayout.$.mask;
|
|
32
|
-
// const maskedColor = mask.baseColor;
|
|
33
|
-
// const rgbToleranceRange = mask.rgbToleranceRange;
|
|
34
|
-
|
|
35
|
-
let color = std.textureSample(textureBindGroupLayout.$.texture, textureBindGroupLayout.$.sampler, texcoord);
|
|
36
|
-
|
|
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
|
-
// if (upperCheck && lowerCheck) {
|
|
42
|
-
// return color;
|
|
43
|
-
// }
|
|
44
|
-
|
|
45
|
-
//glareIntensity
|
|
46
|
-
const dst = std.exp(-std.distance(center, centeredCoords));
|
|
47
|
-
const distToCenter = std.smoothstep(0.0, 1 / glareIntensity, dst);
|
|
48
|
-
|
|
49
|
-
//glowPower
|
|
50
|
-
let glow = d.vec3f(distToCenter);
|
|
51
|
-
glow = std.mul(glow, glowPower * color.w);
|
|
52
|
-
|
|
53
|
-
//hueBlend
|
|
54
|
-
const hueBlend = d.f32(hueBlendPower) * dst / 10.0;
|
|
55
|
-
|
|
56
|
-
//lightIntensity
|
|
57
|
-
glow = std.add(glow, lightIntensity / 10.0);
|
|
58
|
-
let shiftedRGB = glareColorShift(color.xyz, dst / (lightIntensity * 2));
|
|
59
|
-
|
|
60
|
-
//hueShiftAngleMin/Max
|
|
61
|
-
const hueShiftAngle = std.smoothstep(hueShiftAngleMin, hueShiftAngleMax, distToCenter);
|
|
62
|
-
const shiftedHue = hueShift(shiftedRGB, hueShiftAngle);
|
|
63
|
-
shiftedRGB = overlayChannels(shiftedRGB, shiftedHue);
|
|
64
|
-
color = d.vec4f(std.mix(color.xyz, shiftedRGB, hueBlend), color.w);
|
|
65
|
-
const baseColor = color;
|
|
66
|
-
const blendColor = glow;
|
|
67
|
-
const combined = overlayChannels(baseColor.xyz, blendColor);
|
|
68
|
-
color = d.vec4f(std.mix(color.xyz, combined, glow), color.w);
|
|
69
|
-
return color;
|
|
70
|
-
}, {
|
|
71
|
-
v: 1,
|
|
72
|
-
name: void 0,
|
|
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"]},
|
|
74
|
-
get externals() {
|
|
75
|
-
return {
|
|
76
|
-
d,
|
|
77
|
-
std,
|
|
78
|
-
rotationBindGroupLayout,
|
|
79
|
-
glareBindGroupLayout,
|
|
80
|
-
textureBindGroupLayout,
|
|
81
|
-
glareColorShift,
|
|
82
|
-
hueShift,
|
|
83
|
-
overlayChannels
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
}) && $.f)({})), "glareFragment");
|
|
87
|
-
export const newGlareFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tgpu['~unstable'].fragmentFn({
|
|
88
|
-
in: {
|
|
89
|
-
uv: d.vec2f
|
|
90
|
-
},
|
|
91
|
-
out: d.vec4f
|
|
92
|
-
})(($ => (globalThis.__TYPEGPU_META__ ??= new WeakMap()).set($.f = input => {
|
|
93
|
-
const texcoord = d.vec2f(input.uv.x, 1.0 - input.uv.y);
|
|
94
14
|
const uv = d.vec2f(input.uv.x, 1.0 - input.uv.y);
|
|
95
15
|
const centeredCoords = std.sub(std.mul(uv, 2.0), 1.0);
|
|
96
|
-
const rot =
|
|
16
|
+
const rot = sharedBindGroupLayout.$.rot;
|
|
97
17
|
const center = std.add(d.vec2f(0.0), d.vec2f(rot.x, rot.y)); // do not change
|
|
98
18
|
|
|
99
19
|
const opts = glareBindGroupLayout.$.glareOptions;
|
|
@@ -106,7 +26,7 @@ export const newGlareFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tg
|
|
|
106
26
|
const hueShiftAngleMin = glareColor.hueShiftAngleMin; // degrees
|
|
107
27
|
const hueShiftAngleMax = glareColor.hueShiftAngleMax; // degrees
|
|
108
28
|
|
|
109
|
-
let color =
|
|
29
|
+
let color = getPixelColorFromVector(uv);
|
|
110
30
|
const dist = std.distance(center, centeredCoords);
|
|
111
31
|
const radial = std.exp(-dist); // (0,1], steeper near center
|
|
112
32
|
const radialScaled = std.mul(radial, std.add(1.0, std.max(0.0, glareIntensity)));
|
|
@@ -130,18 +50,18 @@ export const newGlareFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tg
|
|
|
130
50
|
}, {
|
|
131
51
|
v: 1,
|
|
132
52
|
name: void 0,
|
|
133
|
-
ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"
|
|
53
|
+
ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[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,"sharedBindGroupLayout","$"],"rot"]],[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,"getPixelColorFromVector",["uv"]]],[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","sharedBindGroupLayout","glareBindGroupLayout","getPixelColorFromVector","glareColorShift","hueShift","overlayChannels"]},
|
|
134
54
|
get externals() {
|
|
135
55
|
return {
|
|
136
56
|
d,
|
|
137
57
|
std,
|
|
138
|
-
|
|
58
|
+
sharedBindGroupLayout,
|
|
139
59
|
glareBindGroupLayout,
|
|
140
|
-
|
|
60
|
+
getPixelColorFromVector,
|
|
141
61
|
glareColorShift,
|
|
142
62
|
hueShift,
|
|
143
63
|
overlayChannels
|
|
144
64
|
};
|
|
145
65
|
}
|
|
146
|
-
}) && $.f)({})), "
|
|
66
|
+
}) && $.f)({})), "glareFragment");
|
|
147
67
|
//# sourceMappingURL=glareFragment.js.map
|
|
@@ -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","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":[]}
|
|
1
|
+
{"version":3,"names":["tgpu","d","std","sharedBindGroupLayout","glareBindGroupLayout","getPixelColorFromVector","glareColorShift","hueShift","overlayChannels","glareFragment","globalThis","__TYPEGPU_AUTONAME__","a","fragmentFn","in","uv","vec2f","out","vec4f","$","__TYPEGPU_META__","WeakMap","set","f","input","x","y","centeredCoords","sub","mul","rot","center","add","opts","glareOptions","glareIntensity","glowPower","lightIntensity","glareColor","hueBlendPower","hueShiftAngleMin","hueShiftAngleMax","color","dist","distance","radial","exp","radialScaled","max","influenceRaw","smoothstep","curveExp","clamp","glowMask","pow","div","maskedGlow","w","boostedRGB","xyz","hueT","hueAngle","mix","hueShifted","hueMixWeight","chromaMixed","glareStrength","glareLayer","vec3f","overlaidRGB","finalRGB","outRGB","v","name","ast","{\"params\":[{\"type\":\"i\",\"name\":\"input\"}],\"body\":[0,[[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,\"sharedBindGroupLayout\",\"$\"],\"rot\"]],[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,\"getPixelColorFromVector\",[\"uv\"]]],[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\",\"sharedBindGroupLayout\",\"glareBindGroupLayout\",\"getPixelColorFromVector\",\"glareColorShift\",\"hueShift\",\"overlayChannels\"]}","externals"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/glareFragment.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,19 +3,128 @@
|
|
|
3
3
|
import tgpu from 'typegpu';
|
|
4
4
|
import * as d from 'typegpu/data';
|
|
5
5
|
import * as std from 'typegpu/std';
|
|
6
|
-
import {
|
|
7
|
-
import { hueShift } from "../tgpuUtils.js";
|
|
6
|
+
import { holoBindGroupLayout, sharedBindGroupLayout } from "../bindGroupLayouts.js";
|
|
7
|
+
import { getPixelColorFromVector, hsvToRGB, hueShift, overlayChannels, random } from "../tgpuUtils.js";
|
|
8
8
|
import { waveCallbackSlot } from "../../enums/waveCallback.js";
|
|
9
|
+
export const holo = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tgpu.fn([d.vec2f, d.f32, d.f32, d.f32], d.vec4f)(($ => (globalThis.__TYPEGPU_META__ ??= new WeakMap()).set($.f = (uv, directionDegreeModifier, shiftModifier, rotationShiftPowerModifier) => {
|
|
10
|
+
const rot = sharedBindGroupLayout.$.rot;
|
|
11
|
+
const textureColor = getPixelColorFromVector(uv);
|
|
12
|
+
const directionDegree = std.add(holoBindGroupLayout.$.holoOptions.directionDegree, directionDegreeModifier);
|
|
13
|
+
const shift = std.add(holoBindGroupLayout.$.holoOptions.shift, shiftModifier);
|
|
14
|
+
const rotationShiftPower = std.mul(holoBindGroupLayout.$.holoOptions.rotationShiftPower, rotationShiftPowerModifier);
|
|
15
|
+
const holoSize = holoBindGroupLayout.$.holoOptions.holoSize;
|
|
16
|
+
const holoMultiplier = holoBindGroupLayout.$.holoOptions.holoMultiplier;
|
|
17
|
+
|
|
18
|
+
//todo: need to redo logic of this, it should base on the calcualted diff size not add additional width
|
|
19
|
+
const holoEaseSize = holoBindGroupLayout.$.holoOptions.holoEaseSize;
|
|
20
|
+
const holoVisibility = holoBindGroupLayout.$.holoOptions.holoVisibility;
|
|
21
|
+
const holoSaturation = holoBindGroupLayout.$.holoOptions.holoSaturation;
|
|
22
|
+
const angelDegrees = std.radians(std.add(holoBindGroupLayout.$.holoOptions.directionDegree, directionDegreeModifier));
|
|
23
|
+
const yMultiplier = std.abs(std.cos(angelDegrees));
|
|
24
|
+
const xMultiplier = std.abs(std.sin(angelDegrees));
|
|
25
|
+
const range = std.add(xMultiplier, yMultiplier);
|
|
26
|
+
const intervalSize = std.div(range, holoMultiplier);
|
|
27
|
+
const x = std.add(std.mul(uv.x, xMultiplier), std.mul(uv.y, yMultiplier)) + shift + 1; //scale to [0,2)
|
|
28
|
+
|
|
29
|
+
const rotationShift = std.add(std.mul(rot.x, xMultiplier), std.mul(rot.y, yMultiplier));
|
|
30
|
+
const shiftMultiplied = std.mul(rotationShift, rotationShiftPower);
|
|
31
|
+
const offset = shiftMultiplied + shift; //why is shitft here?
|
|
32
|
+
|
|
33
|
+
const xOffseted = (x + offset) % intervalSize;
|
|
34
|
+
const diffractionSizeCalculated = std.mul(holoSize, intervalSize);
|
|
35
|
+
const diffractionNoiseSizeCalcualted = std.mul(diffractionSizeCalculated, holoEaseSize);
|
|
36
|
+
const diffractionStart = diffractionNoiseSizeCalcualted;
|
|
37
|
+
const diffractionEnd = std.add(diffractionSizeCalculated, diffractionStart);
|
|
38
|
+
const t = (xOffseted - diffractionStart) / (diffractionEnd - diffractionStart);
|
|
39
|
+
const holoRotated = std.select(0, Math.PI, directionDegree > 179);
|
|
40
|
+
const ft = (1 - std.cos(Math.PI * t - holoRotated)) / 2;
|
|
41
|
+
const hue = -0.06 + ft * 0.85;
|
|
42
|
+
const hueWithNoise = std.add(std.div(random(uv.xy) - 0.5, 180) * 40, hue); //check with normal distribution
|
|
43
|
+
const missingRedHue = hueWithNoise + 1.0; // maps negative values to red from the end of hue
|
|
44
|
+
const rainbowAccurateHue = std.select(missingRedHue, hueWithNoise, hueWithNoise > 0);
|
|
45
|
+
const boundaryCheck = std.any(d.vec2b(xOffseted < diffractionStart, xOffseted > diffractionEnd));
|
|
46
|
+
const xBoundary = std.select(diffractionStart - xOffseted, xOffseted - diffractionEnd, xOffseted > diffractionStart);
|
|
47
|
+
const xBoundaryScalled = std.div(xBoundary, diffractionNoiseSizeCalcualted);
|
|
48
|
+
const boundaryVisibilityScalled = std.pow(xBoundaryScalled, 2);
|
|
49
|
+
const calculatedVisibility = std.clamp(std.mix(holoVisibility, 1, boundaryVisibilityScalled * d.f32(boundaryCheck)), 0, 1);
|
|
50
|
+
const shiftedRGB = hsvToRGB(d.vec3f(rainbowAccurateHue, holoSaturation, 1));
|
|
51
|
+
const vsibilityAdjustsed = std.mul(calculatedVisibility, textureColor.w);
|
|
52
|
+
return d.vec4f(shiftedRGB, vsibilityAdjustsed);
|
|
53
|
+
}, {
|
|
54
|
+
v: 1,
|
|
55
|
+
name: void 0,
|
|
56
|
+
ast: {"params":[{"type":"i","name":"uv"},{"type":"i","name":"directionDegreeModifier"},{"type":"i","name":"shiftModifier"},{"type":"i","name":"rotationShiftPowerModifier"}],"body":[0,[[13,"rot",[7,[7,"sharedBindGroupLayout","$"],"rot"]],[13,"textureColor",[6,"getPixelColorFromVector",["uv"]]],[13,"directionDegree",[6,[7,"std","add"],[[7,[7,[7,"holoBindGroupLayout","$"],"holoOptions"],"directionDegree"],"directionDegreeModifier"]]],[13,"shift",[6,[7,"std","add"],[[7,[7,[7,"holoBindGroupLayout","$"],"holoOptions"],"shift"],"shiftModifier"]]],[13,"rotationShiftPower",[6,[7,"std","mul"],[[7,[7,[7,"holoBindGroupLayout","$"],"holoOptions"],"rotationShiftPower"],"rotationShiftPowerModifier"]]],[13,"holoSize",[7,[7,[7,"holoBindGroupLayout","$"],"holoOptions"],"holoSize"]],[13,"holoMultiplier",[7,[7,[7,"holoBindGroupLayout","$"],"holoOptions"],"holoMultiplier"]],[13,"holoEaseSize",[7,[7,[7,"holoBindGroupLayout","$"],"holoOptions"],"holoEaseSize"]],[13,"holoVisibility",[7,[7,[7,"holoBindGroupLayout","$"],"holoOptions"],"holoVisibility"]],[13,"holoSaturation",[7,[7,[7,"holoBindGroupLayout","$"],"holoOptions"],"holoSaturation"]],[13,"angelDegrees",[6,[7,"std","radians"],[[6,[7,"std","add"],[[7,[7,[7,"holoBindGroupLayout","$"],"holoOptions"],"directionDegree"],"directionDegreeModifier"]]]]],[13,"yMultiplier",[6,[7,"std","abs"],[[6,[7,"std","cos"],["angelDegrees"]]]]],[13,"xMultiplier",[6,[7,"std","abs"],[[6,[7,"std","sin"],["angelDegrees"]]]]],[13,"range",[6,[7,"std","add"],["xMultiplier","yMultiplier"]]],[13,"intervalSize",[6,[7,"std","div"],["range","holoMultiplier"]]],[13,"x",[1,[1,[6,[7,"std","add"],[[6,[7,"std","mul"],[[7,"uv","x"],"xMultiplier"]],[6,[7,"std","mul"],[[7,"uv","y"],"yMultiplier"]]]],"+","shift"],"+",[5,"1"]]],[13,"rotationShift",[6,[7,"std","add"],[[6,[7,"std","mul"],[[7,"rot","x"],"xMultiplier"]],[6,[7,"std","mul"],[[7,"rot","y"],"yMultiplier"]]]]],[13,"shiftMultiplied",[6,[7,"std","mul"],["rotationShift","rotationShiftPower"]]],[13,"offset",[1,"shiftMultiplied","+","shift"]],[13,"xOffseted",[1,[1,"x","+","offset"],"%","intervalSize"]],[13,"diffractionSizeCalculated",[6,[7,"std","mul"],["holoSize","intervalSize"]]],[13,"diffractionNoiseSizeCalcualted",[6,[7,"std","mul"],["diffractionSizeCalculated","holoEaseSize"]]],[13,"diffractionStart","diffractionNoiseSizeCalcualted"],[13,"diffractionEnd",[6,[7,"std","add"],["diffractionSizeCalculated","diffractionStart"]]],[13,"t",[1,[1,"xOffseted","-","diffractionStart"],"/",[1,"diffractionEnd","-","diffractionStart"]]],[13,"holoRotated",[6,[7,"std","select"],[[5,"0"],[7,"Math","PI"],[1,"directionDegree",">",[5,"179"]]]]],[13,"ft",[1,[1,[5,"1"],"-",[6,[7,"std","cos"],[[1,[1,[7,"Math","PI"],"*","t"],"-","holoRotated"]]]],"/",[5,"2"]]],[13,"hue",[1,[4,"-",[5,"0.06"]],"+",[1,"ft","*",[5,"0.85"]]]],[13,"hueWithNoise",[6,[7,"std","add"],[[1,[6,[7,"std","div"],[[1,[6,"random",[[7,"uv","xy"]]],"-",[5,"0.5"]],[5,"180"]]],"*",[5,"40"]],"hue"]]],[13,"missingRedHue",[1,"hueWithNoise","+",[5,"1"]]],[13,"rainbowAccurateHue",[6,[7,"std","select"],["missingRedHue","hueWithNoise",[1,"hueWithNoise",">",[5,"0"]]]]],[13,"boundaryCheck",[6,[7,"std","any"],[[6,[7,"d","vec2b"],[[1,"xOffseted","<","diffractionStart"],[1,"xOffseted",">","diffractionEnd"]]]]]],[13,"xBoundary",[6,[7,"std","select"],[[1,"diffractionStart","-","xOffseted"],[1,"xOffseted","-","diffractionEnd"],[1,"xOffseted",">","diffractionStart"]]]],[13,"xBoundaryScalled",[6,[7,"std","div"],["xBoundary","diffractionNoiseSizeCalcualted"]]],[13,"boundaryVisibilityScalled",[6,[7,"std","pow"],["xBoundaryScalled",[5,"2"]]]],[13,"calculatedVisibility",[6,[7,"std","clamp"],[[6,[7,"std","mix"],["holoVisibility",[5,"1"],[1,"boundaryVisibilityScalled","*",[6,[7,"d","f32"],["boundaryCheck"]]]]],[5,"0"],[5,"1"]]]],[13,"shiftedRGB",[6,"hsvToRGB",[[6,[7,"d","vec3f"],["rainbowAccurateHue","holoSaturation",[5,"1"]]]]]],[13,"vsibilityAdjustsed",[6,[7,"std","mul"],["calculatedVisibility",[7,"textureColor","w"]]]],[10,[6,[7,"d","vec4f"],["shiftedRGB","vsibilityAdjustsed"]]]]],"externalNames":["sharedBindGroupLayout","getPixelColorFromVector","std","holoBindGroupLayout","Math","random","d","hsvToRGB"]},
|
|
57
|
+
get externals() {
|
|
58
|
+
return {
|
|
59
|
+
sharedBindGroupLayout,
|
|
60
|
+
getPixelColorFromVector,
|
|
61
|
+
std,
|
|
62
|
+
holoBindGroupLayout,
|
|
63
|
+
Math,
|
|
64
|
+
random,
|
|
65
|
+
d,
|
|
66
|
+
hsvToRGB
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}) && $.f)({})), "holo");
|
|
70
|
+
export const doubleHoloFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tgpu['~unstable'].fragmentFn({
|
|
71
|
+
in: {
|
|
72
|
+
uv: d.vec2f
|
|
73
|
+
},
|
|
74
|
+
out: d.vec4f
|
|
75
|
+
})(($ => (globalThis.__TYPEGPU_META__ ??= new WeakMap()).set($.f = input => {
|
|
76
|
+
const uv = d.vec2f(input.uv.x, 1.0 - input.uv.y);
|
|
77
|
+
const firstHolo = holo(uv, 0, 0, 1);
|
|
78
|
+
const secondHolo = holo(uv, 178, 0.59, -1);
|
|
79
|
+
const aa = std.add(firstHolo.w, secondHolo.w);
|
|
80
|
+
const vis = std.sub(2.0, aa);
|
|
81
|
+
const test = std.sub(1, vis);
|
|
82
|
+
const visibility = std.clamp(test, 0.9, 1);
|
|
83
|
+
const singleColor = std.select(firstHolo, secondHolo, secondHolo.w !== 1);
|
|
84
|
+
const addedColor = d.vec4f(overlayChannels(firstHolo.xyz, secondHolo.xyz), visibility);
|
|
85
|
+
const finalColor = std.select(singleColor, addedColor, std.all(d.vec2b(secondHolo.w !== 1, firstHolo.w !== 1)));
|
|
86
|
+
return finalColor;
|
|
87
|
+
}, {
|
|
88
|
+
v: 1,
|
|
89
|
+
name: void 0,
|
|
90
|
+
ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"uv",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"firstHolo",[6,"holo",["uv",[5,"0"],[5,"0"],[5,"1"]]]],[13,"secondHolo",[6,"holo",["uv",[5,"178"],[5,"0.59"],[4,"-",[5,"1"]]]]],[13,"aa",[6,[7,"std","add"],[[7,"firstHolo","w"],[7,"secondHolo","w"]]]],[13,"vis",[6,[7,"std","sub"],[[5,"2"],"aa"]]],[13,"test",[6,[7,"std","sub"],[[5,"1"],"vis"]]],[13,"visibility",[6,[7,"std","clamp"],["test",[5,"0.9"],[5,"1"]]]],[13,"singleColor",[6,[7,"std","select"],["firstHolo","secondHolo",[1,[7,"secondHolo","w"],"!=",[5,"1"]]]]],[13,"addedColor",[6,[7,"d","vec4f"],[[6,"overlayChannels",[[7,"firstHolo","xyz"],[7,"secondHolo","xyz"]]],"visibility"]]],[13,"finalColor",[6,[7,"std","select"],["singleColor","addedColor",[6,[7,"std","all"],[[6,[7,"d","vec2b"],[[1,[7,"secondHolo","w"],"!=",[5,"1"]],[1,[7,"firstHolo","w"],"!=",[5,"1"]]]]]]]]],[10,"finalColor"]]],"externalNames":["d","holo","std","overlayChannels"]},
|
|
91
|
+
get externals() {
|
|
92
|
+
return {
|
|
93
|
+
d,
|
|
94
|
+
holo,
|
|
95
|
+
std,
|
|
96
|
+
overlayChannels
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
}) && $.f)({})), "doubleHoloFragment");
|
|
9
100
|
export const holoFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tgpu['~unstable'].fragmentFn({
|
|
10
101
|
in: {
|
|
11
102
|
uv: d.vec2f
|
|
12
103
|
},
|
|
13
104
|
out: d.vec4f
|
|
14
105
|
})(($ => (globalThis.__TYPEGPU_META__ ??= new WeakMap()).set($.f = input => {
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
106
|
+
const uv = d.vec2f(input.uv.x, 1.0 - input.uv.y);
|
|
107
|
+
return holo(uv, 0, 0, 1);
|
|
108
|
+
}, {
|
|
109
|
+
v: 1,
|
|
110
|
+
name: void 0,
|
|
111
|
+
ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"uv",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[10,[6,"holo",["uv",[5,"0"],[5,"0"],[5,"1"]]]]]],"externalNames":["d","holo"]},
|
|
112
|
+
get externals() {
|
|
113
|
+
return {
|
|
114
|
+
d,
|
|
115
|
+
holo
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
}) && $.f)({})), "holoFragment");
|
|
119
|
+
export const oldHoloFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tgpu['~unstable'].fragmentFn({
|
|
120
|
+
in: {
|
|
121
|
+
uv: d.vec2f
|
|
122
|
+
},
|
|
123
|
+
out: d.vec4f
|
|
124
|
+
})(($ => (globalThis.__TYPEGPU_META__ ??= new WeakMap()).set($.f = input => {
|
|
125
|
+
const uv = d.vec2f(input.uv.x, 1.0 - input.uv.y);
|
|
126
|
+
const textureColor = getPixelColorFromVector(uv);
|
|
127
|
+
const rot = sharedBindGroupLayout.$.rot;
|
|
19
128
|
const wave = waveCallbackSlot.$(rot.xy);
|
|
20
129
|
const waveX = wave.x;
|
|
21
130
|
const waveY = wave.y;
|
|
@@ -35,17 +144,17 @@ export const holoFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tgpu['
|
|
|
35
144
|
}, {
|
|
36
145
|
v: 1,
|
|
37
146
|
name: void 0,
|
|
38
|
-
ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"
|
|
147
|
+
ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"uv",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"textureColor",[6,"getPixelColorFromVector",["uv"]]],[13,"rot",[7,[7,"sharedBindGroupLayout","$"],"rot"]],[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","getPixelColorFromVector","sharedBindGroupLayout","waveCallbackSlot","std","Math","hueShift"]},
|
|
39
148
|
get externals() {
|
|
40
149
|
return {
|
|
41
150
|
d,
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
rotationBindGroupLayout,
|
|
151
|
+
getPixelColorFromVector,
|
|
152
|
+
sharedBindGroupLayout,
|
|
45
153
|
waveCallbackSlot,
|
|
154
|
+
std,
|
|
46
155
|
Math,
|
|
47
156
|
hueShift
|
|
48
157
|
};
|
|
49
158
|
}
|
|
50
|
-
}) && $.f)({})), "
|
|
159
|
+
}) && $.f)({})), "oldHoloFragment");
|
|
51
160
|
//# sourceMappingURL=holoFragment.js.map
|
|
@@ -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","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":[]}
|
|
1
|
+
{"version":3,"names":["tgpu","d","std","holoBindGroupLayout","sharedBindGroupLayout","getPixelColorFromVector","hsvToRGB","hueShift","overlayChannels","random","waveCallbackSlot","holo","globalThis","__TYPEGPU_AUTONAME__","a","fn","vec2f","f32","vec4f","$","__TYPEGPU_META__","WeakMap","set","f","uv","directionDegreeModifier","shiftModifier","rotationShiftPowerModifier","rot","textureColor","directionDegree","add","holoOptions","shift","rotationShiftPower","mul","holoSize","holoMultiplier","holoEaseSize","holoVisibility","holoSaturation","angelDegrees","radians","yMultiplier","abs","cos","xMultiplier","sin","range","intervalSize","div","x","y","rotationShift","shiftMultiplied","offset","xOffseted","diffractionSizeCalculated","diffractionNoiseSizeCalcualted","diffractionStart","diffractionEnd","t","holoRotated","select","Math","PI","ft","hue","hueWithNoise","xy","missingRedHue","rainbowAccurateHue","boundaryCheck","any","vec2b","xBoundary","xBoundaryScalled","boundaryVisibilityScalled","pow","calculatedVisibility","clamp","mix","shiftedRGB","vec3f","vsibilityAdjustsed","w","v","name","ast","{\"params\":[{\"type\":\"i\",\"name\":\"uv\"},{\"type\":\"i\",\"name\":\"directionDegreeModifier\"},{\"type\":\"i\",\"name\":\"shiftModifier\"},{\"type\":\"i\",\"name\":\"rotationShiftPowerModifier\"}],\"body\":[0,[[13,\"rot\",[7,[7,\"sharedBindGroupLayout\",\"$\"],\"rot\"]],[13,\"textureColor\",[6,\"getPixelColorFromVector\",[\"uv\"]]],[13,\"directionDegree\",[6,[7,\"std\",\"add\"],[[7,[7,[7,\"holoBindGroupLayout\",\"$\"],\"holoOptions\"],\"directionDegree\"],\"directionDegreeModifier\"]]],[13,\"shift\",[6,[7,\"std\",\"add\"],[[7,[7,[7,\"holoBindGroupLayout\",\"$\"],\"holoOptions\"],\"shift\"],\"shiftModifier\"]]],[13,\"rotationShiftPower\",[6,[7,\"std\",\"mul\"],[[7,[7,[7,\"holoBindGroupLayout\",\"$\"],\"holoOptions\"],\"rotationShiftPower\"],\"rotationShiftPowerModifier\"]]],[13,\"holoSize\",[7,[7,[7,\"holoBindGroupLayout\",\"$\"],\"holoOptions\"],\"holoSize\"]],[13,\"holoMultiplier\",[7,[7,[7,\"holoBindGroupLayout\",\"$\"],\"holoOptions\"],\"holoMultiplier\"]],[13,\"holoEaseSize\",[7,[7,[7,\"holoBindGroupLayout\",\"$\"],\"holoOptions\"],\"holoEaseSize\"]],[13,\"holoVisibility\",[7,[7,[7,\"holoBindGroupLayout\",\"$\"],\"holoOptions\"],\"holoVisibility\"]],[13,\"holoSaturation\",[7,[7,[7,\"holoBindGroupLayout\",\"$\"],\"holoOptions\"],\"holoSaturation\"]],[13,\"angelDegrees\",[6,[7,\"std\",\"radians\"],[[6,[7,\"std\",\"add\"],[[7,[7,[7,\"holoBindGroupLayout\",\"$\"],\"holoOptions\"],\"directionDegree\"],\"directionDegreeModifier\"]]]]],[13,\"yMultiplier\",[6,[7,\"std\",\"abs\"],[[6,[7,\"std\",\"cos\"],[\"angelDegrees\"]]]]],[13,\"xMultiplier\",[6,[7,\"std\",\"abs\"],[[6,[7,\"std\",\"sin\"],[\"angelDegrees\"]]]]],[13,\"range\",[6,[7,\"std\",\"add\"],[\"xMultiplier\",\"yMultiplier\"]]],[13,\"intervalSize\",[6,[7,\"std\",\"div\"],[\"range\",\"holoMultiplier\"]]],[13,\"x\",[1,[1,[6,[7,\"std\",\"add\"],[[6,[7,\"std\",\"mul\"],[[7,\"uv\",\"x\"],\"xMultiplier\"]],[6,[7,\"std\",\"mul\"],[[7,\"uv\",\"y\"],\"yMultiplier\"]]]],\"+\",\"shift\"],\"+\",[5,\"1\"]]],[13,\"rotationShift\",[6,[7,\"std\",\"add\"],[[6,[7,\"std\",\"mul\"],[[7,\"rot\",\"x\"],\"xMultiplier\"]],[6,[7,\"std\",\"mul\"],[[7,\"rot\",\"y\"],\"yMultiplier\"]]]]],[13,\"shiftMultiplied\",[6,[7,\"std\",\"mul\"],[\"rotationShift\",\"rotationShiftPower\"]]],[13,\"offset\",[1,\"shiftMultiplied\",\"+\",\"shift\"]],[13,\"xOffseted\",[1,[1,\"x\",\"+\",\"offset\"],\"%\",\"intervalSize\"]],[13,\"diffractionSizeCalculated\",[6,[7,\"std\",\"mul\"],[\"holoSize\",\"intervalSize\"]]],[13,\"diffractionNoiseSizeCalcualted\",[6,[7,\"std\",\"mul\"],[\"diffractionSizeCalculated\",\"holoEaseSize\"]]],[13,\"diffractionStart\",\"diffractionNoiseSizeCalcualted\"],[13,\"diffractionEnd\",[6,[7,\"std\",\"add\"],[\"diffractionSizeCalculated\",\"diffractionStart\"]]],[13,\"t\",[1,[1,\"xOffseted\",\"-\",\"diffractionStart\"],\"/\",[1,\"diffractionEnd\",\"-\",\"diffractionStart\"]]],[13,\"holoRotated\",[6,[7,\"std\",\"select\"],[[5,\"0\"],[7,\"Math\",\"PI\"],[1,\"directionDegree\",\">\",[5,\"179\"]]]]],[13,\"ft\",[1,[1,[5,\"1\"],\"-\",[6,[7,\"std\",\"cos\"],[[1,[1,[7,\"Math\",\"PI\"],\"*\",\"t\"],\"-\",\"holoRotated\"]]]],\"/\",[5,\"2\"]]],[13,\"hue\",[1,[4,\"-\",[5,\"0.06\"]],\"+\",[1,\"ft\",\"*\",[5,\"0.85\"]]]],[13,\"hueWithNoise\",[6,[7,\"std\",\"add\"],[[1,[6,[7,\"std\",\"div\"],[[1,[6,\"random\",[[7,\"uv\",\"xy\"]]],\"-\",[5,\"0.5\"]],[5,\"180\"]]],\"*\",[5,\"40\"]],\"hue\"]]],[13,\"missingRedHue\",[1,\"hueWithNoise\",\"+\",[5,\"1\"]]],[13,\"rainbowAccurateHue\",[6,[7,\"std\",\"select\"],[\"missingRedHue\",\"hueWithNoise\",[1,\"hueWithNoise\",\">\",[5,\"0\"]]]]],[13,\"boundaryCheck\",[6,[7,\"std\",\"any\"],[[6,[7,\"d\",\"vec2b\"],[[1,\"xOffseted\",\"<\",\"diffractionStart\"],[1,\"xOffseted\",\">\",\"diffractionEnd\"]]]]]],[13,\"xBoundary\",[6,[7,\"std\",\"select\"],[[1,\"diffractionStart\",\"-\",\"xOffseted\"],[1,\"xOffseted\",\"-\",\"diffractionEnd\"],[1,\"xOffseted\",\">\",\"diffractionStart\"]]]],[13,\"xBoundaryScalled\",[6,[7,\"std\",\"div\"],[\"xBoundary\",\"diffractionNoiseSizeCalcualted\"]]],[13,\"boundaryVisibilityScalled\",[6,[7,\"std\",\"pow\"],[\"xBoundaryScalled\",[5,\"2\"]]]],[13,\"calculatedVisibility\",[6,[7,\"std\",\"clamp\"],[[6,[7,\"std\",\"mix\"],[\"holoVisibility\",[5,\"1\"],[1,\"boundaryVisibilityScalled\",\"*\",[6,[7,\"d\",\"f32\"],[\"boundaryCheck\"]]]]],[5,\"0\"],[5,\"1\"]]]],[13,\"shiftedRGB\",[6,\"hsvToRGB\",[[6,[7,\"d\",\"vec3f\"],[\"rainbowAccurateHue\",\"holoSaturation\",[5,\"1\"]]]]]],[13,\"vsibilityAdjustsed\",[6,[7,\"std\",\"mul\"],[\"calculatedVisibility\",[7,\"textureColor\",\"w\"]]]],[10,[6,[7,\"d\",\"vec4f\"],[\"shiftedRGB\",\"vsibilityAdjustsed\"]]]]],\"externalNames\":[\"sharedBindGroupLayout\",\"getPixelColorFromVector\",\"std\",\"holoBindGroupLayout\",\"Math\",\"random\",\"d\",\"hsvToRGB\"]}","externals","doubleHoloFragment","fragmentFn","in","out","input","firstHolo","secondHolo","aa","vis","sub","test","visibility","singleColor","addedColor","xyz","finalColor","all","{\"params\":[{\"type\":\"i\",\"name\":\"input\"}],\"body\":[0,[[13,\"uv\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"firstHolo\",[6,\"holo\",[\"uv\",[5,\"0\"],[5,\"0\"],[5,\"1\"]]]],[13,\"secondHolo\",[6,\"holo\",[\"uv\",[5,\"178\"],[5,\"0.59\"],[4,\"-\",[5,\"1\"]]]]],[13,\"aa\",[6,[7,\"std\",\"add\"],[[7,\"firstHolo\",\"w\"],[7,\"secondHolo\",\"w\"]]]],[13,\"vis\",[6,[7,\"std\",\"sub\"],[[5,\"2\"],\"aa\"]]],[13,\"test\",[6,[7,\"std\",\"sub\"],[[5,\"1\"],\"vis\"]]],[13,\"visibility\",[6,[7,\"std\",\"clamp\"],[\"test\",[5,\"0.9\"],[5,\"1\"]]]],[13,\"singleColor\",[6,[7,\"std\",\"select\"],[\"firstHolo\",\"secondHolo\",[1,[7,\"secondHolo\",\"w\"],\"!=\",[5,\"1\"]]]]],[13,\"addedColor\",[6,[7,\"d\",\"vec4f\"],[[6,\"overlayChannels\",[[7,\"firstHolo\",\"xyz\"],[7,\"secondHolo\",\"xyz\"]]],\"visibility\"]]],[13,\"finalColor\",[6,[7,\"std\",\"select\"],[\"singleColor\",\"addedColor\",[6,[7,\"std\",\"all\"],[[6,[7,\"d\",\"vec2b\"],[[1,[7,\"secondHolo\",\"w\"],\"!=\",[5,\"1\"]],[1,[7,\"firstHolo\",\"w\"],\"!=\",[5,\"1\"]]]]]]]]],[10,\"finalColor\"]]],\"externalNames\":[\"d\",\"holo\",\"std\",\"overlayChannels\"]}","holoFragment","{\"params\":[{\"type\":\"i\",\"name\":\"input\"}],\"body\":[0,[[13,\"uv\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[10,[6,\"holo\",[\"uv\",[5,\"0\"],[5,\"0\"],[5,\"1\"]]]]]],\"externalNames\":[\"d\",\"holo\"]}","oldHoloFragment","wave","waveX","waveY","band","frequency","hueAngle","rainbowColor","{\"params\":[{\"type\":\"i\",\"name\":\"input\"}],\"body\":[0,[[13,\"uv\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"textureColor\",[6,\"getPixelColorFromVector\",[\"uv\"]]],[13,\"rot\",[7,[7,\"sharedBindGroupLayout\",\"$\"],\"rot\"]],[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\",\"getPixelColorFromVector\",\"sharedBindGroupLayout\",\"waveCallbackSlot\",\"std\",\"Math\",\"hueShift\"]}"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/holoFragment.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
import tgpu from 'typegpu';
|
|
4
4
|
import * as d from 'typegpu/data';
|
|
5
5
|
import * as std from 'typegpu/std';
|
|
6
|
-
import {
|
|
6
|
+
import { maskTextureBindGroupLayout } from "../bindGroupLayouts.js";
|
|
7
|
+
import { getPixelColorFromVector } from "../tgpuUtils.js";
|
|
7
8
|
const maskFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tgpu['~unstable'].fragmentFn({
|
|
8
9
|
in: {
|
|
9
10
|
uv: d.vec2f
|
|
@@ -13,18 +14,18 @@ const maskFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tgpu['~unstab
|
|
|
13
14
|
const texcoord = d.vec2f(input.uv.x, 1.0 - input.uv.y);
|
|
14
15
|
const mask = std.textureSample(maskTextureBindGroupLayout.$.texture, maskTextureBindGroupLayout.$.sampler, texcoord);
|
|
15
16
|
const reversedMask = d.vec4f(std.sub(1.0, mask.xyz), mask.w);
|
|
16
|
-
let color =
|
|
17
|
+
let color = getPixelColorFromVector(texcoord);
|
|
17
18
|
return d.vec4f(color.xyz, reversedMask.x);
|
|
18
19
|
}, {
|
|
19
20
|
v: 1,
|
|
20
21
|
name: void 0,
|
|
21
|
-
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",[6,[7,"std","textureSample"],[[7,[7,"maskTextureBindGroupLayout","$"],"texture"],[7,[7,"maskTextureBindGroupLayout","$"],"sampler"],"texcoord"]]],[13,"reversedMask",[6,[7,"d","vec4f"],[[6,[7,"std","sub"],[[5,"1"],[7,"mask","xyz"]]],[7,"mask","w"]]]],[12,"color",[6,
|
|
22
|
+
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",[6,[7,"std","textureSample"],[[7,[7,"maskTextureBindGroupLayout","$"],"texture"],[7,[7,"maskTextureBindGroupLayout","$"],"sampler"],"texcoord"]]],[13,"reversedMask",[6,[7,"d","vec4f"],[[6,[7,"std","sub"],[[5,"1"],[7,"mask","xyz"]]],[7,"mask","w"]]]],[12,"color",[6,"getPixelColorFromVector",["texcoord"]]],[10,[6,[7,"d","vec4f"],[[7,"color","xyz"],[7,"reversedMask","x"]]]]]],"externalNames":["d","std","maskTextureBindGroupLayout","getPixelColorFromVector"]},
|
|
22
23
|
get externals() {
|
|
23
24
|
return {
|
|
24
25
|
d,
|
|
25
26
|
std,
|
|
26
27
|
maskTextureBindGroupLayout,
|
|
27
|
-
|
|
28
|
+
getPixelColorFromVector
|
|
28
29
|
};
|
|
29
30
|
}
|
|
30
31
|
}) && $.f)({})), "maskFragment");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["tgpu","d","std","
|
|
1
|
+
{"version":3,"names":["tgpu","d","std","maskTextureBindGroupLayout","getPixelColorFromVector","maskFragment","globalThis","__TYPEGPU_AUTONAME__","a","fragmentFn","in","uv","vec2f","out","vec4f","$","__TYPEGPU_META__","WeakMap","set","f","input","texcoord","x","y","mask","textureSample","texture","sampler","reversedMask","sub","xyz","w","color","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\",[6,[7,\"std\",\"textureSample\"],[[7,[7,\"maskTextureBindGroupLayout\",\"$\"],\"texture\"],[7,[7,\"maskTextureBindGroupLayout\",\"$\"],\"sampler\"],\"texcoord\"]]],[13,\"reversedMask\",[6,[7,\"d\",\"vec4f\"],[[6,[7,\"std\",\"sub\"],[[5,\"1\"],[7,\"mask\",\"xyz\"]]],[7,\"mask\",\"w\"]]]],[12,\"color\",[6,\"getPixelColorFromVector\",[\"texcoord\"]]],[10,[6,[7,\"d\",\"vec4f\"],[[7,\"color\",\"xyz\"],[7,\"reversedMask\",\"x\"]]]]]],\"externalNames\":[\"d\",\"std\",\"maskTextureBindGroupLayout\",\"getPixelColorFromVector\"]}","externals"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/maskFragment.ts"],"mappings":";;AAAA,OAAOA,IAAI,MAAM,SAAS;AAC1B,OAAO,KAAKC,CAAC,MAAM,cAAc;AACjC,OAAO,KAAKC,GAAG,MAAM,aAAa;AAClC,SAASC,0BAA0B,QAAQ,wBAAqB;AAChE,SAASC,uBAAuB,QAAQ,iBAAc;AAEtD,MAAMC,YAAY,IAAAC,UAAA,CAAAC,oBAAA,KAAAC,CAAA,IAAAA,CAAA,GAAGR,IAAI,CAAC,WAAW,CAAC,CAACS,UAAU,CAAC;EAChDC,EAAE,EAAE;IAAEC,EAAE,EAAEV,CAAC,CAACW;EAAM,CAAC;EACnBC,GAAG,EAAEZ,CAAC,CAACa;AACT,CAAC,CAAC,EAAAC,CAAA,KAAAT,UAAA,CAAAU,gBAAA,SAAAC,OAAA,IAAAC,GAAA,CAAAH,CAAA,CAAAI,CAAA,GAAEC,KAAK,IAAK;EACZ,MAAMC,QAAQ,GAAGpB,CAAC,CAACW,KAAK,CAACQ,KAAK,CAACT,EAAE,CAACW,CAAC,EAAE,GAAG,GAAGF,KAAK,CAACT,EAAE,CAACY,CAAC,CAAC;EAEtD,MAAMC,IAAI,GAAGtB,GAAG,CAACuB,aAAa,CAC5BtB,0BAA0B,CAACY,CAAC,CAACW,OAAO,EACpCvB,0BAA0B,CAACY,CAAC,CAACY,OAAO,EACpCN,QACF,CAAC;EACD,MAAMO,YAAY,GAAG3B,CAAC,CAACa,KAAK,CAACZ,GAAG,CAAC2B,GAAG,CAAC,GAAG,EAAEL,IAAI,CAACM,GAAG,CAAC,EAAEN,IAAI,CAACO,CAAC,CAAC;EAE5D,IAAIC,KAAK,GAAG5B,uBAAuB,CAACiB,QAAQ,CAAC;EAE7C,OAAOpB,CAAC,CAACa,KAAK,CAACkB,KAAK,CAACF,GAAG,EAAEF,YAAY,CAACN,CAAC,CAAC;AAC3C,CAAC;EAAAW,CAAA;EAAAC,IAAA;EAAAC,GAAA,EAAAC,inBAAA;EAAA,IAAAC,UAAA;IAAA;MAAApC,CAAA;MAAAC,GAAA;MAAAC,0BAAA;MAAAC;IAAA;EAAA;AAAA,MAAAW,CAAA,CAAAI,CAAA,uBAAC;AAEF,eAAed,YAAY","ignoreList":[]}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
import tgpu from 'typegpu';
|
|
4
4
|
import * as d from 'typegpu/data';
|
|
5
5
|
import * as std from 'typegpu/std';
|
|
6
|
-
import {
|
|
7
|
-
import { hueShift, rgbToHSV } from "../tgpuUtils.js";
|
|
6
|
+
import { maskTextureBindGroupLayout, reverseHoloDetectionChannelFlagsBindGroupLayout, sharedBindGroupLayout } from "../bindGroupLayouts.js";
|
|
7
|
+
import { getPixelColorFromVector, hueShift, rgbToHSV } from "../tgpuUtils.js";
|
|
8
8
|
export const reverseHoloFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tgpu['~unstable'].fragmentFn({
|
|
9
9
|
in: {
|
|
10
10
|
uv: d.vec2f
|
|
@@ -14,7 +14,7 @@ export const reverseHoloFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))
|
|
|
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 =
|
|
17
|
+
const rot = sharedBindGroupLayout.$.rot;
|
|
18
18
|
const center = std.add(d.vec2f(0.0), d.vec2f(rot.x, rot.y)); // center from device orientation/touch
|
|
19
19
|
|
|
20
20
|
// glare options---------------------------------
|
|
@@ -38,7 +38,7 @@ export const reverseHoloFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))
|
|
|
38
38
|
const valueFlag = detectionChannelFlags.value;
|
|
39
39
|
//------------------------------------------------
|
|
40
40
|
|
|
41
|
-
const cardColor =
|
|
41
|
+
const cardColor = getPixelColorFromVector(texcoord);
|
|
42
42
|
const holoMaskColor = std.textureSample(maskTextureBindGroupLayout.$.texture, maskTextureBindGroupLayout.$.sampler, texcoord);
|
|
43
43
|
const dist = std.distance(centeredCoords, center);
|
|
44
44
|
const rFalloff = std.exp(-dist);
|
|
@@ -70,14 +70,14 @@ export const reverseHoloFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))
|
|
|
70
70
|
}, {
|
|
71
71
|
v: 1,
|
|
72
72
|
name: void 0,
|
|
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,"
|
|
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,"sharedBindGroupLayout","$"],"rot"]],[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,"getPixelColorFromVector",["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","sharedBindGroupLayout","reverseHoloDetectionChannelFlagsBindGroupLayout","getPixelColorFromVector","maskTextureBindGroupLayout","rgbToHSV","hueShift"]},
|
|
74
74
|
get externals() {
|
|
75
75
|
return {
|
|
76
76
|
d,
|
|
77
77
|
std,
|
|
78
|
-
|
|
78
|
+
sharedBindGroupLayout,
|
|
79
79
|
reverseHoloDetectionChannelFlagsBindGroupLayout,
|
|
80
|
-
|
|
80
|
+
getPixelColorFromVector,
|
|
81
81
|
maskTextureBindGroupLayout,
|
|
82
82
|
rgbToHSV,
|
|
83
83
|
hueShift
|