[Tutorial] Building angled roofs (the Valve way!)

Feb 14, 2008
1,051
931
Introduction
People make angled roofs in all kinds of weird ways, and recently the number of, what I'd call “wrong” roofs has fluctuated greatly. Do not fret however, I'm here to tell you the “right” way, which is also the way Valve does them. There are some variants on this, and I've seen some where only the overhang is a func_detail, not the roof, but that's neither here nor there - I prefer this method. Ready? Let's go!

Building the base
First, let's start with a cube in which to build our building.

rooftut1.JPG


Note: I build everything in nodraw, and then texture per-face (for most world brushes), this makes texturing in the latter stages of development easier. I also use 16 as my preferred width for walls.

Next, build a hollow set of walls.

rooftut2.JPG


Then, create a triangle on either end of the brush (generally, the pair of shortest walls), this will define the basic shape of your roof. Make sure the triangle is not too high, otherwise the roof will have an unnaturally high gradient.

rooftut3.JPG


Create a brush for each side of the triangle, using vertex editing, that extends from the peak of the triangle to the wall, with the bottom face matching that of the wall, and the top face vertically downwards from the peak. This is better explained by an image.

rooftut4.JPG


Copy and flip over the brush as below, and you have the basic structure for your roof – you do not need to texture this, as it will be hidden by the actual roof. Note that these are all the world brushes used – the rest is func_detail.

rooftut5.JPG


Note: I based my technique on Badwater. It does not, in any meaningful way, make a difference (it hasn't for me), if you leave the angled bits as world brushes (excluding the func_detail added in the following steps of the tutorial). Dustbowl, for example, func_details the brushes. My method is especially good for buildings with interiors, as you can not only give the roof a different texture to the ceiling, but also not have strange ceiling brushes - problems which I both ran into before. If you are worried about vis, you can simply place a flat brush inside the very top of the walls, and func_detail the triangles (you do not need the angled brushes because it is not seen from inside, I still do it like that out of habit though).

Building the roof
Next, we start to build the roof, create a brush whose width is the same as one half of the roof, and whose height overhangs by 16 units either way – make this brush 2 units thick, and put it on top of the peak as thus (and before we forgot, press ctrl+t with the brush selected to make it a func_detail).

rooftut6.JPG


Vertex edit the ends of this brush so it is in-line with the angled brush below it, keeping the end edges vertical.

rooftut7.JPG


Now here's the clever bit, look at your roof in the top view and determine which direction its gradient is in. In my case, it's in the y direction (vertical), but in your it could be in the x direction (horizontal).

rooftut8.JPG


Then press ctrl+m with your roof selected, click the scale radio button and type in the following based on which direction your roof is in.

x-direction
Y: 0
X: 2
Z: 2

y-direction
Y: 2
X: 0
Z: 2

Then press OK and you should have something that looks like this:

rooftut9.JPG


Move the left hand side of the brush, so it's aligned with the peak of the triangle. Then, on the other side of the brush, clip off the brush 16 units outwards from the wall, so it overhangs, leaving you with something like this.

rooftut11.JPG


To make things a little easier for ourselves, we're going to texture this little bit now. Apply a texture of your choice to the top face (I used metal/wall011g here), and make sure the “grain” of the texure is in-line with your roof's gradient.

rooftut12.JPG


Now, with the top face selected, hold down alt and right-click on every other face on the brush, excluding the one at the peak, this will align every texture in the direction of the roof. You'll get something like this.

rooftut13.JPG


Note: some people (including the affable Dario Casali) like to use ibeams on the side of their roofs. I however, do not, I think that doing it “Sawmill-style” looks a lot better, but that's down to personal preference.

Clone and flip the the roof to the other side, and you have an essentially complete (though undetailed) roof.

rooftut14.JPG


The previous step can be skipped if you're making roofs like the one below.

rooftut15.JPG


Concluding remarks
Thanks for reading, and may your roofs be good ever-after.

The VMF of this map can be downloaded here: http://dl.getdropbox.com/u/1085379/rooftutorial.vmf

This is intended to refine or initiate your technique in this realm, if you already have a method that looks good and works, I'm not saying yours is wrong :p
 

Fraz

Blu Hatte, Greyscale Backdrop.
aa
Dec 28, 2008
944
1,152
Thanks, although I do my roofs as per: [ame="http://forums.tf2maps.net/showthread.php?t=4372"][TUTORIAL]Angled roofs - TF2Maps.net[/ame]
 

Acumen

Annoyer
aa
Jun 11, 2009
704
628
great to see how you inspire each other to write more great tutorials !
i got one question. why did you the scaling instead of vertex editing the roof in place ?
 
Feb 14, 2008
1,051
931
Thanks, although I do my roofs as per: [TUTORIAL]Angled roofs - TF2Maps.net

Yar, this produces more realistic looking roofs, and will make your map look better (it also doesn't produce horrifically thick things D:), money back not guaranteed.

All to their own :)

great to see how you inspire each other to write more great tutorials !
i got one question. why did you the scaling instead of vertex editing the roof in place ?

If you vertex edit, the bottom edge of the roof won't be aligned with the "base" brush below it, or the triangle. By scaling, you keep the same gradient, and therefore it aligns with the base, meaning you can simply clip off the excess. The 2 unit thickness is to compensate for this (as it will produce a 4 unit thickness when scaled).
 
Last edited:

Acumen

Annoyer
aa
Jun 11, 2009
704
628
ah, great to know. i learn so many things in this forum every day, that i get more and more afraid of starting another serious mapping attempt, if can't even build a roof properly :D
 
Feb 14, 2008
1,051
931
ah, great to know. i learn so many things in this forum every day, that i get more and more afraid of starting another serious mapping attempt, if can't even build a roof properly :D

You shouldn't be looking at building roofs really until you've done the layout and tested it :)
 

Acumen

Annoyer
aa
Jun 11, 2009
704
628
plz ! let me be :D
 

pitto

L3: Member
Feb 17, 2009
109
73
Smoothed angled roofs, are they made with displacements?

Or are they models?

Valve sometimes uses displacements for a bent metal roof effect as you can see in this picture. The displacement roofs are made similarly to straight brush roofs, but the brush is then turned into displacements and manipulated for the desired look.
pl_goldrush0011.jpg

From Goldrush

There are more good detailing tips in this thread [ame="http://forums.tf2maps.net/showthread.php?t=974"]http://forums.tf2maps.net/showthread.php?t=974[/ame]
 
Feb 14, 2008
1,051
931
Yeah, make them using the same way as the tutorial, then select the whole brush and make every face a displacement.
 
Sep 12, 2008
1,272
1,141
Yeah, make them using the same way as the tutorial, then select the whole brush and make every face a displacement.

noes! not every face! only the ones that are visible! otherwise you could get the NODRAW DISPLACEMENT kind of error. Not that it's too bad.. but just... :bored:
 
Feb 14, 2008
1,051
931
well, okay not the ones with nodraw on them then :p
 

Seba

DR. BIG FUCKER, PHD
aa
Jun 9, 2009
2,364
2,728
Helpful, I'll have to remember this when I make roofs for Tadmlib or w/e... also, were there supposed to be pics? If so, they're kinda not showing up for me :/
 
Nov 14, 2009
1,257
378
I am sorry I am an idiot, but how do I make triangular brushes? I know there must be an easy way that I am passing by...
 
Feb 14, 2008
1,051
931
Use the vertex edit tool to combine two vertices (in a 2d view), thus removing one (technically 2, as it's 3D)