react-native-shine 0.2.2 → 0.3.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/README.md +1 -1
- package/lib/module/components/Shine.js +269 -0
- package/lib/module/components/Shine.js.map +1 -0
- package/lib/module/components/ShineGroup.js +104 -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/useOrientation.js +16 -0
- package/lib/module/hooks/useOrientation.js.map +1 -0
- package/lib/module/index.js +5 -219
- package/lib/module/index.js.map +1 -1
- package/lib/module/shaders/bindGroupLayouts.js +40 -5
- package/lib/module/shaders/bindGroupLayouts.js.map +1 -1
- package/lib/module/shaders/bindGroupUtils.js +27 -12
- 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 +114 -0
- package/lib/module/shaders/fragmentShaders/glareFragment.js.map +1 -0
- package/lib/module/shaders/fragmentShaders/holoFragment.js +33 -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 +82 -13
- 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 +17 -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 +0 -14
- 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/typeUtils.js +17 -5
- package/lib/module/types/typeUtils.js.map +1 -1
- package/lib/typescript/src/components/Shine.d.ts +17 -0
- package/lib/typescript/src/components/Shine.d.ts.map +1 -0
- package/lib/typescript/src/components/ShineGroup.d.ts +8 -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/useOrientation.d.ts +2 -0
- package/lib/typescript/src/hooks/useOrientation.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +6 -11
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/shaders/bindGroupLayouts.d.ts +44 -6
- package/lib/typescript/src/shaders/bindGroupLayouts.d.ts.map +1 -1
- package/lib/typescript/src/shaders/bindGroupUtils.d.ts +8 -8
- 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 +7 -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 +1 -7
- 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/typeUtils.d.ts +3 -2
- package/lib/typescript/src/types/typeUtils.d.ts.map +1 -1
- package/lib/typescript/src/types/types.d.ts +7 -2
- package/lib/typescript/src/types/types.d.ts.map +1 -1
- package/package.json +4 -3
- package/scripts/postinstall.js +16 -17
- package/src/components/Shine.tsx +480 -0
- package/src/components/ShineGroup.tsx +107 -0
- package/src/enums/waveCallback.ts +22 -0
- package/src/hooks/useOrientation.ts +20 -0
- package/src/index.tsx +6 -322
- package/src/shaders/bindGroupLayouts.ts +43 -6
- package/src/shaders/bindGroupUtils.ts +34 -19
- package/src/shaders/fragmentShaders/colorMaskFragment.ts +2 -2
- package/src/shaders/fragmentShaders/glareFragment.ts +142 -0
- package/src/shaders/fragmentShaders/holoFragment.ts +43 -0
- package/src/shaders/fragmentShaders/maskFragment.ts +31 -0
- package/src/shaders/fragmentShaders/reverseHoloFragment.ts +71 -0
- package/src/shaders/pipelineSetups.ts +161 -14
- package/src/shaders/{resourceManagement.ts → resourceManagement/bitmaps.ts} +1 -0
- package/src/shaders/resourceManagement/bufferManager.ts +82 -0
- package/src/shaders/resourceManagement/textures.ts +30 -0
- package/src/shaders/tgpuUtils.ts +36 -1
- package/src/shaders/utils.ts +0 -30
- package/src/shaders/vertexShaders/mainRotationEffectVertex.ts +76 -0
- package/src/types/typeUtils.ts +22 -8
- package/src/types/types.ts +8 -2
- 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
package/src/types/types.ts
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import type { TgpuBindGroup, TgpuBindGroupLayout } from 'typegpu';
|
|
2
|
+
import type { WaveCallbackFn } from '../enums/waveCallback';
|
|
2
3
|
|
|
3
4
|
export type vec2 = [number, number];
|
|
4
5
|
export type vec3 = [number, number, number];
|
|
5
6
|
export type vec4 = [number, number, number, number];
|
|
6
7
|
export type quaternion = vec4;
|
|
7
8
|
|
|
8
|
-
export type
|
|
9
|
+
export type GlareOptions = {
|
|
9
10
|
glowPower: number;
|
|
10
11
|
hueShiftAngleMax: number;
|
|
11
12
|
hueShiftAngleMin: number;
|
|
12
13
|
hueBlendPower: number;
|
|
13
14
|
lightIntensity: number;
|
|
14
|
-
|
|
15
|
+
glareIntensity: number;
|
|
15
16
|
};
|
|
16
17
|
|
|
17
18
|
export type ColorMask = {
|
|
@@ -22,6 +23,11 @@ export type ColorMask = {
|
|
|
22
23
|
};
|
|
23
24
|
};
|
|
24
25
|
|
|
26
|
+
export type HoloOptions = {
|
|
27
|
+
intensity: number;
|
|
28
|
+
waveCallback: WaveCallbackFn;
|
|
29
|
+
};
|
|
30
|
+
|
|
25
31
|
//makes all keys besides specified optional
|
|
26
32
|
export type PartiallyOptional<T, K extends keyof T> = {
|
|
27
33
|
[P in K]: T[P];
|
|
@@ -1,66 +0,0 @@
|
|
|
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 { rotationValuesBindGroupLayout, textureBindGroupLayout, bloomOptionsBindGroupLayout, colorMaskBindGroupLayout } from "../bindGroupLayouts.js";
|
|
7
|
-
import { bloomColorShift, hueShift, overlayChannels } from "../tgpuUtils.js";
|
|
8
|
-
const bloomFragment = 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 = d.vec2f(input.uv.x, 1.0 - input.uv.y);
|
|
16
|
-
const centeredCoords = std.sub(std.mul(uv, 2.0), 1); //-1 to 1
|
|
17
|
-
|
|
18
|
-
const rot = rotationValuesBindGroupLayout.$.vec;
|
|
19
|
-
const center = std.add(d.vec2f(0.0), d.vec2f(rot.x, rot.y));
|
|
20
|
-
const bloomOptions = bloomOptionsBindGroupLayout.$.bloomOptions;
|
|
21
|
-
const bloomIntensity = bloomOptions.bloomIntensity;
|
|
22
|
-
const glowPower = bloomOptions.glowPower;
|
|
23
|
-
const hueBlendPower = bloomOptions.hueBlendPower;
|
|
24
|
-
const hueShiftAngleMax = bloomOptions.hueShiftAngleMax;
|
|
25
|
-
const hueShiftAngleMin = bloomOptions.hueShiftAngleMin;
|
|
26
|
-
const lightIntensity = bloomOptions.lightIntensity;
|
|
27
|
-
const mask = colorMaskBindGroupLayout.$.mask;
|
|
28
|
-
const maskedColor = mask.baseColor;
|
|
29
|
-
const rgbToleranceRange = mask.rgbToleranceRange;
|
|
30
|
-
let color = std.textureSample(textureBindGroupLayout.$.texture, textureBindGroupLayout.$.sampler, texcoord);
|
|
31
|
-
const maskedColorLower = std.sub(maskedColor, rgbToleranceRange.lower);
|
|
32
|
-
const maskedColorUpper = std.add(maskedColor, rgbToleranceRange.upper);
|
|
33
|
-
const upperCheck = std.all(std.le(color.xyz, maskedColorUpper));
|
|
34
|
-
const lowerCheck = std.all(std.ge(color.xyz, maskedColorLower));
|
|
35
|
-
if (upperCheck && lowerCheck) {
|
|
36
|
-
return color;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
//bloomIntensity
|
|
40
|
-
const dst = std.exp(-std.distance(center, centeredCoords));
|
|
41
|
-
const distToCenter = std.smoothstep(0.0, 1 / bloomIntensity, dst);
|
|
42
|
-
|
|
43
|
-
//glowPower
|
|
44
|
-
let glow = d.vec3f(distToCenter);
|
|
45
|
-
glow = std.mul(glow, glowPower * color.w);
|
|
46
|
-
|
|
47
|
-
//hueBlend
|
|
48
|
-
const hueBlend = d.f32(hueBlendPower) * dst / 10.0;
|
|
49
|
-
|
|
50
|
-
//lightIntensity
|
|
51
|
-
glow = std.add(glow, lightIntensity / 10.0);
|
|
52
|
-
let shiftedRGB = bloomColorShift(color.xyz, dst / (lightIntensity * 2));
|
|
53
|
-
|
|
54
|
-
//hueShiftAngleMin/Max
|
|
55
|
-
const hueShiftAngle = std.smoothstep(hueShiftAngleMin, hueShiftAngleMax, distToCenter);
|
|
56
|
-
const shiftedHue = hueShift(shiftedRGB, hueShiftAngle);
|
|
57
|
-
shiftedRGB = overlayChannels(shiftedRGB, shiftedHue);
|
|
58
|
-
color = d.vec4f(std.mix(color.xyz, shiftedRGB, hueBlend), color.w);
|
|
59
|
-
const baseColor = color;
|
|
60
|
-
const blendColor = glow;
|
|
61
|
-
const combined = overlayChannels(baseColor.xyz, blendColor);
|
|
62
|
-
color = d.vec4f(std.mix(color.xyz, combined, glow), color.w);
|
|
63
|
-
return color;
|
|
64
|
-
});
|
|
65
|
-
export default bloomFragment;
|
|
66
|
-
//# sourceMappingURL=bloomFragment.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["tgpu","d","std","rotationValuesBindGroupLayout","textureBindGroupLayout","bloomOptionsBindGroupLayout","colorMaskBindGroupLayout","bloomColorShift","hueShift","overlayChannels","bloomFragment","fragmentFn","in","uv","vec2f","out","vec4f","input","texcoord","x","y","centeredCoords","sub","mul","rot","$","vec","center","add","bloomOptions","bloomIntensity","glowPower","hueBlendPower","hueShiftAngleMax","hueShiftAngleMin","lightIntensity","mask","maskedColor","baseColor","rgbToleranceRange","color","textureSample","texture","sampler","maskedColorLower","lower","maskedColorUpper","upper","upperCheck","all","le","xyz","lowerCheck","ge","dst","exp","distance","distToCenter","smoothstep","glow","vec3f","w","hueBlend","f32","shiftedRGB","hueShiftAngle","shiftedHue","mix","blendColor","combined"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/bloomFragment.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
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.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;EAEjDZ,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":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bloomFragment.d.ts","sourceRoot":"","sources":["../../../../../src/shaders/fragmentShaders/bloomFragment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAUlC,QAAA,MAAM,aAAa;;WAqEjB,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resourceManagement.d.ts","sourceRoot":"","sources":["../../../../src/shaders/resourceManagement.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,gBAAgB,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,WAAW,CAehE,CAAC;AAIF,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import tgpu from 'typegpu';
|
|
2
|
-
import * as d from 'typegpu/data';
|
|
3
|
-
import * as std from 'typegpu/std';
|
|
4
|
-
import {
|
|
5
|
-
rotationValuesBindGroupLayout,
|
|
6
|
-
textureBindGroupLayout,
|
|
7
|
-
bloomOptionsBindGroupLayout,
|
|
8
|
-
colorMaskBindGroupLayout,
|
|
9
|
-
} from '../bindGroupLayouts';
|
|
10
|
-
import { bloomColorShift, hueShift, overlayChannels } from '../tgpuUtils';
|
|
11
|
-
|
|
12
|
-
const bloomFragment = tgpu['~unstable'].fragmentFn({
|
|
13
|
-
in: { uv: d.vec2f },
|
|
14
|
-
out: d.vec4f,
|
|
15
|
-
})((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 = rotationValuesBindGroupLayout.$.vec;
|
|
21
|
-
const center = std.add(d.vec2f(0.0), d.vec2f(rot.x, rot.y));
|
|
22
|
-
|
|
23
|
-
const bloomOptions = bloomOptionsBindGroupLayout.$.bloomOptions;
|
|
24
|
-
const bloomIntensity = bloomOptions.bloomIntensity;
|
|
25
|
-
const glowPower = bloomOptions.glowPower;
|
|
26
|
-
const hueBlendPower = bloomOptions.hueBlendPower;
|
|
27
|
-
const hueShiftAngleMax = bloomOptions.hueShiftAngleMax;
|
|
28
|
-
const hueShiftAngleMin = bloomOptions.hueShiftAngleMin;
|
|
29
|
-
const lightIntensity = bloomOptions.lightIntensity;
|
|
30
|
-
|
|
31
|
-
const mask = colorMaskBindGroupLayout.$.mask;
|
|
32
|
-
const maskedColor = mask.baseColor;
|
|
33
|
-
const rgbToleranceRange = mask.rgbToleranceRange;
|
|
34
|
-
|
|
35
|
-
let color = std.textureSample(
|
|
36
|
-
textureBindGroupLayout.$.texture,
|
|
37
|
-
textureBindGroupLayout.$.sampler,
|
|
38
|
-
texcoord
|
|
39
|
-
);
|
|
40
|
-
|
|
41
|
-
const maskedColorLower = std.sub(maskedColor, rgbToleranceRange.lower);
|
|
42
|
-
const maskedColorUpper = std.add(maskedColor, rgbToleranceRange.upper);
|
|
43
|
-
const upperCheck = std.all(std.le(color.xyz, maskedColorUpper));
|
|
44
|
-
const lowerCheck = std.all(std.ge(color.xyz, maskedColorLower));
|
|
45
|
-
if (upperCheck && lowerCheck) {
|
|
46
|
-
return color;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
//bloomIntensity
|
|
50
|
-
const dst = std.exp(-std.distance(center, centeredCoords));
|
|
51
|
-
const distToCenter = std.smoothstep(0.0, 1 / bloomIntensity, dst);
|
|
52
|
-
|
|
53
|
-
//glowPower
|
|
54
|
-
let glow = d.vec3f(distToCenter);
|
|
55
|
-
glow = std.mul(glow, glowPower * color.w);
|
|
56
|
-
|
|
57
|
-
//hueBlend
|
|
58
|
-
const hueBlend = (d.f32(hueBlendPower) * dst) / 10.0;
|
|
59
|
-
|
|
60
|
-
//lightIntensity
|
|
61
|
-
glow = std.add(glow, lightIntensity / 10.0);
|
|
62
|
-
let shiftedRGB = bloomColorShift(color.xyz, dst / (lightIntensity * 2));
|
|
63
|
-
|
|
64
|
-
//hueShiftAngleMin/Max
|
|
65
|
-
const hueShiftAngle = std.smoothstep(
|
|
66
|
-
hueShiftAngleMin,
|
|
67
|
-
hueShiftAngleMax,
|
|
68
|
-
distToCenter
|
|
69
|
-
);
|
|
70
|
-
const shiftedHue = hueShift(shiftedRGB, hueShiftAngle);
|
|
71
|
-
shiftedRGB = overlayChannels(shiftedRGB, shiftedHue);
|
|
72
|
-
|
|
73
|
-
color = d.vec4f(std.mix(color.xyz, shiftedRGB, hueBlend), color.w);
|
|
74
|
-
const baseColor = color;
|
|
75
|
-
const blendColor = glow;
|
|
76
|
-
|
|
77
|
-
const combined = overlayChannels(baseColor.xyz, blendColor);
|
|
78
|
-
color = d.vec4f(std.mix(color.xyz, combined, glow), color.w);
|
|
79
|
-
|
|
80
|
-
return color;
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
export default bloomFragment;
|