Search Unity

[Best Tool Asset Store Award] Amplify Shader Editor - Node-based Shader Creation Tool

Discussion in 'Assets and Asset Store' started by Amplify_Ricardo, Sep 13, 2016.

  1. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    497
    Thanks, it will help me greatly!

    EDIT: You can send it to support@amplify.pt
     
    Last edited: Jan 11, 2017
  2. J-F

    J-F

    Joined:
    Nov 8, 2012
    Posts:
    101
    Can you use/edit pre-written shaders with this?
    Also, does this support vertex-color masking? I'm trying to implement vertex color masking into a pre-existing shader and i'm considering buying the beta if it is capable of doing the forementioned things.
     
  3. kebrus

    kebrus

    Joined:
    Oct 10, 2011
    Posts:
    414
    For the first question, no, you can't. The editor saves the node information on the shader file, then it loads that information, not the actual shader code.

    For the second on, yes, you can easily do blends using vertex color, you can use "lerps" manually or you can use specialize nodes for it, here's an example:
    vertexcolormask.PNG
     
  4. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    1,411
    Hello everyone!

    If you have not already, be sure to check out the latest Amplify Shader Editor BETA. We would also like to take this opportunity to remind you that you can download the latest development build directly from our website.


    Amplify Shader Editor - Asset Store Page
     
    nipoco, recon0303 and Seith like this.
  5. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    2,313
    Having trouble with vertex color, blend mode and fog.

    Making a shader that should read vertex color as transparency and respond properly to fog and it's not working quite right.
    The shader is applied to the disk, it should be black in the center and transparent at the edge, also the white fringe stays white far in the fog, where other objects are the color of the fog.

    Solution : switch blend mode to fade.

    Screen Shot 2017-01-13 at 8.59.00 PM.png
     
    Last edited: Jan 14, 2017
  6. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    2,313
    How do I make an additive material?
     
  7. ScaniX

    ScaniX

    Joined:
    Apr 10, 2016
    Posts:
    27
    Hi!

    I bought this one on the asset store two days ago and I like it a lot.

    I did run into some issues, though:
    - the scale nodes do not work. If I set a value and open the shader again, the value resets to 1. I am using the multiply node as a workaround now.
    - using the "tex" input of the texture node with a wrong input instantly kills Unity
    - in rare cases there are a few repainting errors that I am not sure of how to reproduce: the value of one node is temporarily painted in another one, zoom artifacts in the editor. forcing a repaint through scrolling etc. removes them.

    Unfortunately I can only search the whole forum, but not only this thread for keywords, so I don't know if those were already mentioned.

    Keep up the great work, looking forward to the next versions! :)

    PS: Also when using Multiply or FMod with multiple components, those nodes often lose all values except the first one, e.g. X=2,Y=2, Z=2, W=2 will be X=2, Y=0, Z=0, W=0 afterwards.
     
    Last edited: Jan 14, 2017
  8. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    3,976
    Hey, @Amplify_RnD_Rick, will we be able to create true front and back shaders with this. I am planning on creating characters with clothing and I want to be able to assign different textures to the front and back of surfaces, especially for cloth sim...
     
  9. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    497
    Unfortunately this is still not possible on ASE directly but we'll try to add it on a near future. You would need to set both Source and Destination to One the shader Blend mode.

    We really want to add a multiple pass feature on ASE which would be the solution to render double side materials with correct lighting. Unfortunately we are unable to provide you a correct estimate on which the would be included on ASE.
    You can however for now go with Kebrus suggestion bellow:

    "While multiple passes don't come where's a quick solution. It's not as fast as doing separate passes for front faces and back faces but at least it works for now. If performance is an issue don't use either, just duplicate the faces in your 3d software, invert them and give them proper uvs, that's the cheapest way in which you don't even have to deal with multiple passes.


    "


    Thank you so much for reporting these issues. Some of these are already fixed on our latest version. For you to get access to it you need only to head out to our download page, write your invoice on the text area and hit to unlock button.
     
    KRGraphics likes this.
  10. ScaniX

    ScaniX

    Joined:
    Apr 10, 2016
    Posts:
    27
    Thank you for your reply! :)
    Just a quick feedback: I did download the new version after posting here. The crash of the tex input cannot be reproduced as it blocks invalid input. The loss of values for the scale, fmod and multiply nodes is still there, though.
     
  11. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    3,976
    I will have to try this... and also with a toggle to turn it off if I don't want it...
     
  12. ScaniX

    ScaniX

    Joined:
    Apr 10, 2016
    Posts:
    27
    A suggestion (I have no idea if that is possible to do):
    I would love to have some profiling in the editor, so I can see the performance impact of my nodes. That way I would better know what parts to reduce or remove if the framerate is reduced too much.
     
  13. J-F

    J-F

    Joined:
    Nov 8, 2012
    Posts:
    101
    If this asset could use the inputs/outputs of pre-existing shaders i would buy it.
    Would this even be possible to implement, or am i asking too much?
     
  14. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    497
    Hey guys,

    Just uploaded a new build fixing some of the reported issues.

    Release Notes v0.3.1 dev 005:
    • Side menus are now resizable
    • Tweaked 'Weighted Blend' node
    • Added 'Summed Blend' node
    • Added 'Toggle Switch' node
    • Added new 'Scale and Offset' node
    • Fixed issues on 'Vertex Binormal World' and '[VS]Vertex Tangent' nodes
    • Fixed issues with 'Texture Sample' nodes created via dragging a texture to ASE
    • Fixed issue with 'Scale' node
    • Fixed issues on incorrectly reading 'Receive Shadows' parameter from ASE shader previous to v0.2.5

    We managed to easily replicate the Scale node issue but we don't quite understand in which situation fmod and multiply is making you loosing data.
    Is it possible for you to let us know your steps on doing that so we can replicate on our end and fix it?

    We are planning on showing the instruction count generated from the graph. This way you can have a grasp on the impact each node is generating.

    Parsing a pre-existing shader and generate a full graph of it is really tricky. We are however working on this being possible but through some tiny changes on the shader you want to import.
     
    recon0303, ScaniX and 2dgame like this.
  15. ScaniX

    ScaniX

    Joined:
    Apr 10, 2016
    Posts:
    27
    I recorded a small video:

    It is an understandable effect, but it would be very convenient if the node stores those values even if the input is connected to an empty head node and reconnected later on.

    Also: Your new beta download says "4th December 2017". I'm pretty sure I haven't slept for that long...

    PS: There is an expeption (see below) when doing this:
    - create two multiply nodes
    - connect the output of the first with any input of the second
    - select the second one (the downstream one)
    - remove the connection with ALT+click on it or dragging it
    - see console

    This only happens if the second node is selected.

    ArgumentException: Getting control 1's position in a group with only 1 controls when doing Repaint
    Aborting
    UnityEngine.GUILayoutGroup.GetNext () (at C:/buildslave/unity/build/Runtime/IMGUI/Managed/LayoutGroup.cs:114)
    UnityEngine.GUILayoutUtility.DoGetRect (Single minWidth, Single maxWidth, Single minHeight, Single maxHeight, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at C:/buildslave/unity/build/Runtime/IMGUI/Managed/GUILayoutUtility.cs:421)
    UnityEngine.GUILayoutUtility.GetRect (Single minWidth, Single maxWidth, Single minHeight, Single maxHeight, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at C:/buildslave/unity/build/Runtime/IMGUI/Managed/GUILayoutUtility.cs:410)
    UnityEditor.EditorGUILayout.GetControlRect (Boolean hasLabel, Single height, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at C:/buildslave/unity/build/Editor/Mono/EditorGUI.cs:7498)
    UnityEditor.EditorGUILayout.Vector3Field (UnityEngine.GUIContent label, Vector3 value, UnityEngine.GUILayoutOption[] options) (at C:/buildslave/unity/build/Editor/Mono/EditorGUI.cs:6773)
    UnityEditor.EditorGUILayout.Vector3Field (System.String label, Vector3 value, UnityEngine.GUILayoutOption[] options) (at C:/buildslave/unity/build/Editor/Mono/EditorGUI.cs:6767)
    AmplifyShaderEditor.InputPort.ShowInternalData (Boolean useCustomLabel, System.String customLabel) (at Assets/AmplifyShaderEditor/Plugins/Editor/Wires/InputPort.cs:301)
    AmplifyShaderEditor.ParentNode.DrawProperties () (at Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/ParentNode.cs:1131)
    AmplifyShaderEditor.ParentNode.SafeDrawProperties () (at Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/ParentNode.cs:1094)
    AmplifyShaderEditor.NodeParametersWindow.Draw (Rect parentPosition, AmplifyShaderEditor.ParentNode selectedNode, Vector2 mousePosition, Int32 mouseButtonId) (at Assets/AmplifyShaderEditor/Plugins/Editor/Menu/NodeParametersWindow.cs:58)
    AmplifyShaderEditorWindow.OnGUI () (at Assets/AmplifyShaderEditor/Plugins/Editor/Menu/AmplifyShaderEditorWindow.cs:2633)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
     
    Last edited: Jan 16, 2017
    Amplify_RnD_Rick likes this.
  16. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    3,976
    So the double sided shader trick worked... now just gotta get the light rendering the sides correctly
     
    Amplify_RnD_Rick likes this.
  17. TeohRIK

    TeohRIK

    Joined:
    Jan 22, 2014
    Posts:
    89
    Edit: Ok...I get it know, I should read the tooltip before I post, sorry for the interruption

    Hi, just wan to ask, is the Queue Index in the shader editor = the Render Queue in Unity Inspector?

    Cause I realize if I change and save the Queue Index value in the shader editor, the Render Queue value at the Unity inspector wont update/change

    Capture.PNG
     
    Last edited: Jan 17, 2017
  18. J-F

    J-F

    Joined:
    Nov 8, 2012
    Posts:
    101
    I dont necessarily need to convert or edit the pre-existing shader, I just want to be able to use its IO with the nodes.
     
  19. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    497

    It was awesome for you to take the work on creating a video demonstrating the issue. Really cool indeed!

    What you shown is kinda of an expected behavior. Nodes like Multiply and FMod automatically adapt their ports to what is connected to them but start as Floats.

    So taking it step by step:
    1. You create FMod and it will have all its ports set to Float by default
    2. As soon as you connect the Vector 3 to it, it will change all its ports and respective internal data to Vector 3.
      1. We have a priority system on which it always chooses the type of connected ports to be used over disconnected ones
        1. All other input ports which are not connected will be changed to the new chosen type and their internal data will be adjusted
      2. If both ports are connected, then each type as an associated weight and the result type is chosen according to it.
        1. P.e. Vector 3 as an associated weight of 6 as a Float on have a weight of 4 so if you connect a Float and a Vector 3 to a Multiply node then the Output port type will be a Vector 3.
    3. You then modify the internal data for the B port which is internally set to a Vector 3
    4. When creating a Multiply node it will again, by default, have all it's ports also set to Float
      1. As soon as you connect it to the A input FMod, and since it is the only input connection, you will be forcing B to also change to Float
      2. Since now B is a Float, its internal data will cast to Float, on which we internally achieve by getting its first float element ( thus loosing all the remaining elements )
    5. You then connect the Vector 3 node into the Multiply, which changes its type to Vector 3 and propagate this change to FMod resulting on its A port internal data to be set to Vector 3
      1. Since it was previously a Float, it only contains one element which is set to the Vector 3 first component, thus showing the result you reported
    Sorry for the long explanation, but just wanted to explain why this is the intended behavior.

    Concerning the exception you reported, we already fixed it and uploaded a new build into our webpage.

    No problem at all, please do always report any issue you may have or something you don't quite understand.
    I'll just give a brief explanation here to other community members that may come across with this.
    Queue index is an offset which is summed to the selected render queue index.
    Here are the internal indexes associated with each render queue:
    • Background: 1000
    • Geometry: 2000
    • AlphaTest: 2450
    • Transparent:3000
    • Overlay: 4000
    So in this case, as we have Geometry Render Queue selected and have a Queue Index of 2000, the resulting Render queue is 2000 + 2000 = 4000.
     
    ScaniX likes this.
  20. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    497
    Those tags I referred earlier may also be used to accomplish that. But to be honest, we are still very early on our research and cannot give yet a proper estimate on when and what we can achieve with our plans.
    I do apologize for not being able to give you a more straight answer.
     
  21. ScaniX

    ScaniX

    Joined:
    Apr 10, 2016
    Posts:
    27
    As a coder I was expecting something like that. That's why I wrote "It is an understandable effect". At the same time, I would think about adding a memory of previously used values. Even when switching type it would still keep the value of the components that are still applicable.
    So I would probably implement it with a fixed internal data structure of float[4] to store the value and only use the components necessary for the currently assigned type. e.g. use float[0] for a simple float or Vector3(float[0], float[1], float[2]) when switching to Vector3, so even when switching back and forth between those types, the most recently assigned values would still be there. Might be more complicated if you have a type that float is incompatible with.
    But that does not necessarily match your coding pattern or grand picture. As I said: It would be a convenience feature and when you know what happens (thanks for your in depth explanation) you can work around or anticipate those effects. :)
     
    Amplify_RnD_Rick likes this.
  22. spaceemotion

    spaceemotion

    Joined:
    Sep 29, 2015
    Posts:
    77
    I would like to report a very minor bug: Copying nodes does not take the names with them. I tried to copy a section of one of the shader examples into one of our custom shaders and the names for the properties (in this case floats) were not carried over.
     
  23. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    497
    Thank you for reporting this issue. We'll register it on our bug tracker and fix it as soon as possible.
     
    spaceemotion likes this.
  24. spaceemotion

    spaceemotion

    Joined:
    Sep 29, 2015
    Posts:
    77
    I also noticed a clipping bug in the interface (so nothing major) with the connections. Details in the attached image.
     

    Attached Files:

  25. Skeletim

    Skeletim

    Joined:
    Jun 19, 2013
    Posts:
    29
    This is a question that may have been answered in the 15 pages, but didn't nothing seemed to pull from searches so...

    The handful of gbuffer related global textures that hold the various render layers: Depth + Stencil and CameraGBufferTexture0-3, does Amplify Shader give me access to that, or is this still something I will have to write code for manually?
     
  26. Obsurveyor

    Obsurveyor

    Joined:
    Nov 22, 2012
    Posts:
    276
    I made a similar post about this over the holidays. I'd love it if you could keep similar names, if possible, when copy and pasting within the same shader as well.
     
  27. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    497
    Eheh nicely caught!

    Unfortunately we do not give access to them via ASE but we'll register your request in our community suggestions section of our roadmap.

    We apologize for not answering back to you about this issue, you are totally right on noting that this had already been reported by you.
    Rest assured that we'll take care of it and will be fixed on a near future.
     
  28. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    1,411
    Anyone using the Custom Expression node? It's super quick to setup!



    We encourage you to share your creations with the growing ASE community. In addition to this thread and our own Sample Page, we will feature the latest notable samples in the ASE Asset Store page.

    Submit Content here!
     
    recon0303 and benderete like this.
  29. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,477
    Context menu with option to delete a node? I just like a mouse centric workflow sometimes.. and it seems the only way to delete a node is by hitting the delete/backspace key.

    Things like resizing the comment box.. the mouse cursor doesn't change to signify you're over the corner edge to resize it. .. also a faster way to disconnect a connection that doesn't involve clicking on it, moving out of the input and releasing, when it then opens the popup.. its kinda annoying sometimes.

    Selecting a connection spline directly so it highlights, you can dbl click on it to add another point, but it would be nice to be able to select them and also be able to delete completely, maybe right click on a connection input/out deletes the connecting spline(s) directly, that way don't have to drag it out and get that auto popup to deselect out of.

    Could amplify andle some sort of internal variation of shaders so you can within one shader make something, take a snapshot of it, to set as the main shader, then make some changes based off it, and bookmark that as wip.. then whatever bookmark your variation is set to will get compiled...

    A bit like photoshop layer compositions..so amplify stores all the compositions in the shader file commented out in its own format as it does already, but whatever the main comp is set to is what gets compiled and generated as the main shader code? (not really a subshader though.. it would be like variation system for subshaders aswel :) ) Failing that making it easier to save a shader directly to another filename within amplify?

    How far off is amplify from being able to open existing shaders and display them as nodes? I often just find myself wanting to make tweeks to existing shaders, sadly still have to open them in code form :(

    "Anyone using the Custom Expression node? It's super quick to setup!"

    I didn't know about it.. haven't gone through most the nodes.. though I did find the layer blend type nodes pretty useful :D
     
  30. ScaniX

    ScaniX

    Joined:
    Apr 10, 2016
    Posts:
    27
    After cleaning up my first shader a bit, I have a few notes:

    - when moving the comment node it will swallow all nodes it gets dropped on, I expected it to be a more stable grouping element and only contain the initial assigned nodes or nodes that are dragged into it
    - the shader editor is coming to the front a bit too aggressively for my taste. often when I was just checking a gameObject with a shader to see the input values, the shader editor popped up and moved the inspector to the back as I have those two tabs in the same container
    - after switching the inputs of all my multiply nodes at least three times each, I was wondering if there should be a key modifier letting you switch connections with each other, e.g. holding down CTRL while dragging the top input of the multiply node onto the bottom one would switch those two.
    - when I tried dragging around multiple nodes using a multiselection while zoomed out, I often accidentally hit a connection and started dragging that one instead. When there is a multiselection, the inputs could probably be locked to avoid this. maybe as an option?
    - BTW: will there be options to customize the behaviour of the editor? probably define own key shortcuts, etc.?


    PS: Is this art yet? XD
     
    laurentlavigne likes this.
  31. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,477
    art node spaghetti rating 4.4
     
    ScaniX likes this.
  32. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    2,313
    Lovely!
    And are you planning on showing each node's result within the node?
     
  33. kebrus

    kebrus

    Joined:
    Oct 10, 2011
    Posts:
    414
    +1
    I like that idea, I've had that problem many times before
     
  34. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    497
    Hey guys,

    Player7 and ScaniX, thanks for all the suggestions, there are some really cool ideas in there.
    Will also take a look at the reported issues.

    Regarding the more direct ASE questions:

    We are researching the best way to be able to tackle this request so it will take a while until we can give you an estimate on this.

    Unfortunately we are not planning on adding this level of customization.

    This has been a very requested feature so we are heavily considering on implementing this but if so, wont be on a near beta update.


    Also, we are planing to upload a new build tomorrow with some of the reported bugs already fixed.

    Thanks to all of you guys which are taking the time ( and having patience ) on reporting bugs and giving us such cool suggestions.
     
  35. studio1h

    studio1h

    Joined:
    Jul 6, 2012
    Posts:
    31
    Hi,

    First of all, I'm really loving Amplify Shader Editor, so far. You guys are doing some really amazing work here!

    Question 1: Are toon shaders possible, yet? Looking at the manual I see "The Opacity Mask, Per-Vertex Data and Custom Light Model input ports of the Master Node are currently disabled." Do we need to wait until custom lighting is implemented?

    Question 2: Will light maps be supported for custom lit shaders? I ask because Shader Forge does not support light maps for custom lit shaders. If possible, I would really like to see this added to Amplify since it doesn't sound like it's going to be implemented in Shader Forge any time soon:

    https://shaderforge.userecho.com/topics/778-lightmap-support-for-custom-lighting-shader/

    THANKS!!!

    : )
     
    recon0303 likes this.
  36. ScaniX

    ScaniX

    Joined:
    Apr 10, 2016
    Posts:
    27
    Some notes about the new expression note:
    - it took me a while to get it to work, the first attempts just ended with a shader compiler error (undefined variable v), using two float3 as inputs
    - adding and removing inputs using the +/- at the inputs will create wrong indices at the inputs (e.g. [0] in0, [0] in1, [0] in2, [4] in3, ...), but I don't know if that has any impact
    - if you use i or v (or maybe others as well) as names for your inputs, they will collide with the ones created by the node

    Negativity compensation note:
    - I really like this node. After playing around with it for a while I got it to work and was able to do stuff that I normally would need lots of separate nodes for

    :)
     
  37. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    497
    Hey studio1h,

    Thank you so much for such kind words!
    You can already play/hack around a bit with it by writing on the emission channel but it will be far easier ( and correct ) when we will launch support for custom lighting.

    Since we are internally using Surface Shaders on ASE, they automatically support lightmaps.

    Thanks for yet another cool feedback. We'll take a look at the index issue you reported and fix it as soon as possible.
     
  38. studio1h

    studio1h

    Joined:
    Jul 6, 2012
    Posts:
    31
    That's awesome news!!! -- Thanks again : )
     
  39. studio1h

    studio1h

    Joined:
    Jul 6, 2012
    Posts:
    31
    Follow up question: Looking through the list of available nodes, I'm trying to find equivalents for these 3 nodes from Shader Forge:

    Light Direction
    Normal Direction
    Light Attenuation

    I don't see them in the list, but maybe they're just named differently? If not, would it be possible to put these nodes on the to do list?

    Thanks!

    : )
     
  40. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    497
    Hey guys,

    @studio1h answering about the nodes you requested.

    Light Direction:
    You can use our 'World Space Light Pos' node. This returns a light direction if you are using directional lights.

    Normal Direction:
    Please check our 'World Normal' node.

    Light Attenuation:
    We don't have a node which gives light attenuation directly but we have a 'Light Color' node which also takes attenuation into account.


    We also uploaded a new build. Here are the release notes:

    Release Notes v0.3.1 dev 008:

    • Small fix to 'Virtual Texture Object' node
    • Fixed issues on 'Texture Sample' node
    • Fixed issue on not correctly unregistering nodes from 'Commentary' nodes when they were deleted
    • Fixed issue when reading old shaders created with v0.2.4 dev 004
    • Fixed issue with 'Texture Coordinates' node when using Tessellation
    • Fixed issues and tweaked overall normals generation
    • Fixed issue on 'Vector From Matrix' node
    • Fixed issue on ASE canvas camera incorrectly panning when hitting a tooltip with Middle/Right Mouse Button
    • Fixed connection errors with 'Vector From Matrix' node
    • Fixed issue with 'Vertex To Fragment' node
    • Deprecated 'Local Position' node
    • Added 'Grab Screen Position' node
    • Tweaks on nodes and ports names to maintain overall consistency
    • Added new Scale and Offset option on 'Screen Position' node
    • 'Register Local Var' node now also has system to prevent duplicate names

    Please let us know if you have any issues and happy shader creations!
     
  41. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    497
    Hi everyone,

    Here's another build.

    Release Notes v0.3.1 dev 009:
    • Fixed 'Grab Screen Color' node issues
    • Minor tweaks on Context menu
    • Tweaked 'Screen Position' and 'Grab Screen Position' behavior
    • Added switching of input ports connections by holding the CTRL key
    • Added removing of input ports connections by double clicking with the left mouse button on them
    • Forcing Shader Model to at least 4.6 if Tessellation is active

    Just a few notes:

    Regarding the context menu tweaks, it now doesn't show when picking up a input port. It also now creates a node from the original mouse start position you right mouse clicked instead of the actual one when selecting the desired node.

    A new 'Noise Generator' node is also on the works since the current one has lots of artifacts. You can already check it out but please take note it is still is a work in progress.

    Like always please let us know if you have any issues and happy shader creations!
     
    ScaniX likes this.
  42. ScaniX

    ScaniX

    Joined:
    Apr 10, 2016
    Posts:
    27
    Awesome news! It is really fun to see this evolve at an amazing speed. :)

    Concerning the expression node (or all shaders in general):
    Could there be a region in the .shader file that you ignore and keep as is? This would allow me to write my own little function (e.g. angleBetween()) and then use it in the custom expression node.
    Just an idea. :)

    PS: I think you are still investigating the index problem in the expression node, so this could be related:
    Bug: Expression node input arrogantly ignores connections
    - Create expression node
    - Add second input
    - Delete first input (using "-" on first input)
    -> Remaining input no longer accepts connections
     
    Last edited: Jan 25, 2017
  43. kebrus

    kebrus

    Joined:
    Oct 10, 2011
    Posts:
    414
    I'm a happy camper :)

    switch.gif
     
    Seith, ScaniX and hopeful like this.
  44. Frylow

    Frylow

    Joined:
    Mar 17, 2016
    Posts:
    3
    Hi there!
    Since it has not been addressed for a few months and i don't see this on the roadmap, i would just like to ask when we might get refraction support.

    Otherwise we are really happy with the beta, keep up the great work :)
     
  45. ScaniX

    ScaniX

    Joined:
    Apr 10, 2016
    Posts:
    27
    I love this as well. You can also switch connections between different nodes. :)

    Another crazy idea to enable us to write reusable functions in the shader:
    Have a node that has N inputs (or N*M inputs) and N outputs, so I can use the same expression to evaluate several cases.
    Another way to do this would be to add that "instance" vs. "object" toggle that exists in texture nodes. So I can have one custom expression node as the function and add instances of it to evaluate other cases in the same graph with the same expression.

    PS: I used the expression node yesterday to create an animated shader and I guess without it the graph would be totally unmanagable with like 30 extra nodes for all the calculations. So this is definitely a great thing. :)
     
    Last edited: Jan 26, 2017
  46. kebrus

    kebrus

    Joined:
    Oct 10, 2011
    Posts:
    414
    Refraction was one of first things I did with the editor after the first few updates, so in a sense it was one of first things to be addressed. Here's the simplest example I can come up with using one of the samples as a base:

    SimplestRefraction.PNG

    I also shared a different refraction version in the first pages that has the normal of the object into consideration and does chromatic aberration. Here's an updated version using new nodes to support normal maps as well :)

    *download in attachment*

    cheers ;)
     

    Attached Files:

    ScaniX likes this.
  47. Frylow

    Frylow

    Joined:
    Mar 17, 2016
    Posts:
    3
    (Now i feel stupid:oops:)

    Thanks man, awesome! Much, much appreciated! :)
     
  48. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    3,976
    This is shaping up quite well... I have been meaning to ask, how do I set the comments for a shader tree? I keep seeing them in examples, but I can't seem to create it.
     
  49. ScaniX

    ScaniX

    Joined:
    Apr 10, 2016
    Posts:
    27
    Select some nodes, then press C. I hope I remember it correctly. :)

    PS: I experienced this as some sort of hidden feature as well. I started to believe they were trolling me by showing something in their screenshots that wasn't really there... ^-^
     
  50. Moouz92

    Moouz92

    Joined:
    Mar 16, 2016
    Posts:
    14
    Hey guys,

    Quick question: Do we have an acces to HDR color for the emissive ?

    And I'm not sur if the baked mode for the GI works propreply. I have well setup the shader in opaque geometry as it was specify in a previous update but it is still not working for me :/
    Here is an exagerate exemple where I have boost the emissive and the color.

    upload_2017-1-26_19-21-26.png
     
unityunity