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:
    528
    Are you already using the latest version from the website?
     
  2. DigitalAdam

    DigitalAdam

    Joined:
    Jul 18, 2007
    Posts:
    1,209
    I just installed it now. I tried all 3 again (Lerp/Multiply/Add) and I still get that error. What node would you suggest I use?
     
  3. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    528
    This most likely is an issue on our end. Is it possible for you to share your shader with us via email ( support@amplify.pt ) so we can try to replicate it on our end?
     
  4. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389

    Unite'17 Europe

    Next week we will be attending Unite'17 in Amsterdam and won't be able to provide support and new builds to ASE. Please come by our booth ( B03 ) if you are in the neighborhood. It would be awesome to meet you all in person!

    Our response time will be back to normal shortly after Unite. For priority issues, please contact support@amplify.pt directly.

    Happy shader creations!

    ** New page bump **
     
  5. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,394
    I will drop by :)
     
    Amplify_Ricardo likes this.
  6. davysw

    davysw

    Joined:
    Jul 15, 2014
    Posts:
    17
    Hello and thank you for your help last time. I'm having trouble exactly matching my asset I shaded in substance painter to a basic shader I've been putting together in Amplify. There doesn't seem to be a 1:1 between the exported data and the shader setup. I'm not sure what information would be able to help. My goal is to pack Metalic, Gloss, Ambient occlusion into one file to save space (black and white data in RGB channels respectively). I was combing through this thread and saw mention of a more specific metalic workflow. Alternatively, is there just some math blending that UNITY does on its end for its default metalic shader? I assume there is because smoothness is drawn from the gloss map (by substance painter terms) in the metallic texture's alpha channel, and then there's a slider that affects it. I can't tell if this is just LERP, or multiply or add, or maybe some combination with other effects.


    Thank you very much for your time Amplify and people of the thread.


     
  7. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Awesome ;)

    Hello,

    We would be happy to help. I see what you mean, there was a mention about offering other "Metallic Workflow Conventions", so to speak, but the Standard Unity shader type works very similarly. In ASE, the smoothness is not drawn from any specific channel, you define were it comes from as required.

    Plug your Albedo RGB to the Albedo input, The channel with Metallic to the Metallic input, and the Occlusion channel to the Occlusion input. The "Glossiness" is inverted in Unity, add a One Minus node and connect the glossiness channel to it, connect the One Minus node to the Smoothness input.

    You can add your own slider to almost any value using the Multiply node.



    Alternatively, you can invert the glossiness on export directly in Substance Designer.

    Looking forward to your feedback.
     
    davysw likes this.
  8. antoripa

    antoripa

    Joined:
    Oct 19, 2015
    Posts:
    1,163
    Cool .. see you there ...
     
  9. SniperEvan

    SniperEvan

    Joined:
    Mar 3, 2013
    Posts:
    161


    I used the example materials that come with Amplify for my new channel logo. I plan on doing more Amplify Tutorials in the future so feel free to subscribe if you're interested.
     
    Amplify_Ricardo and antoripa like this.
  10. Rowlan

    Rowlan

    Joined:
    Aug 4, 2016
    Posts:
    4,296
    Will there be a sale for Amplify Shader then? Because in that case I'll wait the few days before I buy it :D

    License question: Is it allowed to provide the generated shader code for free, e. g. on github? Or would there be licensing issues?
     
  11. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Looking forward to it!

    Awesome ;)

    Unfortunately, we don't have any sale planned, just the giveaway. Be sure to enter, winners will be announced shortly after Unite.

    You own all shaders that you create with ASE, as long as you don't include the editor source code or the samples in their original form, you can distribute them however you wish.

    Thanks!
     
  12. HitsuSan

    HitsuSan

    Joined:
    Sep 28, 2014
    Posts:
    158
    So... i'm back a million months later with some spare time and i've decided to make my own visualizer with pbr + additive fx materials with a neat color masking technique with no edge alias and that allows vibrant colors with full scale rgb spectrum using Amplify Shader :) here's the result:


    Since i have a little more spare time i've decided to work on a personal project of mine (tied to a game one day i will finish.... sure) and i wanted to convert a tool i've made in substance designer into a proper shader but i've noticed there's still no custom light option in Amplify Shader :( what's holding you back? I really need that function ^^
     
    kebrus and laurentlavigne like this.
  13. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    Hello,

    Just updated to the latest version v1.0.0.012. After recompile, I get issues with Undefined Variables. It seams that the issues appear when using the static switch node, where in one input the code is calculated in vertex shader and in the other in pixel shader. It worked ok in v1.0.0.010. An example shader is attached.
     

    Attached Files:

  14. Diogo-Teixeira

    Diogo-Teixeira

    Joined:
    Apr 9, 2010
    Posts:
    494
    Hi HitsuSan,

    We already have this feature but we currently doing a short public testing before we ship to the Asset Store. In order to get it, you'll have to download the latest version via our website. You just need to enter your Invoice ID, press Unlock and the download button will become visible (green).

    Here's where to find the new Custom Lighting feature once you've installed the latest build:


    Hi BOXOPHOBIC,

    Thanks for reporting this bug. Most of our team is currently away for Unite Europe. I'm not sure if they'll be able to fix the problem while at the conference. Worst case, however, we'll have it fixed by next Monday.
     
  15. HitsuSan

    HitsuSan

    Joined:
    Sep 28, 2014
    Posts:
    158
    Thank you very much ;D this is going to be fun!

    Now since it's a little bit different on what i'm used... how do i make a simple lambert in Amplify Shader? ^^ It should be a dot product between normal direction and light direction but it doesn't seem to be willing to collaborate... Also i don't know how to include a normal map into the equation lol (shaderforge simply had the functionality built in).
     
    Last edited: Jun 27, 2017
  16. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    @HitsuSan - The bugged shader I posted above is a classic blinn phong shader, with calculations per vertex. I uploaded another one without the static switch node. Hope it helps. If you want per pixel lighting, just remove the vertex to fragment nodes.

    @Diogo-Teixeira - No problem ! Have a good time there !
     

    Attached Files:

  17. HitsuSan

    HitsuSan

    Joined:
    Sep 28, 2014
    Posts:
    158
    Oh thank you so much, that helped a lot! (it only takes a few differently named nodes to make my poor artist brain melt down ^^)
     
  18. nxrighthere

    nxrighthere

    Joined:
    Mar 2, 2014
    Posts:
    567
    I have an issue with a Custom Expression node that's connected to the Local Vertex Offset in 1.0.0 (Dev 12).

    How can I set equals operator here
    Code (csharp):
    1.  
    2.        void vertexDataFunc( inout appdata v )
    3.        {
    4.            v.vertex.xyz = ( /* Custom Expression code */ ).xyz;
    5.        }
    6.  
    instead of plus equals shorthand operator which is always ASE set it by default in the output shader?
     
    Last edited: Nov 18, 2017
  19. x4000

    x4000

    Joined:
    Mar 17, 2010
    Posts:
    353
    Over there on the left, where it says Vertex Output, change that from relative to absolute. All that does is change the += to an = instead. I think it's super unclear. Then again, there's not really better terminology, and apparently they've been around and around on it themselves.
     
    nxrighthere likes this.
  20. nxrighthere

    nxrighthere

    Joined:
    Mar 2, 2014
    Posts:
    567
    Oh, I got it... Thank you for the quick response!
     
  21. x4000

    x4000

    Joined:
    Mar 17, 2010
    Posts:
    353
    Glad to help. I'm not with Amplify, but I had the same trouble as you a few months ago. :)
     
  22. Yokoneko

    Yokoneko

    Joined:
    May 23, 2017
    Posts:
    3
    After all it is convenient to combine the Code part of the Custom Expression node with the ASE Node ...
    Also, I want a For loop node ...
     
  23. HitsuSan

    HitsuSan

    Joined:
    Sep 28, 2014
    Posts:
    158
    This might be a dumb question but is there a way to determine how many lights are interacting with the shader?
     
    laurentlavigne likes this.
  24. ViktorKom

    ViktorKom

    Joined:
    Feb 24, 2015
    Posts:
    29
    Hi!
    I made a simple shader like "standard" and want use tesselation. I have the error if turn on "Tesselation".
     
  25. Caronte3D

    Caronte3D

    Joined:
    Sep 16, 2014
    Posts:
    43
    Hi!

    Every time I need a gradient, I use the UV output, but ... Is there a way to modify the output from linear to ease-in ease-out, etc?
    It would be great if ASE had a curve node, to make gradients easily.
    Any ideas, workaround ...?

    Thanks!

    P.D: A texture is not a good option in my case.
     
  26. Dvonio

    Dvonio

    Joined:
    Oct 15, 2013
    Posts:
    20
    Hello, Is ASE capable of creating Image effects? and if so, would you be so kind to let me know how (I mean to add it to the camera and so on, not the shader itself)?

    Thanks a lot!
     
  27. x4000

    x4000

    Joined:
    Mar 17, 2010
    Posts:
    353
    Couple of new nodes/effects I'd like to request, which I think would be quite useful:

    1. A "single texture" version of the triplanar shader node. This already is easy to achieve in the interface, but basically it still does 3x the calculations needed so far as I can tell. Often a "triplanar" shader is really just used as a "uv-less oriented" shader, or at least I think that's the term.

    2. For the parallax/pom methods that are presently there, it looks like it's expecting just to operate on the raw uvs of the mesh itself. Which makes sense. But if there was a way to give the resultant uvs from the "uv-less oriented" method in instead, then I could do uv-free POM, which would be something that isn't available elsewhere from what I can see. I don't think that literal triplanar+POM is possible given how they are respectively calculated, right?

    edit: Regarding POM/parallax and "uv-less oriented", it turns out that actually the Alloy shader framework does support that -- but ONLY using the phong/curve method, and not using a heightmap. The heightmap method is so vastly superior...
     
    Last edited: Jul 3, 2017
  28. Amplify_RnD_Rick

    Amplify_RnD_Rick

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

    We just got back from Unite and are already at the office working at full force.
    We'll start answering all pending questions and reported bugs.

    Apologies for the inconvenience!
     
    antoripa, laurentlavigne and x4000 like this.
  29. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    528
    Hey @ViktorKom,
    Unfortunately we're not being able to reproduce this issue on our end.
    Can you let us know which Unity Version and Operating System are you using?
    Are you by any chance on a Mac?
     
    Last edited: Jul 3, 2017
  30. x4000

    x4000

    Joined:
    Mar 17, 2010
    Posts:
    353
    Welcome back!
     
  31. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,467
    Good to see you guys back
     
  32. strich

    strich

    Joined:
    Aug 14, 2012
    Posts:
    375
    How does one set a texture object to be global? IE it should be declared, but no inspector property (And no [HideInInspector] doesn't work).
     
  33. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    528
    Hey strich,
    You just need to set its Type to Global on the Node Properties window.

    Don't know if this option is already available at the Asset Store but you can download the latest ASE version from our website which already has it and much more.

    We will be updating the Asset Store with the latest version really soon.
     
    x4000 and strich like this.
  34. strich

    strich

    Joined:
    Aug 14, 2012
    Posts:
    375
    Awesome that worked a treat. One more question - I need to blend two normal maps using a greyscale texture mask. IE only blend nmA into nmB based on how white the corresponding pixel on this mask is.
     
  35. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    528
    Hey guys,
    We've just uploaded a new build into our website.
    It contains some overall optimizations and bug fixes.

    This new build was also uploaded into the Asset Store so it will also available from there soon.

    Here are the release notes:
    Release Notes v1.1.0 dev 01:
    • Fixes:
      • Fixed issue with being able to open recently created shader multiple times
    • Improvements:
      • Added preview for 'Screen Position' node
      • Append' output type can be selected from node body
      • Small overall optimizations

    You can do something like this:

    upload_2017-7-4_15-37-33.png

    Hope this helps.
     
  36. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,467
    This looks cool :).

    Is it possible to trigger shader functions, through scripting.
     
  37. strich

    strich

    Joined:
    Aug 14, 2012
    Posts:
    375
    I've got some custom code I'd like to run in the frag body without any output. I want to move this shader to Amplify managed for forward and deferred. Is it possible? I tried using `Custom Expression`, however it seems I must hook it up to something for it to compile into it.

    Code from my own shader:

     
  38. Gray_Master

    Gray_Master

    Joined:
    Jun 20, 2010
    Posts:
    152
    In Unity 2017.1f1 - whyle create new or edit existing shader i see next msg:
    Image 912.png
     
  39. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    528
    Shader Functions can only be called from within a shader since it generates shader code inside your main shader body.
    Can you let us know on which context would you like to access a shader function from a script so we can figure out a solution?

    It's not possible to currently do that since how ASE works is assigning results to variables by traversing the graph. But that's quite an interesting challenge.
    Let us think a bit on this and try to figure out an elegant solution.

    This is a known Unity issue. It happens also when creating p.e a default standard shader and then a default unlit one.
    Even by simply selecting different kinds of shaders on the project makes Unity to crash.
     
    KRGraphics likes this.
  40. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    528
    Hey @strich there might be a simple hack you can use.

    Create a Custom Expression with its Output Type set as Float.
    End your Custom Expression code with a return 0; , this will make the node generate a function with your code.

    Connect its output to an Add node input. Connect the other input from the Add node into your graph on a place where you find relevant the function to be called. Since you're summing a value with 0 that value will not be altered and your function will be called.

    Something like this:

    upload_2017-7-5_15-45-33.png
     
    Last edited: Jul 5, 2017
    strich likes this.
  41. Gray_Master

    Gray_Master

    Joined:
    Jun 20, 2010
    Posts:
    152
    You not known whyle fix it?

    And Other question - whyle in ASE has been add postprocessing ?
     
  42. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,467
    An example of this is in my game, I have an attack that can turn the opponent into
    Gold. Or a character that can turn into a shadow.
     
  43. x4000

    x4000

    Joined:
    Mar 17, 2010
    Posts:
    353
    I do this sort of thing. Basically just have a float input (or bool or whatever), and set that as an instance property, and use GPU instancing (ideally). Then in the MeshRenderer material property block, set the input value to whatever you want. For something that is instant, you can just set it and forget it. For something that happens over time, you can use a C#-side lerp of the float input.

    Bear in mind that if you want to keep batching working, the only option is GPU instancing. But if this is a skinned mesh renderer you already don't care. Even there it might be better to do is as an instance variable and use sharedMaterial just to avoid accidentally allocating copies, though.
     
  44. ColtonKadlecik_VitruviusVR

    ColtonKadlecik_VitruviusVR

    Joined:
    Nov 27, 2015
    Posts:
    197
    Hey All,

    Changed up that text shader I posted last week to dissolve using the sample dissolve from the community folder (rather then fade). Had everything working about an hour ago, then started changing settings to correct the rendering order issue I'm having with shadows:

    Capture.JPG

    and now the shader wont dissolve at all. I have looked all the settings over and compared it to the simple dissolve example but cant seem to find the issue, any ideas (simple dissolve example also doesn't suffer from the shadow issue)? I have attached the shader to reference.

    Capture.JPG

    Thanks in advance,
    Colton
     

    Attached Files:

  45. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,467
    Sounds easy... but I will have to do this on characters that have multiple materials. and in UFE.
     
  46. Gray_Master

    Gray_Master

    Joined:
    Jun 20, 2010
    Posts:
    152
    Fixed in Unity 2017.1f2
     
  47. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    528
    Cool, this is great news indeed. Thank you for sharing.

    We just uploaded a new build mostly with fixes on reported issues.
    Here are the release notes.
    • Release Notes v1.1.0 dev 02:
      • Improvements:
        • Vertex TexCoord' and 'Swizzle' node types can be selected from node body
      • Fixes:
        • Fixed issue with 'Grab Screen Color', 'Get Local Var' and 'Texture Sample' nodes loosing references inside Shader Functions
        • Fixed issue on not correctly registering all Grab Passes from multiple 'Grab Screen Color' nodes
        • Fixed small issue on 'Commentary' node not being able to focus on comment text field when created
    Happy shader creations and have an awesome weekend!
     
  48. Pecek

    Pecek

    Joined:
    May 27, 2013
    Posts:
    187
  49. kebrus

    kebrus

    Joined:
    Oct 10, 2011
    Posts:
    415
    Sorry, to put it short, you can't. Truth is, you could do it if you somehow create a distance field solution for unity. The way that particular case works is that it uses distance fields to calculate the distance to a mesh (in this case, terrain). Without distance fields you would need another solution. One could be to pass the terrain heightmap to the shader itself but you'll still had to figure out how to get the surface normals as well. Maybe a side script that generates that for you?

    Either way, the editor can handle the shader part, not the "get-me-the-mesh-distance" part.
     
  50. Gray_Master

    Gray_Master

    Joined:
    Jun 20, 2010
    Posts:
    152
    It's my pleasure )))