The example on this page shows how to use the Full Screen Render Pass Renderer Feature to create a grayscale custom post-processingA process that improves product visuals by applying filters and effects before the image appears on screen. You can use post-processing effects to simulate physical camera and film properties, for example Bloom and Depth of Field. More info post processing, postprocessing, postprocess
See in Glossary effect.
For more information on the Full Screen Render Pass Renderer Feature, refer to the Full Screen Pass Renderer Feature reference.
This example requires the following:
A Unity project with the URP package installed.
The Scriptable Render Pipeline Settings property refers to a URP asset (Edit > Project Settings > Graphics > Pipeline Specific Settings).
You must create a Fullscreen ShaderA program that runs on the GPU. More info
See in Glossary Graph to create a custom post-processing effect.
Create a new Shader Graph in your Project. To do this right-click in the Project window and select Create > Shader Graph > URP > Fullscreen Shader Graph.
Add a URP Sample Buffer node. To do this right-click in the Shader Graph window, and select Create Node. Then locate and select URP Sample Buffer.
In the URP Sample Buffer node’s Source Buffer dropdown menu, select BlitA shorthand term for “bit block transfer”. A blit operation is the process of transferring blocks of data from one place in memory to another.
See in Glossary Source.
Add a Vector 3 node.
Add a Dot Product node.
Connect the nodes as shown below.
Node | Connection |
---|---|
URP Sample Buffer | Output to Dot Product A |
Vector 3 | Out to Dot Product B |
Dot Product | Out to Fragment Base Color |
Save your Shader Graph.
Create a new Material in your Project. To do this right-click in the Project window and select Create > Material.
Apply the Shader Graph shader to the Material. To do this, open the Material in the Inspector and select Shader > Shader Graphs, then select the Shader Graph you created in the previous steps.
Once you’ve created a compatible Shader Graph and Material, you can use the Material with a Full Screen Pass Renderer Feature to create a custom post-processing effect.
Select your project’s Universal Renderer.
If you created your project using the Universal 3D template, you can find the Universal Renderers in the following project folder: Assets > Settings > Renderers.
In the InspectorA Unity window that displays information about the currently selected GameObject, asset or project settings, allowing you to inspect and edit the values. More info
See in Glossary, click Add Renderer Feature and select Full Screen Pass Renderer Feature. For more information on adding Renderer Features refer to How to add a Renderer Feature to a Renderer.
Set the Pass Material field to the Material you created with the Fullscreen Shader Graph.
Set Injection Point to After Rendering Post Processing.
Set Requirements to Color.
You should now notice the effect in both SceneA Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info
See in Glossary view and Game view.
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.