- CMake
- clang (tested on clang-900.0.39.2)
- CMake
- Visual Studio compiler
- XCode 9+
Project works on both Windows and macOS platforms. Use cmake in order to compile and run. macOS version can be opened as xcode project from ngin/example_projects/mac/ngin_mac.xcodeproj as well
POV in the corner
Removes models which aren't visible from point of view of camera from rendering pipeline. I marked using red color vector which describes direction in which camera looks to help you understand how does it work
Another variation of phong lighting model
It could increase performance if there are many objects placed on the scene. I rendered picture which is placed below in ultra low resolution as an instance
In other words it means that amount of light given by source decreases with rising distance
Provides great performance but looks rather awful
In order to generate frame which you can see below I had to combine two rendering techniques - forward and deferred rendering. Moreover I implemented point, directional and spot lights. They can be used simultaneously
I have integrated project with assimp library. It enables engine to load models, their materials and textures. You can see that there is one additional image comparing to the post from the previous day. It represents specular component of material
In the picture below you can see process of rendering. In the first one normal vectors, colors and positions of objects in world coordinates are rendered into three separate textures. Then, in the second pass these textures are used to calculate influence of lights placed on the scene and final color of each pixel
I have created initial version of class diagram for the project. It has been constantly updated since the beginning of development. I want to avoid major changes and in my opinion UML diagrams are the best way of doing it properly