Linux |
Windows |
macOS |
---|---|---|
No CI yet | No CI yet |
RaZ comes from, as you may have noticed, my username Razakhel. This was also meant as a pun, since in french RàZ is the acronym for "Remise à zéro", which basically means "reset". I didn't have any particular intent behind this double meaning. Except maybe hoping that using RaZ might reset your mind because of its awesomeness? Oh well.
Written in modern C++ (14), ECS driven, it is primarily developed for learning purposes. It is intended to be as optimized as possible, while trying to stay as modular as it can.
This library is available for Linux and Windows. It is also supposed to run on macOS, but since I don't own a Mac I can't say for sure.
If you want to get started, head to the wiki!
Crytek Sponza | Hylian shield (PBR) |
---|---|
More examples are available here.
Objectives | Implemented |
---|---|
Mesh loading (OBJ/FBX/OFF...) | Yes (OBJ/FBX/OFF) |
Texture loading (JPEG/PNG/TGA/BMP/BPG) | Yes (PNG/TGA) |
Vector: operations, dot, cross, normalization, length/magnitude calculation | Yes |
Matrix: operations, transposition, determinant computation, inversion | Yes |
Camera & transformations | Yes (rotation with quaternions) |
Lighting | Yes (point/directional lights) |
Materials & textures | Yes (multi-textures functional) |
Deferred rendering | Yes (modularization in progress) |
Screen-Space Ambient Occlusion (SSAO) | On standby |
Screen-Space Reflections (SSR) | On standby |
Normal mapping | Yes |
PBR rendering | Yes (Cook-Torrance model) |
Image Based Lighting (IBL) | No |
Shadow mapping | No |
Bloom | No |
To be honest, keeping it as a "simple" 3D engine was what I expected, but I wouldn't say no to working on another features aside from the rendering. Thus, it is not excluded at all to evolve into a game engine, when I'll have more time.