Preferred Method of Room Creation

sfc_hoot

Newbie
Joined
Dec 29, 2004
Messages
548
Reaction score
0
Recently, I've seen two ways of joining up brushes when creating rooms. I've made a picture showing the two methods. Can somebody please tell me which is correct - or are they virtually the same? Thanks. :)
 

Attachments

  • brushes.gif
    brushes.gif
    6.1 KB · Views: 261
neither, although starting with A is correct, you then use the vertex manipulation to move each of the outside corners over 1 so they meet at an angle. This cuts down on rspeeds dramatically by the time you finish a map.
 
It depends on how you texture them, or how they fit into the surrounding environment.

Figure B has 8 outside faces, which would all be rendered unless you use a "nodraw" texture on the outside faces. Figure A has 12 outside faces.

So it really depends on how that room will fit into the map. Maps start to get really sloppy when the construction of each room is thought of individually, rather than as a part of a whole.

You also have option C: mitering, where you create only 4 outside faces by joining the outer verts.
Miter.jpg

This can be _really_ useful in keeping outside faces from being split up and causing odd lines when rendering lighting. But because you create a 45 degree angle at each end of your walls you make it more difficult to scale walls at a later time. And it is only useful if the room will also be viewed from the outside or incorporated with external structures. Which is why it's best to plan things out in advance.
 
I've had a go at creating Method C in Hammer. It's easy to join up the walls, but how exactly do I join up the roof and the base?
 
Leave them flat. The roof and floor placement also depend on how the room fits with others. Usually it is best to rest the ceiling on top of the walls, and the floor beneath them. But in multi-level buildings you will often need to place the ceiling/floor inside the walls, rather than outside.

Mitering the ceiling and floor is generally not worth the effort. Also, a single ceiling/floor can cover multiple rooms.
 
I see. So this is how I should be creating rooms from now on: Joining up the walls in mitre joints, and having the ceiling rest above walls, and the floor below the walls.

Oh, and do I use that method for all my rooms, or only the rooms that the player can view the outside of?
 
In the image you just attached (roof.gif) you will probably want to extend the ceiling/floor to the outside edge of the walls. And if the outside of the room is never seen, use nodraw textures on the faces.

When you have many rooms sharing the same space, you often don't need 4 walls for each room. What I mean by that, is often a wall can be extended to act as the 4th wall for a neighboring room.

The goal is to have as few world brushes and exposed faces as possible.
 
Ok, I've extended the roof and floor to the outer edges of the walls, and textured all the outer surfaces with nodraw. Is it right now?

I understand what you mean by multiple rooms sharing walls. It makes sense to get rid of extra walls and such.
 
Style A is the best for skyboxes cause you see the lines in Style B
 
pharamir said:
Style A is the best for skyboxes cause you see the lines in Style B

OWW... Hahah, that's why my skybox in a map I made looked like.. a square up to no matter how I changed it.
 
It's all dependent on the context. For purely "internal" rooms where you will never see the outside, either method (or even if you mitre the corners) works equally well, as the BSP process removes the unseen faces of each brush.

For rooms with external walls, B is obviously better. Everything else is personal preference.
 
You don't need the nodraw texture on outside faces if they are touching the void. All outside faces will be discarded anyway regardless of texture. The only time you would want nodraw on an outside face is if it's in another room that isn't accessible by the player, such as a window looking into an outside area. You wouldn't be able to see the back of the wall through the window so you put a nodraw texture on it
 
Personally I prefer method A depicted in your first image as it allows for better texture alignment. If you have a tiled texture applied to two or more walls, it would be a nightmare to align them perfectly with method B. Method A starts texture application at the corner, thus continuing any patterns that may reside on the second brush, whereas method B starts texture application behind the second brush. As others have said, it depends on the placement of the room. Mitering the corners will still allow you to properly texture rooms like method A.

Hopefully this helps. =)
 
With mitre corners I have seen artifacts at the edges. They were always much worse with fast vis--though I never understood why that seemed to be.

Also from the first post, method B **worked** just fine, even on internal rooms. BSP would join two flat faces from separate brushes when they formed a single rectangle without a need to be broken by a pendicular face. So mitering your corners provided no advantage over method B other than requiring you to learn to be careful with the vertex tools. This was proven out with HL1 compiling. I haven't tested HL2 to see what optimiztions work continue to work.

As to methodology. Don't get TOO hung up cause you will come across too many instances that require you deviate, unless your architecture is simply and uninteresting. The biggest thing is consistency Choose consitent pattern of meeting things up. I find separate brushes for any floor and wall are musts. Don't reuse existing ceilings to draw the next floor. Create separate brushes. This way an edit to one eiling doesn't mess up the next floor. This should be true for wall to wall--althouhg i break that rule constantly.

...and use unit boundaries. Stick to 4/8/16/32/64 unit boundaries as much as possible and never edit without the grid snap on. Use "[" and "]" to increase and decrease grid values. I like to stick to major unit boundaries between rooms. Makes for thicker walls (contains sound and explosions better) and makes it more obvious when a brush isn't extending the full length of the room.

Unfortunately all best laid plans...
 
Thanks guys, you've been a real help! :D Now, to continue hammering...
 
If you open any Doom 3 maps with D3Radiant, you can see that they mapped mostly with the first picture.
 
Should you put nodraw on touching faces inside your level? (i'm moving from mapping in rtcw)
 
Limpet said:
Should you put nodraw on touching faces inside your level? (i'm moving from mapping in rtcw)
I think they automatically get culled. Try noclipping into the bsp.
 
Back
Top