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

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,467
    I can try to. My shader is a custom setup for hair... even with diffuse only it looks natural
     
    Hitch42 likes this.
  2. Amplify_RnD_Rick

    Amplify_RnD_Rick

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

    We've uploaded a new build into our website. This build was also submitted to the Unity Asset Store and will be available over there soon.

    Here are the release notes.
    Release Notes v1.5.3 dev 01:
    • Improvements:
      • Conditional 'If' node also support Int as compare values
      • Added Triplanar scale port for normal scaling when using normals in 'Triplanar Sample' node
      • Improved code generation for 'Texture Coordinates' node
      • Changed way float values were being generated when their value was an integer
        • Removes warnings and makes sure some operations are done in the correct space, like divisions
      • Improved operations order on 'Panner' node
      • Added Force Disable Instancing option into Surface output node Rendering Options
      • Updated Lightweight SRP template to be compatible with Unity latest LW SRP version 1.1.5
    • Fixes:
      • Fixed issue on 'Global Array' node not being correctly detected by ASE
      • Fixed texture array sampling error caused by 'Parallax Occlusion Mapping' node on Unity 2018
      • Fixed issue on local variable excluded reset method
      • Fixed issue on 'Triplanar Sample' node Material Mode not being correctly set
    Hope everyone have a great weekend and happy shader creations!
     
    marcatore and KRGraphics like this.
  3. HiWill

    HiWill

    Joined:
    Jun 2, 2013
    Posts:
    18
    Have any plan for Dual-Paraboloid and port Unreal's PBR shader for mobile?
     
  4. bitinn

    bitinn

    Joined:
    Aug 20, 2016
    Posts:
    961
    Hi all,

    I am trying to figure out what is a decent way to achieve the following:

    - I have a decal sheet where decals are placed on a 4x4 grid.
    - I have a second set of UV where I use to place the decal onto my base mesh.
    - Goal: I want to mask out other decals when my UV shell doesn't fit the decal nicely.

    For example, if it's a decal sheet of logos, I want to be able to scale a logo on my mesh but also make sure we don't bleed into other logos.

    I can imagine quite a few ways of doing this, but I want to avoid this method: placing extra polygon on top of the mesh just for the decal.

    I want to find a solution masking out the decals in shader instead.

    Is there a way to do that efficiently in ASE?

    - Do I need to create a mask at runtime and blend it with my decal sheet?
    - Or can I create a simple grayscale mask and use some clever scale/offset to achieve my goal?

    Thx in advance!
     
  5. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,467
    Hey guys... so @Amplify_Paulo has been helping me with my hair shader and I have the four shader models for the hair... he is still trying to solve the fifth shader model, Marschner, which is the hardest one. The KRGraphics_Advanced_Hair shader suite is near complete, just need to fix some multipass stuff and depth to give the illusion of many fibres




    Circular

    upload_2018-4-29_23-5-11.png

    Kajiya-Kay (This is my Second Favourite shading model)

    upload_2018-4-29_23-6-1.png


    Scheuermann (This one is awesome)


    upload_2018-4-29_23-7-15.png


    Ward (Not a fan of this one, I will probably omit this in my suite)

    upload_2018-4-29_23-10-54.png


    So, what I have discovered with my shaders is that light cookies will cause a visual bug with the Scheuermann and Ward shading models (I don't know why). I am using Enviro for my skies and it took me a while to figure out what was causing my issues. But now that it's fixed, I can move on to figuring out depth sorting. And polishing up the character shading suite, including teeth shaders and eventually skin.

    I still have properties to tweak and headers to add...

     
    Hitch42, chelnok and one_one like this.
  6. TechnicalArtist

    TechnicalArtist

    Joined:
    Jul 9, 2012
    Posts:
    736
    How to make specular material SRP (Now Only show metallic)
     
    Last edited: Apr 30, 2018
  7. bitinn

    bitinn

    Joined:
    Aug 20, 2016
    Posts:
    961
    Sorry for another question:



    I am facing this glitch with ASE (details in the link), which seem to happen only when Metal API and GPU instancing is enabled.

    It's quite difficult to pin point the exact cause because it only happens when the graph contains multiple lerp.

    I suspect this is a Unity bug (and has opened a bug report), but just wondering ASE team has seen this or know any workaround.
     
  8. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Hello! We currently have no plans for either.

    Are you looking for something specific regarding the Unreal mobile shader, or are you referring to the optimizations provided?


    It's looking great, keep up the amazing work!


    Hello! We've provided a video tutorial on how to use Unity's Lightweight SRP with Amplify Shader Editor, which I'm sharing below for your convenience. Do let us know if you have any questions regarding this video, all feedback is welcome!




    Hey there, thank you for reporting this issue, we're going to investigate this as soon as possible.
    If you could share with us a sample with the issue present it would be most helpful!

    Also, what specific Unity and ASE versions are you currently using?
     
  9. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Apologies for having missed this question!

    I'm not entirely sure what to recommend as I don't fully understand what you mean by not fitting the UV sheet. I think I understand what you are trying to achieve but I'll need additional information in regards to the assets used. Can you elaborate or provide and example?

    As a starting point, I would recommend examining the ReadFromAtlasTiled sample we provide within the official samples folder.
     
  10. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,467
    It's definitely amazing what this tool can do. I wish knew how to add multipass rendering in my shaders without templates, and checking for depth
     
  11. bitinn

    bitinn

    Joined:
    Aug 20, 2016
    Posts:
    961
    Hi @Amplify_Borba, I can send you the example project that I sent to Unity (for bug reporting).

    Do you have an email address I can use?
     
  12. bitinn

    bitinn

    Joined:
    Aug 20, 2016
    Posts:
    961
    Basically I want to do this:



    You have some decal altas (in this case some doors and windows), and you selectively put individual piece on top of an object.

    Usually you do this with floater geometry, which fits the decal you are trying to show, jobs done.

    But because I want to avoid floaters. I need to mask the texture myself.

    What I currently do is: use a third set of UV and some generic shapes, use them to mask my decal atlas, then use the second set of UV to show the decal.

    If there are ways to achieve this without using a third set of UV, please let me know.
     
  13. HellGate94

    HellGate94

    Joined:
    Sep 21, 2017
    Posts:
    132
    hey! a quick bug report: when using refraction, transparent parts will start showing lighting details. example:

     
  14. sazberryftw

    sazberryftw

    Joined:
    Dec 12, 2016
    Posts:
    39
    Perhaps my community example might help you? Are you up to date with Amplify? It's called "Single Channel Masking". Basically it reads a mask (greyscale in my case) and pulls out each colour and turns that into its own mask.

    You could use the same method to pull everything that's red out of your mask, everything that's green etc. My example specifically uses a single texture channel but that's not necessary. There's a couple of things you need to do for it it work nicely, such as using "Point" filtering mode to avoid artifacts.

    Do you think this is what you're looking for?
     
  15. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389

    Quick heads up for anyone interested in adding Amplify Shader Editor or any of our other products to their collection! We're part of the current MADNESS SALE, be sure to check our full product offering for additional information.

    MADNESS SALE - Amplify Products at 50% OFF!

    PS:The support team is already out for the day but we'll get back to everyone as soon as possible; apologies for any possible delay caused.
     
    Malbers, HiWill and KRGraphics like this.
  16. MostHated

    MostHated

    Joined:
    Nov 29, 2015
    Posts:
    1,235
    Hey there, just bought this because of the sale. I was going to look into Amplify Texture as well but could not find it. Is it not on the store?
     
  17. bitinn

    bitinn

    Joined:
    Aug 20, 2016
    Posts:
    961
    Thx for the input, that's a very interesting node, though I am not certain it helps.

    My problem is basically this, when you UV a model, your uv shell might not fit the decal, which means other decal will bleed into your UV shell, like this (imagine the square is the uv shell):

    Screen Shot 2018-05-01 at 13.08.47.png

    We can't shrink the shell horizontally alone as it will stretch the decal when displayed.

    Now, some obvious solutions:

    - just add an extra polygon floating on your model, which fit the decal, job's done.
    - just model with decal in mind, and plan for the decal.

    Both are limited in their own ways (floaters are annoying; decal size are hard to predict when modeling).

    So my third solution:

    - prepare some generic shapes in the texture (say a white square)
    - use another set of uv to select this shape, stretch it so it fit the decal.
    - blend the shape with my decal sheet to mask out other decals.
    - now my square uv shell won't show other decals.

    Screen Shot 2018-05-01 at 13.29.25.png

    The downside of my solution is the need for:

    1. another set of uv
    2. generic shape in texture

    If there are better solutions I missed, please let me know.
     
  18. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    It's only complete if you can handleC hair correctly :D but this is reserved to the elite that like challenge lol (marchner would fail too as the cross section of 4C hair is a n oval while this type of shader assume it is oval, which change specular behavior.)
     
    KRGraphics likes this.
  19. HiWill

    HiWill

    Joined:
    Jun 2, 2013
    Posts:
    18
    not sure their way can be used in unity: https://www.unrealengine.com/blog/physically-based-shading-on-mobile;
    just hope ASE can provide some optimized-pbr shader can be used for mobile!
     
  20. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,467

    Hair is a motherf**ker... right now I am dealing with grazing light angles when the light source is super intense. And yes, I will be tackling curly hair too :) The hair shading model I will most likely use a lot is Marschner... and yes, I love a challenge... this is why I wanted to tackle hair :D
     
    neoshaman likes this.
  21. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,467
    @neoshaman My current challenge: The heavy glazing on the top of the head... trying to find a way to eliminate that.., but if the light source is intense, no easy way to get rid of that... unless I keep playing with the values. Also hair is typically dry so I am trying to clamp the ranges for the hair. Maybe keeping it forward only will help.

    upload_2018-5-1_8-58-9.png

    One problem solved... I disabled the add pass on the hair, which causes it to turn white at grazing angles
     
    Last edited: May 1, 2018
    neoshaman likes this.
  22. bitinn

    bitinn

    Joined:
    Aug 20, 2016
    Posts:
    961
    Regarding this issue, people on reddit board suggests it might be the instancing id were not properly transferred from vertex to surface shader. Which I think is a possible cause.

    Here is the shader output (after I strip it down to a minimal reproducing case; wasn't able to spot the problems myself).

    https://gist.github.com/bitinn/de567d7922b519c988e0700c416cd9ae

    And see attachment for a test project zip (after opening the folder in Unity, enable gpu instancing on the material to reproduce this issue; I have only managed to reproduce it on macOS with Metal API enabled).

    You can also import ASE and modify the graph a bit: just by removing some lerp node (say, the 2 before normal unpack), I was able to make the issue go away. But of course in our actual graph we can't workaround it this way. Finding the root cause would be our only option...
     

    Attached Files:

  23. Maverick

    Maverick

    Joined:
    Dec 18, 2009
    Posts:
    240
    Are you by any chance running on MacOS with intel card? We have (kind of) similar problem, but only on intel cards + opengl. 2018.1.f1 didn't solved the problem (link to tracking https://issuetracker.unity3d.com/is...-are-returned-when-using-instanced-properties)
     
  24. bitinn

    bitinn

    Joined:
    Aug 20, 2016
    Posts:
    961
    That's weird, I am indeed on macOS with Intel GPU (Macbook Pro early 2015 / Intel Iris Graphics 6100), but I can't reproduce my issue in OpenGL, I can only reproduce it in Metal. o_O

    I have opened a bug report to Unity but they haven't responded yet.

    (Intel GPU hasn't been kind to developer sanity...)
     
  25. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389

    Hey there!

    You can send samples directly to support@amplify.pt.

    There's no way around using "floaters" or an additional UV channel. You could try to adjust it manually but I don't recommended it, it will likely become too troublesome to use.

    Be sure to check the included sample by @sazberryftw, It allows you to store several individual masks in a single channel.

    Thank you for your support, we really appreciate it!

    Unfortunately, we have actually suspended public licensing as we further development in order to meet goals set forth to early adopters. Due to our small team size we are unable to take on new users or custom development requests at this time.

    If you have not already, feel free to contact us directly at info@amplify.pt with additional information regarding your project.

    ASE provides several base shader types that allow you to create "mobile friendly" assets but shader performance will ultimately depend on the complexity of the created networks and specific considerations such as using the lowest precision possible on each data type and performing multiplications instead of divisions, for example.


    Thank you for the additional information, I'll pass it on to the devs!

    Thanks for the heads up.
     
    Last edited: May 1, 2018
    bitinn likes this.
  26. EscalatorSafe

    EscalatorSafe

    Joined:
    Apr 12, 2018
    Posts:
    21
    Hello!
    Is it possible to make the Blend operations node a property? So we can preview the different operations live, that would be sweet as.
     
  27. TechnicalArtist

    TechnicalArtist

    Joined:
    Jul 9, 2012
    Posts:
    736
    Hi,

    Thanks for the reply.

    I tried but its only provide metallic workflows
    How to create Specular workflows shaders? (Attachment of Specular.png)
     

    Attached Files:

  28. sazberryftw

    sazberryftw

    Joined:
    Dec 12, 2016
    Posts:
    39
    specular.jpg

    This is how you swap to specular mode. However, from your screenshots it just looks like you have metallic set to 1? You can still achieve non-metallic materials with the metallic workflow.
     
  29. TechnicalArtist

    TechnicalArtist

    Joined:
    Jul 9, 2012
    Posts:
    736
    In SRP don't show this options.
     

    Attached Files:

  30. sazberryftw

    sazberryftw

    Joined:
    Dec 12, 2016
    Posts:
    39
    Ah okay I see! Hopefully someone from Amplify can clear that up soon.
     
  31. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Unfortunately this is not entirely possible to set this node as a property since the operations performed by this node require the shader to be compiled. You may still, however, use Static Switches in order to have a toggle present in the material properties that allows you to toggle between your Blend Operations.


    Hey there, we're still working on adding support to the Specular workflow in our SRP Template, it should be available soon in an upcoming update so stay tuned!
     
    TechnicalArtist likes this.
  32. Amplify_Ricardo

    Amplify_Ricardo

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

    My apologies for not getting back to you sooner, we would be happy to help!

    I can't seem to be able to recreate that effect on my side using the same values. What's your current Unity and ASE version?

    Thanks!
     
  33. Amplify_RnD_Rick

    Amplify_RnD_Rick

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

    A new build is up on our website.

    Here are the release notes.
    Release Notes v1.5.3 dev 02:
    • Fixes:
      • Fixed infinite loop via context menu issue
    • Improvements:
      • Added support for Specular workflow into Lightweight SRP template
        • Use either the new Specular port or the already existing Metallic port to choose which workflow to use
      • Added extra ASE null pointer exception prevention test on attempting loading shader with missing shader functions

    Happy shader creations!

    EDIT: @3d_Artist1987 you can, with this build, already use the Specular workflow with the Lightweight SRP template. Like we described on the release notes, you only need to use the new Specular port to activate it.
    Please note that the older Metallic and this new Specular port are mutually exclusive, you should only use one of them.
     
    Last edited: May 2, 2018
  34. Khena_B

    Khena_B

    Joined:
    Aug 21, 2014
    Posts:
    273
    I sent support an email a week ago and still haven't got a reply, so i'll post it again here because i'm kinda desperate to get this fixed

    This simple shader offsets a texture on the X axis, over time the texture gets scaled up, here is a before/after of a rain texture after the editor has been minimized for about an hour or so, it also happens in game as time builds up

    Tested in 2017.1, 2018.1

    Scale.png

    The higher the time scale value is, the bigger the texture gets scaled over time

    Shader.jpg
     
    Amplify_Borba likes this.
  35. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Apologies for delayed reply but, given the recent weekend and national holiday, we haven't been able to get yo your ticket due to a recent increase in support requests.

    I'll try to expedite this issue if possible.

    Thank you for understanding.
     
    Khena_B likes this.
  36. TechnicalArtist

    TechnicalArtist

    Joined:
    Jul 9, 2012
    Posts:
    736
    Thanks for the update.
     
  37. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Hey there, as we discussed via PM, it seems to be a Unity precision issue, just not as noticeable in some situations.

    For any other user experiencing similar issues, you can either Frac the value or use a property to pass your own time value to your shader.
    We should probably had a few warnings to our wiki just in case, thank you for the heads up!

    Now that we took a closer look to our received files, it seems that we did not receive anything from you. Can you please share your email via PM?

    Apologies for the confusion, we received a file without any additional information via WeTransfer and assumed it was yours, but have just confirmed that it was not the case.
     
    Last edited: May 3, 2018
    Khena_B likes this.
  38. HellGate94

    HellGate94

    Joined:
    Sep 21, 2017
    Posts:
    132
    sorry for not updating you but i recently recently that its not an ASE bug but a unity 2017.3.1f1 bug. even the default material with same settings does this.

    Edit: its strange actually. the default shader always has this bug. but the ASE default shader only has it when there is a value plugged into refraction (latest stable ASE version from the asset store)
     
    Last edited: May 4, 2018
  39. wangkai

    wangkai

    Joined:
    Oct 10, 2016
    Posts:
    27
    Can you use it for mobile phones? What's the performance of Android?
     
  40. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Hello, thank you for your interest!

    The actual shader performance will always vary depending on the actual constructed node network complexity and the features used. Amplify Shader Editor does allow you to set the precision used for its calculations, using lower types offers an added performance boost in exchange for some accuracy, which is great for mobile devices.

    We also support creating shaders compatible with Unity's Lightweight Render Pipeline, which targets mobile platforms, VR and games developed with limited realtime lighting needs.

    Please let me know if you have any further questions, thanks!
     
  41. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,528
    Hi there,

    I have a few questions about your asset :

    1) Can I sell assets that include shaders made with Amplify? (Stating clearly which shaders were made with Amplify of course!)
    2) Can your editor handle multi-pass vertex modifications (vertex positions being moved on each pass) on the Lightweight SRP?

    I am really interested in knowing! :)
     
  42. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Hello! You are free to sell any shaders that you create using ASE, either by themselves or included within an asset package. In fact, there are several assets that have been released with shaders made through our editor, such as Rome Fantasy Pack I and Polyverse Skies, as well as shader packs such as Damage FX.

    Regarding your other question, our Lightweight SRP Template supports multi-vertex modifications, and the same offset is applied to each pass. It's also possible to have an individual offset for each pass, but you'll have to set up a new template for that.
     
  43. IrrSoft

    IrrSoft

    Joined:
    Jul 6, 2012
    Posts:
    1,528
    Thanks for your answer, I will try to buy it later today then! :)
     
  44. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Hey there! The transparent surface not becoming fully transparent when Refraction is on is actually a design decision.
    When something is connected to the Refraction port, there is some custom code on our side that performs all the necessary calculations for the refraction effect.

    To further elaborate, the value that is set into the Refraction port functions similarly to the refraction index, indicating how much the ray of light is altered when passing through the surface, and the value set into the Opacity port indicates the strength of the refraction effect.

    We've set it up this way in order to try and simulate reality, so the more Opaque a surface is, the less Refraction it produces, which also means that when Opacity is set to 0, the Refraction effect will be at full strength, and if it's set to 1, there is no Refraction at all.

    If you want to the object to become fully transparent with its Opacity set to 0, you shouldn't be using the Refraction port we provide, instead you'll have to perform the calculations manually through use of the Grab Screen Color and Grab Screen Position nodes.

    Please let me know it this helps, thanks!


    Thank you for your support, we really appreciate it!

    Don't hesitate to get back in touch if you have any further questions!
     
  45. Amplify_RnD_Rick

    Amplify_RnD_Rick

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

    We've just uploaded a new build into the website.

    Here are the release notes.
    Release Notes v1.5.3 dev 03:
    • New Template:
      • Lightweight Unlit
        • Renamed already existing SRP Template to Lightweight PBR
    • New Sample:
      • SRP Lightweight 2D Fractal
    • Fixes:
      • Fixed issue with 'Parallax Occlusion Mapping' node over Lightweight templates
      • Fixed Safe Normalize issues with 'View Dir' node on templates
    • Improvements:
      • Added Auto-Register option into 'Static Switch' node
      • Minor improvement over 'Parallax Occlusion Mapping' node generated code to avoid duplicate calculations
    We added a new Lightweight Unlit template and created a new sample using it.
    Here's a sneak peek over the SRP Lightweight 2D Fractal sample:

    LightweightUnlitFractal.gif
    Please notice that this sample uses the Lightweight SRP, so need to have it properly configured on your project.

    Hope everyone has an amazing weekend and happy shader creations!
     
    Last edited: May 4, 2018
  46. Andrey_Graphics

    Andrey_Graphics

    Joined:
    Oct 29, 2015
    Posts:
    140
    :( problem after increasing the object
    upload_2018-5-4_23-47-49.png upload_2018-5-4_23-48-41.png upload_2018-5-4_23-49-27.png
     
    Last edited: May 4, 2018
  47. OP3NGL

    OP3NGL

    Joined:
    Dec 10, 2013
    Posts:
    267
    are we able to create a expand/collapse button?
     
  48. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Hey there, thank you for taking the time to report this, we're going to investigate the issue and will get back to you as soon as possible!

    EDIT: We found the issue to be in the template calculation for the world Tangent value, this will be fixed in the next build, thank you once again for reporting this!


    Hello, could you please elaborate on your question? Thanks!
     
    Last edited: May 7, 2018
    Andrey_Graphics likes this.
  49. Malbers

    Malbers

    Joined:
    Aug 7, 2015
    Posts:
    2,558
    I'M IN LOVE WITH ASE
    Thanks so much guys for providing this!!


    v
    upload_2018-5-7_11-8-57.png

    I recently started to play around again with ASE and I found out this Node (Blending Operations!)

    So one Humble request for future updates that it will make my live and my shaders full of colours!!! and custom possibilities!

    You know what will be amazing!!?!?!?
    to be able to change the blending options on the material as a public property...
     
  50. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Hello, thank you for your kind words!

    Although we can't make the Blend Operations node accessible as a property, depending on the amount of Blend Operations you intend to use, you may use the Static Switch node in Multi Compile mode for a more performant shader, or simply use a Lerp with a property connected to its Alpha.

    Please let me know if this helps, or if you have any further questions, thanks!
     
    Malbers likes this.