🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

3d Models - Sci-Fi Buildings - Do I really need all the texture maps?

Started by
6 comments, last by Gian-Reto 7 years, 5 months ago

Hello Everyone!

So I'm designing out some unique sci-fi buildings for a game we're in the process of making. Basically, they're an arrangement of different sizes and colors and will be made into tiles that fit onto a grid. The game itself won't be a simulator, I just plan on doing it this way so we can map-build efficiently and we can also sell on our Turbosquid store.

My question is :

Do I really need to go into every single texture map? By texture maps I mean Diffuse, bump, normal, specular, height, etc... I have no real technical experience when it comes to 3d modeling. I stumbled upon 3ds max a few years back and just found a passion for it. I've watched tons of tutorials and can model decently, but I've always been a bit confused on the necessity of all the different texture maps. I know what they're used for, but most of the time I find that a Diffuse main texture and a Specular map does the job. But since we have more people on board and we use Substance now I'm being told that normal and height maps are a little more crucial. How can I implement those into these kinds of models? Do I even need to?

Advertisement

These are some very nice models!

Developer with a bit of Kickstarter and business experience.

YouTube Channel: Hostile Viking Studio
Twitter: @Precursors_Dawn

Do I really need to go into every single texture map?

Considering there is a infinite amount of texture maps I would say: no.

A texture provides you with 4 channels multiply by an X and Y value (RGBA)* (XY); with some creative thinking there is nothing you cant store in a map and if you add vertex color also you can do any thing.

The important thing about a map is that some data is stored per pixel, so that the shader can allow each pixel to work as if it had it's own material.

Use what you need but more importantly, what you know.

Just converting a un-modified photo to a texture map has been proven to break immersion more than not using textures at all.

If you are new to texture maps there is a few beginner tips that will help:

[spoiler]

Use specular(Old shader)/ reflection set(BPR) when you have a object made of more than one material.

A single material object can just use the material value.

Dust and dirt count as a second material, even on dull rough objects like rocks.

A metal will always need specular/ reflection set.

Details on each map:

The old shaders use the specular set, that is:

Diffuse, the color and diffuse light effects.

Specular map, this is a fake reflection of lights in the scene. higher settings will resort in a more clear reflection of the light.

Gloss map, how blurry and large the fake light reflection is.

Specular color, this tints the color of the specular. Metals reflect some of there color and there is many other materials that use these.

The new BPR shaders use the reflection set:

Albedo, the color; you can even use single color values with no other details.

Metal map, how much metal is in the object. This will also effect other things, that is a bit advanced.

Gloss map, how rough a surface is. Unlike the specular gloss on old shaders this will effect reflection.

BPR has a specular set with a real gloss map, the specular value just allows to tint and pop the details in the reflection.

Using the Old or new BPR to make a metal takes at least 4-5 texture maps, the BPR metal shader can do it in 3 and with much less work and a better result.

Optional:

Normal map, normal control light and shading -how humans see things- allowing for a object to look more detailed than it is. Many people will say it's not a optional texture, doesn't work if there is no shading or at least reflection.

Ambient occlusion map, the name says it all. basically darkens depending how near objects are to each other. This texture is used a lot, takes a lot of skill to do. Xnormal is the best software for baking AO but not worth the effort.

Fresnel map, often just a gradient value or texture. Effects reflection and light on edges of objects. You can't make a realistic glass or metal without Fresnel.

Emission map, on the old shaders this will just turn off the shading making it bright no matter how little light is in the scene, with some of the BPR engines this will cast actual light.

Shadow maps, shows the location of shadows, used in static scenes.

Light map, used to show bright spots on the texture, works like a emission map. Rarely will it cast light and is often a combo with a shadow map.

Mirror map, depends on the engine on how it works, decides how reflective surfaces are. In BPR shaders this is done on auto for you.

Height map, the little brother of a normal map. A normal maps stores XYZ as RGB a height map stores Z as BW.

Detail maps, often a normal and diffuse/ albedo with smaller details that is worked in when the player approaches the object.

Sub surface map, key map to realistic skin and depth materials like ice and jade. Mimics light scatter under objects; works great with cloth but not worth it for cloth.

