Visibility flags

  • Visibility flags tell LOTUS when to render which mesh of the vehicle and when to save which detail to improve performance.

    1 Introduction

    Drawcalls represent a considerable part of the utilization of graphic resources. LOTUS optimizes this number by combining objects with identical properties (same materials, same textures, same animation settings, etc.) in the Content Tool when exporting a vehicle. However, a much larger part of the optimization cannot be done by LOTUS itself: The decision, when which detail is important for the players and has to be displayed.


    An example:

    A train with three car bodies and two identical driver's cabs consists of a very high number of sub-objects, since the individual switches and buttons in both driver's cabs, the individual levels of the window panes and those of the hinged windows, the individual different objects of each folding door leaf, the detail objects in the car, such as stop request buttons and so on, are taken into account by LOTUS in each frame.


    This behavior can be greatly optimized by the content creator creating so-called "reduced meshes" for each car part and cockpit, which replace the detailed meshes from certain perspectives. The second driver's platform would then be visible from the first driver's platform, but the buttons would not be animated or illuminated, as these details would not be visible from this perspective anyway.


    There are some principles for optimizing these settings that will be explained below.

    2 Principles

    The possible flags for a vehicle are:

    • Exterior view (F3)
    • AI / Multiplayer / ...
    • Driver's platform 1
    • Driver's platform 2
    • Passenger compartments 1-8

    Up to two driver's cabs and up to eight passenger compartments (usually individual cars) can be taken into account in the vehicle. The decision, which subobject (or mesh) should be visible when, is a question of whether it has to function completely afterwards in the perspective, that means including animations or material changes (e.g. to the visible light). If this is not necessary, the affected flag can be removed. A few examples of typical decisions:

    • Door leaves should be set for all perspective flags, as the state of the doors (open, closed or moving) should be visible from every part of the car and also from AI or multiplayer vehicles.
    • Animated door rubbers, on the other hand, are only visible where you are close enough to the door to see the rubber at all:
      • Door 1 gets the flags: driver's platform 1, passenger compartment 1, exterior view
      • Door 2 gets the flags: Passenger compartment 1, exterior view - from the driver's platform you don't have to be able to see this rubber anymore, so you can save it
    • Holding bars, which do not normally belong to the inner mesh because of their material properties and repaintability, can be reduced in groups - it has proved successful to dispense with some horizontal bars and leave vertical bars everywhere instead.
    • Cockpit switches which cannot illuminate themselves are only visible in the corresponding driver's platform, whereas indicator lamps or illuminated switches may also be visible from the adjacent passenger compartment in order to be able to see their lamps from there - but not in the case of third-party vehicles.
    • If passenger compartment luminaires are also to be seen "illuminated", they must of course be flagged. In some cases, e.g. with a distant car body or a foreign vehicle, it is only important that the room is illuminated and not that you can see the light source itself - and the lighting of the room is independent of the visibility flag of the object that is illuminated!
    • The individual levels of the window panes, e.g. normal, rain, dirt and stickers, do not have to be visible from every perspective. A decision must be made on a case-by-case basis, but as a rule it is not possible to perceive rain or dirt from all perspectives - the level can then also be switched off. Rain or dirt in the second operator's platform, for example, can also be switched off for the first operator's platform, as it cannot be seen anyway.

    The most important flags are those of the driver's cabs, because a player spends most of the time playing here and needs the best performance there. For each individual object, you should carefully consider whether the driver really needs to see it animated, glowing or with a high degree of detail when turning around. For most objects this is not the case and they can be saved. Every tick removed from the driver's cab is a success!


    A little more tricky is the decision, what should be visible from the outside, because you can walk around the whole vehicle and LOTUS doesn't distinguish where you look at the vehicle. It has proven to be useful to include details that are really important and often visible, such as door details or interior lamps, but to dispense with objects that are merely a detail of the interior, such as small table shelves for the passenger or stop request buttons.


    If, after setting all flags for each object, you would leave the vehicle like this, the player would see a hole in the simulation instead of the objects that were left out in the perspective, which of course was not the goal. Instead, for each flag individually or for several flags together, one or more reduced meshes can be specified, which are automatically used in these perspectives. This mesh should include as many objects as possible that are not visible in this perspective - optimally according to the strict rules of drawcall reduction: one object, one material (texture), one or identical settings. The opportunity to break this constraint should not exist, otherwise the object should not belong in the reduced mesh (e.g. if it should still glow or be animated).


    So the reduced meshes for the single perspectives contain - only! - the objects that are not visible in these perspectives and combine them into a single object if possible. Here also details can be saved very gladly, like extremely small or unimportant or not necessarily important objects. For example, the driver's platform of the AI does not need any modeled switches.


    Finally a very important consideration: LOTUS has three graphic options, which when activated ignores the reduced meshes of one of the three vehicle categories (own vehicle, vehicles in own train, foreign vehicles) and renders all detail meshes instead. Of course, the individual PC must be able to cope with this option, but when recording videos, for example, it may be desirable to select unusual camera perspectives and still see all the details. The desire to see all details in other perspectives should therefore not be considered when setting the flags, since there is an option for this case!

    3 Instructions

    1. Loading a vehicle in the ContentTool
    2. Select a subobject (see list on the right).
    3. Open the "Selected mesh" tab on the left.
    4. Make visibility settings after making the following decision:
      1. Does the object have to be animated separately from a certain perspective, shine by itself or something similar?
      2. If No: Remove perspective flag and select object for reduced mesh. In addition:
      3. In addition in the reduced mesh: Does the object have to be present (i.e. visible) or designed (i.e. close-up visible) in the reduced mesh or can it be removed or provided in a simplified form?

    Once all the flags have been assigned, the various perspective flags can be switched through under the "Test environment" tab. If no reduced meshes have been applied yet, this function makes it easy to see which detail could still be omitted.


    In order to connect the flags with the actual camera perspectives afterwards or in ego mode with the position of the player, it has to be determined where driver's platform 1 and 2 are located and where which passenger compartment (up to 8 ) is defined. Since a real car usually also has its own car part numbers, car numbers or driver's workplace designations, you can note the assignment to the flags so that you do not accidentally change them in the course of setting the flags. Experience shows that changing the conventional division into A, C and B wagons into passenger compartments 1, 2 and 3 can lead to problems from a certain degree of burn out and should therefore really be written down. ;)



    The two driver driver's desks are identified by the cockpit index, 0 and 1, which is managed under the camera settings of the respective cockpit camera(s):


    The passenger compartments are only defined by the coordinates of their transitions - LOTUS automatically calculates the number of compartments set up. It is therefore not possible to differentiate between passenger rooms 1, 2 and 8 in the flags for any reason, as LOTUS will then identify passenger rooms 1, 2 and 3 at two transitions - also in exactly this order!


    Since in the selected example three passenger compartments are provided (there should also be more, which does not constitute an advantage or disadvantage for LOTUS, as eight is assumed anyway), two transitions are given. In order to determine the Y-coordinates, the bogies located randomly under the transitions can be used here.


    When all fine-tuning is complete, it is recommended to use the Flag Settings Plot switch located under the Test Environment tab of the Flag Test Selection. Next to the *.lob file of the loaded vehicle a text file will be created in which the visible and invisible meshes for all flags are listed. Here you can see (with a high number of objects almost unavoidable) irregularities - e.g. an object in car 1 is visible from the second driver's platform, but the same object in car 3 is not visible from the first driver's platform.


    This list can now be used to create the reduced mesh for the individual perspectives in the 3D program of confidence. Using several different reduced meshes (e.g. a separate one for each perspective) has the advantage that it is possible to distinguish exactly what is to be seen from which perspective (e.g. to distinguish between adjacent and non-adjacent cars or driver's cabs), but the disadvantage that the whole object becomes more extensive.


    The reduced meshes are flagged with the corresponding visibility flags after import and the check mark "is a reduced mesh" so that it is recognized as such by the option to ignore it in your own vehicle. The reduced meshes should not be applied during the intensive construction phase, as they must be exactly exclusive with the non-reduced meshes and should not be visible at the same time to prevent flickering and flickering. This means that if visibility flags are subsequently changed, the counterpart (the reduced mesh) must also be adapted and re-imported.

    4 Tips and Tricks

    In the following a few tricks from practice:

    • Bogies are normally not visible from the inside, but if a longer vehicle drives in a bend, you could see the bogies of the front body from the rear car and vice versa - and if these were not animated, it could quickly look stupid. The same is true for eye-catching details on the outside, such as turn signals or headlights. Here you should check regularly whether the detail is not important enough to be able to see it properly in special situations, like driving in a bend. For the driver's cabs, we recommend that you do without it if necessary. On the one hand you should concentrate on driving and not constantly look back and observe the train so closely that you would notice non-animated axles or non-illuminated turn signals of your own vehicle, on the other hand you should save decently but inconspicuously in the driver's cab - the details mentioned are definitely candidates for saving. Just give it a try, it certainly depends on the individual vehicle.
    • To the same extent, certain interior details can be visible from adjacent cars (don't forget: visible in connection with the flag means that they can be animated or glow, which is the reason why they are their own sub-object -- generally visible (instead of a hole) they become visible through the reduced mesh, if necessary). The treads of a door near a transition, for example, or even hinged windows, are saved from the driver's platform, but are animated in one's own car and in the adjoining car, and are therefore not moved into the reduced mesh for these perspectives.
    • With the reduced mesh, many details can be omitted completely, such as a part of the (mainly vertical) holding bars or the connecting sleeves of the remaining holding bars, etc. It is important that the additional letters are not forgotten during the reduction! Under certain circumstances, 1-2 window levels (e.g. normal and perhaps still advertising) are perfectly sufficient.
    • Foreign vehicles (AI / Multiplayer) can only be seen from the outside (perhaps from the outside), but never from the inside, since the moment you enter the vehicle (at least temporarily) you turn it into a user vehicle.
    • It is advisable not to make inner windows visible from the outside, even if this hurts the idealists. :) On the other hand, the graphics option activates all meshes again, if you want to see the inside of the advertising print on the opposite side from the outside.
    • AI models should be extremely economical due to the potential number of vehicles in the field of view! The driver also sees his own vehicle as an AI model in the rear-view mirror.

    5 Examples

    To conclude, here are a few examples that can be used as a starting point for orientation. It is important that a "simple" mesh, which under certain circumstances should replace a "complex" mesh, always has exactly the "reversed" visibility flags.


    The first table now shows the recommended visibility flags for different meshes:



    The following table now refers to this and shows from which perspectives the mesh is visible depending on the LOTUS settings. The header line encodes which options are switched on and off:

    • X X X = Reduced Meshs in own vehicle, in own train and for other vehicles are switched ON
    • O X X = Only reduced meshes in own train and for other vehicles are switched ON, reduced meshes in own vehicle are switched OFF
    • O O X = Only reduced mesh for third party vehicles is switched ON, the other two are switched OFF.
    • O O O = All three options are OFF