浏览代码

Merge branch 'hackweek2017' of https://github.com/stramit/MaterialGraph into hackweek2017

/main
Eduardo Chaves 7 年前
当前提交
91c14c31
共有 222 个文件被更改,包括 1369 次插入52 次删除
  1. 2
      MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Presenters/MaterialGraphPresenter.cs
  2. 8
      MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Presenters/LevelsNodePresenter.cs
  3. 6
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/UV/UVPannerNode.cs
  4. 6
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Adjustments/ContrastNode.cs
  5. 6
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Adjustments/SaturationNode.cs
  6. 6
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Conversion/RGBtoLuminanceNode.cs
  7. 2
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Conversion/LinearToRGBNode.cs
  8. 2
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Conversion/RGBtoLinearNode.cs
  9. 4
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Basic/AddNode.cs
  10. 8
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Legacy/LegacyBlendNode.cs
  11. 4
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Basic/DivNode.cs
  12. 4
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Vector/DotNode.cs
  13. 4
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Vector/FresnelNode.cs
  14. 4
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Basic/MultiplyNode.cs
  15. 4
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Vector/ReflectNode.cs
  16. 4
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Basic/SubtractNode.cs
  17. 4
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Normal/UnpackNormalNode.cs
  18. 10
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Adjustments/LevelsNode.cs
  19. 4
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Channel/SwizzleNode.cs
  20. 2
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Conversion/HSVtoRGBNode.cs
  21. 2
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Adjustments/HueNode.cs
  22. 2
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Conversion/RGBtoHSVNode.cs
  23. 4
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/UV/UVRotatorNode.cs
  24. 104
      MaterialGraphProject/Assets/Brandon/NoiseNode.cs
  25. 12
      MaterialGraphProject/Assets/Brandon/NoiseNode.cs.meta
  26. 9
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art.meta
  27. 9
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Channel.meta
  28. 9
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Legacy.meta
  29. 9
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math.meta
  30. 9
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Normal.meta
  31. 9
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Procedural.meta
  32. 9
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/UV.meta
  33. 9
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Adjustments.meta
  34. 9
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Conversion.meta
  35. 141
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Channel/CombineNode.cs
  36. 147
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Channel/SplitNode.cs
  37. 9
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Advanced.meta
  38. 13
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Advanced/AbsoluteNode.cs
  39. 13
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Advanced/LengthNode.cs
  40. 29
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Advanced/NegateNode.cs
  41. 13
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Advanced/NormalizeNode.cs
  42. 26
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Advanced/PosterizeNode.cs
  43. 29
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Advanced/ReciprocalNode.cs
  44. 12
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Advanced/ReciprocalNode.cs.meta
  45. 9
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Basic.meta
  46. 13
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Basic/PowerNode.cs
  47. 9
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Interpolation.meta
  48. 44
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Interpolation/InverseLerpNode.cs
  49. 28
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Interpolation/LerpNode.cs
  50. 28
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Interpolation/SmoothStepNode.cs
  51. 9
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Range.meta
  52. 28
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Range/ClampNode.cs
  53. 13
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Range/MaxNode.cs
  54. 13
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Range/MinNode.cs
  55. 13
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Range/SaturateNode.cs
  56. 9
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Round.meta
  57. 9
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry.meta
  58. 13
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/ATan2Node.cs
  59. 12
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/ATan2Node.cs.meta
  60. 13
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/ArcCosNode.cs
  61. 12
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/ArcCosNode.cs.meta
  62. 13
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/ArcSinNode.cs
  63. 12
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/ArcSinNode.cs.meta
  64. 13
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/ArcTanNode.cs
  65. 12
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/ArcTanNode.cs.meta
  66. 13
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/CosNode.cs
  67. 12
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/CosNode.cs.meta
  68. 13
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/DegreesToRadiansNode.cs
  69. 12
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/DegreesToRadiansNode.cs.meta
  70. 13
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/RadiansToDegreesNode.cs
  71. 12
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/RadiansToDegreesNode.cs.meta
  72. 13
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/SinCosNode.cs
  73. 12
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/SinCosNode.cs.meta
  74. 13
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/SinNode.cs
  75. 13
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/TanNode.cs
  76. 12
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/TanNode.cs.meta
  77. 9
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Vector.meta
  78. 13
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Vector/CrossNode.cs
  79. 12
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Vector/CrossNode.cs.meta
  80. 48
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Normal/BlendNormalNode.cs
  81. 63
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Procedural/CheckerboardNode.cs
  82. 12
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Procedural/CheckerboardNode.cs.meta
  83. 58
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Procedural/GradientRampNode.cs
  84. 12
      MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Procedural/GradientRampNode.cs.meta

2
MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Presenters/MaterialGraphPresenter.cs


typeMapper[typeof(MasterRemapInputNode)] = typeof(RemapInputNodePresenter);
typeMapper[typeof(AbstractSubGraphIONode)] = typeof(SubgraphIONodePresenter);
typeMapper[typeof(AbstractSurfaceMasterNode)] = typeof(SurfaceMasterPresenter);
typeMapper[typeof(LevelNode)] = typeof(LevelNodePresenter);
typeMapper[typeof(LevelsNode)] = typeof(LevelsNodePresenter);
typeMapper[typeof(ConstantsNode)] = typeof(ConstantsNodePresenter);
typeMapper[typeof(SwizzleNode)] = typeof(SwizzleNodePresenter);
typeMapper[typeof(BlendModeNode)] = typeof(BlendModeNodePresenter);

8
MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Presenters/LevelsNodePresenter.cs


namespace UnityEditor.MaterialGraph.Drawing
{
class LevelControlPresenter : GraphControlPresenter
class LevelsControlPresenter : GraphControlPresenter
var tNode = node as LevelNode;
var tNode = node as LevelsNode;
if (tNode == null)
return;

}
[Serializable]
public class LevelNodePresenter : PropertyNodePresenter
public class LevelsNodePresenter : PropertyNodePresenter
var instance = CreateInstance<LevelControlPresenter>();
var instance = CreateInstance<LevelsControlPresenter>();
instance.Initialize(node);
return new List<GraphElementPresenter>(base.GetControlData()) { instance };
}

