Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public struct AttributesMesh
public static FieldDescriptor instanceID = new FieldDescriptor(AttributesMesh.name, "instanceID", "", ShaderValueType.Uint,
"INSTANCEID_SEMANTIC", "UNITY_ANY_INSTANCING_ENABLED");
public static FieldDescriptor vertexID = new FieldDescriptor(AttributesMesh.name, "vertexID", "ATTRIBUTES_NEED_VERTEXID", ShaderValueType.Uint,
"SV_VertexID", subscriptOptions: StructFieldOptions.Optional);
"VERTEXID_SEMANTIC", subscriptOptions: StructFieldOptions.Optional);
}

public struct VaryingsMeshToPS
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ Pass
$AttributesMesh.uv2: #define ATTRIBUTES_NEED_TEXCOORD2
$AttributesMesh.uv3: #define ATTRIBUTES_NEED_TEXCOORD3
$AttributesMesh.color: #define ATTRIBUTES_NEED_COLOR
$AttributesMesh.vertexID: #define ATTRIBUTES_NEED_VERTEXID
$VaryingsMeshToPS.positionRWS: #define VARYINGS_NEED_POSITION_WS
$VaryingsMeshToPS.normalWS: #define VARYINGS_NEED_TANGENT_TO_WORLD
$VaryingsMeshToPS.texCoord0: #define VARYINGS_NEED_TEXCOORD0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ $Attributes.uv1: #define ATTRIBUTES_NEED_TEXCOORD1
$Attributes.uv2: #define ATTRIBUTES_NEED_TEXCOORD2
$Attributes.uv3: #define ATTRIBUTES_NEED_TEXCOORD3
$Attributes.color: #define ATTRIBUTES_NEED_COLOR
$Attributes.vertexID: #define ATTRIBUTES_NEED_VERTEXID
$Varyings.positionWS: #define VARYINGS_NEED_POSITION_WS
$Varyings.normalWS: #define VARYINGS_NEED_NORMAL_WS
$Varyings.tangentWS: #define VARYINGS_NEED_TANGENT_WS
Expand Down
3 changes: 3 additions & 0 deletions com.unity.shadergraph/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.

## [12.0.0] - 2021-01-11

### Added
- Stereo Eye Index, Instance ID, and Vertex ID nodes added to the shadergraph library.

### Changed
- Change Asset/Create/Shader/Blank Shader Graph to Asset/Create/Shader Graph/Blank Shader Graph
- Change Asset/Create/Shader/Sub Graph to Asset/Create/Shader Graph/Sub Graph
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
using System.Reflection;

namespace UnityEditor.ShaderGraph
{
[Title("Input", "Geometry", "Instance ID")]
class InstanceIDNode : CodeFunctionNode
{
public override bool hasPreview { get { return false; } }

public InstanceIDNode()
{
name = "Instance ID";
}

protected override MethodInfo GetFunctionToConvert()
{
return GetType().GetMethod("UnityGetInstanceID", BindingFlags.Static | BindingFlags.NonPublic);
}

static string UnityGetInstanceID([Slot(0, Binding.None)] out Vector1 Out)
{
return
@"
{
#if UNITY_ANY_INSTANCING_ENABLED
Out = unity_InstanceID;
#else
Out = 0;
#endif
}
";
}
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
using UnityEngine;
using UnityEditor.Graphing;

namespace UnityEditor.ShaderGraph
{
[Title("Input", "Geometry", "Vertex ID")]
class VertexIDNode : AbstractMaterialNode, IMayRequireVertexID
{
private const int kOutputSlotId = 0;
private const string kOutputSlotName = "Out";

public override bool hasPreview { get { return false; } }

public VertexIDNode()
{
name = "Vertex ID";
UpdateNodeAfterDeserialization();
}

public sealed override void UpdateNodeAfterDeserialization()
{
AddSlot(new Vector1MaterialSlot(kOutputSlotId, kOutputSlotName, kOutputSlotName, SlotType.Output, (int)0, ShaderStageCapability.Vertex));
RemoveSlotsNameNotMatching(new[] { kOutputSlotId });
}

public override string GetVariableNameForSlot(int slotId)
{
return string.Format("IN.{0}", ShaderGeneratorNames.VertexID);
}

public bool RequiresVertexID(ShaderStageCapability stageCapability)
{
return true;
}
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
using System.Reflection;

namespace UnityEditor.ShaderGraph
{
[Title("Input", "Scene", "Eye Index")]
class EyeIndexNode : CodeFunctionNode
{
public override bool hasPreview { get { return false; } }

public EyeIndexNode()
{
name = "Eye Index";
}

protected override MethodInfo GetFunctionToConvert()
{
return GetType().GetMethod("UnityGetEyeIndex", BindingFlags.Static | BindingFlags.NonPublic);
}

static string UnityGetEyeIndex([Slot(0, Binding.None)] out Vector1 Out)
{
return
@"
{
#if defined(UNITY_SINGLE_PASS_STEREO) || defined(UNITY_STEREO_INSTANCING_ENABLED) || defined(UNITY_STEREO_MULTIVIEW_ENABLED)
Out = unity_StereoEyeIndex;
#else
Out = 0;
#endif
}
";
}
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.