Thanks to visit codestin.com
Credit goes to github.com

Skip to content

jakubg05/Laura

Repository files navigation

3D Path Tracing Game Engine

Laura is a lightweight, Windows-only 3D path tracing engine. It focuses on rendering 3D scenes using path tracing, enabling developers to experiment with 3D light transport simulation in virtual environments. While not as feature-packed as larger engines, Laura provides a simple and approachable platform to learn and experiment with 3D rendering concepts.

Free, open source, and MIT licensed

Laura is completely free and open source under the permissive MIT license. Users are free to use, modify, and distribute their projects without royalties or restrictions. The engine is designed to be lightweight, accessible, and extendable, empowering developers to experiment with path tracing and 3D rendering techniques.

Note

Laura – Light-Aura takes its name from its focus on light and realism: “Laura” evokes a personal, approachable engine, while “Light Aura” reflects its core strength in tracing realistic light paths and producing natural illumination in 3D scenes.

Editor

After designing and configuring your scene in the editor, export it via File → Export and run the generated application to see your work in action.

Exported runtime    Launcher
Left: exported runtime — Right: opening launch window of the editor.

The project is structured into three CMake targets:

  • LauraEngine: The core engine as a static library. It implements the renderer, scene and asset systems, platform abstraction, and utility subsystems. Third-party dependencies (GLFW, GLEW, GLM, Assimp, spdlog, EnTT, yaml-cpp, stb) are vendored and built via CMake.
  • LauraEditor: A fully-featured editor application (ImGui-based) for authoring projects, scenes, materials, and settings, backed by LauraEngine.
  • LauraRuntime: A lean runtime player that loads and runs exported projects using LauraEngine.

Highlights

  • C++20 across all targets
  • Path tracing pipeline using OpenGL compute shaders and a clean renderer abstraction
  • Editor tooling built with ImGui/ImPlot
  • Scene/entity system with EnTT
  • Asset loading (Assimp, stb-image)
  • Structured logging via spdlog

Supported Platforms

Laura currently targets Windows (x64) and builds with the MSVC toolchain.

Important

Note: The root CMakeLists.txt enforces Windows-only for now and enables multi-threaded compilation under MSVC.

Getting Started

Prerequisites

  • Windows 10/11 (x64)
  • Visual Studio 2022 with C++ toolset (or MSVC via Build Tools)
  • CMake 3.26+

Clone Repository

git clone --recursive <this-repo-url> Laura
cd Laura
git submodule update --init --recursive

How to Build with Visual Studio (recommended)

Important

There is no solution file; Open Visual Studio → Continue without code.

  1. File → Open → CMake… → select the root CMakeLists.txt.

Editor

Dev build

  • Configuration: x64-Debug
  • CMake variable: BUILD_INSTALL = OFF (default)
  • Target (dropdown): LauraEditor.exe (Debug/LauraEditor.exe)

Editor

  • Run: Start debugging to launch the editor in Debug.
  • Note: LauraEngine builds automatically when required.

Release / Shipping build

  • Configuration: x64-Release (RelWithDebInfo)

Important

Set CMake variable BUILD_INSTALL = ON (root CMakeLists.txt).

  • Target (dropdown): LauraEditor.exe (Install)

Editor

  • Build: This performs the install step and stages a self‑contained layout under out/build/x64-Release/install/.
  • Run: Launch the installed LauraEditor.exe from the install directory.

Tip

  • BUILD_INSTALL = OFF: executables load resources directly from the source tree. Great for fast dev iteration, but unsuitable for shipping because end users will not have your source-tree layout.
  • BUILD_INSTALL = ON: the install step copies required assets next to the executable (engine_res/, editor_res/) and paths are resolved relative to the executable. Use this for self‑contained, distributable builds.

Dev builds: keep BUILD_INSTALL=OFF for fast iteration. Shipping builds: use BUILD_INSTALL=ON for a portable layout.

Console window

Tip

To hide the console window for applications, set ENABLE_CONSOLE=OFF in the root CMakeLists.txt or pass -DENABLE_CONSOLE=OFF when configuring.

Project Structure

Laura/           # Engine library (source & resources)
LauraEditor/     # Editor application (ImGui-based)
LauraRuntime/    # Runtime player
<target>/Thirdparty/  # Target specific dependencies
SampleModels/    # Example assets
SampleSkyboxes/  # Example HDRs

Troubleshooting

  • Ensure you cloned submodules: git submodule update --init --recursive.
  • If resources are missing at runtime, re-follow the steps in How to Build with Visual Studio, then in Visual Studio choose Project → Delete Cache and Reconfigure.

Editor

Contributions

Contributions are welcome. If extending Laura to additional platforms sounds interesting, a natural next step could be Linux and macOS support.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published