Skip to content

AdiPrk/Radis

Repository files navigation

 ███████████     █████████   ██████████   █████  █████████ 
▒▒███▒▒▒▒▒███   ███▒▒▒▒▒███ ▒▒███▒▒▒▒███ ▒▒███  ███▒▒▒▒▒███
 ▒███    ▒███  ▒███    ▒███  ▒███   ▒▒███ ▒███ ▒███    ▒▒▒ 
 ▒██████████   ▒███████████  ▒███    ▒███ ▒███ ▒▒█████████ 
 ▒███▒▒▒▒▒███  ▒███▒▒▒▒▒███  ▒███    ▒███ ▒███  ▒▒▒▒▒▒▒▒███
 ▒███    ▒███  ▒███    ▒███  ▒███    ███  ▒███  ███    ▒███
 █████   █████ █████   █████ ██████████   █████▒▒█████████ 
▒▒▒▒▒   ▒▒▒▒▒ ▒▒▒▒▒   ▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒   ▒▒▒▒▒  ▒▒▒▒▒▒▒▒▒

Radis Engine

A modern, cross-platform game engine

C++ Vulkan Platform License


Features

Rendering

  • Forward, Deferred, and Hardware Raytracing modes.
  • Physically Based Rendering (PBR), GGX/Schlick-GGX BRDF with metallic-roughness workflow.
  • Real-time raycasting and pathtracing with Vulkan RTX acceleration structures.
  • Custom render graph to automate resource transitions and barrier management alongside dynamic rendering (VK_KHR_dynamic_rendering).
  • Skeletal animations are supported and work with most common model formats.

Asset Pipeline

  • All model types supported through Assimp can be loaded, and are converted to highly optimized formats for loading and rendering.
  • All meshes are batched into a single vertex/index buffer for efficient rendering.
  • Textures are highly compressed into the etc1s format with KTX2, and transcoded to the optimal GPU-compressed format on runtime such as BC7.
  • Texture loading is fully parallelized for the fastest loading times.

Networking (Experimental)

  • Client-server architecture for multiplayer prototyping with ENet.
  • In-editor chat window.

System Requirements

Component Minimum Recommended
OS Windows 10 Windows 11
CPU Any x64 processor Multi-core recommended
GPU Vulkan 1.2 RTX 2060+ for raytracing
RAM 8 GB 16 GB

Getting Started

Prerequisites

Building

  1. Clone the repository
  2. Open Radis.sln in Visual Studio,
  3. Build and run

Camera Controls

Action Input
Look Around Right Mouse + Drag
Move W / A / S / D / E / Q

Dependencies

Library Purpose
Vulkan SDK Graphics API
Volk Vulkan function loader
VMA Vulkan memory allocation
GLFW Window & input
GLEW OpenGL extension loading
GLM Math library
EnTT ECS framework
Assimp Model importing
stb_image Image loading
Dear ImGui Editor UI
ImGuizmo 3D gizmos
nlohmann/json JSON parsing
ENet Networking
reflect-cpp Compile-time reflection

Showcase

alt text alt text


License

This project is licensed under the MIT License — see the LICENSE file for details.


Built with ❤️ by Aditya Prakash

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors