All Projects → cdrinmatane → Ssrt

cdrinmatane / Ssrt

Licence: mit
Real-time indirect diffuse illuminaton using screen-space information for Unity.

Projects that are alternatives of or similar to Ssrt

Unity Dithered Transparency Shader
Unity material and shader for applying clipped, dithered transparency
Stars: ✭ 174 (-1.14%)
Mutual labels:  unity, unity3d, shaders, rendering
X Postprocessing Library
Unity Post Processing Stack Library | Unity引擎的高品质后处理库
Stars: ✭ 1,079 (+513.07%)
Mutual labels:  unity, unity3d, rendering
Shadergraph Custom Nodes
🔨 Collection of custom nodes for ShaderGraph.
Stars: ✭ 53 (-69.89%)
Mutual labels:  unity, unity3d, shaders
Unitydxrtest
A testbed project for Unity real-time ray tracing features
Stars: ✭ 172 (-2.27%)
Mutual labels:  unity, unity3d, raytracing
Tinykaboom
A brief computer graphics / rendering course
Stars: ✭ 2,077 (+1080.11%)
Mutual labels:  shaders, rendering, raytracing
Shadergraph
Unity ShaderGraph project
Stars: ✭ 1,009 (+473.3%)
Mutual labels:  unity, shaders, rendering
Rimlight
Customizable rimlight shader for Unity that includes pulsation and noise scrolling. Give your scenes that extra oomph!
Stars: ✭ 170 (-3.41%)
Mutual labels:  unity, unity3d, shaders
Unity Shadergraph Sandbox
✏️ Collection of ShaderGraph examples for Unity.
Stars: ✭ 525 (+198.3%)
Mutual labels:  unity, unity3d, shaders
Smo Shaders
A collection of shaders to replicate those used in Super Mario Odyssey's Snapshot Mode.
Stars: ✭ 97 (-44.89%)
Mutual labels:  unity, unity3d, shaders
Unityvolumerendering
Volume rendering, implemented in Unity3D.
Stars: ✭ 102 (-42.05%)
Mutual labels:  unity, unity3d, shaders
Unitylibrary
📚 Library of all kind of scripts, snippets & shaders for Unity
Stars: ✭ 1,968 (+1018.18%)
Mutual labels:  unity, unity3d, shaders
Radialprogressbar
Customizable radial progress bar shader for Unity3D. Allows you to set arc range, minimum and maximum colors, textures, radius, and a few more things. Create HP Bars, Speedometers, rank progress, etc!
Stars: ✭ 714 (+305.68%)
Mutual labels:  unity, unity3d, shaders
Hologramshader
✏️ Test of an hologram material made in Unity.
Stars: ✭ 684 (+288.64%)
Mutual labels:  unity, unity3d, shaders
Nvjob Water Shader Simple And Fast
#NVJOB Simple Water Shaders. Free Unity Asset.
Stars: ✭ 172 (-2.27%)
Mutual labels:  unity, unity3d, shaders
Texturepanner
This repository hosts a shader for Unity3D whose main goal is to facilitate the creation of neon-like signs, conveyor belts and basically whatever based on scrolling textures
Stars: ✭ 528 (+200%)
Mutual labels:  unity, unity3d, shaders
3d Game Shaders For Beginners
🎮 A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.
Stars: ✭ 11,698 (+6546.59%)
Mutual labels:  unity, unity3d, shaders
Unity Frosted Glass
❄️ Test of a frosted glass material in Unity.
Stars: ✭ 506 (+187.5%)
Mutual labels:  unity, unity3d, shaders
Fontainebleaudemo
Fontainebleau demo
Stars: ✭ 524 (+197.73%)
Mutual labels:  unity, unity3d, rendering
3dxrayshader unity
Surface shader. Clips a Model with given plane , applies fresnel on clipped part and highlights the cross section.
Stars: ✭ 73 (-58.52%)
Mutual labels:  unity, unity3d, shaders
Unity Texture Curve
✏️ Example showing how to bake an AnimatedCurve into a Texture and use it in a shader.
Stars: ✭ 149 (-15.34%)
Mutual labels:  unity, unity3d, shaders

ssrt

