Thank you for developing the tools, It greatly help reducing the time we need to develop the same result without ShaderWeaver. :)
After using ShaderWeaver in a card game production for around two months, we came up with several suggestions and feedbacks that should help actual production.
Here are suggestions based on ShaderWeaver version 1.2.1c (I see that we now have 1.2.1d so I believe the bug that I encounter should be addressed and fixed, I will create additional ticket if I found any bug in newer version.)
1. Add "Opaque" as optional RenderType. The game has planned for Mobile development and currently use 3D Card model to create round edge in PC version. Thus, there is no need to use Transparent type shader in our project.
Having option such as Opaque alongside TransparentCutOut and Transparent should also help with performance on both PC and Mobile.
2. Add subfolder for ShaderWeaver. We are currently creating more than hundreds of unique shaders with ShaderWeaver. The ShaderWeaver will always have shader path as "ShaderWeaver/Example01”. However, when the number exceed 50. It became harder to navigate. I believe that by adding a tag that create subfolder inside shader path. It will help organize those shader easier. In my Opinion, one subfolder layer should be more than enough but more layer won't hurt.
For example, I have 2 Deck of Card the use Shader Weaver to create special effect, each deck has 100 cards. I can add tag "Deck01A" to first 50 shader and the shader path should become "ShaderWeaver/Deck01/Example01” and the next batch as "Deck01B" for another 50 and so on. I also believe it should help with ShaderWeaver example shader to be categorized as "Example". It should also help when we creating shader for UI or Sprite Character.
In addition, if the feature is implemented I believe having mass Shader Path editor should help convert existing shaders. I do not mind to put those shader in folder manually though.
3. Add option not to loop root image. In our production pipeline, we use card background as root directly with clamped texture setting. We then use UV node to distort background image in root. Unfortunately, it doesn't work well with Loop option on. We worked around by creating additional image node and use Exclude root. but at version 1.2.1c exclude root sometime broke the shader.
4. Add option for Multiply blending mode not to multiply source's alpha channel. When we multiply using image that has alpha map, the final result also having source's alpha channel multiply into it. This happened in our production because we're sharing multiple textures across the multiple shaders.
For example, we use tileable leaves texture that has alpha channel to blend in image with default blend option, this has no issue. However, when we use the same texture to multiply (with either multiply or multiply intersect), it resulting in weird holes in final result.
Customer support service by UserEcho