浏览代码

Merge pull request #215 from keijiro/improve-artnodes

Improvements to artistic nodes.
/main
GitHub 7 年前
当前提交
b9b93c1c
共有 3 个文件被更改,包括 48 次插入11 次删除
  1. 8
      MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Artistic/Adjustment/ReplaceColorNode.cs
  2. 42
      MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Artistic/Blend/BlendNode.cs
  3. 9
      MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Artistic/Mask/ColorMaskNode.cs

8
MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Artistic/Adjustment/ReplaceColorNode.cs


[Slot(1, Binding.None)] ColorRGB From,
[Slot(2, Binding.None)] ColorRGB To,
[Slot(3, Binding.None)] Vector1 Range,
[Slot(5, Binding.None)] Vector1 Fuzziness,
Out = Vector2.zero;
Out = Vector3.zero;
{precision}3 col = In;
if(Distance <= Range)
col = To;
Out = col;
Out = lerp(To, In, saturate((Distance - Range) / max(Fuzziness, 1e-5f)));
}";
}
}

42
MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Artistic/Blend/BlendNode.cs


static string Unity_Blend_Burn(
[Slot(0, Binding.None)] DynamicDimensionVector Base,
[Slot(1, Binding.None)] DynamicDimensionVector Blend,
[Slot(3, Binding.None, 1, 1, 1, 1)] Vector1 Opacity,
[Slot(2, Binding.None)] out DynamicDimensionVector Out)
{
return

Out = lerp(Base, Out, Opacity);
}";
}

[Slot(3, Binding.None, 1, 1, 1, 1)] Vector1 Opacity,
[Slot(2, Binding.None)] out DynamicDimensionVector Out)
{
return

Out = lerp(Base, Out, Opacity);
}";
}

[Slot(3, Binding.None, 1, 1, 1, 1)] Vector1 Opacity,
[Slot(2, Binding.None)] out DynamicDimensionVector Out)
{
return

Out = lerp(Base, Out, Opacity);
}";
}

[Slot(3, Binding.None, 1, 1, 1, 1)] Vector1 Opacity,
[Slot(2, Binding.None)] out DynamicDimensionVector Out)
{
return

Out = lerp(Base, Out, Opacity);
}";
}

[Slot(3, Binding.None, 1, 1, 1, 1)] Vector1 Opacity,
[Slot(2, Binding.None)] out DynamicDimensionVector Out)
{
return

Out = lerp(Base, Out, Opacity);
}";
}

[Slot(3, Binding.None, 1, 1, 1, 1)] Vector1 Opacity,
[Slot(2, Binding.None)] out DynamicDimensionVector Out)
{
return

Out = lerp(Base, Out, Opacity);
}";
}

[Slot(3, Binding.None, 1, 1, 1, 1)] Vector1 Opacity,
[Slot(2, Binding.None)] out DynamicDimensionVector Out)
{
return

{precision}{slot2dimension} result2 = 2.0 * Base * Blend;
{precision}{slot2dimension} zeroOrOne = step(Blend, 0.5);
Out = result2 * zeroOrOne + (1 - zeroOrOne) * result1;
Out = lerp(Base, Out, Opacity);
}";
}

[Slot(3, Binding.None, 1, 1, 1, 1)] Vector1 Opacity,
[Slot(2, Binding.None)] out DynamicDimensionVector Out)
{
return

Out = lerp(Base, Out, Opacity);
}";
}

[Slot(3, Binding.None, 1, 1, 1, 1)] Vector1 Opacity,
[Slot(2, Binding.None)] out DynamicDimensionVector Out)
{
return

Out = lerp(Base, Out, Opacity);
}";
}

[Slot(3, Binding.None, 1, 1, 1, 1)] Vector1 Opacity,
[Slot(2, Binding.None)] out DynamicDimensionVector Out)
{
return

Out = lerp(Base, Out, Opacity);
}";
}

[Slot(3, Binding.None, 1, 1, 1, 1)] Vector1 Opacity,
[Slot(2, Binding.None)] out DynamicDimensionVector Out)
{
return

Out = lerp(Base, Out, Opacity);
}";
}

[Slot(3, Binding.None, 1, 1, 1, 1)] Vector1 Opacity,
[Slot(2, Binding.None)] out DynamicDimensionVector Out)
{
return

Out = lerp(Base, Out, Opacity);
}";
}

[Slot(3, Binding.None, 1, 1, 1, 1)] Vector1 Opacity,
[Slot(2, Binding.None)] out DynamicDimensionVector Out)
{
return

Out = lerp(Base, Out, Opacity);
}";
}

[Slot(3, Binding.None, 1, 1, 1, 1)] Vector1 Opacity,
[Slot(2, Binding.None)] out DynamicDimensionVector Out)
{
return

Out = lerp(Base, Out, Opacity);
}";
}

[Slot(3, Binding.None, 1, 1, 1, 1)] Vector1 Opacity,
[Slot(2, Binding.None)] out DynamicDimensionVector Out)
{
return

Out = lerp(Base, Out, Opacity);
}";
}

[Slot(3, Binding.None, 1, 1, 1, 1)] Vector1 Opacity,
[Slot(2, Binding.None)] out DynamicDimensionVector Out)
{
return

Out = lerp(Base, Out, Opacity);
}";
}

[Slot(3, Binding.None, 1, 1, 1, 1)] Vector1 Opacity,
[Slot(2, Binding.None)] out DynamicDimensionVector Out)
{
return

{precision}{slot2dimension} result2 = 2.0 * Base * Blend;
{precision}{slot2dimension} zeroOrOne = step(Base, 0.5);
Out = result2 * zeroOrOne + (1 - zeroOrOne) * result1;
Out = lerp(Base, Out, Opacity);
}
";
}

[Slot(1, Binding.None)] DynamicDimensionVector Blend,
[Slot(3, Binding.None, 1, 1, 1, 1)] Vector1 Opacity,
[Slot(2, Binding.None)] out DynamicDimensionVector Out)
{
return

{precision}{slot2dimension} result1 = check * max(2.0 * (Base - 0.5), Blend);
Out = result1 + (1.0 - check) * min(2.0 * Base, Blend);
Out = lerp(Base, Out, Opacity);
}
";
}

[Slot(1, Binding.None)] DynamicDimensionVector Blend,
[Slot(3, Binding.None, 1, 1, 1, 1)] Vector1 Opacity,
[Slot(2, Binding.None)] out DynamicDimensionVector Out)
{
return

{precision}{slot2dimension} result2 = sqrt(Base) * (2.0 * Blend - 1.0) + 2.0 * Base * (1.0 - Blend);
{precision}{slot2dimension} zeroOrOne = step(0.5, Blend);
Out = result2 * zeroOrOne + (1 - zeroOrOne) * result1;
Out = lerp(Base, Out, Opacity);
}
";
}

[Slot(1, Binding.None)] DynamicDimensionVector Blend,
[Slot(3, Binding.None, 1, 1, 1, 1)] Vector1 Opacity,
[Slot(2, Binding.None)] out DynamicDimensionVector Out)
{
return

{precision}{slot2dimension} result2 = Blend / (2.0 * (1.0 - Base));
{precision}{slot2dimension} zeroOrOne = step(0.5, Base);
Out = result2 * zeroOrOne + (1 - zeroOrOne) * result1;
Out = lerp(Base, Out, Opacity);
}
";
}

[Slot(1, Binding.None)] DynamicDimensionVector Blend,
[Slot(3, Binding.None, 1, 1, 1, 1)] Vector1 Opacity,
[Slot(2, Binding.None)] out DynamicDimensionVector Out)
{
return

Out = lerp(Base, Out, Opacity);
}
";
}

9
MaterialGraphProject/Assets/UnityShaderEditor/Editor/Data/Nodes/Artistic/Mask/ColorMaskNode.cs


[Slot(0, Binding.None)] Vector3 In,
[Slot(1, Binding.None)] ColorRGB MaskColor,
[Slot(2, Binding.None)] Vector1 Range,
[Slot(3, Binding.None)] out Vector3 Out)
[Slot(4, Binding.None)] Vector1 Fuzziness,
[Slot(3, Binding.None)] out Vector1 Out)
Out = Vector3.zero;
{precision}3 col = {precision}3(0, 0, 0);
if(Distance <= Range)
col = {precision}3(1, 1, 1);
Out = col;
Out = saturate(1 - (Distance - Range) / max(Fuzziness, 1e-5));
}";
}
}
正在加载...
取消
保存