Hi folks,
I know similar questions have been asked, but it has been a few years and with UE5 in beta I figured I should ask again, because I generally wasn’t satisfied with those answers or what I could find myself.
I’m an experienced programmer, but total beginner at game development, this is my first time with a game engine, so thanks in advance for putting up with me:
I’m using some megascans surfaces for my terrain and I noticed that the tiling is really obvious.
This seems like a nearly universal problem, so I was a bit surprised that there wasn’t a simple out-of-the-box solution, like having terrain take both a material and a surface imperfection albedo mask.
The tutorials I watched all had people making custom materials and just sampling the texture assets from other materials, which bothered me because it isn’t reusable and violated DRY.
I wanted to be able to apply my macro variation to any existing material with a point and click.
I attempted to make a new layered material that simply applied a macro variation technique (from tutorials) to the layers output, but I discovered that I couldn’t add a material as a material layer. But I knew that material layers can take parameters, so I decided to make a material layer that took a base MaterialAttributes; but a material layer can only have a single MaterialAttributes input (the output of the previous layer). So I decided to just make a regular material that took a base MaterialAttributes param that I could then modify, but it wouldn’t let me add a MaterialAttributes as a material param.
I could make a new material that accepted texture inputs for all the MakeMaterialAttributes, but that would both be tedious to use, and assumes that the material that I want to blend with has no logic and was created entirely from the texture maps.
Is the only way to modify an existing Material Instance really to sample the all the existing material’s texture map assets, modify the texture inputs, and then send them to a MakeMaterialAttributes? it seems so unnecessarily convoluted and unreliable, for something that seems like a common and simple issue, so I’m worried that I’m simply missing something.
Maybe blending materials is only the kind of thing a beginner would want to do, so UE didn’t bother with an OOTB solution?
Did I miss or misunderstand something? Are there any new techniques for blending a material with an albedo mask, or accepting MaterialAttributes in a Material/MaterialLayer?