您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
58 行
2.6 KiB
58 行
2.6 KiB
using System;
|
|
using UnityEngine.Graphing;
|
|
|
|
namespace UnityEngine.MaterialGraph
|
|
{
|
|
[Serializable]
|
|
public class PBRSpecularLightFunction : BaseLightFunction
|
|
{
|
|
public const string kAlbedoSlotName = "Albedo";
|
|
public const string kSpecularSlotName = "Specular";
|
|
public const string kEmissionSlotName = "Emission";
|
|
public const string kSmoothnessSlotName = "Smoothness";
|
|
public const string kOcclusionSlotName = "Occlusion";
|
|
public const string kAlphaSlotName = "Alpha";
|
|
|
|
public const int kAlbedoSlotId = 0;
|
|
public const int kSpecularSlotId = 2;
|
|
public const int kEmissionSlotId = 3;
|
|
public const int kSmoothnessSlotId = 4;
|
|
public const int kOcclusionSlotId = 5;
|
|
public const int kAlphaSlotId = 6;
|
|
|
|
public override string lightFunctionName
|
|
{
|
|
get { return "StandardSpecular"; }
|
|
}
|
|
|
|
public override string surfaceOutputStructureName
|
|
{
|
|
get { return "SurfaceOutputStandardSpecular"; }
|
|
}
|
|
|
|
public override void DoSlotsForConfiguration(PixelShaderNode node)
|
|
{
|
|
node.AddSlot(new MaterialSlot(kAlbedoSlotId, kAlbedoSlotName, kAlbedoSlotName, SlotType.Input, SlotValueType.Vector3, Vector4.zero));
|
|
node.AddSlot(new MaterialSlot(NormalSlotId, kNormalSlotName, kNormalSlotName, SlotType.Input, SlotValueType.Vector3, Vector4.zero));
|
|
node.AddSlot(new MaterialSlot(kSpecularSlotId, kSpecularSlotName, kSpecularSlotName, SlotType.Input, SlotValueType.Vector3, Vector4.zero));
|
|
node.AddSlot(new MaterialSlot(kEmissionSlotId, kEmissionSlotName, kEmissionSlotName, SlotType.Input, SlotValueType.Vector3, Vector4.zero));
|
|
node.AddSlot(new MaterialSlot(kSmoothnessSlotId, kSmoothnessSlotName, kSmoothnessSlotName, SlotType.Input, SlotValueType.Vector1, Vector4.zero));
|
|
node.AddSlot(new MaterialSlot(kOcclusionSlotId, kOcclusionSlotName, kOcclusionSlotName, SlotType.Input, SlotValueType.Vector1, Vector4.zero));
|
|
node.AddSlot(new MaterialSlot(kAlphaSlotId, kAlphaSlotName, kAlphaSlotName, SlotType.Input, SlotValueType.Vector1, Vector4.zero));
|
|
|
|
// clear out slot names that do not match the slots
|
|
// we support
|
|
node.RemoveSlotsNameNotMatching(
|
|
new[]
|
|
{
|
|
kAlbedoSlotId,
|
|
NormalSlotId,
|
|
kSpecularSlotId,
|
|
kEmissionSlotId,
|
|
kSmoothnessSlotId,
|
|
kOcclusionSlotId,
|
|
kAlphaSlotId
|
|
});
|
|
}
|
|
}
|
|
}
|