Skip to content

Commit 8eb561c

Browse files
julienf-unityiTris666
authored andcommitted
Remove irrelevant render queues from some HDRP outputs (#263)
* Remove AfterPostProcessing render queue for lit outputs * Remove render queue field from distortion outputs * Update changelog * Update HDRP changelog instead of VFX * Fix issue when converting outputs with invalid render queue # Conflicts: # com.unity.render-pipelines.high-definition/CHANGELOG.md
1 parent 036ccba commit 8eb561c

File tree

2 files changed

+43
-6
lines changed

2 files changed

+43
-6
lines changed

com.unity.render-pipelines.high-definition/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,7 @@ The version number for this package has increased due to a version update of a r
318318
- Fixed missing initialization of input params in Blit for VR.
319319
- Fix Inf source in LTC for area lights.
320320
- Fix supported Mac platform detection to handle new major version (11.0) properly
321+
- VFX: Removed irrelevant queues in render queue selection from HDRP outputs
321322

322323
### Changed
323324
- Hide unused LOD settings in Quality Settings legacy window.

com.unity.render-pipelines.high-definition/Editor/VFXGraph/VFXHDRPSubOutput.cs

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,7 @@ class VFXHDRPSubOutput : VFXSRPSubOutput
1414
public OpaqueRenderQueue opaqueRenderQueue = OpaqueRenderQueue.Default;
1515

1616
[VFXSetting(VFXSettingAttribute.VisibleFlags.InInspector), Header("HDRP"), Tooltip("Specifies when in the render queue particles are drawn. This is useful for drawing particles behind refractive surfaces like frosted glass, for performance gains by rendering them in low resolution, or to draw particles after post processing so they are not affected by effects such as Depth of Field.")]
17-
public TransparentRenderQueue transparentRenderQueue = TransparentRenderQueue.Default;
18-
19-
20-
17+
public TransparentRenderQueue transparentRenderQueue = TransparentRenderQueue.Default;
2118

2219
// Caps
2320
public override bool supportsExposure { get { return true; } }
@@ -37,17 +34,56 @@ protected override IEnumerable<string> filteredOutSettings
3734
{
3835
get
3936
{
40-
if (owner.isBlendModeOpaque)
37+
if (!supportsQueueSelection)
38+
{
39+
yield return "transparentRenderQueue";
40+
yield return "opaqueRenderQueue";
41+
}
42+
else if (owner.isBlendModeOpaque)
4143
yield return "transparentRenderQueue";
4244
else
4345
yield return "opaqueRenderQueue";
4446
}
4547
}
4648

49+
protected override void OnSettingModified(VFXSetting setting)
50+
{
51+
base.OnSettingModified(setting);
52+
// Reset to default if render queue is invalid
53+
if (setting.name == "transparentRenderQueue")
54+
{
55+
if (!supportsQueueSelection || (isLit && transparentRenderQueue == TransparentRenderQueue.AfterPostProcessing))
56+
transparentRenderQueue = TransparentRenderQueue.Default;
57+
}
58+
else if (setting.name == "opaqueRenderQueue")
59+
{
60+
if (!supportsQueueSelection || (isLit && opaqueRenderQueue == OpaqueRenderQueue.AfterPostProcessing))
61+
opaqueRenderQueue = OpaqueRenderQueue.Default;
62+
}
63+
}
64+
65+
protected bool isLit => owner is VFXAbstractParticleHDRPLitOutput;
66+
protected bool supportsQueueSelection => !(owner is VFXAbstractDistortionOutput); // TODO Should be made in a more abstract way
67+
68+
public override IEnumerable<int> GetFilteredOutEnumerators(string name)
69+
{
70+
if (isLit)
71+
{
72+
switch (name)
73+
{
74+
case "opaqueRenderQueue":
75+
yield return (int)OpaqueRenderQueue.AfterPostProcessing;
76+
break;
77+
case "transparentRenderQueue":
78+
yield return (int)TransparentRenderQueue.AfterPostProcessing;
79+
break;
80+
}
81+
}
82+
}
83+
4784
public override string GetBlendModeStr()
4885
{
4986
bool isOffscreen = transparentRenderQueue == TransparentRenderQueue.LowResolution || transparentRenderQueue == TransparentRenderQueue.AfterPostProcessing;
50-
bool isLit = owner is VFXAbstractParticleHDRPLitOutput;
5187
switch (owner.blendMode)
5288
{
5389
case BlendMode.Additive:

0 commit comments

Comments
 (0)