Nodrawing

Discussion in 'Mapping Questions & Discussion' started by Portalboat, Sep 9, 2010.

  1. Portalboat

    Portalboat L1: Registered

    Messages:
    44
    Positive Ratings:
    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?
     
  2. fubarFX

    aa fubarFX The "raw" in "nodraw"

    Messages:
    1,608
    Positive Ratings:
    1,698
    there is no such thing.
    If you made your map with dev textures tho, you can replace all dev textures with nodraw once you are done texturing.
     
  3. Draco18s

    Draco18s L9: Fashionable Member

    Messages:
    622
    Positive Ratings:
    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.
     
  4. absurdistof

    aa absurdistof

    Messages:
    1,242
    Positive Ratings:
    393
    What draco said. The most I think you could do optimization-wise would be to nodraw any in-map surfaces the player won't be seeing.
     
  5. grazr

    aa grazr Old Man Mutant Ninja Turtle

    Messages:
    5,436
    Positive Ratings:
    3,562
    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.
     
  6. Draco18s

    Draco18s L9: Fashionable Member

    Messages:
    622
    Positive Ratings:
    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.
     
  7. grazr

    aa grazr Old Man Mutant Ninja Turtle

    Messages:
    5,436
    Positive Ratings:
    3,562
    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: Sep 10, 2010
  8. Draco18s

    Draco18s L9: Fashionable Member

    Messages:
    622
    Positive Ratings:
    136
    *Shrug* Then my impression was wrong, and so was whatever it was that I read that gave me that impression.

    Not a first.
     
  9. x6herbius

    aa x6herbius

    Messages:
    377
    Positive Ratings:
    271
    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.
     
  10. Draco18s

    Draco18s L9: Fashionable Member

    Messages:
    622
    Positive Ratings:
    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.
     
  11. Mick-a-nator

    aa Mick-a-nator

    Messages:
    640
    Positive Ratings:
    314
    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.