Rasterization
Game engines have always used rasterization for rendering. Rasterization's original purpose was to
flatten 3D triangles to 2D so that VGA blitters could be used to render the triangles. OpenGL, DirectX
and Vulkan are the evolution of rasterization and used by most game engines.
Hmm...
Ingenious techniques with rasterization deliver amazing graphics. But is rasterization the best way?
Rendering 3D scenes is about lighting. Rasterization is about processing triangles into 2D. This
seems fundamentally misaligned.
Ray Tracing?
Instead of just handling lights, shadows and reflections, ray tracing could replace the entire
rasterization pipeline. This would streamline rendering so much. Unfortunately, traditional ray
tracing is too slow to handle everything, even with hardware ray tracing cores.
Something New
For several years Raylogic has been experimenting with specialized ray tracing to overcome this obstacle.
Compute-based shaders are used that render directly from scene to frame buffer. Deterministic ray tracing
is used that doesn't require denoising or other AI help.
Cleaning Up
Eliminating rasterization removes draw calls, frustum culling, occlusion culling, overdraw reduction,
vertex / pixel processing, screen space projection, environment / cube mapping, forward / deferred rendering,
level of detail meshes, transparency ordering, lightmap baking, shadow mapping, depth buffers, mip-mapping,
filtering.
Lightweight and Fast
Rayve is a very lightweight engine with a single C++ header and a comfortable workflow.
The framework is based on Raylogic's own data-oriented entity and component design.
Rayve is still in progress with demos coming soon.