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.
Files changed (141) hide show
  1. package/README.md +22 -7
  2. package/lib/module/components/Content.js +232 -0
  3. package/lib/module/components/Content.js.map +1 -0
  4. package/lib/module/components/Shine.js +33 -0
  5. package/lib/module/components/Shine.js.map +1 -0
  6. package/lib/module/components/ShineGroup.js +92 -0
  7. package/lib/module/components/ShineGroup.js.map +1 -0
  8. package/lib/module/enums/waveCallback.js +19 -0
  9. package/lib/module/enums/waveCallback.js.map +1 -0
  10. package/lib/module/hooks/useAnimationFrame.js +17 -0
  11. package/lib/module/hooks/useAnimationFrame.js.map +1 -0
  12. package/lib/module/hooks/useOrientation.js +10 -0
  13. package/lib/module/hooks/useOrientation.js.map +1 -0
  14. package/lib/module/index.js +6 -219
  15. package/lib/module/index.js.map +1 -1
  16. package/lib/module/shaders/bindGroupLayouts.js +41 -6
  17. package/lib/module/shaders/bindGroupLayouts.js.map +1 -1
  18. package/lib/module/shaders/bindGroupUtils.js +34 -41
  19. package/lib/module/shaders/bindGroupUtils.js.map +1 -1
  20. package/lib/module/shaders/fragmentShaders/colorMaskFragment.js +2 -2
  21. package/lib/module/shaders/fragmentShaders/colorMaskFragment.js.map +1 -1
  22. package/lib/module/shaders/fragmentShaders/glareFragment.js +115 -0
  23. package/lib/module/shaders/fragmentShaders/glareFragment.js.map +1 -0
  24. package/lib/module/shaders/fragmentShaders/holoFragment.js +28 -0
  25. package/lib/module/shaders/fragmentShaders/holoFragment.js.map +1 -0
  26. package/lib/module/shaders/fragmentShaders/maskFragment.js +20 -0
  27. package/lib/module/shaders/fragmentShaders/maskFragment.js.map +1 -0
  28. package/lib/module/shaders/fragmentShaders/reverseHoloFragment.js +46 -0
  29. package/lib/module/shaders/fragmentShaders/reverseHoloFragment.js.map +1 -0
  30. package/lib/module/shaders/pipelineSetups.js +72 -17
  31. package/lib/module/shaders/pipelineSetups.js.map +1 -1
  32. package/lib/module/shaders/{resourceManagement.js → resourceManagement/bitmaps.js} +2 -1
  33. package/lib/module/shaders/resourceManagement/bitmaps.js.map +1 -0
  34. package/lib/module/shaders/resourceManagement/bufferManager.js +46 -0
  35. package/lib/module/shaders/resourceManagement/bufferManager.js.map +1 -0
  36. package/lib/module/shaders/resourceManagement/textures.js +24 -0
  37. package/lib/module/shaders/resourceManagement/textures.js.map +1 -0
  38. package/lib/module/shaders/tgpuUtils.js +19 -1
  39. package/lib/module/shaders/tgpuUtils.js.map +1 -1
  40. package/lib/module/shaders/utils.js +8 -36
  41. package/lib/module/shaders/utils.js.map +1 -1
  42. package/lib/module/shaders/vertexShaders/mainRotationEffectVertex.js +47 -0
  43. package/lib/module/shaders/vertexShaders/mainRotationEffectVertex.js.map +1 -0
  44. package/lib/module/types/size.js +2 -0
  45. package/lib/module/types/size.js.map +1 -0
  46. package/lib/module/types/typeUtils.js +17 -19
  47. package/lib/module/types/typeUtils.js.map +1 -1
  48. package/lib/module/types/vector.js +2 -0
  49. package/lib/module/types/vector.js.map +1 -0
  50. package/lib/module/utils/size.js +25 -0
  51. package/lib/module/utils/size.js.map +1 -0
  52. package/lib/module/utils/vector.js +168 -0
  53. package/lib/module/utils/vector.js.map +1 -0
  54. package/lib/typescript/src/components/Content.d.ts +23 -0
  55. package/lib/typescript/src/components/Content.d.ts.map +1 -0
  56. package/lib/typescript/src/components/Shine.d.ts +7 -0
  57. package/lib/typescript/src/components/Shine.d.ts.map +1 -0
  58. package/lib/typescript/src/components/ShineGroup.d.ts +6 -0
  59. package/lib/typescript/src/components/ShineGroup.d.ts.map +1 -0
  60. package/lib/typescript/src/enums/waveCallback.d.ts +9 -0
  61. package/lib/typescript/src/enums/waveCallback.d.ts.map +1 -0
  62. package/lib/typescript/src/hooks/useAnimationFrame.d.ts +2 -0
  63. package/lib/typescript/src/hooks/useAnimationFrame.d.ts.map +1 -0
  64. package/lib/typescript/src/hooks/useOrientation.d.ts +4 -0
  65. package/lib/typescript/src/hooks/useOrientation.d.ts.map +1 -0
  66. package/lib/typescript/src/index.d.ts +8 -11
  67. package/lib/typescript/src/index.d.ts.map +1 -1
  68. package/lib/typescript/src/shaders/bindGroupLayouts.d.ts +46 -8
  69. package/lib/typescript/src/shaders/bindGroupLayouts.d.ts.map +1 -1
  70. package/lib/typescript/src/shaders/bindGroupUtils.d.ts +9 -9
  71. package/lib/typescript/src/shaders/bindGroupUtils.d.ts.map +1 -1
  72. package/lib/typescript/src/shaders/fragmentShaders/glareFragment.d.ts +8 -0
  73. package/lib/typescript/src/shaders/fragmentShaders/glareFragment.d.ts.map +1 -0
  74. package/lib/typescript/src/shaders/fragmentShaders/holoFragment.d.ts +5 -0
  75. package/lib/typescript/src/shaders/fragmentShaders/holoFragment.d.ts.map +1 -0
  76. package/lib/typescript/src/shaders/fragmentShaders/maskFragment.d.ts +6 -0
  77. package/lib/typescript/src/shaders/fragmentShaders/maskFragment.d.ts.map +1 -0
  78. package/lib/typescript/src/shaders/fragmentShaders/reverseHoloFragment.d.ts +5 -0
  79. package/lib/typescript/src/shaders/fragmentShaders/reverseHoloFragment.d.ts.map +1 -0
  80. package/lib/typescript/src/shaders/pipelineSetups.d.ts +9 -4
  81. package/lib/typescript/src/shaders/pipelineSetups.d.ts.map +1 -1
  82. package/lib/typescript/src/shaders/{resourceManagement.d.ts → resourceManagement/bitmaps.d.ts} +1 -1
  83. package/lib/typescript/src/shaders/resourceManagement/bitmaps.d.ts.map +1 -0
  84. package/lib/typescript/src/shaders/resourceManagement/bufferManager.d.ts +28 -0
  85. package/lib/typescript/src/shaders/resourceManagement/bufferManager.d.ts.map +1 -0
  86. package/lib/typescript/src/shaders/resourceManagement/textures.d.ts +8 -0
  87. package/lib/typescript/src/shaders/resourceManagement/textures.d.ts.map +1 -0
  88. package/lib/typescript/src/shaders/tgpuUtils.d.ts +5 -1
  89. package/lib/typescript/src/shaders/tgpuUtils.d.ts.map +1 -1
  90. package/lib/typescript/src/shaders/utils.d.ts +3 -10
  91. package/lib/typescript/src/shaders/utils.d.ts.map +1 -1
  92. package/lib/typescript/src/shaders/vertexShaders/mainRotationEffectVertex.d.ts +6 -0
  93. package/lib/typescript/src/shaders/vertexShaders/mainRotationEffectVertex.d.ts.map +1 -0
  94. package/lib/typescript/src/types/size.d.ts +5 -0
  95. package/lib/typescript/src/types/size.d.ts.map +1 -0
  96. package/lib/typescript/src/types/typeUtils.d.ts +3 -5
  97. package/lib/typescript/src/types/typeUtils.d.ts.map +1 -1
  98. package/lib/typescript/src/types/types.d.ts +10 -3
  99. package/lib/typescript/src/types/types.d.ts.map +1 -1
  100. package/lib/typescript/src/types/vector.d.ts +11 -0
  101. package/lib/typescript/src/types/vector.d.ts.map +1 -0
  102. package/lib/typescript/src/utils/size.d.ts +5 -0
  103. package/lib/typescript/src/utils/size.d.ts.map +1 -0
  104. package/lib/typescript/src/utils/vector.d.ts +33 -0
  105. package/lib/typescript/src/utils/vector.d.ts.map +1 -0
  106. package/package.json +7 -5
  107. package/scripts/postinstall.js +16 -17
  108. package/src/components/Content.tsx +403 -0
  109. package/src/components/Shine.tsx +38 -0
  110. package/src/components/ShineGroup.tsx +100 -0
  111. package/src/enums/waveCallback.ts +22 -0
  112. package/src/hooks/useAnimationFrame.ts +21 -0
  113. package/src/hooks/useOrientation.ts +18 -0
  114. package/src/index.tsx +14 -322
  115. package/src/shaders/bindGroupLayouts.ts +45 -8
  116. package/src/shaders/bindGroupUtils.ts +50 -65
  117. package/src/shaders/fragmentShaders/colorMaskFragment.ts +2 -2
  118. package/src/shaders/fragmentShaders/glareFragment.ts +143 -0
  119. package/src/shaders/fragmentShaders/holoFragment.ts +35 -0
  120. package/src/shaders/fragmentShaders/maskFragment.ts +31 -0
  121. package/src/shaders/fragmentShaders/reverseHoloFragment.ts +71 -0
  122. package/src/shaders/pipelineSetups.ts +152 -20
  123. package/src/shaders/{resourceManagement.ts → resourceManagement/bitmaps.ts} +1 -0
  124. package/src/shaders/resourceManagement/bufferManager.ts +82 -0
  125. package/src/shaders/resourceManagement/textures.ts +42 -0
  126. package/src/shaders/tgpuUtils.ts +36 -1
  127. package/src/shaders/utils.ts +13 -57
  128. package/src/shaders/vertexShaders/mainRotationEffectVertex.ts +76 -0
  129. package/src/types/size.ts +4 -0
  130. package/src/types/typeUtils.ts +22 -36
  131. package/src/types/types.ts +19 -3
  132. package/src/types/vector.ts +13 -0
  133. package/src/utils/size.ts +12 -0
  134. package/src/utils/vector.ts +132 -0
  135. package/lib/module/shaders/fragmentShaders/bloomFragment.js +0 -66
  136. package/lib/module/shaders/fragmentShaders/bloomFragment.js.map +0 -1
  137. package/lib/module/shaders/resourceManagement.js.map +0 -1
  138. package/lib/typescript/src/shaders/fragmentShaders/bloomFragment.d.ts +0 -6
  139. package/lib/typescript/src/shaders/fragmentShaders/bloomFragment.d.ts.map +0 -1
  140. package/lib/typescript/src/shaders/resourceManagement.d.ts.map +0 -1
  141. package/src/shaders/fragmentShaders/bloomFragment.ts +0 -83
