Level Of Detail | |
Playermodels in ET are build-up from a lot of triangles. Each triangle is a face, made of (of course) 3 vertices. To gain some speed in rendering, the game can lower the detail of playermodel. Depending on the distance to a playermodel, the game will draw a somewhat different version of the model. The further away the model is, the less detailed it will be drawn. The closer it gets to the viewer, the more detail is brought back into the playermodel. This feature is called Level-Of-Detail, or in short: LOD. There is a limit of how much the original model (the highest possible LOD) will be lowered in detail. The lowest LOD is called the LOD_minimum. The LOD_minimum is a value indicating the number of vertices that are used to draw the playermodel. If the LOD_minimum has been reached, the game will stop lowering LOD, even when the model is moving further and further away. The LOD-data is stored in a model, and has to be calculated only once. While playing, the game will automaticly change LOD on playermodels, and nothing has to be calculated again. | |
In-game examples of changing LOD | |
![]() ![]() ![]() ![]() | |
notice the right-elbow of the medic, and the back of the fieldops.. | |
ET's original playermodels all have LOD-data in the models already, but if You are creating Your own playermodels this LOD-data may not be present at all. If a playermodel has no LOD-data, triangles can go invisible, and the model will look wrong. | |
Calculating LOD | |
This tool can calculate the data needed for LOD. On the 'View'-Tab on the 'LOD'-panel it shows the status of the LOD-data in a model. The status can be present, absent or calculated. The next image shows an original playermodel, loaded from the game. You see that the LOD-data is 'present': | |
![]() | |
Custom model without LOD | |
Here is a playermodel that has no LOD-data. The 'LOD'-panel info shows it: 'absent' | |
![]() | |
Adding LOD-data | |
To calculate LOD for a playermodel is done by choosing the choice from the menu: "Calculate LOD" | |
![]() | |
LOD is now calculated | |
After the Level-Of-Detail has been calculated by the tool, the status on the 'LOD'-panel will indicate: 'calculated' | |
![]() | |
Enabling LOD | |
At first, You will see no difference on the playermodel. Only after enabling LOD the model will be displayed on the lowest Level-Of-Detail. As You can see, the model doesn't look too well. The LOD_minimum is set too low, and the triangles are connected in a freaky way.. Note: Enabling or disabling LOD with the checkbox does only toggle the displaying of the LOD model (vs. the normal view). It does not calculate anything, it just switches display-modes.. | |
![]() | |
Adjusting manually | |
I've drawn a red line, to indicate a region of the model that looks incorrect. The legs certainly need a higher value for LOD_minimum. Note: The LOD-routine works on surfaces. So select the surface for the legs now to start adjusting the LOD_minimum. The initial value for LOD_minimum of the legs is: 172 (from a total of 259 vertices in the legs-surface). | |
![]() | |
Increase the LOD_minimum per surface | |
Increase the LOD_minimum for the legs by using the slider. Note: You can drag the slider with the mouse. You can also select the slider, and then use the left- & right-arrow keys for finer control. Keep increasing the value until the legs look good enough (from this viewed angle). In this example the legs look well enough at about 193 vertices. | |
![]() | |
Checking from all angles | |
Rotate the view to check the surface from different angles. If You see more bad spots, keep increasing the value until the surface looks good enough again. You see that the legs still show a weird outline when viewed from this side: | |
![]() | |
Correcting until the surface is done | |
After increasing the surface LOD_minimum to about 198, the legs look well. Note: It all depends on the shape of Your playermodel what values are needed for a surface. For example the axis-fieldops with his long jacket will need different values. | |
![]() | |
Adjusting the next surface | |
Now that the legs are done, it's time to correct the next surface. The body shows a bad outline, so it needs some adjusting too. Select the surface with the up/down-control on the 'LOD'-panel. You see that the current value for LOD_minimum for this surface is set to 156. | |
![]() | |
Increasing LOD for this surface | |
Like before, keep increasing the minimum until the model looks well enough from this side. | |
![]() | |
View the model from different angles, and check its outline. | |
![]() | |
If nessecary, increase the LOD_minimum again, until it looks well enough. | |
![]() | |
When seen from the top, there is a bad "gap" where the upper-chest should be: | |
![]() | |
Correct it.. Meanwhile the LOD_minimum value has reached about 181 by now.. | |
![]() | |
Correcting all other surfaces | |
Go through all surfaces, and keep correcting them. Here is a view on the hands, after correction. | |
![]() | |
The final result | |
When all surfaces are corrected, the final model could look like this: | |
![]() | |
Saving the playermodel | |
Save the playermodel. The LOD-data will be stored in the model. This playermodel can now be used in the game, and will not "loose" its triangles anymore.. | |
![]() | |