Why create one material per wall panel and object? Can't they be re-used?

It doesn’t seem quite right that you have to copy a material in order to get it to correctly apply to a mesh, does it? Is there no way to apply one material to multiple objects and have the tiling properties a function of the object and not the material? Otherwise you have to duplicate the same material several times even though it is really the same thing. Wouldn’t this create a bunch of unnecessary materials that are essentially copies of each other with nothing more than the UV tiling changed?

ie: I want a drywall material to put on all of my room’s walls. I’ve scaled my walls in various ways to fit the layout I want. I want to use one material on all of those walls instead of having to create one for each wall panel because one wall panel might be scaled slightly differently than the other one.

If there’s no way to do this, should materials then be thought of as something unique to an object instead of something unique to an appearance? Let me know if that doesn’t make sense.

I used to work in the Source engine and while working with the BSP brushes you could tell the brush how to tile the material you’ve placed on it. Is there no way to do something similar in UE?

3 Likes

Something I thought of: is it because we’re dealing with static meshes and not CSG? Essentially the walls are models, not BSP brushes. Is that it? I’m new to mesh-based world building :confused:

I’d really like to know the answer to this as well. It seems so weird that you need to duplicate a material for every differently sized object. It’s not so bad with 4 walls and 5 segments, but if I had hundreds of walls and segments all of different sizes, would I really need to copy the material hundreds of times and keep track of each pairing?

Edit: It looks like the answer to our question is in Instanced Materials. You can create scalar parameters for UV-tiling and edit them separately in each instanced material. Still seems more cumbersome than I’d like, but seems to solve the problem.

4 Likes

Interesting. Nice find! I agree that it still feels a little cumbersome. Now if you change your wall size or something you have to also change the material in a totally different part of the editor. Cumbersome, but still better than copying materials all over the place.

Thanks for hunting this down!

I’m in the same boat cdunlap, I feel like the wall instance should have it’s own U/V tile scalars like in Source.

Amperian’s answer is good, but it contains a link to an even more clear answer, I’ll link it incase others miss it: https://answers.unrealengine.com/questions/19412/can-texture-coordinate-parameters-be-applied-to-ma.html

Though this doesn’t really avoid the whole “creating content for each instance” issue, I hope there is an update to UE in the future for this.

Privacy & Terms