diff --git a/com.unity.shadergraph/Editor/Data/Nodes/Input/Scene/LODFadeNode.cs b/com.unity.shadergraph/Editor/Data/Nodes/Input/Scene/LODFadeNode.cs new file mode 100644 index 00000000000..7cc9f638bba --- /dev/null +++ b/com.unity.shadergraph/Editor/Data/Nodes/Input/Scene/LODFadeNode.cs @@ -0,0 +1,41 @@ +using System.Linq; +using UnityEngine; +using UnityEditor.Graphing; +using UnityEditor.ShaderGraph.Drawing.Controls; +using UnityEditor.ShaderGraph.Internal; + +namespace UnityEditor.ShaderGraph +{ + [Title("Input", "Geometry", "LOD Fade")] + class LODFadeNode : AbstractMaterialNode, IGeneratesBodyCode + { + public const int OutputSlotFadeId = 0; + public const int OutputSlotQuantizedId = 1; + const string kOutputSlotFadeName = "Fade"; + const string kOutputSlotQuantizedName = "Quantized Fade"; + + + public override bool hasPreview { get { return false; } } + + public LODFadeNode() + { + name = "LOD Fade"; + synonyms = new string[] { "fade", "disolve", "cross fade", "blend", "level of detail" }; + UpdateNodeAfterDeserialization(); + } + + public sealed override void UpdateNodeAfterDeserialization() + { + AddSlot(new Vector1MaterialSlot(OutputSlotFadeId, kOutputSlotFadeName, kOutputSlotFadeName, SlotType.Output, 0, ShaderStageCapability.All)); + AddSlot(new Vector1MaterialSlot(OutputSlotQuantizedId, kOutputSlotQuantizedName, kOutputSlotQuantizedName, SlotType.Output, 0, ShaderStageCapability.All)); + RemoveSlotsNameNotMatching(new[] { OutputSlotFadeId, OutputSlotQuantizedId }); + } + + // Node generations + public virtual void GenerateNodeCode(ShaderStringBuilder sb, GenerationMode generationMode) + { + sb.AppendLine(string.Format("$precision {0} = unity_LODFade.x;", GetVariableNameForSlot(OutputSlotFadeId))); + sb.AppendLine(string.Format("$precision {0} = unity_LODFade.y;", GetVariableNameForSlot(OutputSlotQuantizedId))); + } + } +} diff --git a/com.unity.shadergraph/Editor/Data/Nodes/Input/Scene/LODFadeNode.cs.meta b/com.unity.shadergraph/Editor/Data/Nodes/Input/Scene/LODFadeNode.cs.meta new file mode 100644 index 00000000000..6ba1fac7056 --- /dev/null +++ b/com.unity.shadergraph/Editor/Data/Nodes/Input/Scene/LODFadeNode.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9860582b27843c04d9bffac2de94bb16 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: