Skip to content

A graphics engine using a few libraries in C++ and openGL

Notifications You must be signed in to change notification settings

PinyaColada/Nigul

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nigul


Nigul Graphics Engine

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

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.

(back to top)

Features

Nigul includes the following features:

General Features

  • GLTF file loading and writing
  • Scene graph manipulation (modify nodes, transformations, parent-child relationships, delete nodes)
  • Skybox loading

Graphics Features

  • 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

In Development

  • Irradiance

(back to top)

Demo

You can see a showcase here!

Graphics Engine Demo

exploring the graphics capabilities!

(back to top)

About

A graphics engine using a few libraries in C++ and openGL

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages