浏览代码

Merge pull request #1568 from Unity-Technologies/sg/fix-dielectric-specular-control

Fix dielectric specular control
/main
GitHub 6 年前
当前提交
2801eb36
共有 2 个文件被更改,包括 7 次插入10 次删除
  1. 1
      com.unity.shadergraph/CHANGELOG.md
  2. 16
      com.unity.shadergraph/Editor/Drawing/Controls/DielectricSpecularControl.cs

1
com.unity.shadergraph/CHANGELOG.md


- Deserialization of subgraphs now works correctly.
- Sub graphs are now suffixed with (sub), so you can tell them apart from other nodes.
- The preview of a node does not obstruct the selection outliner anymore.
- The Dielectric Specular node no longer resets its control values.
- HD PBR subshader no longer duplicates surface description code into vertex shader.
- You can now copy, paste, and duplicate sub-graph nodes with vector type input ports.
- If the current render pipeline is not compatible, master nodes now display an error badge.

16
com.unity.shadergraph/Editor/Drawing/Controls/DielectricSpecularControl.cs


m_RangePanel = new VisualElement { name = "sliderPanel" };
m_RangePanel.Add(new Label("Range"));
Action<float> changedRangeSlider = (s) => { OnChangeRangeSlider(s); };
m_RangeSlider = new Slider(0.01f, 1, changedRangeSlider);
m_RangeSlider.value = 0.5f;
m_RangeSlider = new Slider(0.01f, 1, changedRangeSlider) { value = m_DielectricMaterial.range };
m_RangePanel.SetEnabled(true);
m_RangePanel.SetEnabled(m_DielectricMaterial.type == DielectricMaterialType.Common);
m_IORSlider = new Slider(1, 5, changedIORSlider);
m_IORSlider.value = 1;
m_IORSlider = new Slider(1, 2.5f, changedIORSlider) { value = m_DielectricMaterial.indexOfRefraction };
m_IORPanel.SetEnabled(false);
m_IORPanel.SetEnabled(m_DielectricMaterial.type == DielectricMaterialType.Custom);
Add(m_IORPanel);
}

value = Mathf.Max(Mathf.Min(value, 1), 0.01f);
m_RangePanel.Remove(m_RangeSlider);
Action<float> changedSlider = (s) => { OnChangeRangeSlider(s); };
m_RangeSlider = new Slider(0.01f, 1, changedSlider);
m_RangeSlider.value = value;
m_RangeSlider = new Slider(0.01f, 1, changedSlider) { value = value };
m_RangePanel.Add(m_RangeSlider);
m_RangePanel.Remove(m_RangeField);
m_RangeField.value = value;

value = Mathf.Max(Mathf.Min(value, 5), 1);
m_IORPanel.Remove(m_IORSlider);
Action<float> changedSlider = (s) => { OnChangeIORSlider(s); };
m_IORSlider = new Slider(1, 5, changedSlider);
m_IORSlider.value = value;
m_IORSlider = new Slider(1, 2.5f, changedSlider) { value = value };
m_IORPanel.Add(m_IORSlider);
m_IORPanel.Remove(m_IORField);
m_IORField.value = value;

正在加载...
取消
保存