Smooth curved and sloped roads using displacements

Here’s a quick guide on how to create smoothly curving roads using displacements. In my experience, this method is much faster and easier than working with traditional brush-based roads. Additionally, it reduces the number of texture seams and it’s a bit cheaper to render (probably?).

  1. Build the brushes that will make up your road, and rotate them around to create curves and bends. I recommend grouping them together, but it’s not required.

  1. Use the vertex manipulation tool to make sure that the brushes connect to each other neatly. Make sure that the width of the brush stays roughly the same. (At the same time, try to keep the grid size as large as possible, as this makes things easier to edit later on.)

  1. Use the texture application tool to select the top faces and turn them into displacements. I find that power 2 is usually sufficient, but feel free to go higher if you need to.

  1. Duplicate the displacements and enter vertex manipulation mode again. Move each pair of end points to one side of the road as shown below.

  1. Duplicate the original set of displacements again, then repeat the process for the other side of the road.

  1. Select all the displacements, open the texture application tool and click the Subdivide button under the Displacement tab. Depending on your CPU speed and the amount of displacements you’ve selected, this process may take a couple of seconds.

And you’re done! You’re free to delete the outer sets of displacements if you don’t need them, but I prefer to hide them away in a VisGroup in case I ever need to redo the road. Of course, you can also keep the surrounding displacements. You can now freely edit their shape using the vertex manipulation tool. As long as you don’t move the vertices that connect them to the road, the displacements will remain seamless.

Some notes:

  • Try to make sure that each brush has roughly the same length as the brushes it’s connected to. Otherwise, subdividing the displacements will cause the vertices of the shorter displacement to be pulled towards the longer displacement, resulting in some ugly texture stretching.
  • You’re not limited to 45 degree increments between brushes; you can use any angle. Even 90 degrees is possible, although it won’t look as good due to stretching.
  • There will still be some visible texture seams where rotated brushes meet. Thankfully, it’s not too noticeable with most textures.
  • When the width of two connected brushes differs too much, the horizontal scaling on the texture may appear a bit off. Either fiddle with the texture scale settings, or reshape the rotated brush so that its width is closer to that of the original shape.
  • Unfortunately, very sharp bends aren’t possible with this method, as the inner set of displacements would need to be manipulated into invalid shapes.

Go hog wild!

Imgur link for easier sharing:

Wow nice tutorial. Explains how to make curved roads to make them look more natural nice.

Are you Mapping Jesus or something?

You come out of literally nowhere, post one of the sexiest maps in a long time, put up a useful customized VBSP, and now this.


(also thank you it’s useful)

That is absolute genius, I didnt know “subdivide” could even do that. And with only 5 posts under your belt.

Mapping king’d. <3

Also is that your grid. How did you get it to have dots?

dotted grid is in the options^

Someone give this man a medal for best new poster, ever.

[editline]30th July 2014[/editline]

I’d like to point out that you can use the texture application to get rid of most texture seams beforehand.

Works Quite well. Wow

Oh my god, this is genius! It’s one of those “it’s so simple, how the fuck did I miss that?” ideas.

Truely a master of the Hammer editor.

Oh my, I would go through all this trouble to achieve a curve like this… I even knew about subdivide I just never knew about it’s full potential I guess. Best new poster indeed :v:

I thought this was fairly known, a massive set of quads subdivided was how Dear Esther was made.


That said, still helped me understand how to get it working for roads.

I give up mapping.

Indeed, under the 2D views tab. I turned the intensity all the way down, too.
I also recommend disabling the ‘Draw Vertices’ option since it’s not really needed, imo. Turning it off actually makes the 2D viewports a lot faster when you have tons of brushes.

Yeah, Dear Esther is what inspired me to play around with the subdivide function. I found that the method I described here works well for roads since it only smooths out the curves and doesn’t create any undesirable stretching.

But people have trouble approaching roads and this removes any ambiguity to it. + it looks pretty neato.

our prophet has arrived, mapping section

[editline]31st July 2014[/editline]

gave it a whirl, didn’t need displacements for this use but still, nice tutorial

I wish i knew of this amazing secret like 4 maps ago. I love you man. I have 2 upcoming projects that will love this. Hell i might redo the big Hill in rockford with this technique.


Only downside is you have to do it the way it’s shown in this tutorial. I tried quickly subdividing existing curves and yeah, didn’t really work out as planned lmfao.

I’ve now got so many FP threads with useful info in them that I’ve just started a new folder of bookmarks for them. :v:

Bookmarked this for later! Nice tutorial

Man, this is the way I’ve been doing it for a while, should have spoken sooner.