rayzee 6.5.0 → 7.0.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 +24 -5
- package/dist/rayzee.es.js +7554 -7014
- package/dist/rayzee.es.js.map +1 -1
- package/dist/rayzee.umd.js +157 -236
- package/dist/rayzee.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/EngineDefaults.js +12 -9
- package/src/PathTracerApp.js +118 -26
- package/src/Pipeline/PipelineContext.js +1 -2
- package/src/Pipeline/RenderPipeline.js +1 -1
- package/src/Pipeline/RenderStage.js +1 -1
- package/src/Processor/CameraOptimizer.js +0 -5
- package/src/Processor/GeometryExtractor.js +6 -0
- package/src/Processor/KernelManager.js +277 -0
- package/src/Processor/PackedRayBuffer.js +265 -0
- package/src/Processor/QueueManager.js +173 -0
- package/src/Processor/SceneProcessor.js +1 -0
- package/src/Processor/ShaderBuilder.js +11 -317
- package/src/Processor/StorageTexturePool.js +29 -15
- package/src/Processor/VRAMTracker.js +169 -0
- package/src/Processor/utils.js +11 -110
- package/src/RenderSettings.js +0 -3
- package/src/Stages/ASVGF.js +76 -20
- package/src/Stages/BilateralFilter.js +34 -10
- package/src/Stages/EdgeFilter.js +2 -3
- package/src/Stages/MotionVector.js +16 -9
- package/src/Stages/NormalDepth.js +17 -5
- package/src/Stages/PathTracer.js +671 -1456
- package/src/Stages/PathTracerStage.js +1451 -0
- package/src/Stages/SSRC.js +32 -15
- package/src/Stages/Variance.js +35 -12
- package/src/TSL/CompactKernel.js +110 -0
- package/src/TSL/DebugKernel.js +98 -0
- package/src/TSL/Environment.js +13 -11
- package/src/TSL/ExtendKernel.js +75 -0
- package/src/TSL/FinalWriteKernel.js +121 -0
- package/src/TSL/GenerateKernel.js +109 -0
- package/src/TSL/LightsSampling.js +2 -2
- package/src/TSL/PathTracerCore.js +43 -1039
- package/src/TSL/ShadeKernel.js +873 -0
- package/src/TSL/patches.js +81 -4
- package/src/index.js +3 -0
- package/src/managers/CameraManager.js +1 -1
- package/src/managers/DenoisingManager.js +40 -75
- package/src/managers/EnvironmentManager.js +30 -39
- package/src/managers/OverlayManager.js +7 -22
- package/src/managers/UniformManager.js +0 -3
- package/src/managers/helpers/TileHelper.js +2 -2
- package/src/Stages/AdaptiveSampling.js +0 -483
- package/src/TSL/PathTracer.js +0 -384
- package/src/managers/TileManager.js +0 -298
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Rayzee Engine
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/rayzee)
|
|
4
|
-
[](https://www.npmjs.com/package/rayzee)
|
|
5
5
|
[](https://www.npmjs.com/package/rayzee)
|
|
6
6
|
[](https://www.jsdelivr.com/package/npm/rayzee)
|
|
7
7
|
|
|
@@ -327,7 +327,6 @@ Key settings:
|
|
|
327
327
|
| `focusDistance` | `number` | 0.8 | DOF focus distance |
|
|
328
328
|
| `aperture` | `number` | 5.6 | DOF aperture (f-stop) |
|
|
329
329
|
| `focalLength` | `number` | 50 | DOF focal length (mm) |
|
|
330
|
-
| `adaptiveSampling` | `boolean` | false | Variance-guided sample distribution |
|
|
331
330
|
| `transparentBackground` | `boolean` | false | Transparent canvas background |
|
|
332
331
|
| `interactionModeEnabled` | `boolean` | true | Lower quality during camera movement for smoother navigation |
|
|
333
332
|
| `debugMode` | `number` | 0 | Debug visualization mode (0 = off) |
|
|
@@ -429,7 +428,7 @@ engine.environmentManager.markDirty() // Flag environment for GPU re-uplo
|
|
|
429
428
|
|
|
430
429
|
### engine.denoisingManager
|
|
431
430
|
|
|
432
|
-
Denoiser strategy, ASVGF, OIDN, upscaler,
|
|
431
|
+
Denoiser strategy, ASVGF, OIDN, upscaler, and auto-exposure.
|
|
433
432
|
|
|
434
433
|
```js
|
|
435
434
|
// Strategy
|
|
@@ -437,14 +436,12 @@ engine.denoisingManager.setStrategy('asvgf', 'medium') // 'none' | 'asvgf' | 's
|
|
|
437
436
|
engine.denoisingManager.setASVGFEnabled(true, 'medium')
|
|
438
437
|
engine.denoisingManager.applyASVGFPreset('high') // 'low' | 'medium' | 'high'
|
|
439
438
|
engine.denoisingManager.setAutoExposure(true)
|
|
440
|
-
engine.denoisingManager.setAdaptiveSampling(true)
|
|
441
439
|
|
|
442
440
|
// Fine-grained parameters
|
|
443
441
|
engine.denoisingManager.setASVGFParams({ temporalAlpha: 0.1, phiColor: 10 })
|
|
444
442
|
engine.denoisingManager.setSSRCParams({ temporalAlpha: 0.1, spatialRadius: 3 })
|
|
445
443
|
engine.denoisingManager.setEdgeAwareParams({ pixelEdgeSharpness: 1.0 })
|
|
446
444
|
engine.denoisingManager.setAutoExposureParams({ keyValue: 0.18 })
|
|
447
|
-
engine.denoisingManager.setAdaptiveSamplingParams({ varianceThreshold: 0.01 })
|
|
448
445
|
|
|
449
446
|
// OIDN & Upscaler
|
|
450
447
|
engine.denoisingManager.setOIDNEnabled(true)
|
|
@@ -490,6 +487,7 @@ engine.setCanvasSize(1920, 1080) // Set explicit canvas dimensions
|
|
|
490
487
|
engine.onResize() // Trigger manual resize recalculation
|
|
491
488
|
engine.isComplete() // Check if rendering has converged
|
|
492
489
|
engine.getFrameCount() // Get the current accumulated frame count
|
|
490
|
+
engine.getMemoryInfo() // GPU memory snapshot: { current, peak, byCategory } in bytes
|
|
493
491
|
```
|
|
494
492
|
|
|
495
493
|
`screenshot()` returns a `Blob` for the host to save, upload, or display. To trigger a browser download:
|
|
@@ -504,6 +502,24 @@ URL.revokeObjectURL(url);
|
|
|
504
502
|
|
|
505
503
|
---
|
|
506
504
|
|
|
505
|
+
### Memory Monitoring
|
|
506
|
+
|
|
507
|
+
Track GPU (VRAM) usage across the whole pipeline. Sizes are measured from live GPU resources (buffer `byteLength` + texture dimensions × format), so they are exact, not estimated.
|
|
508
|
+
|
|
509
|
+
```js
|
|
510
|
+
const { current, peak, byCategory } = engine.getMemoryInfo(); // bytes
|
|
511
|
+
// byCategory: { rays, queues, gbuffer, accum, geometry, materials, environment, stages }
|
|
512
|
+
|
|
513
|
+
engine.vram.resetPeak(); // reset the high-water mark to the current value
|
|
514
|
+
engine.vram.getReport(); // formatted one-line summary string
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
`peak` is a high-water mark, reset when a final render begins (`configureForMode('production')`). The engine's VRAM is largely monotonic — the ray pool only grows and the per-stage storage textures are fixed-size — so `peak` equals `current` during a steady render and only exceeds it after memory is released (lower resolution, a smaller scene, or removing the HDRI). The `stages` + `accum` categories (fixed 2048² storage textures) dominate the baseline.
|
|
518
|
+
|
|
519
|
+
The React app surfaces this as a `Memory: … | Peak: …` readout in the on-canvas stats overlay.
|
|
520
|
+
|
|
521
|
+
---
|
|
522
|
+
|
|
507
523
|
### Events
|
|
508
524
|
|
|
509
525
|
Subscribe to engine lifecycle events via `addEventListener`:
|
|
@@ -601,6 +617,9 @@ import {
|
|
|
601
617
|
StageExecutionMode,
|
|
602
618
|
PipelineContext,
|
|
603
619
|
} from 'rayzee';
|
|
620
|
+
|
|
621
|
+
// VRAM accounting (VRAMTracker is also reachable as engine.vram)
|
|
622
|
+
import { VRAMTracker, bufferBytes, textureBytes } from 'rayzee';
|
|
604
623
|
```
|
|
605
624
|
|
|
606
625
|
## Browser Requirements
|