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

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    From the creator of MegaSplat comes MicroSplat, a modular terrain shading system designed around performance and ease of use. MicroSplat is a replacement shader system for Unity Terrains. The base package is free to download, and can be extended via optional paid modules.

    MicroSplat's Core shader package features:
    • Up to 32 textures on one terrain in a single pass
    • Significantly faster than any other terrain shader on the asset store when run with a similar feature set
    • Full PBR based shader
    • Automatic Texture conversion and packing. MicroSplat will generate missing normal, height, smoothness, and ambient occlusion maps from the best available source.
    • Convert directly from substances at design time
    • Linear or Height based Blending
    • Supports full mesh workflows for non-terrain objects with the Mesh Workflow module
    Per Texture Controls are available for:
    • UV Scale and Offset
    • Albedo Tint, Contrast and Brightness
    • Metallic value
    • Smoothness Strength
    • Normal Strength
    • AO Strength
    • Interpolation Contrast
    • Subsurface Scattering
    • Fuzzy Shading
    • Micro Shadows
    • And more with additional modules..
    Converting to MicroSplat is incredibly easy. Just add the MicroSplatTerrain component to any number of terrains in the scene, press the conversion button, and MicroSplat will read the textures off the existing terrain and set everything up for you. If you don’t have a full set of PBR based textures available, MicroSplat will generate the missing data for you.



    MicroSplat can be expanded with additional modules, each of which adds features to the core package.
    Bonus integration module for Vegetation Studio included in the free Core module.

    MicroSplat is unbelievably fast, often several times faster than competing shaders with the same feature set turned on, and is optimized for both high end and low end hardware. MicroSplat uses a unique shader generation system which re-writes the shader code based on what features are selected, so all features not in use are compiled out of the code, ensuring that you only pay for what you use. MicroSplat is based on a new shading optimization technique which greatly minimizes the amount of work the shader has to do verses traditional techniques. In many cases, there is so much headroom available that you can turn on complex features like Tessellation, Triplanar, and Distance Resampling and still be much faster than other shaders.



    MicroSplat requires support for Texture Arrays, which are not available in OpenGLES 2.0, DirectX9 or WebGL 1.0. Minimum Unity Version 5.6.

    A Discord channel is available here.

    Modules:

    MicroSplat is infinitely expandable via custom modules, each of which adds many new features to the system. Some videos of these in action are listed below:

    The Tessellation and Parallax Module for MicroSplat adds support for GPU based tessellation and displacement, as well as Parallax Offset Mapping for tessellated and non-tessellated surfaces. When enabled, a simple set of controls is available to control the tessellation, displacement, and parallax globally, or via per-texture controls.



    The Terrain Blending module for MicroSplat makes blending meshes with the terrain incredibly easy. No messing around painting transitions, trying to get various shader parameters to line up, or being forced to use special shaders for your meshes. Simply turn the feature on in your terrain, press a button to generate the needed data, and add a component to any mesh which you want to blend to the terrain.

    Each mesh can have its own blend controls, allowing you to tweak the overall effect on a per mesh basis. Any changes to the terrain shader automatically propagate to the meshes, and adjustments to the mesh object position update the blend in real-time.

     
    Last edited: Jul 29, 2020
  2. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    The Dynamic Snow module for MicroSplat adds snow to your scenes. Easily have snow build up on the scene, age and turn icy, and melt over time.
    Integrated with the World API for control by various weather systems.



    Anti-TIling

    The Anti-Tiling module for MicroSplat adds a collection of techniques to add large and small scale details to surfaces to increase effective resolution and hide texture tiling. Features added include:

    • Normal Noise. Choose up to 3 normal textures to blend into each texture on a per texture basis
    • Distance Resampling, a common trick to prevent noticeable tiling on terrains, optimized to be extremely fast for MicroSplat
    • Detail Noise, which blends a detail texture into the terrain at close distance
    • Distance Noise, which blends a macro texture into the terrain on distant areas
    The strength of each texture can be controlled on a per-texture basis.

     
    Last edited: Apr 10, 2019
  3. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
     
    Last edited: Apr 10, 2019
    Seneral, treshold, Baldinoboy and 5 others like this.
  4. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Texture Cluster Module




    Wind and Glitter:

     
    Last edited: Dec 26, 2017
    Seneral and Alverik like this.
  5. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Runtime Procedural Texturing:



    Mesh Terrains:



    Mesh Workflow



    Mesh Vertex Workflow:



    Optimizations
     
    Last edited: Feb 17, 2020
    jonfinlay likes this.
  6. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,394
    Looks great.
     
    antoripa and jbooth like this.
  7. MortenGulden

    MortenGulden

    Joined:
    Mar 15, 2015
    Posts:
    19
    Fantastic! Congrats, and thank you!
     
  8. mons00n

    mons00n

    Joined:
    Sep 18, 2013
    Posts:
    304
    Is the only real difference between mega and micro the modularity? Or is the workflow different as well? In other words, for someone who already owns mega is there any reason to pick up micro? Either way looks great!
     
    malkere likes this.
  9. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    The simplest way I can explain it is:

    MicroSplat - 32 textures, free with (paid) expansions, focused on ease of use. I make many decisions for you.
    MegaSplat - 256 textures, paid, focused on exposing all the options and tradeoffs

    Additionally, the two shaders have quite a different look and performance characteristics due to fundamental technology differences. Your needs will dictate which one makes sense for you. MegaSplat also has a much larger feature set, in that it has mesh based workflows, where as MicroSplat is really a replacement for the stock Unity terrain shader.
     
    Last edited: Nov 18, 2019
    malkere, antoripa, DominoM and 2 others like this.
  10. mons00n

    mons00n

    Joined:
    Sep 18, 2013
    Posts:
    304
    Thanks for the explanation!
     
  11. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Fantastic, Jason! As much as I love MegaSplat, this may actually be a better choice for some of my projects, especially those on the Wii U. Except last time we talked you said it required Unity 5.6. Is that still going to be the case or can this be made to work on 5.5?
     
  12. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Unfortunately it won't work on 5.5 because I take advantage of some 5.6 features for the new PerTexture property workflow.
     
  13. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Ugh! All my hopes dashed again. lol. Well, maybe we can get an answer to the texture array gradient sampler issue from the Unity guys soon. Or maybe they'll give us a 5.6 version soon. Here's hoping.
     
  14. teutonicus

    teutonicus

    Joined:
    Jul 4, 2012
    Posts:
    71
    Looks awesome and I can't wait to see the texture packer (and hopefully some day the improved texture blending modes) in MegaSplat too. Being able to use Substances directly is a huge plus for me as it saves an extra error-prone step in my asset pipeline. Keep up the awesome work!
     
  15. evilangel89

    evilangel89

    Joined:
    Feb 8, 2017
    Posts:
    269
    Jason, would you mind adding the geometric blending to megasplat as well ? It's something some of us really wanted in it.
     
    WildStyle69 likes this.
  16. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    The port of the texture packer and upgrade to 5.6 need to come first, then I'll look into the feasibility of something like this. Basically, the technique used here isn't directly applicable to all of MegaSplat's workflows, and would likely only be able to be done with Unity terrains instead of arbitrary meshes.
     
    WildStyle69 and evilangel89 like this.
  17. evilangel89

    evilangel89

    Joined:
    Feb 8, 2017
    Posts:
    269
    Thanks. Sounds good. I actually use Unity Terrain.
     
  18. antoripa

    antoripa

    Joined:
    Oct 19, 2015
    Posts:
    1,163
    Great asset
     
  19. sylon

    sylon

    Joined:
    Mar 5, 2017
    Posts:
    246
    Wow Jason, this is awesome.
    It's like you listened to my questions about MegaSplat and made me a custom solution.
    Can't wait to try it out.
    Thanks for the good news.
     
  20. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    This was submitted, along with the following modules, tonight:

    MicroSplat Core
    MicroSplat - Tessellation and Parallax Module
    MicroSplat - Terrain Blending Module
    MicroSplat - Anti Tiling Module
    MicroSplat - Dynamic Snow Module
    MicroSplat - Global Texturing Module

    This process usually takes about a week.
     
    maxaud, Nateply and mons00n like this.
  21. evilangel89

    evilangel89

    Joined:
    Feb 8, 2017
    Posts:
    269
    Hi Jason,

    Am I right in assuming you'll be bringing the same modularity to megasplat along with most of the modules ?

    Will the modules be available for free for megasplat users ?

    I own megasplat and I bought it back in the day to support you, but personally find that I don't have the need for a complex shader as such and Microsplat's 16 textures are probably enough for me. But if I have to purchase all of this over again, it's a waste on my part.
     
    Last edited: Aug 10, 2017
  22. iddqd

    iddqd

    Joined:
    Apr 14, 2012
    Posts:
    501
    Does megasplat also have mesh blending?
     
  23. evilangel89

    evilangel89

    Joined:
    Feb 8, 2017
    Posts:
    269
    No. Not yet at least.
     
  24. donov

    donov

    Joined:
    Apr 15, 2013
    Posts:
    55
    Can I somehow still use this with ASE shaders
     
  25. iddqd

    iddqd

    Joined:
    Apr 14, 2012
    Posts:
    501
    @jbooth will mega also get it? :)
     
  26. evilangel89

    evilangel89

    Joined:
    Feb 8, 2017
    Posts:
    269
    @iddqd quoted above is Jason's response to the same.
     
    iddqd likes this.
  27. wmpunk

    wmpunk

    Joined:
    Sep 5, 2015
    Posts:
    71
    I already own CTS/RTP/Megasplat and now you have to go ahead and give me another option? I will never decide on a terrain shader to use.. but seriously very cool!.

    Now I know you said that POM wasn't really a option for Megasplat, but would it be for this shader? Also I really like Megasplat but my biggest grip is that it is difficult to work with because it has no support from any terrain tool authors (Except MapMagic, great integration). Since the micro-splats visual styles are essentially the same, do you think that this would work well as a design placeholder to use with a terrain editor like TC2 for Megasplat conversion later on?
     
  28. Kolyasisan

    Kolyasisan

    Joined:
    Feb 2, 2015
    Posts:
    397
    The same over here. This is quite a dilemma actually.
     
  29. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    I've never been a big fan of POM because of the combination of expense and artifacts it can create. However, you could likely add POM to this shader, and lower the Blend Quality to Fastest so you only have to raycast through two height fields instead of 4.

    Part of the reason I created MicroSplat was created is that MegaSplat is kind of an "All in" option. It requires too much for some users to swallow, in that you are replacing the entire texturing workflow- new tools, new format, etc. And with the exception of Dennis from Map Magic, that was apparently too much for many of the terrain tools authors as well. So MicroSplat works within the Unity format, and for the most part doesn't need integrations (it may want them for runtime generation tools, but that's another thing entirely).
     
    wmpunk likes this.
  30. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Well, MegaSplat already has many of these features. I'm not exactly sure where the line will be between extending MegaSplat for free and turning it into a module based system. For now, I have enough I want to do with MegaSplat that it's not a high priority to figure that out until I get that done.

    The problem with the traditional asset store business model is that you don't really have a way to get paid for additional work- this is usually fine when sales are going up and additional work pulls in more users, but it's also the reason many assets at some point just sort of die- adding new features no longer becomes a valid way to increase sales, so doing the work makes the author no additional revenue, and they lose interest or move on to other things. I've continued to add things to MegaSplat well beyond that point, because it's as much a personal interest project to me as anything else.

    Anyway, going modules adds a bunch of cool bonuses to the system:

    1. I am monetarily motivated to add awesome new stuff
    2. Authors other than myself can also add their own modules. I have some other graphics coders who are writing modules right now.
    3. The user only has to pay for what they need, so the overall package price is often less.
    4. The free base package pulls in more potential users
    5. I can allow content authors and other asset store developers to use the base shader in their assets. I'm working on providing them with a stripped down version that they can use, which gives them a better shader to use in their demos, while giving me advertising for the main product.
    6. I get a form of analytics about what people are using. This really bothered me in MegaSplat, because it's a massive feature set, and I have no idea which features people are using the most. (Unity does not allow us to put analytics into asset store packages).

    These are mostly win/wins, but there are some downsides as well:

    1. More marketing (I hate doing all the asset store images, etc, so this really increases the amount of it I need to do).
    2. Potential confusing from potential users about the module approach
    3. Sync issues with updating. Right now, MicroSplat validates that the module versions match to prevent errors, but will disable modules if the versions don't match. So updating means updating all the modules, and currently there's no way for me to strictly enforce that people do that or enforce that the asset store releases them all at once.

    I believe I'm the first person to go with this type of approach, but I think it makes a lot of sense in the world the asset store is moving into, where people expect assets to grow in usefulness over time, and integrate seamlessly with other assets.
     
  31. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Well, it does, but not in the "Click a button and it just works" sense. It can actually do mesh vs. mesh blending as well as terrain vs. mesh blending, but it's all very fiddly and manual.
     
  32. blitzvb

    blitzvb

    Joined:
    Mar 20, 2015
    Posts:
    284
    does MicroSplat support mesh instead of terrain?
     
  33. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    No, it's designed for Unity terrains. MegaSplat, however, supports Mesh based workflows..
     
    blitzvb likes this.
  34. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    @jbooth So MicroSplat core package is free, but what are you charging for the individual modules? I really like the idea of MicroSplat and it could definitely be a great fit for some future projects.
     
  35. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Depends on the module, but most are around $10.
     
    antoripa likes this.
  36. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Megasplat was largely swatting a fly with a nuke for me and it didn't make sense. This looks like something quite workable, and I wonder if it will work on meshes as well? for example we might prefer to use mesh terrains or want a complex wall piece... wondering what the perf would be like on something like the nintendo switch?
     
    antoripa likes this.
  37. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Excellent. That's what I was hoping for. I'm thinking I'd like the following modules myself:

    • Mesh Terrain Blending
    • Anti Tiling Techniques
    • Dynamic Snow
     
  38. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    I think that's a pretty apt analogy for many people, which is why creating something lighter and simpler made sense to me.

    In terms of performance, you're not going to find anything faster out there right now when using the same feature set.

    The shader will technically work on Meshes, but since it's designed for Unity terrains, it won't read the tangent data from the mesh, and there are no painting tools available to do mesh based workflows.
     
  39. Kolyasisan

    Kolyasisan

    Joined:
    Feb 2, 2015
    Posts:
    397
    Seriously, I just cannot believe that microsplat, with all the advanced features enabled, is practically as fast as Unity's default shader and miles away faster than other advanced shaders. Can't wait to test it already.
     
  40. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Test it for yourself. Report back your results. You will believe..
     
  41. one_one

    one_one

    Joined:
    May 20, 2013
    Posts:
    621
    Any plans for compatibility with Terrafirma (as it's mesh-based)?
     
    mons00n likes this.
  42. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Talking to the author about it.
     
  43. blitzvb

    blitzvb

    Joined:
    Mar 20, 2015
    Posts:
    284
    And why not a paid mesh module?
     
    pixelsteam likes this.
  44. olavrv

    olavrv

    Joined:
    May 26, 2015
    Posts:
    515
    Mesh terrain module would be awsome!
     
    antoripa likes this.
  45. evilangel89

    evilangel89

    Joined:
    Feb 8, 2017
    Posts:
    269
    I wouldn't say you were the first to go for an addon approach on modules because I see this a lot, but in controllers. For instance they would go with addons for swimming, magic packs, archery etc etc with the base controller doing only something as simple as movement but this is a powerful and extensible core. But from what I understand you are the first to do this on a terrain shader, which I find pleasantly interesting and welcoming. Not to mention the idea is quite powerful in terms of extensibility.

    I wouldn't think megasplat's base code can go for free though, it's a lot of time and effort on your part and my god man I can't believe you gave away your vertex painter for free. I would still sell it but the rest of the features, for instance the foams that you added to give the river flow on puddles was one hell of a feature and I would still have gladly paid the extra money for it.

    We're all driven by the motivation to earn at the end of the day : )

    All in all though I believe megasplat deserves the modular love and I certainly feel it'll be rewarding. But it's entirely up to you and where you get most of your earnings from.
     
    Alverik likes this.
  46. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Ha, well most of my earnings don't come from here. UAS stuff is mostly just for fun, all the money I earn here goes into a fund for vacations, charities we support, or stupid fun stuff. MegaSplat was almost a free extra for the vertex painter, but I figured selling it would get more attention to the vertex painter and would allow me to justify spending more time on it than would otherwise allow.
     
  47. olavrv

    olavrv

    Joined:
    May 26, 2015
    Posts:
    515
    Addons is a brilliant solution in my opinion, it gives the end user scalability both in terms of cost and features in relation to current and future needs.

    Many assets we have purchased is just for certain features, and then we have to pay for all the other features that we don't use.

    Good move Jason, and Microsplat looks amazing!
     
    jonfinlay and evilangel89 like this.
  48. AlwaysBaroque

    AlwaysBaroque

    Joined:
    Dec 20, 2014
    Posts:
    33
    @jbooth I look forward to trying this awesome looking new flyswatter, brilliant move on the module approach.
    Anything on the roadmap or are you waiting for user feedback?.
     
  49. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    I have a few other modules finished, but haven't done the marketing images and such for them yet. I will likely finish them up soon and switch back to some MegaSplat work for a bit while people play with the package and provide some feedback.
     
    evilangel89 likes this.
  50. Gray_Master

    Gray_Master

    Joined:
    Jun 20, 2010
    Posts:
    152
    Hm. Awessome Asset as i look. May be autor set base version link on your web - site too ?
     
Thread Status:
Not open for further replies.