Giter Site home page Giter Site logo

zydak / vulkan-path-tracer Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 520.68 MB

Vulkan Path Tracer

License: MIT License

Lua 1.57% C++ 79.13% GLSL 19.27% Batchfile 0.02%
bsdf gpu gpu-computing path-tracer path-tracing pathtracer pathtracing postprocessing ray-tracer ray-tracing

vulkan-path-tracer's Introduction

Vulkan-Path-Tracer

Vulkan Path Tracer is a simple offline renderer made from scratch in Vulkan using my framework Vulture. For ray tracing it utilizes Vulkan Ray-Tracing Pipeline. It uses a simple energy conserving BSDF (more on that in Technical Overview) with Diffuse, Dielectric, Metallic and Glass lobes. Renders that you create can be easily saved as .png images. It also features a post processing graph that allows you to create your own combination of post processing effects and apply them to your renders.

For more info on the project visit Technical Overview.

Running

Building

Windows Only

  • Download Vulkan SDK.
  • Run git clone https://github.com/Zydak/Vulkan-Path-Tracer --recursive.
  • Go to Releases and download Shaderc.zip
  • Unzip and copy Shaderc libraries into Vulture/lib/shaderc/.
  • Run setup.bat in main directory.
  • Open generated solution in Visual Studio.

Gallery

TranslucentDragon

CornellBox

Mustang0 Mustang1

TeapotMarble TeapotTiled

BlackDragon

Dogs

Caustics

Coffee

Sponza

Monster

MonsterInk

MonsterPosterize

Material Showcase

  • Metallic factor ranging from 0 to 1. Determines whether the surface is metallic or dielectric. metallic

  • Roughness factor on metallic surface ranging from 0 to 1. metalRoughness

  • Specular Strength factor ranging from 0 to 1. Changes the strength of specular highlights on dielectric surfaces. specular

  • Roughness factor on dielectric surface ranging from 0 to 1. specRoughness

  • Specular Tint factor on dielectric surface ranging from 0 to 1. Gradually Tints the specular highlights to the surface color. specTint

  • Transparency factor ranging from 0 to 1. Determines whether the material is able to refract light rays or not. glass

  • Roughness factor on glass surface ranging from 0 to 1. glassRougness

  • Index of refraction (IOR) factor on glass surface ranging from 1 to 2. Determines how much the path of light is bent during refraction. IOR

List Of Features

  • Energy Conserving BSDF
  • Complex Materials
    • Diffuse, Metallic and Roughness Textures
    • Transparent materials with IOR
    • Emissive Objects
  • Editor
    • Loading your own scenes in .gltf .fbx and .obj format
    • Editing scene materials in runtime
  • Exporting renders into .PNG files
  • Shader hot reloading and caching
  • HDR Environment Maps
  • Post Processing
    • Bloom using Mip Maps
    • Exposure
    • Contrast
    • Brightness
    • Saturation
    • Vignette
    • Gamma
    • Temperature with Tint
    • Color Filter
    • Chromatic Aberration
    • 6 Tonemappers (Filmic, Hill Aces, Narkowicz Aces, Exposure Mapping, Uncharted 2, Reinchard Extended)
    • Ink Effect: Detects Edges, turns everything to black and white, applies blue noise and adds paper texture.
    • Posterize Effect: Quantizes Colors, Applies Dithering and adds ability to replace color pallet with your own colors or colors generated in OKLAB color space
  • Anti Aliasing
  • Depth of Field effect with automatic focal length
  • Image Denoising using Nvidia Optix Denoiser
  • Camera controller made using quaternions

Credits

Models

vulkan-path-tracer's People

Contributors

zydak avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.