Skip to content

[ShaderGraph] Stack Master #30

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 86 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
17ec7f2
Add Contexts
Kink3d Feb 13, 2020
1d118a9
Move to hardcoding as much as possible
Kink3d Feb 17, 2020
925efbd
Basic BlockNode
Kink3d Feb 17, 2020
7dc836c
Remove GraphEditorView roundtrip
Kink3d Feb 18, 2020
fd6fdae
First pass change handling for view layer
Kink3d Feb 18, 2020
1a13269
Switch to guids for block referencing
Kink3d Feb 19, 2020
ae51d94
Minor cleanup
Kink3d Feb 19, 2020
9c86708
Dont allow dragging Blocks onto GraphView
Kink3d Feb 20, 2020
5dfeec6
Generate blocks from descriptors
Kink3d Feb 21, 2020
dae3e15
Fix Undo
Kink3d Feb 24, 2020
529e4e7
Merge branch 'master' into sg/stack-master-v2
Kink3d Mar 4, 2020
96abba6
First pass block compatibility
Kink3d Mar 4, 2020
0811a44
First pass codegen
Kink3d Mar 4, 2020
dd17488
Add temporary InspectorView and reintroduce targets GUI
Kink3d Mar 5, 2020
b57b470
First pass per-pipeline data objects
Kink3d Mar 5, 2020
5fdcc18
Generate code from data objects
Kink3d Mar 6, 2020
4427e8b
Cleanup
Kink3d Mar 6, 2020
5c91fa6
Minor improvements
Kink3d Mar 9, 2020
4ae5336
Improvements to controls
Kink3d Mar 9, 2020
629b40d
Cleanup and comment inspector
Kink3d Mar 10, 2020
7a196d5
Simplify data and inspector code
Kink3d Mar 10, 2020
cb39b84
Minor improvements to target datas
Kink3d Mar 10, 2020
238806d
Move serialized data to Implementations (No serialization)
Kink3d Mar 12, 2020
0f73cd9
Move implementation ownership to GenerationTarget (No serialization)
Kink3d Mar 12, 2020
ec69d60
Serialize GenerationTargets
Kink3d Mar 12, 2020
bb767f6
Generate full descriptions using temporary nodes
Kink3d Mar 13, 2020
3e11650
Cleanup and fixes
Kink3d Mar 13, 2020
dab09aa
First pass preview refactor (remove IMasterNode)
Kink3d Mar 16, 2020
cbe567a
Move master code view calls to the asset editor
Kink3d Mar 17, 2020
d06eadc
Merge branch 'master' into sg/stack-master-v2
Kink3d Mar 17, 2020
79742d3
Fix various issues with copy/paste and groups
Kink3d Mar 17, 2020
d15550b
Fix active state when changing edges into disabled blocks
Kink3d Mar 18, 2020
a109901
Add active state to PropertyNodeView
Kink3d Mar 18, 2020
df30880
Fix configured textures
Kink3d Mar 18, 2020
bd7a15f
Temp fix for block serialization on assembly reload
Kink3d Mar 18, 2020
e056362
Update preview properties from temporary blocknodes
Kink3d Mar 18, 2020
c746157
Fix Universal mesh TargetImplementation
Kink3d Mar 18, 2020
05097e4
Fix preview for VFXTarget
Kink3d Mar 18, 2020
2331568
Allow multiple subshaders per target implementation
Kink3d Mar 18, 2020
ee8b4f3
Fix generation with keywords
Kink3d Mar 18, 2020
c7f64aa
Re-enable VFX asset generation
Kink3d Mar 18, 2020
f66c8cb
Add Copy Shader option to SG editor
Kink3d Mar 19, 2020
63643db
Fix various preview issues
Kink3d Mar 19, 2020
f58e278
Fix preview generation on assembly reload
Kink3d Mar 19, 2020
d8883d5
Half working HD Unlit port
Kink3d Mar 23, 2020
6a9c18d
Add HD Unlit settings
Kink3d Mar 23, 2020
c6137cd
Partial HD Lit port (no GUI)
Kink3d Mar 24, 2020
768c38b
Invert Target API and update URP integration
Kink3d Mar 26, 2020
0e5eae9
Port Unlit and PBR for HDRP
Kink3d Mar 26, 2020
531aab9
Port HD Unlit
Kink3d Mar 26, 2020
14a21ee
Merge branch 'master' into sg/target-inversion
Kink3d Mar 26, 2020
5fb79f2
Port HD Lit
Kink3d Mar 26, 2020
aa3822d
Port HD Decal
Kink3d Mar 26, 2020
a60c26c
Port HD Eye, Fabric and Hair
Kink3d Mar 27, 2020
aaa2528
Port HD StackLit
Kink3d Mar 27, 2020
77ad056
Cleanup leftover HD port code
Kink3d Mar 27, 2020
f8d7e93
Reimplement custom shader GUI as per-Target
Kink3d Mar 27, 2020
bf42d9e
Merge branch 'master' into sg/target-inversion
Kink3d Mar 27, 2020
908c96d
Merge HD Hair and StackLit raytracing changes
Kink3d Mar 27, 2020
27c5ea4
Fix Universal graphics tests
Kink3d Mar 27, 2020
63bd8b2
[SkipCI] Merge branch 'master' into sg/target-inversion
Kink3d Mar 30, 2020
6ae5c2a
[SkipCI] Re-apply playstation pragma change
Kink3d Mar 30, 2020
2c7ec97
[Skip CI] Revert bad merge
Kink3d Mar 30, 2020
99ee5bb
Merge branch 'master' into sg/target-inversion
Kink3d Mar 30, 2020
2c13073
Merge branch 'sg/target-inversion' into sg/stack-master-v2
Kink3d Mar 30, 2020
906f0eb
Fix up after target inversion merge
Kink3d Mar 31, 2020
9ee198f
Reimplement custom editor GUI
Kink3d Apr 1, 2020
1bc1fde
Update HD Lit and Unlit (comment out other SubTargets)
Kink3d Apr 2, 2020
728674b
Add IsActive to targets. Use to do pipeline aware preview processing.
Kink3d Apr 2, 2020
47d21e9
Merge branch 'master' into sg/stack-master-v2
Kink3d Apr 7, 2020
cc474e6
Fix URP after merge
Kink3d Apr 7, 2020
42da166
Make HDRP compile (comment out SG integrations)
Kink3d Apr 7, 2020
4634b01
Merge remote-tracking branch 'origin/master' into sg/stack-master-v2
Kink3d Apr 15, 2020
673ad0e
Fix after merge
Kink3d Apr 15, 2020
f2ab9c6
Recomment SubTargets
Kink3d Apr 15, 2020
a9effa5
Move active blocks init to GraphEditorView
Kink3d Apr 15, 2020
b0feb91
Re-enable caching of search window entries
Kink3d Apr 15, 2020
2ef6f91
Merge remote-tracking branch 'origin/master' into sg/stack-master-v2
Kink3d Apr 16, 2020
156d6e5
Merge back core changes from HDRP branch
Kink3d Apr 17, 2020
c1ecfb2
Add isHidden flag for Blocks
Kink3d Apr 22, 2020
ca969fc
UpdateActiveBlocks on block deletion
Kink3d Apr 22, 2020
5479dfa
Fix requirements from Blocks
Kink3d Apr 22, 2020
7286150
Improve block requirement handling
Kink3d Apr 22, 2020
e5cd18a
Fix preview target
Kink3d Apr 22, 2020
1461426
Fix fragment normal block descriptors
Kink3d Apr 22, 2020
0dd4b8f
Fix Sprite normals
Kink3d Apr 22, 2020
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 @@ -4,10 +4,11 @@ namespace UnityEditor.Rendering.HighDefinition
{
static class CreateDecalShaderGraph
{
[MenuItem("Assets/Create/Shader/HDRP/Decal Graph", false, 208)]
public static void CreateMaterialGraph()
{
GraphUtil.CreateNewGraph(new DecalMasterNode());
}
// TODO: Reimplement
// [MenuItem("Assets/Create/Shader/HDRP/Decal Shader Graph", false, 208)]
// public static void CreateDecalGraph()
// {
// GraphUtil.CreateNewGraph<DecalTarget>();
// }
}
}

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,136 +1,136 @@
using UnityEngine.UIElements;
using UnityEditor.Graphing.Util;
using UnityEditor.ShaderGraph.Drawing;
using UnityEditor.ShaderGraph.Drawing.Controls;

namespace UnityEditor.Rendering.HighDefinition.Drawing
{
class DecalSettingsView : MasterNodeSettingsView
{
DecalMasterNode m_Node;

Label CreateLabel(string text, int indentLevel)
{
string label = "";
for (var i = 0; i < indentLevel; i++)
{
label += " ";
}
return new Label(label + text);
}

public DecalSettingsView(DecalMasterNode node) : base(node)
{
m_Node = node;
PropertySheet ps = new PropertySheet();

int indentLevel = 0;

ps.Add(new PropertyRow(CreateLabel("Affect BaseColor", indentLevel)), (row) =>
{
row.Add(new Toggle(), (toggle) =>
{
toggle.value = m_Node.affectsAlbedo.isOn;
toggle.RegisterValueChangedCallback(ChangeAffectsAlbedo);
});
});

ps.Add(new PropertyRow(CreateLabel("Affects Normal", indentLevel)), (row) =>
{
row.Add(new Toggle(), (toggle) =>
{
toggle.value = m_Node.affectsNormal.isOn;
toggle.RegisterValueChangedCallback(ChangeAffectsNormal);
});
});

ps.Add(new PropertyRow(CreateLabel("Affects Metal", indentLevel)), (row) =>
{
row.Add(new Toggle(), (toggle) =>
{
toggle.value = m_Node.affectsMetal.isOn;
toggle.RegisterValueChangedCallback(ChangeAffectsMetal);
});
});

ps.Add(new PropertyRow(CreateLabel("Affects AO", indentLevel)), (row) =>
{
row.Add(new Toggle(), (toggle) =>
{
toggle.value = m_Node.affectsAO.isOn;
toggle.RegisterValueChangedCallback(ChangeAffectsAO);
});
});

ps.Add(new PropertyRow(CreateLabel("Affects Smoothness", indentLevel)), (row) =>
{
row.Add(new Toggle(), (toggle) =>
{
toggle.value = m_Node.affectsSmoothness.isOn;
toggle.RegisterValueChangedCallback(ChangeAffectsSmoothness);
});
});

ps.Add(new PropertyRow(CreateLabel("Affects Emission", indentLevel)), (row) =>
{
row.Add(new Toggle(), (toggle) =>
{
toggle.value = m_Node.affectsEmission.isOn;
toggle.RegisterValueChangedCallback(ChangeAffectsEmission);
});
});

Add(ps);
Add(GetShaderGUIOverridePropertySheet());
}

void ChangeAffectsAlbedo(ChangeEvent<bool> evt)
{
m_Node.owner.owner.RegisterCompleteObjectUndo("Affects Albedo Change");
ToggleData td = m_Node.affectsAlbedo;
td.isOn = evt.newValue;
m_Node.affectsAlbedo = td;
}

void ChangeAffectsNormal(ChangeEvent<bool> evt)
{
m_Node.owner.owner.RegisterCompleteObjectUndo("Affects Normal Change");
ToggleData td = m_Node.affectsNormal;
td.isOn = evt.newValue;
m_Node.affectsNormal = td;
}

void ChangeAffectsMetal(ChangeEvent<bool> evt)
{
m_Node.owner.owner.RegisterCompleteObjectUndo("Affects Metal Change");
ToggleData td = m_Node.affectsMetal;
td.isOn = evt.newValue;
m_Node.affectsMetal = td;
}

void ChangeAffectsAO(ChangeEvent<bool> evt)
{
m_Node.owner.owner.RegisterCompleteObjectUndo("Affects AO Change");
ToggleData td = m_Node.affectsAO;
td.isOn = evt.newValue;
m_Node.affectsAO = td;
}

void ChangeAffectsSmoothness(ChangeEvent<bool> evt)
{
m_Node.owner.owner.RegisterCompleteObjectUndo("Affects Smoothness Change");
ToggleData td = m_Node.affectsSmoothness;
td.isOn = evt.newValue;
m_Node.affectsSmoothness = td;
}

void ChangeAffectsEmission(ChangeEvent<bool> evt)
{
m_Node.owner.owner.RegisterCompleteObjectUndo("Affects Emission Change");
ToggleData td = m_Node.affectsEmission;
td.isOn = evt.newValue;
m_Node.affectsEmission = td;
}

}
}
// using UnityEngine.UIElements;
// using UnityEditor.Graphing.Util;
// using UnityEditor.ShaderGraph.Drawing;
// using UnityEditor.ShaderGraph.Drawing.Controls;

