nicovanbentum / Raekor

3D Renderers using Vulkan/DX12/OpenGL in C++
MIT License
15 stars 1 forks source link
cpp dx12 glsl graphics opengl ray-tracing raytracing shaders vulkan

Build (CMake - Windows)

OpenGL - Requirements

Vulkan - Requirements

DirectX 12 - Requirements

Instructions

Clone this repository using git clone --recursive https://github.com/nicovanbentum/Raekor.git

NOTE: If the path to the repository contains any whitespace the shaders will fail to compile.

Projects

Raekor

This project requires C++ 20.

DX12

Main project at the moment.

image

Basic RenderGraph architecture (automatically creates resource views and handles resource barriers) on top of DirectX 12. Heavily relies on shader model 6_6 bindless. Lots of ray tracing. Implements IEditor, so can edit the scene in real-time. The rendergraph currently features:

image

OpenGL

This project requires OpenGL 4.5 for direct state access functions.

image

VK

Requires Vulkan 1.2 with support for descriptor indexing, device buffer address, and hardware ray tracing.

Older versions of this project contained rasterized experiments with parallel command buffer recording, dynamic uniform buffers, and bindless textures.

image Path tracer WIP - 8 bounces. Converges in real time when stationary.

DX11

A small demo of async GPU resource creation and dithered mesh fading. Raekor started out 4 years ago as an experiment on switching between graphics APIs at runtime (I had no idea what I was doing lol), which is why you will find a bunch of unfinished DirectX 11. Source only.

Ray Tracing in One Weekend

image Single school assignment, implements Ray Tracing in One Weekend by Peter Shirley in a GLSL Compute shader. Source only.