[Free] Landscape automaterial with manual painting


I am quite new to UE (started around 3 weeks ago:D) and gamedev in general. But I felt in love with the tech and the community. I’ve learnt a lot from what others have been posting here and in other places and wanted to give back something to the community. I’ve created simple automaterial for landscape painting based on slope and height and which allows for manual painting as well. I’ve tried to make it easy to extend and modify in the future so I’ve divided the material between multiple material functions: set of functions for layers, set of functions for auto-paiting layers and a set of helper function that make it happen.

Current features:

  • manual & automatic painting
  • 4 textures for manual painting and 4 textures for automatic painting (extensible to more)
  • Automatic painting based on height and slope
  • UV Mixing (anti-tilling)
  • Nosie-based anti-tiling (detail)
  • tesselation/displacement map
  • easy to extend :wink:

Feel free to suggest additional features, I’ll try to add them.

The master material looks like that:

Example output looks like that:


Link to the project: GitHub - BartoszBroda/LAMA: Landscape automaterial with manual painting for Unreal Engine 4

I hope someone will find use for LAMA. I would be very grateful for feedback as well.

If there will be interest in this I will describe the project in greater detail…

Some current LAMA limitations:

  • Default textures used with LAMA are not ideal. For small size of repo I used only 1k textures and packed displacement maps myself. Displacement maps for them are not perfect (I might have messed up something while packing them up.
  • Only 1 automatic layer is using slope blending.
  • Auto-textures are not reused for manual painting. It would be trival to do in one big graph, but I’m thinking of more elegant way to do it :). Please share if you have idea how to accomplish it and I’ll add it to LAMA.
  • The transition between auto-layers based on height is gradual, but boring. I am thinking on a way to add some kind of noise that would simulate e.g., snow melting with different speed in differnt places (not in a uniform way like now). If you have some ideas how to add it - let me know.