Search Unity

[FREE]MicroSplat, a modular terrain shading system for Unity Terrains

Discussion in 'Assets and Asset Store' started by jbooth, Aug 9, 2017.

Thread Status:
Not open for further replies.
  1. browne11

    browne11

    Joined:
    Apr 30, 2015
    Posts:
    138
    Ok thanks!
     
  2. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
  3. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    396
    is there any conditional checks for scatter? i mean how it looks from distance? is it fading out?
     
  4. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    There's a setting you can use to get it to fade based on mip map chosen; this is so it doesn't blur into a single color/alpha value when the mip map is very low. But that's optional.
     
    razzraziel likes this.
  5. terrycheung

    terrycheung

    Joined:
    Oct 9, 2014
    Posts:
    9
    Hi Jason,

    I've been doing some performance testing and saw that with the Vertex Mesh workflow that it doesn't batch or instance. In the Frame Debugger it explains that it doesn't batch because of the additional vertex stream which is fair enough, and there's no GPU instancing check box on the material (presumably you removed it as its not supported with the Vertex Mesh?)

    So i changed it over to the Mesh workflow, and now i can see there's a GPU instancing checkbox and so i tick that. However it seems to dynamic batch, instead of instancing for some reason, and i'm not sure why.

    I've attached pics of my scene, one directional light, standard microsplat setup (no extra features turned on), kept all on instancing variants set, i setup the same objects with a the standard shader to confirm instancing was working on the scene.
    Standard: standard shader.JPG

    Microsplat mesh: microsplat mesh.JPG
     
  6. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    You can bake the additionalVertexStream into a new copy of the mesh - there's a save utility in the painting tool to do it. That said I'm not sure if there's a great way to setup the material for use with it once baked though- due to various bugs with saving linear HDR textures in Unity, I have to generate the LUTs for per-texture properties at runtime.

    Dynamic batching should only work with meshes which have less than ~200 attributes. It may be that it goes that pathway because it's under this attribute count..
     
  7. Barritico

    Barritico

    Joined:
    Jun 9, 2017
    Posts:
    374
    Hi.

    I am using the ENVIRO integration

    As for humidity, there is no problem. Very simple and automatic.
    But there is no way to create puddles. I'm not able. I don't know if they are automatic, if they have to be "drawn" before with the FX Painter tool or what ...

    I have followed the tutorials, but I am not able. :(

    I have the letter G in wetness and puddles in yellow

    like this


    Please help!

    Thank you
     
    Last edited: Jun 18, 2020
  8. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    You'd have to have something generate the puddle mask of where puddles go, either painting it manually or generating it somehow. As for what Enviro does for this, you'd have to ask over there- I just provided the hooks for various weather systems to change things, and each decides what they want to control.
     
  9. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Hi Everyone. This is not really MicroSplat news, but I figured I'd post here for more visibility.

    -----

    Over the last few years, Unity has introduced the Scriptable Render Pipeline (SRP) system, along with several render pipelines (LWRP/URP, HDRP). These new render pipelines have created significant issues for Unity users and publishers on the asset store. A few with examples are listed below:

    • Shaders must be rewritten from the ground up for each pipeline. There is no upgrade path from Standard to an SRP, and shaders written for one SRP (URP) won't work for another(HDRP).
    • No upgrade path for shaders between versions of the SRP. URP 7.1.8 shaders are not compatible with URP 7.2.1 shaders, yet are both for Unity 2019.3.
    • Rendering code must be re-written for each pipeline. The CustomPass system for URP and HDRP are completely different, yet do the same thing.
    • Code is often broken or different for no reason on different pipelines. Camera.backgroundColor is used in URP/Standard, but in HDRP it's stored in a different property on a custom component and aliased in the editor to look like the camera component is being used.
    • No documentation for shaders. This means countless hours reverse engineering the shading system. And when things change, there is no documentation on what has changed.
    • New versions not sync'd to Unity releases. URP 7.1.8 and URP 7.2.1 shaders are incompatible, and both for Unity 2019.3. Users are forced to upgrade depending on which patch version of Unity 2019.3 they are using, making it impossible to support.
    • Assets written for multiple pipelines cannot "just work" when installed. If you have even the simplest material, users will need to manually upgrade your project to work in SRPs.

    Since SRPs were conceived, we have been asking Unity to address these types of issues, and this has fallen on deaf ears. Even after several years, we have no official response to any of these issues, or even confirmation that Unity see's them as actual issues worth solving. I have also personally received the feedback from several Unity employee's that "Only you care about this stuff", which I know is not the case.

    As such, we invite you to join us in changing your profile picture from June 21st to June 28th to the following image to raise awareness of these issues, and show Unity that more than one person would like to see them addressed.

     
    Last edited: Jun 18, 2020
    one_one, browne11, GCatz and 4 others like this.
  10. Barritico

    Barritico

    Joined:
    Jun 9, 2017
    Posts:
    374
    Well ... in the video comments the users ask you, please, for a tutorial. It would be good.
     
  11. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Tutorial on what exactly? I don't have code to autogenerate where puddles go - so it would just be of the same painting tools I show off in the video..
     
  12. Barritico

    Barritico

    Joined:
    Jun 9, 2017
    Posts:
    374
    Ok. Sorry.
     
  13. superaldo666

    superaldo666

    Joined:
    Aug 30, 2013
    Posts:
    17
    I'm with you Jason, do you know if the module for HDRP support works with the HDRP version 7.3.1?
     
    Last edited: Jun 19, 2020
  14. terrycheung

    terrycheung

    Joined:
    Oct 9, 2014
    Posts:
    9
    Thanks for that tip about the save utility, that fixes the non batching.

    I managed to get instancing to work, if i remove "nomatrices" from the instancing options. Unfortunately there's not much info on what that switch does. I realise that i'm doing this at my own peril and but so far nothing seems to be broken after removing it =)
     
  15. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    That's there simply because of what Unity's code does, as the terrain instancing code does that. Like most shader things, there's no documentation. I suspect the correct fix it to remove it only when compiling non-terrain shaders..
     
  16. f1chris

    f1chris

    Joined:
    Sep 21, 2013
    Posts:
    335
    I support you Jason. Communication is the key and Unity should at least communicate clearly what’s their plan. Nothing worst than being left in the dark.
     
  17. boysenberry

    boysenberry

    Joined:
    Jul 28, 2014
    Posts:
    365
    You (and the other shader developers) have my support!
    I am thinking I'll send them an email about it too. If I can figure out who the best person to send it to would be. Something along the lines of I will not be buying anymore assets from your store until you deal with the issue of SRPs and their documentation and roadmap for the future. Does that sound right to you? For me SRPs and the render pipelines have been nothing but a headache. They should be bringing things forward and instead they seem to be making it harder to develop using Unity. That makes Unity not such a great platform, especially if the developers helping to support it are thrown under the bus over and over again.
    This year has made me consider leaving Unity as a platform several times. Between SRP and The new Jobs sketchiness I've been dealing with, I am beginning to doubt my future with Unity sadly.
     
  18. Hitch42

    Hitch42

    Joined:
    May 12, 2015
    Posts:
    98
    Thank you for for releasing the new Scatter module. I purchased Advanced Details a while ago, and it's a shame that the creator seems to have abandoned it. I really appreciate the way you release new modules and continuously support them. Purchasing an asset and then having the rug pulled from under you as it is depreciated or requires you to repurchase it over and over again is something that hangs over all Asset Store items. You're a top tier developer, your work is amazing, and I know that I can have confidence on everything I purchase from you.
     
  19. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    That's it, I'm out..

    ;)
     
    GCatz and mmaclaurin like this.
  20. TurboHermit

    TurboHermit

    Joined:
    Dec 20, 2011
    Posts:
    40
    Hey, I'm running into an issue where selecting a terrain gameobject with a MicroSplatTerrain component on it will mark all open scenes as modified. I suspect it has to do with (automatic) SyncAll functionality? It's quite annoying, since we use separate terrains over a lot of scenes and we automate stuff based on when a scene is saved. This issue makes it hard to gauge which scenes have actually been modified.

    Any advice or quick fixes in mind? Is there a way to make sure SyncAll doesn't modify any components?

    We're on 2019.3.4f1
     
  21. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    I'll look into it, I think the SetDirty after the RestorePrototypes() call in MicroSplatTerrain is likely the culprit.
     
    TurboHermit likes this.
  22. Temka_193

    Temka_193

    Joined:
    Oct 24, 2015
    Posts:
    47
    Do you have detailed texture support in your assets?
    When the camera is far away - one texture, when the camera is close - detailed texture. Smooth transition from one texture to another, depending on the distance from the camera to the terrain.
     
  23. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    In MicroSplat there's Distance Resampling (same textures at different UV scales blended based on camera distance, often called MixMapping and other names), and various noise methods as well (detail noise, distance noise, noise normal) which blend a greyscale or normal texture in based on distance, but currently not detail texturing in which you cross fade between different texture sets based on distance.

    MegaSplat supports detail texturing with a separate set of textures, though. But I haven't looked at that code in years so I can't remember the details. Also, One Batches shaders support it since they are modified versions of the Unity standard shaders..
     
  24. Temka_193

    Temka_193

    Joined:
    Oct 24, 2015
    Posts:
    47
    jbooth thank you.
    Do you support HDRP in your assets? And if not, can I rely on support when I buy an asset?
     
  25. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Depends on the asset - MicroSplat supports HDRP through the HDRP module - most module features are supported, but there are exceptions listed on the asset description.
     
  26. Temka_193

    Temka_193

    Joined:
    Oct 24, 2015
    Posts:
    47
    i bought asset "MicroSplat - HDRP Support", but dont understand how to activate it.
    i dont know what is this option
    upload_2020-6-27_0-54-28.png
     
  27. Temka_193

    Temka_193

    Joined:
    Oct 24, 2015
    Posts:
    47
    Sorry, I'm stupid :) I found this option
     
  28. Temka_193

    Temka_193

    Joined:
    Oct 24, 2015
    Posts:
    47
    what am I doing wrong? i use materials from the "Global Texturing" example with HDRP
     

    Attached Files:

  29. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Pink usually means some kind of compile error - is there anything in the console?
     
  30. Temka_193

    Temka_193

    Joined:
    Oct 24, 2015
    Posts:
    47
    no, the console is empty
     
  31. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    What version of HDRP/Unity are you using?
     
  32. Temka_193

    Temka_193

    Joined:
    Oct 24, 2015
    Posts:
    47
    HDRP 7.4.1 and Unity 2019.4.1f1
     
  33. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    If it's just when your painting, it seems like it's an issue with Unity's brush shaders. I'll see if I can repro it..
     
  34. Temka_193

    Temka_193

    Joined:
    Oct 24, 2015
    Posts:
    47
    also tell me where to configure it
     
  35. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    These are all part of the Anti-tiling module for MicroSplat, and described in the docs.
     
  36. TurboHermit

    TurboHermit

    Joined:
    Dec 20, 2011
    Posts:
    40
    Hey, you managed to squeeze some time in to find the cause? I've tried commenting all SetDirty calls in MicroSplatTerrain and it seems to fix at least marking ALL terrain as dirty, even though it still marks one dirty after selecting it. I could keep the comments around, but I'm not sure what kind of implications it has.

    Why do you need to set the them dirty? Isn't the entire Sync method made so so you don't have to?
     
  37. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    I took out the SetDirty call that should have been causing the issue in the last patch. It has to get marked dirty in certain cases where the user modifies one of the pointers on the terrain, or the editor does - for instance, when it automatically looks up the PropData object, or you set one of those manually. Those functions only run in editor, so if you don't unity won't save the changes and things will be broken in a build.
     
  38. TurboHermit

    TurboHermit

    Joined:
    Dec 20, 2011
    Posts:
    40
    Perfect, the latest patch did indeed fix it! Good job and thanks for the quick fix.
     
  39. jmiller_simu

    jmiller_simu

    Joined:
    Aug 6, 2018
    Posts:
    5
    We're running into an issue where pressing the Update button in the MicroSplatConfig causes the import settings for each texture in each array to change. We found this out by noticing our terrain textures were somehow set to uncompressed, and after we manually fixed the settings, pushing that Update button undid our fix.
     
  40. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Is ‘Shrink Source Textures’ on in the texture array config? If so, it will uncompress them for maximum import quality and scale them down in size for the build.
     
  41. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Ah, I see the issue. Fixed for the next update..
     
  42. jmiller_simu

    jmiller_simu

    Joined:
    Aug 6, 2018
    Posts:
    5
    Cool, thanks.
     
  43. newguy123

    newguy123

    Joined:
    Aug 22, 2018
    Posts:
    1,248
    Does this plugin work only on terrains?
    How about on imported fbx models?
     
  44. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
  45. baknik_4

    baknik_4

    Joined:
    Feb 24, 2020
    Posts:
    8
    Hello everyone.Quick question. Is there a way to make a copy of my shader and put this on a new terrain so I can make an alternative version for a different terrain and keep my existing per texture adjustments?
     
  46. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    You can copy the MicroSplatData directory, or the parts of it you want to be separate. However, you will have to relink all references, as by defualt things like the material will point back to the old shader instead of the new one.
     
    baknik_4 likes this.
  47. baknik_4

    baknik_4

    Joined:
    Feb 24, 2020
    Posts:
    8
    Ok, thanks for the answer!
     
  48. superaldo666

    superaldo666

    Joined:
    Aug 30, 2013
    Posts:
    17
    Hi Jason,
    I'm a recent user of the awesome Microsplat modules package, but I'm having trouble updating my project on github, each time when I'm update the MicroSplatConfing then I try to make a push to my repo it show me an error about "git lfs objects are missing" this happen only with the files inside of MicroSplatData\
    do you know how can I fix this?

    Unity2019.4.0f1, I'm using microsplat HDRP and anti-tiling
     
  49. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    LFS is large file support- so you are trying to check in files over 100mb in size, and don't have support for LFS enabled to allow that.
     
  50. Syllvia

    Syllvia

    Joined:
    Mar 26, 2013
    Posts:
    16
    Howdy, any word on how long the TRAX module is gonna be on sale for? I presume it'll be on sale as long as the power tools asset sale is, but I'd like to find out as i'm interested but need to spend more time testing the tools i already bought and dont' wanna miss out on the sale.
     
Thread Status:
Not open for further replies.