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

    zelmund

    Joined:
    Mar 2, 2012
    Posts:
    437
    ok, thank you for explonation.
    have another question:
    i tried to create POM shader (example inside package) by unsing texture2DArray, but getting error if i try to use array node instead texture object node.
    can you tell me is it possible to create POM shader by using texture2DArray?
     
  2. arnoob

    arnoob

    Joined:
    May 16, 2014
    Posts:
    155
    I would like to experiment some screen spaced effects, such as a custom rim light for example, only as a starting point.

    I plan to use it to try a wide bunch of effects, and this might give me a good way to tile a texture in a semi screen space way. (see my example, if it worked I could use its normals as UVs, and then display texture that would be facing the camera while not depending from the screen position. I could then try to make some volumetric particles by showing them on a sphere instead of a billboard for example, but that's just one idea in a bunch).

    I know there is a normal render at each frame internally in a deferred render, just like in here : https://image.slidesharecdn.com/develop07valientdeferredrenderinginkillzone2-111014045249-phpapp01/95/deferred-rendering-in-killzone-2-11-728.jpg?cb=1318568352
    So I thought it or a similar rendering would be achievable.

    Oh and by the way, your update seems really promising, I'll try the new parralax ASAP! Keep up the good work, your asset is fantastic :)
     

    Attached Files:

  3. zelmund

    zelmund

    Joined:
    Mar 2, 2012
    Posts:
    437
    i found that was featured in v.1.3.1 dev04:
    • Added support for Texture Arrays with 'Parallax Occlusion Mapping' node
    but dont understand how it works. i tried similar conections to example POM shader, but nothing worked (
     
  4. zelmund

    zelmund

    Joined:
    Mar 2, 2012
    Posts:
    437
    ok, i think i got it. shader wont compile if a leave Auto-Cast mode in auto. need manualy switch to locked texture array2d and all seems fine now =)
     

    Attached Files:

    • scr2.jpg
      scr2.jpg
      File size:
      233.6 KB
      Views:
      893
  5. Amplify_Paulo

    Amplify_Paulo

    Joined:
    Jul 13, 2017
    Posts:
    297
    That's right, you need to have the texture object to forcibly use 2darrays or else it will sample as a regular texture. There's also an extra option in the POM node to support 2darrays which allows you to specify the heightmap from a 2darray. Keep in mind that this option is only for the heightmap, you can use POM in 2d arrays without any special consideration if the heightmap is a separate texture from the textures you want to apply POM
     
  6. AlvarPernroth

    AlvarPernroth

    Joined:
    Mar 11, 2014
    Posts:
    6
    Hi, I like the tool but I had to uninstall it because it stole the link to open up my Shader Forge shaders from the inspector. Selecting a material and opening there still works, but selecting the shader file directly and opening through the inspector opens ASE instead without any nodes. I would Ideally want both of these to work alongside each other since I have shaders made in both. Maybe you are using the exact same way of setting up those custom editor links.
     
    Last edited: Oct 12, 2017
  7. boxhallowed

    boxhallowed

    Joined:
    Mar 31, 2015
    Posts:
    513
    Been with this tool since the beginning and it's getting better every day. I would pay for a set of comprehensive shader tutorials done completely in this tool. Groundwork to advanced. Any way to make that happen?
     
  8. Pecek

    Pecek

    Joined:
    May 27, 2013
    Posts:
    187
    After upgrading to the latest version of ASE(1.3.2.002, from the website) one of my shaders generates wrong code, after rolling back to 1.3.1.011 it worked again, I'm using shader functions and texture arrays, when I'm trying to feed the function with an array the code will be wrong. It looks something like this

    sampler2d temp_var = myArray;
    float4 texArray = UNITY_SAMPLE_TEX2DARRAY(temp_var, float3(0,0,0) );
    When it should look like this
    float4 texArray = UNITY_SAMPLE_TEX2DARRAY(myArray, float3(0,0,0) );

    Looks like it only affecting my old(pre 1.3.2) functions, I couldn't replicate it in a fresh one(saving the old ones didn't help). Anyone else experienced this issue?
     
  9. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    508
    Hello,

    I just found a bug in the new version (1.3.2.002). When Fresnel and ViewDirection is used in the vertexDataFunc, ase_worldViewDir is declared 2 times. Sample attached.

    Thanks !
     

    Attached Files:

  10. Amplify_Paulo

    Amplify_Paulo

    Joined:
    Jul 13, 2017
    Posts:
    297
    I'll take a look, but yeah, most likely we are doing the same thing, not sure if it'll be possible to have both.

    We are working on beginner level tutorials. Advance stuff is "hard to sell". What kind of advance tutorials do you have in mind?

    That's probably my fault. I made some changes for code duplication in shader functions recently. Most likely one of those broke that setup. I'll try to fix it for the next build. Sorry for the inconvenience and thank you for reporting.

    Thanks for reporting and for the shader, I'll take a look on that.
     
  11. boxhallowed

    boxhallowed

    Joined:
    Mar 31, 2015
    Posts:
    513
    Something that dives a bit deeper than fresnel and sin waves; which covers a bit more than just how to use Amplify. There really aren't any good up-to-date tutorial series on shaders in Unity, and having a comprehensive set that utilize ASE would be fantastic.
     
  12. Amplify_RnD_Rick

    Amplify_RnD_Rick

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

    We've just uploaded a new build into our website.
    @BOXOPHOBIC and @Pecek, the issues you reported should be fixed now. Please let us know if they persist after importing this new version.

    Here are the release notes:
    Release Notes v1.3.2 dev 03:
    • Fixes:
      • Fixed issue with 'Texture Sampler' node not taking procedural textures correctly into account
      • Matrices can no longer be connected into 'Vertex To Fragment' nodes input port
      • Fixed reordering issues with shader functions when these were updated
      • Fixed rare compile issue where shader function headers were created but no property was present
      • Fixed issue where view direction vector shader code was being generated with different precision types
      • Fixed issue with Matrix nodes being able to choose its type as Property and add Attributes
      • Fixed issue with Matrix nodes initial value not corresponding to internal draw data
      • Fixed issue with Matrix3x3 not working correctly when its type was set as Global
      • Fixed issue on function nodes generating local variables for Sampler data type variables
    • Improvements:
      • Activating internal data for tessellation nodes
      • Minor tweak on vertex position data across all templates
      • Preventing 'DDX' and 'DDY' nodes to generate code when in vertex function
      • Removed Sampler data types as valid 'Custom Expression' output valid type
    Hope you guys have lots of luck on your Friday the 13th :D and happy shader creations!
     
    antoripa, Pecek and SteeLMan like this.
  13. JonasPersson

    JonasPersson

    Joined:
    Aug 14, 2016
    Posts:
    65
    Hi!

    Im trying to use the "object scale" node but it does not work in playmode, only in editmode. Is there anyway to fix this?
     
  14. Loards

    Loards

    Joined:
    May 2, 2013
    Posts:
    112

    Hi!! just downloaded the latest version, and tried the toon shader again and still there is no baked or real time indirect lighting affecting the objects in shaded view. In the view modes (either indirect lighting or baked light maps) the indirect lighting is visible, but in shaded mode the objects do not show that.

    upload_2017-10-13_14-53-55.png

    The spheres in the back: both static, left using a standard shader and right using the custom lighting toon, as you can see, the toon is not been affected by any indirect lighting. Im using mixed directional light.
    the ones in the front are the same just non static.

    Here the Indirect real time GI view
    upload_2017-10-13_14-39-24.png


    And here the baked lightmap view
    upload_2017-10-13_14-41-43.png

    Using unity 2017.1p4
     
  15. xxPillsxx

    xxPillsxx

    Joined:
    Oct 10, 2012
    Posts:
    31
    Quick question: I changed the Default UI template to optimize the shader (removing masking support, etc) for performance reasons. It worked great, but is adding / removing templates planned? I tried duplicating the template shader and changing the name, but it gave errors and ASE just stopped working instead. It would be great to be able to create new or edit / delete existing templates and organize them nicely.
     
  16. deab

    deab

    Joined:
    Aug 11, 2013
    Posts:
    93
    Is there a way to determine when inside a mesh from a shader? For example, slicing a mesh at a given world space Z value?
     
  17. QuantumTheory

    QuantumTheory

    Joined:
    Jan 19, 2012
    Posts:
    1,081
    @Amplify_Paulo I just tested the new ASE in a clean Unity project in VR (Rift). The water distortion is still not rendering in both eyes in single-pass.
     
  18. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634
    Is there a way to make a group of nodes and make a comment around a group like in Substance and Unreal 4?

    Thanks..if not that would be nice to be able to..
     
  19. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    508
    Working !!!
     
    Amplify_Paulo likes this.
  20. Amplify_Paulo

    Amplify_Paulo

    Joined:
    Jul 13, 2017
    Posts:
    297
    Correct me if I'm wrong, are you using the toon shader we provide without any change? did you compile it? I did a bunch of changes for baked lighting to work with those two nodes but I never bothered to update the sample because because it was irrelevant to that sample. So that sample needs to be opened in the editor and compiled again for baked lighting to work. I'll update the sample for the next release but if that wasn't the case send me a test scene that is not working for you. I just made a quick test in 2017.1 and everything seems to be working fine as far as baked indirect diffuse and specular light goes.

    That actually should work without issues, you should already be able to create your own templates or edit those, how exactly are you proceeding? Maybe there's something going on with our detection of new templates.

    What exactly do you want to detect as being inside? the camera position? are you perhaps looking for something like this? : https://www.assetstore.unity3d.com/en/#!/content/66300

    I did my tests with rift in all major versions. 5.4.5, 5.5.3, 5.6.3, 2017.1, 2017.2 and I can confirm that some of them are simply broken and while you might be able to fix a few of them others refuse to work regardless of what is done (like 2017.2). The issue comes from the screen position UV transformations that need to be done in order for some effects to work (like screengrab for refraction). Unity warns to do some transformations and for the most part we were doing them with our editor until we found that we were testing the issue in a version where it was not apparent that it wasn't working and in fact unity already was doing the necessary fixes to the UVs. In the latest build we removed those fixes (because they weren't fixing anything and in fact only breaking in some versions) and left it as it should be. This makes it work for some versions but not all. If you don't mind, provide us with a sample project that we can confirm and test for ourselves, I can't promise you anything because there are even bug reports already submitted from others users and unity already fixed it and broke it again so there's no guarantee I'll be able to do anything, but there's no harm in take a.. fourth look(?) into this.

    Yes, select a group of nodes and hit C. It will create a comment node around those nodes that you can use to move them together. You can also create shader function if you want a more clean environment.
     
    Last edited: Oct 16, 2017
    hopeful likes this.
  21. QuantumTheory

    QuantumTheory

    Joined:
    Jan 19, 2012
    Posts:
    1,081
    @Amplify_Paulo Thanks for looking into the issue again and again :)

    I'm only using Unity 5.6.1.f1 and using your watersimple test scene with that shader. The issue is apparent there, so there isn't a need to send you a test project as it's reproducible with 100% of your data. The path in the project is AmplifyShaderEditor/Examples/Official/Water. Sorry for all the headaches!
     
  22. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634
    ya this I knew about, Thanks about the comment info.
     
  23. Amplify_Paulo

    Amplify_Paulo

    Joined:
    Jul 13, 2017
    Posts:
    297
    I did a new test just right now and the water sample works as intended. Are you perhaps forgetting to set your camera to render to the depth buffer? I don't know your camera setup but I tested with the cubes scene from the rift package and all I had to do was adding a sun to that scene and forcing the cameras to render into the depth buffer and everything was working as intended.
     
  24. marggob

    marggob

    Joined:
    Feb 24, 2013
    Posts:
    65
    Hello!
    In our project, we use textureArray in the scene, which we pass to global variables for shaders. Unfortunately in your editor, we can not make a node "textureArray" a global variable. Can you add this feature to your editor?
     
  25. Mister-D

    Mister-D

    Joined:
    Dec 6, 2011
    Posts:
    1,694
    sorry if this has been asked before but whats the difference between this and shaderforge? are there more options, is the outputshader better optimised?
     
  26. knup_

    knup_

    Joined:
    Feb 23, 2017
    Posts:
    19
    Great tool!

    How would I go about adding Alpha-to-Coverage as described here to my shader?
     
    arnoob likes this.
  27. Amplify_Paulo

    Amplify_Paulo

    Joined:
    Jul 13, 2017
    Posts:
    297
    Sure, I'll look into adding that, it's simple enough so expect it soon.

    Feature wise there's a plethora of differences. One of the main differences is the ability to create surface shaders, which have their own pros and cons but the biggest one is being able to support any platform unity already supports without any extra effort. Another main difference is the UI/UX, we wanted to bridge the gap between unreal and unity and ended up with something familiar to both while adding a bunch of our own usability perks. In terms of shader creation the difference between the two are the high end effects, stuff like the translucency, object refraction, POM, texture arrays, substance support, etc (to be fair you could probably do some of them in sf if you know how to code them). But there's more stuff not specific to shaders, shader functions which allow you to save specific group of nodes in file to reuse in another shader, multi window support, various shortcuts and tricks for node management. Well, I'm biased here of course, we do have our own issues to deal with which we've been doing our best to solve, for instance our documentation was lacking for too long, we've been adding and fixing it in the past months and it's getting to the point where's there's little to add. Or even the ability to create specialize shaders which we added as our template system where you can add some tags to your pre-existing shader and open it in the editor (yes, even from shader forge). These two aren't quite finished and only partially released yet but it should give you an idea on what we are working now. Last but not least, we have people dedicated to support, whether by email, our forums or here, you should get the help you need.

    As to your other question, yes there are more options and in terms of optimization from time to time I actually do some tests where I compare the native written code instruction count to our shaders and in the worst case scenarios there's is a increase of 1 or 2 instruction (in cases where there's 100 in total). Optimization is a concern to us so we try to get it right for production.

    Again, I'm biased here, take it as you will. Cheers.

    I took a quick look and as far as I can see everything is doable in the editor already. I'll see if I can create a shader function that makes it easier to use.
     
    arnoob likes this.
  28. Mister-D

    Mister-D

    Joined:
    Dec 6, 2011
    Posts:
    1,694
    tnx, will buy it
    im not quite happy with shaderforges' results so i will give your editor a go
     
    Amplify_Paulo likes this.
  29. QuantumTheory

    QuantumTheory

    Joined:
    Jan 19, 2012
    Posts:
    1,081
    I tried both Depth and DepthNormals mode. Still the same result. I tried the rift package and it worked, but only in multi-pass. The water distortion effect is still not rendering in both eyes in single-pass. Have you switched to single-pass stereo in your test cases?
     
  30. xxPillsxx

    xxPillsxx

    Joined:
    Oct 10, 2012
    Posts:
    31
    Can you give clear steps on how to create a new template? Like I said, duplicating an existing template (even the location of the templates are not easily found, the name of the shader files and the names inside ASE don't match) just makes ASE stops working with lots of errors. I even changed the name in /*ase_name*/"ASETemplateShaders/UIDefault"/*end*/ (the first line) to something else but it still doesn't work, in the eidotr there's still only one Default UI.
     
  31. deab

    deab

    Joined:
    Aug 11, 2013
    Posts:
    93
    Ah yes just like that asset - I have a look see how its done. Thanks!
     
  32. Amplify_Paulo

    Amplify_Paulo

    Joined:
    Jul 13, 2017
    Posts:
    297
    Yes, I even went to confirm it right now just in case, multipass and singlepass are working, I'm using 2017.1.0p5 with the previous explanation using the latest ASE build from the website. Can you perhaps try it on a different machine?

    I even tried a new shader from scratch using refraction (red'ish square):
    Unity_2017-10-18_18-20-42.png

    Now that I went to confirm everything step by step I found an issue when you are renaming the file, it's trying to refresh before the name is actually different, this doesn't always happens and thats why I couldn't see it before. We'll fix this asap since this is critical, tremendously sorry for the inconvenience. In the meantime, until the next build just duplicate the file with the editor closed, rename the shader name and then open the editor again after the hotcode reload finishes.

    I'll see if can come up with a sample for you ;)
     
  33. UnityLighting

    UnityLighting

    Joined:
    Mar 31, 2015
    Posts:
    3,874
    Can i make Material LOD mode like Unreal Engine 's LOD system?

    For example ignore normal map from certain distance
     
  34. deab

    deab

    Joined:
    Aug 11, 2013
    Posts:
    93
    Amazing, really pleased I switched from Shader Forge.
     
  35. killa247

    killa247

    Joined:
    May 7, 2013
    Posts:
    25
    Hello!, Just working on a simple vegitation shader and everything is what I had hoped, however I was wondering if there is some way to add randomness to offset a texture based off a random value? currently the only fix that I can see is to pass a value from a script at run time. . . hi.png
     
    Deleted User likes this.
  36. Amplify_Paulo

    Amplify_Paulo

    Joined:
    Jul 13, 2017
    Posts:
    297
    Yes you can use LODs with ASE but not exactly like unreal. At least not yet, this is because it'll need an update that we intend to do to the way you can create subshaders, right now you can't create multiple subshaders, and while it's technically possible to create with the templates these need to be updated to support subshaders as well. With subshaders you would be basically creating just one shader with multiple subshaders, one for each LOD level you need, this is how unreal works. Until then what you can do instead is create multiple materials, one for each LOD level. This is more cumbersome of course but the benefits are the same. You can also use the shader LOD value to globally or individually to change LODs in one material if that material as the proper fallback shader (which in practice work similarly to subshaders). So, between the three options you have support for two now and the third (which is the one you are referring to unreal) isn't supported yet. We are currently (and finally) finishing the documentation, the updates to the templates come next.

    I'm glad I tried creating a sample for you because I noticing a missing feature in our stencil support. I ended up needing to update it for your case so expect the sample in the next dev build. I have it ready, we just need to upload our next build, I'll warn you about it then.

    Keep in mind there's no concept of randomness inside shaders ( well, even outside of them it's all pseudorandom ). Sending a random number to the shader is not useful enough because there are design decisions you need to take on how you are going to use that number. Is it random at every frame? Is it random for every pixel on the screen? These are the kind of questions you need to make to yourself when you need something random. For vegetation what you usually want is randomness to your vertices. I doubt that a texture is of any use to you in that regard since you have little idea on how that texture will be mapped to the vertices. What you need is to use some sort of vertex based information and being able to transform it more or less depending on the effect you are trying to get. What people usually do is use the vertices object or world position with time to drive a series of wave function that make it look random. They do this for every vertex and slightly different for each axis which means each vertex has the potential to move more or less to any direction.

    There's a lot of stuff online on how you can generate something that look random, the most basic one would be to use one of basic wave functions like sine and cosine. You can however use our noise generator to get a feel for it. It's a bit too expensive for what you need but it should get you started. Take a look on our bubble example which uses simpler waves functions.
     
    UnityLighting likes this.
  37. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634
    Hi, I been having an issue for some reason when I use panner node on any shader I make it works fine in the editor...but I cant see it in the scene view or the game view..at all. and yes I did check effects . in Unity. any idea why? Thanks.
     
  38. knup_

    knup_

    Joined:
    Feb 23, 2017
    Posts:
    19
    Good to hear! Would be great to have a shader function for that, or even if you can explain the general approach. I'm a bit confused about how to add "AlphaToMask On" through the editor, and what template to use. Thanks!
     
  39. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538

    Skyworld is an award-winning VR game that combines accessible turn-based strategy and addictive real-time battles, all set in intricately animated miniature worlds. Build and command your forces right on the battlefield, conquer all Skyworlds and compete in online multiplayer. Plus, DRAGONS!

    Crush your enemies and see them driven before you in a Virtual Reality experience with 95% of its shaders built in our award-winning node-based Amplify Shader Editor!

    Amplify Shader Editor - Asset Store Page

    Check out our full suite of Amplify Unity Products and find out what they can do for your project
     
  40. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Hello!

    Just performed a quick test on Unity 2017.1.1f1 with the latest ASE and everything seems to be working as intended, I'm sending an image of my node setup for your convenience.

    Panner.jpg

    Could you please confirm if you have "Animated Materials" enabled and the scene effects toggle on as well?

    If you hit "Play", does the effect play in the Game View?

    Thanks!
     
  41. gaiastellar

    gaiastellar

    Joined:
    Nov 8, 2013
    Posts:
    57
    hi,
    im interested in the noise functions that are available in the noise node. can you give a bit more info on what kind of noise functions are avaialble, whether they are factal, how many octaves, 2d or 3d etc.. creating spherical /planetary terrain and need the noise function on the shader for performance.
    any info would be appreciated
    many thanks

    paul uk
     
  42. gaiastellar

    gaiastellar

    Joined:
    Nov 8, 2013
    Posts:
    57
    hi,
    also, can we create multi texture shaders with this- something similar to megasplat? texture arrays?
    i need to use a multi texture shader for my planetary terrain.

    thanks all,

    paul uk
     
  43. DominoM

    DominoM

    Joined:
    Nov 24, 2016
    Posts:
    460
    Where nodes are unconnected and are using Internal Data, could the node display the value rather than the field name?

    So if an Add node B channel was set to 1.5, the node display would show [ Add | o A | o 1.5 ]

    If something was connected to B the display would revert to [ Add | o A | o B ]

    This would save having to check what static values were used by clicking the node.
     
  44. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634

    ya this worked but also when I reboot Unity, second time I had this happen, it works..after I reboot. If its smaller node set up seems fine, so maybe its not updating? dunno.but always works in the editor, but not always in Unity....
     
  45. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Would it be possible for you to confirm your Unity version and provide an example for further testing on our side?
     
  46. Amplify_Paulo

    Amplify_Paulo

    Joined:
    Jul 13, 2017
    Posts:
    297
    For now we have a simplex 2D and 3D noise. We intend to add more at some point, something like a perlin noise seems almost obligatory. They don't produce octaves but keep in mind octaves is just using the same noise function more than once with different scales so you can easily replicate it already. In terms of performance it depends on the use, do you intend to run it on every frame for the whole world? that seems ta bit too expensive, you are better off doing some kind of sampling. On the other hand if it's on the vertex function you could probably get away with it just fine.

    Yes, you can use texture arrays just fine. If I'm not mistaken you can even use megasplat with ASE since the author created some nodes for it.

    We do want to have those values somehow, we just aren't sure what's the best way to show them, we'll probably need to do some experiments first. The problem with your approach is that almost all ports start with internal data. Since zero is also a valid internal data this would mean that almost every port would lose it's name. Names are too important discard them. Maybe we can concatenate them or put the info in the title. We'll see.
     
  47. Reanimate_L

    Reanimate_L

    Joined:
    Oct 10, 2009
    Posts:
    2,788
    Just out of curiousity, why do you guys move the texcoord transformation to fragment? not on vertex?
     
  48. Amplify_RnD_Rick

    Amplify_RnD_Rick

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

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

    Here are the release notes:
    Release Notes v1.3.2 dev 05:
    • Fixes:
      • Fixed Asset Post Processor issue with Templates renaming
      • Fixed middle clicking on reference preview focusing on referenced node
      • Fixed graphic glitch on 'Static Switch' node button
      • Fixed issue with copy/pasting nodes taking incorrect property names
      • Fixed issue on 'Toggle Switch' incorrectly being read from older ASE versions
      • Minor fix on 'Object To Clip Pos' node
      • Fixed Undo issue with pasted property nodes
      • Fixed issue with duplicate local variables on templates when having multiple ports from the same category
    • Improvements:
      • Minor visual tweak on 'Standard Surface Light' node
      • Removed dependencies on custom shader inspector over the main ASE window so it can be removed by users
      • Setting first vector port automatically invisible ( if unconnected ) on nodes representing Unity built-in parameters ( since they are never used as vectors )
      • Improved custom template reader behavior
      • Minor improvement on Undo node paste behavior
      • Added Stencil Buffer Back and Front face options ( only visible when Culling is Off )
      • Changed input ports number of connections and data type visualization to represent the data being transferred in each cast
      • Improved crooked lines when nodes are too close to each other
      • Added custom single line texture properties for when the texture is marked to not have scale and offset properties

    Please note that on this build we made some changes on the wires visuals when debug modes are active (multi-line and color by data type ) in an attempt to make them more useful.

    Before, their visuals represented only what data type was on the output port from which the connection began.

    Now it represents the amount of data that is being used by the connected input port from the connection.

    P. e. if you connect a Vector 4 into a input port that only uses 3 channels, the connection will be represented by 3 lines with the Vector 3 color code, since it will only use 3 out of the 4 available channels.

    If on the other way, a Float is connected to that same input port, the connection visual representation will change to a single with the Float color code. This is because, although a cast to a Vector3 is happening, the connection can only supply a single Float value.

    After re-importing some wire visuals may not be refreshed to this new mode on your current open shader/shader function but reloading them will set them right.

    We hope you guys find this new mode more useful.

    Have an awesome weekend and happy shader creations!
     
  49. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634
    I use Unity 2017.1 Amplify is the one on the store. The last one.updated. Far as the example.. I would need to send it, as its for a Steam game with an NDA. So I will send it through support, so I can't really post it. Hope you understand.
     
  50. Amplify_Paulo

    Amplify_Paulo

    Joined:
    Jul 13, 2017
    Posts:
    297
    That's a good question that my geeky self will happily answer :}

    Surface shaders let you generate texture texcoords with scale and offset automatically. These are done in the vertex as you might be aware. Problem is, this automatic process is done by each specified texture. This means that for every texture that you want, surface shaders will generate an interpolator. These are VERY limited and you would easily hit the max with a very simple shader that happens to have a texture for each channel (just an example), keep in mind that unity already uses a few of them for other features. One solution would be to increase the shader model, but this restricts platforms and only delays the inevitable, hitting your max interpolator count.

    In order to solve this problem we create a fake automatic interpolator that is used for all the textures that share the same UV channel. And then we offset and scale only the necessary ones in the fragment. We are trading capabilities with speed, but since offsetting and scaling is a multiplication followed by a sum it compiles into very few instructions, actually just one. While these run in the fragment there's a really small hit in the performance and huge increase of texture that you can use. For instance, unity standard shaders all share the same UVs to save interpolators. With ASE you can pretty much use as many textures as you want with different scales and offsets (not unlimited of course).

    Keep in mind that you can still have it in the vertex function, if for some reason, maybe to save fragment instructions (not by much) you need to calculate the texcoords in the vertex function you just have to pass it through the vertex to fragment node.

    Hope that clears up ;)

    Understandable, you can send it to our support email (see my signature) and if we have to sign some NDA so you can send it to us I'm sure we can work it out.

    Just quoting you again to warn you that we removed some dependencies to our custom shader inspector. This way you can have both ASE and SF installed by just removing the file called "CustomShaderInspector.cs" which is located at "AmplifyShaderEditor\Plugins\Editor\Utils".

    cheers
     
    Reanimate_L likes this.