您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
146 行
3.9 KiB
146 行
3.9 KiB
namespace UnityEngine.Experimental.Rendering.LowendMobile
|
|
{
|
|
public enum ShadowCascades
|
|
{
|
|
NO_CASCADES = 1,
|
|
TWO_CASCADES = 2,
|
|
FOUR_CASCADES = 4,
|
|
}
|
|
|
|
public enum ShadowType
|
|
{
|
|
NO_SHADOW = 0,
|
|
HARD_SHADOWS,
|
|
SOFT_SHADOWS,
|
|
}
|
|
|
|
public enum ShadowResolution
|
|
{
|
|
_512 = 512,
|
|
_1024 = 1024,
|
|
_2048 = 2048
|
|
}
|
|
|
|
public class LowEndMobilePipelineAsset : RenderPipelineAsset
|
|
{
|
|
#region AssetAndPipelineCreation
|
|
|
|
#if UNITY_EDITOR
|
|
[UnityEditor.MenuItem("RenderPipeline/LowEndMobilePipeline/Create Pipeline Asset")]
|
|
static void CreateLowEndPipeline()
|
|
{
|
|
var instance = ScriptableObject.CreateInstance<LowEndMobilePipelineAsset>();
|
|
UnityEditor.AssetDatabase.CreateAsset(instance,
|
|
"Assets/LowEndMobilePipeline/LowEndMobilePipelineAsset.asset");
|
|
}
|
|
|
|
#endif
|
|
|
|
protected override IRenderPipeline InternalCreatePipeline()
|
|
{
|
|
return new LowEndMobilePipeline(this);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region PipelineAssetSettings
|
|
|
|
[SerializeField] private int m_MaxPixelLights = 1;
|
|
|
|
[SerializeField] private bool m_SupportsVertexLight = true;
|
|
|
|
[SerializeField] private bool m_EnableLightmaps = true;
|
|
|
|
[SerializeField] private bool m_EnableAmbientProbe = true;
|
|
|
|
[SerializeField] private ShadowType m_ShadowType = ShadowType.HARD_SHADOWS;
|
|
|
|
[SerializeField] private ShadowResolution m_ShadowAtlasResolution = ShadowResolution._1024;
|
|
|
|
[SerializeField] private float m_ShadowNearPlaneOffset = 2.0f;
|
|
|
|
[SerializeField] private float m_ShadowDistance = 50.0f;
|
|
|
|
[SerializeField] private float m_ShadowBias = 0.0005f;
|
|
|
|
[SerializeField] private ShadowCascades m_ShadowCascades = ShadowCascades.NO_CASCADES;
|
|
|
|
[SerializeField] private float m_Cascade2Split = 0.25f;
|
|
|
|
[SerializeField] private Vector3 m_Cascade4Split = new Vector3(0.067f, 0.2f, 0.467f);
|
|
|
|
public int MaxSupportedPixelLights
|
|
{
|
|
get { return m_MaxPixelLights; }
|
|
private set { m_MaxPixelLights = value; }
|
|
}
|
|
|
|
public bool SupportsVertexLight
|
|
{
|
|
get { return m_SupportsVertexLight; }
|
|
private set { m_SupportsVertexLight = value; }
|
|
}
|
|
|
|
public bool EnableLightmap
|
|
{
|
|
get { return m_EnableLightmaps; }
|
|
private set { m_EnableLightmaps = value; }
|
|
}
|
|
|
|
public bool EnableAmbientProbe
|
|
{
|
|
get { return m_EnableAmbientProbe; }
|
|
private set { m_EnableAmbientProbe = value; }
|
|
}
|
|
|
|
public ShadowType CurrShadowType
|
|
{
|
|
get { return m_ShadowType; }
|
|
private set { m_ShadowType = value; }
|
|
}
|
|
|
|
public int ShadowAtlasResolution
|
|
{
|
|
get { return (int)m_ShadowAtlasResolution; }
|
|
private set { m_ShadowAtlasResolution = (ShadowResolution)value; }
|
|
}
|
|
|
|
public float ShadowNearOffset
|
|
{
|
|
get { return m_ShadowNearPlaneOffset; }
|
|
private set { m_ShadowNearPlaneOffset = value; }
|
|
}
|
|
|
|
public float ShadowDistance
|
|
{
|
|
get { return m_ShadowDistance; }
|
|
private set { m_ShadowDistance = value; }
|
|
}
|
|
|
|
public float ShadowBias
|
|
{
|
|
get { return m_ShadowBias; }
|
|
private set { m_ShadowBias = value; }
|
|
}
|
|
|
|
public int CascadeCount
|
|
{
|
|
get { return (int)m_ShadowCascades; }
|
|
private set { m_ShadowCascades = (ShadowCascades)value; }
|
|
}
|
|
|
|
public float Cascade2Split
|
|
{
|
|
get { return m_Cascade2Split; }
|
|
private set { m_Cascade2Split = value; }
|
|
}
|
|
|
|
public Vector3 Cascade4Split
|
|
{
|
|
get { return m_Cascade4Split; }
|
|
private set { m_Cascade4Split = value; }
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|