Lysa  0.0
Lysa 3D Engine
Engine overview

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, GTAO, 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 collision 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:// and user:// 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 macOS (Vulkan with KosmicKrisp).
  • Scripting: Lua bindings for high-level logic and rapid prototyping.
  • Editor: Add-on to use Blender as an editor

Released under the MIT license.

Architecture of the engine

Additional features

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

Lysa UI is a user interface library Lysa Engine.

Contact

For more information, contact the project maintainers at https://codeberg.org/LysaEngine/lysa_engine

Notes

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