Search Unity

► Advanced Dissolve ◄

Discussion in 'Assets and Asset Store' started by Arkhivrag, Feb 13, 2018.

  1. kookoo21

    kookoo21

    Joined:
    Dec 12, 2015
    Posts:
    2
    @Arkhivrag do you have a version of this asset that will work in Unity 5.6.6? The asset store page says 5.4 or higher but the current version seems to conflict with 5.6.6
     
  2. Arkhivrag

    Arkhivrag

    Joined:
    Apr 25, 2012
    Posts:
    2,211
    What is the problem with 5.6.6?



    VacuumShaders - Facebook Twitter YouTube
     
  3. kookoo21

    kookoo21

    Joined:
    Dec 12, 2015
    Posts:
    2
    Here are the errors that pop on after importing the RenderPipeline - Standard package
     

    Attached Files:

  4. Arkhivrag

    Arkhivrag

    Joined:
    Apr 25, 2012
    Posts:
    2,211
    RenderPipeline - Standard.package is part of the asset for Unity 2019, do not import it into Unity 5.6. Instead download package from the store using Unity 5.6



    VacuumShaders - Facebook Twitter YouTube
     
  5. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    401
    Hello @Arkhivrag

    Would you consider for a future release to move some keywords to local (they're all in global at the moment)

    following that thread: https://forum.unity.com/threads/shader-keyword-limit.545491/#post-4751381

    That would help for people relying on multiple 3rd party assets that grow the 256 keyword limit quite fast (even though it's stripped in builds, there is still the error popping in editor and that create issues while play-testing)

    thanks
     
  6. planetmatrix

    planetmatrix

    Joined:
    Dec 8, 2015
    Posts:
    37
    Hi there,

    How do you get the effect on the right with Advance Dissolve shader attached to the left object.

    I mean how to fill the space between 2 walls with different texture?

    I tried all the shaders available in the asset. test.jpg
     
  7. Arkhivrag

    Arkhivrag

    Joined:
    Apr 25, 2012
    Posts:
    2,211
    Advanced Dissolve shader does not create Cross Section effect.
    Dissolve and Cross Section are different type of effects.



    VacuumShaders - Facebook Twitter YouTube
     
  8. Aaron-Meyers

    Aaron-Meyers

    Joined:
    Dec 8, 2009
    Posts:
    216
    Hey there... I'd really like to add some glowing edges to some of my materials using a fresnel component to add to the emission component in the shader (not the dissolve edge, just the whole object).

    I'm always a little bit lost when trying to dig into the code of the Advanced Dissolve shaders... I mostly use the Standard Specular version. Can you advise on the easiest way I can add this modification and expose a few uniforms to control the fresnel variables and emission contribution?
     
  9. Arkhivrag

    Arkhivrag

    Joined:
    Apr 25, 2012
    Posts:
    2,211
    There is no easy way, especially in the case of Standard Specular shaders.Sorry.



    VacuumShaders - Facebook Twitter YouTube
     
    Last edited: Oct 27, 2019
  10. mick129

    mick129

    Joined:
    Jun 19, 2013
    Posts:
    30
    We are working into a isometric RPG and I'm looking for a solution to remove the tree/object that hide the camera like the screenshot below.

    Our challenge is that we already use custom shaders and can't really switch to dissolve's shaders. Before going forward, is there a simple solution we could use with your asset?

    upload_2019-11-6_20-39-8.png
     
  11. Arkhivrag

    Arkhivrag

    Joined:
    Apr 25, 2012
    Posts:
    2,211
    The easiest solution is - replace your custom shader with Advanced Dissolve.
    Another solution is to manually copy Advanced Dissolve math into your shader.



    VacuumShaders - Facebook Twitter YouTube
     
  12. Jbaker08

    Jbaker08

    Joined:
    Oct 8, 2012
    Posts:
    37
    Is there any update on moving this to HDRP?

    Thanks
     
  13. Arkhivrag

    Arkhivrag

    Joined:
    Apr 25, 2012
    Posts:
    2,211
    Waiting HDRP to be released as production ready.



    VacuumShaders - Facebook Twitter YouTube
     
  14. itsYloon

    itsYloon

    Joined:
    Nov 9, 2016
    Posts:
    7
  15. Arkhivrag

    Arkhivrag

    Joined:
    Apr 25, 2012
    Posts:
    2,211
  16. Idomama

    Idomama

    Joined:
    Dec 31, 2017
    Posts:
    78
    I didn't understand how to use it. After downloading from the store I only get one folder with only 2 files.
    Folder : VacuumShaders
    Files : RenderPipeline - Lightweight and RenderPipeline - Standard
    and that's it. Really don't understand what's going on here. I would love to get help :)
     

    Attached Files:

    • 22.png
      22.png
      File size:
      218.9 KB
      Views:
      55
    Last edited: Nov 15, 2019
  17. Arkhivrag

    Arkhivrag

    Joined:
    Apr 25, 2012
    Posts:
    2,211
    Those two files are packages for Standard and Lightweight render pipelines. Based on your project import appropriate one.



    VacuumShaders - Facebook Twitter YouTube
     
  18. Idomama

    Idomama

    Joined:
    Dec 31, 2017
    Posts:
    78
    OOOOOOOOOOOOOOOOOOPPPPPPPPPPPPSSSSSSSSS ;)
     
  19. linojon

    linojon

    Joined:
    Aug 25, 2014
    Posts:
    84
    Hello. I tried importing the current (2019.5) "RenderPipeline - Standard" package into a Unity 2018.4.9f1 project and receive 23 errors about EndFoldoutHeaderGroup as follows.


    upload_2019-11-18_14-51-26.png
     
  20. Arkhivrag

    Arkhivrag

    Joined:
    Apr 25, 2012
    Posts:
    2,211
    You can not import asset for Unity 2019.x into Unity 2018.x
    Remove asset from the project, clear asset store cache folder and re-download asset. Based on your Unity editor version (2018.4) appropriate package will be downloaded.



    VacuumShaders - Facebook Twitter YouTube
     
  21. JGroxz

    JGroxz

    Joined:
    Dec 12, 2017
    Posts:
    11
    Hello! Is support for URP coming in the nearest future?

    P.S. The shader is awesome, by the way :)
     
  22. Arkhivrag

    Arkhivrag

    Joined:
    Apr 25, 2012
    Posts:
    2,211
    URP is not released yet.
    Or am I missing something o_O



    VacuumShaders - Facebook Twitter YouTube
     
  23. tetto_green

    tetto_green

    Joined:
    Dec 22, 2015
    Posts:
    22
    Hey! May be you have any beta or something of HDRP version?
     
  24. Arkhivrag

    Arkhivrag

    Joined:
    Apr 25, 2012
    Posts:
    2,211
    Just waiting HDRP to be released as production ready and became more stable.



    VacuumShaders - Facebook Twitter YouTube
     
  25. WindwalkColin

    WindwalkColin

    Joined:
    Jan 28, 2019
    Posts:
    6
    Howdy Arkhivrag,
    We are using the Universal Render Pipeline (it is production ready finally!) Any word on if this shader will work with the URP? If you have a LWRP version, it should be pretty easy for us/you to adapt it for the URP, no?
    Cheers,
    Colin
     
  26. Arkhivrag

    Arkhivrag

    Joined:
    Apr 25, 2012
    Posts:
    2,211
    URP is available only in Unity 2019.3, yes? And it is not released yet.
    I have to wait for its final release to know what kind of shader code I'll have to work with.



    VacuumShaders - Facebook Twitter YouTube
     
  27. Devision4

    Devision4

    Joined:
    Jan 12, 2013
    Posts:
    1,338
    Can I use it to dissolve a dead npc? Can I see the documentation before purchasing it?
     
  28. Arkhivrag

    Arkhivrag

    Joined:
    Apr 25, 2012
    Posts:
    2,211
    You can dissolve mostly everything. Check attached ReadMe file.



    VacuumShaders - Facebook Twitter YouTube
     

    Attached Files:

  29. JGroxz

    JGroxz

    Joined:
    Dec 12, 2017
    Posts:
    11
    The LWRP version of the shader can be quite easily updated to work in URP. Did this, can confirm :)
     
  30. Mortalanimal

    Mortalanimal

    Joined:
    Jun 7, 2014
    Posts:
    357
  31. Arkhivrag

    Arkhivrag

    Joined:
    Apr 25, 2012
    Posts:
    2,211
    All you have to do is provide fill texture or alpha that will be used by Advanced Dissolve shader for hiding parts of the circle.
    As for performance, Advanced Dissolve is Alpha Cutout shader and has the same performance as such shaders, + cost for additional effects (like dynamic object mask, triplanar noise projection, etc) which in your case is not necessary.



    VacuumShaders - Facebook Twitter YouTube
     
    Mortalanimal likes this.
  32. Mortalanimal

    Mortalanimal

    Joined:
    Jun 7, 2014
    Posts:
    357

    Thanks bro, it took me a few days to process what you said since I have never worked with shaders before, but now I have result.

    I am using a ArcTan2 Texture I found on google, and using it as a Cutout source, However, The Transition isnt very smooth, I can only assume because the resolution of my ArcTan2 Texture isnt high enough (Cant find anything higher), Any pointers would greatly be appreciated.

    If you have any other suggestions, I would be grateful

     
  33. Mortalanimal

    Mortalanimal

    Joined:
    Jun 7, 2014
    Posts:
    357
    I managed to increase the resolution, Also Making the ArcTan2-Texture .PNG made a big difference, but its still not perfect, I am not sure if I keep increasing the resolution of the ArcTan2-Texture would be the right way to go, I am not sure if this would Impact performance.
     
  34. Mortalanimal

    Mortalanimal

    Joined:
    Jun 7, 2014
    Posts:
    357
    I have found an even Bigger problem, Changing the Dissolve value of one tank effects both tanks, ... how do I go around that? I read Somewhere that adding [PerRendereData] before the properties solve that, But it didnt for me.



    Code (CSharp):
    1. Properties
    2.     {
    3.        
    4.         _MainTex ("Sprite Texture", 2D) = "white" {}
    5.         _Color ("Tint", Color) = (1,1,1,1)
    6.        
    7.         _StencilComp ("Stencil Comparison", Float) = 8
    8.         _Stencil ("Stencil ID", Float) = 0
    9.         _StencilOp ("Stencil Operation", Float) = 0
    10.         _StencilWriteMask ("Stencil Write Mask", Float) = 255
    11.         _StencilReadMask ("Stencil Read Mask", Float) = 255
    12.  
    13.         _ColorMask ("Color Mask", Float) = 15
    14.         _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
    15.  
    16.         [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0
    17.  
    18.  
    19.  
    20.         //[HideInInspector] _DissolveCutoff("Dissolve", Range(0,1)) = 0.25 //why is there 2 of these here? //this one is tottally here in error
    21.                  
    22.            
    23.         //Advanced Dissolve
    24.         [PerRendererData] _DissolveCutoff("Dissolve", Range(0,1)) = 0.25 // I should probabaly [PerRendererData], however this isnt working
    25.        
    26.         //Mask
    27.         [PerRendererData][KeywordEnum(None, XYZ Axis, Plane, Sphere, Box, Cylinder, Cone)]  _DissolveMask("Mak", Float) = 0
    28.         [PerRendererData][Enum(X,0,Y,1,Z,2)]                                                _DissolveMaskAxis("Axis", Float) = 0
    29.         [PerRendererData][Enum(World,0,Local,1)]                                            _DissolveMaskSpace("Space", Float) = 0    
    30.         [PerRendererData]                                                                   _DissolveMaskOffset("Offset", Float) = 0
    31.         [PerRendererData]                                                                   _DissolveMaskInvert("Invert", Float) = 1      
    32.         [PerRendererData][KeywordEnum(One, Two, Three, Four)]                               _DissolveMaskCount("Count", Float) = 0      
    33.    
    34.         [PerRendererData]  _DissolveMaskPosition("", Vector) = (0,0,0,0)
    35.         [PerRendererData]  _DissolveMaskNormal("", Vector) = (1,0,0,0)
    36.         [PerRendererData]  _DissolveMaskRadius("", Float) = 1
    37.  
    38.         //Alpha Source   //What I want to change is here
    39.         [PerRendererData] [KeywordEnum(Main Map Alpha, Custom Map, Two Custom Maps, Three Custom Maps)] _DissolveAlphaSource("Alpha Source", Float) = 0
    40.         [PerRendererData] _DissolveMap1("", 2D) = "white" { }
    41.         [PerRendererData] [UVScroll] _DissolveMap1_Scroll("", Vector) = (0,0,0,0)
    42.         [PerRendererData] _DissolveMap1Intensity("", Range(0, 1)) = 1
    43.         [PerRendererData] [Enum(Red, 0, Green, 1, Blue, 2, Alpha, 3)] _DissolveMap1Channel("", INT) = 3
    44.         [PerRendererData] _DissolveMap2("", 2D) = "white" { }
    45.         [PerRendererData] [UVScroll] _DissolveMap2_Scroll("", Vector) = (0,0,0,0)
    46.         [PerRendererData] _DissolveMap2Intensity("", Range(0, 1)) = 1
    47.         [PerRendererData] [Enum(Red, 0, Green, 1, Blue, 2, Alpha, 3)] _DissolveMap2Channel("", INT) = 3
    48.         [PerRendererData] _DissolveMap3("", 2D) = "white" { }
    49.         [PerRendererData] [UVScroll] _DissolveMap3_Scroll("", Vector) = (0,0,0,0)
    50.         [PerRendererData] _DissolveMap3Intensity("", Range(0, 1)) = 1
    51.         [PerRendererData] [Enum(Red, 0, Green, 1, Blue, 2, Alpha, 3)] _DissolveMap3Channel("", INT) = 3
    52.  
    53.         [PerRendererData][Enum(Multiply, 0, Add, 1)]  _DissolveSourceAlphaTexturesBlend("Texture Blend", Float) = 0
    54.         [PerRendererData]                              _DissolveNoiseStrength("Noise", Float) = 0.1
    55.         [PerRendererData][Enum(UV0,0,UV1,1)]          _DissolveAlphaSourceTexturesUVSet("UV Set", Float) = 0
    56.  
    57.         [PerRendererData][KeywordEnum(Normal, Triplanar, Screen Space)] _DissolveMappingType("Triplanar", Float) = 0
    58.         [PerRendererData][Enum(World,0,Local,1)]                        _DissolveTriplanarMappingSpace("Mapping", Float) = 0  
    59.         [PerRendererData]                                               _DissolveMainMapTiling("", FLOAT) = 1  
    60.  
    61.         //Edge
    62.         [PerRendererData]                                       _DissolveEdgeWidth("Edge Size", Range(0,1)) = 0.25
    63.         [PerRendererData][Enum(Cutout Source,0,Main Map,1)]     _DissolveEdgeDistortionSource("Distortion Source", Float) = 0
    64.         [PerRendererData]                                       _DissolveEdgeDistortionStrength("Distortion Strength", Range(0, 2)) = 0
    65.  
    66.         //Color
    67.         [PerRendererData]                _DissolveEdgeColor("Edge Color", Color) = (0,1,0,1)
    68.         [PerRendererData][PositiveFloat] _DissolveEdgeColorIntensity("Intensity", FLOAT) = 0
    69.         [PerRendererData][Enum(Solid,0,Smooth,1, Smooth Squared,2)]      _DissolveEdgeShape("Shape", INT) = 0
    70.  
    71.         [PerRendererData][KeywordEnum(None, Gradient, Main Map, Custom)] _DissolveEdgeTextureSource("", Float) = 0
    72.         [PerRendererData][NoScaleOffset]                                 _DissolveEdgeTexture("Edge Texture", 2D) = "white" { }
    73.         [PerRendererData][Toggle]                                         _DissolveEdgeTextureReverse("Reverse", FLOAT) = 0
    74.         [PerRendererData]                                                 _DissolveEdgeTexturePhaseOffset("Offset", FLOAT) = 0
    75.         [PerRendererData]                                                 _DissolveEdgeTextureAlphaOffset("Offset", Range(-1, 1)) = 0  
    76.         [PerRendererData]                                                 _DissolveEdgeTextureMipmap("", Range(0, 10)) = 1      
    77.         [PerRendererData][Toggle]                                         _DissolveEdgeTextureIsDynamic("", Float) = 0
    78.  
    79.         [PerRendererData][PositiveFloat] _DissolveGIMultiplier("GI Strength", Float) = 1  
    80.        
    81.         //Global
    82.         [PerRendererData][KeywordEnum(None, Mask Only, Mask And Edge, All)] _DissolveGlobalControl("Global Controll", Float) = 0
    83.  
    84.         //Meta
    85.         [PerRendererData] _Dissolve_ObjectWorldPos("", Vector) = (0,0,0,0)      
    86.     }
     
    Last edited: Dec 31, 2019
  35. christougher

    christougher

    Joined:
    Mar 6, 2015
    Posts:
    462
    I'm not sure about the resolution issues but if you gameobject use the same material then they will be affected the same . However I think you can get around this by enabling GPU instancing . that way at runtime they have different copies of the same material. At edit time no there is no way to separate them other than having multiple materials
     
  36. Mortalanimal

    Mortalanimal

    Joined:
    Jun 7, 2014
    Posts:
    357

    Thanks for reply, do you mean enabling this?


    The thing is, I have another asset, that can do what I am talking about (changing the alpha from a script and it only effects that one object) , but these assets are so hard to read, I dont even know how its working. I mean thats why i bought them in the first place "because I dont know how to make them myself".
     
  37. christougher

    christougher

    Joined:
    Mar 6, 2015
    Posts:
    462
    Select the material that you are using . And look at the options. you should see an option to enable GPU instancing. Or, if you just want separate materials altogether duplicate the material and assign it to you the second gameobject
     
  38. Mortalanimal

    Mortalanimal

    Joined:
    Jun 7, 2014
    Posts:
    357
    I dont see such an option;



    Man this is getting me so demoralised, I feel like I have no choice but to master shaders just to get past this lol
     
  39. christougher

    christougher

    Joined:
    Mar 6, 2015
    Posts:
    462
    Oh.... It's textMeshPro... I think those shaders are not really designed with the idea of having GPU instancing because text wouldn't usually need different settings for each letter. Do you have another curved world sprite shader you could try?
     
  40. Mortalanimal

    Mortalanimal

    Joined:
    Jun 7, 2014
    Posts:
    357
    Ahh, I see what you mean, all the other options Have a few problems, they interact with other lights, which is not what I am looking for, or, it has an alpha cut off-setting, and no matter how i fine tune it, the Dial becomes jagged. Let me show u two examples:

    TextMesh:


    With All The Other Options:
     
  41. Arkhivrag

    Arkhivrag

    Joined:
    Apr 25, 2012
    Posts:
    2,211
    1. For clear cutout effect using texture, make sure texture quality is good. If you downloaded it from google it may be compressed and not suitable for your needs. I can suggest to recreate same texture in photoshop your own. And it will be perfect.
    2. If multiple meshes need unique and independent from each other effect - make multiple materials for such meshes.
    3. If Dissolve material must not interact with light - use Unlit shaders.



    VacuumShaders - Facebook Twitter YouTube
     
  42. Mortalanimal

    Mortalanimal

    Joined:
    Jun 7, 2014
    Posts:
    357

    Thank you for reply
    but these units are created at run time, its for an rts game, how do I make multiple materials for that. Is there no way to use the same material? I have another shader asset, that comes with a script attached with a variable Alpha, whereby if I change the alpha from the script, it only effects that object individually regardless of how many copies of that same object are in the scene. Any Idea if I could somehow Implement this with this shader?

    The other asset I am referring to is (in case you already have it):

     
  43. Arkhivrag

    Arkhivrag

    Joined:
    Apr 25, 2012
    Posts:
    2,211
    You can Instantiate() material run-time.



    VacuumShaders - Facebook Twitter YouTube
     
  44. G-E-Team288

    G-E-Team288

    Joined:
    Aug 26, 2013
    Posts:
    28
    My project uses URP on Unity 2019.3 which is not released yet. Please let me know if it is possible to convert Advance Dissolve LWPR shaders to URP shaders, Thank you.
     
    Last edited: Jan 5, 2020
  45. Devision4

    Devision4

    Joined:
    Jan 12, 2013
    Posts:
    1,338
    any tutorial for this asset available? I just need that effect static on my Level to "lookthrough" roof. No idea how to setup asset
     
    Last edited: Jan 10, 2020
  46. Arkhivrag

    Arkhivrag

    Joined:
    Apr 25, 2012
    Posts:
    2,211
    Documentation and example scenes inside package.



    VacuumShaders - Facebook Twitter YouTube
     
  47. Aaron-Meyers

    Aaron-Meyers

    Joined:
    Dec 8, 2009
    Posts:
    216
    Huge fan of this asset... it was fundamental to a couple projects I did last year! For a new project, I'm moving over to HDRP. Now that it's out of preview, does that mean it's final enough for Advanced Dissolve to be adapted for it? Do you have any sense of when Advanced Dissolve might be ready to use with HDRP?

    Thanks!
     
  48. Whatever560

    Whatever560

    Joined:
    Jan 5, 2016
    Posts:
    114
    Hi There, Thanks for this awesome shader,
    I'm facing a strange issue with the shader when switching it in play mode (I have a ref of metallic_sm4 material that I copy this way `new Material(settings.StandardCutout)`, then copy back all properties from prev standard material to the cutout shader), this is what happens :

    On the left is Unity standard material, on the right advance dissolve, you can see it misses some shader functionalities (Metallic is not well rendered, same for height) but whenever I simply expand the Shader panel of Adv diss shader then everything gets updated and the correct look.

    Left element selected you can see the standard shaders
    MetallicBugMaterialSwap.JPG
    Right element selected is adv diss.
    MetallicBugMaterialSwap2.JPG
    Just expanded the shader inspector and it gets updated.
    MetallicBugMaterialSwap3.JPG

    Simple question : Do I need to make a certain operation on the new material to get things updated?

    Can it be related to too many shader keywords beeing used ?
    [Edit] : Seems unrelated, I replaced all keyword but _GLOBAL ones by `shader_features_local` (using 2019.3), keyword limit warnings does not show up anymore, but I still have the issue. Will try to copy shader keywords to see if theres is a difference.
    [Edit 2] : Copying keywords from standard material to advance dissolve seems to make things work way better. There are still issue, maybe some keywords that are in the advance dissolve material but not in the standard shader. I don't know how we can compare what is missing.
    [Edit 3] : Manually removing standard shader default keywords in the newly created material before copying renderer material's value do seems to fix our issues
    ```
    //You'll have to check on your own which keywords are up in the material you use as copy
    materials[0].DisableKeyword("_SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A");
    materials[0].DisableKeyword("_SPECGLOSSMAP");
    ///this extension method copies keywords and properties to the material
    materials[0].CopyShaderPropertiesAndKeywords(s);
    ```
     
    Last edited: Jan 21, 2020 at 1:31 PM
  49. Arkhivrag

    Arkhivrag

    Joined:
    Apr 25, 2012
    Posts:
    2,211
    Unity 2019.3 still in beta, it may change after release.



    VacuumShaders - Facebook Twitter YouTube
     
unityunity