Elysium Engine

Project information

  • Introduction
  • A multi-thread custom engine written in C++ that uses OpenGL and DirectX, and integrates physics, sound and physically-based rendering.

  • Programmers
  • Alejandro Díaz Rodríguez and Joel Vinaroz Giménez.

  • Skills developed
  • C++, OpenGL and DirectX11.

  • Development duration
  • 8 months (October 2023 - May 2024).


My role in the project

Elysium Engine is a C++ rendering engine focused on modularity, real-time rendering, and extensibility. I was responsible for the core architecture, rendering pipeline, and several advanced rendering features.

Core Features & Techniques

🧩 Entity Component System (ECS)
I designed and implemented a custom ECS using std::optional-based component storage. Each component type is stored in a separate container, and I created custom iterators to efficiently traverse only valid instances, optimizing cache usage and logic execution.

📦 Resource Manager
I developed a multithreaded resource manager that loads textures and geometry asynchronously using a job system. It supports both OpenGL and DirectX11 backends and ensures smooth asset streaming in real-time contexts.

💡 Rendering Features

  • Physically Based Rendering (PBR) with a metallic-roughness workflow.
  • Shadow mapping for all kind of lights.
  • Full OpenGL integration including VAO, VBO, FBO, and shader systems.

Lights Lights_2 PBR

🌊 Screen Space Reflections (SSR)
Implemented with screen-space ray marching and binary search refinement. Depth comparisons are used for accurate hit detection, with optional skybox fallback for rays that miss visible geometry. Adds dynamic, realistic reflections to surfaces in real time.

Screen Space Reflections

🌄 Procedural Terrain
Integrated as part of an AI research project. The terrain system supports:

  • Wave Function Collapse for structured patterns
  • Perlin Noise from both library and custom implementation
  • Vegetation spawning based on heightmap data
My implementation included smoothing, terrain persistence, and iteration over different procedural techniques to compare quality and performance.

Terrain Terrain_2

Key Outcomes

This project strengthened my understanding of graphics architecture, parallel resource loading, real-time shading techniques, and AI-based content generation. Elysium Engine served as a solid base to explore advanced rendering techniques in a modular, reusable framework.

© Copyright Joel Vinaroz Giménez