Search Unity

  1. Full schedule for #UniteBerlin is now available! Featuring talks on our roadmap, hands-on labs and much more! Check it out!
    Dismiss Notice
  2. Unity 2018.1 has arrived! Read about it here
    Dismiss Notice
  3. Scriptable Render Pipeline improvements, Texture Mipmap Streaming, and more! Check out what we have in store for you in the 2018.2 Beta.
    Dismiss Notice
  4. ARCore is out of developer preview! Read about it here.
    Dismiss Notice
  5. Magic Leap’s Lumin SDK Technical Preview for Unity lets you get started creating content for Magic Leap One™. Find more information on our blog!
    Dismiss Notice
  6. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice

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

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

  1. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    2,659
    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
    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
    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.

    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 the shader generation system designed for MegaSplat, 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 terrain shading optimization technique which greatly minimizes the amount of work the terrain 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 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.1p2.

    A Discord channel is available here.

    Modules:



    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 terrains. 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 it’s 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: Apr 17, 2018
  2. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    2,659

    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: Aug 9, 2017
  3. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    2,659






     
    Last edited: Sep 24, 2017
    Seneral, treshold, Baldinoboy and 5 others like this.
  4. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    2,659
    Texture Cluster Module




    Wind and Glitter:

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

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    2,659
    reserved..
     
  6. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    1,162
    Looks great.
     
    antoripa and jbooth like this.
  7. mortengulden

    mortengulden

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

    mons00n

    Joined:
    Sep 18, 2013
    Posts:
    189
    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:
    2,659
    The simplest way I can explain it is:

    MicroSplat - 16 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.
     
    malkere, antoripa, DominoM and 2 others like this.
  10. mons00n

    mons00n

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

    magique

    Joined:
    May 2, 2014
    Posts:
    2,841
    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:
    2,659
    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:
    2,841
    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:
    14
    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:
    264
    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:
    2,659
    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:
    264
    Thanks. Sounds good. I actually use Unity Terrain.
     
  18. antoripa

    antoripa

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

    sylon

    Joined:
    Mar 5, 2017
    Posts:
    136
    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:
    2,659
    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:
    264
    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:
    293
    Does megasplat also have mesh blending?
     
  23. evilangel89

    evilangel89

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

    donov

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

    iddqd

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

    evilangel89

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

    wmpunk

    Joined:
    Sep 5, 2015
    Posts:
    63
    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:
    191
    The same over here. This is quite a dilemma actually.
     
  29. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    2,659
    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:
    2,659
    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.
     
    Alverik, evilangel89, Nateply and 3 others like this.
  31. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    2,659
    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:
    283
    does MicroSplat support mesh instead of terrain?
     
  33. jbooth

    jbooth

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

    magique

    Joined:
    May 2, 2014
    Posts:
    2,841
    @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:
    2,659
    Depends on the module, but most are around $10.
     
    antoripa likes this.
  36. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    21,792
    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:
    2,841
    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:
    2,659
    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:
    191
    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:
    2,659
    Test it for yourself. Report back your results. You will believe..
     
  41. christoph_r

    christoph_r

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

    jbooth

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

    blitzvb

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

    olavrv

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

    evilangel89

    Joined:
    Feb 8, 2017
    Posts:
    264
    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:
    2,659
    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:
    194
    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. Boz_1

    Boz_1

    Joined:
    Dec 20, 2014
    Posts:
    25
    @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:
    2,659
    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:
    92
    Hm. Awessome Asset as i look. May be autor set base version link on your web - site too ?