Commander Mode
Rendy_CZech
Life is a Koan Join Date: 2003-10-11 Member: 21608Members
<div class="IPBDescription">func_seetrough and HLVIS</div> I have big problem, I want to tweak my map for commander view. I've tied ceiling polygons to some func_seetrought (about 4 polygons in one entity). But if I compiled the map with VIS -full and set gl_wireframe to 2, I've seen that the polygons witch have had stand unrendered aren't hidden, this caused my r_speeds too high.
How to solve this <!--emo&???--><img src='http://www.unknownworlds.com/forums/html/emoticons/confused.gif' border='0' style='vertical-align:middle' alt='confused.gif'><!--endemo-->
How to solve this <!--emo&???--><img src='http://www.unknownworlds.com/forums/html/emoticons/confused.gif' border='0' style='vertical-align:middle' alt='confused.gif'><!--endemo-->
Comments
Damm I don't know how to explain it...
Also, are the entities big? Sometimes large entities are rendered from far away.
The cull distance affects all players' views as of the NS 1.02 server patch. The maximum distance along the X or Y axis at which any player other than the commander will see an entity is approximately twice the cull distance value.
<!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
That's from the Mapping Guidelines.
Also be careful when you're trying to measure r_speeds, sometimes you can be standing at one side of a visleaf and seeing things that are only visible from the other. I wish there was an option to have the visleaf you're on turn fullbright.... would make it easier to see where the game believes you're seeing things from.
<a href='http://torment.wz.cz\NS\ns_hulk0083.jpg' target='_blank'>with func_seetrough</a>
<a href='http://torment.wz.cz\NS\ns_hulk0085.jpg' target='_blank'>without func_seetrough</a>
Don't make the ceilings of your level func_seethrough. The outer shell of your rooms including the ceilings should be part of the worldspawn (not an entity).
Use func_seethrough for brushes that are <i>inside</i> the shell your level and under your ceiling such as wires or support beams.
Example: You are building a hallway shaped like a long box. Don't make the roof of the box a func_seethrough. If you place a decorative beam across your ceiling, you can make that func_seethrough.
<!--QuoteBegin--Reese+Nov 16, 2003--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (Reese @ Nov 16, 2003)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> since func_seethrough turns something into an entity it doesn't really affect r_speeds as much.<!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
He's hitting major r_speed problems because turning his ceiling into an entity is causing his level to leak -- VIS is going to choke when that's happens, and his r_speeds will go through the roof. The second picture shows the area visible from that corner including faces that look like the exterior of his level.
Using NULL on the exterior of a leaking level still causes extra leaves and clipnodes to remain in the map since fillOutside fails to remove them during HLBSP; changing those ceiling brushes back to worldspawn is the correct solution for that reason.
EDIT: If there isn't a leak being reported, there might be a box around the level; if that's the case removing the box and fixing the leak is still the way to go so that you don't have a bunch of extra data bogging down players when they run the map.
I'm little confused....
I'm little confused.... <!--QuoteEnd--> </td></tr></table><span class='postcolor'> <!--QuoteEEnd-->
Here's one way to think of it:
When you make a level, the outside shell of the level is removed by the tools -- all of the outside walls, the tops of the ceiling brushes, and the bottoms of the floor brushes are removed and replaced with empty space. The tools do this because normal players won't ever be outside of the level and the Half-Life engine wasn't designed for commander mode. If players can't see the outside, there's no reason to make it part of the level, so it's removed to save resources.
When the commander looks down on a level that doesn't have a leak, he is looking from the empty space surrounding the level into the sections of the level that players use; he can see the players because HLBSP has already removed the tops of ceilings.
The tools make 4 copies of the level--1 that players can see, and three more that control where players can move. These other three "clipping" hulls are made using the same routines as the one you can see. Once they have been made, HLBSP removes their outside areas, too.
When the commander moves around his mouse pointer, the game draws a line from the commander's view down into the map until it hits a solid object. Since the outside of the level is removed by the tools, the top of the ceiling is missing. The bottom of the ceiling is pointing in the wrong direction to block the mouse cursor, so the cursor is drawn inside the level wherever it touches a floor. When the commander drops an item, the game draws an imaginary line from the mouse cursor until it hits the bottom of the ceiling, and the item is dropped from inside the level <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->.
Brushes that are inside the level like support beams will have all of their sides intact, and the top of the support beam doesn't look any different from a floor to the commander code. Using a func_seethrough for the beam inside the level tells the commander mouse cursor code to ignore it when looking for its correct position.
Cagey you are god <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->
BTW Thank you for very long and comprehensive (?) answer
Also even if you think the brush you use for ceiing has a face that is facing the commander, this is removed. It's all just for saving resources and rendering speed. You don't need to think about any special stuff here. It's only when you need ceilings below ceilings you need the func_seethroug