Awesome
<br> <img width=200" align="left" src="https://github.com/Pikachuxxxx/Razix/blob/master/Branding/RazixLogo.png"> <h1> Razix Engine </h1> Razix is a High Performance Engine for experimenting with different rendering techniques. Razix supports Windows, Mac, Linux.:warning: WARNING:Currently Razix is WIP and the renderer is undergoing major design overhaul, so thread with caution while using, check the RoadMap below for release information |
---|
About
Razix is a cross-Platform 3D engine with multi render API support (Vulkan, DirectX 12). It's being built on a new design principle of "Everything is as asset" to replace traditonal gameobject and ECS systems and primarily focusing on making a game one day soon. I have a game idea that I'll be showcasing using the engine in 2025 hopefully, eventually I hope razix will be mature enough one day. It's also my portfolio.
View the Trello Board and the Architecture notes on Draw.io
Features
- Built using C++17. (Engine will be reverted back to C++14 once entt/sol have been removed and only Jolt will be compiled in C++17 mode)
- C++14 over C++11 because
constexpr
andsizeof
and improvedlamdbas
are needed for framegraph.
- C++14 over C++11 because
- Support for Windows, Linux, macOS.
- Support for Vulkan & DirectX 12.
- Data Driven Framegraph based on EA's frostbite engine (based on skaarj
1989's Framegraph implementation)
- Uses Custom Node Graph Editor
Node based <br /> Frame Graph Editor | <img src="./Branding/DemoImages/ReleaseNotes/Frame_Graph_Editor_design_demo_5.png" width="400"> |
---|
- 3D audio using OpenAL
- Complete Deferred pipeline + Bindless resources + nanite-like renderers(Future support for customizable render graph editor for complete control).
- Level Editor & tools built using QT
- Multi Physics engine support.
- 3D physics using Jolt.
- Basic lua scripting support
- Extremely detailed profiling using Tracy and RenderDoc integrated
- Supports GLSL, HLSL shading languages to create custom materials + Custom Razix Shaders files for easy compilation
- Resource Pool base management and custom asset format
Resource Viewer | <img src="./Branding/DemoImages/ReleaseNotes/ResourceViewerPreview_2_Full.png" width="400"> |
---|
- Data drive pipeline architecture - FrameGraph uses JSON files
- Custom Razix STL and Razix Memory
- WorldRenderer Passes
- Lighting and shadows
- Directional lights with CSM (Cascaded Shadow Mapping)
- Point lights
- Spot lights
- Deferred PBR
- IBL
- Skybox (HDR & Procedural)
- SSAO
- Debug Drawing
- ImGUi
- Tonemapping
- FXAA
- TAA (WIP)
- Lighting and shadows
Experimental features:
- Machine Learning sandbox (custom NNs class + Transformers WIP) CPU only for now, later might be ported over the engine RHI layer
- Department based memory/frame time budget profiling (inspiration from SMS GDC talk and Insomniac engine)
DirectX11, OpenGL has been deprecated. Only high-level APIs and RTX level GPUs will be supported. PSVita(GXM) and PS3(GCM) will be supported sometime far in future.
Tools
Razix also provides a rich set of GUI and Commmand Line Tools along with the Editor for various purposes such as
- Razix Asset Packer - CLI Tool + API for Editor - Export 3D Models into custom razix format Meshes and Materials
RoadMap
V 1.0.0 - RC
Contributing
More information will be update on creating PRs and other ways to contribute to Razix Engine.
Style Guide
Check the style guide for Razix Style enforcements
Screenshots/Demos
<img src="./Branding/DemoImages/ReleaseNotes/Razix Engine Editor 4_13_2024 7_14_21 PM.png">Architecture
:warning: Still a work in progress
ex. Lua Scriping API cheatsheet
Check the Docs folder or Architecture notes on Draw.io for a detailed architecture description
Core Systems | Frame Graph |
---|---|
<img src="./Docs/Architecture/RazixEngine-CoreSystems.png" width="300"> | <img src="./Docs/Architecture/Razix Engine-FrameGraph.png" width="300"> |
Changelog and Release Notes
License
Razix Engine is distributed under Apache 2.0 license. LICENSE