Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Entropy Engine: Vulkan PBR Renderer

A physically-based rendering (PBR) engine built in C++ using Vulkan, featuring a custom graphics pipeline framework, an entity-component-system (ECS) powered by entt, and an interactive ImGui-based UI for real-time scene manipulation.

This renderer implements PBR entirely through Vulkan shaders without ray tracing extensions.


Features

  • Physically-Based Rendering (PBR): Realistic material rendering using physically-based shading models in GLSL shaders.

  • Custom Graphics Pipeline Framework: An extensible system to easily define, manage, and swap custom Vulkan graphics pipelines.

  • Entity-Component System (ECS): Powered by entt to manage entities with components like:

    • TransformComponent
    • MeshComponent
    • MaterialComponent
    • CameraComponent
    • LightComponent
  • Scene Editor UI: Built using ImGui and ImGuizmo for interactive object manipulation (translate, rotate, scale) and scene inspection.

  • Scene Serialization: Save and load entire scenes in human-readable YAML format.

  • Asset Loading: Load 3D models via Assimp and support for SPIR-V shader loading.


Dependencies


Working

  • Entities are created and assigned components (Transform, Mesh, Material).

  • The Renderer iterates over entities and submits draw calls based on their components.

  • Graphics Pipelines are defined via an internal framework, enabling easy creation of multiple render passes and specialized pipelines.

  • ImGui UI allows:

    • Viewing entity hierarchy and properties.
    • Manipulating transforms with ImGuizmo.
    • Adjusting material properties in real-time.
  • Scenes can be saved/loaded to YAML, preserving the entity hierarchy and properties.


Build Instructions

Requirements:

git clone https://github.com/sanjay004mk/entropy-engine.git
cd entropy-engine
premake5 vs2022

Screenshots

sphere cerberus

About

Vulkan PBR renderer with ECS

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages