func_details intersecting CAN cause more splits, creating more tris

poseyjmac

Newbie
Joined
Sep 13, 2003
Messages
4,763
Reaction score
0
i was always under the impression that you could do what you wanted with func_details, intersect them to all hell, and not worry about it. well i was wrong. maybe this is common knowledge, but for those who don't know, check this out:

this is just a cube room. with a func_detail platform with beveled sides in the middle not intersecting the world brushe floor, and a pillar also func_detail. this is when the func_detail pillar intersects the platform. notice the compile log and how many triangles there are.

http://img.photobucket.com/albums/v81/poseyjmac/func_detail-touching.jpg

the next one is when the pillar is raised above the platform. notice the amount of triangles in compile log they are less, and also, if you went into the game, you'd see less splits than the above:

http://img.photobucket.com/albums/v81/poseyjmac/func_detail-no-touch.jpg

the next one is of a func_brush intersecting the func_detail:

http://img.photobucket.com/albums/v81/poseyjmac/func_brush-no-splits.jpg

no splits with the func_brush so less triangles. why would func_detail do this?

i experimented without a beveled platform, and there were no splits, so i think it only happens in certain situations. but still, its something to watch out for. i know i need to go back im my current map and find out if i have more unneeded splits caused by func_details intersecting.

-

now i just went through my map to see how it really impacted performance. i turned a bunch of func_details into func_brushes, and i went from 10800 now down to 9500 tris. now that seems like a nice improvement to me
 
Intersecting brushes are bad in general. Simple solution, never make them.
 
iirc when one brush touches another where there is an overlap you get the surface being cut into extra tris

tbh on modern hardware worrying about bsp splits here and there is a waste of time. a bigger factor is # of models, so reducing their visibility with fade distances, hints, areaportals and occluders is a more useful way to increase fps. oh, and not filling your map with dustclouds :)
 
not everyone has modern hardware! but this is useful in my level where many brushes cannot be concealed by areaportals and hints. and when it comes to framerate, every bit helps i always say.
 
Next time go in-game and use the mat_wireframe CVar to check out what the triangles look like.
 
thats how i found them. i saw splits in the func_details. originating from other func_details, which is why i ran that test.
 
Entities split entities, world brushes split world brushes.

Which part of this is unexpected? :P
 
Back
Top