Commander Mode

Rendy_CZechRendy_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-->

Comments

  • KageKage Join Date: 2002-11-01 Member: 2016Members
    Are the pieces textured on all sides? You can texture the faces that are never seen with null, and they won't be rendered (HL renders all faces of brush entities).
  • Rendy_CZechRendy_CZech Life is a Koan Join Date: 2003-10-11 Member: 21608Members
    This isn't the problem. If i want commander to drop stuff, I must convert the ceiling brushes to func_seetrough. And if I converted the map with VIS, map is splited to portals an leafs. If I'm behind the corner i can't see polygons that are on the opposite side of corner, VIS blocks it and they aren't rendered (saving r_speeds). But if i have here funcs seetrought they are rendered all, they aren't invinsibled by VIS (I'm speaking about textured sides)



    Damm I don't know how to explain it...
  • KageKage Join Date: 2002-11-01 Member: 2016Members
    Have you tried lowering the "Top down XY cull distance" on info_mapinfo? The entity visibility code in NS was altered so commander mode would work correctly, so that had to be implemented.

    Also, are the entities big? Sometimes large entities are rendered from far away.
  • Rendy_CZechRendy_CZech Life is a Koan Join Date: 2003-10-11 Member: 21608Members
    edited November 2003
    What is cull distance (wath does)? I think the problem will be there, because the entities wasn't longer than 600 units
  • KageKage Join Date: 2002-11-01 Member: 2016Members
    <!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Notes: If the distance between a brush entity's origin and the commander's current viewpoint is greater than the XY culling value along the X or Y axis, the entity won't be drawn in the commander view. Larger values will increase w-polys, but a value that is too small will cause brush entities to disappear when they near the edge of the screen. The proper setting will vary for each map depending on the commander's height and the size of the brush entities in the map.

    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.
  • ReeseReese Join Date: 2003-05-08 Member: 16143Members
    since func_seethrough turns something into an entity it doesn't really affect r_speeds as much. Check to see if you have any world brushes touching brushes and move them one unit away from each other. Also look around for a stray brush accidentally left inside another brush. (this seems to be a common problem for me, so I figured i'd add it) In general what Kage said about using NULL on faces that no one will see does help. I don't really think the seethrough's are the root of your r_speed problems though.

    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.
  • Rendy_CZechRendy_CZech Life is a Koan Join Date: 2003-10-11 Member: 21608Members
    edited November 2003
    Hmm here are pictures of my problem...

    <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>
  • CageyCagey Ex-Unknown Worlds Programmer Join Date: 2002-11-15 Member: 8829Members, Retired Developer, NS1 Playtester, Constellation
    edited November 2003
    <!--QuoteBegin--Rendy.[CZech]+Nov 16 2003, 01:48 PM--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (Rendy.[CZech] @ Nov 16 2003, 01:48 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> This isn't the problem. If i want commander to drop stuff, I must convert the ceiling brushes to func_seetrough. <!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
    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.
  • Rendy_CZechRendy_CZech Life is a Koan Join Date: 2003-10-11 Member: 21608Members
    Ok, thank you. But how can I make commander to be able drop buildings and other stuff under the ceiling (not on top of it), how to do this without func_seetrought.... <!--emo&???--><img src='http://www.unknownworlds.com/forums/html/emoticons/confused.gif' border='0' style='vertical-align:middle' alt='confused.gif'><!--endemo-->

    I'm little confused....
  • CageyCagey Ex-Unknown Worlds Programmer Join Date: 2002-11-15 Member: 8829Members, Retired Developer, NS1 Playtester, Constellation
    <!--QuoteBegin--Rendy.[CZech]+Nov 17 2003, 07:17 AM--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (Rendy.[CZech] @ Nov 17 2003, 07:17 AM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> Ok, thank you. But how can I make commander to be able drop buildings and other stuff under the ceiling (not on top of it), how to do this without func_seetrought.... <!--emo&???--><img src='http://www.unknownworlds.com/forums/html/emoticons/confused.gif' border='0' style='vertical-align:middle' alt='confused.gif'><!--endemo-->

    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.
  • Rendy_CZechRendy_CZech Life is a Koan Join Date: 2003-10-11 Member: 21608Members
    edited November 2003
    AHA ! Ceilings are erased for commander automaticaly <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html/emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif'><!--endemo-->

    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
  • AndosAndos Join Date: 2003-10-17 Member: 21742Members
    In all 3d games backfaces are not drawed on your monitor. So if you see a ceiling from the top down there are no ceiling <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html/emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif'><!--endemo-->
    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
Sign In or Register to comment.