Nodrawing

Portalboat

L1: Registered
Jul 17, 2010
44
1
Like a Hammer noob, I forget to nodraw my brushes before I made most of my map. Is there any easy way for me to nodraw the faces that need to be nodrawn, but nothing else? Like a "Select all visible faces" tool or something?
 

Draco18s

L9: Fashionable Member
Sep 19, 2009
622
136
Or you could not worry about it. Faces that touch only the void or only touch another face (eg. two brushes touching each other, the inside faces you can't see) are all culled during the compile process. Texturing them with nodraw only speeds that process up because nodraw tells the compiler "this face is not rendered" and its culled.
 

grazr

Old Man Mutant Ninja Turtle
aa
Mar 4, 2008
5,441
3,814
Yup, what Draco said.

Nodraw is used on faces that arn't directly visible but might get rendered anyway, such as a brush face behind a window prop. You can't see it, but it still gets rendered. So nodraw that.
 

Draco18s

L9: Fashionable Member
Sep 19, 2009
622
136
I think what I said is that nodraw only helps compile time, unless there are faces that are not visible to the player, but possibly visible (eg. the back sides of buildings in the skybox, for example). Those you should spend the time texturing as nodraw.
 

grazr

Old Man Mutant Ninja Turtle
aa
Mar 4, 2008
5,441
3,814
Generally speaking the effects of nodrawing, to the compile time, are negligable when compared to most optimising methods (particularly regarding vis). They help reduce light data and the compilation of shadows is obviously less time consuming because there are less shadows to compute, but the effects ingame are more significant than any impact to the compile time. I don't know where you got the idea that nodraw was specifically to reduce compile times. That's sipmly not true. Plus the raw impact of whether or not a face gets rendered means little in the way of complicating a compile process.

Nodraw =
  • less light data
  • slightly faster RAD
  • less render loads ingame

Beyond less light data being computed during the compile process, telling hammer a face is not to be rendered means very little.
 
Last edited:

Draco18s

L9: Fashionable Member
Sep 19, 2009
622
136
*Shrug* Then my impression was wrong, and so was whatever it was that I read that gave me that impression.

Not a first.
 

NoodleCollie

Stoat fiend
aa
Jul 30, 2009
383
335
I do tend to create all my brushes in nodraw before texturing them as and where needed, because it just makes sense. Human error means that there are going to be some faces that should be nodrawn that you miss, and starting out with nodraw as a base texture eliminates probably 99% of these cases.

Best to squeeze out as many FPS as possible in all areas, the way I see it.
 

Draco18s

L9: Fashionable Member
Sep 19, 2009
622
136
I do my mapping in dev textures (yay Orange Pack!) and then do a Find/Replace of the remaining orange (etc.) when I'm done.
 
Feb 18, 2009
640
629
Can I just add that the compiler doesn't cull faces if they are hidden by func_detail. brush-brush faces are culled, even within a func_detail comprising of multiple brushes, but I believe that faces/parts of faces that are covered by func_detail are still rendered. It is not much of a problem, especially if it is covering only part of a face, as func_details shouldn't ever be big enough to have a noticeable effect on fps or compile time because of this behaviour.
If this has already been mentioned, or I am wrong in any way, I apologise.