Lobachevsky (hyperbolic) space ray tracer powered by OpenCL.
- OpenCL 1.2
- SDL2
- SDL2_Image
- Install GCC, Make and CMake.
- Install some of
*-opencl-dev
and*-opencl-icd
for 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_image
To build and run example:
./script/run.sh main
You 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