6
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/UV/UVPannerNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("UV/Panner")]
[Title("UV/UV Panner")]
name = "Panner";
name = "UVPanner";
return "unity_pan_" + precision;
return "unity_uvpanner_" + precision;
}
protected override string GetInputSlot1Name()

6
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Adjustments/ContrastNode.cs


namespace UnityEngine.MaterialGraph
{
[Title ("Math/Color/Contrast")]
public class Contrast : Function3Input, IGeneratesFunction
[Title ("Art/Adjustments/Contrast")]
public class ContrastNode : Function3Input, IGeneratesFunction
public Contrast()
public ContrastNode()
{
name = "Contrast";
}

6
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Adjustments/SaturationNode.cs


namespace UnityEngine.MaterialGraph
{
[Title ("Math/Color/Saturation")]
public class Saturation : Function2Input, IGeneratesFunction
[Title ("Art/Adjustments/Saturation")]
public class SaturationNode : Function2Input, IGeneratesFunction
public Saturation()
public SaturationNode()
{
name = "Saturation";
}

6
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Conversion/RGBtoLuminanceNode.cs


namespace UnityEngine.MaterialGraph
{
[Title ("Math/Color/RGBtoLuminance")]
public class RGBtoLuminance : Function1Input, IGeneratesFunction
[Title ("Art/Conversion/RGBtoLuminance")]
public class RGBtoLuminanceNode : Function1Input, IGeneratesFunction
public RGBtoLuminance()
public RGBtoLuminanceNode()
{
name = "RGBtoLuminance";
}

2
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Conversion/LinearToRGBNode.cs


namespace UnityEngine.MaterialGraph
{
[Title ("Math/Color/LineartoRGB")]
[Title ("Art/Conversion/LineartoRGB")]
public class LineartoRGBNode : Function1Input, IGeneratesFunction
{
public LineartoRGBNode()

2
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Conversion/RGBtoLinearNode.cs


namespace UnityEngine.MaterialGraph
{
[Title ("Math/Color/RGBtoLinear")]
[Title ("Art/Conversion/RGBtoLinear")]
public class RGBtoLinearNode : Function1Input, IGeneratesFunction
{
public RGBtoLinearNode()

4
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Basic/AddNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Add Node")]
[Title("Math/Basic/Add")]
name = "AddNode";
name = "Add";
}
protected override string GetFunctionName()

8
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Legacy/LegacyBlendNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Art/Blend Node")]
public class BlendNode : Function2Input, IGeneratesFunction
[Title("Legacy/Blend")]
public class LegacyBlendNode : Function2Input, IGeneratesFunction
public BlendNode()
public LegacyBlendNode()
name = "BlendNode";
name = "Blend";
}
public enum Operation

4
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Basic/DivNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Div Node")]
[Title("Math/Basic/Divide")]
name = "DivNode";
name = "Divide";
}
protected override string GetFunctionName() {return "unity_div_" + precision; }

4
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Vector/DotNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Dot Node")]
[Title("Math/Vector/Dot Product")]
name = "DotNode";
name = "DotProduct";
}
protected override string GetFunctionName()

4
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Vector/FresnelNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Fresnel Node")]
[Title("Math/Vector/Fresnel")]
name = "FresnelNode";
name = "Fresnel";
}
protected override MaterialSlot GetInputSlot1()

4
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Basic/MultiplyNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Multiply Node")]
[Title("Math/Basic/Multiply")]
name = "MultiplyNode";
name = "Multiply";
}
protected override string GetFunctionName()

4
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Vector/ReflectNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Reflect Node")]
[Title("Math/Vector/Reflect")]
name = "ReflectNode";
name = "Reflect";
}
protected override string GetInputSlot1Name() {return "Normal"; }

4
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Basic/SubtractNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Subtract Node")]
[Title("Math/Basic/Subtract")]
name = "SubtractNode";
name = "Subtract";
}
protected override string GetFunctionName() {return "unity_subtract_" + precision; }

4
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Normal/UnpackNormalNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Channels/Unpack Normal Node")]
[Title("Normal/Unpack Normal")]
name = "UnpackNormalNode";
name = "UnpackNormal";
}
public override bool hasPreview

10
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Adjustments/LevelsNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Range/Level Node")]
public class LevelNode : Function1Input, IGeneratesFunction
[Title("Art/Adjustments/Levels")]
public class LevelsNode : Function1Input, IGeneratesFunction
{
[SerializeField]
private float m_InputMin = 0.0f;

}
}
public LevelNode()
public LevelsNode()
name = "LevelNode";
name = "Levels";
return "unity_level_" + precision;
return "unity_levels_" + precision;
}
public override void GeneratePropertyUsages(ShaderGenerator visitor, GenerationMode generationMode)

4
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Channel/SwizzleNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Channels/Swizzle Node")]
[Title("Channel/Swizzle")]
public class SwizzleNode : Function1Input
{
public enum SwizzleChannel

public SwizzleNode()
{
name = "SwizzleNode";
name = "Swizzle";
}
protected override string GetFunctionName()

2
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Conversion/HSVtoRGBNode.cs


namespace UnityEngine.MaterialGraph
{
[Title ("Math/Color/HSVtoRGB")]
[Title ("Art/Conversion/HSVtoRGB")]
public class HSVtoRGBNode : Function1Input, IGeneratesFunction
{
public HSVtoRGBNode ()

2
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Adjustments/HueNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Color/Hue")]
[Title("Art/Adjustments/Hue")]
public class HueNode : Function1Input, IGeneratesFunction
{
public HueNode()

2
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Conversion/RGBtoHSVNode.cs


namespace UnityEngine.MaterialGraph
{
[Title ("Math/Color/RGBtoHSV")]
[Title ("Art/Conversion/RGBtoHSV")]
public class RGBtoHSVNode : Function1Input, IGeneratesFunction
{
public RGBtoHSVNode ()

4
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/UV/UVRotatorNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("UV/Rotator")]
[Title("UV/UV Rotator")]
public class UVRotatorNode : Function2Input, IGeneratesFunction
{
private const string kUVSlotName = "UV";

return new MaterialSlot(OutputSlotId, kUVSlotName, kUVSlotName, SlotType.Output, SlotValueType.Vector4, Vector4.zero);
}
//TODO:Externalize
//Reference code from:http://www.chilliant.com/rgb2hsv.html
public void GenerateNodeFunction(ShaderGenerator visitor, GenerationMode generationMode)
{
var outputString = new ShaderGenerator();

104
MaterialGraphProject/Assets/Brandon/NoiseNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Procedural/Noise")]
public class NoiseNode : Function1Input, IGeneratesFunction
{
public NoiseNode()
{
name = "Noise";
}
protected override string GetFunctionName()
{
return "unity_noise_" + precision;
}
protected override string GetInputSlotName()
{
return "UV";
}
protected override MaterialSlot GetInputSlot()
{
return new MaterialSlot(InputSlotId, GetInputSlotName(), kInputSlotShaderName, UnityEngine.Graphing.SlotType.Input, SlotValueType.Vector2, Vector2.zero);
}
protected override MaterialSlot GetOutputSlot()
{
return new MaterialSlot(OutputSlotId, GetOutputSlotName(), kOutputSlotShaderName, UnityEngine.Graphing.SlotType.Output, SlotValueType.Vector1, Vector2.zero);
}
public void GenerateNodeFunction(ShaderGenerator visitor, GenerationMode generationMode)
{
var outputString = new ShaderGenerator();
outputString.AddShaderChunk("inline float unity_randomValue (float2 uv)", false);
outputString.AddShaderChunk("{", false);
outputString.Indent();
outputString.AddShaderChunk("return frac(sin(dot(uv, float2(12.9898, 78.233)))*43758.5453);", false);
outputString.Deindent();
outputString.AddShaderChunk("}", false);
outputString.AddShaderChunk("inline float unity_interpolate (float a, float b, float t)", false);
outputString.AddShaderChunk("{", false);
outputString.Indent();
outputString.AddShaderChunk("return (1.0-t)*a + (t*b);", false);
outputString.Deindent();
outputString.AddShaderChunk("}", false);
outputString.AddShaderChunk("inline float unity_valueNoise (float2 uv)", false);
outputString.AddShaderChunk("{", false);
outputString.Indent();
outputString.AddShaderChunk("float2 i = floor(uv);", false);
outputString.AddShaderChunk("float2 f = frac(uv);", false);
outputString.AddShaderChunk("f = f * f * (3.0 - 2.0 * f);", false);
outputString.AddShaderChunk("uv = abs(frac(uv) - 0.5);", false);
outputString.AddShaderChunk("float2 c0 = i + float2(0.0, 0.0);", false);
outputString.AddShaderChunk("float2 c1 = i + float2(1.0, 0.0);", false);
outputString.AddShaderChunk("float2 c2 = i + float2(0.0, 1.0);", false);
outputString.AddShaderChunk("float2 c3 = i + float2(1.0, 1.0);", false);
outputString.AddShaderChunk("float r0 = unity_randomValue(c0);", false);
outputString.AddShaderChunk("float r1 = unity_randomValue(c1);", false);
outputString.AddShaderChunk("float r2 = unity_randomValue(c2);", false);
outputString.AddShaderChunk("float r3 = unity_randomValue(c3);", false);
outputString.AddShaderChunk("float bottomOfGrid = unity_interpolate(r0, r1, f.x);", false);
outputString.AddShaderChunk("float topOfGrid = unity_interpolate(r2, r3, f.x);", false);
outputString.AddShaderChunk("float t = unity_interpolate(bottomOfGrid, topOfGrid, f.y);", false);
outputString.AddShaderChunk("return t;", false);
outputString.Deindent();
outputString.AddShaderChunk("}", false);
outputString.AddShaderChunk(GetFunctionPrototype("uv"), false);
outputString.AddShaderChunk("{", false);
outputString.Indent();
outputString.AddShaderChunk("float t = 0.0;", false);
outputString.AddShaderChunk("for(int i = 0; i < 3; i++)", false);
outputString.AddShaderChunk("{", false);
outputString.Indent();
outputString.AddShaderChunk("float freq = pow(2.0, float(i));", false);
outputString.AddShaderChunk("float amp = pow(0.5, float(3-i));", false);
outputString.AddShaderChunk("t += unity_valueNoise(float2(uv.x/freq, uv.y/freq))*amp;", false);
outputString.Deindent();
outputString.AddShaderChunk("}", false);
outputString.AddShaderChunk("return t;", false);
outputString.Deindent();
outputString.AddShaderChunk("}", false);
visitor.AddShaderChunk(outputString.GetShaderString(0), true);
}
}
}

12
MaterialGraphProject/Assets/Brandon/NoiseNode.cs.meta


fileFormatVersion: 2
guid: 6e05bd4324babff4498e856ab63b993c
timeCreated: 1495526233
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

9
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art.meta


fileFormatVersion: 2
guid: 8ee6f8ab31f6bf349a63fdd21fc88664
folderAsset: yes
timeCreated: 1495532491
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

9
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Channel.meta


fileFormatVersion: 2
guid: 9e3d3d0ce68bbc843b9b8734ab8d4f02
folderAsset: yes
timeCreated: 1495531110
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

9
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Legacy.meta


fileFormatVersion: 2
guid: eb0cb153896a18c4ebb6d116283dfda4
folderAsset: yes
timeCreated: 1495532221
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

9
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math.meta


fileFormatVersion: 2
guid: e63f07e66d070412bb6e9582ca1eba72
folderAsset: yes
timeCreated: 1495526358
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

9
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Normal.meta


fileFormatVersion: 2
guid: 8443203ba8104ff4bb0a6a0ed978034e
folderAsset: yes
timeCreated: 1495532369
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

9
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Procedural.meta


fileFormatVersion: 2
guid: e74e11761cab2b446b96ce63e2d657b3
folderAsset: yes
timeCreated: 1495530729
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

9
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/UV.meta


fileFormatVersion: 2
guid: f9c248f478f706147ba7b8a660035472
folderAsset: yes
timeCreated: 1495529881
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

9
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Adjustments.meta


fileFormatVersion: 2
guid: 75cc6d701e07fe246ba5377a454f74c4
folderAsset: yes
timeCreated: 1495532497
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

9
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Art/Conversion.meta


fileFormatVersion: 2
guid: 9134a2b351ed9f140bfbb2d46f9075b5
folderAsset: yes
timeCreated: 1495532965
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

141
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Channel/CombineNode.cs


using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine.Graphing;
namespace UnityEngine.MaterialGraph
{
[Title("Channel/Combine")]
public class CombineNode : PropertyNode, IGeneratesBodyCode
{
protected const string kOutputSlot0Id = "Input0";
protected const string kOutputSlot1Id = "Input1";
protected const string kOutputSlot2Id = "Input2";
protected const string kOutputSlot3Id = "Input3";
protected const string kOutputSlotRGBAName = "RGBA";
protected const string kOutputSlotRGBSlotName = "RGB";
protected const string kOutputSlotRGSlotName = "RG";
public const int InputSlot0Id = 0;
public const int InputSlot1Id = 1;
public const int InputSlot2Id = 2;
public const int InputSlot3Id = 3;
public const int OutputSlotRGBAId = 4;
public const int OutputSlotRGBId = 5;
public const int OutputSlotRGId = 6;
public CombineNode()
{
name = "Combine";
UpdateNodeAfterDeserialization();
}
public sealed override void UpdateNodeAfterDeserialization()
{
AddSlot(new MaterialSlot(InputSlot0Id, kOutputSlot0Id, kOutputSlot0Id, SlotType.Input, SlotValueType.Dynamic, Vector4.zero));
AddSlot(new MaterialSlot(InputSlot1Id, kOutputSlot1Id, kOutputSlot1Id, SlotType.Input, SlotValueType.Dynamic, Vector4.zero));
AddSlot(new MaterialSlot(InputSlot2Id, kOutputSlot2Id, kOutputSlot2Id, SlotType.Input, SlotValueType.Dynamic, Vector4.zero));
AddSlot(new MaterialSlot(InputSlot3Id, kOutputSlot3Id, kOutputSlot3Id, SlotType.Input, SlotValueType.Dynamic, Vector4.zero));
AddSlot(new MaterialSlot(OutputSlotRGBAId, kOutputSlotRGBAName, kOutputSlotRGBAName, SlotType.Output, SlotValueType.Vector4, Vector4.zero));
AddSlot(new MaterialSlot(OutputSlotRGBId, kOutputSlotRGBSlotName, kOutputSlotRGBSlotName, SlotType.Output, SlotValueType.Vector3, Vector4.zero));
AddSlot(new MaterialSlot(OutputSlotRGId, kOutputSlotRGSlotName, kOutputSlotRGSlotName, SlotType.Output, SlotValueType.Vector2, Vector4.zero));
RemoveSlotsNameNotMatching(validSlots);
}
protected int[] validSlots
{
get { return new[] { InputSlot0Id, InputSlot1Id, InputSlot2Id, InputSlot3Id, OutputSlotRGBAId, OutputSlotRGBId, OutputSlotRGId }; }
}
[SerializeField]
private Vector4 m_Value;
public Vector4 value
{
get { return m_Value; }
set
{
if (m_Value == value)
return;
m_Value = value;
if (onModified != null)
onModified(this, ModificationScope.Node);
}
}
public override PropertyType propertyType { get { return PropertyType.Vector4; } }
public override void GeneratePropertyBlock(PropertyGenerator visitor, GenerationMode generationMode)
{
if (exposedState == ExposedState.Exposed)
visitor.AddShaderProperty(new VectorPropertyChunk(propertyName, description, m_Value, PropertyChunk.HideState.Visible));
}
public override void GeneratePropertyUsages(ShaderGenerator visitor, GenerationMode generationMode)
{
if (exposedState == ExposedState.Exposed || generationMode.IsPreview())
visitor.AddShaderChunk(precision + "4 " + propertyName + ";", true);
}
public void GenerateNodeCode(ShaderGenerator visitor, GenerationMode generationMode)
{
//if (exposedState == ExposedState.Exposed || generationMode.IsPreview())
// return;
var inputValue = GetSlotValue(InputSlot0Id, generationMode);
visitor.AddShaderChunk(precision + "4 " + propertyName + " = " + inputValue + ";", false);
//visitor.AddShaderChunk(precision + "4 " + propertyName + " = " + precision + "4 (" + m_Value.x + ", " + m_Value.y + ", " + m_Value.z + ", " + m_Value.w + ");", true);
}
protected virtual MaterialSlot GetInputSlot()
{
return new MaterialSlot(InputSlot0Id, GetInputSlotName(), kOutputSlot0Id, SlotType.Input, SlotValueType.Dynamic, Vector4.zero);
}
protected virtual string GetInputSlotName() { return "Input"; }
public override PreviewProperty GetPreviewProperty()
{
return new PreviewProperty
{
m_Name = propertyName,
m_PropType = PropertyType.Vector4,
m_Vector4 = m_Value
};
}
/*public override string GetVariableNameForSlot(int slotId)
{
string slotOutput;
switch (slotId)
{
case OutputSlotRId:
slotOutput = ".r";
break;
case OutputSlotGId:
slotOutput = ".g";
break;
case OutputSlotBId:
slotOutput = ".b";
break;
case OutputSlotAId:
slotOutput = ".a";
break;
default:
slotOutput = "";
break;
}
return propertyName + slotOutput;
//return GetVariableNameForNode() + slotOutput;
}*/
public override void CollectPreviewMaterialProperties(List<PreviewProperty> properties)
{
properties.Add(GetPreviewProperty());
}
}
}

147
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Channel/SplitNode.cs


using System;
using System.Collections.Generic;
using System.Linq;
#if UNITY_EDITOR
using UnityEditor;
#endif
using UnityEngine.Graphing;
namespace UnityEngine.MaterialGraph
{
[Title("Channel/Split")]
public class SplitNode : PropertyNode, IGeneratesBodyCode
{
protected const string kInputSlotName = "Input";
protected const string kOutputSlotRName = "R";
protected const string kOutputSlotGName = "G";
protected const string kOutputSlotBName = "B";
protected const string kOutputSlotAName = "A";
protected const string kOutputSlotRGBName = "RGB";
protected const string kOutputSlotRGName = "RG";
public const int InputSlotId = 0;
public const int OutputSlotRId = 1;
public const int OutputSlotGId = 2;
public const int OutputSlotBId = 3;
public const int OutputSlotAId = 4;
public const int OutputSlotRGBId = 5;
public const int OutputSlotRGId = 6;
public SplitNode()
{
name = "Split";
UpdateNodeAfterDeserialization();
}
public sealed override void UpdateNodeAfterDeserialization()
{
AddSlot(new MaterialSlot(InputSlotId, kInputSlotName, kInputSlotName, SlotType.Input, SlotValueType.Dynamic, Vector4.zero));
AddSlot(new MaterialSlot(OutputSlotRId, kOutputSlotRName, kOutputSlotRName, SlotType.Output, SlotValueType.Vector1, Vector4.zero));
AddSlot(new MaterialSlot(OutputSlotGId, kOutputSlotGName, kOutputSlotGName, SlotType.Output, SlotValueType.Vector1, Vector4.zero));
AddSlot(new MaterialSlot(OutputSlotBId, kOutputSlotBName, kOutputSlotBName, SlotType.Output, SlotValueType.Vector1, Vector4.zero));
AddSlot(new MaterialSlot(OutputSlotAId, kOutputSlotAName, kOutputSlotAName, SlotType.Output, SlotValueType.Vector1, Vector4.zero));
AddSlot(new MaterialSlot(OutputSlotRGBId, kOutputSlotRGBName, kOutputSlotRGBName, SlotType.Output, SlotValueType.Vector3, Vector4.zero));
AddSlot(new MaterialSlot(OutputSlotRGId, kOutputSlotRGName, kOutputSlotRGName, SlotType.Output, SlotValueType.Vector2, Vector4.zero));
RemoveSlotsNameNotMatching(validSlots);
}
protected int[] validSlots
{
get { return new[] { InputSlotId, OutputSlotRId, OutputSlotGId, OutputSlotBId, OutputSlotAId, OutputSlotRGBId, OutputSlotRGId }; }
}
[SerializeField]
private Vector4 m_Value;
public Vector4 value
{
get { return m_Value; }
set
{
if (m_Value == value)
return;
m_Value = value;
if (onModified != null)
onModified(this, ModificationScope.Node);
}
}
public override PropertyType propertyType { get { return PropertyType.Vector4; } }
public override void GeneratePropertyBlock(PropertyGenerator visitor, GenerationMode generationMode)
{
if (exposedState == ExposedState.Exposed)
visitor.AddShaderProperty(new VectorPropertyChunk(propertyName, description, m_Value, PropertyChunk.HideState.Visible));
}
public override void GeneratePropertyUsages(ShaderGenerator visitor, GenerationMode generationMode)
{
if (exposedState == ExposedState.Exposed || generationMode.IsPreview())
visitor.AddShaderChunk(precision + "4 " + propertyName + ";", true);
}
public void GenerateNodeCode(ShaderGenerator visitor, GenerationMode generationMode)
{
//if (exposedState == ExposedState.Exposed || generationMode.IsPreview())
// return;
var inputValue = GetSlotValue(InputSlotId, generationMode);
visitor.AddShaderChunk(precision + "4 " + propertyName + " = " + inputValue + ";", false);
//visitor.AddShaderChunk(precision + "4 " + propertyName + " = " + precision + "4 (" + m_Value.x + ", " + m_Value.y + ", " + m_Value.z + ", " + m_Value.w + ");", true);
}
protected virtual MaterialSlot GetInputSlot()
{
return new MaterialSlot(InputSlotId, GetInputSlotName(), kInputSlotName, SlotType.Input, SlotValueType.Dynamic, Vector4.zero);
}
protected virtual string GetInputSlotName() { return "Input"; }
public override PreviewProperty GetPreviewProperty()
{
return new PreviewProperty
{
m_Name = propertyName,
m_PropType = PropertyType.Vector4,
m_Vector4 = m_Value
};
}
public override string GetVariableNameForSlot(int slotId)
{
string slotOutput;
switch (slotId)
{
case OutputSlotRId:
slotOutput = ".r";
break;
case OutputSlotGId:
slotOutput = ".g";
break;
case OutputSlotBId:
slotOutput = ".b";
break;
case OutputSlotAId:
slotOutput = ".a";
break;
case OutputSlotRGBId:
slotOutput = ".rgb";
break;
case OutputSlotRGId:
slotOutput = ".rg";
break;
default:
slotOutput = "";
break;
}
return propertyName + slotOutput;
//return GetVariableNameForNode() + slotOutput;
}
public override void CollectPreviewMaterialProperties(List<PreviewProperty> properties)
{
properties.Add(GetPreviewProperty());
}
}
}

9
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Advanced.meta


fileFormatVersion: 2
guid: 198ec765a01574320a8199338d27d9f1
folderAsset: yes
timeCreated: 1495526831
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

13
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Advanced/AbsoluteNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Advanced/Absolute")]
public class AbsoluteNode : Function1Input
{
public AbsoluteNode()
{
name = "Absolute";
}
protected override string GetFunctionName() {return "abs"; }
}
}

13
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Advanced/LengthNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Advanced/Length")]
public class LengthNode : Function1Input
{
public LengthNode()
{
name = "Length";
}
protected override string GetFunctionName() { return "length"; }
}
}

29
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Advanced/NegateNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Advanced/Negate")]
public class NegateNode : Function1Input, IGeneratesFunction
{
public NegateNode()
{
name = "Negate";
}
protected override string GetFunctionName()
{
return "unity_negate_" + precision;
}
public void GenerateNodeFunction(ShaderGenerator visitor, GenerationMode generationMode)
{
var outputString = new ShaderGenerator();
outputString.AddShaderChunk(GetFunctionPrototype("arg1"), false);
outputString.AddShaderChunk("{", false);
outputString.Indent();
outputString.AddShaderChunk("return -1 * arg1;", false);
outputString.Deindent();
outputString.AddShaderChunk("}", false);
visitor.AddShaderChunk(outputString.GetShaderString(0), true);
}
}
}

13
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Advanced/NormalizeNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Advanced/Normalize")]
class NormalizeNode : Function1Input
{
public NormalizeNode()
{
name = "Normalize";
}
protected override string GetFunctionName() { return "normalize"; }
}
}

26
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Advanced/PosterizeNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Advanced/Posterize")]
class PosterizeNode : Function2Input, IGeneratesFunction
{
public PosterizeNode()
{
name = "Posterize";
}
protected override string GetFunctionName() {return "unity_posterize_" + precision; }
public void GenerateNodeFunction(ShaderGenerator visitor, GenerationMode generationMode)
{
var outputString = new ShaderGenerator();
outputString.AddShaderChunk(GetFunctionPrototype("input", "stepsize"), false);
outputString.AddShaderChunk("{", false);
outputString.Indent();
outputString.AddShaderChunk("return floor(input / stepsize) * stepsize;", false);
outputString.Deindent();
outputString.AddShaderChunk("}", false);
visitor.AddShaderChunk(outputString.GetShaderString(0), true);
}
}
}

29
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Advanced/ReciprocalNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Advanced/Reciprocal")]
public class ReciprocalNode : Function1Input, IGeneratesFunction
{
public ReciprocalNode()
{
name = "Reciprocal";
}
protected override string GetFunctionName()
{
return "unity_reciprocal_" + precision;
}
public void GenerateNodeFunction(ShaderGenerator visitor, GenerationMode generationMode)
{
var outputString = new ShaderGenerator();
outputString.AddShaderChunk(GetFunctionPrototype("arg1"), false);
outputString.AddShaderChunk("{", false);
outputString.Indent();
outputString.AddShaderChunk("return 1.0/arg1;", false);
outputString.Deindent();
outputString.AddShaderChunk("}", false);
visitor.AddShaderChunk(outputString.GetShaderString(0), true);
}
}
}

12
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Advanced/ReciprocalNode.cs.meta


fileFormatVersion: 2
guid: 2b52706eb67bd8445b13f43ae287c679
timeCreated: 1495445608
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

9
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Basic.meta


fileFormatVersion: 2
guid: 4120c70d7c1a34d92b74137bf0b1bc67
folderAsset: yes
timeCreated: 1495526365
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

13
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Basic/PowerNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Basic/Power")]
public class PowerNode : Function2Input
{
public PowerNode()
{
name = "Power";
}
protected override string GetFunctionName() { return "pow"; }
}
}

9
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Interpolation.meta


fileFormatVersion: 2
guid: 458e098c89ad64ed3a48cb5f63a5a498
folderAsset: yes
timeCreated: 1495529238
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

44
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Interpolation/InverseLerpNode.cs


namespace UnityEngine.MaterialGraph
{
[Title ("Math/Interpolation/InverseLerp")]
public class InverseLerpNode : Function3Input, IGeneratesFunction
{
public InverseLerpNode ()
{
name = "InverseLerp";
}
protected override string GetFunctionName ()
{
return "unity_inverselerp_" + precision;
}
protected override string GetInputSlot1Name()
{
return "InputA";
}
protected override string GetInputSlot2Name()
{
return "InputB";
}
protected override string GetInputSlot3Name()
{
return "T";
}
public void GenerateNodeFunction (ShaderGenerator visitor, GenerationMode generationMode)
{
var outputString = new ShaderGenerator ();
outputString.AddShaderChunk (GetFunctionPrototype ("arg1", "arg2", "arg3"), false);
outputString.AddShaderChunk ("{", false);
outputString.Indent ();
outputString.AddShaderChunk ("return (arg3 - arg1)/(arg2 - arg1);", false);
outputString.Deindent ();
outputString.AddShaderChunk ("}", false);
visitor.AddShaderChunk (outputString.GetShaderString (0), true);
}
}
}

28
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Interpolation/LerpNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Interpolation/Lerp")]
public class LerpNode : Function3Input
{
public LerpNode()
{
name = "Lerp";
}
protected override string GetInputSlot1Name()
{
return "InputA";
}
protected override string GetInputSlot2Name()
{
return "InputB";
}
protected override string GetInputSlot3Name()
{
return "T";
}
protected override string GetFunctionName() {return "lerp"; }
}
}

28
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Interpolation/SmoothStepNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Interpolation/SmoothStep")]
class SmoothStepNode : Function3Input
{
public SmoothStepNode()
{
name = "SmoothStep";
}
protected override string GetInputSlot1Name()
{
return "InputA";
}
protected override string GetInputSlot2Name()
{
return "InputB";
}
protected override string GetInputSlot3Name()
{
return "T";
}
protected override string GetFunctionName() {return "smoothstep"; }
}
}

9
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Range.meta


fileFormatVersion: 2
guid: 2018cd81f24ba46748d8b85c8f289f4f
folderAsset: yes
timeCreated: 1495527047
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

28
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Range/ClampNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Range/Clamp")]
public class ClampNode : Function3Input
{
public ClampNode()
{
name = "Clamp";
}
protected override string GetInputSlot1Name()
{
return "Input";
}
protected override string GetInputSlot2Name()
{
return "Min";
}
protected override string GetInputSlot3Name()
{
return "Max";
}
protected override string GetFunctionName() {return "clamp"; }
}
}

13
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Range/MaxNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Range/Maximum")]
public class MaximumNode : Function2Input
{
public MaximumNode()
{
name = "Maximum";
}
protected override string GetFunctionName() { return "max"; }
}
}

13
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Range/MinNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Range/Minimum")]
public class MinimumNode : Function2Input
{
public MinimumNode()
{
name = "Minimum";
}
protected override string GetFunctionName() { return "min"; }
}
}

13
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Range/SaturateNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Range/Saturate")]
class SaturateNode : Function1Input
{
public SaturateNode()
{
name = "Saturate";
}
protected override string GetFunctionName() { return "saturate"; }
}
}

9
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Round.meta


fileFormatVersion: 2
guid: 4da29d4d0744f43f8aaa921918f1f879
folderAsset: yes
timeCreated: 1495530810
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

9
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry.meta


fileFormatVersion: 2
guid: 28b2b06f6ff88404c8c0d855b9599203
folderAsset: yes
timeCreated: 1495529705
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

13
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/ATan2Node.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Trigonometry/ArcTan2")]
public class ATan2Node : Function2Input
{
public ATan2Node()
{
name = "ArcTan2";
}
protected override string GetFunctionName() { return "atan2"; }
}
}

12
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/ATan2Node.cs.meta


fileFormatVersion: 2
guid: fdd3de2442c50d74da35552bdbe0be74
timeCreated: 1495459701
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

13
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/ArcCosNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Trigonometry/ArcCos")]
public class ACosNode : Function1Input
{
public ACosNode()
{
name = "ArcCos";
}
protected override string GetFunctionName() { return "acos"; }
}
}

12
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/ArcCosNode.cs.meta


fileFormatVersion: 2
guid: 455566eec6487b04e92c32110f05073a
timeCreated: 1495459453
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

13
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/ArcSinNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Trigonometry/ArcSin")]
public class ASinNode : Function1Input
{
public ASinNode()
{
name = "ArcSin";
}
protected override string GetFunctionName() { return "asin"; }
}
}

12
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/ArcSinNode.cs.meta


fileFormatVersion: 2
guid: e0bd4c0099ef82240b5e91e77990628e
timeCreated: 1495459543
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

13
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/ArcTanNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Trigonometry/ArcTan")]
public class ATanNode : Function1Input
{
public ATanNode()
{
name = "ArcTan";
}
protected override string GetFunctionName() { return "atan"; }
}
}

12
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/ArcTanNode.cs.meta


fileFormatVersion: 2
guid: 9db0fbefda58761488455432f3133271
timeCreated: 1495459625
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

13
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/CosNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Trigonometry/Cos")]
public class CosNode : Function1Input
{
public CosNode()
{
name = "Cos";
}
protected override string GetFunctionName() { return "cos"; }
}
}

12
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/CosNode.cs.meta


fileFormatVersion: 2
guid: 27c8eab8410ea16418392d646ec92572
timeCreated: 1495446924
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

13
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/DegreesToRadiansNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Trigonometry/Degrees To Radians")]
public class DegreesToRadiansNode : Function1Input
{
public DegreesToRadiansNode()
{
name = "DegreesToRadians";
}
protected override string GetFunctionName() { return "radians"; }
}
}

12
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/DegreesToRadiansNode.cs.meta


fileFormatVersion: 2
guid: 30f44257fb54ebf48908aef7ecc9b285
timeCreated: 1495459878
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

13
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/RadiansToDegreesNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Trigonometry/Radians To Degrees")]
public class RadiansToDegreesNode : Function1Input
{
public RadiansToDegreesNode()
{
name = "RadiansToDegrees";
}
protected override string GetFunctionName() { return "degrees"; }
}
}

12
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/RadiansToDegreesNode.cs.meta


fileFormatVersion: 2
guid: 3673593934a8a544294ca6398a7cc6cb
timeCreated: 1495460178
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

13
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/SinCosNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Trigonometry/SinCos")]
public class SinCosNode : Function1Input
{
public SinCosNode()
{
name = "SinCos";
}
protected override string GetFunctionName() { return "cos"; }
}
}

12
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/SinCosNode.cs.meta


fileFormatVersion: 2
guid: 61e8adbfbb5cd244fa9bb6dcc900b2bc
timeCreated: 1495447065
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

13
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/SinNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Trigonometry/Sin")]
class SinNode : Function1Input
{
public SinNode()
{
name = "Sin";
}
protected override string GetFunctionName() {return "sin"; }
}
}

13
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/TanNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Trigonometry/Tan")]
public class TanNode : Function1Input
{
public TanNode()
{
name = "Tan";
}
protected override string GetFunctionName() { return "tan"; }
}
}

12
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Trigonometry/TanNode.cs.meta


fileFormatVersion: 2
guid: 217bab274e1af304daceecaf52863882
timeCreated: 1495446976
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

9
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Vector.meta


fileFormatVersion: 2
guid: c3becf597e5084fe8825c0ec59a22201
folderAsset: yes
timeCreated: 1495527930
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

13
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Vector/CrossNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Math/Vector/Cross Product")]
public class CrossNode : Function2Input
{
public CrossNode()
{
name = "CrossProduct";
}
protected override string GetFunctionName() { return "cross"; }
}
}

12
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Math/Vector/CrossNode.cs.meta


fileFormatVersion: 2
guid: 6a69c68bb4c22d840b464885246650a3
timeCreated: 1495446521
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

48
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Normal/BlendNormalNode.cs


using UnityEngine.Graphing;
namespace UnityEngine.MaterialGraph
{
[Title("Normal/Blend Normal")]
public class BlendNormalNode : Function2Input, IGeneratesFunction
{
public BlendNormalNode()
{
name = "BlendNormal";
}
protected override string GetFunctionName()
{
return "unity_blendnormal_" + precision;
}
protected override MaterialSlot GetInputSlot1()
{
return new MaterialSlot(InputSlot1Id, GetInputSlot1Name(), kInputSlot1ShaderName, SlotType.Input, SlotValueType.Vector3, Vector4.zero);
}
protected override MaterialSlot GetInputSlot2()
{
return new MaterialSlot(InputSlot2Id, GetInputSlot2Name(), kInputSlot2ShaderName, SlotType.Input, SlotValueType.Vector3, Vector4.zero);
}
protected override MaterialSlot GetOutputSlot()
{
return new MaterialSlot(OutputSlotId, GetOutputSlotName(), kOutputSlotShaderName, SlotType.Output, SlotValueType.Vector3, Vector4.zero);
}
public void GenerateNodeFunction(ShaderGenerator visitor, GenerationMode generationMode)
{
var outputString = new ShaderGenerator();
outputString.AddShaderChunk(GetFunctionPrototype("arg1", "arg2"), false);
outputString.AddShaderChunk("{", false);
outputString.Indent();
outputString.AddShaderChunk("return normalize("+precision+"3(arg1.rg + arg2.rg, arg1.b * arg2.b));", false);
outputString.Deindent();
outputString.AddShaderChunk("}", false);
visitor.AddShaderChunk(outputString.GetShaderString(0), true);
}
}
}

63
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Procedural/CheckerboardNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Procedural/Checkerboard")]
public class CheckerboardNode : Function3Input, IGeneratesFunction
{
public CheckerboardNode()
{
name = "Checkerboard";
}
protected override string GetFunctionName()
{
return "unity_checkerboard_" + precision;
}
protected override string GetInputSlot1Name()
{
return "UV";
}
protected override string GetInputSlot2Name()
{
return "HorizontalTileScale";
}
protected override string GetInputSlot3Name()
{
return "VerticalTileScale";
}
protected override MaterialSlot GetInputSlot1()
{
return new MaterialSlot(InputSlot1Id, GetInputSlot1Name(), kInputSlot1ShaderName, UnityEngine.Graphing.SlotType.Input, SlotValueType.Vector2, Vector2.zero);
}
protected override MaterialSlot GetInputSlot2()
{
return new MaterialSlot(InputSlot2Id, GetInputSlot2Name(), kInputSlot2ShaderName, UnityEngine.Graphing.SlotType.Input, SlotValueType.Vector1, Vector4.zero);
}
protected override MaterialSlot GetInputSlot3()
{
return new MaterialSlot(InputSlot3Id, GetInputSlot3Name(), kInputSlot3ShaderName, UnityEngine.Graphing.SlotType.Input, SlotValueType.Vector1, Vector4.zero);
}
protected override MaterialSlot GetOutputSlot()
{
return new MaterialSlot(OutputSlotId, GetOutputSlotName(), kOutputSlotShaderName, UnityEngine.Graphing.SlotType.Output, SlotValueType.Vector1, Vector2.zero);
}
public void GenerateNodeFunction(ShaderGenerator visitor, GenerationMode generationMode)
{
var outputString = new ShaderGenerator();
outputString.AddShaderChunk(GetFunctionPrototype("uv", "horizontalTileScale", "verticalTileScale"), false);
outputString.AddShaderChunk("{", false);
outputString.Indent();
outputString.AddShaderChunk("return floor(fmod(floor(uv.x * horizontalTileScale) + floor(uv.y * verticalTileScale), 2.0)) * float4(1.0, 1.0, 1.0, 1.0);", false);
outputString.Deindent();
outputString.AddShaderChunk("}", false);
visitor.AddShaderChunk(outputString.GetShaderString(0), true);
}
}
}

12
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Procedural/CheckerboardNode.cs.meta


fileFormatVersion: 2
guid: 33d3c277f991d6749b4a8ace52c6d7b9
timeCreated: 1495448360
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

58
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Procedural/GradientRampNode.cs


namespace UnityEngine.MaterialGraph
{
[Title("Procedural/Gradient Ramp")]
public class GradientRampNode : Function2Input, IGeneratesFunction
{
public GradientRampNode()
{
name = "GradientRamp";
}
protected override string GetFunctionName()
{
return "unitygGradientramp_" + precision;
}
protected override string GetInputSlot1Name()
{
return "UV";
}
protected override string GetInputSlot2Name()
{
return "Stripe Count";
}
protected override MaterialSlot GetInputSlot1()
{
return new MaterialSlot(InputSlot1Id, GetInputSlot1Name(), kInputSlot1ShaderName, UnityEngine.Graphing.SlotType.Input, SlotValueType.Vector2, Vector4.zero);
}
protected override MaterialSlot GetInputSlot2()
{
return new MaterialSlot(InputSlot2Id, GetInputSlot2Name(), kInputSlot2ShaderName, UnityEngine.Graphing.SlotType.Input, SlotValueType.Vector1, Vector4.zero);
}
protected override MaterialSlot GetOutputSlot()
{
return new MaterialSlot(OutputSlotId, GetOutputSlotName(), kOutputSlotShaderName, UnityEngine.Graphing.SlotType.Output, SlotValueType.Vector1, Vector2.zero);
}
public void GenerateNodeFunction(ShaderGenerator visitor, GenerationMode generationMode)
{
var outputString = new ShaderGenerator();
outputString.AddShaderChunk(GetFunctionPrototype("uv", "stripeCount"), false);
outputString.AddShaderChunk("{", false);
outputString.Indent();
outputString.AddShaderChunk("float widthOfEachStripe = 1.0 / stripeCount;", false);
outputString.AddShaderChunk("float t = fmod(floor(uv.x / widthOfEachStripe), stripeCount);", false);
outputString.AddShaderChunk("return lerp(0.0, 1.0, t / (stripeCount - 1.0));", false);
outputString.Deindent();
outputString.AddShaderChunk("}", false);
visitor.AddShaderChunk(outputString.GetShaderString(0), true);
}
}
}

12
MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Procedural/GradientRampNode.cs.meta


fileFormatVersion: 2
guid: b7f3879f9309ee2439c68a734792dc73
timeCreated: 1495449448
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

部分文件因为文件数量过多而无法显示

正在加载...
取消
保存