Download

Texture Creation Best Practices?

So I have just a couple questions or things I still need to understand in texture creation.

Say we have a spear, wooden pole tipped with a metal point. So two completely different PBR surfaces. I understand I can pump up the metallic or specular and make it look like metal all nice and shiny and reflective. However if I am making this model on one UV wrapper or DF texture then this also makes the wood have the same properties and look odd/off.

Now I know I could make the Metal tip of the spear and the wooden pole of the spear two separate materials. So I could isolate each and make each look correctly in there properties IE reflective or not etc. However I know in UE3 this would mean the model is being rendered twice. IE for each material on a model it is rendered in the engine again and again etc depending on the # of materials. Is this still true? If so when it comes to budgets and optimizations isn’t this something you would want to avoid, its such a simple texture why wouldn’t you put it all on 1 UV.

So if the above is correct is there a way to mask out the metal bits from the wood bits and provide properties to each of them accurately? So far my experience with alpha’s and masking this is not really the case. The whole texture is still there and will have either metal or wood properties applied to it…

How do other people handle this, what are the best practices? do you just say screw it render the model twice? Or is there another trick I need to learn?

personally if I was making a model that was part metal and part wood I would just use a black and white texture plugged into the metallic node to make the metal look like metal and wood look like wood, I would do the same thing for the roughness and specular.

Hi OSIAS,

This is still the case. When using a Multi-sub-object and using separate materials like that it is using a draw call for each material.

I don’t think you would be too hard pressed with optimization by using this single model as a multi-sub-object, especially if it’s a main focal point or a weapon that is used.

I’ve not brought a lot of my models and textures over to UE4 yet but this is something I’d like to look into as well. One of my projects had a lot of hospital equipment. The gurney I made would be a good test for me to see what’s the best solution for this as it had a cloth/rubber padding and metal frame.

I’ll have to test this out when I get home and can look at those assets.

Great question though, especially for new users!

Tim

Smokey,

Can you elaborate? Is there a tutorial anywhere that will visually discuss and show what your talking about?

Tim,

I used the spear as an example so people would understand the core question. Yes if it was a 100 poly spear I am not gonna care or worry that much about rendering it twice or how it affects budget. But what about something more along the lines of a wagon, mostly wood and then decorated with all sorts of shiny metal bits. Wagon Bling Baby, Gansta’s of the west!! How would you do it then?

I am just trying to understand fundamental best practice approaches so when I go to create something I keep this in mind. Is what Smokey is saying is a type of mask? instead of assigning a 0-1 value for the entire material, the depth of the black or white and where they are located determines this 0-1 color? So basically just make a second UV black and white texture to house those values? Is there a fast down and dirty easy way of creating these?

Doing the texture mask “should” work. I’ve not tested it or done anything with it before. The mask is essentially a black or white (0 or 1 value). I can try this a little later on and see if something like that would work. I’ll post some images once I get to it and test if someone doesn’t beat me to it. :slight_smile:

Tim

I cant help with the tutorial but I will elaborate a bit:D.

first here is a basic reference image (ignore how bad it is:p, its from an old test project).

as you can see the silver in the middle looks like metal but the blue paint/tyre tread doesn’t, basically anything you want to look metal is white or very light grey for dull/dirty metals and anything you want to be non-metal is black or in my case very dark grey because i wanted a little hint of metallic in the paint. you can also use low res textures for the metallic map as well instead of a full res version like I did in that pic.

hope that helps:)

You can have even more control if you use that mask as the alpha of a Lerp node and use values for black and white parts.

I thought I’d add from two articles I learnt something to think about anyway

Have a look at layered materials. They were made for this issue specifically.

In regard to performance, wouldn’t something like Quixel Suite help with this? It allows you to combine various texture types, through a color map, into one master texture.

Yes I agree its a tool that you can add to your tool bag.

this is brilliant, never would have thought to do it like that. Thanks man.

Thanks smokey that’s the answer I was thinking made the most sense.

your welome:)

Okay I got some time to play with this and to me it would only make sense that you should be able to plug this black and white values into other items if your pulling the PBR stats of the item. Metallic , specular , roughness its just a # value 0-1 which you can pull from a color value right.

It does seem to work correctly for metallic and specular but not for roughness though. Maybe I am wrong about it working for specular but it seems to me that its working. I see a gleam or reflection where I expect it and none where I wouldn’t. IE metal shines and wood is dull.

Maybe I am thinking about this incorrectly though, but why wouldn’t roughness be able to take these same values through a texture black and white data. When I plug in a black and white to roughness it just seems to make everything dull.

If you cant mask it this way breaking apart the metallic vs wood through a black and white makes no sense if I still have to make everything rough or everything smooth. I feel like I am 90% of the way there and just missing something.

Edited to Add Dahmir you said “layered materials” can you provide a link? I know masking but layered is evading me. I also don’t see how masking is going to do this if I cant use a 0-1 color scale on roughness.

As i said before, use that texture as a mask to lerp between the max and min roughness/metallic values of your material. You don’t need to be bothered with specular, btw.

Well I found a layered material tutorial - doesn’t seem to do exactly what I am wanting, or again I could just be confused.

Why don’t I need specular?

Okay I think I understand what your saying, I have to convert that material into the values I can not just plug it directly in, I have to define the min and max etc. Hmm I will see about this.

That’s assuming your material is a single real world material. If your material is made of different real world materials that each vary in their reflectance value, then you could use a mask in the same way that you would use with metalness.
Though most nonmetallic solid materials have roughly the same reflectance value, but for anyone who wants to get real picky.

Okay so dug into layered materials and PBR Discussions on this forum and I think I have a better understanding - but things still seem odd or off per all “experts” and there forum discussion, articles and then epic saying how there PBR system works. However here goes,

Layered materials - This isn’t what I want to do in most instances because I can separate the physically distinct layers via the UV wrapper. Making a second draw call and a second material - however its going to be less of a burden on the engine then doing a layered material. Layered materials is for when you only need per pixel blending control. However I have to be honest the mask setups to get that per pixel control evades my understanding. Which leads me to…

Black and White Metallic Mask - Jacky said use that as a mask and lerp it between the 1-0 to give you your roughness value on a per pixel basis across the material. Now I totally understand what your saying to do. I just do not know how the Material editor wants that setup to work correctly. All of my attempts either do not provide the results expected - dims the entire material - has an error on the material node or on the lerp node. Do you have a screenshot of this black and white mask being used with roughness through a lerp so I can visually learn it?

So this is confusing me - most articles just say make a second material. However I would think masking makes sense on metallic - nothing goes into specular and use this mask for roughness. Again I think I am right there just need a little more help.