| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
This project is based on https://raytracing.github.io/ and includes some additional twists like curved space.
Note: For a conventional linear ray tracer see commit b6bbcfe.
Created with build/examples/basic_swirl (version ee5499f) using swirl_strength = 0.01 and resolution_factor = 4.
Created with build/examples/basic_twisted_orb (version f952428) using twist_angle = -6.0, resolution_factor = 4, ray_error_abs = 1e-12 and ray_depth = 10000.
Created with build/examples/schwarzschild (version e931515) using speed_of_light = 100.0, schwarzschild_radius = 1.0, resolution_factor = 4, ray_error_abs = 1e-8 and ray_depth = 75. Took 303min12sec user time (intel i5-4590).
instant_speed_of_light_60fps.mp4Conventional 3D raytracing with infinite speed of light (for reference). The 3D spheres grow and shrink over time. All textures are time-independent. Everything appears to be synchronized. Created with build/examples/basic_minkowski (version 9693243b).
fixed_speed_of_light_60fps.mp44D raytracing in Minkowski space with a finite speed_of_light=7.0. Shown are 4D spheres (glomes) which appear to change size over time. All textures are 4D time-dependent chess board patterns and change color for every unit of space or time. The finite speed reults in distant events appearing to be delayed. Created with build/examples/basic_minkowski (version 9693243b).
slow_speed_of_light_0_to_20_60fps.mp4Same setup as before but for varying speed_of_light (0 to 20) for a fixed moment in time. The faster the speed of light, the shorter the aparrent delay between two spatial regions. Created with build/examples/basic_minkowski (version 27d8af63).
Diffuse, Dielectric, Metal & Emission
Wheel in Motion.
Resting.
note: The image in the middle and right are identical due to the strong similarity of the renderers and usage of pseudo-random number generators with fixed seeds.
makeSee ./build for the executables and ./out directory for the test image output.
make docSee ./doc directory for the documentation.
./build/examples/<executable>Where <executable> is any of the provided executables. Use --help to see the respective usage.
The current image formats focus on ease on implementation and depend on netpbm.
To convert to the desired formats via the netpbm package. E.g.
pnmtopng $file.pnm > $file.png
pfmtopam $file.pfm > $file.pam
pamtopng $file.pam > $file.PNG
# ...Or use imagemagick. E.g.
magick $file.pfm -gamma 1.0 -set gamma 1.0 $file.png
magick $file.pfm -gamma 1.0 -set gamma 1.0 $file.tiffProper exposure and color grading can be archived the same way as for images taken by real cameras. E.g. with darktable.
make docSee doc/html/index.html for the documentation.
Run
.auto_formatto automatically format the entire code base (requires clang-format).
Add DEBUG=1 to make. The executables will be placed in build/debug instead.
Run
./profileto get a profile (requires valgrind (profiler) and kcachegrind (show data)).
| geometry | curved | flat |
|---|---|---|
| method | non-linear propagation | linear/conventional propagation |
| file (commit ed4358e) | examples/swirl_triangles | examples/triangles |
| size (resolution_factor) | 480x270 pixel (2) | 480x270 pixel (2) |
| frames | 60 | 60 |
| samples | 1000 | 1000 |
| ray_depth | 500 | 500 |
| ray_step_size | 0.1 | - |
| swirl_strength | 0.01 | - |
| wall time (AMD Ryzen 5 5600X) | 2.5days | 7min |
| max. total ray segments | 3,888,000,000,000 | 3,888,000,000,000 |
| Back | FazBrowse Home | New Git URL |