Home

Awesome

EveryRay-Rendering-Engine

<p align="center"> <img src="screenshots/ER_banner_full_color_1k.png" width="750"/> </p>

Ver 1.1.1 (Change Log)

<p align="center"> <img src="screenshots/EveryRay_testScene_simple.png"/> </p>

Introduction

"EveryRay" is a rendering engine that is written in C++ with a focus on quick prototyping of graphical techniques and features. It is lightweight, easy to use and already contains many existing rendering solutions inside.

"EveryRay" is not a game engine. It was never made with that in mind which resulted in building the engine with a minimal amount of components/systems outside the graphics part. It is not impossible to make a proper game engine out of "EveryRay", however, there are many other projects that were architectured specifically for that instead.

"EveryRay" is not a library that can be disconnected and connected to your project either. It is not modular and was never meant to be. However, there is at least a distinction between low-level graphics code and high-level systems in the engine which you can borrow for your own needs.

Lastly, "EveryRay" was made by a graphics programmer for those who are interested in real-time rendering and who do not want to spend time setting up a bunch of engine-related things that are needed when you begin writing your personal engine of any kind. You can think of "EveryRay" as a "toy engine/tech demo on steroids" or, in other words, a simple sandbox with minimal UI for testing complex ideas with the help of various prepared functionalities.

You can read more about the architecture of "EveryRay" in the documentation:

You can see a video demonstration of "EveryRay" here (scroll down for screenshots):

Rendering features

You can read more in Graphics Overview

Engine features

You can read more in Engine Overview

Controls

Gamepad is currently not supported/tested with ImGui.

Screenshots

picture picture picture picture picture picture

Scenes

Over the years many scenes have been created for "EveryRay". However, to make things simpler, only a few are included in the public version of this repository:

NameDescriptionScreenshot
testScene_simpleDefault startup scene with a few basic objects<img src="screenshots/EveryRay_testScene_simple.png" width="350"/>
testSceneAdvanced scene with various materials, post-effects volumes, foliage, lights, and light probes<img src="screenshots/EveryRay_v1_0_TestScene.png" width="350"/>
terrainSceneFoliage and several types of GPU indirect objects scattered on top of terrain<img src="screenshots/EveryRay_v1_0_TerrainScene.png" width="350"/>

Learn more about levels in Engine Overview

Roadmap

Big features that require a branch/merge request and a considerable amount of time.

Engine

Graphics

External Dependencies

References

Requirements