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. MarcusGT

    MarcusGT

    Joined:
    Jun 4, 2016
    Posts:
    3
    Dear Amplify Team,

    would it be possible that you implement geometry shader in the future ? Did you have that already in pipeline ?

    Best regards,
    Marcus
     
  2. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello there!

    This is planned but not available yet. Our apologies but we currently don't have an ETA, it's definitely high on our list.

    Thanks!
     
    MarcusGT likes this.
  3. Ologon

    Ologon

    Joined:
    Nov 16, 2014
    Posts:
    16
    Hi,

    Thanks for the fantastic tool. I am having a small issue with it: previews for custom expression nodes don't seem to be showing up properly. For example here I have made an "ellipse" node to generate a white ellipse:



    As you can see in the multiply node, the preview is completely black when it shouldn't. The shader, however, is working properly:



    Aren't previews currently supported for custom expression nodes?
    It's a small issue, but it's a bit annoying because as soon as I use a custom expression node in the graph all previews which come after it become unusable.

    Thanks!
     
    Last edited: Nov 1, 2020
  4. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello there,

    Our apologies for the inconvenience but Custom Expression nodes do not currently generate previews; the same is true for a couple of other nodes due to the way we run those calculations. This could change in future versions.
     
    Ologon likes this.
  5. Igualop

    Igualop

    Joined:
    Mar 1, 2017
    Posts:
    30
    Hi again,

    I've noticed that after updating from version 1.8.0 to 1.8.6 (1.8.7 r3 has also this issue) my texture samples are now generating an unused variable called: SamplerState sampler_TextureSample0, where TextureSample0 is the name/property name of the texture sample.

    You can reproduce this by simply creating a TextureSample and connecting any of the single value output ports to any other node (RGBA does not produce this variable).

    Just reporting since this is not exactly an issue as compiling removes them.

    Thanks.

    Edit: Specified output ports
     
    Last edited: Nov 3, 2020
  6. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hey there,

    We've added Sampler State support recently, what shader type are you using? An example would be great; although it could be normal, I'd be happy to run it by the devs with a shader sample.

    Thanks!
     
  7. tntfoz

    tntfoz

    Joined:
    Sep 29, 2016
    Posts:
    129
    Hi a couple of questions about ASE (I don't have it yet!):

    - Can you load existing shaders from a project into ASE, or do all shaders the editor works with need to be created in the editor beforehand?
    - Does ASE have any kind of optimizing process for shaders?

    My hope is to use ASE to load in shaders from my project, click an Optimize button, and then everything runs faster! :)

    A pipe dream I know, but still, it would be a killer feature if ASE doesn't already do this!
     
  8. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello there!

    I'm afraid that's not the intended purpose of ASE; it can only open shaders created with the editor. As for optimization, it does provide you with many options to optimize your ASE shaders.
     
    tntfoz likes this.
  9. tntfoz

    tntfoz

    Joined:
    Sep 29, 2016
    Posts:
    129
    Thanks for your help!
     
    Amplify_Ricardo likes this.
  10. Tony_Beretta

    Tony_Beretta

    Joined:
    Aug 6, 2012
    Posts:
    17
    Here I am again after a long time, sorry.
    I made a video which I hope explains well what I want to do.
    But I don't want to share the link here, can I send it to you with a private message please?
    Thanks.
     
  11. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hey there, we're available for private/confidential support via support@amplify.pt.
     
  12. Tony_Beretta

    Tony_Beretta

    Joined:
    Aug 6, 2012
    Posts:
    17
    I can't send you an email.
    Google blocks them as spam. : D
     
  13. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    That's odd, is it being blocked on your side or ours?

    Please PM me the details in the forum as an alternative.
     
  14. Igualop

    Igualop

    Joined:
    Mar 1, 2017
    Posts:
    30
    I'm using some custom templates based on both Legacy/UI and Legacy/Unlit, but that issue also happens on other shader types such as the Standard.

    You can reproduce the issue with the graph below:

    upload_2020-11-4_23-24-8.png

    It should create that SamplerState variable which is not used anywhere in the shader code.

    If you don't connect any of the single output ports that SamplerState variable will disappear:

    upload_2020-11-4_23-25-10.png
     

    Attached Files:

  15. Sylmerria

    Sylmerria

    Joined:
    Jul 2, 2012
    Posts:
    369
    Hi :)
    Nooby question here: is there a way to have connector nodes ( called set/get node in shaderforge, portail in shadergraph (?)) with amplifyshader ?
    It allows to connect output value from one side of the graph to an another and keep the graph looking nice
    Thanks
     
  16. NokdefOktagonGames

    NokdefOktagonGames

    Joined:
    Oct 5, 2020
    Posts:
    3
    Hello! I'm struggling to work out in the docs how to add an extra pass to my shader.

    I have a regular surface shader, I'd like to make a template that has the same output node as my current shader and just add another pass with another local vertex offset to it. I can get the extra vertex offset to appear as an extra output node but I don't know how to set the main shaderpass to be the default surface unlit transparent cutout output.

    I'm doing my search on the wiki page for templates. Any pointers would be appretiated :D
     
  17. VE_GAME

    VE_GAME

    Joined:
    Mar 13, 2014
    Posts:
    41
    Hi
    how to make the shader animated fire
    worked URP ?
    thanks
     
  18. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    You shouldn't see that if "Use Sampling Macros" is toggled off, is this not the case on your side?
    (toggled Off and On)
    upload_2020-11-6_21-34-22.png

    upload_2020-11-6_21-35-2.png


    Hey there, it's called Register/Get in ASE.
    If you have not already, be sure to check our Tutorials and Manual.

    Hello!

    I'm afraid that's not possible, I suspect I already gave you this answer on Discord but, just for reference; Shader Templates are Vert/Frag only, can't add extra passes to Surface Shaders.


    Do you mean our Animated shader? You start by changing the Shader Type to URP and plugging any disconnect connections.

    Any issues? We'd be happy to help.

    Here's a quick example, check the timestamp linked:
     

    Attached Files:

    Sylmerria and VE_GAME like this.
  19. VE_GAME

    VE_GAME

    Joined:
    Mar 13, 2014
    Posts:
    41
    Thanks for the quick response
    I figured it out:)
     
    Amplify_Ricardo likes this.
  20. FuzzyOnion

    FuzzyOnion

    Joined:
    Aug 22, 2014
    Posts:
    35
    Hi,

    Not sure if this is the right place to ask this question but is this the most efficient way of shifting the hue of a texture over time? Thank you!

    upload_2020-11-8_19-24-59.png

    Thanks again!
     
  21. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hey there,

    The best way would be to pass the Hue value directly onto your shader with an additional script.(check our smear sample, we pass a position on this one)

    Alternatively, if this is a one time only thing, you could use the time add/multiply node along with a clamp node before the Hue input on the HSV to RGB node.
     
  22. FuzzyOnion

    FuzzyOnion

    Joined:
    Aug 22, 2014
    Posts:
    35
    Thank you for the reply Ricardo. I pass in a hue value in my actual script. I was just confirming that the RGB to HSV node combined with a HSV to RGB node was the most performant way to do it. I haven't seen a better way so I thought I'd check.
     
    Amplify_Ricardo likes this.
  23. Igualop

    Igualop

    Joined:
    Mar 1, 2017
    Posts:
    30
    "Use Sampling Macros" is toggled off. I took a look at the output with that option on and this is how it looks:

    off(red) /on(green)
    upload_2020-11-9_13-41-13.png

    The SamplerState variable is still declared on both modes, however, when toggling the option on, I noticed that the variable is used in the code.

    upload_2020-11-9_13-39-36.png
     

    Attached Files:

    Last edited: Nov 9, 2020
  24. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hey there, can you please forward us both versions of the shader to support@amplify.pt?

    Best to check it out on our side.
     
  25. Igualop

    Igualop

    Joined:
    Mar 1, 2017
    Posts:
    30
    Done.
     
  26. SuperUltraHyper

    SuperUltraHyper

    Joined:
    Sep 7, 2015
    Posts:
    112
    TLTR; ScreenPostion or Depth is broken in Universal Render Pipeline??

    We are changing out the Built-in Render Pipeline to use URP. This is because of issues with tessellation shaders in VR. (URP seems to work after the latest update :)

    In the process we are going through all of our shaders. However screen depth in URP seems to be broken?
    Top: Old / Original Shader / Built-in Pipeline (Worked in Unity 2018 and 2020)
    Bottom: New / URP PBR Shader / Universal Pipeline
    In the following image the screen depth appears to be broken.

    Can you confirm / ETA for a fix?
     

    Attached Files:

  27. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389

    Hey there,

    -Did you update ASE and re-save your shader?
    -What Unity and URP version was used in those shots?

    We'll check it out as soon as we have additional details.

    Thanks!
     
  28. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    For reference, in case other users have been experiencing similar results, we've made a change to ASE that should resolve this. Although the unused variables are removed by the compiler, best to make sure this is improved.

    Be sure to download the latest version from our website and resave your shader: http://amplify.pt/download

    v1.8.7.007 – 13th November 2020
    • Fixed issue on 'Texture Sampler' node incorrectly generating sampler states when its R,G,B,A ports were being used
     
    Igualop and cyuxi like this.
  29. benzy54n

    benzy54n

    Joined:
    Dec 21, 2013
    Posts:
    34
    I am having issues with TextureArrays:

    1) There doesn't seem to be a TextureArray Node showing up in the list of available nodes. I can use a texture array if I were to create a Texture Sample Node and then put the array as the texture though so I guess I have a work around.

    2) Using the array for the Albedo works great. I understand how this works. My problem is I am creating another array for the normal maps and it doesn't work correctly. I have confirmed if I use the normal texture not in an array it works as expected. I can tell something seems wrong because the color comes out as pink instead of blue?


    Is there some sort of special step when creating the array for normals vs albedo?
     

    Attached Files:

  30. SuperUltraHyper

    SuperUltraHyper

    Joined:
    Sep 7, 2015
    Posts:
    112
    Yeah, I have updated Unity, ASE, and recompiled the shader. Still no dice.
    ASE Version 1.8.7r7
    Unity 2020.1.12f1
    Universal RP 8.2.0

    Original post : #6276
    https://forum.unity.com/threads/bes...er-creation-tool.430959/page-126#post-6519844
     
  31. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    1. It's the Texture Sample node now.
    2.How are you creating that Array, where the texture set to Normal?


    We'll run a few tests on our side, thanks!
     
  32. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389


    Best of Unity Super Sale

    50% OFF Amplify Shader Editor, the go-to solution for multi-renderer Unity3d shader development.

    Learn more: Asset Store
     
  33. benzy54n

    benzy54n

    Joined:
    Dec 21, 2013
    Posts:
    34
    1) OK Thanks
    2) I figured out the issue. I did indeed have some of the normal maps not correctly configured. I re-did the array creation and things are as expected.
     
    Amplify_Ricardo likes this.
  34. benzy54n

    benzy54n

    Joined:
    Dec 21, 2013
    Posts:
    34
    I am attempting to use the VertexToFragment node to parse some state data that I am packing into uvCoords5.

    upload_2020-11-17_19-4-37.png

    Right now I am only packing either a zero to indicate water or a one to indicate land. My expectation is that when the value is passed to the surface shader it won't be interpolated. What is happening is that it appears to be interpolated or changes when used in the surface shader. For instance here is when I try to detect a 1.

    upload_2020-11-17_19-19-11.png

    The result is not great, I know comparing floats is generally not a great idea but I am not really going for high precision here:
    upload_2020-11-17_19-25-26.png

    Anything not land is black. If I check for zero water it seems to work:

    upload_2020-11-17_19-26-9.png

    There is a little bit of dead zone between the straight water and straight land. Since I want to use the data for indexes into texture arrays and normal strength I can't have this interpolated like this. Any help would be appreciated.

    Another question is I am not quite understanding maybe a core concept. Doesn't the surface shader need 3 vertices to interpolate? If that is the case in the vertex function it only gets data from one vertex? I have been trying to find an explanation to this. If anyone could link me to something helpful that would be great.

    Thanks!
     
  35. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello there,

    That is the expected behavior with Surface Shaders, it's always going to be interpolated as its actually not possible to pass them otherwise. The only way around that is to use a custom vertex/frag shader, which you can do from our included shader templates or create your own, by setting the special "nointerpolation" attributes on certain values.

    We've actually received a couple of options for something like this so we're planning to provide an option for it on our Vertex to Frag node in the near future; however, this will be for vert/frag shaders, not possible with Surface Shaders.

    In regards to your last question, the interpolation is done by the rasterizer between 3 vertices; no matter if it's with a surface or template shader(in the end, it's all vert/frag) - we don't have any control over this.

    Hope it helps!
     
    syscrusher likes this.
  36. benzy54n

    benzy54n

    Joined:
    Dec 21, 2013
    Posts:
    34
    Thank you for the response and knowledge!
     
    Amplify_Ricardo likes this.
  37. SquareBunnyBoy

    SquareBunnyBoy

    Joined:
    Feb 16, 2020
    Posts:
    27
    Good day!

    By a some reason height to normal node always gives me a black..

    upload_2020-11-19_10-48-15.png

    What am I missing here?
     
  38. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Are you getting black on the actual output of that node or just the preview?

    Depending on the nodes inside a Shader Function(the Normal From Height node, double-click to see the source), a Preview may not be available. This is true for a couple of other nodes, including Custom Expression nodes.

    Apologies for the inconvenience.
     
  39. JamesMakesGamesLtd

    JamesMakesGamesLtd

    Joined:
    Aug 22, 2012
    Posts:
    34
    Just picked up ASE and am trying to get up to speed, rebuilding some of my hand-written shaders in nodes... Could someone kind shed light on the following?

    Is there a way to access the summed outputs your graphs create in code? I can access defined material properties simply enough with e.g. mat.GetFloat etc, but what about accessing values that are not properties? Values that are the result of some operation by a node or values that are the summed outputs actually going into the Output Node? Is that possible? Or if not, can you create, for example, an actual property that takes an input and route through that?
     
  40. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hey there, welcome aboard!

    That's actually somewhat tricky, generally speaking, when it comes to shaders. Do you have a specific code block in mind that you'd like to replicate in ASE that would allow you to access specific values?

    We do have a Custom Expression node, which allows you input your own values or even call Functions from a cginc.

    But to be clear, you can't directly access the result of an operation such as Multiplication result between 2 floats for example.
     
  41. JamesMakesGamesLtd

    JamesMakesGamesLtd

    Joined:
    Aug 22, 2012
    Posts:
    34
    Hi Ricardo, thanks for the swift response and welcome :)

    Good to know! Essentially, before ASE, I was setting some properties in a second material by getting them from a first. Some textures and some floats. But the playful power of ASE has tempted me to make modifications _to_ those properties in the graph before outputting them to the Output node :), so the original properties are no longer what I'd actually like to pull into the second material. It's the modified outputs I need.
     
  42. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hey, no problem!

    If you can provide an example of what/how you were doing it, one of our devs would be happy to elaborate on how to do the same with ASE. (we're also available at support@amplify.pt)

    Thanks!
     
    JamesMakesGamesLtd likes this.
  43. eggsamurai

    eggsamurai

    Joined:
    Oct 10, 2015
    Posts:
    115
    totally broken in hdrp10, any plan to support hdrp10?
     
  44. SuperUltraHyper

    SuperUltraHyper

    Joined:
    Sep 7, 2015
    Posts:
    112
    I figured this out. The issue is that that the shader needed to be set to transparent and wasn't auto configured when I converted the shader from Built-in Render Pipeline to URP. Most shaders didn't need to be re-configured so over looked it.


    Cheers, great product!
     
    syscrusher likes this.
  45. Rob78

    Rob78

    Joined:
    Jul 8, 2013
    Posts:
    72
    I've recently noticed that Double sided in HDRP is not working for me. See attached.
     

    Attached Files:

  46. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    HDRP 10 is not supported yet. it's definitely not going to work as expected. We do not support Alpha/Beta Unity releases, or experimental SRP versions. Official support will be available around the time of the official release.

    Ah ok, glad you got it. Some properties do need adjusting when converting shaders.

    That's unexpected, what ASE and HDRP version are you using?

    If you could forward us a shader at support@amplify.pt, we would be happy to examine it.


    Quick update, we added the "nointerpolation" check box to the node; just keep in mind that this is only possible for vert/frag shaders.

    Be sure to update from our site, this version will be available at the Asset Store later on.
    http://amplify.pt/download
     
  47. PiAnkh

    PiAnkh

    Joined:
    Apr 20, 2013
    Posts:
    126
    Are the some other examples of shaders in HDRP aside from the few examples included? The examples available for the standard pipeline were very useful. Aside from making variants of the standard shader I am not having much success. I want to make a shader using alpha cut-off but ticking alpha clipping under the HDRP/Lit template does not change the output at all. I amusing Unity 2019.4 and the latest version of ASE.
    Thanks
     
  48. jacasch

    jacasch

    Joined:
    Jan 20, 2017
    Posts:
    16
    Are there plans to support URP 10?
    Ambient Occlusion would be nice. I think the shaders just need a depthNormals prepass.

    I know its preview, so I shouldnt even be asking. But yeah wwould apreciate it :p
     
  49. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hey there,

    Not at the moment, I definitely recommend converting the built-in ones, the nodes can be copy-pasted between shaders.

    There are some specific renderer differences going from Standard to HDRP, the Cutout example is a good one to showcase as you need a few steps to get it working as the Standard one.

    You'll need to toggle Alpha Clipping, as you did, in the shader, but also in the material; you must also plug an Alpha Clip Threshold value.



    Yes, Amplify Shader Editor will support HDRP 10 around the time of release; as you've guessed, we're unable support experimental releases, or beta/alpha Unity editor versions.

    Amplify Occlusion does not work with URP/HDRP, it was made for the legacy built-in renderer.
     
    PiAnkh likes this.
  50. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389