@meimu/mutracer 0.1.2 → 0.1.3

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 (68) hide show
  1. package/dist/assets/bvh.worker.js +1 -1
  2. package/dist/mutracer.umd.js +3429 -3390
  3. package/lib/oidn.d.ts +1 -1
  4. package/lib/oidnBundledWeights.cdn.d.ts +2 -2
  5. package/lib/renderer/WGPUBloomPass.js +18 -18
  6. package/lib/renderer/WGPUFullQuadPass.js +3 -3
  7. package/lib/renderer/WGPUJNLMDenoiser.js +62 -62
  8. package/lib/renderer/WGPURayTraceOutput.js +14 -12
  9. package/lib/renderer/WGPURayTraceOutput.js.map +1 -1
  10. package/lib/renderer/WGPURayTracePass.js +1 -1
  11. package/lib/renderer/WGPURayTracePass.js.map +1 -1
  12. package/lib/renderer/WGPURenderingPipeline.js +20 -18
  13. package/lib/renderer/WGPURenderingPipeline.js.map +1 -1
  14. package/lib/renderer/WebGLJNLMDenoiser.js +61 -61
  15. package/lib/renderer/WebGLRayTraceOutputPass.js +4 -4
  16. package/lib/renderer/glsl/chunks/cameraRay.glsl.js +9 -9
  17. package/lib/renderer/glsl/chunks/envMap.glsl.js +45 -45
  18. package/lib/renderer/glsl/chunks/intersect.glsl.js +262 -262
  19. package/lib/renderer/glsl/chunks/materialBuffer.glsl.js +111 -111
  20. package/lib/renderer/glsl/chunks/openPbrBsdf.glsl.js +436 -436
  21. package/lib/renderer/glsl/chunks/rand.glsl.js +3 -3
  22. package/lib/renderer/glsl/chunks/random.glsl.js +3 -3
  23. package/lib/renderer/glsl/chunks/rayTraceCore.glsl.js +32 -32
  24. package/lib/renderer/glsl/chunks/sampleLight.glsl.js +54 -54
  25. package/lib/renderer/glsl/chunks/sampleMaterial.glsl.js +71 -71
  26. package/lib/renderer/glsl/chunks/sampleShadowCatcher.glsl.js +12 -12
  27. package/lib/renderer/glsl/chunks/sampling.glsl.js +64 -64
  28. package/lib/renderer/glsl/chunks/sobol.glsl.js +49 -49
  29. package/lib/renderer/glsl/chunks/textureLinear.glsl.js +5 -5
  30. package/lib/renderer/glsl/chunks/uvProjection.glsl.js +5 -5
  31. package/lib/renderer/glsl/depthQuery.frag.js +2 -2
  32. package/lib/renderer/glsl/normalizeRayTraceOutput.frag.js +8 -8
  33. package/lib/renderer/glsl/rayTrace.frag.js +128 -128
  34. package/lib/renderer/glsl/shadowCatcher.frag.js +12 -12
  35. package/lib/renderer/glsl/webglPipeline.frag.js +49 -49
  36. package/lib/renderer/lightsUtil.js +1 -1
  37. package/lib/renderer/lightsUtil.js.map +1 -1
  38. package/lib/renderer/scratchSampling.js +6 -6
  39. package/lib/renderer/wgsl/chunks/common.wgsl.js +4 -4
  40. package/lib/renderer/wgsl/chunks/envMap.wgsl.js +29 -29
  41. package/lib/renderer/wgsl/chunks/intersect.wgsl.js +368 -368
  42. package/lib/renderer/wgsl/chunks/intersectionAlpha.wgsl.js +5 -5
  43. package/lib/renderer/wgsl/chunks/materialBuffer.wgsl.js +51 -51
  44. package/lib/renderer/wgsl/chunks/openPbrBsdf.wgsl.js +453 -453
  45. package/lib/renderer/wgsl/chunks/pdm_displacement.wgsl.js +116 -116
  46. package/lib/renderer/wgsl/chunks/rand.wgsl.js +3 -3
  47. package/lib/renderer/wgsl/chunks/rayTraceCore.wgsl.js +13 -13
  48. package/lib/renderer/wgsl/chunks/sampleLight.wgsl.js +94 -94
  49. package/lib/renderer/wgsl/chunks/sampleMaterial.wgsl.js +119 -119
  50. package/lib/renderer/wgsl/chunks/sampleShadowCatcher.wgsl.js +5 -5
  51. package/lib/renderer/wgsl/chunks/sampling.wgsl.js +62 -62
  52. package/lib/renderer/wgsl/chunks/shadowCatcherAccumulation.wgsl.d.ts +3 -3
  53. package/lib/renderer/wgsl/chunks/shadowCatcherAccumulation.wgsl.js +2 -2
  54. package/lib/renderer/wgsl/chunks/shadowCatcherAccumulation.wgsl.js.map +1 -1
  55. package/lib/renderer/wgsl/chunks/sobol.wgsl.js +53 -53
  56. package/lib/renderer/wgsl/chunks/uvProjection.wgsl.js +5 -5
  57. package/lib/renderer/wgsl/compose.frag.wgsl.d.ts +2 -2
  58. package/lib/renderer/wgsl/compose.frag.wgsl.js +120 -92
  59. package/lib/renderer/wgsl/compose.frag.wgsl.js.map +1 -1
  60. package/lib/renderer/wgsl/customDenoise.wgsl.js +10 -10
  61. package/lib/renderer/wgsl/depthQuery.wgsl.js +3 -3
  62. package/lib/renderer/wgsl/offlineAdaptive.compute.js +26 -26
  63. package/lib/renderer/wgsl/rayTrace.compute.js +220 -211
  64. package/lib/renderer/wgsl/rayTrace.compute.js.map +1 -1
  65. package/lib/version.d.ts +1 -1
  66. package/lib/version.js +1 -1
  67. package/lib/version.js.map +1 -1
  68. package/package.json +5 -4
@@ -1,56 +1,56 @@
1
1
  const displacementCommon = /*wgsl*/ `
2
2
 
3
3
 
4
- struct jv {
4
+ struct jx {
5
5
  barycentric: vec3f,
6
6
  t: f32,
7
7
  normal: vec3f,
8
8
 
9
9
  }
10
10
 
11
- fn uL(
11
+ fn uQ(
12
12
  uu: f32,
13
- tL: vec3f, tM: vec3f,
13
+ tQ: vec3f, tR: vec3f,
14
14
  eAC: vec3f, eBD: vec3f,
15
- iI: vec3f,
16
- pL: f32,
17
- pN: ptr<function, f32>
15
+ iJ: vec3f,
16
+ pP: f32,
17
+ pR: ptr<function, f32>
18
18
  ) -> bool {
19
19
  if (uu >= 0.0 && uu <= 1.0) {
20
- let pAB = mix(tL, tM, uu);
20
+ let pAB = mix(tQ, tR, uu);
21
21
  let pCD = mix(eAC, eBD, uu);
22
- var n = cross(iI, pCD);
23
- let vl = 1.0 / dot(n, n);
22
+ var n = cross(iJ, pCD);
23
+ let vq = 1.0 / dot(n, n);
24
24
  n = cross(n, pAB);
25
- let tt = dot(n, pCD) * vl;
26
- let vv = dot(n, iI) * vl;
27
- if (vv >= 0.0 && vv <= 1.0 && tt > pL && tt < *pN) {
28
- *pN = tt;
25
+ let tt = dot(n, pCD) * vq;
26
+ let vv = dot(n, iJ) * vq;
27
+ if (vv >= 0.0 && vv <= 1.0 && tt > pP && tt < *pR) {
28
+ *pR = tt;
29
29
  return true;
30
30
  }
31
31
  }
32
32
  return false;
33
33
  }
34
34
 
35
- fn hd(
36
- pt: vec3f, iI: vec3f, pL: f32, ta: f32,
35
+ fn he(
36
+ pH: vec3f, iJ: vec3f, pP: f32, tf: f32,
37
37
  pA: vec3f, pB: vec3f, pC: vec3f, pD: vec3f,
38
- pN: ptr<function, f32>
38
+ pR: ptr<function, f32>
39
39
  ) -> bool {
40
40
  let eAB = pB - pA;
41
41
  let eAC = pC - pA;
42
42
  let eBD = pD - pB;
43
43
  let eCD = pD - pC;
44
- let tL = pA - pt;
45
- let tM = pB - pt;
44
+ let tQ = pA - pH;
45
+ let tR = pB - pH;
46
46
 
47
47
  var u1: f32;
48
48
  var u2: f32;
49
49
  {
50
50
  let qN = cross(eAB, -eCD);
51
- let a = dot(qN, iI);
52
- var b = dot(cross(tM, iI), eBD);
53
- let c = dot(cross(tL, iI), eAC);
51
+ let a = dot(qN, iJ);
52
+ var b = dot(cross(tR, iJ), eBD);
53
+ let c = dot(cross(tQ, iJ), eAC);
54
54
  b -= a + c;
55
55
 
56
56
  let det = b * b - 4.0 * a * c;
@@ -62,19 +62,19 @@ if (a == 0.0) {
62
62
  u1 = -c / b;
63
63
  u2 = -1.0;
64
64
  } else {
65
- let vE = sqrt(det);
66
- let wv = -0.5 * (b + sign(b) * vE);
67
- u1 = wv / a;
68
- u2 = c / wv;
65
+ let vJ = sqrt(det);
66
+ let wC = -0.5 * (b + sign(b) * vJ);
67
+ u1 = wC / a;
68
+ u2 = c / wC;
69
69
  }
70
70
  }
71
71
 
72
- *pN = ta;
72
+ *pR = tf;
73
73
 
74
74
  var hit = false;
75
75
 
76
- hit = uL(u1, tL, tM, eAC, eBD, iI, pL, pN) ||
77
- uL(u2, tL, tM, eAC, eBD, iI, pL, pN);
76
+ hit = uQ(u1, tQ, tR, eAC, eBD, iJ, pP, pR) ||
77
+ uQ(u2, tQ, tR, eAC, eBD, iJ, pP, pR);
78
78
  if (!hit) {
79
79
  return false;
80
80
  }
@@ -82,8 +82,8 @@ return false;
82
82
  return true;
83
83
  }
84
84
 
85
- fn sf(
86
- pt: vec3f, iI: vec3f, pL: f32, ta: f32,
85
+ fn sl(
86
+ pH: vec3f, iJ: vec3f, pP: f32, tf: f32,
87
87
  pA: vec3f, pB: vec3f, pC: vec3f,
88
88
  pD: vec3f, pE: vec3f, pF: vec3f,
89
89
 
@@ -93,50 +93,50 @@ bS: ptr<function, f32>
93
93
  *bT = INF;
94
94
  *bS = -INF;
95
95
 
96
- let vR = maxDimension(abs(iI));
97
- let gJ = mg(iI, vR);
96
+ let vW = maxDimension(abs(iJ));
97
+ let gL = mj(iJ, vW);
98
98
  var tt: f32;
99
99
 
100
100
  tt = fI(
101
- pt, iI,
102
- fu(pC, pB, pA), vR, gJ, INF
101
+ pH, iJ,
102
+ fu(pC, pB, pA), vW, gL, INF
103
103
  ).t;
104
104
  if (tt > 0.0) {
105
105
  *bT = min(*bT, tt);
106
106
  *bS = max(*bS, tt);
107
107
  }
108
108
  tt = fI(
109
- pt, iI,
110
- fu(pD, pE, pF), vR, gJ, INF
109
+ pH, iJ,
110
+ fu(pD, pE, pF), vW, gL, INF
111
111
  ).t;
112
112
  if (tt > 0.0) {
113
113
  *bT = min(*bT, tt);
114
114
  *bS = max(*bS, tt);
115
115
  }
116
- if (hd(
117
- pt, iI, -INF, INF,
116
+ if (he(
117
+ pH, iJ, -INF, INF,
118
118
  pA, pB, pD, pE,
119
119
  &tt)) {
120
120
  *bT = min(*bT, tt);
121
121
  *bS = max(*bS, tt);
122
122
  }
123
- if (hd(
124
- pt, iI, -INF, INF,
123
+ if (he(
124
+ pH, iJ, -INF, INF,
125
125
  pB, pC, pE, pF,
126
126
  &tt)) {
127
127
  *bT = min(*bT, tt);
128
128
  *bS = max(*bS, tt);
129
129
  }
130
- if (hd(
131
- pt, iI, -INF, INF,
130
+ if (he(
131
+ pH, iJ, -INF, INF,
132
132
  pC, pA, pF, pD,
133
133
  &tt)) {
134
134
  *bT = min(*bT, tt);
135
135
  *bS = max(*bS, tt);
136
136
  }
137
137
 
138
- *bT = max(*bT, pL);
139
- *bS = min(*bS, ta);
138
+ *bT = max(*bT, pP);
139
+ *bS = min(*bS, tf);
140
140
 
141
141
  return *bT <= *bS && *bS > 0.0;
142
142
  }
@@ -145,7 +145,7 @@ export default /* wgsl */ `
145
145
 
146
146
  ${displacementCommon}
147
147
 
148
- fn lD(p: vec3f, p0: vec3f, p1: vec3f, p2: vec3f) -> vec3f {
148
+ fn lG(p: vec3f, p0: vec3f, p1: vec3f, p2: vec3f) -> vec3f {
149
149
  let v0 = p1 - p0;
150
150
  let v1 = p2 - p0;
151
151
  let v2 = p - p0;
@@ -156,72 +156,72 @@ let d11 = dot(v1, v1);
156
156
  let d20 = dot(v2, v0);
157
157
  let d21 = dot(v2, v1);
158
158
 
159
- let tH = 1.0 / (d00 * d11 - d01 * d01);
160
- let v = clamp((d11 * d20 - d01 * d21) * tH, 0.0, 1.0);
161
- let w = clamp((d00 * d21 - d01 * d20) * tH, 0.0, 1.0);
159
+ let tM = 1.0 / (d00 * d11 - d01 * d01);
160
+ let v = clamp((d11 * d20 - d01 * d21) * tM, 0.0, 1.0);
161
+ let w = clamp((d00 * d21 - d01 * d20) * tM, 0.0, 1.0);
162
162
  let u = 1.0 - v - w;
163
163
 
164
164
  return vec3f(u, v, w);
165
165
  }
166
166
 
167
- fn sJ(uv: vec2f) -> vec2f {
167
+ fn sO(uv: vec2f) -> vec2f {
168
168
  return (uv % 1.0 + 1.0) % 1.0;
169
169
  }
170
170
 
171
171
 
172
- fn oP(
173
- qf: vec3f, qA: vec3f, wC: f32,
172
+ fn oT(
173
+ qj: vec3f, qE: vec3f, wJ: f32,
174
174
  _pA: vec3f, _pB: vec3f, _pC: vec3f,
175
175
  _nA: vec3f, _nB: vec3f, _nC: vec3f,
176
- vs: vec2f, vt: vec2f, vu: vec2f,
176
+ vy: vec2f, vA: vec2f, vB: vec2f,
177
177
 
178
- jH: i32,
179
- vq: vec2f,
178
+ jJ: i32,
179
+ vx: vec2f,
180
180
 
181
- vX: f32, vW: f32,
181
+ wc: f32, wb: f32,
182
182
  hScale: f32,
183
- ux: f32,
184
- tT: f32,
183
+ uC: f32,
184
+ tY: f32,
185
185
  uvProjection: i32,
186
186
  uvScale: vec2f,
187
- vJ: bool,
188
- qQ: bool
189
- ) -> jv {
187
+ vO: bool,
188
+ qU: bool
189
+ ) -> jx {
190
190
 
191
191
 
192
192
 
193
- let DT = select(max(abs(hScale) / 32.0, 1e-12), tT, tT > 0.0);
194
- let dt = DT / length(qA);
193
+ let DT = select(max(abs(hScale) / 32.0, 1e-12), tY, tY > 0.0);
194
+ let dt = DT / length(qE);
195
195
  let dbx = 0.001;
196
196
  let dby = 0.001;
197
197
 
198
- var result: jv;
198
+ var result: jx;
199
199
  result.t = INF;
200
200
 
201
201
  var bT = INF;
202
202
  var bS = -INF;
203
203
 
204
- let qO = sign(hScale);
205
- let uD = abs(hScale);
204
+ let qS = sign(hScale);
205
+ let uI = abs(hScale);
206
206
 
207
- let sS = qO * normalize(cross(_pB - _pA, _pC - _pA));
207
+ let sX = qS * normalize(cross(_pB - _pA, _pC - _pA));
208
208
 
209
209
 
210
- let dA = dot(_nA, sS);
211
- let dB = dot(_nB, sS);
212
- let dC = dot(_nC, sS);
210
+ let dA = dot(_nA, sX);
211
+ let dB = dot(_nB, sX);
212
+ let dC = dot(_nC, sX);
213
213
 
214
- var minH = vX * hScale * min(min(dA, dB), dC);
215
- var maxH = vW * hScale * max(max(dA, dB), dC);
214
+ var minH = wc * hScale * min(min(dA, dB), dC);
215
+ var maxH = wb * hScale * max(max(dA, dB), dC);
216
216
 
217
217
 
218
218
 
219
219
 
220
- let tN = abs(maxH) - abs(minH);
220
+ let tS = abs(maxH) - abs(minH);
221
221
 
222
222
 
223
223
  minH = sign(minH) * max(abs(minH) - DT * 2.0, 0.0);
224
- if (tN < DT * 2.0) {
224
+ if (tS < DT * 2.0) {
225
225
  maxH = sign(maxH) * min(abs(maxH) + DT * 2.0, abs(hScale));
226
226
  }
227
227
 
@@ -233,8 +233,8 @@ let pD = _pA + _nA * maxH / dA;
233
233
  let pE = _pB + _nB * maxH / dB;
234
234
  let pF = _pC + _nC * maxH / dC;
235
235
 
236
- if (!sf(
237
- qf, qA, 0.0, INF,
236
+ if (!sl(
237
+ qj, qE, 0.0, INF,
238
238
  pA, pB, pC,
239
239
  pD, pE, pF,
240
240
 
@@ -243,59 +243,59 @@ pD, pE, pF,
243
243
  return result;
244
244
  }
245
245
 
246
- var ww = false;
246
+ var wE = false;
247
247
 
248
248
  if (bS == bT) {
249
249
  bT = 0.0;
250
250
  }
251
251
 
252
252
  var t = bT + dt * eo(2u);
253
- var s = qf + qA * t;
254
- var tG = dot(s - _pA, sS);
255
- var uR = select(0.0, INF, qO < 0.0);
253
+ var s = qj + qE * t;
254
+ var tL = dot(s - _pA, sX);
255
+ var uW = select(0.0, INF, qS < 0.0);
256
256
 
257
- var c0 = _pA + _nA * tG / dA;
258
- var c1 = _pB + _nB * tG / dB;
259
- var c2 = _pC + _nC * tG / dC;
257
+ var c0 = _pA + _nA * tL / dA;
258
+ var c1 = _pB + _nB * tL / dB;
259
+ var c2 = _pC + _nC * tL / dC;
260
260
 
261
- var tn: vec3f;
261
+ var tv: vec3f;
262
262
 
263
- tG = abs(tG);
263
+ tL = abs(tL);
264
264
 
265
- var qM = tG - uR;
266
- var pM = qM;
265
+ var qR = tL - uW;
266
+ var pQ = qR;
267
267
  var step = 0;
268
268
 
269
269
  while (true) {
270
270
 
271
- let b = lD(s, c0, c1, c2);
271
+ let b = lG(s, c0, c1, c2);
272
272
 
273
- tn = _pA * b.x + _pB * b.y + _pC * b.z;
273
+ tv = _pA * b.x + _pB * b.y + _pC * b.z;
274
274
 
275
- tG = distance(tn, s);
275
+ tL = distance(tv, s);
276
276
 
277
277
  var uv: vec2f;
278
278
  if (uvProjection > 0) {
279
279
  let n = normalize(_nA * b.x + _nB * b.y + _nC * b.z);
280
- uv = sJ(gz(uvProjection, tn - (_nA * b.x + _nB * b.y + _nC * b.z) * ux, n) * uvScale);
280
+ uv = sO(gC(uvProjection, tv - (_nA * b.x + _nB * b.y + _nC * b.z) * uC, n) * uvScale);
281
281
  }
282
282
  else {
283
- uv = sJ(vs * b.x + vt * b.y + vu * b.z);
283
+ uv = sO(vy * b.x + vA * b.y + vB * b.z);
284
284
  }
285
- let h = sampleMap(jH, uv).x;
285
+ let h = sampleMap(jJ, uv).x;
286
286
 
287
- uR = max(uD * h, DT);
287
+ uW = max(uI * h, DT);
288
288
 
289
289
 
290
- let dh = dot(sS, s - c0);
290
+ let dh = dot(sX, s - c0);
291
291
  c0 = c0 + _nA * dh / dA;
292
292
  c1 = c1 + _nB * dh / dB;
293
293
  c2 = c2 + _nC * dh / dC;
294
294
 
295
- pM = qM;
296
- qM = tG - uR;
295
+ pQ = qR;
296
+ qR = tL - uW;
297
297
 
298
- if (!(select(qM * qO, qM * pM, qQ) > 0.0
298
+ if (!(select(qR * qS, qR * pQ, qU) > 0.0
299
299
  && t < bS + dt)
300
300
 
301
301
  && step > 0) {
@@ -304,15 +304,15 @@ break;
304
304
 
305
305
  step++;
306
306
  t = t + dt;
307
- s = s + qA * dt;
307
+ s = s + qE * dt;
308
308
  }
309
309
 
310
- if (select(qM * qO, qM * pM, qQ) <= 0.0) {
311
- let dtt = dt * (abs(qM) / (abs(pM) + abs(qM) + EPS));
310
+ if (select(qR * qS, qR * pQ, qU) <= 0.0) {
311
+ let dtt = dt * (abs(qR) / (abs(pQ) + abs(qR) + EPS));
312
312
  t = t - dtt;
313
313
 
314
- let wy = qf + qA * t;
315
- let b = lD(wy, c0, c1, c2);
314
+ let wG = qj + qE * t;
315
+ let b = lG(wG, c0, c1, c2);
316
316
 
317
317
  let N = normalize(_nA * b.x + _nB * b.y + _nC * b.z);
318
318
 
@@ -320,33 +320,33 @@ let p_a = _pA * b.x + _pB * b.y + _pC * b.z;
320
320
  let p_b = _pA * (b.x + dbx) + _pB * b.y + _pC * (b.z - dbx);
321
321
  let p_c = _pA * b.x + _pB * (b.y + dby) + _pC * (b.z - dby);
322
322
 
323
- var vT: vec2f;
324
- var vU: vec2f;
325
- var vV: vec2f;
323
+ var vY: vec2f;
324
+ var vZ: vec2f;
325
+ var wa: vec2f;
326
326
 
327
327
  if (uvProjection > 0) {
328
328
  let NA = normalize(_nA * b.x + _nB * b.y + _nC * b.z);
329
329
  let NB = normalize(_nA * (b.x + dbx) + _nB * b.y + _nC * (b.z - dbx));
330
330
  let NC = normalize(_nA * b.x + _nB * (b.y + dby) + _nC * (b.z - dby));
331
- vT = gz(uvProjection, p_a - (_nA * b.x + _nB * b.y + _nC * b.z) * ux, NA) * uvScale;
332
- vU = gz(uvProjection, p_b - (_nA * (b.x + dbx) + _nB * b.y + _nC * (b.z - dbx)) * ux, NB) * uvScale;
333
- vV = gz(uvProjection, p_c - (_nA * b.x + _nB * (b.y + dby) + _nC * (b.z - dby)) * ux, NC) * uvScale;
331
+ vY = gC(uvProjection, p_a - (_nA * b.x + _nB * b.y + _nC * b.z) * uC, NA) * uvScale;
332
+ vZ = gC(uvProjection, p_b - (_nA * (b.x + dbx) + _nB * b.y + _nC * (b.z - dbx)) * uC, NB) * uvScale;
333
+ wa = gC(uvProjection, p_c - (_nA * b.x + _nB * (b.y + dby) + _nC * (b.z - dby)) * uC, NC) * uvScale;
334
334
  }
335
335
  else {
336
- vT = vs * b.x + vt * b.y + vu * b.z;
337
- vU = vs * (b.x + dbx) + vt * b.y + vu * (b.z - dbx);
338
- vV = vs * b.x + vt * (b.y + dby) + vu * (b.z - dby);
336
+ vY = vy * b.x + vA * b.y + vB * b.z;
337
+ vZ = vy * (b.x + dbx) + vA * b.y + vB * (b.z - dbx);
338
+ wa = vy * b.x + vA * (b.y + dby) + vB * (b.z - dby);
339
339
  }
340
340
 
341
- let s_a = p_a + qO * N * sampleMap(jH, sJ(vT)).x * hScale;
342
- let s_b = p_b + qO * N * sampleMap(jH, sJ(vU)).x * hScale;
343
- let s_c = p_c + qO * N * sampleMap(jH, sJ(vV)).x * hScale;
341
+ let s_a = p_a + qS * N * sampleMap(jJ, sO(vY)).x * hScale;
342
+ let s_b = p_b + qS * N * sampleMap(jJ, sO(vZ)).x * hScale;
343
+ let s_c = p_c + qS * N * sampleMap(jJ, sO(wa)).x * hScale;
344
344
 
345
- let N_s = -qO * normalize(cross(s_c - s_a, s_b - s_a));
345
+ let N_s = -qS * normalize(cross(s_c - s_a, s_b - s_a));
346
346
 
347
347
  result.t = t;
348
348
  result.barycentric = b;
349
- result.normal = normalize(N_s - sS + qO * N);
349
+ result.normal = normalize(N_s - sX + qS * N);
350
350
  }
351
351
 
352
352
  return result;
@@ -4,13 +4,13 @@
4
4
  export default /* wgsl */ `
5
5
  var<private> s0: vec4u;
6
6
 
7
- fn jY(p: vec2u, frame: i32) {
7
+ fn ka(p: vec2u, frame: i32) {
8
8
 
9
9
  s0 = vec4u(p, u32(frame), u32(p.x) + u32(p.y));
10
10
  }
11
11
 
12
12
 
13
- fn vj() {
13
+ fn vo() {
14
14
  s0 = s0 * 1664525u + 1013904223u;
15
15
  s0.x += s0.y*s0.w; s0.y += s0.z*s0.x; s0.z += s0.x*s0.y; s0.w += s0.y*s0.z;
16
16
  s0 = s0 ^ (s0>>vec4(16u));
@@ -18,7 +18,7 @@ s0.x += s0.y*s0.w; s0.y += s0.z*s0.x; s0.z += s0.x*s0.y; s0.w += s0.y*s0.z;
18
18
  }
19
19
 
20
20
  fn rand() -> f32 {
21
- vj(); return f32(s0.x)/f32(0xffffffffu);
21
+ vo(); return f32(s0.x)/f32(0xffffffffu);
22
22
  }
23
23
 
24
24
  `;
@@ -202,7 +202,7 @@ secondaryUv1: vec2f,
202
202
  secondaryUv2: vec2f,
203
203
  };
204
204
 
205
- struct oR {
205
+ struct oV {
206
206
  probability: f32,
207
207
  aliasIndex: i32,
208
208
  sourceType: i32,
@@ -270,14 +270,14 @@ sampleSequenceOffset: u32,
270
270
  @group(1) @binding(9) var openPbrEnergyLut: texture_2d<f32>;
271
271
  @group(1) @binding(10) var adaptiveSampleTargets: texture_2d<f32>;
272
272
 
273
- fn cL(dV: i32, le: i32) -> f32 {
274
- let ij = dV + le / 4;
273
+ fn cL(dV: i32, lh: i32) -> f32 {
274
+ let ih = dV + lh / 4;
275
275
  let width = rtUniform.lightSamplingTextureWidth;
276
- let packed = textureLoad(lightSamplingData, vec2i(ij % width, ij / width), 0);
277
- return packed[le % 4];
276
+ let packed = textureLoad(lightSamplingData, vec2i(ih % width, ih / width), 0);
277
+ return packed[lh % 4];
278
278
  }
279
279
 
280
- fn kF(dV: i32, uv: vec2f) -> f32 {
280
+ fn kI(dV: i32, uv: vec2f) -> f32 {
281
281
  if (dV < 0) { return 1.0; }
282
282
  let fM = fract(uv) * 128.0 - vec2f(0.5);
283
283
  let x0 = i32(floor(fM.x));
@@ -298,16 +298,16 @@ return mix(mix(a, b, fx), mix(c, d, fx), fy);
298
298
  fn bL(light: Light, dJ: vec3f) -> f32 {
299
299
  let axis = normalize(light.u);
300
300
  let cc = dot(axis, dJ);
301
- var tD = select(0.0, 1.0, cc >= light.v.x);
301
+ var tI = select(0.0, 1.0, cc >= light.v.x);
302
302
  if (light.v.y > 1e-6) {
303
- tD = smoothstep(light.v.x, light.v.x + light.v.y, cc);
303
+ tI = smoothstep(light.v.x, light.v.x + light.v.y, cc);
304
304
  }
305
- if (tD <= 0.0 || light.textureIndex < 0.0) { return tD; }
306
- let tX = light.iesReference;
307
- let vo = cross(axis, tX);
305
+ if (tI <= 0.0 || light.textureIndex < 0.0) { return tI; }
306
+ let uc = light.iesReference;
307
+ let vu = cross(axis, uc);
308
308
  let vertical = acos(clamp(cc, -1.0, 1.0));
309
- let horizontal = atan2(dot(dJ, vo), dot(dJ, tX));
310
- return tD * kF(i32(light.textureIndex), vec2f(vertical / PI, horizontal / TWOPI + 0.5));
309
+ let horizontal = atan2(dot(dJ, vu), dot(dJ, uc));
310
+ return tI * kI(i32(light.textureIndex), vec2f(vertical / PI, horizontal / TWOPI + 0.5));
311
311
  }
312
312
 
313
313