Skip to content

Compute Stochastic Screen Space Reflections for unity post processing

License

Notifications You must be signed in to change notification settings

simeonradivoev/ComputeStochasticReflections

Repository files navigation

Compute Stochastic Screen Space Reflections

Compute Stochastic Screen Space Reflections for Unity post processing. Utilizing shared memory for performance. Should be mostly production ready, except for a few Hierarchical Z-depth casting artifacts.

Contents

Features

  • Hierarchical Z-depth casting
  • Temporal reflection depth reprojection
  • Median Filtering for extra denoising
  • Reflection Color Mipmap Pyramid
  • Raycast and resolve pass downsampling
  • Frame reprojection for faking multiple bounces
  • Specular elongation
  • Contact hardening

Requirements

  • Works only with deferred rendering
  • Compute shader capable video card
  • Unity Post Processing v2
  • Tested with Unity 2018.2

Installation

In a unity project go to your Packages folder. Open manifest.json and add into the dependencies the following line:

"com.simeonradivoev.stochastic-reflections": "https://github.com/simeonradivoev/ComputeStochasticReflections.git"

It should look something like this:

{
    "dependencies": {
        "com.unity.ugui": "1.0.0",
        "com.unity.modules.ui": "1.0.0",
        "com.simeonradivoev.stochastic-reflections": "https://github.com/simeonradivoev/ComputeStochasticReflections.git",
    } 
}

Usage

Just add a new effect in a post processing profile under Custom/Stochastic Screen Space Reflections For VR use the test branch called StereoRendering. It currently only supports multi pass rendering.

References

Showcase

Real life usage

Screenshots

Before and After

Before After

Performance

Tested on a GTX 1070 at 1080p

  • Highest Quality, High Quality Blur

    • Raycasting: 1.4 ms
    • Blur: 0.73 ms
    • Temporal: 0.67 ms
    • Resolve: 0.55 ms
    • Total + Others: 4.15 ms
  • Raycast and Resolved downsampled, Low Quality Blur

    • Raycasting: 0.5 ms
    • Temporal: 0.19 ms
    • Resolve: 0.19 ms
    • Total + Others: 1.7 ms