var nodeList = new Array();nodeList[0] = "main"; nodeList[1] = "add"; nodeList[2] = "subtract"; nodeList[3] = "multiply"; nodeList[4] = "divide"; nodeList[5] = "reciprocal"; nodeList[6] = "power"; nodeList[7] = "sqrt"; nodeList[8] = "log"; nodeList[9] = "min"; nodeList[10] = "max"; nodeList[11] = "abs"; nodeList[12] = "sign"; nodeList[13] = "ceil"; nodeList[14] = "round"; nodeList[15] = "floor"; nodeList[16] = "trunc"; nodeList[17] = "step (a <= b)"; nodeList[18] = "smoothstep"; nodeList[19] = "if"; nodeList[20] = "frac"; nodeList[21] = "fmod"; nodeList[22] = "clamp"; nodeList[23] = "clamp (simple)"; nodeList[24] = "clamp 0-1"; nodeList[25] = "lerp"; nodeList[26] = "lerp (simple)"; nodeList[27] = "inverselerp"; nodeList[28] = "posterize"; nodeList[29] = "blend"; nodeList[30] = "remap"; nodeList[31] = "remap (simple)"; nodeList[32] = "noise"; nodeList[33] = "one minus"; nodeList[34] = "negate"; nodeList[35] = "exp"; nodeList[36] = "hue"; nodeList[37] = "hsv to rgb"; nodeList[38] = "rgb to hsv"; nodeList[39] = "value"; nodeList[40] = "vector 2"; nodeList[41] = "vector 3"; nodeList[42] = "vector 4"; nodeList[43] = "texture 2d"; nodeList[44] = "texture asset"; nodeList[45] = "value (property)"; nodeList[46] = "vector 4 (property)"; nodeList[47] = "color"; nodeList[48] = "cubemap"; nodeList[49] = "slider"; nodeList[50] = "switch"; nodeList[51] = "toggle"; nodeList[52] = "dot product"; nodeList[53] = "cross product"; nodeList[54] = "reflect"; nodeList[55] = "normalize"; nodeList[56] = "append"; nodeList[57] = "component mask"; nodeList[58] = "desaturate"; nodeList[59] = "channel blend"; nodeList[60] = "normal blend"; nodeList[61] = "distance"; nodeList[62] = "length"; nodeList[63] = "transform"; nodeList[64] = "vector projection"; nodeList[65] = "vector rejection"; nodeList[66] = "ddx"; nodeList[67] = "ddy"; nodeList[68] = "ddxy"; nodeList[69] = "panner"; nodeList[70] = "rotator"; nodeList[71] = "parallax"; nodeList[72] = "uv tile"; nodeList[73] = "uv coordinates"; nodeList[74] = "object position"; nodeList[75] = "object scale"; nodeList[76] = "screen position"; nodeList[77] = "world position"; nodeList[78] = "vertex color"; nodeList[79] = "fresnel"; nodeList[80] = "normal direction"; nodeList[81] = "bitangent direction"; nodeList[82] = "tangent direction"; nodeList[83] = "view direction"; nodeList[84] = "view reflection"; nodeList[85] = "face sign"; nodeList[86] = "light color"; nodeList[87] = "light attenuation"; nodeList[88] = "ambient light"; nodeList[89] = "light direction"; nodeList[90] = "half direction"; nodeList[91] = "light position"; nodeList[92] = "time"; nodeList[93] = "view position"; nodeList[94] = "projection parameters"; nodeList[95] = "screen parameters"; nodeList[96] = "pixel size"; nodeList[97] = "fog color"; nodeList[98] = "scene color"; nodeList[99] = "scene depth"; nodeList[100] = "depth blend"; nodeList[101] = "depth"; nodeList[102] = "pi"; nodeList[103] = "tau"; nodeList[104] = "phi (golden ratio)"; nodeList[105] = "root 2"; nodeList[106] = "e (euler's constant)"; nodeList[107] = "sin"; nodeList[108] = "cos"; nodeList[109] = "tan"; nodeList[110] = "arcsin"; nodeList[111] = "arccos"; nodeList[112] = "arctan"; nodeList[113] = "arctan2"; nodeList[114] = "matrix 4x4"; nodeList[115] = "matrix 4x4 property"; nodeList[116] = "multiply matrix"; nodeList[117] = "transpose"; nodeList[118] = "code"; nodeList[119] = "relay"; nodeList[120] = "set"; nodeList[121] = "get"; function scrollTo(hash) { location.hash = "#" + hash; } function OnUpdateSearchField(){ var searchString = document.getElementsByName("searchfield")[0].value.toLowerCase().trim(); searchString = searchString.replace(/\s+/g, ''); var alwaysShow = true; if(searchString.length > 0) alwaysShow = false; var matchedAny = false; for(var i=0;i Shader Forge
“It turns the dark and strange arts of shader programming into something understandable and non-evil”
Nicklas 'Nifflas' Nygren, developer of the Knytt series

Changelog



New in Shader Forge 1.38: (Latest release. Unity 5.6 or later required)
• Source code is now included
• Added node: Pixel Size
• The Scene Depth node now has a UV input
• Stencil buffer properties can now be exposed to the inspector
• Fixed a bug where time animated twice as fast while Shader Forge was open
• Removed unnecessarily compiled screen position interpolator
Discuss this update




New in Shader Forge 1.37: (Unity 5.6 or later required)
• The 3D preview now runs much faster and is no longer capped at 40 fps (it is now 60)
• Fixed a bug that prevented SF from opening in Unity 2017.x
• Fixed a bug causing errors in the shader inspector in Unity 5.6+
• The post effect preset is now properly constructed to match Unity's OnRenderImage post-process system
• Fixed a bug that added unnecessary view reflection code to shaders
• Shader code is now using UnityObjectToClipPos(x) instead of mul(UNITY_MATRIX_MVP,x)
Discuss this update




New in Shader Forge 1.36: (Unity 5.5 or later required)
• You can now include custom .cginc files. Useful for calling functions in the code node
• Fixed a bug where the node browser was invisible on retina monitors
• Fixed a bug where the settings panel didn't get a scrollbar on retina monitors
• Renamed the incorrectly named "world space" vertex positioning to "local space"
• Added experimental "skip model projection" flag, for world space positioning
Discuss this update




New in Shader Forge 1.35: (Unity 5.5 or later required)
• The meta pass can now optionally be disabled
• Fixed a bug where shadows didn't use the correct face culling
• Removed directional light specular masking hack that caused shadow artifacts
• Custom shadow passes are now generated when face culling is anything but backface culling
Discuss this update




New in Shader Forge 1.34: (Unity 5.5 or later required)
• You can now read UV coordinates as 4-component vectors
• Fixed a bug where deferred shaders didn't compile
Discuss this update




New in Shader Forge 1.33: (Unity 5.5 or later required)
• Added support for "alpha to coverage" blending
• Updated physically based lighting to match Unity's
• Fixed a bug when transforming from local to world and local to tangent
• Render platform Direct3D 11 more appropriately renamed to Direct3D 11 & 12
Discuss this update




New in Shader Forge 1.32: (Unity 5.5 or later required)
• Fixed an issue where shaders didn't compile properly for OpenGL
• Updated the OpenGL render platform to OpenGL Core
• Added render platforms: Nintendo 3DS, Nintendo WiiU
Discuss this update




New in Shader Forge 1.31: (Unity 5.5 or later required)
• Fixed a bug where reflection probe support broke in Unity 5.5
• Fixed a bug where using float4x4 as the return value in a code node sometimes broke the shader
• Removed PS3 and Xbox 360 support, since they are now deprecated as of Unity 5.5
• Various minor code fixes to adapt to Unity 5.5
Discuss this update




New in Shader Forge 1.30: (Final version for Unity 5.3)
• Fixed an issue in the 3D preview that caused errors in Unity 5.5
Discuss this update




New in Shader Forge 1.29:
• Fixed a bug where entering play mode with SF open caused various errors
Discuss this update




New in Shader Forge 1.28:
• Fixed a bug where specular color was applied twice for point lights
• Fixed a bug where specular color wasn't applied properly to directional lights
• Fixed script serialization errors with the Append and Component Mask nodes when running in Unity 5.4
Discuss this update




New in Shader Forge 1.27:
• PBR lighting is now using GGX and should match Unity's PBR much better
• Fixed several script serialization errors when running in Unity 5.4
• Fixed a bug where double-sided shaders with deferred enabled didn't compile
• Fixed a bug where changing blend preset would sometimes make the viewport stop rendering properly
• Fixed a bug where the code node wrote matrix4x4 instead of float4x4 into the shader
Discuss this update




New in Shader Forge 1.26: (5.3 or later required)
• Fixed a bug where PBR shaders didn't compile in Unity 5.3
• Fixed a bug where TextureAsset didn't respect its Tiling & Offset parameters
• Fixed a bug where you couldn't use the same node in tessellation and displacement at the same time
Discuss this update




New in Shader Forge 1.25: (Final version for Unity 5.2)
• You can now make invisible links in order to make your node trees more clean
   - Added node: Get
   - Added node: Set
• Fixed a bug where scene objects were rendered into node previews
• Fixed a bug where the Fresnel node caused errors when it had multiple outputs
• Fixed a bug where the Fresnel node couldn't be used for refraction
Discuss this update




New in Shader Forge 1.24:
• Fixed a critical bug where shaders caused errors when a texture asset node was in use
Discuss this update




New in Shader Forge 1.23:
• Hiding scale & offset of Texture2D nodes has now been replaced with being able to disable scale & offset altogether
• Added two new experimental options, both useful to disable shadow passes in shaders:
   - Force no custom shadow pass. (If your shader is alpha clipped or vertex offset, it will write a custom shadow pass)
   - Force no fallback. (If a fallback has shadows, so will your shader. This can help avoid that problem)
• Fixed a bug where some PBR shaders didn't compile
• Fixed a bug where the offset line wasn't added to the shader if one of the two values were set to zero
• Fixed a bug where the fallback picker would cause errors after the first time you use it
Discuss this update




New in Shader Forge 1.22:
• Node preview rendering is now a bazillion times faster:
   - You can now render nodes in real-time
   - Dragging sliders and changing values will no longer cause framedrops
   - Note: Some nodes are missing a GPU renderer, most notably, the Cubemap node and matrix operations
• Optimized several parts of the interface, making it more performant
• Fixed a bug where the RGB to HSV node didn't properly load
• Fixed a bug where some lightmapped/reflection probed shaders didn't compile
• The Shader Forge inspectors are no longer part of the .dll
Discuss this update




New in Shader Forge 1.21:
• Fixed a bug where PBR shaders didn't compile in OpenGL
• Fixed a bug where the shader inspector was triggering errors on shaders with compiler errors
• Added a link to the new forums in the menu
Discuss this update




New in Shader Forge 1.20:
• Added node: Smoothstep
• Added node: DDXY - a summed DDX and DDY (known as fwidth in code)
• You can now rotate the lights in the 3D preview by dragging the right mouse button
• Billboard shaders are now affected by object scale
• Textures assigned in a shader are now treated as default values in its materials
• Fixed a bug where reflection probe sampling broke in Unity 5.2
• Fixed a bug where Lerp and Inverse Lerp sometimes had the incorrect component count output
• Fixed a bug where large textures loaded very slowly when assigned in nodes




New in Shader Forge 1.19:
• Added a post-effect preset
• You can now switch outline extrude direction between three modes:
   - From origin (Good for convex objects with a centered pivot, bad for concave shapes)
   - Vertex normals (Good for smoothed objects, bad for hard edges)
   - Vertex colors (Good for any object, but requires certain data in the vertex colors)
• Added a SoftNormalsToVertexColor.cs component, to generate vertex colors for the "Vertex colors" outline direction mode
• You can now set vertex positioning mode:
   - World Space (default)
   - Clip Space (for full-screen rendering, such as post-effects)
   - Billboard (to make the object face the camera)
• Fixed a bug where the shader inspector broke in Unity 5.2
• Fixed a bug where the code node would cause errors and freeze SF in Unity 5.2
• Fixed a bug where HSV to RGB didn't work properly on some render platforms




New in Shader Forge 1.18: (Final version for Unity 5.1)
• Added node: HSV to RGB
• Added node: RGB to HSV
• Added node: Inverse Lerp
• Added node: UV Tile - useful for getting sub-UVs for spritesheets/tilemaps)
• Added node: Face Sign
• You can now use the stencil buffer
• You can now select ArcTan2 range: [-Pi to Pi], [-1 to 1], [0 to 1] and [0 to 1 Wrapped]
• You can now tag Color fields as HDR, making the inspector use a HDR color picker instead
• The shader inspector now contains all info from Unity's default shader inspector
• Double-sided shaders no longer have false-positive facing artifacts along edges
• Fixed a bug where lights weren't masked by fog
• Fixed a bug where you couldn't undo the dot product type setting




New in Shader Forge 1.17:
• Added node: Matrix 4x4
• Added node: Matrix 4x4 property (global only)
• Added node: Transpose
• Added node: Multiply Matrix - useful for rotating vectors or transforming space
• Added node: Reciprocal - outputs 1 divided by its input
• Added node: Hue - outputs a fully saturated color based on an input between 0 and 1
• You can now use 4x4 matrices, with some basic functionality, such as transpose and multiply
• You can now set a Color Mask to specify which color channels the shader will affect
• Fixed a bug when opening a shader referring to an unreadable cubemap
• Fixed a bug where Clamp and Component mask sometimes caused shaders not to load
• Fixed a bug where object scale didn't work in outline width
• Fixed a bug where view direction didn't work in vertex offset
• SerializableDictionary is now in the ShaderForge namespace to prevent code collisions
• Slightly improved the GUI look of the multi-button shader settings




New in Shader Forge 1.16:
• Fixed a bug where the noise node and the rotator node would sometimes spawn an invulnerable UV coordinate node
• Fixed a bug where some shaders using Texture nodes didn't load
• Fixed a warning when using Tessellation
• Adapted to Unity 5.1 changes




New in Shader Forge 1.15:
• You can now add tags to your properties. For example, [HideInInspector], which will make the property hidden in the material
• Fixed a bug where scene color node did not respect the per-object/per-group setting




New in Shader Forge 1.14:
• When creating a new shader, you now select between presets to start out with:
   - Unlit
   - Lit (PBR)
   - Lit (Basic)
   - Custom Lighting
   - Sprite
   - Particle (Additive)
   - Particle (Alpha-Blended)
   - Particle (Multiplicative)
   - Sky
• 2D shader support:
   - You can now enable support for using atlased sprites
   - You can now choose whether or not to show the pixel snap option
• Shader settings moved around and renamed:
   - The Quality settings category has now been renamed to Geometry
   - Face culling moved from Blending to Geometry
   - Light probe quality moved from Quality to Lighting
   - Normal quality moved from Lighting to Geometry
   - Normal space moved from Lighting to Geometry
• You can now optionally use a cheaper refraction / scene color mode, which will do one pass per-group rather than per-object
• You can now disable draw call batching under shader settings
• You can now set how the shader should be presented in the material inspector. 3D object, 2D sprite or Sky
• You can now switch vertex offset mode between Relative and Absolute. Absolute will set the position rather than offset it
• Fixed a bug where the right-click context menu on nodes would appear in the wrong place when zoomed




New in Shader Forge 1.13:
• You can now switch transparency mode between Fade and Reflective. Reflective keeps reflections intact, even when fully transparent
• Added premultiplied alpha blending to the blend mode presets
• The blend mode preset will now show the name of your blend mode, in case you manually set Src and Dst to one of the presets
• Fixed a bug where global texture nodes reverted to regular properties on load
• Fixed a bug where shaders sometimes didn't compile when using diffuse and transmission
• Fixed a bug where shaders sometimes didn't compile when switching to deferred after using Opacity in forward




New in Shader Forge 1.12:
• Fixed a bug where tessellation couldn't use baked lighting
• Fixed a bug where double-sided shaders with alpha clipping sometimes broke
• Fixed a bug where unlit shaders didn't compile when diffuse and baked light was previously on
• Fixed a bug where you got warnings about alpha blending when auto-sort was off
• Removed the (now redundant as of Unity 5) shadow collector pass




New in Shader Forge 1.11:
• Fixed a bug where shaders didn't compile when using the metalness workflow with deferred
• Fixed a bug where shaders using forward-only features didn't compile when switching to deferred




New in Shader Forge 1.10:
• Unity 4 features dropped:
   - Minimum Unity version is now 5.0.0f4
   - Removed deferred pre-pass support
   - Removed "Double Incoming Light" setting
• New features:
   - The Physically Based Lighting is now matching Unity's implementation
   - You can now use the Unity 5 deferred rendering pipeline
   - You can now switch between Specular and Metallic when using PBL
   - You can now switch between Gloss and Roughness
   - You can now now switch normal space between tangent, object and world
   - Added a button to highlight the current shader in the project window
• Changes:
   - Lightmap and light probe support is now in the same checkbox
   - Removed PBL Fresnel/Visibility term checkboxes - it's now always enabled. Cheaper BRDF types may come later
   - Removed the broken instruction counter
   - Removed the broken "open compiled" button
   - Modified the example scene. Removed some content to make the package smaller
• Fixes:
   - Fixed a bug where some nodes broke shaders when using them in multiple places (If, Noise, NormalBlend & Rotator)
   - Fixed a bug where lightmapping didn't work (Note that Directional Specular lightmaps aren't supported yet)
• Terminology:
   - Binormal is now Bitangent
   - Alpha is now Opacity
   - Alpha Clip is now Opacity Clip
• Render Platforms:
   - Removed Flash
   - Added iOS Metal
   - Added OpenGL ES 3.0
   - Added Xbox One
   - Added PlayStation 4
   - Added PlayStation Vita




New in Shader Forge 1.06: (Final version for Unity 4.x)
• Fixed a bug where shaders didn't compile when using the internal name _SpecColor




New in Shader Forge 1.05:
• Adapted to various Unity 5 changes to make it work in RC3
• Fixed a bug where the transparency dithering kept being set to incorrect values when shaders were opened




New in Shader Forge 1.04:
• Fixed a bug where the internal variable names didn't update when properties were copied with precision & variable name display turned off
• Fixed a bug where the dithering code was included even though alpha clip wasn't connected
• Fixed a bug where you got duplicate errors on properties with conflicting variable names




New in Shader Forge 1.03:
• You can now enable transparency dithering when using alpha clip
• The append node will now accept more than two inputs
• You can now hold Ctrl (Cmd on OSX) to temporarily toggle hierarchical node movement
• Added warning when using lightmapping without Transparent/ in the shader path when using alpha clip or alpha
• Added warning when when conflicting variable names are present
• Fixed a bug where the d3d9 render platform failed to compile when using Unity 5
• Fixed a bug where Shader Forge crashed when replace-opening a shader
• Fixed a bug where replace-opening a shader didn't properly highlight the main node inputs