Screen Space Ray Tracing

Real-time indirect diffuse illuminaton using screen-space information for Unity.

Features

  • One bounce indirect diffuse lighting.
  • Ambient occlusion.
  • Support of emissive surfaces as indirect light source.
  • Fallback to Unity ambient or cubemap based ambient.

Limitations

  • Currently still using legacy rendering pipeline.
  • Works only with Deferred rendering.

Installation

Copy the SSRT folder in the Asset folder of your Unity project, and add the SSRT component on the main camera. Tested with Unity 2019.1.1f1.

The project needs to be in linear color space, and the camera should use deferred rendering.

It's highly recommended to add the latest post-processing stack package from the package manager and activate temporal anti-aliasing on the main camera. This will help remove a lot of the noise.

Usage

There are keyboard shortcuts to enable/disable SSRT, mapped to the following numbers:

  • 1 = SSRT On.
  • 2 = SSRT Off.
  • 3 = Indirect lighting with texture.
  • 4 = Indirect lighting only.
  • 5 = SSRT On with AO enabled also on direct lighting.
  • H = Set half resolution rendering.
  • F = Set full resolution rendering.

Properties

Sampling

  • Rotation Count: Number of directionnal rotations applied during sampling.
  • Step Count: Number of samples taken along one edge of the current conic slice. The total number of samples taken per pixel is rotationCount * stepCount * 2.
  • Radius: Effective sampling radius in world space. AO and GI can only have influence within that radius.
  • Exp Start / Exp Factor: Controls samples distribution. Exp Start is an initial multiplier on the step size, and Exp Factor is an exponent applied at each step. By using a start value < 1, and an exponent > 1, it's possible to get exponential step size.
  • Jitter Samples: Applies some noise on sample positions to hide the banding artifacts that can occur when there is undersampling.

GI

  • GI Boost: Intensity of the indirect diffuse light.
  • Light Buffer HDR: Using an HDR light buffer gives more accurate lighting but have an impact on performances.
  • Light Buffer Resolution: Using lower resolution light buffer can help performances but can accentuate aliasing.
  • LnDl Offset: Bypass the dot(lightNormal, lightDirection) weighting.
  • nDl Offset: Bypass the dot(normal, lightDirection) weighting.

Occlusion

  • Power: Power function applied to AO to make it appear darker/lighter.
  • Thickness: Constant thickness value of objects on the screen in world space. Is used to ignore occlusion past that thickness level, as if light can travel behind the object.
  • Falloff: Occlusion falloff relative to distance.
  • Multi Bounce AO: Multi-Bounce analytic approximation from GTAO.
  • Direct Lighting AO: Composite AO also on direct lighting.

Offscreen Fallback

  • Fallback Method: Ambient lighting to use. Off uses the Unity ambient lighting, but it's possible to use instead a static irradiance cubemap (pre-convolved), or render a cubemap around camera every frame (expensive).
  • Cubemap Fallback: Static irradiance cubemap to use if it's the chosen fallback.

Filters

  • Resolution Downscale: The resolution at which SSRT is computed. If lower than fullscreen the effect will be upscaled to fullscreen afterwards. Lower resolution can help performances but can also introduce more flickering/aliasing. Important: resolution needs to be divisible by 2 when using downscaling or it can introduce artifacts. Use a fixed resolution instead of free aspect.
  • Reuse Count: Number of neighbor pixel to reuse (helps reduce noise).
  • Temporal Enabled: Enable/Disable temporal reprojection.
  • Temporal Response: Controls the speed of the accumulation, slower accumulation is more effective at removing noise but can introduce ghosting.

Debug Mode

  • Debug Mode: View of the different SSRT buffers for debug purposes.
  • Light Only: If enabled will show only the radiance that affects the surface, if unchecked radiance will be multiplied by surface albedo.

Credits

The following code has been developed at CDRIN by Olivier Therrien as a R&D project on real-time global illumination.

cdrin

License

The SSRT code is under MIT license (See LICENSE file).

The Plaza model is made by patrix, is under CC Attribution-NonCommercial-ShareAlike license, and comes from here.

Acknowledgements

This project drew a lot of inspiration from the following work:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].