hanatos / corona-13

cpu path tracing test bed
GNU General Public License v3.0
42 stars 1 forks source link

======================= CORONA-13

this is a plain c testbed for global illumination research code, which has been used for our projects at the computer graphics group at KIT (https://cg.ivd.kit.edu).

======================= QUICKSTART:

$ cp arch.example arch $ cp config.mk.example config.mk $ git fetch $ make $ ./corona regression/0010_pt/test.nra2

keyboard control:

[;.] camera speed -/+ (dvorak) [ye] camera speed -/+ (qwertz) [12] exposure time [34] f-stop [56] focal len [78] iso value [c] save camera position [l] load camera position [p] print screenshot [h] toggle display quake movement, use left mouse button to turn

======================= REQUIREMENTS:

m c dl pthread

optional:

GL SDL OpenVDB X11

======================= FEATURES:

ray tracing primitives:

acceleration structures:

camera models:

reflection models: programmable shaders with loadable modules:

point sets used for integration:

render modes:

sampling methods:

colour management:

spectral upsampling:

threading:

frontend:

screenshots:

tools:

regression tests

======================= BUILD AND INSTALL:

corona-13 follows a compile-your-own build strategy. rather than allowing a lot of run-time options, most of the flexible modules are fixed at compile time.

you can edit these settings in the file config.mk:

$ cp config.mk.example config.mk $ cp arch.example arch

and pick the modules you like best. also have a look at the file arch to suit your hardware.

$ make

mpeg stream rendering:

corona features a render server interface through corona-net, built with MOD_display=network. to use this, start corona as usual on the server. corona will block and wait for a client connection. you can initiate one by typing

$ make corona-netrender -C tools/ $ tools/corona-netrender

client side. maybe you need to tunnel it through a firewall by using ssh before launching corona-netrender:

$ ssh -f hostname -L 8090:hostname:8090 -N

enjoy!

======================= ACKNOWLEDGEMENTS:

contributors: neospark, daylight model, photon kd, endless ideas (sky quad sampling, qbvh) (GPLv3) leo, halton points john, pthread-pool

======================= CHANGES:

13-th generation rt (corona-13) : path space api, new geo backend, new threading backend, veach metropolis.

(corona-14) : simulated shading/ray tracing reordering

(corona-12) : (corona-11) : (corona-10) real-time rayes' : same on GPU with motion blur (corona-9) rayes' : reyes style ray tracing with reordering (corona-8) : procedural geo voxel octree ray tracing (corona-7) : triangle mesh voxelized and ray traced (corona-6) radiata' : spectral rendering! (corona 5) riot' : ray i/o tracer, optimized for SIMD and FPGA (corona 4) mod-rt' : c99, cp inheritance, unbiased light transport: pt, ptdl, lt (corona 3) int-rt' : c99, cpp inheritance, lafortune-style bdpt, integer arith (corona 2) spiessert': C++ inheritance, ray packets, boring state-of-the-art: bih, kd[-ondemand] (parallel) (corona 1) rearview' : npr, realtime, voxel based