@@ -1,222 +1,9 @@
1
1
  "use strict";
2
2
 
3
- import { useEffect, useRef, useState } from 'react';
4
- import { Canvas, useDevice, useGPUContext } from 'react-native-wgpu';
5
- import { getOrInitRoot } from "./roots.js";
6
- import mainVertex from "./shaders/vertexShaders/mainVertex.js";
7
- import getBitmapFromURI from "./shaders/resourceManagement.js";
8
- import { createTexture, loadTexture, clamp, rotate2D, subscribeToOrientationChange, getAngleFromDimensions } from "./shaders/utils.js";
9
- import { bloomOptionsBindGroupLayout, colorMaskBindGroupLayout, rotationValuesBindGroupLayout, textureBindGroupLayout } from "./shaders/bindGroupLayouts.js";
10
- import { SensorType, useAnimatedSensor, useDerivedValue, useSharedValue } from 'react-native-reanimated';
11
- import * as d from 'typegpu/data';
12
- import { Platform } from 'react-native';
13
- import bloomFragment from "./shaders/fragmentShaders/bloomFragment.js";
14
- import { createBloomOptionsBindGroup, createBloomOptionsBuffer, createColorMaskBindGroup, createColorMaskBuffer, createRotationBuffer, createRotationValuesBindGroup } from "./shaders/bindGroupUtils.js";
15
- import { createBindGroupPairs, createBloomOptions, createColorMask } from "./types/typeUtils.js";
16
- import { attachBindGroups, getDefaultTarget } from "./shaders/pipelineSetups.js";
17
- import colorMaskFragment from "./shaders/fragmentShaders/colorMaskFragment.js";
18
- import { jsx as _jsx } from "react/jsx-runtime";
19
- export function Shine({
20
- width,
21
- height,
22
- imageURI,
23
- bloomOptions,
24
- colorMaskOptions
25
- }) {
26
- const {
27
- device = null
28
- } = useDevice();
29
- const root = device ? getOrInitRoot(device) : null;
30
- const {
31
- ref,
32
- context
33
- } = useGPUContext();
34
- const presentationFormat = navigator.gpu.getPreferredCanvasFormat();
35
- const frameRef = useRef(null);
36
- const [imageTexture, setImageTexture] = useState(null);
37
- const orientationAngle = useSharedValue(0); // degrees
38
- const rotationShared = useSharedValue([0, 0, 0]); // final GPU offsets
39
-
40
- // Calibration shared values (UI thread)
41
- const initialGravity = useSharedValue([0, 0, 0]);
42
- const calibSum = useSharedValue([0, 0, 0]);
43
- const calibCount = useSharedValue(0);
44
- const calibrated = useSharedValue(false);
45
- const gravitySensor = useAnimatedSensor(SensorType.GRAVITY, {
46
- interval: 20
47
- });
48
- console.log('render');
49
-
50
- // Subscribe to orientation changes and reset calibration on change
51
- useEffect(() => {
52
- orientationAngle.value = getAngleFromDimensions();
53
- const unsubscribe = subscribeToOrientationChange(angleDeg => {
54
- orientationAngle.value = angleDeg;
55
- });
56
- return () => unsubscribe();
57
- }, [orientationAngle]);
58
-
59
- // Calibration & mapping logic
60
- useDerivedValue(() => {
61
- 'worklet';
62
-
63
- // console.log(orientationAngle.value);
64
- const v = gravitySensor.sensor?.value ?? gravitySensor.sensor.value ?? {
65
- x: 0,
66
- y: 0,
67
- z: 0
68
- };
69
- const gx = v.x ?? 0;
70
- const gy = v.y ?? 0;
71
- const gz = v.z ?? 0;
72
- const CALIBRATION_SAMPLES = 40;
73
- const alpha = 0.15; // smoothing
74
- const scale = 0.6;
75
- if (!calibrated.value) {
76
- // accumulate baseline in device coordinates
77
- const s = calibSum.value;
78
- const c = calibCount.value + 1;
79
- calibSum.value = [s[0] + gx, s[1] + gy, s[2] + gz];
80
- calibCount.value = c;
81
- if (c >= CALIBRATION_SAMPLES) {
82
- const avg = calibSum.value;
83
- initialGravity.value = [avg[0] / c, avg[1] / c, avg[2] / c];
84
- calibrated.value = true;
85
- }
86
- rotationShared.value = [0, 0, 0];
87
- return;
88
- }
89
- const init = initialGravity.value;
90
- const dx = gx - init[0];
91
- const dy = gy - init[1];
92
- const dz = gz - init[2];
93
-
94
- // Rotate into screen coordinates so offsets auto-swap with orientation
95
- const [mx, my] = rotate2D([dx, dy], -orientationAngle.value);
96
- const screenX = mx;
97
- const screenY = -my;
98
- const prev = rotationShared.value;
99
- const smoothX = prev[0] * (1 - alpha) + screenX * alpha;
100
- const smoothY = prev[1] * (1 - alpha) + screenY * alpha;
101
- const smoothZ = prev[2] * (1 - alpha) + dz * alpha;
102
- if (orientationAngle.value === 90) {
103
- rotationShared.value = [clamp(smoothY * scale, -1, 1), clamp(-smoothX * scale, -1, 1), clamp(smoothZ * scale, -1, 1)];
104
- } else {
105
- rotationShared.value = [clamp(smoothX * scale, -1, 1), clamp(smoothY * scale, -1, 1), clamp(smoothZ * scale, -1, 1)];
106
- }
107
- });
108
-
109
- // Resource setup
110
- useEffect(() => {
111
- if (!root || !device || !context) return;
112
- (async () => {
113
- const bitmap = await getBitmapFromURI(imageURI);
114
- const texture = await createTexture(root, bitmap);
115
- setImageTexture(texture);
116
- await loadTexture(root, bitmap, texture);
117
- })();
118
- }, [root, device, context, imageURI]);
119
-
120
- // Render loop
121
- useEffect(() => {
122
- if (!root || !device || !context || !imageTexture) return;
123
- context.configure({
124
- device,
125
- format: presentationFormat,
126
- alphaMode: 'premultiplied'
127
- });
128
- const sampler = device.createSampler({
129
- magFilter: 'linear',
130
- minFilter: 'linear'
131
- });
132
- const textureBindGroup = root.createBindGroup(textureBindGroupLayout, {
133
- texture: root.unwrap(imageTexture).createView(),
134
- sampler
135
- });
136
- const rotationBuffer = createRotationBuffer(root);
137
- const rotationBindGroup = createRotationValuesBindGroup(root, rotationBuffer);
138
- const bloomOptionsBuffer = createBloomOptionsBuffer(root, createBloomOptions(bloomOptions ?? {}));
139
- const bloomOptionsBindGroup = createBloomOptionsBindGroup(root, bloomOptionsBuffer);
140
- const colorMaskBuffer = createColorMaskBuffer(root, createColorMask(colorMaskOptions ?? {
141
- baseColor: [-20, -20, -20]
142
- }));
143
- const colorMaskBindGroup = createColorMaskBindGroup(root, colorMaskBuffer);
144
- const bloomBGP = createBindGroupPairs([textureBindGroupLayout, rotationValuesBindGroupLayout, bloomOptionsBindGroupLayout, colorMaskBindGroupLayout], [textureBindGroup, rotationBindGroup, bloomOptionsBindGroup, colorMaskBindGroup]);
145
- const maskBGP = createBindGroupPairs([textureBindGroupLayout, colorMaskBindGroupLayout], [textureBindGroup, colorMaskBindGroup]);
146
- let bloomPipeline = root['~unstable'].withVertex(mainVertex, {}).withFragment(bloomFragment, getDefaultTarget(presentationFormat)).createPipeline();
147
- bloomPipeline = attachBindGroups(bloomPipeline, bloomBGP);
148
- let colorMaskPipeline = root['~unstable'].withVertex(mainVertex, {}).withFragment(colorMaskFragment, getDefaultTarget(presentationFormat)).createPipeline();
149
- colorMaskPipeline = attachBindGroups(colorMaskPipeline, maskBGP);
150
- const rot = d.vec3f(0.0);
151
- let view;
152
- let bloomAttachment;
153
- let colorMaskAttachment;
154
- const render = () => {
155
- rot[0] = rotationShared.value[0];
156
- rot[1] = rotationShared.value[1];
157
- rot[2] = rotationShared.value[2];
158
- rotationBuffer.write(rot);
159
- view = context.getCurrentTexture().createView();
160
- bloomAttachment = {
161
- view: view,
162
- clearValue: [0, 0, 0, 0],
163
- loadOp: 'clear',
164
- storeOp: 'store'
165
- };
166
- colorMaskAttachment = {
167
- view: view,
168
- loadOp: 'load',
169
- storeOp: 'store'
170
- };
171
-
172
- // root['~unstable'].beginRenderPass(
173
- // {
174
- // colorAttachments: [
175
- // {
176
- // view,
177
- // clearValue: [0, 0, 0, 0],
178
- // loadOp: 'clear',
179
- // storeOp: 'store',
180
- // },
181
- // ],
182
- // },
183
- // (pass) => {
184
- // pass.setPipeline(bloomPipeline);
185
- // // pass = attachBindGroupsToPass(pass, bloomBGP);
186
- // pass.setBindGroup(textureBindGroupLayout, textureBindGroup);
187
- // pass.setBindGroup(rotationValuesBindGroupLayout, rotationBindGroup);
188
- // pass.setBindGroup(bloomOptionsBindGroupLayout, bloomOptionsBindGroup);
189
- // pass.setBindGroup(colorMaskBindGroupLayout, colorMaskBindGroup);
190
- // pass.draw(6);
191
-
192
- // // Mask draw
193
- // pass.setPipeline(colorMaskPipeline);
194
- // pass.setBindGroup(textureBindGroupLayout, textureBindGroup);
195
- // pass.setBindGroup(colorMaskBindGroupLayout, colorMaskBindGroup);
196
- // pass.draw(6);
197
- // }
198
- // );
199
- // root['~unstable'].flush();
200
-
201
- bloomPipeline.withColorAttachment(bloomAttachment).draw(6);
202
- colorMaskPipeline.withColorAttachment(colorMaskAttachment).draw(6);
203
- context.present();
204
- frameRef.current = requestAnimationFrame(render);
205
- };
206
- frameRef.current = requestAnimationFrame(render);
207
- return () => {
208
- if (frameRef.current) cancelAnimationFrame(frameRef.current);
209
- };
210
- }, [device, context, root, presentationFormat, imageTexture, rotationShared, bloomOptions, colorMaskOptions]);
211
- return /*#__PURE__*/_jsx(Canvas, {
212
- ref: ref,
213
- style: {
214
- width,
215
- height,
216
- aspectRatio: width / height
217
- },
218
- transparent: Platform.OS === 'ios'
219
- });
220
- }
221
- export { subscribeToOrientationChange, getAngleFromDimensions };
3
+ import { useOrientation } from "./hooks/useOrientation.js";
4
+ import { getAngleFromDimensions, isLandscapeMode, subscribeToOrientationChange } from "./shaders/utils.js";
5
+ export { subscribeToOrientationChange, getAngleFromDimensions, isLandscapeMode, useOrientation };
6
+ export { Shine } from "./components/Shine.js";
7
+ export { ShineGroup } from "./components/ShineGroup.js";
8
+ export * from "./utils/vector.js";
222
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","useState","Canvas","useDevice","useGPUContext","getOrInitRoot","mainVertex","getBitmapFromURI","createTexture","loadTexture","clamp","rotate2D","subscribeToOrientationChange","getAngleFromDimensions","bloomOptionsBindGroupLayout","colorMaskBindGroupLayout","rotationValuesBindGroupLayout","textureBindGroupLayout","SensorType","useAnimatedSensor","useDerivedValue","useSharedValue","d","Platform","bloomFragment","createBloomOptionsBindGroup","createBloomOptionsBuffer","createColorMaskBindGroup","createColorMaskBuffer","createRotationBuffer","createRotationValuesBindGroup","createBindGroupPairs","createBloomOptions","createColorMask","attachBindGroups","getDefaultTarget","colorMaskFragment","jsx","_jsx","Shine","width","height","imageURI","bloomOptions","colorMaskOptions","device","root","ref","context","presentationFormat","navigator","gpu","getPreferredCanvasFormat","frameRef","imageTexture","setImageTexture","orientationAngle","rotationShared","initialGravity","calibSum","calibCount","calibrated","gravitySensor","GRAVITY","interval","console","log","value","unsubscribe","angleDeg","v","sensor","x","y","z","gx","gy","gz","CALIBRATION_SAMPLES","alpha","scale","s","c","avg","init","dx","dy","dz","mx","my","screenX","screenY","prev","smoothX","smoothY","smoothZ","bitmap","texture","configure","format","alphaMode","sampler","createSampler","magFilter","minFilter","textureBindGroup","createBindGroup","unwrap","createView","rotationBuffer","rotationBindGroup","bloomOptionsBuffer","bloomOptionsBindGroup","colorMaskBuffer","baseColor","colorMaskBindGroup","bloomBGP","maskBGP","bloomPipeline","withVertex","withFragment","createPipeline","colorMaskPipeline","rot","vec3f","view","bloomAttachment","colorMaskAttachment","render","write","getCurrentTexture","clearValue","loadOp","storeOp","withColorAttachment","draw","present","current","requestAnimationFrame","cancelAnimationFrame","style","aspectRatio","transparent","OS"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useOrientation","getAngleFromDimensions","isLandscapeMode","subscribeToOrientationChange","Shine","ShineGroup"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,cAAc,QAAQ,2BAAwB;AACvD,SACEC,sBAAsB,EACtBC,eAAe,EACfC,4BAA4B,QACvB,oBAAiB;AAExB,SACEA,4BAA4B,EAC5BF,sBAAsB,EACtBC,eAAe,EACfF,cAAc;AAEhB,SAASI,KAAK,QAAQ,uBAAoB;AAC1C,SAASC,UAAU,QAAQ,4BAAyB;AAEpD,cAAc,mBAAgB","ignoreList":[]}
@@ -12,22 +12,32 @@ export const textureBindGroupLayout = tgpu.bindGroupLayout({
12
12
  sampler: 'filtering'
13
13
  }
14
14
  });
15
- export const rotationValuesBindGroupLayout = tgpu.bindGroupLayout({
15
+ export const maskTextureBindGroupLayout = tgpu.bindGroupLayout({
16
+ texture: {
17
+ texture: 'float',
18
+ dimension: '2d',
19
+ sampleType: 'float'
20
+ },
21
+ sampler: {
22
+ sampler: 'filtering'
23
+ }
24
+ });
25
+ export const rotationBindGroupLayout = tgpu.bindGroupLayout({
16
26
  vec: {
17
27
  uniform: d.vec3f
18
28
  }
19
29
  });
20
- export const bloomOptionsSchema = d.struct({
30
+ export const glareSchema = d.struct({
21
31
  glowPower: d.f32,
22
32
  hueShiftAngleMax: d.f32,
23
33
  hueShiftAngleMin: d.f32,
24
34
  hueBlendPower: d.f32,
25
35
  lightIntensity: d.f32,
26
- bloomIntensity: d.f32
36
+ glareIntensity: d.f32
27
37
  });
28
- export const bloomOptionsBindGroupLayout = tgpu.bindGroupLayout({
29
- bloomOptions: {
30
- uniform: bloomOptionsSchema
38
+ export const glareBindGroupLayout = tgpu.bindGroupLayout({
39
+ glareOptions: {
40
+ uniform: glareSchema
31
41
  }
32
42
  });
33
43
  export const colorMaskSchema = d.struct({
@@ -42,4 +52,29 @@ export const colorMaskBindGroupLayout = tgpu.bindGroupLayout({
42
52
  uniform: colorMaskSchema
43
53
  }
44
54
  });
55
+ export const bufferData = {
56
+ rotation: {
57
+ schema: d.vec3f,
58
+ usage: 'uniform'
59
+ },
60
+ glare: {
61
+ schema: glareSchema,
62
+ usage: 'uniform'
63
+ },
64
+ colorMask: {
65
+ schema: colorMaskSchema,
66
+ usage: 'uniform'
67
+ }
68
+ };
69
+
70
+ // export const holoSchema = d.struct({
71
+ // intensity: d.f32,
72
+ // waveCallback: WaveCallback, //TgpuFn<(uv: d.Vec2f) => d.Vec2f>,
73
+ // });
74
+
75
+ // export type holoSchema = typeof holoSchema;
76
+
77
+ // export const holoBindGroupLayout = tgpu.bindGroupLayout({
78
+ // holoOptions: { uniform: holoSchema },
79
+ // });
45
80
  //# sourceMappingURL=bindGroupLayouts.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["tgpu","d","textureBindGroupLayout","bindGroupLayout","texture","dimension","sampleType","sampler","rotationValuesBindGroupLayout","vec","uniform","vec3f","bloomOptionsSchema","struct","glowPower","f32","hueShiftAngleMax","hueShiftAngleMin","hueBlendPower","lightIntensity","bloomIntensity","bloomOptionsBindGroupLayout","bloomOptions","colorMaskSchema","baseColor","rgbToleranceRange","upper","lower","colorMaskBindGroupLayout","mask"],"sourceRoot":"../../../src","sources":["shaders/bindGroupLayouts.ts"],"mappings":";;AAAA,OAAOA,IAAI,MAAM,SAAS;AAC1B,OAAO,KAAKC,CAAC,MAAM,cAAc;AAEjC,OAAO,MAAMC,sBAAsB,GAAGF,IAAI,CAACG,eAAe,CAAC;EACzDC,OAAO,EAAE;IAAEA,OAAO,EAAE,OAAO;IAAEC,SAAS,EAAE,IAAI;IAAEC,UAAU,EAAE;EAAQ,CAAC;EACnEC,OAAO,EAAE;IAAEA,OAAO,EAAE;EAAY;AAClC,CAAC,CAAC;AAEF,OAAO,MAAMC,6BAA6B,GAAGR,IAAI,CAACG,eAAe,CAAC;EAChEM,GAAG,EAAE;IAAEC,OAAO,EAAET,CAAC,CAACU;EAAM;AAC1B,CAAC,CAAC;AAEF,OAAO,MAAMC,kBAAkB,GAAGX,CAAC,CAACY,MAAM,CAAC;EACzCC,SAAS,EAAEb,CAAC,CAACc,GAAG;EAChBC,gBAAgB,EAAEf,CAAC,CAACc,GAAG;EACvBE,gBAAgB,EAAEhB,CAAC,CAACc,GAAG;EACvBG,aAAa,EAAEjB,CAAC,CAACc,GAAG;EACpBI,cAAc,EAAElB,CAAC,CAACc,GAAG;EACrBK,cAAc,EAAEnB,CAAC,CAACc;AACpB,CAAC,CAAC;AAIF,OAAO,MAAMM,2BAA2B,GAAGrB,IAAI,CAACG,eAAe,CAAC;EAC9DmB,YAAY,EAAE;IAAEZ,OAAO,EAAEE;EAAmB;AAC9C,CAAC,CAAC;AAEF,OAAO,MAAMW,eAAe,GAAGtB,CAAC,CAACY,MAAM,CAAC;EACtCW,SAAS,EAAEvB,CAAC,CAACU,KAAK;EAClBc,iBAAiB,EAAExB,CAAC,CAACY,MAAM,CAAC;IAC1Ba,KAAK,EAAEzB,CAAC,CAACU,KAAK;IACdgB,KAAK,EAAE1B,CAAC,CAACU;EACX,CAAC;AACH,CAAC,CAAC;AAIF,OAAO,MAAMiB,wBAAwB,GAAG5B,IAAI,CAACG,eAAe,CAAC;EAC3D0B,IAAI,EAAE;IAAEnB,OAAO,EAAEa;EAAgB;AACnC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["tgpu","d","textureBindGroupLayout","bindGroupLayout","texture","dimension","sampleType","sampler","maskTextureBindGroupLayout","rotationBindGroupLayout","vec","uniform","vec3f","glareSchema","struct","glowPower","f32","hueShiftAngleMax","hueShiftAngleMin","hueBlendPower","lightIntensity","glareIntensity","glareBindGroupLayout","glareOptions","colorMaskSchema","baseColor","rgbToleranceRange","upper","lower","colorMaskBindGroupLayout","mask","bufferData","rotation","schema","usage","glare","colorMask"],"sourceRoot":"../../../src","sources":["shaders/bindGroupLayouts.ts"],"mappings":";;AAAA,OAAOA,IAAI,MAAqC,SAAS;AACzD,OAAO,KAAKC,CAAC,MAAM,cAAc;AAGjC,OAAO,MAAMC,sBAAsB,GAAGF,IAAI,CAACG,eAAe,CAAC;EACzDC,OAAO,EAAE;IAAEA,OAAO,EAAE,OAAO;IAAEC,SAAS,EAAE,IAAI;IAAEC,UAAU,EAAE;EAAQ,CAAC;EACnEC,OAAO,EAAE;IAAEA,OAAO,EAAE;EAAY;AAClC,CAAC,CAAC;AAEF,OAAO,MAAMC,0BAA0B,GAAGR,IAAI,CAACG,eAAe,CAAC;EAC7DC,OAAO,EAAE;IAAEA,OAAO,EAAE,OAAO;IAAEC,SAAS,EAAE,IAAI;IAAEC,UAAU,EAAE;EAAQ,CAAC;EACnEC,OAAO,EAAE;IAAEA,OAAO,EAAE;EAAY;AAClC,CAAC,CAAC;AAEF,OAAO,MAAME,uBAAuB,GAAGT,IAAI,CAACG,eAAe,CAAC;EAC1DO,GAAG,EAAE;IAAEC,OAAO,EAAEV,CAAC,CAACW;EAAM;AAC1B,CAAC,CAAC;AAEF,OAAO,MAAMC,WAAW,GAAGZ,CAAC,CAACa,MAAM,CAAC;EAClCC,SAAS,EAAEd,CAAC,CAACe,GAAG;EAChBC,gBAAgB,EAAEhB,CAAC,CAACe,GAAG;EACvBE,gBAAgB,EAAEjB,CAAC,CAACe,GAAG;EACvBG,aAAa,EAAElB,CAAC,CAACe,GAAG;EACpBI,cAAc,EAAEnB,CAAC,CAACe,GAAG;EACrBK,cAAc,EAAEpB,CAAC,CAACe;AACpB,CAAC,CAAC;AAIF,OAAO,MAAMM,oBAAoB,GAAGtB,IAAI,CAACG,eAAe,CAAC;EACvDoB,YAAY,EAAE;IAAEZ,OAAO,EAAEE;EAAY;AACvC,CAAC,CAAC;AAEF,OAAO,MAAMW,eAAe,GAAGvB,CAAC,CAACa,MAAM,CAAC;EACtCW,SAAS,EAAExB,CAAC,CAACW,KAAK;EAClBc,iBAAiB,EAAEzB,CAAC,CAACa,MAAM,CAAC;IAC1Ba,KAAK,EAAE1B,CAAC,CAACW,KAAK;IACdgB,KAAK,EAAE3B,CAAC,CAACW;EACX,CAAC;AACH,CAAC,CAAC;AAIF,OAAO,MAAMiB,wBAAwB,GAAG7B,IAAI,CAACG,eAAe,CAAC;EAC3D2B,IAAI,EAAE;IAAEnB,OAAO,EAAEa;EAAgB;AACnC,CAAC,CAAC;AAEF,OAAO,MAAMO,UAAU,GAAG;EACxBC,QAAQ,EAAE;IACRC,MAAM,EAAEhC,CAAC,CAACW,KAAK;IACfsB,KAAK,EAAE;EACT,CAAC;EACDC,KAAK,EAAE;IACLF,MAAM,EAAEpB,WAAW;IACnBqB,KAAK,EAAE;EACT,CAAC;EACDE,SAAS,EAAE;IACTH,MAAM,EAAET,eAAe;IACvBU,KAAK,EAAE;EACT;AACF,CAGC;;AAID;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA","ignoreList":[]}
@@ -1,45 +1,38 @@
1
1
  "use strict";
2
2
 
3
3
  import * as d from 'typegpu/data';
4
- import { bloomOptionsBindGroupLayout, bloomOptionsSchema, colorMaskBindGroupLayout, colorMaskSchema, rotationValuesBindGroupLayout } from "./bindGroupLayouts.js";
5
- import { colorMaskToTyped, createBloomOptions, createColorMask, mapToF32 } from "../types/typeUtils.js";
6
- export const createRotationBuffer = (root, initValues) => {
7
- const init = initValues ? d.vec3f(initValues.x, initValues.y, initValues.z) : d.vec3f(0.0);
8
- const rotationValuesBuffer = root.createBuffer(d.vec3f, init).$usage('uniform');
9
- return rotationValuesBuffer;
10
- };
11
- export const createRotationValuesBindGroup = (root, buffer) => {
12
- const rotationValuesBindGroup = root.createBindGroup(rotationValuesBindGroupLayout, {
13
- vec: buffer
14
- });
15
- return rotationValuesBindGroup;
16
- };
17
- export const createBloomOptionsBuffer = (root, initValues) => {
18
- const bloomOptions = createBloomOptions({
19
- ...initValues
20
- });
21
- const bloomOptionsTyped = mapToF32(bloomOptions);
22
- const bloomOptionsBuffer = root.createBuffer(bloomOptionsSchema, bloomOptionsTyped).$usage('uniform');
23
- return bloomOptionsBuffer;
24
- };
25
- export const createBloomOptionsBindGroup = (root, buffer) => {
26
- const bloomOptionsBindGroup = root.createBindGroup(bloomOptionsBindGroupLayout, {
27
- bloomOptions: buffer
28
- });
29
- return bloomOptionsBindGroup;
30
- };
31
- export const createColorMaskBuffer = (root, initValues) => {
32
- const colorMask = createColorMask({
33
- ...initValues
34
- });
35
- const colorMaskTyped = colorMaskToTyped(colorMask);
36
- const colorMaskBuffer = root.createBuffer(colorMaskSchema, colorMaskTyped).$usage('uniform');
37
- return colorMaskBuffer;
38
- };
39
- export const createColorMaskBindGroup = (root, buffer) => {
40
- const colorMaskBindGroup = root.createBindGroup(colorMaskBindGroupLayout, {
41
- mask: buffer
42
- });
43
- return colorMaskBindGroup;
44
- };
4
+ import { glareBindGroupLayout, glareSchema, colorMaskBindGroupLayout, rotationBindGroupLayout, colorMaskSchema } from "./bindGroupLayouts.js";
5
+ import { colorMaskToTyped, createGlareOptions, createColorMask, mapToF32 } from "../types/typeUtils.js";
6
+ import { componentsFromV3d, zeroV3d } from "../utils/vector.js";
7
+ export const createRotationBuffer = (root, initValues = zeroV3d) => root.createBuffer(d.vec3f, d.vec3f(...componentsFromV3d(initValues))).$usage('uniform');
8
+ export const createRotationValuesBindGroup = (root, buffer) => root.createBindGroup(rotationBindGroupLayout, {
9
+ vec: root.unwrap(buffer)
10
+ });
11
+ export const createGlareOptionsBuffer = (root, initValues) => root.createBuffer(glareSchema, mapToF32(createGlareOptions({
12
+ ...initValues
13
+ }))).$usage('uniform');
14
+ export const createGlareBindGroup = (root, buffer) => root.createBindGroup(glareBindGroupLayout, {
15
+ glareOptions: buffer
16
+ });
17
+ export const createColorMaskBuffer = (root, initValues) => root.createBuffer(colorMaskSchema, colorMaskToTyped(createColorMask({
18
+ ...initValues
19
+ }))).$usage('uniform');
20
+ export const createColorMaskBindGroup = (root, buffer) => root.createBindGroup(colorMaskBindGroupLayout, {
21
+ mask: buffer
22
+ });
23
+
24
+ // export const crateHoloBuffer = (
25
+ // root: TgpuRoot,
26
+ // initValues: Partial<HoloOptions>
27
+ // ) => {
28
+ // const holoOptions: HoloOptions = createHoloOptions({ ...initValues });
29
+ // const holoOptionsTyped = {
30
+ // intensity: d.f32(holoOptions.intensity),
31
+ // waveCallback: holoOptions.waveCallback,
32
+ // };
33
+
34
+ // const holoBuffer = root
35
+ // .createBuffer(holoSchema, holoOptionsTyped)
36
+ // .$usage('uniform');
37
+ // };
45
38
  //# sourceMappingURL=bindGroupUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["d","bloomOptionsBindGroupLayout","bloomOptionsSchema","colorMaskBindGroupLayout","colorMaskSchema","rotationValuesBindGroupLayout","colorMaskToTyped","createBloomOptions","createColorMask","mapToF32","createRotationBuffer","root","initValues","init","vec3f","x","y","z","rotationValuesBuffer","createBuffer","$usage","createRotationValuesBindGroup","buffer","rotationValuesBindGroup","createBindGroup","vec","createBloomOptionsBuffer","bloomOptions","bloomOptionsTyped","bloomOptionsBuffer","createBloomOptionsBindGroup","bloomOptionsBindGroup","createColorMaskBuffer","colorMask","colorMaskTyped","colorMaskBuffer","createColorMaskBindGroup","colorMaskBindGroup","mask"],"sourceRoot":"../../../src","sources":["shaders/bindGroupUtils.ts"],"mappings":";;AACA,OAAO,KAAKA,CAAC,MAAM,cAAc;AACjC,SACEC,2BAA2B,EAC3BC,kBAAkB,EAClBC,wBAAwB,EACxBC,eAAe,EACfC,6BAA6B,QACxB,uBAAoB;AAM3B,SACEC,gBAAgB,EAChBC,kBAAkB,EAClBC,eAAe,EACfC,QAAQ,QACH,uBAAoB;AAE3B,OAAO,MAAMC,oBAAoB,GAAGA,CAClCC,IAAc,EACdC,UAAgD,KAC7C;EACH,MAAMC,IAAI,GAAGD,UAAU,GACnBZ,CAAC,CAACc,KAAK,CAACF,UAAU,CAACG,CAAC,EAAEH,UAAU,CAACI,CAAC,EAAEJ,UAAU,CAACK,CAAC,CAAC,GACjDjB,CAAC,CAACc,KAAK,CAAC,GAAG,CAAC;EAChB,MAAMI,oBAAoB,GAAGP,IAAI,CAC9BQ,YAAY,CAACnB,CAAC,CAACc,KAAK,EAAED,IAAI,CAAC,CAC3BO,MAAM,CAAC,SAAS,CAAC;EAEpB,OAAOF,oBAAoB;AAC7B,CAAC;AAED,OAAO,MAAMG,6BAA6B,GAAGA,CAC3CV,IAAc,EACdW,MAAyC,KACtC;EACH,MAAMC,uBAAuB,GAAGZ,IAAI,CAACa,eAAe,CAClDnB,6BAA6B,EAC7B;IACEoB,GAAG,EAAEH;EACP,CACF,CAAC;EAED,OAAOC,uBAAuB;AAChC,CAAC;AAED,OAAO,MAAMG,wBAAwB,GAAGA,CACtCf,IAAc,EACdC,UAAkC,KAC/B;EACH,MAAMe,YAA0B,GAAGpB,kBAAkB,CAAC;IAAE,GAAGK;EAAW,CAAC,CAAC;EACxE,MAAMgB,iBAAiB,GAAGnB,QAAQ,CAACkB,YAAY,CAAC;EAEhD,MAAME,kBAAkB,GAAGlB,IAAI,CAC5BQ,YAAY,CAACjB,kBAAkB,EAAE0B,iBAAiB,CAAC,CACnDR,MAAM,CAAC,SAAS,CAAC;EAEpB,OAAOS,kBAAkB;AAC3B,CAAC;AAED,OAAO,MAAMC,2BAA2B,GAAGA,CACzCnB,IAAc,EACdW,MAAoD,KACjD;EACH,MAAMS,qBAAqB,GAAGpB,IAAI,CAACa,eAAe,CAChDvB,2BAA2B,EAC3B;IACE0B,YAAY,EAAEL;EAChB,CACF,CAAC;EAED,OAAOS,qBAAqB;AAC9B,CAAC;AAED,OAAO,MAAMC,qBAAqB,GAAGA,CACnCrB,IAAc,EACdC,UAAqD,KAClD;EACH,MAAMqB,SAAoB,GAAGzB,eAAe,CAAC;IAAE,GAAGI;EAAW,CAAC,CAAC;EAC/D,MAAMsB,cAAc,GAAG5B,gBAAgB,CAAC2B,SAAS,CAAC;EAElD,MAAME,eAAe,GAAGxB,IAAI,CACzBQ,YAAY,CAACf,eAAe,EAAE8B,cAAc,CAAC,CAC7Cd,MAAM,CAAC,SAAS,CAAC;EAEpB,OAAOe,eAAe;AACxB,CAAC;AAED,OAAO,MAAMC,wBAAwB,GAAGA,CACtCzB,IAAc,EACdW,MAAiD,KAC9C;EACH,MAAMe,kBAAkB,GAAG1B,IAAI,CAACa,eAAe,CAACrB,wBAAwB,EAAE;IACxEmC,IAAI,EAAEhB;EACR,CAAC,CAAC;EAEF,OAAOe,kBAAkB;AAC3B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["d","glareBindGroupLayout","glareSchema","colorMaskBindGroupLayout","rotationBindGroupLayout","colorMaskSchema","colorMaskToTyped","createGlareOptions","createColorMask","mapToF32","componentsFromV3d","zeroV3d","createRotationBuffer","root","initValues","createBuffer","vec3f","$usage","createRotationValuesBindGroup","buffer","createBindGroup","vec","unwrap","createGlareOptionsBuffer","createGlareBindGroup","glareOptions","createColorMaskBuffer","createColorMaskBindGroup","mask"],"sourceRoot":"../../../src","sources":["shaders/bindGroupUtils.ts"],"mappings":";;AACA,OAAO,KAAKA,CAAC,MAAM,cAAc;AACjC,SACEC,oBAAoB,EACpBC,WAAW,EACXC,wBAAwB,EAExBC,uBAAuB,EAEvBC,eAAe,QACV,uBAAoB;AAM3B,SACEC,gBAAgB,EAChBC,kBAAkB,EAClBC,eAAe,EACfC,QAAQ,QACH,uBAAoB;AAC3B,SAASC,iBAAiB,EAAEC,OAAO,QAAQ,oBAAiB;AAE5D,OAAO,MAAMC,oBAAoB,GAAGA,CAACC,IAAc,EAAEC,UAAU,GAAGH,OAAO,KACvEE,IAAI,CACDE,YAAY,CAACf,CAAC,CAACgB,KAAK,EAAEhB,CAAC,CAACgB,KAAK,CAAC,GAAGN,iBAAiB,CAACI,UAAU,CAAC,CAAC,CAAC,CAChEG,MAAM,CAAC,SAAS,CAAC;AAEtB,OAAO,MAAMC,6BAA6B,GAAGA,CAC3CL,IAAc,EACdM,MAA2B,KAE3BN,IAAI,CAACO,eAAe,CAAChB,uBAAuB,EAAE;EAC5CiB,GAAG,EAAER,IAAI,CAACS,MAAM,CAACH,MAAM;AACzB,CAAC,CAAC;AAEJ,OAAO,MAAMI,wBAAwB,GAAGA,CACtCV,IAAc,EACdC,UAAkC,KAElCD,IAAI,CACDE,YAAY,CAACb,WAAW,EAAEO,QAAQ,CAACF,kBAAkB,CAAC;EAAE,GAAGO;AAAW,CAAC,CAAC,CAAC,CAAC,CAC1EG,MAAM,CAAC,SAAS,CAAC;AAEtB,OAAO,MAAMO,oBAAoB,GAAGA,CAClCX,IAAc,EACdM,MAA6C,KAE7CN,IAAI,CAACO,eAAe,CAACnB,oBAAoB,EAAE;EACzCwB,YAAY,EAAEN;AAChB,CAAC,CAAC;AAEJ,OAAO,MAAMO,qBAAqB,GAAGA,CACnCb,IAAc,EACdC,UAAqD,KAErDD,IAAI,CACDE,YAAY,CACXV,eAAe,EACfC,gBAAgB,CAACE,eAAe,CAAC;EAAE,GAAGM;AAAW,CAAC,CAAC,CACrD,CAAC,CACAG,MAAM,CAAC,SAAS,CAAC;AAEtB,OAAO,MAAMU,wBAAwB,GAAGA,CACtCd,IAAc,EACdM,MAAiD,KAEjDN,IAAI,CAACO,eAAe,CAACjB,wBAAwB,EAAE;EAC7CyB,IAAI,EAAET;AACR,CAAC,CAAC;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA","ignoreList":[]}
@@ -20,9 +20,9 @@ const colorMaskFragment = tgpu['~unstable'].fragmentFn({
20
20
  const upperCheck = std.all(std.le(color.xyz, maskedColorUpper));
21
21
  const lowerCheck = std.all(std.ge(color.xyz, maskedColorLower));
22
22
  if (upperCheck && lowerCheck) {
23
- return color;
23
+ return d.vec4f(color.xyz, 0.0);
24
24
  }
25
- std.discard();
25
+ return d.vec4f(1.0);
26
26
  });
27
27
  export default colorMaskFragment;
28
28
  //# sourceMappingURL=colorMaskFragment.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["tgpu","d","std","textureBindGroupLayout","colorMaskBindGroupLayout","colorMaskFragment","fragmentFn","in","uv","vec2f","out","vec4f","input","texcoord","x","y","mask","$","maskedColor","baseColor","rgbToleranceRange","color","textureSample","texture","sampler","maskedColorLower","sub","lower","maskedColorUpper","add","upper","upperCheck","all","le","xyz","lowerCheck","ge","discard"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/colorMaskFragment.ts"],"mappings":";;AAAA,OAAOA,IAAI,MAAM,SAAS;AAC1B,OAAO,KAAKC,CAAC,MAAM,cAAc;AACjC,OAAO,KAAKC,GAAG,MAAM,aAAa;AAClC,SACEC,sBAAsB,EACtBC,wBAAwB,QACnB,wBAAqB;AAE5B,MAAMC,iBAAiB,GAAGL,IAAI,CAAC,WAAW,CAAC,CAACM,UAAU,CAAC;EACrDC,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,GAAGZ,wBAAwB,CAACa,CAAC,CAACD,IAAI;EAC5C,MAAME,WAAW,GAAGF,IAAI,CAACG,SAAS;EAClC,MAAMC,iBAAiB,GAAGJ,IAAI,CAACI,iBAAiB;EAEhD,IAAIC,KAAK,GAAGnB,GAAG,CAACoB,aAAa,CAC3BnB,sBAAsB,CAACc,CAAC,CAACM,OAAO,EAChCpB,sBAAsB,CAACc,CAAC,CAACO,OAAO,EAChCX,QACF,CAAC;EAED,MAAMY,gBAAgB,GAAGvB,GAAG,CAACwB,GAAG,CAACR,WAAW,EAAEE,iBAAiB,CAACO,KAAK,CAAC;EACtE,MAAMC,gBAAgB,GAAG1B,GAAG,CAAC2B,GAAG,CAACX,WAAW,EAAEE,iBAAiB,CAACU,KAAK,CAAC;EACtE,MAAMC,UAAU,GAAG7B,GAAG,CAAC8B,GAAG,CAAC9B,GAAG,CAAC+B,EAAE,CAACZ,KAAK,CAACa,GAAG,EAAEN,gBAAgB,CAAC,CAAC;EAC/D,MAAMO,UAAU,GAAGjC,GAAG,CAAC8B,GAAG,CAAC9B,GAAG,CAACkC,EAAE,CAACf,KAAK,CAACa,GAAG,EAAET,gBAAgB,CAAC,CAAC;EAC/D,IAAIM,UAAU,IAAII,UAAU,EAAE;IAC5B,OAAOd,KAAK;EACd;EACAnB,GAAG,CAACmC,OAAO,CAAC,CAAC;AACf,CAAC,CAAC;AAEF,eAAehC,iBAAiB","ignoreList":[]}
1
+ {"version":3,"names":["tgpu","d","std","textureBindGroupLayout","colorMaskBindGroupLayout","colorMaskFragment","fragmentFn","in","uv","vec2f","out","vec4f","input","texcoord","x","y","mask","$","maskedColor","baseColor","rgbToleranceRange","color","textureSample","texture","sampler","maskedColorLower","sub","lower","maskedColorUpper","add","upper","upperCheck","all","le","xyz","lowerCheck","ge"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/colorMaskFragment.ts"],"mappings":";;AAAA,OAAOA,IAAI,MAAM,SAAS;AAC1B,OAAO,KAAKC,CAAC,MAAM,cAAc;AACjC,OAAO,KAAKC,GAAG,MAAM,aAAa;AAClC,SACEC,sBAAsB,EACtBC,wBAAwB,QACnB,wBAAqB;AAE5B,MAAMC,iBAAiB,GAAGL,IAAI,CAAC,WAAW,CAAC,CAACM,UAAU,CAAC;EACrDC,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,GAAGZ,wBAAwB,CAACa,CAAC,CAACD,IAAI;EAC5C,MAAME,WAAW,GAAGF,IAAI,CAACG,SAAS;EAClC,MAAMC,iBAAiB,GAAGJ,IAAI,CAACI,iBAAiB;EAEhD,IAAIC,KAAK,GAAGnB,GAAG,CAACoB,aAAa,CAC3BnB,sBAAsB,CAACc,CAAC,CAACM,OAAO,EAChCpB,sBAAsB,CAACc,CAAC,CAACO,OAAO,EAChCX,QACF,CAAC;EAED,MAAMY,gBAAgB,GAAGvB,GAAG,CAACwB,GAAG,CAACR,WAAW,EAAEE,iBAAiB,CAACO,KAAK,CAAC;EACtE,MAAMC,gBAAgB,GAAG1B,GAAG,CAAC2B,GAAG,CAACX,WAAW,EAAEE,iBAAiB,CAACU,KAAK,CAAC;EACtE,MAAMC,UAAU,GAAG7B,GAAG,CAAC8B,GAAG,CAAC9B,GAAG,CAAC+B,EAAE,CAACZ,KAAK,CAACa,GAAG,EAAEN,gBAAgB,CAAC,CAAC;EAC/D,MAAMO,UAAU,GAAGjC,GAAG,CAAC8B,GAAG,CAAC9B,GAAG,CAACkC,EAAE,CAACf,KAAK,CAACa,GAAG,EAAET,gBAAgB,CAAC,CAAC;EAC/D,IAAIM,UAAU,IAAII,UAAU,EAAE;IAC5B,OAAOlC,CAAC,CAACU,KAAK,CAACU,KAAK,CAACa,GAAG,EAAE,GAAG,CAAC;EAChC;EACA,OAAOjC,CAAC,CAACU,KAAK,CAAC,GAAG,CAAC;AACrB,CAAC,CAAC;AAEF,eAAeN,iBAAiB","ignoreList":[]}
@@ -0,0 +1,115 @@
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 { rotationBindGroupLayout, textureBindGroupLayout, glareBindGroupLayout
7
+ // colorMaskBindGroupLayout,
8
+ } from "../bindGroupLayouts.js";
9
+ import { glareColorShift, hueShift, overlayChannels } from "../tgpuUtils.js";
10
+ export const glareFragment = tgpu['~unstable'].fragmentFn({
11
+ in: {
12
+ uv: d.vec2f
13
+ },
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 = 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 hueBlendPower = glareOptions.hueBlendPower;
26
+ const hueShiftAngleMax = glareOptions.hueShiftAngleMax;
27
+ const hueShiftAngleMin = glareOptions.hueShiftAngleMin;
28
+ const lightIntensity = glareOptions.lightIntensity;
29
+
30
+ // const mask = colorMaskBindGroupLayout.$.mask;
31
+ // const maskedColor = mask.baseColor;
32
+ // const rgbToleranceRange = mask.rgbToleranceRange;
33
+
34
+ let color = std.textureSample(textureBindGroupLayout.$.texture, textureBindGroupLayout.$.sampler, texcoord);
35
+
36
+ // const maskedColorLower = std.sub(maskedColor, rgbToleranceRange.lower);
37
+ // const maskedColorUpper = std.add(maskedColor, rgbToleranceRange.upper);
38
+ // const upperCheck = std.all(std.le(color.xyz, maskedColorUpper));
39
+ // const lowerCheck = std.all(std.ge(color.xyz, maskedColorLower));
40
+ // if (upperCheck && lowerCheck) {
41
+ // return color;
42
+ // }
43
+
44
+ //glareIntensity
45
+ const dst = std.exp(-std.distance(center, centeredCoords));
46
+ const distToCenter = std.smoothstep(0.0, 1 / glareIntensity, dst);
47
+
48
+ //glowPower
49
+ let glow = d.vec3f(distToCenter);
50
+ glow = std.mul(glow, glowPower * color.w);
51
+
52
+ //hueBlend
53
+ const hueBlend = d.f32(hueBlendPower) * dst / 10.0;
54
+
55
+ //lightIntensity
56
+ glow = std.add(glow, lightIntensity / 10.0);
57
+ let shiftedRGB = glareColorShift(color.xyz, dst / (lightIntensity * 2));
58
+
59
+ //hueShiftAngleMin/Max
60
+ const hueShiftAngle = std.smoothstep(hueShiftAngleMin, hueShiftAngleMax, distToCenter);
61
+ const shiftedHue = hueShift(shiftedRGB, hueShiftAngle);
62
+ shiftedRGB = overlayChannels(shiftedRGB, shiftedHue);
63
+ color = d.vec4f(std.mix(color.xyz, shiftedRGB, hueBlend), color.w);
64
+ const baseColor = color;
65
+ const blendColor = glow;
66
+ const combined = overlayChannels(baseColor.xyz, blendColor);
67
+ color = d.vec4f(std.mix(color.xyz, combined, glow), color.w);
68
+ return color;
69
+ });
70
+ export const newGlareFragment = tgpu['~unstable'].fragmentFn({
71
+ in: {
72
+ uv: d.vec2f
73
+ },
74
+ out: d.vec4f
75
+ })(input => {
76
+ const texcoord = d.vec2f(input.uv.x, 1.0 - input.uv.y);
77
+ const uv = d.vec2f(input.uv.x, 1.0 - input.uv.y);
78
+ const centeredCoords = std.sub(std.mul(uv, 2.0), 1.0);
79
+ const rot = rotationBindGroupLayout.$.vec;
80
+ const center = std.add(d.vec2f(0.0), d.vec2f(rot.x, rot.y)); // do not change
81
+
82
+ const opts = glareBindGroupLayout.$.glareOptions;
83
+ const glareIntensity = opts.glareIntensity; // [0..∞): bigger → wider/stronger area
84
+ const glowPower = opts.glowPower; // (0..∞): curve shaping; bigger → softer/wider glow
85
+ const hueBlendPower = opts.hueBlendPower; // [0..1+]: how much hue-shifted color blends in
86
+ const hueShiftAngleMin = opts.hueShiftAngleMin; // radians
87
+ const hueShiftAngleMax = opts.hueShiftAngleMax; // radians
88
+ const lightIntensity = opts.lightIntensity / 1.3; // [0..∞): brightness boost of the glare/bloom
89
+
90
+ let color = std.textureSample(textureBindGroupLayout.$.texture, textureBindGroupLayout.$.sampler, texcoord);
91
+ const dist = std.distance(center, centeredCoords);
92
+ const radial = std.exp(-dist); // (0,1], steeper near center
93
+ const radialScaled = std.mul(radial, std.add(1.0, std.max(0.0, glareIntensity)));
94
+ const influenceRaw = std.smoothstep(0.0, 1.0, radialScaled); // 0..1
95
+ const curveExp = std.clamp(glowPower, 0.05, 64.0);
96
+ const glowMask = std.pow(influenceRaw, std.div(1.0, curveExp)); // 0..1
97
+
98
+ const maskedGlow = std.mul(glowMask, color.w); // 0..1
99
+ const boostedRGB = glareColorShift(color.xyz, maskedGlow);
100
+ const hueT = std.clamp(maskedGlow, 0.0, 1.0);
101
+ const hueAngle = std.mix(hueShiftAngleMin, hueShiftAngleMax, hueT);
102
+ const hueShifted = hueShift(boostedRGB, hueAngle);
103
+ const hueMixWeight = std.clamp(std.mul(hueBlendPower / 5.0, maskedGlow), 0.0, 1.0);
104
+ const chromaMixed = std.mix(color.xyz, hueShifted, hueMixWeight);
105
+ const glareStrength = std.clamp(lightIntensity, 0.0, 100.0);
106
+ const glareLayer = std.mul(d.vec3f(maskedGlow), glareStrength);
107
+ const overlaidRGB = overlayChannels(chromaMixed, glareLayer);
108
+ const finalRGB = std.mix(chromaMixed, overlaidRGB, d.vec3f(maskedGlow));
109
+ const outRGB = std.clamp(finalRGB, d.vec3f(0.0), d.vec3f(1.0));
110
+
111
+ // if (maskedGlow > 0.6) return d.vec4f(0.0, 0.0, 0.0, 0.0);
112
+
113
+ return d.vec4f(outRGB, color.w);
114
+ });
115
+ //# sourceMappingURL=glareFragment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["tgpu","d","std","rotationBindGroupLayout","textureBindGroupLayout","glareBindGroupLayout","glareColorShift","hueShift","overlayChannels","glareFragment","fragmentFn","in","uv","vec2f","out","vec4f","input","texcoord","x","y","centeredCoords","sub","mul","rot","$","vec","center","add","glareOptions","glareIntensity","glowPower","hueBlendPower","hueShiftAngleMax","hueShiftAngleMin","lightIntensity","color","textureSample","texture","sampler","dst","exp","distance","distToCenter","smoothstep","glow","vec3f","w","hueBlend","f32","shiftedRGB","xyz","hueShiftAngle","shiftedHue","mix","baseColor","blendColor","combined","newGlareFragment","opts","dist","radial","radialScaled","max","influenceRaw","curveExp","clamp","glowMask","pow","div","maskedGlow","boostedRGB","hueT","hueAngle","hueShifted","hueMixWeight","chromaMixed","glareStrength","glareLayer","overlaidRGB","finalRGB","outRGB"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/glareFragment.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,28 @@
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 { rotationBindGroupLayout, textureBindGroupLayout } from "../bindGroupLayouts.js";
7
+ import { hueShift } from "../tgpuUtils.js";
8
+ import { waveCallbackSlot } from "../../enums/waveCallback.js";
9
+ export const holoFragment = tgpu['~unstable'].fragmentFn({
10
+ in: {
11
+ uv: d.vec2f
12
+ },
13
+ out: d.vec4f
14
+ })(input => {
15
+ const texcoord = d.vec2f(input.uv.x, 1.0 - input.uv.y);
16
+ const uv = texcoord;
17
+ const textureColor = std.textureSample(textureBindGroupLayout.$.texture, textureBindGroupLayout.$.sampler, texcoord);
18
+ const rot = rotationBindGroupLayout.$.vec;
19
+ const wave = waveCallbackSlot.$(rot.xy);
20
+ const waveX = wave.x;
21
+ const waveY = wave.y;
22
+ const band = std.add(0.2 * waveX * uv.x, 2 * waveY * uv.y);
23
+ const hueAngle = std.mul(std.abs(band), 10 * Math.PI * rot.x / 3);
24
+ const rainbowColor = hueShift(d.vec3f(1.0, 1.0, 1.0), hueAngle);
25
+ const finalColor = std.mul(rainbowColor, 1.0);
26
+ return d.vec4f(finalColor, 0.7 * textureColor.w);
27
+ });
28
+ //# sourceMappingURL=holoFragment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["tgpu","d","std","rotationBindGroupLayout","textureBindGroupLayout","hueShift","waveCallbackSlot","holoFragment","fragmentFn","in","uv","vec2f","out","vec4f","input","texcoord","x","y","textureColor","textureSample","$","texture","sampler","rot","vec","wave","xy","waveX","waveY","band","add","hueAngle","mul","abs","Math","PI","rainbowColor","vec3f","finalColor","w"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/holoFragment.ts"],"mappings":";;AAAA,OAAOA,IAAI,MAAM,SAAS;AAC1B,OAAO,KAAKC,CAAC,MAAM,cAAc;AACjC,OAAO,KAAKC,GAAG,MAAM,aAAa;AAClC,SACEC,uBAAuB,EACvBC,sBAAsB,QACjB,wBAAqB;AAC5B,SAASC,QAAQ,QAAQ,iBAAc;AACvC,SAASC,gBAAgB,QAAQ,6BAA0B;AAE3D,OAAO,MAAMC,YAAY,GAAGP,IAAI,CAAC,WAAW,CAAC,CAACQ,UAAU,CAAC;EACvDC,EAAE,EAAE;IAAEC,EAAE,EAAET,CAAC,CAACU;EAAM,CAAC;EACnBC,GAAG,EAAEX,CAAC,CAACY;AACT,CAAC,CAAC,CAAEC,KAAK,IAAK;EACZ,MAAMC,QAAQ,GAAGd,CAAC,CAACU,KAAK,CAACG,KAAK,CAACJ,EAAE,CAACM,CAAC,EAAE,GAAG,GAAGF,KAAK,CAACJ,EAAE,CAACO,CAAC,CAAC;EACtD,MAAMP,EAAE,GAAGK,QAAQ;EACnB,MAAMG,YAAY,GAAGhB,GAAG,CAACiB,aAAa,CACpCf,sBAAsB,CAACgB,CAAC,CAACC,OAAO,EAChCjB,sBAAsB,CAACgB,CAAC,CAACE,OAAO,EAChCP,QACF,CAAC;EACD,MAAMQ,GAAG,GAAGpB,uBAAuB,CAACiB,CAAC,CAACI,GAAG;EAEzC,MAAMC,IAAI,GAAGnB,gBAAgB,CAACc,CAAC,CAACG,GAAG,CAACG,EAAE,CAAC;EACvC,MAAMC,KAAK,GAAGF,IAAI,CAACT,CAAC;EACpB,MAAMY,KAAK,GAAGH,IAAI,CAACR,CAAC;EAEpB,MAAMY,IAAI,GAAG3B,GAAG,CAAC4B,GAAG,CAAC,GAAG,GAAGH,KAAK,GAAGjB,EAAE,CAACM,CAAC,EAAE,CAAC,GAAGY,KAAK,GAAGlB,EAAE,CAACO,CAAC,CAAC;EAE1D,MAAMc,QAAQ,GAAG7B,GAAG,CAAC8B,GAAG,CAAC9B,GAAG,CAAC+B,GAAG,CAACJ,IAAI,CAAC,EAAG,EAAE,GAAGK,IAAI,CAACC,EAAE,GAAGZ,GAAG,CAACP,CAAC,GAAI,CAAC,CAAC;EACnE,MAAMoB,YAAY,GAAG/B,QAAQ,CAACJ,CAAC,CAACoC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAEN,QAAQ,CAAC;EAC/D,MAAMO,UAAU,GAAGpC,GAAG,CAAC8B,GAAG,CAACI,YAAY,EAAE,GAAG,CAAC;EAE7C,OAAOnC,CAAC,CAACY,KAAK,CAACyB,UAAU,EAAE,GAAG,GAAGpB,YAAY,CAACqB,CAAC,CAAC;AAClD,CAAC,CAAC","ignoreList":[]}