New in Shader Forge 1.02:
• Fixed a bug where shaders sometimes didn't open at all when having used copy/paste/duplicate
• Fixed a bug where Unity crashed when connecting infinite loops - it's now impossible to make such connections




New in Shader Forge 1.01:
• Fixed a bug where Tessellation had holes if you used a non-uniform tessellation factor
• Fixed a bug where Texture 2D nodes marked as normal maps didn't compile properly
• Fixed a bug where DDX and DDY sometimes didn't work on OpenGL
• Fixed a bug where the precision menu of nodes sometimes disappeared
• The material asset ShaderForgeInternal.mat has now been removed due to version control annoyances
• Fixed an issue where the precision dropdown menu was almost unreadable in the light Unity skin




New in Shader Forge 1.00:
• Added node: Object Scale (Unity 5+ only)
• Added node: Fog Color
• Added node: DDX
• Added node: DDY
• The node flow is now from left-to-right instead of right-to-left
• You can now make shaders support Unity 5's reflection probes
• When using Unity 5, Unity 5's PBR method will now be used instead of the old one
• You can now set per-node variable precision to either Float, Half or Fixed
• You can now plug in Diffuse Ambient Occlusion into the main node
• You can now plug in Specular Ambient Occlusion into the main node
• You can now manually set the internal name of properties
• You can now use two additional UV channels, uv2 and uv3 (Unity 5+ only)
• You can now optionally disable the right-hand side node browser
• The depth node now has a preview icon & data
• You can now use Alpha without the shader being alpha blended
• There's now a console, which will warn you about various issues you may have
   - Error when a connected node is missing required inputs
   - Error when property nodes have a name conflict
   - Warnings when not using lightmapping naming conventions
   - Warning when disabling the target renderer required to view the shader on the workstation
   - Warning when using alpha blending with no alpha connected
   - Warning when not using alpha blending with alpha connected
   - Warning when using Unity 5 lightmapping, due to it currently being broken
   - Warning when using PBL without specular
• Optimized the editor performance of the node tree - especially when you have lots of nodes
• The default blending mode, previously named Off, is now named Opaque
• Fixed several issues with lightmapping in 4.x
• Fixed minor issues with spacing and UVs unnecessarily declaring variables in the generated code
• Fixed a bug in Unity 5 where fog didn't work at all
• Fixed a bug in Unity 5 where light probes oversaturated on scaled objects
• Fixed a bug where lightmapped surfaces didn't receive real-time shadows
• Fixed a bug where the interface disappeared when pressing return on certain nodes
• Fixed a bug where you couldn't use copy/paste/cut in the code node
• Fixed a bug where pressing delete with a text field selected, deleted selected nodes instead of a character
• Fixed a bug in the toggle node and the normal direction node, where they had incorrect default values on load
• 20 nodes that unnecessarily defined variables, no longer do so




New in Shader Forge Beta 0.36:
• Nodes such as the Normal Direction node and the View Direction node, now have a visual representation instead of being black
• The internal assets of Shader Forge are now no longer in a Resources folder




New in Shader Forge Beta 0.35:
• Fixed a bug where shaders, especially larger ones, took a very long time to open
• The camera will now pan when dragging a connection to the edge of the node view
• You can now switch tessellation mode to edge length based tessellation
• You can now switch mode on the quickpicker to use either the scrollwheel, or the cursor position
• The slider node looks and works a bit better (added a margin to the slider, and gave more space for dragging the node)
• Fixed a bug where sliders using a larger min value than max value, caused massive performance drops
• Fixed a bug where you got serialization depth errors when running Shader Forge in Unity 4.5 and above
• Fixed a bug where you couldn't open compiled shaders in Unity 4.5
• Fixed a bug where you couldn't use depth testing in the normal input




New in Shader Forge Beta 0.34:
• All nodes can now be created with hotkeys using a new quick-select menu!
   - Holding a letter on the keyboard will display a menu of all nodes starting with that letter
   - Scrolling the mouse wheel will move you through the list
   - Clicking will create the highlighted node
• Fixed a bug where you couldn't use some vectors in the alpha clip input
• Fixed an issue where deferred pre-pass shaders didn't handle gloss values of zero properly
• Fixed a bug where you couldn't use the light direction node in the outline color input
• Fixed a bug where fog didn't work on deferred pre-pass shaders
• Fixed a bug where shaders using UV coordinates didn't compile on the PS Vita
• Potentially fixed a bug where your locale would make shaders write commas as decimal separators rather than periods




New in Shader Forge Beta 0.33:
Deferred Pre-Pass lighting is now supported! However, it has the following limitations:
   - Blinn-Phong only
   - Unavailable main node inputs: Diffuse Power, Transmission, Light Wrapping, Custom Lighting, Alpha, Refraction, Outline Width/Color
   - Gloss will always be remapped from [0-1] to [0-128]
   - Specular highlight colors won't be 100% accurate
   - None of the lighting nodes will be available, except ambient light
• Added node: Switch
   - This is a property node, exposed in the inspector as a checkbox
   - Outputs the Off input when unchecked
   - Outputs the On input when checked
   - Note that this is an active branch, not a static branch
