UE4+Quixel - Easily create layered materials

Hey, hi, hello,
I have 8km*8km tiled terrain and would like to paint it with quixel materials.
As you can image, I want to paint many different materials based on the design of concrete locations, e.g.:

  • paint rock, dirt and snow on mountains
  • paint sand, grass, mud in valleys
  • paint some ash in a burned village
  • etc…

Quick questions to begin with:

  • What are the best practices when managing material(s) for such a big terrain?
  • Is it possible for each tile to have its own material? Does this help with performance?
  • I noticed that if I paint layer from one tile to other, the target tile turns grey and the engine starts compiling shaders. Does this mean that ue4 manages tile layers automatically?

Moving onto the feature request:

Use case

  • quickly create, manage and iterate over layered material (based on the materials from quixel)
  • easily blend layers (automatically or based on simple rules)
  • user-friendly (noob) approach

What I have found

  • When importing materials from quixel, it creates a folder containing texture, maps and material instance for each of them
  • It’s not possible to create layered material from material instances
  • Layered material needs to be created manually using all of the required textures and maps via a “Layer Blend” node, where you click yourself to death while setting up the array. Such material is hard to manage, navigate in and understand.
  • ue4s quixel plugin allow creating material from up to 4 other materials using vertex painting. Individual materials are painted via channels. This is not sufficient for my use case, as I want to paint much more than 4 materials.

Suggestions/possible solutions/feature requests

  • Currently, you can’t drag&drop materials to the material editor. I suggest allowing this. Resulting material could be compiled “inline”, using definitions of the source materials = it could be the same as copy-pasting nodes from individual materials and placing them directly to the resulting material.
  • Simplify managing layered materials. Instead of having some very long “Layer blend” node, it could be easier to e.g. drag&drop material on other material in the content browser and it would automatically create a layer for it (or it would pop up a dialogue asking if you want to create a layer, vertex paint, etc…)
  • Add functionality to edit material layers in the properties tab (the one on the right used for configuring objects) and to be able to simply drap&drop/delete materials to/from it.
  • Add functionality to paint the whole landscape material or a subset of layers at one time. This would paint and blend the layers automatically (e.g. based on normal maps, slope, height,…)