Null Texture

KalopsiaKalopsia Join Date: 2003-05-15 Member: 16331Members, Reinforced - Shadow
<div class="IPBDescription">Is this right ?</div> just making sure before i do too much with it. This is how i use it:
>Make a brush with null on all sides
>Side that needs correct texture replace it
>and adjust new texture, leave all other sides null

is that ok or not ?

Comments

  • Carbon14Carbon14 Join Date: 2002-07-29 Member: 1025Members, Retired Developer
    That's ok, but just make sure that you do not make a brush that is completely covered in the null texture.

    I usually go about creating everything with normal tex's and then going around and texturing unnecesary sides with the null texture. The most usefull use of the null texture is on the sides of entities that you dont see due to them being against walls and such.

    The sides of normal brushes doesn't really matter since if they are not in the viewable world, they are cut during the compile process.
  • OlljOllj our themepark-stalking nightmare Fade Join Date: 2002-12-12 Member: 10696Members
    The null texture is just an invisible texture.
    On a solid you will see trough it (hall of mirrors), same with brush entities, its just invisible or better, not existing.
    It does not add to r_speeds, does not reflect light (but might block it) , the whole face is deleted in the end.
  • Some_tall_guy1Some_tall_guy1 Join Date: 2003-05-22 Member: 16601Members
    I find that if you create your brush with the null texture and then add the appropriate textures on the viewable sides only you end up with lower r_speeds. I retextured a room with w_polys around 700 on average into completely null, then I retextured only the insides with the necessary textures only, this lowered average w_polys down so they never even went above 450. This test proved to me that if you texture your blocks in null and then texture nesecary sides is THE best way.
  • KalopsiaKalopsia Join Date: 2003-05-15 Member: 16331Members, Reinforced - Shadow
    <!--QuoteBegin--Some tall guy+Aug 14 2003, 01:54 AM--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (Some tall guy @ Aug 14 2003, 01:54 AM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> I find that if you create your brush with the null texture and then add the appropriate textures on the viewable sides only you end up with lower r_speeds. I retextured a room with w_polys around 700 on average into completely null, then I retextured only the insides with the necessary textures only, this lowered average w_polys down so they never even went above 450. This test proved to me that if you texture your blocks in null and then texture nesecary sides is THE best way. <!--QuoteEnd--> </td></tr></table><span class='postcolor'> <!--QuoteEEnd-->
    sweet then i will continue to do so then.
  • Carbon14Carbon14 Join Date: 2002-07-29 Member: 1025Members, Retired Developer
    <!--QuoteBegin--Ollj+Aug 14 2003, 06:15 AM--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (Ollj @ Aug 14 2003, 06:15 AM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> (but might block it) <!--QuoteEnd--> </td></tr></table><span class='postcolor'> <!--QuoteEEnd-->
    Yep, it does block light <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->

    Some tall guy, that is interesting, I will do some experimentation myself to see if there is any truth to it. As far as I know there really should e no difference between just texturing unnecesary faces with null, and doing it the way you suggested.
  • NerdIIINerdIII Join Date: 2003-04-05 Member: 15230Members
    You'll need a complex room for this test though Carbon. Maybe there are extremly thin faces or back sides of pipes that make the difference.
  • EriasErias Join Date: 2003-08-17 Member: 19878Members
    I performed a simple test where I put one cube in a simple room, and viewed it with and without the NULL texture. With the null texture, the wpolys visible decreased by the number of sides coated with the NULL texture. Thus, with the NULL texture, the wpolys are *deleted*... they do not appear in the BSP and they do not add to the counts in r_speeds. A face coated with the NULL texture is removed when the map compiles.

    Note that brush-entities don't have a lot of faces removed when they're compiled into a map, so using NULL on brush entities, especially pipes and glass and illusionary effects and such, is one effective way of kicking r_speeds down.
  • G4B2SWrathG4B2SWrath Join Date: 2003-08-03 Member: 18846Members
    I also heard that the sky texture helps even more then the null texture when just covering over parts you'd never see ingame. Anyone done a test for it?
  • TrojanTrojan Join Date: 2002-11-02 Member: 4611Members
    I never knew about this :| Strange too, kinda wish I knew earlier now <!--emo&:(--><img src='http://www.unknownworlds.com/forums/html/emoticons/sad.gif' border='0' style='vertical-align:middle' alt='sad.gif'><!--endemo-->
  • CageyCagey Ex-Unknown Worlds Programmer Join Date: 2002-11-15 Member: 8829Members, Retired Developer, NS1 Playtester, Constellation
    <!--QuoteBegin--[G4B2S]Wrath+Aug 19 2003, 09:38 PM--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> ([G4B2S]Wrath @ Aug 19 2003, 09:38 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->I also heard that the sky texture helps even more then the null texture when just covering over parts you'd never see ingame. Anyone done a test for it?<!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
    The inadequacy of the sky texture for this purpose is the reason why Merl added the NULL texture to the tools--as mentioned in <a href='http://www.chatbear.com/board.plm?a=viewthread&t=535,1004138143,15692&id=81015&b=653&v=flatold' target='_blank'>this VERC thread</a> where Merkaba talks about sky causing a framerate hit even with its lowered r_speeds. If you want to see sky, use sky. If you want to optimize r_speeds by removing textures from unseen locations, use NULL--that's what it's there for.
  • G4B2SWrathG4B2SWrath Join Date: 2003-08-03 Member: 18846Members
    You sound... angry.
  • CronosCronos Join Date: 2002-10-18 Member: 1542Members
    I may be doing this wrong but I've applied the null texture to various points (where solid bit sof architecture meet the floor/roof etc) and it has no effect on r_speeds at all...
  • CageyCagey Ex-Unknown Worlds Programmer Join Date: 2002-11-15 Member: 8829Members, Retired Developer, NS1 Playtester, Constellation
    edited August 2003
    <!--QuoteBegin--[G4B2S]Wrath+Aug 21 2003, 09:13 PM--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> ([G4B2S]Wrath @ Aug 21 2003, 09:13 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> You sound... angry. <!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
    I don't remember being angry when I wrote it, but I guess it's a little terse <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->.

    Please don't take it personally--I just wanted to make absolutely sure that there wasn't any confusion on the topic. I'm sorry if it read like an attack. The bottom line is you can't get more efficient than doing nothing, which is what happens when a face is covered in null--the face is removed from the map during compilation, and engine doesn't have to do anything during runtime.

    <!--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--> I may be doing this wrong but I've applied the null texture to various points (where solid bit sof architecture meet the floor/roof etc) and it has no effect on r_speeds at all... <!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->

    NULL still splits the world like other textures--using it won't keep one face from cutting into another. Either turn one part of the intersecting geometry into a func_wall or use a 1 unit gap to prevent the split.

    NULL should be used for faces that the player won't be able to see under normal conditions--coating the backs of pipes that the player won't see, for instance. The w_poly count measures faces drawn during each frame, and the engine is smart enough to skip drawing faces that are pointing away from the player (a.k.a. backfaces)--if you NULL out backs of pipes that the player can't ever see, you probably won't see a change in the r_speeds number looking at the front of those pipes. If the engine draws the back of the pipe from another room (use gl_wireframe 2 in console with cheats on to check this), that's where you'll see an r_speeds improvement.

    Even skipped faces that don't contribute to the w_poly counter are taking up a little time during rendering, though -- since NULL faces don't exist in the final BSP, a map that uses them will still be more efficient with identical w_poly counts since the engine doesn't have to test and skip as many backfaces.
Sign In or Register to comment.