@meimu/mutracer 0.1.0 → 0.1.2
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 +61 -16
- package/dist/assets/bvh.worker.js +1 -1
- package/dist/mutracer.umd.js +668 -658
- package/docs/materials.md +27 -7
- package/docs/progressive-rendering.md +24 -8
- package/docs/threejs.md +15 -3
- package/docs/viewer.md +53 -0
- package/lib/Display.d.ts +1 -1
- package/lib/Display.js +4 -2
- package/lib/Display.js.map +1 -1
- package/lib/Render.d.ts +9 -0
- package/lib/Render.js +84 -13
- package/lib/Render.js.map +1 -1
- package/lib/RenderLoop.d.ts +5 -2
- package/lib/RenderLoop.js +47 -15
- package/lib/RenderLoop.js.map +1 -1
- package/lib/oidn.d.ts +1 -1
- package/lib/oidnBundledWeights.cdn.d.ts +2 -2
- package/lib/renderer/MaterialTable.d.ts +1 -0
- package/lib/renderer/MaterialTable.js +2 -1
- package/lib/renderer/MaterialTable.js.map +1 -1
- package/lib/renderer/WGPUBloomPass.js +8 -8
- package/lib/renderer/WGPUJNLMDenoiser.js +2 -2
- package/lib/renderer/WGPURayTraceOutput.js +5 -5
- package/lib/renderer/WGPURayTracePass.js +1 -1
- package/lib/renderer/WGPURayTracePass.js.map +1 -1
- package/lib/renderer/WGPURenderingPipeline.js +8 -6
- package/lib/renderer/WGPURenderingPipeline.js.map +1 -1
- package/lib/renderer/WebGLJNLMDenoiser.js +2 -2
- package/lib/renderer/WebGLRayTracePass.js +3 -1
- package/lib/renderer/WebGLRayTracePass.js.map +1 -1
- package/lib/renderer/committedScene.js +11 -6
- package/lib/renderer/committedScene.js.map +1 -1
- package/lib/renderer/glsl/chunks/envMap.glsl.js +5 -5
- package/lib/renderer/glsl/chunks/intersect.glsl.js +32 -32
- package/lib/renderer/glsl/chunks/materialBuffer.glsl.js +9 -9
- package/lib/renderer/glsl/chunks/openPbrBsdf.glsl.js +30 -30
- package/lib/renderer/glsl/chunks/rand.glsl.js +2 -2
- package/lib/renderer/glsl/chunks/rayTraceCore.glsl.js +4 -4
- package/lib/renderer/glsl/chunks/sampleLight.glsl.js +3 -3
- package/lib/renderer/glsl/chunks/sampleMaterial.glsl.js +4 -4
- package/lib/renderer/glsl/chunks/sampling.glsl.js +3 -3
- package/lib/renderer/glsl/chunks/sobol.glsl.js +3 -3
- package/lib/renderer/glsl/rayTrace.frag.js +7 -3
- package/lib/renderer/glsl/rayTrace.frag.js.map +1 -1
- package/lib/renderer/glsl/webglPipeline.frag.js +2 -2
- package/lib/renderer/materialComparison.generated.js +5 -0
- package/lib/renderer/materialComparison.generated.js.map +1 -1
- package/lib/renderer/materialLayout.js +2 -1
- package/lib/renderer/materialLayout.js.map +1 -1
- package/lib/renderer/prepareMeshBVH.d.ts +4 -2
- package/lib/renderer/prepareMeshBVH.js +44 -20
- package/lib/renderer/prepareMeshBVH.js.map +1 -1
- package/lib/renderer/util.d.ts +2 -2
- package/lib/renderer/util.js +3 -3
- package/lib/renderer/util.js.map +1 -1
- package/lib/renderer/wgsl/chunks/common.wgsl.js +2 -2
- package/lib/renderer/wgsl/chunks/envMap.wgsl.js +14 -14
- package/lib/renderer/wgsl/chunks/intersect.wgsl.js +85 -88
- package/lib/renderer/wgsl/chunks/intersect.wgsl.js.map +1 -1
- package/lib/renderer/wgsl/chunks/openPbrBsdf.wgsl.js +34 -34
- package/lib/renderer/wgsl/chunks/pdm_displacement.wgsl.d.ts +1 -1
- package/lib/renderer/wgsl/chunks/pdm_displacement.wgsl.js +51 -46
- package/lib/renderer/wgsl/chunks/pdm_displacement.wgsl.js.map +1 -1
- package/lib/renderer/wgsl/chunks/rand.wgsl.js +2 -2
- package/lib/renderer/wgsl/chunks/rayTraceCore.wgsl.js +3 -3
- package/lib/renderer/wgsl/chunks/sampleLight.wgsl.js +4 -4
- package/lib/renderer/wgsl/chunks/sampleMaterial.wgsl.js +4 -4
- package/lib/renderer/wgsl/chunks/sampling.wgsl.js +3 -3
- package/lib/renderer/wgsl/chunks/sobol.wgsl.js +3 -3
- package/lib/renderer/wgsl/compose.frag.wgsl.js +2 -2
- package/lib/renderer/wgsl/customDenoise.wgsl.js +4 -4
- package/lib/renderer/wgsl/offlineAdaptive.compute.js +10 -10
- package/lib/renderer/wgsl/rayTrace.compute.js +13 -9
- package/lib/renderer/wgsl/rayTrace.compute.js.map +1 -1
- package/lib/scene/OpenPBRMaterial.d.ts +4 -2
- package/lib/scene/OpenPBRMaterial.js +4 -2
- package/lib/scene/OpenPBRMaterial.js.map +1 -1
- package/lib/scene/openPbrSchema.d.ts +7 -2
- package/lib/scene/openPbrSchema.js +2 -1
- package/lib/scene/openPbrSchema.js.map +1 -1
- package/lib/util/fromTHREE.d.ts +6 -0
- package/lib/util/fromTHREE.js +85 -19
- package/lib/util/fromTHREE.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +1 -1
|
@@ -58,10 +58,10 @@ mP = max(mP,
|
|
|
58
58
|
max(1.0 - dot(n, nn), abs(center.a - tJ.a)));
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
-
let
|
|
61
|
+
let ub = smoothstep(0.02, 0.1, mP);
|
|
62
62
|
let raw = clamp(textureLoad(in_rawAlbedo, fM, 0).rgb,
|
|
63
63
|
vec3f(0.0), vec3f(1.0));
|
|
64
|
-
result = mix(raw, linear,
|
|
64
|
+
result = mix(raw, linear, ub);
|
|
65
65
|
}
|
|
66
66
|
out_albedo[index] = vec4f(result, ja);
|
|
67
67
|
`;
|
|
@@ -374,11 +374,11 @@ output.color = color;
|
|
|
374
374
|
oidnNormalSanitizePass.setOutputParams({ normal: { channels: 4 } });
|
|
375
375
|
const outputPass = scratch.get('outputPass', () => new WGPUFullQuadPass('output', device, {
|
|
376
376
|
fsMain: /* wgsl */ `
|
|
377
|
-
let
|
|
377
|
+
let vA = min(
|
|
378
378
|
vec2i(uv2 * vec2f(colorTexRegion())),
|
|
379
379
|
vec2i(colorTexRegion()) - vec2i(1)
|
|
380
380
|
);
|
|
381
|
-
var color = load_colorTex(
|
|
381
|
+
var color = load_colorTex(vA, 0);
|
|
382
382
|
color = vec4(color.rgb * color.a, color.a);
|
|
383
383
|
output.color = color;
|
|
384
384
|
`,
|
|
@@ -671,10 +671,12 @@ output.color = color;
|
|
|
671
671
|
isPredictingFrame = false;
|
|
672
672
|
}
|
|
673
673
|
// Never enter a waiting prediction state while the shared timestamp
|
|
674
|
-
// buffer is still being mapped. Render normally and retry the probe
|
|
675
|
-
//
|
|
674
|
+
// buffer is still being mapped. Render normally and retry the probe at an
|
|
675
|
+
// accumulation restart; a delayed probe must not discard visible samples.
|
|
676
|
+
// The probe itself is also non-blocking: if readback fails or
|
|
676
677
|
// is superseded, the renderer keeps using the conservative tile seed.
|
|
677
678
|
if (offlineSamplesPerBatch === 0 &&
|
|
679
|
+
resetAccumulation &&
|
|
678
680
|
tileRenderWithPredict &&
|
|
679
681
|
needsUpdatePredicting &&
|
|
680
682
|
timeQuery?.resultBuffer.mapState === 'unmapped') {
|