Skip to content

zz85/three-raytracing-renderer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

three-raytracing-renderer

pure headless JS renderer based off the original THREE.RaytracingRenderer

Features

  • RaytracingRenderer ES module
  • Runs with up to date threejs version
  • Runs pure JS, headless without canvas, weblgl or other GPU dependencies

Background

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.

Variants

  • 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)

Usage

browser-test

terminal-test

Other renderers

About

pure headless JS renderer (no canvas, no webgl dependencies) based off the original THREE.RaytracingRenderer

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors