Need help texturing a road

Hi everyone, this is my first time on blender forums, so I apologize if its not the good place for this topic. I also apologise if my English is wrong (je suis français).
Gonna try to be understandable

Im in learning of blender and UE4 by watching several tutorials since one year, and started a new projects a few days ago.
I’m making a road in blender, using scaled texture and normal of asphalt. Now I’d like to draw markings on a “top layer” by duplicating the principal BDSF box and using mix shader…

but cannot make it work, I’m quite stuck actually.
Can somebody help me to understand if its possible to do this thing, and how ?

What are you seeing? If you have an alpha mask (image you use for Fac), than use Alpha output instead of Color, if you use black and white mask than try to change Color Space to “Non-Color” on your mask.
Hope it will help you.

Looking at the screenshot I see several mistakes. First, you are using images textures with the Generated output of the Texture Coordinates node, use the UV output instead. Second, in the Normal Map node, don’t forget to select the UV map of your mesh. Third, what is the use of the node named ‘black’ ?

The picture below shows the correction to be made in red.

Here’s my workflow for layering textures. Hopefully it will help.

  1. Enable the Node Wrangler add-on in your preferences under the add-ons tab. It comes installed in Blender by default.

  2. Let’s start by making the asphalt texture. In your new material, select the principled BSDF, then press shift+control+T or press the principled setup button in the material’s sidebar (press N to view sidebar).

  3. A browser window will pop up. Select the albedo (or base color), roughness, normal, and any other maps you want to be part of the asphalt texture. After confirming the command, it will setup the texture for you automatically. Pictured below is the asphalt shader that was set up automatically.
    Note: Textures that aren’t named by their type won’t work. Also, I’ve found it won’t recognize certain texture types like AO and alpha maps.

  4. To map your textures without UV unwrapping & without texture stretching, I like to the set texture coordinates node to object & set each image texture node to box projection with blending set to anywhere between 0.1-1.
    Note: On deforming objects, like characters, the texture will move around, which may be an undesired result.




  5. For organizational reasons, I like to put shaders into node groups, so I can understand my node setup more easily. Select all nodes that are part of the asphalt shader and press command+G (or select make group from the right click menu). Press tab to go in & out of node groups. Rename your node group asphalt.

  6. Let’s say you’re trying to add oil spill stains to concrete. Now, create an oil texture. Just copy the asphalt node group and click the 2 to make it unique & rename it oily asphalt.
    Screen Shot 2021-01-06 at 11.04.14 AM

  7. You can preview any texture with shift+control+left click. Now make the asphalt texture look oily. This part is purely artistic preference, so do whatever looks like good oily asphalt to you. But I added a color ramp to the roughness to make it shinier & mixed a noise color texture with the asphalt’s base color to make it kind of a rainbow color.


  8. Create a mask with a color ramp to adjust it.
    Note: In this instance, using vertex colors would probably be better, artistically, because you can place the oil spills accurately. For that, just use an attribute node with the vertex color name written in as a mask.

  9. Make the mask into a node group & your material is done, aside from any artistic tweaks you feel are necessary.


By the way, another way to layer textures is to just duplicate the object, move it up a fraction of an inch (to avoid z-fighting from textures in the same place), then apply an alpha texture to it. It gets almost the same result, but uses a different method. It’s good for adding decals like street markings.

1 Like