Fix - Nomad Texture Errors
-
Problem 1:
Here’s the full message:
NOTICE: General: texture verify failed: nomad surface: NomadRGB1_NomadAlpha1What it means: That FL could not find (or maybe could find but could not read, or could not verify the existence of) the texture named NomadRGB1_NomadAlpha1 in the material named “nomad surface”.
This error message is only a “notice”, so you may not see it even if it is being generated, unless you have set up an error log file in freelancer.ini…
See http://forums.seriouszone.com/showthread.php?t=58773 for how to do this.
It also may not be generated if you aren’t using nomad gun or turret models, or are not in a system with ships that have weapons that use these gun models.
But like other inoffensive messages it adds to the possibility of problems, so in my opinion it’s best to fix it…
Here’s what it is and how to fix it:
As FL reads in the ini files during startup or first use, it builds up reference tables and copies in memory of many items including, in our case, material names and textures. If it comes across the same material name again, it assumes it is a copy of the first instance and does not load in the new textures.
In our case, the problem is that the nomad gun model, DATA\EQUIPMENT\MODELS\WEAPONS\no_fighter_gun.cmp uses the same material name “Nomad surface” as the nomad gunship turret model, DATA\EQUIPMENT\MODELS\TURRET\no_gunship_turret.cmp, but the texture NomadRGB1_NomadAlpha1 is not used by the gun model’s Nomad surface material, and therefore does not exist in no_fighter_gun.cmp.
It seems (at least in my setup) that FL is reading the gun model file from my weapon_equip.ini first (because its the first nomad entry in my weapon_equip.ini), which does not use or contain the texture NomadRGB1_NomadAlpha1 in its .cmp file. When the same material name is called again for the turret, FL reads the material and textures from the memory copy of the “Nomad surface” material of the gun’s .cmp, and does not find that in fact the texture NomadRGB1_NomadAlpha1 actually does exist in the no_gunship_turret.cmp file under that file’s “Nomad surface” material!
How to stop it?
In your DATA\EQUIPMENT\weapon_equip.ini look for every occurrence of:-
DA_archetype = EQUIPMENT\MODELS\WEAPONS\no_fighter_gun.cmpand add the following line immediately after each occurrence:-
material_library = SHIPS\NOMAD\nomad_fx.txmSave your weapon_equip.ini file.
Open DATA\EQUIPMENT\weapon_good.ini and look for shop_archetype = EQUIPMENT\MODELS\WEAPONS\no_ (these are the nomad weapon entries).
and again add the following line immediately after each occurrence:-
material_library = SHIPS\NOMAD\nomad_fx.txmSave your weapon_good.ini file.
This nomad_fx.txm file contains the NomadRGB1_NomadAlpha1 texture, open it in UTF Edit to check.
Your texture verify failure notice message should disappear.
Problem 2:
The NomadRGB1_NomadAlpha1 texture’s MIP8 mipmap in the file nomad_fx.txm causes an error when opening it in PhotoShop (mine is CS2), but seems OK in IrfanView. Export it and try to open it in your version of PhotoShop or your own image editor to see if you get the same problem as I did.If you see this error and want to fix it:-
1. Make a copy of the file SHIPS\NOMAD\nomad_fx.txm (select nomad_fx.txm, then Ctrl-C, then Ctrl-V will quickly make the file “Copy of nomad_fx.txm”)
2. Open the original nomad_fx.txm file in UTF Edit,
3. Find and export the NomadRGB1_NomadAlpha1 MIP7 mipmap (it is 2 x 2 pixels), saving it as MIP7.tga on your desktop,
4. Open MIP7.tga in PhotoShop or your favourite image editor that can handle .tga,
5. Resize it to half the original size (1 x 1 pixels, 72 pixels per inch) and save it as MIP8.tga,
6. Go back to nomad_fx.txm in UTF Edit
7. Import MIP8.tga into the MIP8 node in the file nomad_fx.txm
8. Save the file as SHIPS\NOMAD\nomad_fx.txmProblem 3:
You may also get this or similar errors again when the Nomad ships are generated, because those files also use the same material names (Nomad surface, Nomad frame and Nomad interior), and even though each model file (.3db) contains all the textures it needs, the same memory lookup will happen and if the texture is not already in that material’s texture memory, then there will be an error generated for the “missing” texture.If you would like to solve all these problems, you will need to rename the materials in each model file to unique ones, e.g. “no_gun_surface”, “no_turret_surface”, “no_battleship_surface”, “no_gunship_surface”, and “no_fighter_surface”, and do the same for other materials which have the same name. Then you will not need to insert the material_library = lines for any nomad ships (shiparch.ini) or weapons (weapon_equip.ini and weapon_good.ini). :roll:
Or you could move all the nomad textures out of the nomad .cmp and .3db ship and weapon files and from the nomad_fx.txm file into a nomad.mat file and change all of your material_library = entries to point to it!! :roll:
Problem 4:
Check to be sure that the model files DATA\EQUIPMENT\MODELS\TURRET\no_turret01.cmp and DATA\EQUIPMENT\MODELS\TURRET\no_turret02.cmp are NOT used in either the weapon_equip.ini or the weapon_good.ini files, they do not have material files for their textures!The model file DATA\EQUIPMENT\MODELS\TURRET\no_turret01.3db is fine, it has its texture built in.
Problem 5:
Open DATA\EQUIPMENT\MODELS\TURRET\no_gunship_turret.cmp in UTF Edit and export the “NomadRGB1_NomadAlpha1.tga\MIPS” node as NomadMIPSnode.dds on your desktop.Open NomadMIPSnode.dds in PhotoShop (or your favourite editor, but be sure it can REALLY handle .dds properly!!). Tell it to load all MIP maps. They will be loaded into the same canvas, each one to the right being half the size of the one to its left, until the smallest on the right. Zoom in and look at all the MIP maps. Count them - you will find only 7? If you zoom in extremely close and look closely there are 8 but the smallest one is just black. There should be 9 MIP maps, numbered 0 to 8, just like in nomad_fx.txm where they are individual MIP0 to MIP8 nodes, because that file’s MIP maps are stored in .tga format.
Well we know that FL only supports 6 LOD levels (that’s what these MIP maps are used for, to show diminishing levels of detail as the ship gets further and further from you.
But the standard is 9 MIP maps, and FL files do have MIP0 to MIP8 nodes! So… it’s up to you if you want…
To fix this:
Reload NomadMIPSnode.dds in PhotoShop but this time do NOT load the MIP maps, just the single large image.Now click on File… Save As… DXT1 no alpha, and give it a new name, e.g. NewNomadMIPSnode.dds and select “Generate MIP maps”… and if your editor asks how many, specify 9.
Go back to UTF Edit and import the NewNomadMIPSnode.dds file into the “NomadRGB1_NomadAlpha1.tga\MIPS” node, and save your DATA\EQUIPMENT\MODELS\TURRET\no_gunship_turret.cmp file.
Have a :pint: !!
Well that took another 3 days spent finding and removing this thorn from my side!
- :pint:
-
I addressed the first point in JFLP (released early Sep).
DATA\EQUIPMENT\weapon_equip.ini
- Added “debris_type = debris_normal” and
“material_library = Ships\nomad\nomad_fx.txm” to every [CloakingDevice]
(removes some warnings: “Couldn’t find debris_type[0x0]” and “texture
verify failed: nomad surface: NomadRGB1_NomadAlpha1”).
There are still texture errors regarding nomad shields I didn’t correct (Tekagi’s Arch and shield generators, iirc).
- Added “debris_type = debris_normal” and
-
Ah, OK adoxa.
But I could not find any info about it anywhere and had to fix it the long way!
And in the process I found the other problems too.
What we need is a separate forum for error fixes so they can all be seen in one place, especially these obscure ones which have taken so long.
Admins?
-
sorry for bumping an old topic. just found something totally weird. how do you like this?
the model is based on the no_fighter.3db. while this is a cmp with a root groups and six others. only the root group (while even only the surface as it is the first mat referenced) and attached equipment (to all groups) is visible. all materials (except for shield and thruster models’) are “Nomad surface” and “Nomad frame” referenced absolutely correctly. the flspew gives error messages that the game could not find materials with the utf id’s 4202511463 (“Nomad frame”) and 4075106055 (“Nomad surface”).oh and btw: once i point the groups to regular materials (e.g. by making the material_library the no_fighter.3db) they all appear, so its not a mistake in the cmp file structure.