Temporal Anti-Alasing for Unity’s Universal Render Pipeline
This Temporal Anti-Aliasing package provides Temporal Anti-Aliasing for Unity's Universal Render Pipeline. It jitters the camera's projection before the whole rendering process, which can samples differant surfaces between adjacent frames. Temporal Anti-Aliasing pass can then be enabled to smooth the to achieve better band-limiting image after the transparent rendering with the provided Temporal Anti-Aliasing Volume Component for Scriptable Render Pipeline's Volume system, supported by default in Universal Render Pipeline.
Instructions
- Open your project manifest file (
MyProject/Packages/manifest.json
). - Add
"com.xienaiwen.taa": "https://github.com/sienaiwun/TAA_Unity_URP.git",
to thedependencies
list. - Open or focus on Unity Editor to resolve packages.
- Enable "Depth Texture" in the pipeline asset.
- Add TAAFeature in the render's asset settting.
- Add "Temporal Anti-Aliasing" Component in the Post-process Vilome and set the "feedback" param to more than 0.
Requirements
- Unity 2019.3.0f3 or higher.
Motivations
Unity's default Temporal Anti-Aliasing(TAA) has some problems in Universal Render Pipeline (URP). Natively, URP does not support TAA while Unity PostProcess V2 does support. However, PostProcess V2's support fails for TAA because it cannot jitter the camera in the ScriptableRenderPipeline [PostProcessLayer.cs] line:996(https://github.com/Unity-Technologies/PostProcessing/blob/v2/PostProcessing/Runtime/PostProcessLayer.cs) In the Frame Analysis, we also find there is no jitter in the native PostProcess V2 TAA pass.
Result (4x scale ZoomIn)
FXAA:
MSAA2x: