Missing textures on other lods is usually the result of incorrect materials assigned to the lod meshes. This might happen if you run a multi-res modifier to create said lods. LIke collision meshes, LOD meshes use material IDs. In 3DS Max each ID corresponds to a material in the Material dialog. This is how materials are assigned to faces on the mesh when it's exported. If you have a vehicle with more then one material assigned to it and the material IDs get reset to the same material, it will end up with the main material assigned to the whole mesh causing obvious problems.
In this case a mult-res modifier might have messed up the material assignments on the other LOD meshes or something went wrong on export. Re-Import the mesh and recheck the lods and see if the meshes all have the same material number. If they do, then that's incorrect and you'll either have to fix them manually or regenerate them.
Another issue is 3DS Max doesn't create enough materials or creates materials with the wrong names in the RS files and they don't match the material names stored in the SM file. This causes any materials in the mesh assigned to that material name to instead display the default shader, which is all black in most cases. If you see all black faces, then that's an indication of broken shaders.
You can open the SM file in the hex-editor and do a quick search to find the material names. They will be in plain text and easy to see when you come across them. Then you can compare them with what you have in the RS file to check if they are correct. If you see material names in the SM file that don't exist in the RS file, then any faces that use that material will be all black. Broken texture paths usually result in "gray" faces instead as in that case the game loads the defaulttexture file for any shaders that link to textures it can't find or load.
freddy wrote:I know the Bf109 vanishes before it reaches the view distance limit in some maps, i dont like to use it in coral sea because of that.
It doesnt have the objectTemplate.cullRadiusScale 5 that the other planes have
The game defaults to cullRadiusScale 1 I think if the command is left unspecified. Also check the lod switcher and compare the distance settings to the distance settings setup in the geometry template of the main hull. But most likely the missing CullRadiusScale command is the source of that issue.
exe wrote:
I tried a couple of seemingly nonsensical numbers like
Code: Select all
GeometryTemplate.setLodDistance 100 10
but that either crashed the game or had no effect.
That command is being used incorrectly. The first number is the LOD number. The first and main lod is is "0" and the next is "1", then "2", etc.
Most meshes don't have more then 6 or 7.
The second number defines what distance that lod will activate at. So for example here's a normal setup:
Code: Select all
GeometryTemplate.setLodDistance 0 0
GeometryTemplate.setLodDistance 1 10
GeometryTemplate.setLodDistance 2 15
GeometryTemplate.setLodDistance 3 30
GeometryTemplate.setLodDistance 4 50
GeometryTemplate.setLodDistance 5 100
Each lod after usually activates at a distance greater then the one before it. If you set some to appear out of order and before previous ones, you might get a crash or it may just not work or do anything.
There's another command that works like this but is little used. Thus far I've only seen it used on the Parachute object and the geometries for soldiers. But it works for all other normal geometry templates too:
Code: Select all
GeometryTemplate.setLodRange 0 0 1 25 2 50
GeometryTemplate.setLodRange 3 128 4 256 5 512
The lod range command excepts a maximum of 6 integers. The very first defines the first lod number (they are usually always 0 0. Since the first LOD is always displayed at zero distance).
The number after that is the distance that lod ID activates. Then the number after that defines the next LOD id. It's easy to see the pattern once you know how to use the command. Since you can't define more then 3 LODs in one command you can create more that start with higher LOD ids like I've shown above.
I sometimes use this just to save on line space in the con file. But since it functions pretty much the same way as the normal setLodDistance command, you don't really have to use one over the other.
