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

    habsi70

    Joined:
    Jan 30, 2013
    Posts:
    25
    Ah, the default unpacker on Mac OSX does not unpack the zip correctly, I had to use a dedicated unpacker. Is this a special zip compression?
     
  2. RoyArtorius

    RoyArtorius

    Joined:
    Jul 11, 2013
    Posts:
    73
    Hi,
    I'm still trying to wrap my head around using uv channels, but it looks like currently only the first two channels, uv0 and uv1, are available. Are the uv channels uv2 and uv3 going to be added at some point?
     
  3. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    528
    Hi habsi70,

    Unfortunately there are some archive software that recursively extracts its contents ( this is the default behavior on OSX ), it unzips not only the zip bit also the .unitypackage.

    We've updated the zip to prevent this behavior.

    Can you try to download and unzip it now?
     
  4. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    528
    You can prevent this by opening Archive Utility, go to its preferences and deselect the "Keep expanding if possible" checkbox.

    On Surface Shaders channel usage is automatically maintained by Unity. UV Coordinates need to have some specific names but this is taken care by ASE.
    You shouldn't need to worry about it.

    Fortunately or unfortunately you caught a typo on the 'Texture Coordinates' node property as it should be called 'UV Set' and not 'UV Channel'.

    We apologize for the confusion it generated, and rest assured it will be fixed on the next update.

    Also, when Custom Vert/Frag shaders are implemented you will have access to all available channels.
     
  5. habsi70

    habsi70

    Joined:
    Jan 30, 2013
    Posts:
    25
    Thank you, everything works fine now :)
     
  6. CptOblivion

    CptOblivion

    Joined:
    Mar 8, 2015
    Posts:
    9
    Ah well, it's early yet, and I can wait!

    I'm trying to make a surface with shallow puddles on it (I've got a reasonable-looking water surface using a height map so the water sits between cracks in cobble or in ditches in dirt and whatnot and the ground gets darker and then shinier as it approaches the water level) but I would eventually like the underwater portion of the ground to be shaded separately from the water surface above it (for now, I suppose I'll just say that the water is so muddy it's opaque). Ideally I also want to distort UV coordinates of the ground texture based on the normals of the water texture without also distorting the water's UVs. I may also shoot for parallax if that's possible, but I'm not sure yet if that will fit in my processing budget- and even if I end up having to edit some of the generated shader in a text editor, ASE has already given me a wonderful jumping-off point!

    At any rate, after messing around for a few hours yesterday with ASE, it's already proven to be immensely helpful in getting shaders to look the way I want them to! I'm looking forward to seeing where this goes.
     
  7. aziz90

    aziz90

    Joined:
    Oct 20, 2015
    Posts:
    15
    a very simple still water shader! let me know if anyone's want me to share the how! stilwater.PNG
     
    antoripa likes this.
  8. Mauri

    Mauri

    Joined:
    Dec 9, 2010
    Posts:
    2,665
    Mind sharing the "How" for the other one you've posted earlier?
     
    Arganth likes this.
  9. Amplify_RnD_Rick

    Amplify_RnD_Rick

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

    We just updated the build on the Beta area!

    Here are the release notes:

    Release Notes v0.1.2 dev 001:
    • Fixed typo on Texture Coordinate node
    • Added explicit control on Render Type and Queue. They will be automatically set when a Blend Mode is selected.
    • Added Fresnel node
    • Fixed Trigonometry typo
    • Improved local var generation on op nodes
    • Added FWidth node
    • Fixed issue with not immediately updating shader when hitting the Live Shader Mode button

    We really apologize for still not having a more detailed roadmap on the website but it will soon be available!
     
  10. RoyArtorius

    RoyArtorius

    Joined:
    Jul 11, 2013
    Posts:
    73
    There's one node I would like to see, a texture asset node. I'm creating a triplanar shader which requires creating 3 texture2d using different uv coordinates but each using the same texture asset. Currently, I have to create 3 texture2d nodes which creates 3 texture properties when I actually need just 1 texture property. The texture2d node would need a texture asset input of course.
     
  11. aziz90

    aziz90

    Joined:
    Oct 20, 2015
    Posts:
    15
    sure i will share the "How"
    enjoy!

    the hows.PNG
     
    Squize likes this.
  12. kebrus

    kebrus

    Joined:
    Oct 10, 2011
    Posts:
    415
    I second this, I was doing something similar, I was trying to reuse a texture into two different samplers and like you I had to put the texture twice.
     
    RoyArtorius likes this.
  13. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    528
    Hey aziz90.

    Are you using the latest ASE version and with which Unity version?

    I'm asking this because of the canvas background. We had an issue of showing a brighter than expected background and had to remove 'Bypass sRGB sampling' on its texture over the latest Unity stable version to solve it.
    The background should be much darker.
     
  14. GilesDMiddleton

    GilesDMiddleton

    Joined:
    Aug 12, 2015
    Posts:
    91
    Bought - love the philosophy & intro price.

    I'm not willing to shell out $90 on SF as a hobbyist, but can afford $24 ($4 tax). I hope you'll make a growing library of node configurations and community contributions available for free. I saw SF's UI describes all the different nodes nicely - I don't think ASE does that yet? Maybe that's something the community can help with if you provide the framework, even link to a wiki with examples of node application (future)...
     
  15. aziz90

    aziz90

    Joined:
    Oct 20, 2015
    Posts:
    15
    that was the first version (from the assets store) just updated it does this look more right? Capturre.PNG
     
  16. BreakingPointDev

    BreakingPointDev

    Joined:
    Mar 20, 2013
    Posts:
    16
    Two things I would really like to see is support for transmission and some nice substance integration. Are transmissive shaders something we can expect sometime soon?
     
    hopeful likes this.
  17. CptOblivion

    CptOblivion

    Joined:
    Mar 8, 2015
    Posts:
    9
    Forgive my ignorance, but how might I go about flipping a vector? I thought it would be to multiply it by -1 but that causes the shader to render black and throws a divide by zero error, and I can't find an invert vector node or something of the sort.

    (for context, I'm trying to flip the normals on back faces, so they are shaded as though they were front faces- I thought I'd do that by multiplying the normals by the sign of the dot of the view dir on the normals, although I get the same error if I just multiply the normals by -1 with a node and plug that into the Normals)

    alternate question that would void the above one:
    is there a node or checkbox to give backfaces flipped normals so they render as though they were front faces?
     
  18. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    528
    Thank you so much for putting your trust in us.
    Documentation is something that will also grow better during the beta lifetime. Having the community helping with that is a really nice idea and we definitely will consider that.

    Oh yeah! Now it looks the way it should!
    Thank you for updating to the latest version.

    Yes we are planning to do substance integration.
    Transmission wasn't on our initial roadmap, but now it is! Unfortunately won't be something we can implement soon.

    Your absolutely right, to flip a vector you only need to multiply it by -1.
    Is it possible you could share your shader with me via PM so I could take a look at what might be happening?

    Unfortunately there is nothing to do that at the moment.


    Guys please don't hesitate on posting in here or sending me a PM if your shaders seem to be well built but are outputting strange results so we can help you out.
     
  19. BreakingPointDev

    BreakingPointDev

    Joined:
    Mar 20, 2013
    Posts:
    16
    Knowing that transmission is on the roadmap is great to hear, You have definitely made a sale, I'm looking forward to getting your badass shader editor probably tonight
     
  20. Amplify_RnD_Rick

    Amplify_RnD_Rick

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

    Just updated the build on the beta page,

    Here are the release notes:

    Release Notes v0.1.2 dev 002
    • Added GPU Instancing ( see Samples/SimpleGPUInstancing example )
    • Added Screen Color node
    • Fixed issue on version testing
    • Tweaked Master Node icon
    • Added additional icon into top-left master node node indicating if gpu instancing is being used or not

    To enable GPU Instancing just select 'Instanced Property' on the Parameter Type of a property node ( Vector, Color, etc). Please note that there are certain requirements for it to work property. Please take a look into the official documentation for more details.

    Happy shader creations and please let us know if you find any issues or have any suggestions.
     
    zyzyx likes this.
  21. RoyArtorius

    RoyArtorius

    Joined:
    Jul 11, 2013
    Posts:
    73
    So no comment on a texture asset node?
     
  22. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    528
    Hi ZackLeodrano,

    I'm terribly sorry for not answering your post! Dunno how I missed it!

    Your suggestion is really quite nice and it will be very useful, optimization wise. I already registered it on our roadmap.
     
    Last edited: Sep 24, 2016
    hopeful likes this.
  23. kebrus

    kebrus

    Joined:
    Oct 10, 2011
    Posts:
    415
    So I only got the time to test it now, the screen color node is producing some weird stuff in my test. I believe the problem is that I'm doing three of those at the same time while the editor only generates the necessary code for one of them because each and everyone one of them generates their separate variable to hold the texture but the grabpass is only generate once. This wouldn't be a problem if I could re-sample the same texture but even then it would destroy the idea of using the screen color node more than once. The solution would be to generate the default variable name for the grabpass texture or to generate more than one grabtexture. The second solution might not be ideal because if I'm not mistaken you would need to run the grabpass "pass" more than once.
     
  24. CptOblivion

    CptOblivion

    Joined:
    Mar 8, 2015
    Posts:
    9
    I think I solved my normals problem- Unity just doesn't like selectively inverting some normals in one shader, but by creating two shaders (one with back culling and one with front and inverted normals) and adding them both to a material at the same time, the object is shaded as expected. Unity recommends using two passes instead of two surface shaders, but for the time being this will do just fine!

    I did have to use a texture sampler with no assigned texture, rather than the Pixel Normal World node, though.
     
  25. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Hi,
    I work with Substance and other tools and like many 3D artists i use the popular metallic/Roughness workflow.
    Your editor only supports Metallic/Smoothness shader workflow, could you add some option to choose the metallic/Roughness shader instead ?
     
  26. Jaz01

    Jaz01

    Joined:
    Jul 25, 2014
    Posts:
    1
    Are there any plans to support the Specular/Smooth workflow? Haven't bought it yet and as far as I can tell it currently doesn't.
     
  27. antoripa

    antoripa

    Joined:
    Oct 19, 2015
    Posts:
    1,163
    Hi,
    I am gonna to buy ASE. I am ad developer and not a 3D artist and not really expert, so I hope it will help me.
     
  28. Aerys

    Aerys

    Joined:
    Aug 3, 2016
    Posts:
    15
    hi i have a question about the reason that i can't lerp two normal maps using the "pixel normal world" node. there is any solution?
    Thanks in advance.
     
  29. Ashamen

    Ashamen

    Joined:
    Oct 8, 2013
    Posts:
    20
    Bought your product mostly because of its introductory price versus SF's $90 - I just can not afford that. Also because I have notice how active you are on the forums with your other products and the ample positive reviews.

    After reading everything here on this forum thread to make sure I have not missed anything, I have to ask/state that I tried to load the example scene and none of the shaders/textures are linked together. Is this normal behavior for unity when it imports or something else? This is my first shader/texture/plugin that I have bought so I do not know if I did anything wrong either.
     
  30. kebrus

    kebrus

    Joined:
    Oct 10, 2011
    Posts:
    415
    Check out the snow/rock example, they use the pixel normal world to get the Y (up direction) to then blend two normal maps, the saturate node is there to clamp the value.

    I'm using their latest beta and for some reason I had to completely delete the ASE folder and re-import everything again. Probably my fault because I was messing with their source code. Still, I would recommend you to do the same if it's not working properly. Everything should be correctly linked together in their examples.
     
  31. Ashamen

    Ashamen

    Joined:
    Oct 8, 2013
    Posts:
    20
    Well it was a fresh import but from the asset store. Let me get the newest version from the site and see if it has the same issues.

    ...My order # from Unity Asset Store is not unlocking the updates on the Amplify website.
     
    Last edited: Sep 25, 2016
  32. kebrus

    kebrus

    Joined:
    Oct 10, 2011
    Posts:
    415
    use this link http://amplify.pt/downloadbeta/
    place your invoice number without the first "OR" letters
    click the unlock button and check if the download button shows up

    For some reason only that link works for me, if I try in the main download page it doesn't work.
     
    Last edited: Sep 25, 2016
  33. Ashamen

    Ashamen

    Joined:
    Oct 8, 2013
    Posts:
    20
    Ok so that worked to download but the example shaders are still not loading with their corresponding textures assigned for them for use in the example scene. at least not for me
     
  34. Cascho01

    Cascho01

    Joined:
    Mar 19, 2010
    Posts:
    1,347
    Request: Gaussian Blur a texture
     
  35. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    528
    I think to solution should be something similar to your first suggestion, being able to do multiple fetches to the grab pass texture. We will start working on this, also because it will fall a bit into ZackLeodrano suggestion.
    You only need to have one grab pass, I think having multiple ones doesn't make much sense since accessing the frame buffer results is always going to be the same all across the shader in each frame.

    Rest assured, we will add additional workflows on future betas. We will work on Substance integration and that might be the perfect time to implement this.
    Your requests were registered into our roadmap.
    We already support it. On the shader properties dropdown you can select 'Standard Specular' via the 'Light Model, dropdown.

    Like kebrus as already commented we are lerping normals using the "pixel normal world" node on our SnowAccum example. Does this example solve your issue?
    Please let us know if you need additional help.

    When opening the shader, you will load the node graph with the shader default values are for the examples these aren't any ones assigned.
    Try double clicking on the material instead of the shader. This will open ASE in Material Mode and you will be able to check which textures are assigned to the material.
    We really encourage you editing your graph in Material Mode. More so because you can instantly see your material changing when modifying property nodes even without having Live Mode on.


    A gaussian blur node is a really nice request! Already registered it on the roadmap!
     
    Last edited: Sep 26, 2016
    zenGarden likes this.
  36. cygnusprojects

    cygnusprojects

    Joined:
    Mar 13, 2011
    Posts:
    767
    Hi @Amplify_RnD_Rick, bought the asset and I'm aware it still in beta. Following the steps on the webpage to create my first shader/material I'm seeing this error message popping up 417 times in my console:
    Code (CSharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2. AmplifyShaderEditor.CustomMaterialInspector.OnInspectorGUI () (at Assets/AmplifyShaderEditor/Plugins/Editor/Utils/CustomMaterialInspector.cs:208)
    3. UnityEditor.InspectorWindow.DrawEditor (UnityEditor.Editor editor, Int32 editorIndex, Boolean rebuildOptimizedGUIBlock, System.Boolean& showImportedObjectBarNext, UnityEngine.Rect& importedObjectBarRect) (at C:/buildslave/unity/build/Editor/Mono/Inspector/InspectorWindow.cs:1235)
    4. UnityEditor.DockArea:OnGUI()
    I'm on Unity 5.4.1f1 on Windows 10 (Anniversary edition) in case the versions do matter.
     
  37. Amplify_RnD_Rick

    Amplify_RnD_Rick

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

    This was not the way we intended for your first experience with ASE to be. We're truly sorry for that.
    A new version was now uploaded into our Beta area with this bug fixed.
    Please let us know if you have any other issues or require any help with ASE. We truly want for everyone to have a great experience with this plugin.
     
  38. Aerys

    Aerys

    Joined:
    Aug 3, 2016
    Posts:
    15
    hi so i have tried your son accum and it doesn't work, because the snow normal are not showed out.
    I have some other screens about my node and what i want to do

    no normal map here

    and here you can see there isn't any differnce on the normal map with and without


    thanks in advance for the support :)
     
  39. kebrus

    kebrus

    Joined:
    Oct 10, 2011
    Posts:
    415
    I see what the problem is now. Yeah I can confirm your problem, it's even in the demo itself to.

    What's happening is that pixel normal world uses the WorldNormalVector function to calculate the normal by using itself before it's possible? it's weird, but the reason it works for the albedo is because the lerp always gets the value 0 for the alpha and selects the first normal which is then used for the albedo.

    I was actually able to make it somewhat work by using the similar vertex normal world node which blends the normals by their geometry alone.

    Unfortunately I was unsuccessful in using that new normal as the input of the rest because the editor is not compiling for some reason

    Nevermind, I got it working, duplicating nodes was giving errors for some reason. See image for the final solution.
    The way to properly solve this would be to use a height field and blend the normals using that height. Without it, you'll notice that the normals blend linearly with my solution and it doesn't look very good :\
    normals.PNG
     
    Last edited: Sep 27, 2016
  40. Em-de-Nem

    Em-de-Nem

    Joined:
    Mar 19, 2013
    Posts:
    104
    Hello, I have 2 questions:

    1. May I include created shaders to asset packs for sale wirhout additional permission?
    2. Does it support 2-sided transparent materials like glass, additive cutout, etc.?

    Thanks
     
  41. Amplify_Ricardo

    Amplify_Ricardo

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

    1. Yes, you own all the rights to any content that you produce with the Amplify Shader Editor. We plan to include a small "Made with Amplify Shader Editor" comment in all shaders but you are free to remove it if necessary.
    2. You can create double sided materials. It supports transparencies but, unfortunately, not additive cutout. This is will likely be improved in future updates.

    Thanks!
     
  42. Amplify_RnD_Rick

    Amplify_RnD_Rick

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

    We just uploaded a new version into the beta area!

    Here are the release notes:
    Release Notes v0.1.3 dev 001
    - Fixed issue when releasing mouse drag on menu areas not reseting auto-pan
    - Tweaked Shader Instancing UI
    - Fixed issue with material inspector crashing when updating a property with ASE window turned off
    - Fixed issue with custom UI skins not being correctly initialized under some conditions
    - Added Texture Reference feature
    - Added 'Simple Blur' example to demonstrate how Texture referencing works
    - Added small 'Made with Amplify Shader Editor' info as comment on generated shaders

    For this build we added a new 'Texture Reference' feature. This is a feature that both ZackLeodrano and kebrus requested as a 'Texture Asset' node.

    We decided to implement it in slightly different way.

    Each 'Texture Sample' node now has a 'Type' dropdown where you can select two values, 'Object' or 'Instance'.

    On 'Object' mode the node behaves exactly how it was before and creates its own property.

    When selecting 'Instance' mode, the default UI is replaced with a 'Reference' dropdown which lists all 'Texture Sample' nodes which are in 'Object' mode. By selecting one of the 'Reference' nodes will establish a link with them a will be using their properties instead of its own.

    The node UI will change so you can clearly see it's referencing another node. A chain icon will appear and the texture previewer will no longer be editable, instead by clicking on it will move the camera over the 'Texture Sample' node it is referencing. ( clicking the chain icon will also do this )

    In order for you to change the texture you will need to do it on the main 'Texture Sample' node as it will no longer be available on the reference nodes.

    A small demo was added ( 'Samples/SimpleBlur' ) so you can quickly see it in action.

    We decided on this approach because its cleaner as you don't need extra nodes and wires on the canvas to use it. But we would really like for you guys to try it out and give us some feedback on it.

    Please let us know if you like this approach or prefer a separate 'Texture Asset' node which links to the 'Texture Sample' nodes.

    Happy shader creation!
     
    Last edited: Sep 29, 2016
    antoripa and zenGarden like this.
  43. RoyArtorius

    RoyArtorius

    Joined:
    Jul 11, 2013
    Posts:
    73
    Just checked it out, works great so far!

    EDIT:
    No wait, found a bug, because the texture sample object nodes are not connected to anything the brush button will remove them. And if the texture sample object node doesn't have a texture in the shader editor and a texture sample instance is referencing it generates a missing object reference error in the console
     
    Last edited: Sep 29, 2016
  44. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    528
    spaceemotion reported a visual issue with texture samples with normal map mode selected. I've just uploaded a new version with it fixed.

    I'll take a look at this and will fix it asap.

    EDIT: Just uploaded a new version with the reported bugs fixed.
     
    Last edited: Sep 29, 2016
  45. kebrus

    kebrus

    Joined:
    Oct 10, 2011
    Posts:
    415
    I like the new way of handling multiple samples. Something like a triplanar shader is now a lot more user friendly and intuitive. I think it might be a good starter for the UV mixer requested before as well. Maybe I'll take a bite on that.

    Any possibility to expand it to include the screen color node? :D I know I've been pushing this for a long time but I'm just a small step away from having a cool shader completely created with your editor.
     
  46. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    528
    Yes, definitely!

    EDIT: For the screen color node will be a simpler so expect this feature soon!
     
    kebrus likes this.
  47. kebrus

    kebrus

    Joined:
    Oct 10, 2011
    Posts:
    415
    I just noticed something weird. Isn't fresnel node supposed to be a way to react with view direction? the most simple way would be V.N but there are more pretty and correct ways to do it. I'm not even sure what yours is doing. It's using object vertex position?

    Just outputting the fresnel node doesn't make sense to me. Or am I missing something?
     
  48. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    528
    Fresnel effect takes both Incident and Normal vectors.
    You can take a look at these links for a quick explanation:
    Link 0
    Link 1

    These links are also on the Fresnel Node source code ( FresnelNode.cs ) as commentary.

    But nevertheless, I'll do a check on the generated code and see if there is something wrong.
     
  49. kebrus

    kebrus

    Joined:
    Oct 10, 2011
    Posts:
    415
    But the incident ray is the eye. Thats why sometimes people just refer to the fresnel effect as the "grazing angles" reflection and what not. Your current code is calculating the world position of the vertex and using as the incident vector.

    [edit]
    A bit of a correction after reading the pages, the incident ray is the eye in this case. It can also be used in other setups where the incident ray is the light vector, but usually in shaders what people want with the fresnel is the eye vector. Maybe you could make it a choice but it's definitely not the vertex position.
     
    Last edited: Sep 29, 2016
    moure likes this.
  50. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    528
    Yes, just confirmed it. Your absolutely right.
    It should have been using the normalized result of the subtraction between vertex position and cam position and not the vertex position itself.
    This will be fixed on the next update.
    Glad you caught that one! :D
     
    hopeful and kebrus like this.