Rain map, heat map, cavity map, dust map, fall off map, noise map, epidermis map, blood mask... etc.

A few years ago it was popular to use as much maps as you could, resulting in models that had 9-12 texture maps. It was quickly found that many maps needed only a single value and did not have to be adjusted per pixel.

Next gen models now use about 6 texture maps, these are the models you will see in games in the next 2-3 years.

Mobile games often don't use them to keep down file size and loading time down.

[/spoiler]

Depends really on the shaders you are using. I guess scouting ninja already did list all of them. Going to add some of my own thoughts and expieriences to the ones I have had to deal with before.

Generally, with decent bumped legacy shaders you had diffuse, normal and specular maps. There were special shaders, for example parallax ones, that needed height/displacement maps.

And of course there are always weird special shaders needing additional maps, but I guess these are out of scope.

Nowadays, with all the major engines supporting PBR shaders, you have to split your specular map into 2.

You now have either a metallic or a specular map, depending on the workflow supported by your chosen engine (Unreal 4 for example supports metallic, Unity 5 both). In case of a metallic workflow, you have a greyscale map that tells the shader how "metallic" a model is, the more white, the more metallic (which means diffuse gets darkened, and specular gets colored with diffuse).

In case of specular workflow, you now can work with a colored RGB specular map, to achieve the same effect as metallic, just with 3 instead of 1 channel (color instead of greyscale) and with you manually having to darken the diffuse map. This specular map basically tells the shader how strong specular reflections should be, and which color they should have... in metallic workflow, the strength and color is calculated by the shader.

At least in Unity 5, specular also modulates the strength of GI "reflected" from the object.

Then you have an additional map, a smothness / roughness map (Unreal 4 support roughness, Unity 5 smoothness). This tells the shader how the specular highlights should behave, if they should be rather wide and scattered (rough material) or narrow and focused (smooth material). Also, most PBR shaders I know of also work in tandem with reflection systems of the engines, this will also determine, together with the specular strength, how reflective the material is.

Its a simple greyscale map. You can use the same map for roughness / smoothness, its basically just inverted. In Unity 5 at least the smoothness map should be located in the alpha channel of the specular / metallic map.

Additionally, because Specular / Metallic and Smoothness / Roughness has become such an important thing both for GI / Reflections, and making things look metallic, most PBR shaders add a separate AO map to the list of maps they support. Its an important addition, because besides adding AO to your diffuse, it will also mask specular and smoothness, or metallic and roughness. Thus making sure you don't get GI at places you don't want them, like in crevices.

You CAN instead just bake the AO into all the other maps of course... AFAIK this will have the same effect.

Most PBR shaders I know of also integrate a simple parallax effect, and give you the option of adding a height map. If you need that -> IDK. Never saw the point in parallax shaders outside of terrain textures or stuff like that.

Emission maps if your models have self illuminated areas... be aware that how these need to be setup is HIGHLY dependend on the shader and the engine. In Unity, you now work with a colored RGBA map where RGB channels are defining the color of the emission, and the A channel the strength of the emission.

Also, at least in Unity 5 you can now not only assign a RGB color which tints the emission and also modulates the strength, but you can actually turn that up into HDR ranges.... which means you can make the emission much, much brighter by going over a value of 255/255/255 for the color.

As to the practical differences between metallic and specular PBR workflow... both can be used to achieve the same results. Metallic is a little bit easier to use as in specular workflow you have to do things yourself that the metallic shader will take care of, like coloring your specular, or darkening your diffuse map. On the other hand, you loose direct control of your specular channel in metallic, which can lead to too high specular values for non-specular areas of your models (metallic workflow will assign a "default" specular value to those, which is around 30/256 specular... this seems to be taken from real life, as everything has a small amount of specularity. Can still look wrong in your game, especially when combined with other, non-pbr shaders).

Many of the other maps are MOSTLY useful for creating the maps you need. For example curvature maps are extremly useful for various effects when trying to make your diffuse map pop more, or creating height or normal maps.... haven't seen this being used by shader directly though.