// namespace UnityEditor.Rendering.HighDefinition.Drawing
// {
// class DecalSettingsView : MasterNodeSettingsView
// {
// DecalMasterNode m_Node;

// Label CreateLabel(string text, int indentLevel)
// {
// string label = "";
// for (var i = 0; i < indentLevel; i++)
// {
// label += " ";
// }
// return new Label(label + text);
// }

// public DecalSettingsView(DecalMasterNode node) : base(node)
// {
// m_Node = node;
// PropertySheet ps = new PropertySheet();

// int indentLevel = 0;

// ps.Add(new PropertyRow(CreateLabel("Affect BaseColor", indentLevel)), (row) =>
// {
// row.Add(new Toggle(), (toggle) =>
// {
// toggle.value = m_Node.affectsAlbedo.isOn;
// toggle.RegisterValueChangedCallback(ChangeAffectsAlbedo);
// });
// });

// ps.Add(new PropertyRow(CreateLabel("Affects Normal", indentLevel)), (row) =>
// {
// row.Add(new Toggle(), (toggle) =>
// {
// toggle.value = m_Node.affectsNormal.isOn;
// toggle.RegisterValueChangedCallback(ChangeAffectsNormal);
// });
// });

// ps.Add(new PropertyRow(CreateLabel("Affects Metal", indentLevel)), (row) =>
// {
// row.Add(new Toggle(), (toggle) =>
// {
// toggle.value = m_Node.affectsMetal.isOn;
// toggle.RegisterValueChangedCallback(ChangeAffectsMetal);
// });
// });

// ps.Add(new PropertyRow(CreateLabel("Affects AO", indentLevel)), (row) =>
// {
// row.Add(new Toggle(), (toggle) =>
// {
// toggle.value = m_Node.affectsAO.isOn;
// toggle.RegisterValueChangedCallback(ChangeAffectsAO);
// });
// });

// ps.Add(new PropertyRow(CreateLabel("Affects Smoothness", indentLevel)), (row) =>
// {
// row.Add(new Toggle(), (toggle) =>
// {
// toggle.value = m_Node.affectsSmoothness.isOn;
// toggle.RegisterValueChangedCallback(ChangeAffectsSmoothness);
// });
// });

// ps.Add(new PropertyRow(CreateLabel("Affects Emission", indentLevel)), (row) =>
// {
// row.Add(new Toggle(), (toggle) =>
// {
// toggle.value = m_Node.affectsEmission.isOn;
// toggle.RegisterValueChangedCallback(ChangeAffectsEmission);
// });
// });

// Add(ps);
// Add(GetShaderGUIOverridePropertySheet());
// }

// void ChangeAffectsAlbedo(ChangeEvent<bool> evt)
// {
// m_Node.owner.owner.RegisterCompleteObjectUndo("Affects Albedo Change");
// ToggleData td = m_Node.affectsAlbedo;
// td.isOn = evt.newValue;
// m_Node.affectsAlbedo = td;
// }

// void ChangeAffectsNormal(ChangeEvent<bool> evt)
// {
// m_Node.owner.owner.RegisterCompleteObjectUndo("Affects Normal Change");
// ToggleData td = m_Node.affectsNormal;
// td.isOn = evt.newValue;
// m_Node.affectsNormal = td;
// }

// void ChangeAffectsMetal(ChangeEvent<bool> evt)
// {
// m_Node.owner.owner.RegisterCompleteObjectUndo("Affects Metal Change");
// ToggleData td = m_Node.affectsMetal;
// td.isOn = evt.newValue;
// m_Node.affectsMetal = td;
// }

// void ChangeAffectsAO(ChangeEvent<bool> evt)
// {
// m_Node.owner.owner.RegisterCompleteObjectUndo("Affects AO Change");
// ToggleData td = m_Node.affectsAO;
// td.isOn = evt.newValue;
// m_Node.affectsAO = td;
// }

// void ChangeAffectsSmoothness(ChangeEvent<bool> evt)
// {
// m_Node.owner.owner.RegisterCompleteObjectUndo("Affects Smoothness Change");
// ToggleData td = m_Node.affectsSmoothness;
// td.isOn = evt.newValue;
// m_Node.affectsSmoothness = td;
// }

// void ChangeAffectsEmission(ChangeEvent<bool> evt)
// {
// m_Node.owner.owner.RegisterCompleteObjectUndo("Affects Emission Change");
// ToggleData td = m_Node.affectsEmission;
// td.isOn = evt.newValue;
// m_Node.affectsEmission = td;
// }

// }
// }
Loading