A powerful graphics engine built from scratch in C++ using OpenGL.
Explore the docs »
View Source
·
View main.cpp
·
Request Feature or Report Bug
Nigul is a graphics engine written in C++ using OpenGL. This project was created to provide a flexible and high-performance environment for implementing and experimenting with various graphics techniques. By using OpenGL, Nigul achieves greater speed compared to Vulkan while allowing extensive control over the graphics pipeline.
Nigul utilizes the following libraries:
- GLM for mathematical operations
- tinygltf for reading and writing GLTF files
- ImGui and ImGuizmo for creating and modifying scenes with a GUI
- stb for parallel texture loading (GPU upload is not parallel)
This engine was developed to apply interesting graphics papers and to provide a high degree of control over the graphics pipeline.
Nigul includes the following features:
- GLTF file loading and writing
- Scene graph manipulation (modify nodes, transformations, parent-child relationships, delete nodes)
- Skybox loading
- Support for three types of lights
- Shadow mapping
- Physically Based Rendering (PBR)
- Reflections
- Screen Space Ambient Occlusion (SSAO+)
- Multisample Anti-Aliasing (MSAA)
- Chromatic aberration
- High Dynamic Range (HDR)
- Gamma correction
- Irradiance
You can see a showcase here!