Not going to list all the speciality maps that scouting ninja listed... haven't really used them so got nothing to say there.

I agree with what Gain-Reto, has written I just want to point out a few things.

(Unreal 4 for example supports metallic, Unity 5 both)

Unity and Unreal both has a metal and specular option.

It's important because the specular is still used for most organic materials like skin. The metallic shader is best for metals and plastics.

As to the practical differences between metallic and specular PBR workflow... both can be used to achieve the same results.

Mostly true. The main difference is that small things like Fresnel and IOR will react different based on the texture input. These are important inputs in materials like glass and metal, however don't matter in materials like rock and wood.

add a separate AO map

You can add a separate AO map, however to keep texture sizes down you can also add/ multiply the AO in turn with every texture you are using.

The separate AO is convenient way of adding it, however adds a redundant texture to the already large stack of textures.

add a separate AO map

You can add a separate AO map, however to keep texture sizes down you can also add/ multiply the AO in turn with every texture you are using.

The separate AO is convenient way of adding it, however adds a redundant texture to the already large stack of textures.

True, if you write your own shader, or use the material editor of UE4, you can tuck away the AO map into some unused channel of a different map. Like the Alpha channel of the diffuse maps Texture sampler, which is mostly unused for non-transparent materials. Actually, many maps used for special effects, like masks or transmission maps are greyscale images and thus can fit a single channel of a texture sampler. Its a good idea to gather them into as combined textures as possible to get the best possible performance out of your shader.

Right, forgot about UE4 also supporting specular (actually used that in my few months with UE4)... and didn't know that Fresnel and other effects would also be tied to the metallic map. Is there a way to emulate that in specular workflow, or is it automatic similar to how you loose control over the specular channel in metallic workflow, and its set automagically for you by the shader instead?

and didn't know that Fresnel and other effects would also be tied to the metallic map. Is there a way to emulate that in specular workflow, or is it automatic similar to how you loose control over the specular channel in metallic workflow, and its set automagically for you by the shader instead?

With a BPR shader the Specular also effects Fresnel, although much weaker than in a metal map. For the Specular It looks like the max Fresnel is 1.2.

That is that if your specular is set to max, the Fresnel will be set to 1.2. Specular appears to have a IOR of 1.2.

For metal shaders if the Metal is set to max the Fresnel can be as high as 10 depending Fresnel IOR. I think the IOR value is at 1.6.

The idea is that the more metal a object is the more Fresnel and IOR it has. None metal objects don't have very high IOR or Fresnel levels. A formula is used to adjust all values, a lesser one is used for Specular.

For specular materials that do need high Fresnel levels and IOR levels, they have to be adjusted by the artist. However in Unity this means making your own shader.

A example of a specular object with high Fresnel is a soft leaf, it will have hairs and to simulate the light of the hairs you will need to adjust the Fresnel.

and didn't know that Fresnel and other effects would also be tied to the metallic map. Is there a way to emulate that in specular workflow, or is it automatic similar to how you loose control over the specular channel in metallic workflow, and its set automagically for you by the shader instead?

With a BPR shader the Specular also effects Fresnel, although much weaker than in a metal map. For the Specular It looks like the max Fresnel is 1.2.

That is that if your specular is set to max, the Fresnel will be set to 1.2. Specular appears to have a IOR of 1.2.

For metal shaders if the Metal is set to max the Fresnel can be as high as 10 depending Fresnel IOR. I think the IOR value is at 1.6.

The idea is that the more metal a object is the more Fresnel and IOR it has. None metal objects don't have very high IOR or Fresnel levels. A formula is used to adjust all values, a lesser one is used for Specular.

For specular materials that do need high Fresnel levels and IOR levels, they have to be adjusted by the artist. However in Unity this means making your own shader.

A example of a specular object with high Fresnel is a soft leaf, it will have hairs and to simulate the light of the hairs you will need to adjust the Fresnel.

Extremly helpful explanation, thanks. Learned something new.

I feel the urge now to open the shaders in Unity and check how to add sliders to affect these values... not sure if I am competent enough as a shader programmer though ;)

This topic is closed to new replies.

Advertisement