I'm thinking of purchasing Amplify Shader Editor and I have a few questions. The plugin looks very powerful and easy to use, but in most examples online users either create brand new shaders with ASE or use a template already given.
How does ASE interact with custom shaders that have already been created? Are they able to node-ify custom shaders through some sort of conversion process so I can see what's going on under the hood of some of the shaders I use? I am not very advanced in shader writing or customizing, so some shaders I've found over time accomplish the visuals I want but have some things I wish I could edit, but have no skill in. Will ASE help me understand these shaders better, and perhaps allow me to customize them minimally with my limited knowledge base?
Hello, thank you for getting in touch and for your interest!
To clear any misconceptions, Amplify Shader Editor allows you to create Standard Surface shaders and Custom Shaders via Shader Templates. Converting or editing regular shaders or shaders created with other editors is beyond the scope of our editor, unfortunately.
However, given that ASE is based on common shader development standards, you can very well adapt tutorials from other sources to our editor, especially UE4 tutorials, which will help you get more experience and better understanding of how to work with shaders. ASE also generates clean and readable shader code that is easy to interpret, so it is a great way to learn shader coding as well.
And while you do not need to be an expert shader programmer to create shaders through our editor, there are some basic development concepts that you will need to learn in order to build more complicated effects with a visual node editor. Even though it may seem a bit overwhelming at first, keep in mind that the knowledge acquired is interchangeable between editors such as the Unreal Material Editor or similar node-based tools.
We have released quite a few tutorials which will help you get started, which you can watch here, and we also provide 60+ FREE Samples included in the ASE package that will show you simple and complex node setups, which you can use as a starting point for your own effects.
Please let me know if this helps, and if you have any further questions, thanks!
Thanks for the fast reply! I understand what you mean that it's not a drag and drop process. But if I knew which shader code controlled a particular function, then if I added my own Shader template and added in the code, would it display in the ASE node editor or would the custom shader code be something that just coexists with the function of the ASE node-shader generated by the Shader Template?
I have a Unity sprite shader that is able to accept different color palettes to a sprite renderer that allows me to palette swap my 2D sprites to other shades without having to use separate materials. Could I splice that code (if I knew how) to a node-based shader output from a Shader Template?
Whatever the case, ASE really is a phenomenal way to create shader effects with little effort, with complex effects being very possible with only some experience.
When creating your own Template, you'll have to edit the template itself in order to allow or remove certain features, for example, you cannot add a Blend Mode using nodes but you can add it to the template through editing its code so that it shows as an extra option in the property panel.
You may also access the shader's properties and global variables declared over the Template shader through the Template Parameter node, and then make use of our nodes to setup the shader's operations.
In short, the custom code in the template does coexist with what you get and are able to work with via the editor.
Regarding the conversion of your sprite shader, you may be able to perform some of the required operation via nodes after adding all necessary features to the template, it will mostly depend on what operations the shader performs.
Thank you for the kind words, do let me know if the above information was clear enough, I'll be happy to elaborate if needed!