I like it when the surface 'plays' when hit by the light, and using the same details across diffuse/normal/specular always seems like a waste.
That's not a bad thing per se, but if you take a look at most surfaces, you can see that effect on a microsurface level, with stuff like scratches on wooden panels that are only seen through light reflection, etc. Examples above don't have dirt in diffuse textures, basically, which in TDM will make it look like sort of blacklight paint, only seen when there's light hotspot.
One aspect of TDM that always made me a bit sad was that vast surface areas tend to be in "total darkness" at all times and are not subjected to lights at all, apart from the ambient one (unless you bring a light source with you). This way, a player that keeps to the dark is going to be spending a lot of time looking at textures in their worst state - bascily a washed out, darkened and contrast free albedo with weird normals and zero speculars. Pretty charmless.
With Enhanced Interaction shader you have an ambient light moving with you and affecting speculars. So you can raise the Output Levels black point to make your speculars shine, even if there is no light source in game. You have to be careful not to overdo it though.
I thought this might be worth adding to the Normalmap part, although with actual guidelines for baking normals it would be better to make this separate tutorial. For now this is a sort of overview, along with link to external video tutorial I found on YT.
Part 2a: "True power of normalmaps" with baking and unwrapped models
We talked about basic workflow for normalmaps created for tiling textures, so you might get an impression that this is just a nice trick to fake details on a flat surface. This is true, but actual power of normalmaps is much greater. When making models, you can use UWV Unwrap method to position all faces of your model in unique texture space (as opposed to simple projection mapping and using tiling textures). Then you can use normalmap baking (with cage and with averaged normals) to make your low poly model shape look like high poly. If all this feels crazy abstract to you, let the images speak.
This chair has simple normalmap based on the wood texture:
As you can see, there’s nothing unusual about it, it uses basic texture and smoothing groups to tell the engine where sharp edges are.
Now this is the same model but with normalmaps based on shape of high poly model:
You can see shading looks much better now. Instead of razor-sharp edges, the model has better definition and form, without any additional geometry.
To achieve this, I had to unwrap my low poly model, so all its faces fill the space for one non-tiling texture (so-called 0-1 UV space).
Then I created a high-poly shape that surrounded my low-poly model:
As you can see, normalmaps aren’t always about faking intricate details. In more general sense, baking normals for models can replace your basic per-polygon shading with more detailed per-pixel shading of a texture. Maybe “replacing” isn’t the right word, as it uses the smoothing of your low-poly model and your baked normalmap texture as a sort of “bridge” between your high and low poly model.
Overview of the whole process and guidelines are something for a separate tutorial, but there are a few good videos on YT, if you’re interested, this one is pretty good:
The whole process can be a bit of a pain, since usually you need to break your model into parts to bake them, and if your modeling software doesn’t handle averaged normals method well, you might need to use external tools like xNormal (which is awesome, but exporting files takes additional time). All in all, this takes time to learn, but once you get the hang of things, you won’t want to get back to your usual method of making models.