{ "introduction": """Welcome to the collection of Fullscreen Shaders Samples. Each of the effects instantiated by this script are Prefabs available for usage in the Fullscreen Samples folder. Fullscreen shaders can be used through different means : • Custom Pass configured through the Custom Pass Volume component can apply shaders over the screen or selected layers. • Custom Post Process to add custom-made post processing effects integrated to the Volume Profile system. • Custom Render Texture that are able to be updated at runtime with a shader. Those dynamic textures can be used for simulation or animated effects such as water ripples, rain, or footprints.""", "samples": [ { "title": "Edge Detection", "prefabName": "EdgeDetection_CustomPass", "description": """Fullscreen Custom Pass using a Shader Graph. The material performs a Robert Cross Edge Detection on the Scene Depth and Normal Buffers. The normal and depth buffer take place before Transparency in the rendering pipeline. It means that transparent objects won't be altered by this effect.""" }, { "title": "Highlight", "prefabName": "Highlight_CustomPass", "description": """Here objects are highlighted thanks to two passes. First objects inside the UI Layer are rendered with a single color onto the Custom Color Buffer.This color is changed per object through a C# script that edits Material Property Block. Then in a second Pass, a fullscreen shader uses the Custom Color Buffer to create the visual highlight seen on screen. """ }, { "title": "Sobel Filter", "prefabName": "SobelFilter_CustomPass", "description": """Fullscreen Custom Pass that uses a Shader Graph that performs a Sobel Filter on the Scene Color.""" }, { "title": "Speed Lines", "prefabName": "SpeedLines_CustomPass", "description": """This Fullscreen Custom Pass creates animated speed lines over the screen with Shader Graph.""" }, { "title": "Night Vision", "prefabName": "NightVision_CustomPass", "description": """Fullscreen Custom Pass using a Shader Graph to create a Night Vision filter. Its potential is seen while the scene has very low light values. Change the scene lighting to night by reorienting the Sun.""" }, { "title": "Custom Sky Cubemap", "prefabName": "NightSky_CustomHDRi", "description": """A Shader Graph is used to render the artistic look of a night sky on a cubemap. The cubemap is then used by the HDRi Sky Override on a Volume Profile. A C# script links the directional light to the Moon position.""" }, { "title": "Rain on Camera", "prefabName": "RainOnCamera_CustomPass", "description": """The rain animation is created using two Shader Graphs. The first one is responsible for creating a rain droplet texture that is stored as a Double Buffered Custom Render Target. The second one then uses this texture to create the final effect and is connected to a Fullscreen Custom Pass. To note : while in editor and outside of runtime, the double buffered Render Target update timing is not consistant. """ }, { "title": "Colorblindness", "prefabName": "Colorblindness_VolumeProfile", "description": """Filter that simulates types of Colorblindness. The filter needs to be applied to the final color of the render, after Tonemapping or any other color grading. This is done in Shader Graph by using PostProcessInput of the HDSampleBuffer node, which is only available after Post Process. It means a new Post Process for the Volume Profile needs to be created. Custom Post Processes are created through C# script, see Colorblindness.cs. This custom post process needs to be added to the HDRP Global settings : (Custom Post Process Orders > After Post Process) otherwise HDRP won't recognize it.Then, Colorblindness will be available as a new Override for Volume Profile under Post-Processing>Custom.""" } ] }