GPURayTracer/README.md

84 lines
1.9 KiB
Markdown
Raw Permalink Normal View History

2021-08-07 23:14:51 +02:00
# GPU Ray Tracer
GPU Ray Tracing application based on my OpenGL Compute Engine.
<p align="center">
<img src="screenshots/fox2.png">
</p>
## Dependencies
* OpenGL
* GLFW
* GLEW
* [stb_image](https://github.com/nothings/stb)
2021-08-11 18:48:41 +02:00
## Binaries
2021-08-11 18:53:18 +02:00
You can find the latest releases [here](https://github.com/DawidPietrykowski/GPURayTracer/releases)
2021-08-11 18:48:41 +02:00
2021-08-07 23:14:51 +02:00
## Build
* Clone this directory
* Run git submodule init
* Run git submodule update
* Specify these root directories for dependencies in [make_all.bat](make_all.bat) script:
* GLFW_ROOT
* GLEW_ROOT
* stb_image_ROOT
2021-08-07 23:14:51 +02:00
* Run [make_all.bat](make_all.bat).
* Run [build.bat](build.bat).
2021-08-07 23:14:51 +02:00
## Config files
Each scene/configuration is described in a config file.
Example scenes are located in [/configs](configs) directory.
All available parameters are specified in [config_template.txt](config_template.txt).
## Usage
Pass chosen config file to the generated executable as an argument in command line.
If no argument given, *config.txt* is picked.
## Features
* Wavefront (.obj) file import
* PNG, JPG, HDR texture import
* Object can be an imported triangle mesh, sphere or infinite plane
* Each scene is saved in a separate file
* Specular and diffuse reflections
* Physics based refractions
* Camera movement
* Screenshot saving
## Example images
Mesh | Refraction
:-------------------------:|:-------------------------:
![](screenshots/fox2.png) | ![](screenshots/refraction1.png)
Multiple meshes 1 | Multiple meshes 2
![](screenshots/objects1.png) | ![](screenshots/objects4.jpg)
Solar system 1 | Solar system 2
![](screenshots/solar_system1.png) | ![](screenshots/solar_system2.png)
## Keys
Camera
* UP - SPACE
* DOWN - CTRL
* LEFT - A
* RIGHT - D
* FORWARD - W
* BACKWARD - S
Window
* Screenshot - L
* Disable input to window - P
* Close application - ESC
## License and copyright
© Dawid Pietrykowski
Licensed under the [MIT LICENSE](LICENSE)