Skip to content

alpcihan/hybrid

Repository files navigation

Hybrid

Experimental real-time hybrid renderer for triangular geometry and SDF rendering made with C++ and Vulkan

The main motivation of the project is to render triangular geometry and Signed Distance Functions (SDFs) with a unified lighting system, supported by hardware-accelerated ray tracing.

hybrid Captured from the fractal_flythrough example.

Apollonian fractal by iq, FA-59A Mako spaceship model by hefturush and Village Cloudy Sky Dome HDRI from hdri-haven.

Features

  • Hybrid rendering using a mixture of rasterization, ray tracing, ray marching and compute shaders
  • Deferred rendering
  • PBR
  • Ray marched SDF rendering
  • Ray marched & ray-traced hard shadows
  • Ray marched soft shadows
  • Ray marched & ray-traced specular reflections
  • HDRI skybox
  • Post-processing
  • (WIP) Ray marched & ray-traced glossy reflections from screen-space roughness

Platforms

Hardware:

A GPU with hardware ray tracing support is required.

Operating systems:

Currently only tested on Windows.

Dependencies

Getting started

Installation and building

  1. Install Vulkan SDK.
  2. Clone the repository with its dependencies using git clone --recursive https://github.com/alpcihan/hybrid.
  3. Use CMake to build the project.

Examples

You can find example projects under the examples folder.

  • Set the CMake variable HYBRID_EXAMPLES_ENABLED to ON to build the examples and download the associated assets. Note: it is ON by default.

Example: fractal_flythrough

An example demo comprising a static fractal and a user-controllable spaceship model navigating in a 3rd person view within an abstract environment. The spaceship is rendered using rasterization, while the fractal is rendered using ray marching.

Controls:

  • W, A, S, D, Shift, and Space to move the spaceship.
  • Up, Down, Left, Right to rotate the spaceship.

License

The project is licensed under MIT license.

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •