浏览代码

Small fix for gradient node

/main
Peter Bay Bastian 7 年前
当前提交
fd78eaed
共有 2 个文件被更改,包括 4 次插入11 次删除
  1. 13
      MaterialGraphProject/Assets/NewNodes/Editor/Keep/GradientNode.cs
  2. 2
      MaterialGraphProject/Assets/UnityShaderEditor/Editor/Testing/IntegrationTests/Graphs/Gradient.ShaderGraph

13
MaterialGraphProject/Assets/NewNodes/Editor/Keep/GradientNode.cs


public void GenerateNodeCode(ShaderGenerator visitor, GenerationMode generationMode)
{
var rgbaOutputName = GetVariableNameForSlot(RGBAOutputSlotId);
visitor.AddShaderChunk(string.Format("{0}4 {1};", precision, rgbaOutputName), false);
visitor.AddShaderChunk(string.Format("{0}4 {1} = {0}4({2}.rgb, {3}.r);", precision, rgbaOutputName, GetColorKeyName(0), GetAlphaKeyName(0)), false);
visitor.AddShaderChunk("{", false);
visitor.Indent();

// Color interpolation
visitor.AddShaderChunk(string.Format("{1}3 gradientColor = {0}.rgb;", GetColorKeyName(0), precision), false);
{
visitor.AddShaderChunk(string.Format("gradientColor = lerp(gradientColor, {1}.rgb, smoothstep({0}.a, {1}.a, {2}));", GetColorKeyName(i), GetColorKeyName(i + 1), timeInputValue), false);
}
visitor.AddShaderChunk(string.Format("{3}.rgb = lerp({3}.rgb, {1}.rgb, smoothstep({0}.a, {1}.a, {2}));", GetColorKeyName(i), GetColorKeyName(i + 1), timeInputValue, rgbaOutputName), false);
visitor.AddShaderChunk(string.Format("{1} gradientAlpha = {0}.r;", GetAlphaKeyName(0), precision), false);
visitor.AddShaderChunk(string.Format("gradientAlpha = lerp(gradientAlpha, {1}.r, smoothstep({0}.g, {1}.g, {2}));", GetAlphaKeyName(i), GetAlphaKeyName(i + 1), timeInputValue), false);
//Result
visitor.AddShaderChunk(string.Format("{0} = float4(gradientColor, gradientAlpha);", rgbaOutputName), false);
visitor.AddShaderChunk(string.Format("{3}.a = lerp({3}.a, {1}.r, smoothstep({0}.g, {1}.g, {2}));", GetAlphaKeyName(i), GetAlphaKeyName(i + 1), timeInputValue, rgbaOutputName), false);
}
visitor.Deindent();
visitor.AddShaderChunk("}", false);

2
MaterialGraphProject/Assets/UnityShaderEditor/Editor/Testing/IntegrationTests/Graphs/Gradient.ShaderGraph
文件差异内容过多而无法显示
查看文件

正在加载...
取消
保存