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.

近期下载者

相关文件


收藏者