• Added node: Toggle
   - This is a property node, exposed in the inspector as a checkbox
   - Outputs 0 when unchecked
   - Outputs 1 when checked
• You can now switch Channel Blend method between Summed and Layered:
   - Summed means it will multiply all channels, and then add them together
   - Layered means it will blend the channels on top of each other, commonly done in terrain shaders
• The forward rendering lightmapping has changed a little in how it deals with real-time lights
• Fixed a bug where energy conservation broke the shader when using a non-PBL lighting mode without specularity
• Broken shaders saved with a property node bug from 0.29 should now load without locking up Unity




New in Shader Forge Beta 0.32:
• Deleting a relay node will now keep the link instead of breaking it
• Fixed a bug where the desaturate node and the channel blend node could crash Unity




New in Shader Forge Beta 0.31:
• The physically based specular IBL fresnel term is now more realistic for rough materials
• Fixed a bug where shaders with missing properties didn't load
• Fixed a bug where deleted nodes were added to the copy/paste stack




New in Shader Forge Beta 0.30:
• Fixed a bug where the Channel Blend node crashed Unity
• Fixed a bug where dragging nodes sometimes caused severe lag and memory leaks
• Fixed a bug where properties were never removed from the property list
• Fixed a bug where you had to connect to the MIP input when using textures in vertex offset and outline width on OpenGL




New in Shader Forge Beta 0.29:
• You can now Undo and Redo! As a result; you now need Unity 4.3.0 or later (Previous minimum was 4.2.0)
• Added node: Posterize. This node will turn smooth gradients into stairsteps
• Added node: Relay. Outputs its input - useful for organizing connections
• The Code node can now read from Texture Assets using the sampler2D input type
• Fixed a bug where the code node didn't compile properly. It's now also using the function name in the code
• Fixed a bug where the code node's output was pending instead of typed
• Fixed a bug where node previews sometimes displayed too many color channels
• Fixed a bug where the Parallax node could cause the shader not to compile
• Fixed a bug where the version checker didn't work
• Slightly improved the look of the main node when using the light skin




New in Shader Forge Beta 0.28:
• Added node: Code. This allows you to run a snippet of CG shader code (Currently a bit unstable)
• Added node: Depth. This is the distance from the camera's near plane to the object itself
• Shader Forge has now been prepared to dynamically load two new nodes from Marmoset's Skyshop plugin
• You can now drag Substance Materials into Shader Forge, and it will automatically hook up the Diffuse and Normals
• Comments on properties are now placed better
• Fixed a bug where the Min and Max nodes displayed too many color channels
• Fixed a bug where the normal direction was always passed into double-sided shaders, even if unused




New in Shader Forge Beta 0.27:
• Fixed a critical bug where shaders using Vector4 properties didn't load properly after saving




New in Shader Forge Beta 0.26:
• You can now use global variables!
   - Currently supported types: Value, Vector4, Color and Texture
   - Right click on a property and select "Make global"
   - Global variables can only be set from code. For example: Shader.SetGlobalFloat("_MyGlobalValue", 5.0f)
   - Currently, there's no way of making the nodes display their current global value
• You can now pick and use Render Textures, as well as Procedural Textures (from Substances), in the Texture2D nodes
• Added an experimental Shader Model 2.0 force feature
• Added the d3d11_9x platform (Direct3D 11 for Windows RT)
• Fixed a bug where box selecting while zoomed out didn't work properly
• Fixed a bug where you could only see the first mesh, in meshes containing submeshes
• Fixed a bug where the Channel Blend node broke when the mask component count didn't equal the color component count
• Fixed a bug where arithmetic nodes sometimes caused null reference exceptions when loading shaders
• Fixed a bug where drag-creating a new node on top of an existing one, caused it to lock up until you clicked again
• Fixed a bug where some coordinates were offset when the SF window was docked
• Ninjafixed a bug where the left separator reset its position when using hotkeys on OSX




New in Shader Forge Beta 0.25:
• Fixed a bug where Shader Forge crashed when pressing play
• Fixed a bug where the camera didn't center properly on the main node when creating a new shader




New in Shader Forge Beta 0.24:
• Added node: Channel Blend. This has a mask input, and outputs the sum of each mask component multiplied by the corresponding color input. Useful for triplanar blending
• Added node: Noise. This will generate a pseudorandom number based on a Vector2 input as a seed
• Specular Ambient Lighting now uses the fresnel term when PBL is on
• The physically based lighting mode is now more accurate. Increasing specularity will now decrease diffuse
• The 3D preview will now use the scene skybox as a background by default
• The 3D preview will now rotate the camera around the mesh, instead of rotating the mesh itself
• Comments on nodes will now be displayed in the shader code when a node is used multiple times
• You can now set the ScreenPos to SceneUVs, to use as Scene Color UVs, which is useful for chromatic aberration, and other effects
• The settings panel expanders now move smoothly and has cleaner code
• Checking the Normal map checkbox on Texture 2D nodes will now switch the default value to Bump
• Fixed a bug where only the first mesh you select for the 3D preview is applied
• Fixed a bug where sliders didn't save their default value in the shader
• Fixed a bug where Texture2D nodes marked as normal maps had an alpha output (This is due to how Unity decodes their normal maps)
• Fixed a bug where you couldn't use object position in vertex offset
• Fixed a bug where labels sometimes got the wrong horizontal alignment
• Fixed a bug where you could right-click on nodes through the side-panels
• Fixed a bug where the drag cursor in the settings panel appeared when hovering properties, when only a single property was present
• Fixed a bug where normals weren't normalized in some cases when using a normal map




New in Shader Forge Beta 0.23:
You can now zoom the node view
Added node: Normal Blend. This node will combine two normals; a detail normal perturbed by a base normal
Added node: Blend. Photoshop-style blending with 18 blending modes:
   - Darken, Multiply, Color Burn, Linear Burn
   - Lighten, Screen, Color Dodge, Linear Dodge
   - Overlay, Hard Light, Vivid Light, Linear Light, Pin Light, Hard Mix
   - Difference, Exclusion, Subtract, Divide
