@@ -16,11 +16,17 @@ class WaterFxPass : ScriptableRenderPass
16
16
private readonly ShaderTagId m_WaterFXShaderTag = new ShaderTagId ( "WaterFX" ) ;
17
17
private readonly Color m_ClearColor = new Color ( 0.0f , 0.5f , 0.5f , 0.5f ) ; //r = foam mask, g = normal.x, b = normal.z, a = displacement
18
18
private FilteringSettings m_FilteringSettings ;
19
+ #if UNITY_2022_1_OR_NEWER
20
+ private RTHandle m_WaterFX = RTHandles . Alloc ( BuiltinRenderTextureType . CameraTarget , "_WaterFXMap" ) ;
21
+ #else
19
22
private RenderTargetHandle m_WaterFX = RenderTargetHandle . CameraTarget ;
23
+ #endif
20
24
21
25
public WaterFxPass ( )
22
26
{
27
+ #if ! UNITY_2022_1_OR_NEWER
23
28
m_WaterFX . Init ( "_WaterFXMap" ) ;
29
+ #endif
24
30
// only wanting to render transparent objects
25
31
m_FilteringSettings = new FilteringSettings ( RenderQueueRange . transparent ) ;
26
32
}
@@ -36,8 +42,13 @@ public override void Configure(CommandBuffer cmd, RenderTextureDescriptor camera
36
42
// default format TODO research usefulness of HDR format
37
43
cameraTextureDescriptor . colorFormat = RenderTextureFormat . Default ;
38
44
// get a temp RT for rendering into
45
+ #if UNITY_2022_1_OR_NEWER
46
+ cmd . GetTemporaryRT ( Shader . PropertyToID ( m_WaterFX . name ) , cameraTextureDescriptor , FilterMode . Bilinear ) ;
47
+ ConfigureTarget ( m_WaterFX ) ;
48
+ #else
39
49
cmd . GetTemporaryRT ( m_WaterFX . id , cameraTextureDescriptor , FilterMode . Bilinear ) ;
40
50
ConfigureTarget ( m_WaterFX . Identifier ( ) ) ;
51
+ #endif
41
52
// clear the screen with a specific color for the packed data
42
53
ConfigureClear ( ClearFlag . Color , m_ClearColor ) ;
43
54
}
@@ -55,7 +66,13 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData
55
66
SortingCriteria . CommonTransparent ) ;
56
67
57
68
// draw all the renderers matching the rules we setup
69
+ #if UNITY_2022_1_OR_NEWER
70
+ var param = new RendererListParams ( renderingData . cullResults , drawSettings , m_FilteringSettings ) ;
71
+ var rendererList = context . CreateRendererList ( ref param ) ;
72
+ cmd . DrawRendererList ( rendererList ) ;
73
+ #else
58
74
context . DrawRenderers ( renderingData . cullResults , ref drawSettings , ref m_FilteringSettings ) ;
75
+ #endif
59
76
}
60
77
context . ExecuteCommandBuffer ( cmd ) ;
61
78
CommandBufferPool . Release ( cmd ) ;
@@ -64,7 +81,11 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData
64
81
public override void OnCameraCleanup ( CommandBuffer cmd )
65
82
{
66
83
// since the texture is used within the single cameras use we need to cleanup the RT afterwards
84
+ #if UNITY_2022_1_OR_NEWER
85
+ cmd . ReleaseTemporaryRT ( Shader . PropertyToID ( m_WaterFX . name ) ) ;
86
+ #else
67
87
cmd . ReleaseTemporaryRT ( m_WaterFX . id ) ;
88
+ #endif
68
89
}
69
90
}
70
91
0 commit comments