Nitro
所属分类:图形图像处理
开发工具:C++
文件大小:0KB
下载次数:0
上传日期:2020-06-24 19:42:23
上 传 者:
sh-1993
说明: 渲染引擎,
(Rendering Engine,)
文件列表:
CMakeLists.txt (849, 2020-06-24)
include/ (0, 2020-06-24)
include/core/ (0, 2020-06-24)
include/core/actor.hpp (4417, 2020-06-24)
include/core/camera.hpp (1456, 2020-06-24)
include/core/constants.hpp (226, 2020-06-24)
include/core/cube.hpp (613, 2020-06-24)
include/core/directional_light.hpp (1477, 2020-06-24)
include/core/gaussian_blur.hpp (649, 2020-06-24)
include/core/plane.hpp (804, 2020-06-24)
include/core/point_light.hpp (1658, 2020-06-24)
include/core/scene.hpp (3699, 2020-06-24)
include/core/shadows.hpp (1144, 2020-06-24)
include/core/skybox.hpp (970, 2020-06-24)
include/core/sphere.hpp (1028, 2020-06-24)
include/core/spot_light.hpp (2167, 2020-06-24)
include/events/ (0, 2020-06-24)
include/events/bus.hpp (1623, 2020-06-24)
include/events/command.hpp (876, 2020-06-24)
include/events/event.hpp (175, 2020-06-24)
include/graphics/ (0, 2020-06-24)
include/graphics/context.hpp (519, 2020-06-24)
include/graphics/drawable.hpp (421, 2020-06-24)
include/graphics/framebuffer.hpp (767, 2020-06-24)
include/graphics/g_manager.hpp (906, 2020-06-24)
include/graphics/material.hpp (393, 2020-06-24)
include/graphics/mesh.hpp (1533, 2020-06-24)
include/graphics/model.hpp (1987, 2020-06-24)
include/graphics/post_process.hpp (337, 2020-06-24)
include/graphics/shader.hpp (2300, 2020-06-24)
include/graphics/stb_image.hpp (263610, 2020-06-24)
include/graphics/texture.hpp (3524, 2020-06-24)
include/graphics/window.hpp (1202, 2020-06-24)
include/input/ (0, 2020-06-24)
include/input/controller.hpp (1132, 2020-06-24)
include/input/keyboard_evnt.hpp (459, 2020-06-24)
include/utils/ (0, 2020-06-24)
... ...
# Nitro
Nitro is a real-time 3D renderer built using C++ and OpenGL that aims to implement the latest rendering techniques such as:
+ Physically Based Rendering (PBR).
+ Ambient Occlusion.
+ Parallax Occlusion Mapping.
+ Normal Maping.
+ Environment Mapping.
+ Dynamic Shadow Mapping.
+ Atmospheric Scattering.
+ Bloom.
+ Volumetric lighting.
+ Deferred Rendering.
Also, another of the objectives of Nitro is to implement core aspects of a renderer from scratch (except model loading since we want to test the renderer with a number of models):
+ Virtual Camera: Movement and Rotation.
+ Light Sources: Point Lights, Directional Lights and SpotLights.
+ Primitives: Planes, Cubes and Spheres.
+ Event System.
## How to build:
Clone the project:
```bash
git clone https://github.com/rxwp5657/Nitro.git
```
Download and init project dependencies with the following command:
```bash
git submodule update --init --recursive lib/
```
Create a build directory on the project root folder ../Nitro/build and change into that directory:
```bash
mkdir build && cd build
```
Type the following commands:
```bash
cmake ..
make && ./nitro
```
## How to use:
Move through the scene by using WASD and your mouse as you like and exit by pressing ESC on your keyboard (artifacts appearing becuase of GIF format):
![alt text](https://github.com/rxwp5657/Nitro/blob/master/./resources/images/Move.gif)
## Progress:
### Point Light Shadow Mapping:
![alt text](https://github.com/rxwp5657/Nitro/blob/master/./resources/images/point_pcf.png)
### Spot Light Shadow Mapping:
![alt text](https://github.com/rxwp5657/Nitro/blob/master/./resources/images/spot_pcf.png)
### Parallax Occlussion Mapping:
Without Parallax vs Parallax
![alt text](https://github.com/rxwp5657/Nitro/blob/master/./resources/images/parallax.png)
### Environment Mapping
To be uploaded ...
## PBR pipeline implementation (Still in development)
![alt text](https://github.com/rxwp5657/Nitro/blob/master/./resources/images/specular_pbr.png)
## To-Do list:
+ Dynamic Variance Shadow Mapping:
+ Gaussian Blur (Spotlights).
+ Implement Percentage-Closer Soft Shadows.
+ Cascade Shadow Mapping.
+ PBR:
+ Add PBR materials to Material struct.
+ Add PBR materials to Model loader.
+ Implement BRDF algorithm on shaders (Cook–Torrance? or Lambert or Brent Burley (Disney)).
+ Implement Deferred Rendering:
+ Implement G-buffer structure.
+ Implement G-buffer components (Diffuse, Normla, Depht, etc.).
+ Implement Light Volume.
+ Study and Implement Atmospheric Scattering.
+ Study and Implement Ambient Occlusion.
+ Study and Implement Bloom.
+ Study and Implement Volumetric Lighting.
+ Study and Implement Image-Based Lighting.
近期下载者:
相关文件:
收藏者: