Window textures causing portal leaks?

russtolium

L1: Registered
May 27, 2008
15
0
I'm going through the motions of optimizing a nearly finished map and right now I've been isolating with areaportals. I had to go through a few cycles of leak fixing that made sense until this. Basically, I have windows on the ceiling of a room. When I changed their texture to something opaque, like metal, and compiled, the room was sealed, perfect!

But when I applied any translucent glass texture, on either face (in this case the texture is 'glasswindow001a') and compiled, I get a leak error. I checked the pointfile, and the line draws directly THROUGH the brush. Like I said, with the opaque texture it's leak free and obviously it's a world brush.

Can you just NOT use translucent textures to seal areas? I mean I guess it's not that crazy considering you're seeing what's beyond it, and i could just slap an area portal behind it, but still pretty odd since I've never heard anyone mention it in discussions or tutorials.
 

psihomir

L4: Comfortable Member
Mar 17, 2008
192
32
I think that "special" textures, like glass and water, cause the engine (or compiler) to convert the brushes to a specific entity - func_water, func_wall (which was used for unbreakable transparent objects in goldsrc), and since it becomes an entity, it can not seal anymore.

I could be wrong about the entity conversion thing, but at least I'm sure the engine/compiler treat them differrently from standard brushes.
 

russtolium

L1: Registered
May 27, 2008
15
0
Yeah that's what I thought, and popping an area portal behind them fixes the problem. You learn something new every day...
 

A Boojum Snark

Toraipoddodezain Mazahabado
aa
Nov 2, 2007
4,775
7,669
Technically what happens, is any material the player can see through is ignored (water is a special case) by BSP when building the leaves, the same way it ignores func_detail. This is why when you look at a decompiled valve map you'll notice any glass pieces are normal world brushes, while the entire building they are part of is a func_detail. As far as the compile cares they end up the same... ignored for leaf building, world brushes when ran.