Skip to content
This repository was archived by the owner on Nov 30, 2020. It is now read-only.

Commit 9faa469

Browse files
committed
Changed motion blur effect to support dynamic resolution in version 2018.4 and earlier.
1 parent 49af5e0 commit 9faa469

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

PostProcessing/Runtime/Effects/MotionBlur.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ public override void Render(PostProcessRenderContext context)
7474
var packedRTFormat = RenderTextureFormat.ARGB2101010.IsSupported()
7575
? RenderTextureFormat.ARGB2101010
7676
: RenderTextureFormat.ARGB32;
77+
#if !UNITY_2019_1_OR_NEWER
78+
bool useDynamicRes = context.camera.allowDynamicResolution;
79+
#endif
7780

7881
var sheet = context.propertySheets.Get(context.resources.shaders.motionBlur);
7982
cmd.BeginSample("MotionBlur");
@@ -93,23 +96,35 @@ public override void Render(PostProcessRenderContext context)
9396

9497
int vbuffer = ShaderIDs.VelocityTex;
9598
var rtDesc = context.GetDescriptor(0, packedRTFormat, RenderTextureReadWrite.Linear);
99+
#if UNITY_2019_1_OR_NEWER
96100
cmd.GetTemporaryRT(vbuffer, rtDesc, FilterMode.Point);
101+
#else
102+
cmd.GetTemporaryRT(vbuffer, rtDesc.width, rtDesc.height, rtDesc.depthBufferBits, FilterMode.Point, rtDesc.colorFormat, RenderTextureReadWrite.Linear, rtDesc.msaaSamples, rtDesc.enableRandomWrite, rtDesc.memoryless, useDynamicRes);
103+
#endif
97104
cmd.BlitFullscreenTriangle(BuiltinRenderTextureType.None, vbuffer, sheet, (int)Pass.VelocitySetup);
98105

99106
// Pass 2 - First TileMax filter (1/2 downsize)
100107
int tile2 = ShaderIDs.Tile2RT;
101108
rtDesc = context.GetDescriptor(0, vectorRTFormat, RenderTextureReadWrite.Linear);
102109
rtDesc.width = context.width / 2;
103110
rtDesc.height = context.height / 2;
111+
#if UNITY_2019_1_OR_NEWER
104112
cmd.GetTemporaryRT(tile2, rtDesc, FilterMode.Point);
113+
#else
114+
cmd.GetTemporaryRT(tile2, rtDesc.width, rtDesc.height, rtDesc.depthBufferBits, FilterMode.Point, rtDesc.colorFormat, RenderTextureReadWrite.Linear, rtDesc.msaaSamples, rtDesc.enableRandomWrite, rtDesc.memoryless, useDynamicRes);
115+
#endif
105116
cmd.BlitFullscreenTriangle(vbuffer, tile2, sheet, (int)Pass.TileMax1);
106117

107118
// Pass 3 - Second TileMax filter (1/2 downsize)
108119
int tile4 = ShaderIDs.Tile4RT;
109120
rtDesc = context.GetDescriptor(0, vectorRTFormat, RenderTextureReadWrite.Linear);
110121
rtDesc.width = context.width / 4;
111122
rtDesc.height = context.height / 4;
123+
#if UNITY_2019_1_OR_NEWER
112124
cmd.GetTemporaryRT(tile4, rtDesc, FilterMode.Point);
125+
#else
126+
cmd.GetTemporaryRT(tile4, rtDesc.width, rtDesc.height, rtDesc.depthBufferBits, FilterMode.Point, rtDesc.colorFormat, RenderTextureReadWrite.Linear, rtDesc.msaaSamples, rtDesc.enableRandomWrite, rtDesc.memoryless, useDynamicRes);
127+
#endif
113128
cmd.BlitFullscreenTriangle(tile2, tile4, sheet, (int)Pass.TileMax2);
114129
cmd.ReleaseTemporaryRT(tile2);
115130

@@ -118,7 +133,11 @@ public override void Render(PostProcessRenderContext context)
118133
rtDesc = context.GetDescriptor(0, vectorRTFormat, RenderTextureReadWrite.Linear);
119134
rtDesc.width = context.width / 8;
120135
rtDesc.height = context.height / 8;
136+
#if UNITY_2019_1_OR_NEWER
121137
cmd.GetTemporaryRT(tile8, rtDesc, FilterMode.Point);
138+
#else
139+
cmd.GetTemporaryRT(tile8, rtDesc.width, rtDesc.height, rtDesc.depthBufferBits, FilterMode.Point, rtDesc.colorFormat, RenderTextureReadWrite.Linear, rtDesc.msaaSamples, rtDesc.enableRandomWrite, rtDesc.memoryless, useDynamicRes);
140+
#endif
122141
cmd.BlitFullscreenTriangle(tile4, tile8, sheet, (int)Pass.TileMax2);
123142
cmd.ReleaseTemporaryRT(tile4);
124143

@@ -131,7 +150,11 @@ public override void Render(PostProcessRenderContext context)
131150
rtDesc = context.GetDescriptor(0, vectorRTFormat, RenderTextureReadWrite.Linear);
132151
rtDesc.width = context.width / tileSize;
133152
rtDesc.height = context.height / tileSize;
153+
#if UNITY_2019_1_OR_NEWER
134154
cmd.GetTemporaryRT(tile, rtDesc, FilterMode.Point);
155+
#else
156+
cmd.GetTemporaryRT(tile, rtDesc.width, rtDesc.height, rtDesc.depthBufferBits, FilterMode.Point, rtDesc.colorFormat, RenderTextureReadWrite.Linear, rtDesc.msaaSamples, rtDesc.enableRandomWrite, rtDesc.memoryless, useDynamicRes);
157+
#endif
135158
cmd.BlitFullscreenTriangle(tile8, tile, sheet, (int)Pass.TileMaxV);
136159
cmd.ReleaseTemporaryRT(tile8);
137160

@@ -142,7 +165,11 @@ public override void Render(PostProcessRenderContext context)
142165
int neighborMaxHeight = context.height / tileSize;
143166
rtDesc.width = neighborMaxWidth;
144167
rtDesc.height = neighborMaxHeight;
168+
#if UNITY_2019_1_OR_NEWER
145169
cmd.GetTemporaryRT(neighborMax, rtDesc, FilterMode.Point);
170+
#else
171+
cmd.GetTemporaryRT(neighborMax, rtDesc.width, rtDesc.height, rtDesc.depthBufferBits, FilterMode.Point, rtDesc.colorFormat, RenderTextureReadWrite.Linear, rtDesc.msaaSamples, rtDesc.enableRandomWrite, rtDesc.memoryless, useDynamicRes);
172+
#endif
146173
cmd.BlitFullscreenTriangle(tile, neighborMax, sheet, (int)Pass.NeighborMax);
147174
cmd.ReleaseTemporaryRT(tile);
148175

0 commit comments

Comments
 (0)