Lobachevsky (hyperbolic) space ray tracer powered by OpenCL.
- OpenCL 1.2
- SDL2
- SDL2_Image
- Install GCC, Make and CMake.
- Install some of
*-opencl-devand*-opencl-icdfor your device.
The *-opencl-dev and *-opencl-icd means that you need to install only a pair of packages which names end with -opencl-dev and -opencl-icd.
Don't run apt-get install *-opencl-dev *-opencl-icd. This command will install all packages with matching names and this is not what you need.
The actual packages depends on your GPU. For example, if you use Nvidia GPU, you probably need to install nvidia-opencl-dev and nvidia-opencl-icd.
-
Install MSYS2.
-
With MSYS2 install required packages:
pacman -S \
gcc \
make \
cmake \
git \
mingw64/mingw-w64-x86_64-opencl-headers \
mingw64/mingw-w64-x86_64-opencl-icd-git \
mingw-w64-x86_64-SDL2 \
mingw-w64-x86_64-SDL2_imageTo build and run example:
./script/run.sh mainYou may use name of another example instead of main as well.
To select the OpenCL platform and device:
./script/run.sh <example-name> [platform-no] [device-no]To list all available platforms and devices enter -1 as [platform-no].
In some examples you may fly around the scene using your keyboard and mouse.
- Use your mouse to look around.
W,A,S,D- move forward, left, backward and right respectively.Space,C- move up and down.Q,E- tilt counter- and clockwise.Tab- release/grab mouse pointer.Esc- exit application.
- Euclidean geometry
- Lobachevsky (hyperbolic) geometry
- Spherical geometry
- Specular material
- Lambertian material
- Transparent material
- Refraction
- Diffusion on fog
- Arbitrary BRDF
- Square tiling
- Hexagonal tiling
- Pentagonal tiling
- Heptagonal tiling
- Apeirogonal tiling
- Lens blur (depth of field)
- Motion blur
- Motion blur on moving objects
- Gamma correction
- Noise reduction (maybe using DL)
- Same RNG seed for work group to reduce divergence