A sample demonstrating hybrid ray tracing and rasterisation for shadow rendering and use of the FidelityFX Denoiser.

Overview

Hybrid Shadows

Copyright (c) 2021 Advanced Micro Devices, Inc. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Hybrid Shadows

A sample to show off a way to accelerate raytraced shadows by using traditional shadow map techniques.

Screenshot

Build Instructions

Prerequisites

To build Hybrid Shadows, you must first install the following tools:

To run the sample a DXR 1.1 capable GPU is required.

To build the sample:

  1. Clone the repo with its submodules:

    > git clone https://github.com/GPUOpen-Effects/Hybrid-Shadows.git --recurse-submodules
    
  2. Generate the solution:

    > cd Hybrid-Shadows\build
    > GenerateSolutions.bat
    
  3. Open the solution in the DX12 directory, compile and run.

You might also like...
Skrull is a malware DRM, that prevents Automatic Sample Submission by AV/EDR and Signature Scanning from Kernel.
Skrull is a malware DRM, that prevents Automatic Sample Submission by AV/EDR and Signature Scanning from Kernel.

Skrull is a malware DRM, that prevents Automatic Sample Submission by AV/EDR and Signature Scanning from Kernel. It generates launchers that can run malware on the victim using the Process Ghosting technique. Also, launchers are totally anti-copy and naturally broken when got submitted.

Well-organized, commented and documented sample project that shows the basic functionalities of the 42's mlx library.

miniLibX sample | slucas-s I developed this sample project to play around with the basic functionalities of the miniLibX, the simple graphics library

Arduino sample code to help you get started using the Soracom IoT Starter Kit!
Arduino sample code to help you get started using the Soracom IoT Starter Kit!

Soracom IoT Starter Kit The Soracom IoT Starter Kit includes everything you need to build your first connected device. It includes an Arduino MKR GSM

ESP32 drum computer / sample player / midi sequencer (Arduino audio project)

esp32_drum_computer ESP32 drum computer / sample player / midi sequencer (Arduino audio project) The project can be seen in my video https://youtu.be/

A C++17 library of computationally efficient methods for calculating sample statistics
A C++17 library of computationally efficient methods for calculating sample statistics

Vectorized statistics using SIMD primitives Introduction is a C++17 library of computationally efficient methods for calculating sample statistics (me

Faster Non-Integer Sample Rate Conversion
Faster Non-Integer Sample Rate Conversion

Non-Integer Sample Rate Conversion This repository contains a comparison of sample-rate conversion (SRC) algorithms, with an emphasis on performance f

GrandOrgue is a sample based pipe organ simulator.

GrandOrgue is a sample based pipe organ simulator. It currently supports Linux, Windows and OS X. Porting to other OS supported by RtMidi,

CMSGen, a fast uniform-like sample generator

CMSGen a fast uniform-like sampler This system provides CMSGen, a fast uniform-like sampler. While we give no guarntees that the sampling is uniform,

Sample module for FreeSWITCH using golang

freeswitch_module_golang_sample Sample module for FreeSWITCH using golang tl; dr

Comments
  • Release Binary Crash on win10, debug compiled point at pipeline creation fail: No message at all

    Release Binary Crash on win10, debug compiled point at pipeline creation fail: No message at all

    in ShadowRaytracer.cpp: 187

    image

    • GPU is nvidia 1070
    • other sample like gtlf sample 1.4 works, both binary and locally compiled
    • it works on nvidia 2080 so must be a DXR limitation
    opened by Kuranes 2
  • Exits with a 'This sample requires a DXR 1.1 capable GPU' on a multi-GPU setup

    Exits with a 'This sample requires a DXR 1.1 capable GPU' on a multi-GPU setup

    My laptop has an integrated Intel GPU that is not capable of ray-tracing, and an external AMD 6900XT GPU that is. My drivers (21.9.1) and Windows version (10.0.19042 Build 19042) are all up-to-date, but I get the above warning when launching this example.

    Presumably, my iGPU is being selected as the device to use instead oy my eGPU and that is what is causing this error. Is there a way to override this? Or does a change to this repository/cauldron need to be made in order to prioritise external GPUs?

    opened by expenses 1
Releases(v1.0)
  • v1.0(Apr 28, 2021)

    Release Notes

    This sample demonstrates how to combine ray traced shadows and rasterised shadow maps together to achieve higher quality and performance.

    • Configurable shadow cascades
    • Raytraced shadows
    • Hybrid shadows
      • Rejecting lit pixels
      • Rejecting shadowed pixels
      • Ray interval reduction
    • FidelityFX shadow denoiser

    Requirements

    • A graphics card with Direct3D® 12 and DXR support.
    • Windows® 10 (64-bit recommended).
    • Visual Studio® 2019 with Visual C++® and the Windows® 10 SDK installed.
    Source code(tar.gz)
    Source code(zip)
    AMD-HybridShadows-v1.0.zip(181.08 MB)
Owner
GPUOpen Effects
Real-time visual effects from the GPUOpen initiative
GPUOpen Effects
A collection of academic and personal projects demonstrating my proficiency in programming.

Best-README-Template An awesome README template to jumpstart your projects! Explore the docs » View Demo · Report Bug · Request Feature Table of Conte

Kevyn Higbee 1 Nov 18, 2021
Example program demonstrating the Meijster's distance transform algorithm.

Distance Transform The distance transform operation consist in finding the shortest distance of a black pixel to a white one. This project demonstrate

Code In Colors 1 Nov 15, 2021
Cross-platform tool to extract wavetables and draw envelopes from sample files, exporting the wavetable and generating the appropriate SFZ text to use in a suitable player.

wextract Cross-platform tool to extract wavetables and draw envelopes from sample files, exporting the wavetable and generating the appropriate SFZ te

Paul Ferrand 9 Jan 5, 2022
Transacted Hollowing - a PE injection technique, hybrid between ProcessHollowing and ProcessDoppelgänging

Transacted Hollowing Transacted Hollowing - a PE injection technique. A hybrid between Process Hollowing and Process Doppelgänging. More info here Cha

hasherezade 430 Dec 24, 2022
Simple C++ sample showing how to use OpenCL v1.2 on Windows/Linux/OSX with no 3rd party SDK installs

simple_opencl This is a simple and practical C++ sample showing how to use OpenCL v1.2 on Windows/Linux/OSX with no 3rd party SDK installs required un

Rich Geldreich 30 Sep 14, 2022
This is the demo project mainly for the BUU ( Beijing Union University ) about the hybrid robot.

This is the demo project mainly for the BUU ( Beijing Union University ) about the hybrid robot. It contains the moving platform and robot arm in 7 freedom.

Mingshan-Beal 3 Dec 1, 2022
Phan Sang 17 Dec 29, 2022
Super Volume Render of Monte Carlo Path tracing for Linux

exposure-render-for-Linux Super Volume Render of Monte Carlo Path tracing for Linux Introduction The code is a Linux distribution of exposure render.

engineer 4 Dec 11, 2022
Physically-based GPU and CPU ray-tracer emerging on a surface

etx-tracer Physically-based GPU and CPU ray-tracer emerging on a surface. Features Vertex Connection and Merging algorithm (CPU and GPU); Full-spectra

Serhii Rieznik 233 Dec 14, 2022
A simple and sample port of ceserver to iOS.

A simple and sample port of ceserver to iOS.This project is currently under development.

KenjiroIchise 1 Oct 19, 2021