RAYVE GAME ENGINE
Rayve is a small, low-friction, C++ game engine that uses ray tracing for rendering. Rayve strives to be
a game engine that is simple yet expressive. Rayve is very lightweight and carefully designed. The API is
a single C++ header. A naming convention is used that allows a 3D modeling tool to be used efficiently as
a level editor.
RASTERIZATION
A 'rasterization' process was created for games long ago to project triangles from 3D to 2D, so hardware
blitters on VGA cards could be used to render the triangles. It's a brute force method that requires
many processing steps. All game engines still use rasterization pipelines.
RAY TRACING
Ray tracing has been around as long as rasterization. Ray tracing provides a real world lighting model that is
very straightforward to implement. Yet, rasterization is used in games instead of ray tracing, because even
with hardware acceleration, traditional ray tracing is still too slow to render entire scenes. Raylogic
worked for years to solve this problem and Rayve is the result.
RETHINKING
Raylogic has created a new, deterministic ray tracing algorithm that is used for all rendering, not just lighting.
It provides fast, real-time ray tracing for games. Triangles are rendered directly from the scene to the frame buffer.
All rendering is done with compute shaders inside Vulkan. No other part of Vulkan is used.
REMOVAL
Removing rasterization is a big step. It eleminates draw calls, frustum culling, near/far clip planes,
occlusion culling, overdraw reduction, vertex/pixel processing, screen space projection, environment/cube
mapping, lightmap baking, forward/deferred rendering, level of detail meshes, transparency ordering,
shadow mapping, depth buffers, texture filters and more.
RESTRICTIONS
Rayve is taking a new path and there are hurdles. Rayve needs Nvidia GPU's for now. Rayve also requires
Windows PC's, is closed source, has a small feature set and requires Visual Studio. Some or all of these
limitations can be removed over time.
RAYLOGIC
A little bit about why Rayve. I'm the developer behind Raylogic. My first games were created with PDP-11
Basic (line numbers and goto's) for VT-100s. My first distributed game was on the 1984 Macintosh. My first
game engine was written for VGA cards in 8086 assembly. Since the beginning, I've been a fan of ray tracing.
But there was no way to use it for regular games. Rayve is the fullfilment of my dream for a totally ray
traced game engine to replace rasterization. Not anticipating a big adoption, but had to be done :)