您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
140 行
3.7 KiB
140 行
3.7 KiB
using System;
|
|
using UnityEngine;
|
|
|
|
namespace UnityEditor.ShaderGraph
|
|
{
|
|
[Serializable]
|
|
public class SurfaceMaterialOptions
|
|
{
|
|
public enum BlendMode
|
|
{
|
|
One,
|
|
Zero,
|
|
SrcColor,
|
|
SrcAlpha,
|
|
DstColor,
|
|
DstAlpha,
|
|
OneMinusSrcColor,
|
|
OneMinusSrcAlpha,
|
|
OneMinusDstColor,
|
|
OneMinusDstAlpha,
|
|
}
|
|
|
|
public enum CullMode
|
|
{
|
|
Back,
|
|
Front,
|
|
Off
|
|
}
|
|
|
|
public enum ZTest
|
|
{
|
|
Less,
|
|
Greater,
|
|
LEqual,
|
|
GEqual,
|
|
Equal,
|
|
NotEqual,
|
|
Always
|
|
}
|
|
|
|
public enum ZWrite
|
|
{
|
|
On,
|
|
Off
|
|
}
|
|
|
|
public enum RenderQueue
|
|
{
|
|
Background,
|
|
Geometry,
|
|
Transparent,
|
|
Overlay,
|
|
}
|
|
|
|
public enum RenderType
|
|
{
|
|
Opaque,
|
|
Transparent,
|
|
TransparentCutout,
|
|
Background,
|
|
Overlay
|
|
}
|
|
|
|
[SerializeField]
|
|
private BlendMode m_SrcBlend = BlendMode.One;
|
|
|
|
[SerializeField]
|
|
private BlendMode m_DstBlend = BlendMode.Zero;
|
|
|
|
[SerializeField]
|
|
private CullMode m_CullMode = CullMode.Back;
|
|
|
|
[SerializeField]
|
|
private ZTest m_ZTest = ZTest.LEqual;
|
|
|
|
[SerializeField]
|
|
private ZWrite m_ZWrite = ZWrite.On;
|
|
|
|
[SerializeField]
|
|
private RenderQueue m_RenderQueue = RenderQueue.Geometry;
|
|
|
|
[SerializeField]
|
|
private RenderType m_RenderType = RenderType.Opaque;
|
|
|
|
[SerializeField]
|
|
private int m_LOD = 200;
|
|
|
|
public void Init()
|
|
{
|
|
srcBlend = BlendMode.One;
|
|
dstBlend = BlendMode.Zero;
|
|
cullMode = CullMode.Back;
|
|
zTest = ZTest.LEqual;
|
|
zWrite = ZWrite.On;
|
|
renderQueue = RenderQueue.Geometry;
|
|
renderType = RenderType.Opaque;
|
|
lod = 200;
|
|
}
|
|
|
|
public void GetTags(ShaderStringBuilder builder)
|
|
{
|
|
builder.AppendLine("Tags");
|
|
using (builder.BlockScope())
|
|
{
|
|
builder.AppendLine(@"""RenderPipeline""=""HDRenderPipeline""");
|
|
builder.AppendLine("\"RenderType\"=\"{0}\"", renderType);
|
|
builder.AppendLine("\"Queue\"=\"{0}\"", renderQueue);
|
|
}
|
|
}
|
|
|
|
public void GetBlend(ShaderStringBuilder builder)
|
|
{
|
|
builder.AppendLine("Blend {0} {1}", srcBlend, dstBlend);
|
|
}
|
|
|
|
public void GetCull(ShaderStringBuilder builder)
|
|
{
|
|
builder.AppendLine("Cull {0}", cullMode);
|
|
}
|
|
|
|
public void GetDepthWrite(ShaderStringBuilder builder)
|
|
{
|
|
builder.AppendLine("ZWrite {0}", zWrite);
|
|
}
|
|
|
|
public void GetDepthTest(ShaderStringBuilder builder)
|
|
{
|
|
builder.AppendLine("ZTest {0}", zTest);
|
|
}
|
|
|
|
public BlendMode srcBlend { get { return m_SrcBlend; } set { m_SrcBlend = value; } }
|
|
public BlendMode dstBlend { get { return m_DstBlend; } set { m_DstBlend = value; } }
|
|
public CullMode cullMode { get { return m_CullMode; } set { m_CullMode = value; } }
|
|
public ZTest zTest { get { return m_ZTest; } set { m_ZTest = value; } }
|
|
public ZWrite zWrite { get { return m_ZWrite; } set { m_ZWrite = value; } }
|
|
public RenderQueue renderQueue { get { return m_RenderQueue; } set { m_RenderQueue = value; } }
|
|
public RenderType renderType { get { return m_RenderType; } set { m_RenderType = value; } }
|
|
public int lod { get { return m_LOD; } set { m_LOD = value; } }
|
|
}
|
|
}
|