• The Component Mask node will now display outputs per-channel, in addition to the combined one. For example, if you mask out RGB, you will now get 4 connectors, RGB, R, G and B
• There’s now a checkbox under settings, where you can enable/disable node-preview updating, in case you’re having performance issues in large node trees
• Fixed a bug where you couldn’t use depth nodes in the refraction input
• Fixed a bug where the Length node output the wrong component count
• Fixed a bug where objects in the node view could be selected through the side panels
• Fixed a bug where the screenshot button overlapped the toolbar when expanding settings




New in Shader Forge Beta 0.22:
• Fixed an issue where I forgot to bundle the code, please remove your old version of SF before installing this one!




New in Shader Forge Beta 0.21:
• There's now a button available in the top left corner of the shader preview, to take a screenshot of the whole node tree
• Fixed a bug where some setups leading to the UV channel of texture nodes would break
Fixed a bug where normal maps didn’t respect the normal quality
Fixed a bug where transparent objects caused depth issues
• Fixed a bug where Unlit shaders had to have a Light Color node in order to use Light Attenuation
• There’s now a script included for enabling depth rendering on cameras
• Updated readme.txt




New in Shader Forge Beta 0.20:
• Added node: Remap (Same as Remap Range, but with input connectors instead of constants)
• Added node: Depth Blend (Requires a camera with depthTextureMode set to Depth or DepthNormals)
• Added node: Scene Depth (Requires a camera with depthTextureMode set to Depth or DepthNormals)
Fixed a bug where hotkeys didn't work on Windows (Ctrl+C/V/X/D)
You can now use the MIP inputs of textures and cubemaps when on the OpenGL platform (note that this will disable the instruction counter)
The Scene Color node is now affected by Refraction
Fixed a bug where the multi-add/multiply/min/max nodes did invalid typecasting
• Fixed a bug where the rotator node speed input expected a Vector2
• Fixed a bug where the geometry normals sometimes weren't normalized, even though the quality setting told it to
• Renamed node: "Constant Clamp" is now known as "Clamp (Simple)"
• Renamed node: "Constant Lerp" is now known as "Lerp (Simple)"
• Renamed node: "Remap Range" is now known as "Remap (Simple)"
• Normal map negative values are no longer visualized as positive
• The image on the Main node now looks better in the light Unity skin




New in Shader Forge Beta 0.19:
Added node: Remap Range
• You can now specify offset factor and offset units
• Lightmapping and lightprobes are now mutually exclusive
• Added credits button in the main menu
• Fixed a bug where you got a compile error when EditorLabel.cs was present when making a build
• Fixed a bug where the dot product node didn't generate its node preview properly
• Fixed a bug where using a various characters in property names would break the shader
• The instruction counter now shows the current render platform (OpenGL / Direct3D 9 / etc.)
A bug where shaders didn't save when using the built-in Perforce version control, may have been fixed now




New in Shader Forge Beta 0.18:
• You can now use Shader Forge in Unity 4.2.0
Added node: Vector Projection
Added node: Vector Rejection
• The main menu now has a much more visible out-of-date notification, when a new version is out
Fixed a bug where properties didn't show up when connected to some inputs
• Fixed a bug where deleting nodes didn't update the Main input availability status
A bug where shaders didn't save when using the built-in Perforce version control, may have been fixed now




New in Shader Forge Beta 0.17: (First asset store release)
• The Multiply and Add nodes now support up to 5 inputs. A connector marked "+" will appear as you drag a third/fourth/fifth input towards the node
• You can now enable light probes in your shaders, both per-vertex and per-pixel, for normal mapped light probed shaders
• You can now delete node connections by holding alt and dragging the right mouse button to draw a cut-line, removing any connections it crosses
• You can now delete node connections by holding alt and right-clicking on the connectors
• The lambert light mode has been removed, simply because it's the same as the other light modes when not connecting specular
• The nodes are now in alphabetic order in each category
• The top toolbar and the logo has been moved. Added settings button and a "return to menu" button
• The node connections can no longer be drawn in rectilinear or linear mode. For two reasons: 1. Save time, and 2. To make connections look the same for everyone
• The connections are now a bit smarter when doing S-shaped / reverse connections, avoiding taking up unnecessary space
• The mesh preview will now start at an angle; slightly viewed from above
• The mesh preview will no longer "snap" when toggling rotate or when you start dragging it
• Instruction counter minimum no longer counts the ForwardAdd pass
• Fixed a bug where the shader thought it needed more data than it did in special passes
• Fixed a bug where node previews and the mesh preview backgrounds got double gamma when using Linear color space
• Fixed a bug where some shaders got errors and/or broken links on load. Shaders should also load a bit faster now
• Fixed a bug where you got error messages in the console every time you create a new shader
• Fixed a bug where you got framedrops and broken interface while renaming Texture properties in the property list on the left
• Fixed a bug where the shader didn't compile when using Specular without Diffuse
• Fixed a bug where alpha didn't affect additional lights




New in Shader Forge Beta 0.16:
• New Main input: Custom Lighting (Run per-light source. Emission is now run only once when using unlit)
• New Main input: Diffuse Ambient Light (For example: IBL/Cubemaps, Ambient light)
• New Main input: Specular Ambient Light (For example: IBL/Cubemaps)
• Specular is now required to be connected by Gloss and Specular Ambient
• Diffuse is now required to be connected by Transmission, Light Wrapping, Diffuse Power and Diffuse Ambient
• The bug causing massive load times and long connection / preview waiting times has now been fixed!
• Fixed a bug where the component mask node caused massive framedrops
• The node view settings, such as the connection display mode, are now persistent between sessions
• The panner node should no longer cause errors
• Node previews should now be generated around 44% faster (They are now rendered in 96x96 instead of 128x128)
• The Shader Forge logo has now been updated by Jenny Nordenborg (@sranine)
• The main node now has a background image and has been reorganized into categories
• You can now switch between per-pixel screen coordinates or per-vertex screen coordinates
• You can now move around the Shader Forge folder without asset links breaking
• You can now optionally enable masking of specularity in shadows (Only for directional lights)
• Cleaned up some of the generated diffuse code (Diffuse power is now only used when connected)
• Fixed "invalid input" sound being triggered on OSX when using hotkeys




New in Shader Forge Beta 0.15:
• You can now connect to Outline Width and Outline Color to make a simple toon shader (Does not work with convex hard edges)
• The transform node is now much more intuitive. The new version has two dropdowns, From and To, where you can select World, Local, Tangent or View. Note that your old shaders using the transform node will either break or be reset.
• New hotkeys to use with selected nodes:
   - Ctrl+D (Duplicate)
   - Ctrl+C (Copy)
   - Ctrl+V (Paste) (Also works cross-shader, so you can open a new shader and paste in there)
   - Ctrl+X (Cut)
• You can now comment on nodes by right-clicking on them and selecting "Edit Comment"
• You can now right-click on nodes both in the node area and the browser, to go directly to their online documentation
• Added node: Scene Color (Can be used to get the background color or for manual refraction)
• Shader Forge will now use the tiling and offset specified in the material
• The material inspector now has buttons to open the shader in SF, open the CG shader, and open the compiled shader
• A scrollbar is now added to the shader settings / property window when it overextends
• The component mask node should now be foolproof (As in, if you connect a Vector2 you shouldn't be able to select the B and A channels etc)
• You can now specify per-shader fog overrides for Fog Mode, Fog Color, Fog Density and Fog Near/Far range
• A preset for Screen blending has been added (This will break your old shaders using Multiplicative or Custom blending)
• The camera can now be moved with middle mouse button in addition to the regular camera movement system
• The Time node now has an icon
• Texture2D nodes now have a dropdown to select one of the built-in default colors, when no texture is assiged: White, Gray, Black or Bump (Flat normal, for normal maps)
• Texture2D nodes now have a checkbox to select whether or not it's a normal map. This will be assigned automatically when assigning textures, otherwise it needs to be checked manually
• Added a frame limiter (At roughly 40 fps) to prevent Shader Forge from eating all the CPU power it can get
• You can now do arithmetic between nodes of different component counts (For example, multiplying a Vector2 with a Vector4)
• You can no longer delete nodes with backspace, this is now done with ctrl/command+backspace, or the delete key
• Shader Forge will now tell you to update if opened in a Unity version older than 4.2
• There is now a checkbox for remapping gloss from linear [0-1] to base-2 exponential [1-2048]. This used to be enabled only for PBL previously, it is now on by default for all shaders
• Fixed a bug where additional light sources ignored fog
• Fixed a bug where the default values for Value properties didn't save
• Fixed a bug where fog was displayed incorrectly when using multiple lights
• Fixed a bug where you couldn't use colors as specularity when using the PBL lighting mode
• Fixed a bug where arithmetic nodes were outputting the incorrect vector type when linking pending outputs (before the input nodes were assigned an output type)
• Fixed a bug where the Desaturate node looked as if it was outputting a Vector3 rather than a Vector1/Value




New in Shader Forge Alpha 0.14:
• There is now an energy conserving physically based lighting mode (PBL) available!
   - Fresnel term can optionally be toggled on/off
   - Visibility term can optionally be toggled on/off
• There is now a checkbox for energy conservation for your standard Lambert/Blinn-Phong/Phong lighting modes
• The node connector system has now changed a *lot*, which means your old shaders probably won't load. If your old shaders doesn't load, please don't report a bug.
• Invalid connectors are now faded while dragging to make a new connection
• Animated shaders / Nodes using time now work in-game
• The instruction counter is now properly working, has icons instead of labels, and displays min and max instruction count
• You can now reorder/rename/tweak properties in a list
• Added node: Texture Asset (Can be used to sample a single texture multiple times)
• Texture node previews are now affected by their UV input
• There is now a checkbox to double incoming light, can be used to match Unity's shaders which does this by default
• Fresnel node is now correctly outputting a Vector 1
• The node browser now has category labels, use drag and drop instead of clicking, and display properties with a green tint
• The expand buttons for all settings on the left panel are now less picky
• Node connections can now be deleted with backspace
• Cleaned up example assets




New in Shader Forge Alpha 0.13:
• Added node: Value Parameter
• Added node: Vector 4 Parameter
• Added node: Fresnel
• Added node: Desaturate
• Added node: View Position
• Added node: Ambient Light
• Added node: If (<, =, >)
• Added node: Clamp
• Added node: Constant Clamp (Clamp with numerical A and B entry instead of inputs)
• Added node: Constant Lerp
• Added node: Exp (Dropdown to select Exp and Exp2)
• Added node: Log (Dropdown to select Log, Log2 and Log10)
• Added node: Negate
• Added node: Step (A <= B)
• Added node: Screen Parameters (Contains pixel resolution information)
• Added node: Projection Parameters (Camera near/far clip plane information)
• Your shaders should now only recompile when you connect/change stuff that actually affects it
• The Screen Pos node now has separate U and V outputs in addition to the UV output
• The Screen Pos node now has a setting to either use normalized coordinates or tiled coordinates
• A warning will now pop up when trying to open a non-SF shader through the SF main menu
• You can now use UV1, vertex color and world position connected to the vertex offset
• Fixed a bug where directional lightmaps without normals didn't compile
• Single lightmaps should now work properly
• Fixed a bug where refraction was rendered upside down
• Fixed a bug with the screen position node
• Fixed a bug where the snap distance was ignored in certain directions
• Fixed a bug where you couldn't subtract negative Vector1 values




New in Shader Forge Alpha 0.12:
• DX11 Tessellation has now been added
• DX11 Displacement has now been added
• Vertex Offset has now been added
• Shadows now work properly with alpha clip/cutout shaders
• Most shader inputs now accept Vector2s (For example, you can now plug in a UV Coordinate into Diffuse)
• Renderers that currently do not support MIP inputs (Any non-DX renderer) on Texture2D and Cubemaps are now disabled when it's used
• Fixed a bug where textures and other data was lost when pressing play
• Fixed a bug where some nodes weren't reconnectable after loading a shader
• Fixed a bug where refraction rendered more than once when supporting multiple lights
• Fixed a bug where you couldn't use negative render queue offsets
• Fixed a bug where the fallback was never written to the shader
• Fixed a bug where some nodes slightly changed position on every load




New in Shader Forge Alpha 0.11:
• Shaders can now support Single and Directional Lightmapping




New in Shader Forge Alpha 0.10:
• You can now select multiple nodes by holding ctrl/command or shift
• You can now box-select nodes by holding alt. (In addition, hold ctrl/command or shift to add to selection)
• The delete key now deletes the selected nodes rather than the node you're hovering
• You can now edit the shader path
• You can now close Unity with the SF window open, without getting a ton of errors when starting Unity again
• RenderType has been added to the sorting block, thus fixing issues with post process effects not working
• You can now specify the fallback shader
• You can now edit the shader LOD level
• You can now select which renderers to compile for
• Added node: World Position
• Added node: Object Position
• Added node: Light Position
• Connection lines are now thinner and more compact
• The compiler will now ignore nodes and properties that aren't linked to the master node
• The node connectors are now clickable slightly outside their actual area
• The Value node (Vector1) now has extra draggable space to make it easier to select/move
• Improved the look when using the light (Unity Free) skin
• Cleaned up and reduced the size of the example assets package (50% smaller)




New in Shader Forge Alpha 0.09:
• Refraction (Distortion) is now implemented (Only works in Unity Pro due to Unity's Render Texture restriction)
• Added node: Rotator
• Added node: Panner
• Added node: Tangent Direction
• Added node: Binormal Direction
• Added node: Screen Position
• Added node: Length
• Added node: Distance
• Added node: Cross product
• Added node: Reflect
• Added node: Sign
• Shader input connectors now enable/disable depending on your settings
• Normal Direction node now has a toggle to switch between the geometry normal and the perturbed normal
• The camera now centers on your nodes when you load an existing shader
• Fixed bug with Vertex Color and Cubemap node unable to have more than one output
• Fixed various cases where the shader didn't compile
• Fixed a bug where Normalize displayed incorrect values in the node previews
• Fixed a bug where the values saved incorrectly for the Vector2 node
• Had a long battle with Anisotropic spec but couldn't get it to work, so hang in there!
• MIP input on textures are now absolute again




New in Shader Forge Alpha 0.08:
• Name labels are now deselected when pressing return or clicking on something else / empty space
• The settings/preview panel and the node browser are now both resizable
• Connections are no longer drawn in the node browser or the settings panel
• Broken node previews in Unity Free should have been fixed
• MIP input on textures are now relative instead of absolute
• Component mask node should now deserialize properly
• UV coordinate node now has separate U and V outputs in addition to the UV output
• Added node: Parallax
• Added node: Subtract
• Added node: Frac
• Added node: Fmod
• Added node: Trunc




New in Shader Forge Alpha 0.07:
• Shaders can now be affected by multiple lights
• Shaders can now receive and cast shadows (Doesn't work properly for everything)
• Added node: Color Parameter
• Added node: Light Direction
• Added node: Light Attenuation
• Added node: Light Color
• Added node: Half Direction
• You can now drag textures directly into empty areas to create a Texture 2D node.
• The select button now works on Texture 2D nodes
• The Dot Product node now has a selection box to choose between the following types:
   - Dot: dot(A,B)
   - Positive: max(0,dot(A,B))
   - Negative: min(0,dot(A,B))
   - Abs: abs(dot(A,B))
   - Normalized: 0.5*dot(A,B)+0.5
• You can now assign render order + offset
• You can now assign whether or not to ignore projectors
• Depth test, render order, projector ignore and depth buffer writing are now auto-assigned by default
• Textures are now displayed masked with their alpha
• Normal map textures are now displayed unpacked.
• The preview window now has a colored point light in addition to the white directional one
• Fixed a bug where the mesh centering ignored the Z position in the preview window
• Fixed a bug where the node previews didn't respect the texture wrap method
• Fixed a bug where component mask and append didn't deserialize properly when opening a shader
• Fixed vertex color RGB output
• Materials with missing normal maps should now default to flat normals instead of white color in the shader code




New in Shader Forge Alpha 0.06:
• Nodes are now categorized in the right-click menu.
• You can now zoom in the mesh preview window
• The mesh preview now rotates around its center rather than the pivot
• Attempting to open a shader that doesn't have shader forge data inside will now warn the user that it will be cleared
• Vector 1 changed to "Value", now only showing its value rather than a box
• Vector 2/3/4 now have color pickers (Currently incorrectly always showing RGBA regardless of component count)
• Nodes now snap-align to nearby nodes by their center point and their top left point (Will be configurable later)
• UV1 is now working properly
• Required node inputs are now marked with an error icon if they are not connected
• Added node: Sin
• Added node: Cos
• Added node: Tan
• Added node: ArcSin
• Added node: ArcCos
• Added node: ArcTan
• Added node: ArcTan2
• Added node: Sqrt
• Added node: Vertex Color
• Added constant node: Pi
• Added constant node: Tau (2 Pi)
• Added constant node: e
• Added constant node: Phi (Golden Ratio)
• Added constant node: Root 2
• Fixed bug with component count display of the component mask node




New in Shader Forge Alpha 0.05:
• You can now name properties (Textures, Cubemaps and Sliders)
• Switched line drawing method again, now much faster to render and looks better (Thanks Texel for the tip!)
• Increased detail level of the splines
• Splines in progress of creation now use the correct spline type
• Added a checkbox to enable/disable auto-compile
• Slightly optimized double-sided shaders
• New nodes are now highlighted
• Added node: Clamp 0-1
• Added node: Abs
• Added node: Ceil
• Added node: Round
• Added node: Floor
• Added node: Normalize




New in Shader Forge Alpha 0.04:
• Switched line drawing method - draws faster and should work properly on Mac
• Fog checkbox should now work properly
• You can now cancel creation of new nodes
• Added Dot Product node
• Added Min node
• Added Max node