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

Does the new Low Poly Look module support already LWRP (with the MicroSplat LWRP module)?

And does the Low Poly Look and LWRP modules maybe support the Unity 2019.2 beta by any chance?

It works in LWRP, but I don’t test in betas…

Thanks, good to hear that there’s already LWRP support.

Or has anybody else maybe tried MicroSplat in the Unity 2019.2 beta (LWRP)?
[Update] It seems that the 2019.2 just got out from beta today, so I assume 2019.2 support is coming soon

Hi Jason, I have twice now run across an issue with terrain blending, and I think I understand the source of the problem well enough to prevent future issues - maybe others here will benefit:

I use microSplat with Map Magic. In order to integrate them, I followed Denis’s guide, which shows a workflow that is not a conversion from an existing terrain - that is, he manually creates the Texture Array, adds a microsplat shader, and creates a new material for it.

In this case, he names his material differently from the shader, which leads to issues when the terrain blending code tries to make a blending material on compilation. See relevant code -

MicroSplatShaderGUI_Compiler.cs: 568
MicroSplatTerrainEditor_TerrainDesc.cs: 211

the compiler will create a ‘MicroSplat_TerrainObjectBlend.shader’ but the TerrainEditor will look ( in my case ) first for a ‘PrimaryMaterial_TerrainObjectBlend.mat’, and failing that, will look for a ‘PrimaryMaterial_TerrainObjectBlend.shader’ to use to create the material. It will fail, and there will be no material associated.

Proposed solution:

MicroSplatTerrainEditor_TerrainDesc.cs

216 //string shaderPath = path.Replace(“.mat”, “.shader”);
217 string shaderPath = AssetDatabase.GetAssetPath(bt.templateMaterial.shader);
218 shaderPath = shaderPath.Replace(“.shader”, “_TerrainObjectBlend.shader”);

maybe I am missing some implications here - it seems to work for me.

Yeah, I like that… Going to have it check for both just in case…

Hi Jason, undoing changes in material sliders seems to not update the effect, only values !
Could you please check this and fix if possible. Thanks !

Got a couple more requests !

  1. Prevent microsplat from creating new layers for each added texture in case the terrain has already added a layer with same textures ( if terrain has a layer based on an albedo and normal map, a new layer is still being created )

  2. Being able to load textures based on an existing layer - may be drag and drop a layer into a MicroSplatConfig slot and use that layer as well to add it to the terrain. Got so many copies of the same layers now because we are relaying on many terrains for different levels. Could this get optimized ?

Thank you !

Hello

I wany to buy and use only the triplanar shader. I’m working in lwrp, i have to but microsplat lwrp version and then triplanar shader or just one of these?

Thanks for help.

You’d need both.

Yes, I’m using Microsplat LWRP in 2019.2 and looks great. Running on iOS in metal.

Here’s a render using LWRP. Microsplat + Crest + Massive Clouds, all supporting LWRP for some amazing volumetric nuance that runs well on iOS (modern devices.) Particularly loving the subtle color variations in the ocean.

Update: Due to 2019.2 and a high amount of bloat with my terrains tools and messy terrain updates I have decided to leave all terrain related stuff behind for now but I’ll leave these issues here for you in case any other users reports them.

Hi!

  1. I have opened up the demo scene and I can’t seem to get shadows to turn on, any idea what it could be?
  2. The self shadowing is really strong, the terrain looks quite dark, any way to fix that?
  3. I am trying to use the blending module and I am getting this error attached, I use 2019.2:
  4. There’s a strange error but I could be maybe not related to microsplat maybe new terrain.
  5. I have mega splat but I haven’t used it in 2 years. Would you say it’s gotten better especially in performance and I had issues with object blending at the time with it hence why I went to microsplat, do you think I should stay with microsplat or has mega gotten a lot better?



  1. I will check this out as it may be a 2019.2 thing- that said MicroSplat contains no lighting or shadowing code because it’s a surface shader.
  2. Ambient lighting, etc…
  3. I’ll see if it repro’s for me, as 2019.2 just shipped I haven’t tested it yet.
  4. MicroSplat is faster than MegaSplat, and I would recommend it for terrain work. MegaSplat continues to be popular for mesh based on voxel based workflows…

I am using last version of MicroSplat (2.65) and Unity 2019.1.10.
Everything works in editor, but in build crashes.
I create terrain from script, when I add MicroSplatTerrain script to it and call MicroSplatTerrain.SyncAll() the error occurs in MicroSplatTerrain.Sync() at the line
if (keywordSO.IsKeywordEnabled(“_CUSTOMSPLATTEXTURES”))
because keywordSO is null.
The old version of MicroSplat (cannot remember exactly, maybe 2.2) worked fine

If your creating terrain from script you’ll have to assign the keyword object as well. It didn’t exist in 2.2, as I used unity’s shader keyword system instead, but using my own system allows for unlimited keywords.

Thank you for reply. Yes, it works.

Sorry for my Bad English. Work the Tesselation on LWRP with the LWRP Addon from Microsplat ?
Or work only LWRP Addon with the Core ?

It did, but it looks like the newest LWRP breaks it so I’m working on a fix.

1 Like

@jbooth_1

LWRP was deprecated in Unity 2019.3 in favor of URP which basically uses the same sources moved to a new package. I had to replace all occurrences of “com.unity.render-pipelines.lightweight” with “com.unity.render-pipelines.universal” to make MicroSplat LWRP being compatible with URP.

Yeah, but as 2019.3 is in alpha it doesn’t seem like the right time to do that upgrade. Not exactly the “stable” pipeline they promised.

1 Like