How Can I Get Rid Of This?

EflfKEflfK Join Date: 2002-11-04 Member: 6868Members
Using Wadfile: \sierra\half-life\ns\ns.wad
- Contains 39 used textures, 53.42 percent of map (578 textures in wad)
Using Wadfile: \documents and settings\eflfk\desktop\mapping\ns2.wad
- Contains 34 used textures, 46.58 percent of map (296 textures in wad)
Including Wadfile: \program files\valve hammer editor\tools\zhlt.wad
- Contains 0 used textures, 0.00 percent of map (4 textures in wad)

Error: Exceeded MAX_MAP_MIPTEX
Description: Texture memory usage on the map has exceeded the limit
Howto Fix: Merge similar textures, remove unused textures from the map

I didnt even add any new textures is the wierd thing.

Comments

  • KageKage Join Date: 2002-11-01 Member: 2016Members
    Like it says, remove textures. Are you using the newest compile tools? There's a switch in them that should allow you to increase the available texture memory.
  • watch_me_diewatch_me_die Join Date: 2002-11-10 Member: 8107Members
    It's not new textures, it's how many textures you're using. More than 4 MB is not allowed for an NS map...
  • esunaesuna Rock Bottom Join Date: 2003-04-03 Member: 15175Members, Constellation
    <!--QuoteBegin--Kage+Oct 27 2003, 02:01 AM--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (Kage @ Oct 27 2003, 02:01 AM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> Like it says, remove textures. Are you using the newest compile tools? There's a switch in them that should allow you to increase the available texture memory. <!--QuoteEnd--> </td></tr></table><span class='postcolor'> <!--QuoteEEnd-->
    While that's a good way of getting rid of the error, the compiling tools default to a 4mb limit on textures, which is the same as the NS guidelines. While you could allocate more texture memory, to make it adhere to the mapping guidelines, you need to get rid of textures.

    I've found it's exceptionally easy to max out the texture limit if you use hammer's "fit" button in the texture tool (Shift-A). Basically, each time you use a texture it adds it to the memory (I know, i'm using excessive amounts of layman's terms <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif'><!--endemo-->), each time you change the scale of that texture, as opposed to it scaling it, it "creates" another texture. So basically, if you use a texture at 100% size and the exact same texture again at 50%, it's two textures as opposed to one. Using many size variations, even on a single texture, will make the amount of textures skyrocket.

    As people have said, go through your map, replace different sizes of textures, resize brushes to fit textures, and so on, it's a long and tedius process, but if you want your map to conform to the guidelines, it's the only way.
  • EflfKEflfK Join Date: 2002-11-04 Member: 6868Members
    edited October 2003
    Awww thats no fun <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html/emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif'><!--endemo--> . O well i wanted to restart my map anyway Ive learned a lot in the past few days that I would like to apply to rooms I had already finished.

    A few more questions for you guys.....

    How do you make computer screens have the appearance of glowing?
    How do you make the "Join Marines" sign for ready rooms glow and fizzle as well as make the black transparent?

    PS am i reading my forum join date right Oo
    Guess I registered after playing ns for the few days after it came out and posted like one thing Oo
  • KageKage Join Date: 2002-11-01 Member: 2016Members
    For the signs, make the brush as usual, but put null on all of the brush's faces except for the sign face. Then make it a func_illusionary, render mode additive, render fx distort, and render amount from 1-255, depending on how translucent you want it.

    For the computer screens, it's a similar process. This time put a 1-unit thick brush directly in front of the computer, covered with null on the faces that aren't going to glow. Cover the face that is on the glowing side with the texture that is mostly black, but has the light parts of the screen showing. Then make it a func_illusionary, render mode additive, and render amount from 1-255 to set how visible it is. If you want, you can also add a .rad entry for the black texture (called an overlay texture) to illuminate the area around it.
  • esunaesuna Rock Bottom Join Date: 2003-04-03 Member: 15175Members, Constellation
    edited October 2003
    <!--QuoteBegin--EflfK+Oct 27 2003, 09:19 PM--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (EflfK @ Oct 27 2003, 09:19 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> Awww thats no fun <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html/emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif'><!--endemo--> . O well i wanted to restart my map anyway Ive learned a lot in the past few days that I would like to apply to rooms I had already finished.

    A few more questions for you guys.....

    How do you make computer screens have the appearance of glowing?
    How do you make the "Join Marines" sign for ready rooms glow and fizzle as well as make the black transparent?

    PS am i reading my forum join date right Oo
    Guess I registered after playing ns for the few days after it came out and posted like one thing Oo <!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
    Ok, here's some more answers. Well, the way i do things at least, which works.

    <img src='http://www.btinternet.com/~diesirae/monitors1.jpg' border='0' alt='user posted image'>
    Brush 1 is your standard brush with a monitor texture on it (for example the top texture in the image below).
    Brush 2 (the pink one) is the exact duplicate of brush 1 put infront of brush 1, but the thickness of it is just 1 unit wide so it's as thin as it can be. Next, texture brush 2 entirely in the null texture, except for the front face, texture that with a monitor overlay texture (the lower texture in the picture below). The overlays are available in the various wads ns comes with, but if it's not there, simply open it up in photoshop, or whatever, and colour all of the areas that are NOT the screens in black, import it into your wad and then slap it on the brush. Because you copied the same brush, the texture should be in the exact place you want it. <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->

    <img src='http://www.btinternet.com/~diesirae/monitors.jpg' border='0' alt='user posted image'>

    Next convert brush 2 into the func_illusionary entity. Set the Render Mode to "Additive" and the FX Amount to "255". Also, a nice effect is to change the Render FX to "Distort", that makes the monitor appear to flicker on and off, looks really cool. <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo--> Pair these effects with light_spot's facing away from the monitor with one of the Flicker effects on to make it all complete. <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->

    As to the "Join Signs", thats done in a much similar way. Make a brush and texture it how you like (i recommend null textures on the faces that aren't 'needed' and the front face to the join image) and convert it to a func_illusionary entity with the same Render Mode (Additive) and FX Amount (255) as above.

    And that's how you do it, i hope that makes some sense.


    *EDIT: I hate you Kage. <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif'><!--endemo-->
  • EflfKEflfK Join Date: 2002-11-04 Member: 6868Members
    Thanks both of you. By the way pictures are always better than speed <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif'><!--endemo--> . JK both of them were good and the pictures helped me see it in action <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html/emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif'><!--endemo-->
  • amckernamckern Join Date: 2003-03-03 Member: 14249Members, Constellation
    also useing to many 512x512 (or anything over 256x256) will cause your mip_tex to max out alot faster

    My ready room, takes about 3.2 megs of mip tex, and it uses a number of 512x512 textures

    amckern
  • CageyCagey Ex-Unknown Worlds Programmer Join Date: 2002-11-15 Member: 8829Members, Retired Developer, NS1 Playtester, Constellation
    <!--QuoteBegin--::esuna::+Oct 27 2003, 08:37 AM--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (::esuna:: @ Oct 27 2003, 08:37 AM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Basically, each time you use a texture it adds it to the memory (I know, i'm using excessive amounts of layman's terms <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif'><!--endemo-->), each time you change the scale of that texture, as opposed to it scaling it, it "creates" another texture. So basically, if you use a texture at 100% size and the exact same texture again at 50%, it's two textures as opposed to one. Using many size variations, even on a single texture, will make the amount of textures skyrocket.
    <!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
    False. Textures are always stored in 4 sizes at 1:1, 1:4, 1:16, and 1:64 no matter what scales you set in your map.

    Each time you use a different scale, a new <i>texinfo</i> object is created and stored in the map, but that object only holds a string that names the texture used and the 8 values needed for the engine to set up the texture properly for rendering.
  • amckernamckern Join Date: 2003-03-03 Member: 14249Members, Constellation
    so thats an 8 bit string - taking ~8bits of mip tex, or how much tex info is taken in this way cagey?

    amckern
  • EflfKEflfK Join Date: 2002-11-04 Member: 6868Members
    In order to not make another new thread for my stupid questions Ill just continue asking my questions here <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif'><!--endemo-->.
    We can call it help the newb thread <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html/emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif'><!--endemo-->.

    Sorry about that.

    Ok I can run my map on my computer and such but its not found on other peoples computer with just the bsp. Im using the batch compiler atm. What do I do to make it playable on all systems?
  • amckernamckern Join Date: 2003-03-03 Member: 14249Members, Constellation
    do u have the needed entity of info_mapinfo,and info_gameplay?

    amckern
  • EflfKEflfK Join Date: 2002-11-04 Member: 6868Members
    OOO forgot gameplay
  • CageyCagey Ex-Unknown Worlds Programmer Join Date: 2002-11-15 Member: 8829Members, Retired Developer, NS1 Playtester, Constellation
    edited October 2003
    <!--QuoteBegin--amckern+Oct 28 2003, 08:28 PM--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (amckern @ Oct 28 2003, 08:28 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> so thats an 8 bit string - taking ~8bits of mip tex, or how much tex info is taken in this way cagey?

    amckern <!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
    Turns out I was wrong about it using a string to store the texture name at the BSP level -- there are two texinfo structures, one for internal use and one for the file format; here's the file format texinfo:

    <!--c1--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>CODE</b> </td></tr><tr><td id='CODE'><!--ec1-->typedef struct texinfo_s
    {
       float           vecs[2][4];                            // [s/t][xyz offset]
       int             miptex;
       int             flags;
    }
    texinfo_t;<!--c2--></td></tr></table><span class='postcolor'><!--ec2-->

    8 float values = 32 bytes
    2 ints = 8 bytes

    total = 40 bytes per texinfo

    The texinfo's miptex number is an index into the texture information area, which holds one reference per texture name. The texinfo storage is not part of the 4MB default allocated for textures; it has its own line in the chart.

    MAX_MAP_TEXINFO refers to the number of texinfo objects stored in the map, with a maximum of 32,767. Scale changes will produce this error, but you'd have to have many, many of them.

    MAX_MAP_MIPTEX refers to the amount of texture information stored in the map, with a default maximum of 4MB -- scale changes can't produce this error.

    <!--c1--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>CODE</b> </td></tr><tr><td id='CODE'><!--ec1-->typedef struct miptex_s
    {
       char            name[16];
       unsigned        width, height;
       unsigned        offsets[MIPLEVELS];                    // four mip maps stored
    }
    miptex_t;<!--c2--></td></tr></table><span class='postcolor'><!--ec2-->

    MIPLEVELS is 4 since there are always 4 different texture scales referenced by the engine. The size of each miptex_t is 16 x 1 + 6 x 4 = 40 bytes per texture IF the texture isn't included in the BSP. When the texture is in the BSP, the amount of data depends on the texture size. Because multiple texinfos can use the same miptex, only complete removal of texture images from the map will lower this number.

    The miptex objects are what fill the 4MB limit, along with image data if the author included textures in the BSP. The miptex size isn't really an accurate measurement of the amount of texture information used by the level because it doesn't include texture image information from WADs.

    EDIT: fixed broken code tag
  • amckernamckern Join Date: 2003-03-03 Member: 14249Members, Constellation
    Big Thanks Cagey

    I should get the open source zhlt, and see what it can do

    Hope my java/minimal c++ skills can help me read it

    amckern

    PS> Sorry for thread take over
Sign In or Register to comment.