What does the "nodraw" texture do?

When I make maps, I simply makes all the brushes with nodraw as a standard base, then texture visible faces and fit the brushes to the textures.
Nodraw is allways useful, and in your example, you start with nodraw on the water brush first, then texture the surface with a water texture

under masses of displacements its more than necessery.

Before source automatically started culling and stop compiling areas that players could never get to (see: solid rooms that were textured but had no connections to the world itself) nodraw would be used so the face would never be rendered. It was used more back in the Quake 3 days (where it was called Caulk) to prevent “sparkles” (I can’t quite remember the actual name for them). Back then it was a basic neccesity to ensure decent performance. These days, its usefulness has been very slightly reduced but other than that, it’s still an essential tool for any mapper.

I prefer to apply nodraw myself. While the engine culls unseen textures I’d imagine it would miss some (much like the engines visibility calculator can screw up by placing a visibilty portal in a totally obscene place).

Like the old saying goes, If you want something done right, do it yourself.

Dynamic occlusion.

I can’t say I understand what occlusion has to do with nodraw/unseen textures. Nor can I say I know what it has to do with visibility portals.

Isn’t occlusion a post processing effect? Meaning it’s applied to the frame AFTER it’s rendered?

My bad I was thinking of ambient occlusion.

I still don’t understand though, if the engine can prevent rendering of textures/models/etc that can’t be seen. Then why did valve even create the tools? And if they’re outdated tools, why are they still included? From what I’ve seen area portals are still used massively.

Because bad mappers exist.

That and it’s derrived from Quake.

So valve created the tools to fool bad mappers?

Nodraw is still useful. Just because faces you don’t see get culled, doesn’t mean they don’t exist. It still has to cull them every frame. Or you can just use nodraw and then they’re culled in pre processing. Besides nodraw is not just for optimisation.

[editline]11th February 2011[/editline]

Hasn’t how the bsp is handled always naturally prevented this even through quake.


I’m not talking about those tools (and who uses Carve anyway?)
I mean the tool textures like nodraw, hint, areaportal,etc.

valve never implemented dynamic occlusion. I think its due to the .bsp tree. I know GiGabite could explain this better probably.

(If I understand what you’re saying from your slightly butchered english) It just never did. In Quake (or older versions of Source SDK) you can make a room, add nothing at all (ents included) to it and then compile, the room will still exist. In newer versions of the SDK if you do the same thing when compiling it’ll automatically not compile that room. It’s small things like that Valve have done to try and improve the communities mapping overall.

In short, you somewhat answered it here, albeit not quite so directly

Also, Carve is also from the days of Quake. Valve just never removed it.

So long as that room contains at least one entity it will compile right? It is a pretty good idea to include that kind of thing, it does help stop the bad mappers from wasting resources.

This isn’t entirely correct. Rooms with no entities confuse VBSP since it relies on the presence of entities to determine what is inside the map and what is void space. What will happen is since VBSP can’t determine where the void is, it will strip the faces of all sides of the brushes making up that room and put the void on both sides.

You can confirm this by compiling an empty room adjacent to a room with a player start. Put a texture on the empty room floor that has a surface property of glass (like lights/white003) and compile the map. When you get in-game, noclip out of the spawn room to where the empty room is supposed to be and shoot the invisible floor, you’ll hear the glass cracking sound. The brushes will still be present, and count against the limits of the compile resources.

Older versions of the engine, and HL1 counted texture lights as entities, so any texture that would emit light could cause rooms with no entities to be compiled and rendered useless in game since there was no way to get to them. There are many examples of this in HL1 levels, with a couple being ns_nothing (removed vent) and ns_osmsiege (void between alien siege hall and hive room) on the mod Natural-Selection.