Lysa  0.0
Lysa 3D Engine
About

Lysa is a hobby gpu-driven 3D Engine written in modern C++.

Features

Hybrid Rendering: GPU-driven forward and deferred renderers.

  • Advanced Shaders & Post-processing: Integrated with Slang shaders.
    • PBR: Simplified Physically Based Rendering.
    • Transparency: Weighted Blended Order-Independent Transparency (OIT).
    • Shadows: Support for Directional and Point light shadow maps. Optional colored shadows for transparent objects.
    • Culling: GPU-driven Frustum Culling.
    • Post-processing: Bloom, SSAO, FXAA, SMAA, TAA, AND CAS, HDR Tone-mapping (Reinhard/ACES).
  • Physics Engine: Integrated with Jolt Physics and NVIDIA PhysX for high-performance 3D physics.
    • Collision Objects & Filtering: Support for collisiion objects with object layer collision matrix.
    • Raycasting: Raycasting with layer-based filtering.
    • Event Integration: Physics contacts and collisions integrated with the engine's centralized event system.
    • Debug Rendering: Real-time visualization of physics shapes and constraints.
  • Core Systems:
    • Asynchronous Task Pool: Multi-threaded task execution and deferred command buffering.
    • Event System: Centralized observer-based event dispatcher.
    • Virtual File System: Portable path resolution using app:// URI schemes.
    • Logging: Flexible logging to console, file, or virtual debug window.
  • Resource Management: Dedicated managers for Meshes, Textures, and Materials with automatic GPU uploading.
  • Modern C++: Built with C++23, utilizing C++ modules for clean architecture.
  • Multi-API Support: Vulkan and DirectX 12 support through Vireo RHI.
  • Cross-Platform: Designed for Windows (DirectX 12 & Vulkan), Linux (Vulkan) and potentially other platforms supporting Vulkan.
  • Scripting: Lua bindings for high-level logic and rapid prototyping.
  • Editor: Add-on to use Blender as an editor

Released under the MIT license.

Additional features

Lysa Nodes is a scene graph system using OOP node tree for the Lysa Engine

Lysa UI is a user interface library designed specifically for the Lysa engine offering a hybrid system with retained-mode components drawn using an immediate mode vector renderer.

Lysa ECS is an experimental ECS for the Lysa Engine using Flecs

Contact

For more information, contact the project maintainers at GitHub project page

Notes

This project was created for learning purpose. This engine is not intended to be a full-featured 3D Engine.