@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
@@ -40,7 +40,7 @@ encoded / 12.92,
40
40
  encoded <= vec3f(0.04045)
41
41
  );
42
42
  var result = linear;
43
- let ja = textureLoad(in_rawAlbedo, vec2i(globalId.xy), 0).a;
43
+ let jc = textureLoad(in_rawAlbedo, vec2i(globalId.xy), 0).a;
44
44
  if (preserveSurfaceTexture != 0u) {
45
45
 
46
46
 
@@ -48,22 +48,22 @@ if (preserveSurfaceTexture != 0u) {
48
48
  let fM = vec2i(globalId.xy);
49
49
  let center = textureLoad(in_rawNormal, fM, 0);
50
50
  let n = normalize(center.rgb * 2.0 - 1.0 + vec3f(1e-8));
51
- var mP = 0.0;
51
+ var mS = 0.0;
52
52
  for (var y = -1; y <= 1; y++) {
53
53
  for (var x = -1; x <= 1; x++) {
54
- let tJ = textureLoad(in_rawNormal,
54
+ let tO = textureLoad(in_rawNormal,
55
55
  clamp(fM + vec2i(x, y), vec2i(0), imageSize - 1), 0);
56
- let nn = normalize(tJ.rgb * 2.0 - 1.0 + vec3f(1e-8));
57
- mP = max(mP,
58
- max(1.0 - dot(n, nn), abs(center.a - tJ.a)));
56
+ let nn = normalize(tO.rgb * 2.0 - 1.0 + vec3f(1e-8));
57
+ mS = max(mS,
58
+ max(1.0 - dot(n, nn), abs(center.a - tO.a)));
59
59
  }
60
60
  }
61
- let ub = smoothstep(0.02, 0.1, mP);
61
+ let ug = smoothstep(0.02, 0.1, mS);
62
62
  let raw = clamp(textureLoad(in_rawAlbedo, fM, 0).rgb,
63
63
  vec3f(0.0), vec3f(1.0));
64
- result = mix(raw, linear, ub);
64
+ result = mix(raw, linear, ug);
65
65
  }
66
- out_albedo[index] = vec4f(result, ja);
66
+ out_albedo[index] = vec4f(result, jc);
67
67
  `;
68
68
  export const oidnNormalSanitizeMain = /* wgsl */ `
69
69
  if (globalId.x >= u32(imageSize.x) || globalId.y >= u32(imageSize.y)) { return; }
@@ -314,7 +314,7 @@ output.color = color;
314
314
  data: 0.25
315
315
  }
316
316
  ],
317
- outputs: ['color', 'denoiseColor'],
317
+ outputs: ['color', 'denoiseColor', 'denoiseAlbedo'],
318
318
  inputs: [
319
319
  'colorTex',
320
320
  'foregroundTex',
@@ -329,7 +329,8 @@ output.color = color;
329
329
  color: {
330
330
  format: composeColorFormat
331
331
  },
332
- denoiseColor: { format: 'rgba32float' }
332
+ denoiseColor: { format: 'rgba32float' },
333
+ denoiseAlbedo: { format: 'rgba8unorm' }
333
334
  });
334
335
  const compositeDenoiseDisplayPass = scratch.get('compositeDenoiseDisplayPass', () => new WGPUFullQuadPass('OIDN composed display', device, {
335
336
  textureWillBeRead: true,
@@ -374,11 +375,11 @@ output.color = color;
374
375
  oidnNormalSanitizePass.setOutputParams({ normal: { channels: 4 } });
375
376
  const outputPass = scratch.get('outputPass', () => new WGPUFullQuadPass('output', device, {
376
377
  fsMain: /* wgsl */ `
377
- let vA = min(
378
+ let vF = min(
378
379
  vec2i(uv2 * vec2f(colorTexRegion())),
379
380
  vec2i(colorTexRegion()) - vec2i(1)
380
381
  );
381
- var color = load_colorTex(vA, 0);
382
+ var color = load_colorTex(vF, 0);
382
383
  color = vec4(color.rgb * color.a, color.a);
383
384
  output.color = color;
384
385
  `,
@@ -488,7 +489,7 @@ output.color = color;
488
489
  }
489
490
  function prepareComposition() {
490
491
  composePass.setSize(renderWidth, renderHeight);
491
- composePass.setOutputParams({ color: { format: composeColorFormat }, denoiseColor: { format: 'rgba32float' } });
492
+ composePass.setOutputParams({ color: { format: composeColorFormat }, denoiseColor: { format: 'rgba32float' }, denoiseAlbedo: { format: 'rgba8unorm' } });
492
493
  composePass.setUniform('exposure', exposure);
493
494
  composePass.setUniform('toneMappingParams', [toneMappingMode, vignette]);
494
495
  composePass.setUniform('colorGradingParams', [contrast, saturation, temperature, tint]);
@@ -847,7 +848,8 @@ output.color = color;
847
848
  composeColorFormat = nextComposeColorFormat;
848
849
  composePass.setOutputParams({
849
850
  color: { format: composeColorFormat },
850
- denoiseColor: { format: 'rgba32float' }
851
+ denoiseColor: { format: 'rgba32float' },
852
+ denoiseAlbedo: { format: 'rgba8unorm' }
851
853
  });
852
854
  }
853
855
  if (wasActive !== hdrOutputActive) {
@@ -1001,7 +1003,7 @@ output.color = color;
1001
1003
  if (!auxiliaryDenoisers) {
1002
1004
  return {
1003
1005
  albedo: {
1004
- data: copyGuide('OIDN raw albedo', getFrameInput('albedo')),
1006
+ data: copyGuide('OIDN raw albedo', composePass.getOutput('denoiseAlbedo')),
1005
1007
  ...size
1006
1008
  },
1007
1009
  normal: {
@@ -1015,7 +1017,7 @@ output.color = color;
1015
1017
  const encodeEncoder = device.createCommandEncoder();
1016
1018
  oidnAlbedoEncodePass.createPass(encodeEncoder, {
1017
1019
  albedo: {
1018
- texture: getFrameInput('albedo'),
1020
+ texture: composePass.getOutput('denoiseAlbedo'),
1019
1021
  channels: 4
1020
1022
  }
1021
1023
  });
@@ -1039,7 +1041,7 @@ output.color = color;
1039
1041
  oidnAlbedoDecodePass.setUniform('preserveSurfaceTexture', +false);
1040
1042
  oidnAlbedoDecodePass.createPass(decodeEncoder, {
1041
1043
  albedo: { buffer: albedoOutput.data, channels: 4 },
1042
- rawAlbedo: { texture: getFrameInput('albedo'), channels: 4 },
1044
+ rawAlbedo: { texture: composePass.getOutput('denoiseAlbedo'), channels: 4 },
1043
1045
  rawNormal: { texture: getFrameInput('normal'), channels: 4 }
1044
1046
  });
1045
1047
  device.queue.submit([decodeEncoder.finish()]);