pure headless JS renderer based off the original THREE.RaytracingRenderer
- RaytracingRenderer ES module
- Runs with up to date threejs version
- Runs pure JS, headless without canvas, weblgl or other GPU dependencies
One of the strengths of Three.js is its design simplicity, which allows for new renderers and add-ons to be easily developed. In its early days, I found many of the "extras" renderers fun and interesting. However, it's understandable that these get removed when they become less maintainable or less relevant to modern web trends.
In this package I wanted to bring back RaytracingRenderer that was removed in 2020 similar to what three-software-renderer did for THREE.SoftwareRenderer.
One reason why I recently wanted to use RaytracingRenderer over SoftwareRenderer was to have richer tones compared to the flat shadding in SoftwareRenderer, which I noticed after migrating threejs-term away from it's canvas dependency.
-
RaytracingRenderer
- the current non-browser, UIntArray implementation -
RaytracingRendererClassic
- the original single threaded raytracing renderer that writese out to a canvas -
RaytracingRendererWorkers
- the changes I added to allow Web Workers to speed up rendering (To be added)
- https://github.com/avgp/three-software-renderer - SoftwareRenderer in npm
- https://www.npmjs.com/package/three-canvas-renderer - Canvas Renderer in npm
- https://github.com/gkjohnson/three-gpu-pathtracer?tab=readme-ov-file - GPU Pathtracing renderer (requires WebGL)
- https://github.com/erichlof/THREE.js-PathTracing-Renderer - Another path-tracing renderer