Skip to content

mmzala/vkhrt

Repository files navigation

vkhrt

A work-in-progress hair ray-tracer built using Vulkan and the VK_KHR_ray_tracing_pipeline extension with the aim to compare different hair geometry rendering algorithms. The renderer supports a wide range of 3D hair model formats using polylines via Assimp, enabling the import of virtually any format supported by the library.

Rendered using the Phantom Ray Hair Intersector



The project currently supports 3 out of 4 planned hair rendering techniques.

The only one left and currently work-in-progress algorithm is based on Unreal Engine 5's voxalized foliage rendering showcased in the Witcher 4 demo, where the hair will be represented using voxels, will use LODs and try to imitate accurate normals for shading purposes.

Showcase

Phantom Ray Hair Intersector

image image

Linear Swept Spheres

image image

Disjoint Orthogonal Triangle Strips

image image

Build Instructions

The project currently only supports Windows. First you'll have to install the VulkanSDK.

Clone the project to your device:

git clone --recursive https://github.com/mmzala/vkhrt.git

To setup the project use the following cmake command:

cmake CMakeLists.txt

To build the project, use any compiler you want. But either Clang or GCC is recommended as these 2 compilers are tested regularly. All the build files can be found in the root directory inside the build folder.

Libraries

About

Vulkan Hair Ray Tracer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published