您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
42 行
2.9 KiB
42 行
2.9 KiB
using System;
|
|
|
|
namespace UnityEngine.Experimental.Rendering.HDPipeline
|
|
{
|
|
// In HD we don't expose HDRenderQueue instead we create as much value as needed in the enum for our different pass
|
|
// and use inspector to manipulate the value.
|
|
// In the case of transparent we want to use RenderQueue to help with sorting. We define a neutral value for the RenderQueue and priority going from -X to +X
|
|
// going from -X to +X instead of 0 to +X as builtin Unity is better for artists as they can decide late to sort behind or in front of the scene.
|
|
|
|
public class HDRenderQueue
|
|
{
|
|
public const int k_TransparentPriorityQueueRange = 100;
|
|
|
|
public enum Priority
|
|
{
|
|
Background = UnityEngine.Rendering.RenderQueue.Background,
|
|
Opaque = UnityEngine.Rendering.RenderQueue.Geometry,
|
|
OpaqueAlphaTest = UnityEngine.Rendering.RenderQueue.AlphaTest,
|
|
// Warning: we must not change Geometry last value to stay compatible with occlusion
|
|
OpaqueLast = UnityEngine.Rendering.RenderQueue.GeometryLast,
|
|
// For transparent pass we define a range of 200 value to define the priority
|
|
// Warning: Be sure no range are overlapping
|
|
PreRefractionFirst = 2750 - k_TransparentPriorityQueueRange,
|
|
PreRefraction = 2750,
|
|
PreRefractionLast = 2750 + k_TransparentPriorityQueueRange,
|
|
TransparentFirst = UnityEngine.Rendering.RenderQueue.Transparent - k_TransparentPriorityQueueRange,
|
|
Transparent = UnityEngine.Rendering.RenderQueue.Transparent,
|
|
TransparentLast = UnityEngine.Rendering.RenderQueue.Transparent + k_TransparentPriorityQueueRange,
|
|
Overlay = UnityEngine.Rendering.RenderQueue.Overlay
|
|
}
|
|
|
|
public static readonly RenderQueueRange k_RenderQueue_OpaqueNoAlphaTest = new RenderQueueRange { min = (int)Priority.Opaque, max = (int)Priority.OpaqueAlphaTest - 1 };
|
|
public static readonly RenderQueueRange k_RenderQueue_OpaqueAlphaTest = new RenderQueueRange { min = (int)Priority.OpaqueAlphaTest, max = (int)Priority.OpaqueLast };
|
|
public static readonly RenderQueueRange k_RenderQueue_AllOpaque = new RenderQueueRange { min = (int)Priority.Opaque, max = (int)Priority.OpaqueLast };
|
|
|
|
public static readonly RenderQueueRange k_RenderQueue_PreRefraction = new RenderQueueRange { min = (int)Priority.PreRefractionFirst, max = (int)Priority.PreRefractionLast };
|
|
public static readonly RenderQueueRange k_RenderQueue_Transparent = new RenderQueueRange { min = (int)Priority.TransparentFirst, max = (int)Priority.TransparentLast };
|
|
public static readonly RenderQueueRange k_RenderQueue_AllTransparent = new RenderQueueRange { min = (int)Priority.PreRefractionFirst, max = (int)Priority.TransparentLast };
|
|
|
|
public static readonly RenderQueueRange k_RenderQueue_All = new RenderQueueRange { min = 0, max = 5000 };
|
|
}
|
|
}
|