🧼 Improved
  • Code cleanup and refactoring
  • Separated 'ParameterUI' into different structs for different types while sharing the same interface. Float types get 'FloatParameterUI' while bool gets 'BoolParameterUI', etc...
  • Make sure DeserializeNodes deserializes from base node class 'BaseNodePlus' and not from 'BaseNode' of 'Editor.ShaderGraph'.
  • Added Hidden bool property to 'ProjectTemplate' metadata
  • Updated project templates
🚯 Removed
  • Old TextureSampler nodes
  • WorldNormalsFromDepth node
⚠️ Known Issues
  • BlendingSurface domain is broken and as such is hidden for the time being until it is fixed. The template is hidden as well from the Project Creator
🚯 Removed
  • Remove legacy UpgradeSubgraphProjects() editor toolbar menu option
  • Fix custom function node usage inside instanced subgraphs
🧼 Improved
  • Updated NodeUI to add a little outline around the node similar to blenders node ui.
  • Changed some of the node deserialization code to start trying to handle node upgrades better.
🚯 Removed
  • Some old node upgrader steps for older project versions
🎁 Added
  • All node ( bool logic )
  • And node ( bool logic )
  • Any node ( bool logic )
  • IsInfinate node ( bool logic )
  • IsNan node ( bool logic )
  • Nand node ( bool logic )
  • Not node ( bool logic )
  • Or node ( bool logic )
  • Matrix Split node
  • Gradient Value Editor for the Gradient node.
🧼 Improved
  • Matrix types Float2x2, Float3x3 & Float4x4 can now be passed in and out of subgraphs.
  • Gradient type can now be passed in and out of subgraphs.
🧼 Improved
  • The editor will now update all parameter nodes in the graph from the blackboard when opening a graph from disk
  • Parameter node titles are now only display the Node Icon and the parameter name. Rather than before with : Icon + Node type + Parameter name
  • Minor code cleanup
🚯 Removed
  • The ability for TextureSampler nodes to be able to define a parameter. If you want to define a Texture2D parameter, then add one with the blackboard or the graphView with : right click ---> Create Parameter ---> Texture2D, but when in a subgraph you can do right click ---> Create Subgraph Input ---> Texture2D
🎁 Added
  • Forked NodeGraph API & NodeEdior code from Base Editor Libary
  • Viewport node
  • Named Reroute Declaration node
  • Named Reroute node
  • Blackboard
  • Constant Bool, Int, Float, Float2, Float3, Float4 & Color nodes
  • Added Float4ParameterNode
  • BooleanFeatureSwitch node that replaces the old static switch node
  • Shader Feature Enum & EnumShaderFeature node
  • Ability to change and or reset preview model yaw rotation in preview settings popup
  • Ability to set and save the current Preview viewport view mode
🧼 Improved
  • Made the headers for the nodes a bit more colorful
  • Moved AssetBrowser Create New Asset action for Graph And Subgraph assets to "New/Shader"
  • Renamed NodeInput "UV" on Depth node to "ScreenPosition"
  • Comment nodes can now be set to any color rather than a preset few colors
  • Renamed DepthIntersectionNode class to DepthFadeNode
  • Separated constant parameter type responsibility from IParameter nodes. Meaning ParameterNodes are always a parameter now, never a constant.
  • Renamed parameter node classes since now that dedicated constant nodes exist
  • Updated and renamed the TextureSampler node classes
🪛 Fixed
  • Fixed ProjectConverter converting all the TextureSampler nodes to just TextureSampler. Now it converts to the respective nodes.
🚯 Removed
  • Removed the ability for the Static Switch node to define a Shader Feature. They are now defined at the graph level in the blackboard
  • Old FunctionResult node
  • Old StaticSwitch node
🎁 Added
  • Sample Normal GBuffer node
  • Sample Roughness GBuffer node
  • ConnectNode function in BaseNodePlus class
  • Experimental option to convert ShaderGraph graphs into ShaderGraphPlus graphs
🧼 Improved
  • Can now cast an Int ResultType to the 4 other float types.
⚠️ Known Issues
  • Custom c# ShaderGraph nodes cannot be converted.
  • Converter dialog window can sometimes take awhile to open.
🎁 Added
  • Subgraph Input Node
  • Subgraph Output Node
  • Switch Node
  • Comparison Node
  • Generated Code Dock
🧼 Improved
  • Sampler struct & Sampler node.
🪛 Fixed
  • Result Node breaking connections on graph load.
🚯 Removed
  • Ability for Parameter nodes to have a name in subgraphs.
⚠️ Known Issues
  • Unnecessary SamplerState properties can get generated. They don't cause any harm as properties that are not used will be compiled out. Still needs to be fixed though.
🎁 Added
  • Static Switch Node.
  • Get Dimensions Node.
  • Texture Cube Object node.
  • Ability for Sampler node result to be input into subgraphs.
  • Ability for TextureObject node result to be input into subgraphs.
  • Texture Object input to Texture Sampler node.
  • Texture Object input to Texture Triplanar node.
  • Texture Object input to Normal Map Triplanar node.
  • Texture Cube Object input to Texture Cube node.
  • Added DXT3, ATI1N, ATI2N, BC6H, & RGBA16161616F to the enum of available to Image formats to choose from in the TextureInput property to the Texture Object node and Texture Sampler nodes.
  • Exposed bool toggle on the Branch node as an Node input ( When left unconnected the Branch Node will revert to the old behavior ).
  • `CanPreview` virtual bool to the `BaseNode` class so a node can tell the editor that it can be previewed or not.
🧼 Improved
  • TextureObject ---> Texture2DObject
  • Texture 2D Object Nodes with the same name will sync their Texture Input data between each other. Even the Image path is synced.
🚯 Removed
  • The ability to define Texture inputs in Subgraphs
⚠️ Known Issues
  • Texture 2D Object & Sampler Node inputs of a subgraph are required no matter what.
  • Texture Cube Node is a bit buggy may or may not throw exceptions