Awesome
<p align="center"><img src="https://github.com/BeardedPlatypus/nTiled/blob/master/nTiled_icon.png?raw=true" alt="nTiled" title="nTiled" width=12.5% /></p> <p align="center"><img src="https://github.com/BeardedPlatypus/nTiled/blob/master/nTiled.png?raw=true" alt="nTiled" title="nTiled" width=40% /></p>Table of Contents
Overview
<p align="center"><img src="https://i.imgur.com/iKZHE1S.png" alt="nTiled Render" title="nTiled Render" width=50% /></p>nTiled
is an openGL
renderer that implements both a forward and deferred
pipeline. It supports three light assignment algorithms:
- Tiled Shading
- Clustered Shading
- A novel algorithm called Hashed Shading, based upon Linkless Octrees.
nTiled
is implemented to test the time and space complexity of said
algorithms. It is written as part of my thesis to obtain my masters degree in
Computer Science at the KU Leuven.
The thesis (in dutch) can be found at this repository
The accompanying paper (in english) can be found at this repository
The datasets and produced data can be found at this repository
Installation
I am going to assume you have visual studio 2015 express installed and ready to be used, if this is not the case you can obtain it free of charge here
Clone the nTiled
repository
cd <desired parent directory>
git clone https://github.com/BeardedPlatypus/nTiled.git
Download the following dependencies and put them in the <solution_director>/lib/
folder:
-
openGL: glad
Click this link or follow the instructions in the readme of glad to generate the appropriate c code and headers.
Place theinclude
andsrc
folders in<solution_directory>/lib/GL>
. -
Download the 32-bit binary files from the homepage and put these under
<solution_directory>/lib/glfw/>
If a different version then 3.2.1 is used, this needs to be updated in thenTiled
properties -
Download the files and put these under
<solution_directory>/lib/glm/>
-
Download the latest source files and put these in
<solution_directory>/lib/assimp/>
These source files need to be compiled with visual studio 2017. After compiling, make sure to put the generated binaries into either thePATH
variable, or in either theDebug
orRelease
folder ofnTiled
. -
Follow the installation instructions specified in the README of rapidjson
-
Download the
catch.hpp
header and store in<solution_directory>/lib/catch/
.
If you are not interested in the test suite, than this dependency can be ignored. -
Download the repository and place in
<solution_directory>/lib/imgui/
Start the solution in Visual Studio 2017. Check if all dependencies are properly configured. Once completed, the program should compile.
Usage
<p align="center"><img src="http://i.imgur.com/kYHsWii.png" alt="nTiled ui" title="nTiled ui" width=50% /></p>nTiled
can be run with configuration json
files that specify the scene,
lights, shaders, camera, etc. This is done by running the produced
executable as follows:
nTiled <path_to_conf_file.json>
An example run configuration file can be found in the example folder. This is the same file that will be run when no path is specified.
For other example files see the data repository
Documentation
The documentation of nTiled
is hosted at readthedocs.io and can be found at nTiled.readthedocs.io.