- 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
- Old TextureSampler nodes
- WorldNormalsFromDepth node
- 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
- Remove legacy UpgradeSubgraphProjects() editor toolbar menu option
- Fix custom function node usage inside instanced subgraphs
- 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.
- Some old node upgrader steps for older project versions
- 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.
- 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.
- 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
- 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
- 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
- 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 ProjectConverter converting all the TextureSampler nodes to just TextureSampler. Now it converts to the respective nodes.
- 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
- Sample Normal GBuffer node
- Sample Roughness GBuffer node
- ConnectNode function in BaseNodePlus class
- Experimental option to convert ShaderGraph graphs into ShaderGraphPlus graphs
- Can now cast an Int ResultType to the 4 other float types.
- Custom c# ShaderGraph nodes cannot be converted.
- Converter dialog window can sometimes take awhile to open.
- Subgraph Input Node
- Subgraph Output Node
- Switch Node
- Comparison Node
- Generated Code Dock
- Sampler struct & Sampler node.
- Result Node breaking connections on graph load.
- Ability for Parameter nodes to have a name in subgraphs.
- 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.
- 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.
- 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.
- The ability to define Texture inputs in Subgraphs
- 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