A ray marching renderer in rust
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
rmarcher/README.md

36 lines
1018 B

# rmarcher
A ray marching renderer in rust
![small example](prod/small.png)
## Dependencies
- `rust >= 1.51` for const generics
- `crossbeam` && `crossbeam-channel` for multithreading
- `rand` for rng
- `image` for png export
- `rlua` for lua scene building
## What currently works
- Simple shapes (half-spaces, spheres, cylinders and torus are the only tested ones so far)
- Spectral simulation (currently using 4 color components)
- Global illumination (with diffuse and reflective surfaces)
- Punctual illumination
- Defining scenes in lua
## What is planned
- Testing of more shapes
- Support for controlling the whole application from lua
- Support for linking against a `scene.so` exporting a scene
- Support for using as a library
## Examples
![1st test scene](prod/1.png)
![2nd test scene](prod/2.png)
![3rd test scene](prod/3.png)
![randomly generated spheres](prod/randomspheres.png)
![randomly generated objects](prod/smolgalaxy.png)
![inside a spherical mirror](prod/insidemirror.png)
## License
MIT