react-native-shine 0.2.2 → 0.3.1
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/README.md +22 -7
- package/lib/module/components/Content.js +232 -0
- package/lib/module/components/Content.js.map +1 -0
- package/lib/module/components/Shine.js +33 -0
- package/lib/module/components/Shine.js.map +1 -0
- package/lib/module/components/ShineGroup.js +92 -0
- package/lib/module/components/ShineGroup.js.map +1 -0
- package/lib/module/enums/waveCallback.js +19 -0
- package/lib/module/enums/waveCallback.js.map +1 -0
- package/lib/module/hooks/useAnimationFrame.js +17 -0
- package/lib/module/hooks/useAnimationFrame.js.map +1 -0
- package/lib/module/hooks/useOrientation.js +10 -0
- package/lib/module/hooks/useOrientation.js.map +1 -0
- package/lib/module/index.js +6 -219
- package/lib/module/index.js.map +1 -1
- package/lib/module/shaders/bindGroupLayouts.js +41 -6
- package/lib/module/shaders/bindGroupLayouts.js.map +1 -1
- package/lib/module/shaders/bindGroupUtils.js +34 -41
- package/lib/module/shaders/bindGroupUtils.js.map +1 -1
- package/lib/module/shaders/fragmentShaders/colorMaskFragment.js +2 -2
- package/lib/module/shaders/fragmentShaders/colorMaskFragment.js.map +1 -1
- package/lib/module/shaders/fragmentShaders/glareFragment.js +115 -0
- package/lib/module/shaders/fragmentShaders/glareFragment.js.map +1 -0
- package/lib/module/shaders/fragmentShaders/holoFragment.js +28 -0
- package/lib/module/shaders/fragmentShaders/holoFragment.js.map +1 -0
- package/lib/module/shaders/fragmentShaders/maskFragment.js +20 -0
- package/lib/module/shaders/fragmentShaders/maskFragment.js.map +1 -0
- package/lib/module/shaders/fragmentShaders/reverseHoloFragment.js +46 -0
- package/lib/module/shaders/fragmentShaders/reverseHoloFragment.js.map +1 -0
- package/lib/module/shaders/pipelineSetups.js +72 -17
- package/lib/module/shaders/pipelineSetups.js.map +1 -1
- package/lib/module/shaders/{resourceManagement.js → resourceManagement/bitmaps.js} +2 -1
- package/lib/module/shaders/resourceManagement/bitmaps.js.map +1 -0
- package/lib/module/shaders/resourceManagement/bufferManager.js +46 -0
- package/lib/module/shaders/resourceManagement/bufferManager.js.map +1 -0
- package/lib/module/shaders/resourceManagement/textures.js +24 -0
- package/lib/module/shaders/resourceManagement/textures.js.map +1 -0
- package/lib/module/shaders/tgpuUtils.js +19 -1
- package/lib/module/shaders/tgpuUtils.js.map +1 -1
- package/lib/module/shaders/utils.js +8 -36
- package/lib/module/shaders/utils.js.map +1 -1
- package/lib/module/shaders/vertexShaders/mainRotationEffectVertex.js +47 -0
- package/lib/module/shaders/vertexShaders/mainRotationEffectVertex.js.map +1 -0
- package/lib/module/types/size.js +2 -0
- package/lib/module/types/size.js.map +1 -0
- package/lib/module/types/typeUtils.js +17 -19
- package/lib/module/types/typeUtils.js.map +1 -1
- package/lib/module/types/vector.js +2 -0
- package/lib/module/types/vector.js.map +1 -0
- package/lib/module/utils/size.js +25 -0
- package/lib/module/utils/size.js.map +1 -0
- package/lib/module/utils/vector.js +168 -0
- package/lib/module/utils/vector.js.map +1 -0
- package/lib/typescript/src/components/Content.d.ts +23 -0
- package/lib/typescript/src/components/Content.d.ts.map +1 -0
- package/lib/typescript/src/components/Shine.d.ts +7 -0
- package/lib/typescript/src/components/Shine.d.ts.map +1 -0
- package/lib/typescript/src/components/ShineGroup.d.ts +6 -0
- package/lib/typescript/src/components/ShineGroup.d.ts.map +1 -0
- package/lib/typescript/src/enums/waveCallback.d.ts +9 -0
- package/lib/typescript/src/enums/waveCallback.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useAnimationFrame.d.ts +2 -0
- package/lib/typescript/src/hooks/useAnimationFrame.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useOrientation.d.ts +4 -0
- package/lib/typescript/src/hooks/useOrientation.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +8 -11
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/shaders/bindGroupLayouts.d.ts +46 -8
- package/lib/typescript/src/shaders/bindGroupLayouts.d.ts.map +1 -1
- package/lib/typescript/src/shaders/bindGroupUtils.d.ts +9 -9
- package/lib/typescript/src/shaders/bindGroupUtils.d.ts.map +1 -1
- package/lib/typescript/src/shaders/fragmentShaders/glareFragment.d.ts +8 -0
- package/lib/typescript/src/shaders/fragmentShaders/glareFragment.d.ts.map +1 -0
- package/lib/typescript/src/shaders/fragmentShaders/holoFragment.d.ts +5 -0
- package/lib/typescript/src/shaders/fragmentShaders/holoFragment.d.ts.map +1 -0
- package/lib/typescript/src/shaders/fragmentShaders/maskFragment.d.ts +6 -0
- package/lib/typescript/src/shaders/fragmentShaders/maskFragment.d.ts.map +1 -0
- package/lib/typescript/src/shaders/fragmentShaders/reverseHoloFragment.d.ts +5 -0
- package/lib/typescript/src/shaders/fragmentShaders/reverseHoloFragment.d.ts.map +1 -0
- package/lib/typescript/src/shaders/pipelineSetups.d.ts +9 -4
- package/lib/typescript/src/shaders/pipelineSetups.d.ts.map +1 -1
- package/lib/typescript/src/shaders/{resourceManagement.d.ts → resourceManagement/bitmaps.d.ts} +1 -1
- package/lib/typescript/src/shaders/resourceManagement/bitmaps.d.ts.map +1 -0
- package/lib/typescript/src/shaders/resourceManagement/bufferManager.d.ts +28 -0
- package/lib/typescript/src/shaders/resourceManagement/bufferManager.d.ts.map +1 -0
- package/lib/typescript/src/shaders/resourceManagement/textures.d.ts +8 -0
- package/lib/typescript/src/shaders/resourceManagement/textures.d.ts.map +1 -0
- package/lib/typescript/src/shaders/tgpuUtils.d.ts +5 -1
- package/lib/typescript/src/shaders/tgpuUtils.d.ts.map +1 -1
- package/lib/typescript/src/shaders/utils.d.ts +3 -10
- package/lib/typescript/src/shaders/utils.d.ts.map +1 -1
- package/lib/typescript/src/shaders/vertexShaders/mainRotationEffectVertex.d.ts +6 -0
- package/lib/typescript/src/shaders/vertexShaders/mainRotationEffectVertex.d.ts.map +1 -0
- package/lib/typescript/src/types/size.d.ts +5 -0
- package/lib/typescript/src/types/size.d.ts.map +1 -0
- package/lib/typescript/src/types/typeUtils.d.ts +3 -5
- package/lib/typescript/src/types/typeUtils.d.ts.map +1 -1
- package/lib/typescript/src/types/types.d.ts +10 -3
- package/lib/typescript/src/types/types.d.ts.map +1 -1
- package/lib/typescript/src/types/vector.d.ts +11 -0
- package/lib/typescript/src/types/vector.d.ts.map +1 -0
- package/lib/typescript/src/utils/size.d.ts +5 -0
- package/lib/typescript/src/utils/size.d.ts.map +1 -0
- package/lib/typescript/src/utils/vector.d.ts +33 -0
- package/lib/typescript/src/utils/vector.d.ts.map +1 -0
- package/package.json +7 -5
- package/scripts/postinstall.js +16 -17
- package/src/components/Content.tsx +403 -0
- package/src/components/Shine.tsx +38 -0
- package/src/components/ShineGroup.tsx +100 -0
- package/src/enums/waveCallback.ts +22 -0
- package/src/hooks/useAnimationFrame.ts +21 -0
- package/src/hooks/useOrientation.ts +18 -0
- package/src/index.tsx +14 -322
- package/src/shaders/bindGroupLayouts.ts +45 -8
- package/src/shaders/bindGroupUtils.ts +50 -65
- package/src/shaders/fragmentShaders/colorMaskFragment.ts +2 -2
- package/src/shaders/fragmentShaders/glareFragment.ts +143 -0
- package/src/shaders/fragmentShaders/holoFragment.ts +35 -0
- package/src/shaders/fragmentShaders/maskFragment.ts +31 -0
- package/src/shaders/fragmentShaders/reverseHoloFragment.ts +71 -0
- package/src/shaders/pipelineSetups.ts +152 -20
- package/src/shaders/{resourceManagement.ts → resourceManagement/bitmaps.ts} +1 -0
- package/src/shaders/resourceManagement/bufferManager.ts +82 -0
- package/src/shaders/resourceManagement/textures.ts +42 -0
- package/src/shaders/tgpuUtils.ts +36 -1
- package/src/shaders/utils.ts +13 -57
- package/src/shaders/vertexShaders/mainRotationEffectVertex.ts +76 -0
- package/src/types/size.ts +4 -0
- package/src/types/typeUtils.ts +22 -36
- package/src/types/types.ts +19 -3
- package/src/types/vector.ts +13 -0
- package/src/utils/size.ts +12 -0
- package/src/utils/vector.ts +132 -0
- package/lib/module/shaders/fragmentShaders/bloomFragment.js +0 -66
- package/lib/module/shaders/fragmentShaders/bloomFragment.js.map +0 -1
- package/lib/module/shaders/resourceManagement.js.map +0 -1
- package/lib/typescript/src/shaders/fragmentShaders/bloomFragment.d.ts +0 -6
- package/lib/typescript/src/shaders/fragmentShaders/bloomFragment.d.ts.map +0 -1
- package/lib/typescript/src/shaders/resourceManagement.d.ts.map +0 -1
- package/src/shaders/fragmentShaders/bloomFragment.ts +0 -83
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import tgpu from 'typegpu';
|
|
4
|
+
import * as d from 'typegpu/data';
|
|
5
|
+
import * as std from 'typegpu/std';
|
|
6
|
+
import { textureBindGroupLayout, maskTextureBindGroupLayout } from "../bindGroupLayouts.js";
|
|
7
|
+
const maskFragment = tgpu['~unstable'].fragmentFn({
|
|
8
|
+
in: {
|
|
9
|
+
uv: d.vec2f
|
|
10
|
+
},
|
|
11
|
+
out: d.vec4f
|
|
12
|
+
})(input => {
|
|
13
|
+
const texcoord = d.vec2f(input.uv.x, 1.0 - input.uv.y);
|
|
14
|
+
const mask = std.textureSample(maskTextureBindGroupLayout.$.texture, maskTextureBindGroupLayout.$.sampler, texcoord);
|
|
15
|
+
const reversedMask = d.vec4f(std.sub(1.0, mask.xyz), mask.w);
|
|
16
|
+
let color = std.textureSample(textureBindGroupLayout.$.texture, textureBindGroupLayout.$.sampler, texcoord);
|
|
17
|
+
return d.vec4f(color.xyz, reversedMask.x);
|
|
18
|
+
});
|
|
19
|
+
export default maskFragment;
|
|
20
|
+
//# sourceMappingURL=maskFragment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["tgpu","d","std","textureBindGroupLayout","maskTextureBindGroupLayout","maskFragment","fragmentFn","in","uv","vec2f","out","vec4f","input","texcoord","x","y","mask","textureSample","$","texture","sampler","reversedMask","sub","xyz","w","color"],"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,SACEC,sBAAsB,EACtBC,0BAA0B,QACrB,wBAAqB;AAE5B,MAAMC,YAAY,GAAGL,IAAI,CAAC,WAAW,CAAC,CAACM,UAAU,CAAC;EAChDC,EAAE,EAAE;IAAEC,EAAE,EAAEP,CAAC,CAACQ;EAAM,CAAC;EACnBC,GAAG,EAAET,CAAC,CAACU;AACT,CAAC,CAAC,CAAEC,KAAK,IAAK;EACZ,MAAMC,QAAQ,GAAGZ,CAAC,CAACQ,KAAK,CAACG,KAAK,CAACJ,EAAE,CAACM,CAAC,EAAE,GAAG,GAAGF,KAAK,CAACJ,EAAE,CAACO,CAAC,CAAC;EAEtD,MAAMC,IAAI,GAAGd,GAAG,CAACe,aAAa,CAC5Bb,0BAA0B,CAACc,CAAC,CAACC,OAAO,EACpCf,0BAA0B,CAACc,CAAC,CAACE,OAAO,EACpCP,QACF,CAAC;EACD,MAAMQ,YAAY,GAAGpB,CAAC,CAACU,KAAK,CAACT,GAAG,CAACoB,GAAG,CAAC,GAAG,EAAEN,IAAI,CAACO,GAAG,CAAC,EAAEP,IAAI,CAACQ,CAAC,CAAC;EAE5D,IAAIC,KAAK,GAAGvB,GAAG,CAACe,aAAa,CAC3Bd,sBAAsB,CAACe,CAAC,CAACC,OAAO,EAChChB,sBAAsB,CAACe,CAAC,CAACE,OAAO,EAChCP,QACF,CAAC;EAED,OAAOZ,CAAC,CAACU,KAAK,CAACc,KAAK,CAACF,GAAG,EAAEF,YAAY,CAACP,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF,eAAeT,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import tgpu from 'typegpu';
|
|
4
|
+
import * as d from 'typegpu/data';
|
|
5
|
+
import * as std from 'typegpu/std';
|
|
6
|
+
import { textureBindGroupLayout, maskTextureBindGroupLayout, rotationBindGroupLayout, glareBindGroupLayout } from "../bindGroupLayouts.js";
|
|
7
|
+
import { hueShift } from "../tgpuUtils.js";
|
|
8
|
+
export const reverseHoloFragment = tgpu['~unstable'].fragmentFn({
|
|
9
|
+
in: {
|
|
10
|
+
uv: d.vec2f
|
|
11
|
+
},
|
|
12
|
+
out: d.vec4f
|
|
13
|
+
})(input => {
|
|
14
|
+
const texcoord = d.vec2f(input.uv.x, 1.0 - input.uv.y);
|
|
15
|
+
const uv = texcoord;
|
|
16
|
+
const centeredCoords = std.sub(std.mul(uv, 2.0), 1.0);
|
|
17
|
+
const rot = rotationBindGroupLayout.$.vec;
|
|
18
|
+
const center = std.add(d.vec2f(0.0), d.vec2f(rot.x, rot.y)); // center from device orientation/touch
|
|
19
|
+
|
|
20
|
+
const opts = glareBindGroupLayout.$.glareOptions;
|
|
21
|
+
const glareIntensity = opts.glareIntensity;
|
|
22
|
+
const glowPower = opts.glowPower;
|
|
23
|
+
const hueBlendPower = opts.hueBlendPower;
|
|
24
|
+
const hueShiftAngleMin = opts.hueShiftAngleMin;
|
|
25
|
+
const hueShiftAngleMax = opts.hueShiftAngleMax;
|
|
26
|
+
const lightIntensity = opts.lightIntensity;
|
|
27
|
+
const cardColor = std.textureSample(textureBindGroupLayout.$.texture, textureBindGroupLayout.$.sampler, texcoord);
|
|
28
|
+
const holoMaskColor = std.textureSample(maskTextureBindGroupLayout.$.texture, maskTextureBindGroupLayout.$.sampler, texcoord);
|
|
29
|
+
const dist = std.distance(centeredCoords, center);
|
|
30
|
+
const rFalloff = std.exp(-dist);
|
|
31
|
+
const scaledRadial = std.mul(rFalloff, std.add(1.0, std.max(0.0, glareIntensity)));
|
|
32
|
+
const influence = std.smoothstep(0.0, 1.0, scaledRadial);
|
|
33
|
+
const curvePower = std.clamp(glowPower, 0.05, 64.0);
|
|
34
|
+
const glowMask = std.pow(influence, std.div(1.0, curvePower));
|
|
35
|
+
const holoFactor = (1.0 - holoMaskColor.x) * holoMaskColor.w * std.pow(scaledRadial, 1.5);
|
|
36
|
+
const maskedGlow = std.mul(glowMask, holoFactor); // only affect masked areas
|
|
37
|
+
|
|
38
|
+
const hueAmount = std.mix(hueShiftAngleMin, hueShiftAngleMax, std.clamp(maskedGlow, 0.0, 1.0));
|
|
39
|
+
const sparkleHue = hueShift(cardColor.xyz, hueAmount);
|
|
40
|
+
const hueMixAmt = std.clamp(hueBlendPower / 5.0 * maskedGlow, 0.0, 1.0);
|
|
41
|
+
const chromaMix = std.mix(cardColor.xyz, sparkleHue, hueMixAmt);
|
|
42
|
+
const shineStrength = std.clamp(lightIntensity, 1.0, 100.0);
|
|
43
|
+
const shineLayer = std.mul(chromaMix, 1.5 * shineStrength * maskedGlow);
|
|
44
|
+
return d.vec4f(shineLayer, 1 - maskedGlow);
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=reverseHoloFragment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["tgpu","d","std","textureBindGroupLayout","maskTextureBindGroupLayout","rotationBindGroupLayout","glareBindGroupLayout","hueShift","reverseHoloFragment","fragmentFn","in","uv","vec2f","out","vec4f","input","texcoord","x","y","centeredCoords","sub","mul","rot","$","vec","center","add","opts","glareOptions","glareIntensity","glowPower","hueBlendPower","hueShiftAngleMin","hueShiftAngleMax","lightIntensity","cardColor","textureSample","texture","sampler","holoMaskColor","dist","distance","rFalloff","exp","scaledRadial","max","influence","smoothstep","curvePower","clamp","glowMask","pow","div","holoFactor","w","maskedGlow","hueAmount","mix","sparkleHue","xyz","hueMixAmt","chromaMix","shineStrength","shineLayer"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/reverseHoloFragment.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import { maskTextureBindGroupLayout, textureBindGroupLayout } from "./bindGroupLayouts.js";
|
|
4
|
+
import mainVertex from "./vertexShaders/mainVertex.js";
|
|
5
|
+
import maskFragment from "./fragmentShaders/maskFragment.js";
|
|
6
|
+
import { reverseHoloFragment } from "./fragmentShaders/reverseHoloFragment.js";
|
|
7
|
+
import { holoFragment } from "./fragmentShaders/holoFragment.js";
|
|
8
|
+
import { WAVE_CALLBACKS, waveCallbackFn, waveCallbackSlot } from "../enums/waveCallback.js";
|
|
9
|
+
export const attachBindGroups = (pipeline, bindGroups) => bindGroups.reduce((acc, bindGroup) => acc.with(bindGroup.layout, bindGroup), pipeline);
|
|
10
|
+
export const blend = {
|
|
11
|
+
color: {
|
|
12
|
+
srcFactor: 'one-minus-src-alpha',
|
|
13
|
+
dstFactor: 'src-alpha',
|
|
14
|
+
operation: 'add'
|
|
15
|
+
},
|
|
16
|
+
alpha: {
|
|
17
|
+
srcFactor: 'one-minus-src-alpha',
|
|
18
|
+
dstFactor: 'dst-alpha',
|
|
19
|
+
operation: 'add'
|
|
6
20
|
}
|
|
7
|
-
return pipeline;
|
|
8
21
|
};
|
|
9
|
-
export const getDefaultTarget = presentationFormat => {
|
|
22
|
+
export const getDefaultTarget = (presentationFormat, blendMode) => {
|
|
10
23
|
return {
|
|
11
24
|
format: presentationFormat,
|
|
12
|
-
blend:
|
|
13
|
-
color: {
|
|
14
|
-
srcFactor: 'src-alpha',
|
|
15
|
-
dstFactor: 'one-minus-src-alpha',
|
|
16
|
-
operation: 'add'
|
|
17
|
-
},
|
|
18
|
-
alpha: {
|
|
19
|
-
srcFactor: 'one',
|
|
20
|
-
dstFactor: 'one-minus-src-alpha',
|
|
21
|
-
operation: 'add'
|
|
22
|
-
}
|
|
23
|
-
}
|
|
25
|
+
blend: blendMode
|
|
24
26
|
};
|
|
25
27
|
};
|
|
26
28
|
export const attachBindGroupsToPass = (pass, bindGroupPairs) => {
|
|
@@ -29,4 +31,57 @@ export const attachBindGroupsToPass = (pass, bindGroupPairs) => {
|
|
|
29
31
|
}
|
|
30
32
|
return pass;
|
|
31
33
|
};
|
|
34
|
+
export const createMaskPipeline = (root, maskTexture, bindGroups, sampler, presentationFormat) => {
|
|
35
|
+
if (!maskTexture) return;
|
|
36
|
+
const maskTextureBindGroup = root.createBindGroup(maskTextureBindGroupLayout, {
|
|
37
|
+
texture: root.unwrap(maskTexture).createView(),
|
|
38
|
+
sampler
|
|
39
|
+
});
|
|
40
|
+
const maskBGP = [maskTextureBindGroup];
|
|
41
|
+
for (let i = 0; i < bindGroups.length; i++) {
|
|
42
|
+
maskBGP.push(bindGroups[i]);
|
|
43
|
+
}
|
|
44
|
+
let maskPipeline = root['~unstable'].withVertex(mainVertex, {}).withFragment(maskFragment, getDefaultTarget(presentationFormat, blend)).createPipeline();
|
|
45
|
+
maskPipeline = attachBindGroups(maskPipeline, maskBGP);
|
|
46
|
+
return maskPipeline;
|
|
47
|
+
};
|
|
48
|
+
export const createReverseHoloPipeline = (root, texture, bindGroups, sampler, presentationFormat) => {
|
|
49
|
+
if (!texture) return;
|
|
50
|
+
const reverseHoloBindGroup = root.createBindGroup(maskTextureBindGroupLayout, {
|
|
51
|
+
texture: root.unwrap(texture).createView(),
|
|
52
|
+
sampler
|
|
53
|
+
});
|
|
54
|
+
const reverseHoloBGP = [...bindGroups, reverseHoloBindGroup];
|
|
55
|
+
let reverseHoloPipeline = root['~unstable'].withVertex(mainVertex, {}).withFragment(reverseHoloFragment, getDefaultTarget(presentationFormat, blend)).createPipeline();
|
|
56
|
+
reverseHoloPipeline = attachBindGroups(reverseHoloPipeline, reverseHoloBGP);
|
|
57
|
+
return reverseHoloPipeline;
|
|
58
|
+
};
|
|
59
|
+
export const createRainbowHoloPipeline = (root, texture, bindGroups, sampler, presentationFormat) => {
|
|
60
|
+
if (!texture) return;
|
|
61
|
+
const imageTextureBindGroup = root.createBindGroup(textureBindGroupLayout, {
|
|
62
|
+
texture: root.unwrap(texture).createView(),
|
|
63
|
+
sampler
|
|
64
|
+
});
|
|
65
|
+
let rainbowHoloPipeline = root['~unstable'].with(waveCallbackSlot, waveCallbackFn(WAVE_CALLBACKS.default)).withVertex(mainVertex, {}).withFragment(holoFragment, getDefaultTarget(presentationFormat, blend)).createPipeline();
|
|
66
|
+
rainbowHoloPipeline = attachBindGroups(rainbowHoloPipeline, [...bindGroups, imageTextureBindGroup]);
|
|
67
|
+
return rainbowHoloPipeline;
|
|
68
|
+
};
|
|
69
|
+
export function renderPipelinesInSinglePass(root, pipelines, view) {
|
|
70
|
+
const unstableRoot = root['~unstable'];
|
|
71
|
+
const attachment = {
|
|
72
|
+
view,
|
|
73
|
+
clearValue: [0, 0, 0, 0],
|
|
74
|
+
loadOp: 'clear',
|
|
75
|
+
storeOp: 'store'
|
|
76
|
+
};
|
|
77
|
+
unstableRoot.beginRenderPass({
|
|
78
|
+
colorAttachments: [attachment]
|
|
79
|
+
}, pass => {
|
|
80
|
+
for (const pipeline of pipelines) {
|
|
81
|
+
pass.setPipeline(pipeline);
|
|
82
|
+
pass.draw(6);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
unstableRoot.flush();
|
|
86
|
+
}
|
|
32
87
|
//# sourceMappingURL=pipelineSetups.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["maskTextureBindGroupLayout","textureBindGroupLayout","mainVertex","maskFragment","reverseHoloFragment","holoFragment","WAVE_CALLBACKS","waveCallbackFn","waveCallbackSlot","attachBindGroups","pipeline","bindGroups","reduce","acc","bindGroup","with","layout","blend","color","srcFactor","dstFactor","operation","alpha","getDefaultTarget","presentationFormat","blendMode","format","attachBindGroupsToPass","pass","bindGroupPairs","pair","setBindGroup","group","createMaskPipeline","root","maskTexture","sampler","maskTextureBindGroup","createBindGroup","texture","unwrap","createView","maskBGP","i","length","push","maskPipeline","withVertex","withFragment","createPipeline","createReverseHoloPipeline","reverseHoloBindGroup","reverseHoloBGP","reverseHoloPipeline","createRainbowHoloPipeline","imageTextureBindGroup","rainbowHoloPipeline","default","renderPipelinesInSinglePass","pipelines","view","unstableRoot","attachment","clearValue","loadOp","storeOp","beginRenderPass","colorAttachments","setPipeline","draw","flush"],"sourceRoot":"../../../src","sources":["shaders/pipelineSetups.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,9 +11,10 @@ const getBitmapFromURI = async uri => {
|
|
|
11
11
|
const response = await fetch(fileURI);
|
|
12
12
|
const blob = await response.blob();
|
|
13
13
|
const imageBitmap = await createImageBitmap(blob);
|
|
14
|
+
console.log('bitmap size: ', imageBitmap);
|
|
14
15
|
uriToBitmapMap.set(uri, imageBitmap);
|
|
15
16
|
return imageBitmap;
|
|
16
17
|
};
|
|
17
18
|
const uriToBitmapMap = new Map();
|
|
18
19
|
export default getBitmapFromURI;
|
|
19
|
-
//# sourceMappingURL=
|
|
20
|
+
//# sourceMappingURL=bitmaps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Asset","getBitmapFromURI","uri","uriToBitmapMap","has","get","console","log","ast","fromURI","downloadAsync","fileURI","localUri","response","fetch","blob","imageBitmap","createImageBitmap","set","Map"],"sourceRoot":"../../../../src","sources":["shaders/resourceManagement/bitmaps.ts"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,YAAY;AAElC,MAAMC,gBAAgB,GAAG,MAAOC,GAAW,IAA2B;EACpE,IAAIC,cAAc,CAACC,GAAG,CAACF,GAAG,CAAC,EAAE,OAAOC,cAAc,CAACE,GAAG,CAACH,GAAG,CAAC;EAC3DI,OAAO,CAACC,GAAG,CAAC,8CAA8C,CAAC;EAE3D,MAAMC,GAAG,GAAGR,KAAK,CAACS,OAAO,CAACP,GAAG,CAAC;EAC9B,MAAMM,GAAG,CAACE,aAAa,CAAC,CAAC;EACzB,MAAMC,OAAO,GAAGH,GAAG,CAACI,QAAQ,IAAIJ,GAAG,CAACN,GAAG;EAEvCI,OAAO,CAACC,GAAG,CAAC,uCAAuC,CAAC;EACpD,MAAMM,QAAQ,GAAG,MAAMC,KAAK,CAACH,OAAO,CAAC;EACrC,MAAMI,IAAI,GAAG,MAAMF,QAAQ,CAACE,IAAI,CAAC,CAAC;EAClC,MAAMC,WAAW,GAAG,MAAMC,iBAAiB,CAACF,IAAI,CAAC;EAEjDT,OAAO,CAACC,GAAG,CAAC,eAAe,EAAES,WAAW,CAAC;EACzCb,cAAc,CAACe,GAAG,CAAChB,GAAG,EAAEc,WAAW,CAAC;EACpC,OAAOA,WAAW;AACpB,CAAC;AAED,MAAMb,cAAc,GAAG,IAAIgB,GAAG,CAAsB,CAAC;AAErD,eAAelB,gBAAgB","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export class TypedBufferMap {
|
|
4
|
+
buffers = {};
|
|
5
|
+
constructor(schemas) {
|
|
6
|
+
this.schemas = schemas;
|
|
7
|
+
}
|
|
8
|
+
set(key, buffer) {
|
|
9
|
+
this.buffers[key] = buffer;
|
|
10
|
+
}
|
|
11
|
+
get(key) {
|
|
12
|
+
return this.buffers[key];
|
|
13
|
+
}
|
|
14
|
+
addBuffer(root, key, initValues) {
|
|
15
|
+
const entry = this.schemas[key];
|
|
16
|
+
if (!entry) {
|
|
17
|
+
throw new Error(`No schema found for buffer key "${String(key)}"`);
|
|
18
|
+
}
|
|
19
|
+
const {
|
|
20
|
+
schema,
|
|
21
|
+
usage
|
|
22
|
+
} = entry;
|
|
23
|
+
if (this.buffers[key]) {
|
|
24
|
+
console.warn(`Buffer "${String(key)}" already exists. Skipping...`);
|
|
25
|
+
return this.buffers[key];
|
|
26
|
+
}
|
|
27
|
+
const buffer = initValues ? root.createBuffer(schema, initValues) : root.createBuffer(schema);
|
|
28
|
+
const typedBuffer = buffer.$usage(usage);
|
|
29
|
+
this.buffers[key] = typedBuffer;
|
|
30
|
+
return typedBuffer;
|
|
31
|
+
}
|
|
32
|
+
keys() {
|
|
33
|
+
return Object.keys(this.buffers);
|
|
34
|
+
}
|
|
35
|
+
has(key) {
|
|
36
|
+
return !!this.buffers[key];
|
|
37
|
+
}
|
|
38
|
+
delete(key) {
|
|
39
|
+
const buf = this.buffers[key];
|
|
40
|
+
if (buf) {
|
|
41
|
+
buf.destroy?.();
|
|
42
|
+
delete this.buffers[key];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=bufferManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TypedBufferMap","buffers","constructor","schemas","set","key","buffer","get","addBuffer","root","initValues","entry","Error","String","schema","usage","console","warn","createBuffer","typedBuffer","$usage","keys","Object","has","delete","buf","destroy"],"sourceRoot":"../../../../src","sources":["shaders/resourceManagement/bufferManager.ts"],"mappings":";;AAcA,OAAO,MAAMA,cAAc,CAKzB;EACQC,OAAO,GAEX,CAAC,CAAC;EAENC,WAAWA,CAASC,OAAiB,EAAE;IAAA,KAAnBA,OAAiB,GAAjBA,OAAiB;EAAG;EAExCC,GAAGA,CACDC,GAAM,EACNC,MAA6C,EACvC;IACN,IAAI,CAACL,OAAO,CAACI,GAAG,CAAC,GAAGC,MAAM;EAC5B;EAEAC,GAAGA,CACDF,GAAM,EAC6C;IACnD,OAAO,IAAI,CAACJ,OAAO,CAACI,GAAG,CAAC;EAC1B;EAEAG,SAASA,CACPC,IAAc,EACdJ,GAAM,EACNK,UAA6C,EACN;IACvC,MAAMC,KAAK,GAAG,IAAI,CAACR,OAAO,CAACE,GAAG,CAAC;IAC/B,IAAI,CAACM,KAAK,EAAE;MACV,MAAM,IAAIC,KAAK,CAAC,mCAAmCC,MAAM,CAACR,GAAG,CAAC,GAAG,CAAC;IACpE;IAEA,MAAM;MAAES,MAAM;MAAEC;IAAM,CAAC,GAAGJ,KAAK;IAC/B,IAAI,IAAI,CAACV,OAAO,CAACI,GAAG,CAAC,EAAE;MACrBW,OAAO,CAACC,IAAI,CAAC,WAAWJ,MAAM,CAACR,GAAG,CAAC,+BAA+B,CAAC;MACnE,OAAO,IAAI,CAACJ,OAAO,CAACI,GAAG,CAAC;IAC1B;IAEA,MAAMC,MAAM,GAAGI,UAAU,GACrBD,IAAI,CAACS,YAAY,CAACJ,MAAM,EAAEJ,UAAU,CAAC,GACrCD,IAAI,CAACS,YAAY,CAACJ,MAAM,CAAC;IAE7B,MAAMK,WAAW,GAAGb,MAAM,CAACc,MAAM,CAACL,KAAK,CAEtC;IACD,IAAI,CAACd,OAAO,CAACI,GAAG,CAAC,GAAGc,WAAW;IAC/B,OAAOA,WAAW;EACpB;EAEAE,IAAIA,CAAA,EAAuB;IACzB,OAAOC,MAAM,CAACD,IAAI,CAAC,IAAI,CAACpB,OAAO,CAAC;EAClC;EAEAsB,GAAGA,CAA2BlB,GAAM,EAAW;IAC7C,OAAO,CAAC,CAAC,IAAI,CAACJ,OAAO,CAACI,GAAG,CAAC;EAC5B;EAEAmB,MAAMA,CAA2BnB,GAAM,EAAQ;IAC7C,MAAMoB,GAAG,GAAG,IAAI,CAACxB,OAAO,CAACI,GAAG,CAAC;IAC7B,IAAIoB,GAAG,EAAE;MACPA,GAAG,CAACC,OAAO,GAAG,CAAC;MACf,OAAO,IAAI,CAACzB,OAAO,CAACI,GAAG,CAAC;IAC1B;EACF;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import getBitmapFromURI from "./bitmaps.js";
|
|
4
|
+
export const createTexture = async (root, size) => {
|
|
5
|
+
const texture = root['~unstable'].createTexture({
|
|
6
|
+
size: [size.width, size.height],
|
|
7
|
+
format: 'rgba8unorm'
|
|
8
|
+
}).$usage('sampled', 'render');
|
|
9
|
+
return texture;
|
|
10
|
+
};
|
|
11
|
+
export const loadTexture = async (root, imageBitmap, texture) => {
|
|
12
|
+
root.device.queue.copyExternalImageToTexture({
|
|
13
|
+
source: imageBitmap
|
|
14
|
+
}, {
|
|
15
|
+
texture: root.unwrap(texture)
|
|
16
|
+
}, [imageBitmap.width, imageBitmap.height]);
|
|
17
|
+
};
|
|
18
|
+
export async function loadBitmap(root, imageURI, setTexture) {
|
|
19
|
+
const bitmap = await getBitmapFromURI(imageURI);
|
|
20
|
+
const texture = await createTexture(root, bitmap);
|
|
21
|
+
setTexture(texture);
|
|
22
|
+
await loadTexture(root, bitmap, texture);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=textures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getBitmapFromURI","createTexture","root","size","texture","width","height","format","$usage","loadTexture","imageBitmap","device","queue","copyExternalImageToTexture","source","unwrap","loadBitmap","imageURI","setTexture","bitmap"],"sourceRoot":"../../../../src","sources":["shaders/resourceManagement/textures.ts"],"mappings":";;AACA,OAAOA,gBAAgB,MAAM,cAAW;AAExC,OAAO,MAAMC,aAAa,GAAG,MAAAA,CAC3BC,IAAc,EACdC,IAGC,KACwB;EACzB,MAAMC,OAAO,GAAGF,IAAI,CAAC,WAAW,CAAC,CAC9BD,aAAa,CAAC;IACbE,IAAI,EAAE,CAACA,IAAI,CAACE,KAAK,EAAEF,IAAI,CAACG,MAAM,CAAC;IAC/BC,MAAM,EAAE;EACV,CAAC,CAAC,CACDC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC;EAE9B,OAAOJ,OAAO;AAChB,CAAC;AAED,OAAO,MAAMK,WAAW,GAAG,MAAAA,CACzBP,IAAc,EACdQ,WAAwB,EACxBN,OAAoB,KACjB;EACHF,IAAI,CAACS,MAAM,CAACC,KAAK,CAACC,0BAA0B,CAC1C;IAAEC,MAAM,EAAEJ;EAAY,CAAC,EACvB;IAAEN,OAAO,EAAEF,IAAI,CAACa,MAAM,CAACX,OAAO;EAAE,CAAC,EACjC,CAACM,WAAW,CAACL,KAAK,EAAEK,WAAW,CAACJ,MAAM,CACxC,CAAC;AACH,CAAC;AAED,OAAO,eAAeU,UAAUA,CAC9Bd,IAAc,EACde,QAAgB,EAChBC,UAAwD,EACxD;EACA,MAAMC,MAAM,GAAG,MAAMnB,gBAAgB,CAACiB,QAAQ,CAAC;EAC/C,MAAMb,OAAO,GAAG,MAAMH,aAAa,CAACC,IAAI,EAAEiB,MAAM,CAAC;EACjDD,UAAU,CAACd,OAAO,CAAC;EACnB,MAAMK,WAAW,CAACP,IAAI,EAAEiB,MAAM,EAAEf,OAAO,CAAC;AAC1C","ignoreList":[]}
|
|
@@ -20,7 +20,7 @@ export const hueShift = tgpu.fn([d.vec3f, d.f32], d.vec3f)((rgb, angle) => {
|
|
|
20
20
|
const b = std.add(std.add(yiqY, std.mul(i, -1.105)), std.mul(q, 1.702));
|
|
21
21
|
return d.vec3f(r, g, b);
|
|
22
22
|
});
|
|
23
|
-
export const
|
|
23
|
+
export const glareColorShift = tgpu.fn([d.vec3f, d.f32], d.vec3f)((color, power) => {
|
|
24
24
|
const maxValue = std.max(std.max(color.x, color.y), color.z);
|
|
25
25
|
const scale = std.mix(d.f32(1.0), d.f32(1.0) / std.max(maxValue, d.f32(0.001)), power);
|
|
26
26
|
const boosted = std.mul(color, scale);
|
|
@@ -35,4 +35,22 @@ export const overlayChannel = tgpu.fn([d.f32, d.f32], d.f32)((base, blend) => {
|
|
|
35
35
|
export const overlayChannels = tgpu.fn([d.vec3f, d.vec3f], d.vec3f)((base, blend) => {
|
|
36
36
|
return d.vec3f(overlayChannel(base.x, blend.x), overlayChannel(base.y, blend.y), overlayChannel(base.z, blend.z));
|
|
37
37
|
});
|
|
38
|
+
|
|
39
|
+
/** Rec.601 luma */
|
|
40
|
+
export const luma601 = tgpu.fn([d.vec3f], d.f32)(rgb => {
|
|
41
|
+
return std.add(std.mul(rgb.x, 0.299), std.add(std.mul(rgb.y, 0.587), std.mul(rgb.z, 0.114)));
|
|
42
|
+
});
|
|
43
|
+
export const tiltTowardsLighterNeighbor = tgpu.fn([d.vec3f, d.f32], d.vec3f)((rgb, t) => {
|
|
44
|
+
const toYellow = d.vec3f(std.max(rgb.x, rgb.y), std.max(rgb.x, rgb.y), rgb.z);
|
|
45
|
+
const toCyan = d.vec3f(rgb.x, std.max(rgb.y, rgb.z), std.max(rgb.y, rgb.z));
|
|
46
|
+
const yYellow = luma601(toYellow);
|
|
47
|
+
const yCyan = luma601(toCyan);
|
|
48
|
+
const toColor = std.select(toCyan, toYellow, yYellow >= yCyan);
|
|
49
|
+
const tClamped = std.clamp(t, 0.0, 1.0);
|
|
50
|
+
return std.mix(rgb, toColor, tClamped);
|
|
51
|
+
});
|
|
52
|
+
export const linearstep = tgpu.fn([d.f32, d.f32, d.f32], d.f32)((num1, num2, x) => {
|
|
53
|
+
const t = (x - num1) / (num2 - num1);
|
|
54
|
+
return std.clamp(t, 0, 1);
|
|
55
|
+
});
|
|
38
56
|
//# sourceMappingURL=tgpuUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["tgpu","std","d","hueShift","fn","vec3f","f32","rgb","angle","yiqY","add","mul","x","y","z","yiqI","sub","yiqQ","cosA","cos","sinA","sin","i","q","r","g","b","
|
|
1
|
+
{"version":3,"names":["tgpu","std","d","hueShift","fn","vec3f","f32","rgb","angle","yiqY","add","mul","x","y","z","yiqI","sub","yiqQ","cosA","cos","sinA","sin","i","q","r","g","b","glareColorShift","color","power","maxValue","max","scale","mix","boosted","saturated","overlayChannel","base","blend","mult","screen","select","overlayChannels","luma601","tiltTowardsLighterNeighbor","t","toYellow","toCyan","yYellow","yCyan","toColor","tClamped","clamp","linearstep","num1","num2"],"sourceRoot":"../../../src","sources":["shaders/tgpuUtils.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,20 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { Dimensions } from 'react-native';
|
|
4
|
-
export const createTexture = async (root, size) => {
|
|
5
|
-
const texture = root['~unstable'].createTexture({
|
|
6
|
-
size: [size.width, size.height],
|
|
7
|
-
format: 'rgba8unorm'
|
|
8
|
-
}).$usage('sampled', 'render');
|
|
9
|
-
return texture;
|
|
10
|
-
};
|
|
11
|
-
export const loadTexture = async (root, imageBitmap, texture) => {
|
|
12
|
-
root.device.queue.copyExternalImageToTexture({
|
|
13
|
-
source: imageBitmap
|
|
14
|
-
}, {
|
|
15
|
-
texture: root.unwrap(texture)
|
|
16
|
-
}, [imageBitmap.width, imageBitmap.height]);
|
|
17
|
-
};
|
|
18
4
|
export const rotateVectorByQuaternion = (vec, quaternion) => {
|
|
19
5
|
'worklet';
|
|
20
6
|
|
|
@@ -28,38 +14,24 @@ export const rotateVectorByQuaternion = (vec, quaternion) => {
|
|
|
28
14
|
const rotated = [vec[0] + 2.0 * crossQT2[0], vec[1] + 2.0 * crossQT2[1], vec[2] + 2.0 * crossQT2[2]];
|
|
29
15
|
return [rotated[0], rotated[1], rotated[2]];
|
|
30
16
|
};
|
|
31
|
-
export const clamp = (v, min = -1, max = 1) => {
|
|
32
|
-
'worklet';
|
|
33
|
-
|
|
34
|
-
return Math.max(min, Math.min(max, v));
|
|
35
|
-
};
|
|
36
|
-
export const rotate2D = ([x, y], angleDeg) => {
|
|
37
|
-
'worklet';
|
|
38
|
-
|
|
39
|
-
const rad = angleDeg * Math.PI / 180;
|
|
40
|
-
const c = Math.cos(rad);
|
|
41
|
-
const s = Math.sin(rad);
|
|
42
|
-
return [x * c - y * s, x * s + y * c];
|
|
43
|
-
};
|
|
44
17
|
|
|
45
18
|
// Simple helper to get angle from dimensions (0 or 90)
|
|
46
19
|
export function getAngleFromDimensions() {
|
|
20
|
+
return 90 * Number(isLandscapeMode());
|
|
21
|
+
}
|
|
22
|
+
export function isLandscapeMode() {
|
|
47
23
|
const {
|
|
48
24
|
width,
|
|
49
25
|
height
|
|
50
26
|
} = Dimensions.get('window');
|
|
51
|
-
return width >= height
|
|
27
|
+
return width >= height;
|
|
52
28
|
}
|
|
53
29
|
|
|
54
30
|
// Subscribe to orientation change via Dimensions API only
|
|
55
31
|
export function subscribeToOrientationChange(callback) {
|
|
56
|
-
callback(
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const dimSub = Dimensions.addEventListener('change', handler);
|
|
61
|
-
return () => {
|
|
62
|
-
dimSub.remove();
|
|
63
|
-
};
|
|
32
|
+
const handler = () => callback(isLandscapeMode());
|
|
33
|
+
const subscription = Dimensions.addEventListener('change', handler);
|
|
34
|
+
handler();
|
|
35
|
+
return () => subscription.remove();
|
|
64
36
|
}
|
|
65
37
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Dimensions","
|
|
1
|
+
{"version":3,"names":["Dimensions","rotateVectorByQuaternion","vec","quaternion","t","t2","crossQT2","rotated","getAngleFromDimensions","Number","isLandscapeMode","width","height","get","subscribeToOrientationChange","callback","handler","subscription","addEventListener","remove"],"sourceRoot":"../../../src","sources":["shaders/utils.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AAGzC,OAAO,MAAMC,wBAAwB,GAAGA,CACtCC,GAAS,EACTC,UAAsB,KACb;EACT,SAAS;;EACT,MAAMC,CAAO,GAAG,CACdD,UAAU,CAAC,CAAC,CAAC,GAAGD,GAAG,CAAC,CAAC,CAAC,GAAGC,UAAU,CAAC,CAAC,CAAC,GAAGD,GAAG,CAAC,CAAC,CAAC,EAC/CC,UAAU,CAAC,CAAC,CAAC,GAAGD,GAAG,CAAC,CAAC,CAAC,GAAGC,UAAU,CAAC,CAAC,CAAC,GAAGD,GAAG,CAAC,CAAC,CAAC,EAC/CC,UAAU,CAAC,CAAC,CAAC,GAAGD,GAAG,CAAC,CAAC,CAAC,GAAGC,UAAU,CAAC,CAAC,CAAC,GAAGD,GAAG,CAAC,CAAC,CAAC,CAChD;;EAED;EACA,MAAMG,EAAQ,GAAG,CACfF,UAAU,CAAC,CAAC,CAAC,GAAGD,GAAG,CAAC,CAAC,CAAC,GAAGE,CAAC,CAAC,CAAC,CAAC,EAC7BD,UAAU,CAAC,CAAC,CAAC,GAAGD,GAAG,CAAC,CAAC,CAAC,GAAGE,CAAC,CAAC,CAAC,CAAC,EAC7BD,UAAU,CAAC,CAAC,CAAC,GAAGD,GAAG,CAAC,CAAC,CAAC,GAAGE,CAAC,CAAC,CAAC,CAAC,CAC9B;EAED,MAAME,QAAc,GAAG,CACrBH,UAAU,CAAC,CAAC,CAAC,GAAGE,EAAE,CAAC,CAAC,CAAC,GAAGF,UAAU,CAAC,CAAC,CAAC,GAAGE,EAAE,CAAC,CAAC,CAAC,EAC7CF,UAAU,CAAC,CAAC,CAAC,GAAGE,EAAE,CAAC,CAAC,CAAC,GAAGF,UAAU,CAAC,CAAC,CAAC,GAAGE,EAAE,CAAC,CAAC,CAAC,EAC7CF,UAAU,CAAC,CAAC,CAAC,GAAGE,EAAE,CAAC,CAAC,CAAC,GAAGF,UAAU,CAAC,CAAC,CAAC,GAAGE,EAAE,CAAC,CAAC,CAAC,CAC9C;;EAED;EACA,MAAME,OAAa,GAAG,CACpBL,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAGI,QAAQ,CAAC,CAAC,CAAC,EAC1BJ,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAGI,QAAQ,CAAC,CAAC,CAAC,EAC1BJ,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAGI,QAAQ,CAAC,CAAC,CAAC,CAC3B;EAED,OAAO,CAACC,OAAO,CAAC,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;;AAED;AACA,OAAO,SAASC,sBAAsBA,CAAA,EAAG;EACvC,OAAO,EAAE,GAAGC,MAAM,CAACC,eAAe,CAAC,CAAC,CAAC;AACvC;AAEA,OAAO,SAASA,eAAeA,CAAA,EAAG;EAChC,MAAM;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGZ,UAAU,CAACa,GAAG,CAAC,QAAQ,CAAC;EAElD,OAAOF,KAAK,IAAIC,MAAM;AACxB;;AAEA;AACA,OAAO,SAASE,4BAA4BA,CAC1CC,QAAwC,EACxC;EACA,MAAMC,OAAO,GAAGA,CAAA,KAAMD,QAAQ,CAACL,eAAe,CAAC,CAAC,CAAC;EACjD,MAAMO,YAAY,GAAGjB,UAAU,CAACkB,gBAAgB,CAAC,QAAQ,EAAEF,OAAO,CAAC;EAEnEA,OAAO,CAAC,CAAC;EAET,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;AACpC","ignoreList":[]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import tgpu from 'typegpu';
|
|
4
|
+
import * as std from 'typegpu/std';
|
|
5
|
+
import * as d from 'typegpu/data';
|
|
6
|
+
import { rotationBindGroupLayout } from "../bindGroupLayouts.js";
|
|
7
|
+
const mainRotationEffectVertex = tgpu['~unstable'].vertexFn({
|
|
8
|
+
in: {
|
|
9
|
+
vertexIndex: d.builtin.vertexIndex
|
|
10
|
+
},
|
|
11
|
+
out: {
|
|
12
|
+
position: d.builtin.position,
|
|
13
|
+
uv: d.vec2f
|
|
14
|
+
}
|
|
15
|
+
})(input => {
|
|
16
|
+
const rot = rotationBindGroupLayout.$.vec;
|
|
17
|
+
|
|
18
|
+
// Maximum rotation angles in radians
|
|
19
|
+
const maxAngle = d.f32(25.0 * Math.PI / 180.0);
|
|
20
|
+
const ax = d.f32(-rot.y * maxAngle); // rotateX depends on vertical touch
|
|
21
|
+
const ay = d.f32(-rot.x * 1.0); // rotateY depends on horizontal touch
|
|
22
|
+
|
|
23
|
+
const positions = [d.vec2f(-1.0, -1.0), d.vec2f(1.0, 1.0), d.vec2f(1.0, -1.0), d.vec2f(-1.0, -1.0), d.vec2f(-1.0, 1.0), d.vec2f(1.0, 1.0)];
|
|
24
|
+
const uvs = [d.vec2f(0.0, 0.0), d.vec2f(1.0, 1.0), d.vec2f(1.0, 0.0), d.vec2f(0.0, 0.0), d.vec2f(0.0, 1.0), d.vec2f(1.0, 1.0)];
|
|
25
|
+
const index = input.vertexIndex;
|
|
26
|
+
const pos = d.vec3f(positions[index], 0.0);
|
|
27
|
+
const pivot = d.vec3f(rot.x, rot.y, 0.0);
|
|
28
|
+
const relative = std.sub(pos, pivot);
|
|
29
|
+
const cosX = std.cos(ax);
|
|
30
|
+
const sinX = std.sin(ax);
|
|
31
|
+
const rotatedX = d.vec3f(relative.x, cosX * relative.y - sinX * relative.z, sinX * relative.y + cosX * relative.z);
|
|
32
|
+
const cosY = std.cos(ay);
|
|
33
|
+
const sinY = std.sin(ay);
|
|
34
|
+
const rotatedXY = d.vec3f(cosY * rotatedX.x + sinY * rotatedX.z, rotatedX.y, -sinY * rotatedX.x + cosY * rotatedX.z);
|
|
35
|
+
const finalPos3D = std.add(rotatedXY, pivot);
|
|
36
|
+
const perspective = 100.0;
|
|
37
|
+
const zOffset = 2.5;
|
|
38
|
+
const z = finalPos3D.z + zOffset;
|
|
39
|
+
const persp = perspective / (perspective + z);
|
|
40
|
+
const finalPos = d.vec4f(finalPos3D.x * persp, finalPos3D.y * persp, 0.0, 1.0);
|
|
41
|
+
return {
|
|
42
|
+
position: finalPos,
|
|
43
|
+
uv: uvs[index]
|
|
44
|
+
};
|
|
45
|
+
});
|
|
46
|
+
export default mainRotationEffectVertex;
|
|
47
|
+
//# sourceMappingURL=mainRotationEffectVertex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["tgpu","std","d","rotationBindGroupLayout","mainRotationEffectVertex","vertexFn","in","vertexIndex","builtin","out","position","uv","vec2f","input","rot","$","vec","maxAngle","f32","Math","PI","ax","y","ay","x","positions","uvs","index","pos","vec3f","pivot","relative","sub","cosX","cos","sinX","sin","rotatedX","z","cosY","sinY","rotatedXY","finalPos3D","add","perspective","zOffset","persp","finalPos","vec4f"],"sourceRoot":"../../../../src","sources":["shaders/vertexShaders/mainRotationEffectVertex.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/size.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -2,24 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
import { f32, vec2f, vec3f, vec4f } from 'typegpu/data';
|
|
4
4
|
import { div } from 'typegpu/std';
|
|
5
|
-
|
|
5
|
+
import { WAVE_CALLBACKS } from "../enums/waveCallback.js";
|
|
6
|
+
export const createGlareOptions = options => {
|
|
6
7
|
const {
|
|
7
8
|
glowPower,
|
|
8
9
|
hueShiftAngleMax,
|
|
9
10
|
hueShiftAngleMin,
|
|
10
11
|
hueBlendPower,
|
|
11
12
|
lightIntensity,
|
|
12
|
-
|
|
13
|
+
glareIntensity
|
|
13
14
|
} = options;
|
|
14
|
-
const
|
|
15
|
+
const glareOp = {
|
|
15
16
|
glowPower: glowPower ?? 1.0,
|
|
16
17
|
hueShiftAngleMax: hueShiftAngleMax ?? 1.0,
|
|
17
18
|
hueShiftAngleMin: hueShiftAngleMin ?? 0.0,
|
|
18
19
|
hueBlendPower: hueBlendPower ?? 1.0,
|
|
19
20
|
lightIntensity: lightIntensity ?? 1.0,
|
|
20
|
-
|
|
21
|
+
glareIntensity: glareIntensity ?? 1.0
|
|
21
22
|
};
|
|
22
|
-
return
|
|
23
|
+
return glareOp;
|
|
23
24
|
};
|
|
24
25
|
export const mapToF32 = obj => {
|
|
25
26
|
const result = {};
|
|
@@ -57,6 +58,17 @@ export const colorMaskToTyped = colorMask => {
|
|
|
57
58
|
};
|
|
58
59
|
return result;
|
|
59
60
|
};
|
|
61
|
+
export const createHoloOptions = options => {
|
|
62
|
+
const {
|
|
63
|
+
intensity,
|
|
64
|
+
waveCallback
|
|
65
|
+
} = options;
|
|
66
|
+
const holoOpt = {
|
|
67
|
+
intensity: intensity ?? 0.7,
|
|
68
|
+
waveCallback: waveCallback ?? WAVE_CALLBACKS.default
|
|
69
|
+
};
|
|
70
|
+
return holoOpt;
|
|
71
|
+
};
|
|
60
72
|
export const numberArrToTyped = vec => {
|
|
61
73
|
let convFn = null;
|
|
62
74
|
switch (vec.length) {
|
|
@@ -75,18 +87,4 @@ export const numberArrToTyped = vec => {
|
|
|
75
87
|
const typed = convFn(...vec);
|
|
76
88
|
return typed;
|
|
77
89
|
};
|
|
78
|
-
export const createBindGroupPair = (bindGroupLayout, bindGroup) => {
|
|
79
|
-
return {
|
|
80
|
-
layout: bindGroupLayout,
|
|
81
|
-
group: bindGroup
|
|
82
|
-
};
|
|
83
|
-
};
|
|
84
|
-
export const createBindGroupPairs = (bindGroupLayouts, bindGroups) => {
|
|
85
|
-
if (bindGroupLayouts.length > 0 && bindGroupLayouts.length !== bindGroups.length) throw new Error('createBindGroups: bindGroupLayout and bindGroup arrrays must be of the same length');
|
|
86
|
-
const pairs = [];
|
|
87
|
-
for (let i = 0; i < bindGroupLayouts.length; i++) {
|
|
88
|
-
pairs.push(createBindGroupPair(bindGroupLayouts[i], bindGroups[i]));
|
|
89
|
-
}
|
|
90
|
-
return pairs;
|
|
91
|
-
};
|
|
92
90
|
//# sourceMappingURL=typeUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["f32","vec2f","vec3f","vec4f","div","
|
|
1
|
+
{"version":3,"names":["f32","vec2f","vec3f","vec4f","div","WAVE_CALLBACKS","createGlareOptions","options","glowPower","hueShiftAngleMax","hueShiftAngleMin","hueBlendPower","lightIntensity","glareIntensity","glareOp","mapToF32","obj","result","key","createColorMask","colorMask","baseColor","rgbToleranceRange","baseTolerance","upper","lower","tolerance","mask","colorMaskToTyped","numberArrToTyped","createHoloOptions","intensity","waveCallback","holoOpt","default","vec","convFn","length","Error","typed"],"sourceRoot":"../../../src","sources":["types/typeUtils.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/vector.ts"],"mappings":"","ignoreList":[]}
|