After a lot of years playing videogames, I got curious about those beautiful scenarios that were displayed in them, so I started eveloping a rendering engine using C++ and OpenGL in order to learn how they were done. This engine is designed to support a variety of advanced graphics techniques and features that are crucial for modern rendering. Among its capabilities are mesh loading, which allows it to handle complex 3D models, and a physically-based rendering (PBR) material editor, which enables the creation of realistic surfaces by manipulating properties like albedo, roughness, and metallic attributes.
Further enhancing its functionality, the engine supports scene serialization in JSON format, facilitating the saving and loading of scene configurations efficiently and reliably. Its real-time lighting capabilities, coupled with cascaded shadow mapping, offer dynamic lighting and shadow effects that greatly enhance visual realism. Additionally, the engine implements god rays, and screen-space reflections (SSR) for reflections.
Transparency handling and a comprehensive sandbox environment equipped with various tools provide a robust platform for experimentation and development. The inclusion of a wind system for vegetation animation adds a dynamic element to environmental rendering, making scenes more vibrant and lifelike.
This project allowed me to deepen my understanding of graphics programming and system architecture but also served as a practical application of theoretical concepts in a real-world scenario, challenging me to solve complex problems and innovate with available technologies.
However, I do not have this code published, because it has several years (5 +-) and it does not represent my current level.