• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

[SOLVED] Approach lights

Messages
87
Country
sweden
Hello,

I'm a novice using SODE. I wanted to implement an approach light system that's completely automated. For example the lights would come on during low visibility, night time and only visible from a certain direction. The lights would consist of effects. How could I do this? I know this isn't a precise question but I'm completely clueless.
 
I didnt do with effects just texture poly and "play" around with mipmaps when the first is normal and the last is more lighted 8 mipmaps and add it manually with imagetool on every light spot i put 3 poly day is totaly black night with light dot
 
Effects is not the ideal. Rather make them as rosdvd said (a 3D model with a vertical rectangular polygon for the light, diffuse textured for the day as a 'dummy' invisible texture and a halo texture for the night.The latter with inverted mipmaps). There is a thread somewhere around on this site that explains it better.
Nevertheless, I do hope that someone from SODE (or somebody else with more experience in SODE than I have) joins the thread to explain how to get this working in SODE as a PCL or a lit up one in foggy conditions.
 
Use this code to set up your object to appear DUSK,DAWN,NIGHT or when the visibility drops below a certain point (4000m in the example). Just replace the *** with the correct data.

Code:
<SimObject Name="***">
        <Placement Lat="***" Lon="***" Alt="***" Hdg="***"/>
        <Model SimTitle="***">
            <ConditionalVisibility LogicExpression="A|B">
                <Condition ID="A" Variable="MetVisibility" Value="0-4000"/>
                <Condition ID="B" Variable="TimeOfDay" Value="DUSK;DAWN;NIGHT"/>
            </ConditionalVisibility>
        </Model>
</SimObject>

No need for a day night texture - just one texture set up with the right material setting will work day or night.
 
Thank you!

Does the simobject need a placement in the xml or can it be in a seperate placement file made by IS for instance?
I think that way it would also mean you would need two models: one for the day without lights plus the one for dawn, dusk, night and fogged with lights?
 
Last edited:
Use this code to set up your object to appear DUSK,DAWN,NIGHT or when the visibility drops below a certain point (4000m in the example). Just replace the *** with the correct data.

Code:
<SimObject Name="***">
        <Placement Lat="***" Lon="***" Alt="***" Hdg="***"/>
        <Model SimTitle="***">
            <ConditionalVisibility LogicExpression="A|B">
                <Condition ID="A" Variable="MetVisibility" Value="0-4000"/>
                <Condition ID="B" Variable="TimeOfDay" Value="DUSK;DAWN;NIGHT"/>
            </ConditionalVisibility>
        </Model>
</SimObject>

No need for a day night texture - just one texture set up with the right material setting will work day or night.

And how does one implement the separation pane principle so that a light is only visible in a certain range of horizontal and vertical degrees? My understanding was that it isn't possible to have both compond conditionals and a separation pane for an object at the same time?
 
For my approach lights, I use certain techniques as written above, and some slightly altered ones. However it's a matter of preference.

By using vertical planes in GMAX (and by extension a vertical Normal), the texture will only display on one side so you don't need separation planes on the app lights. Therefore you can implement them with conditions as mentioned previously.

Where I differ to the above is on the texturing, and again is a matter of taste. Where the tutorial in the Wiki and what rosdvd wrote states to have a black day texture and progressively brighter mipmaps, I find this washes the colour out which is especially bad for PAPIs (or endlights etc) and also doesn't allow the lights to be displayed during the day.

The way I do it is to have a large plane in GMAX, create a single 1024x1024 texture for use with both day and night as ianj stated, with a small light dot in it, then make the light dot progressively bigger through the smaller mipmaps. This enables the colour to be seen at long range without washing out. However the tradeoff is by the time you get to the last mipmap, you've essentially got a square light, but still visible at greater than 10nm. More refinement might be feasible but it's ok for now. Another issue is that for the light to not disappear after about 30 metres you need a large hidden plane underground, per textured light. They shouldn't drain any noticeable FPS unless you are right on the border of stuttering anyway.

Also for the model placement, I have the fixed model (light pole and fitting etc) placed in Whisplacer, then only the "light" placed in the SODE XML. So this method does require 2 models but only one placed in SODE.

Let me know if you need anything else.
 
For my approach lights, I use certain techniques as written above, and some slightly altered ones. However it's a matter of preference.

By using vertical planes in GMAX (and by extension a vertical Normal), the texture will only display on one side so you don't need separation planes on the app lights. Therefore you can implement them with conditions as mentioned previously.

Where I differ to the above is on the texturing, and again is a matter of taste. Where the tutorial in the Wiki and what rosdvd wrote states to have a black day texture and progressively brighter mipmaps, I find this washes the colour out which is especially bad for PAPIs (or endlights etc) and also doesn't allow the lights to be displayed during the day.

The way I do it is to have a large plane in GMAX, create a single 1024x1024 texture for use with both day and night as ianj stated, with a small light dot in it, then make the light dot progressively bigger through the smaller mipmaps. This enables the colour to be seen at long range without washing out. However the tradeoff is by the time you get to the last mipmap, you've essentially got a square light, but still visible at greater than 10nm. More refinement might be feasible but it's ok for now. Another issue is that for the light to not disappear after about 30 metres you need a large hidden plane underground, per textured light. They shouldn't drain any noticeable FPS unless you are right on the border of stuttering anyway.

Also for the model placement, I have the fixed model (light pole and fitting etc) placed in Whisplacer, then only the "light" placed in the SODE XML. So this method does require 2 models but only one placed in SODE.

Let me know if you need anything else.

If I've understood your method correctly, the light would be "flat", which I'm not really a fan of. Please do correct me if I'm wrong though. I have a few ideas for the actual light in 3D but It requires a non-flat object to only be visible from a certain direction.
 
Yes the light would be flat with transparent edges, although I've never seen any approach lighting that's not flat. Runway edge lighting obviously isn't, but since app lights are unidirectional they are contained within a casing which means that they appear flat to an approaching aircraft. You could make a 3D object which brings the light out slightly so it's not a flat plane, but I would think that would create unnecessary polygons that a CPU/GPU would need to render. It would also mean that in order to get it to display at great distance, the object would need to grow as it would get very small very quickly and the mipmaps wouldn't help on that (unless it works with the whitewash method).

Alternatively you could create a cross plane where the facing light is one sided but the cross light is double sided. Then they merge from a viewer's point of view and create a "3D" effect. This does mean however that the light can be seen from > 90* to the lamp itself which isn't right in real life. This is what I've done for dual-coloured edge lighting.
 
Hi,

I had done it the way 6maynew described, i.e. a 3D model plus a large vertical polygon textured black at the back side and textured with a halo with inverted mipmaps at the front side and in the material settings a dummy for daytime and the LM halo. So, when using the SODE technique, I now understand that I indeed need another model without the vertical polygon for the daytime and need not have a dummy day texture for the 'SODE' model.
For the runway edge lights, it would work as well (also when viewed from the side) because in that case you need two vertical polys very close to eachother and facing each the opposite direction (white and yellow lights!). They would remain visible from the side as well and would change color the moment you pass the 90º point.
 
Hello All
Sorry to open this topic again
but I have the problem with rwy light during low visibility the model it's lit up at night but doesn't lit at low visibility, fog or so

<!--RWY_lights-->
<SimObject Name="rwy_lights">
<Placement Lat="45.6274718796523" Lon="8.71327916953544" Alt="0#AGL" Hdg="79.069" />
<Model SimTitle="DRS_Limc_rwy_lights">
<ConditionalVisibility LogicExpression="A|B">
<Condition ID="A" Variable="MetVisibility" Value="0-4000"/>
<Condition ID="B" Variable="TimeOfDay" Value="DUSK;DAWN;NIGHT"/>
</ConditionalVisibility>
</Model>
</SimObject>
I also tried increase the range value "0-10000" and in the <ConditionalVisibility LogicExpression="A$B">
any help will be great
Regards
David

https://www.facebook.com/Davidfsx/
 

Attachments

  • 2016-11-9_14-58-1-936.jpg
    2016-11-9_14-58-1-936.jpg
    253.6 KB · Views: 452
  • 2016-11-9_15-0-24-60.jpg
    2016-11-9_15-0-24-60.jpg
    77.6 KB · Views: 536
:banghead:Still no go
I did lot of variations on XML
this is the Probe
<SODE>
<!-- Data Probe serving its clients -->
<SimObject Name="Milan Malpensa limc">
<Placement Lat="45.629900023" Lon="8.723094463" Alt="233.78" Hdg="0.0" />
<Model SimTitle="Environmental_Data_Probe">
<EnvironmentalDataProbe ClientList="DRS_Limc_rwy_lights"/>
</Model>
</SimObject>
(it copy'd from the afcad proprieties )
and in the Rwy_light

<!--RWY_lights-->
<SimObject Name="rwy_lights">
<Placement Lat="45.6274718796523" Lon="8.71327916953544" Alt="0#AGL" Hdg="79.069" />
<Model SimTitle="DRS_Limc_rwy_lights">
<ConditionalVisibility LogicExpression="A|B">
<Condition ID="A" Variable="MetVisibility" Value="0-10000"/>
<Condition ID="B" Variable="TimeOfDay" Value="DAWN;DUSK;NIGHT"/>
</ConditionalVisibility>
</Model>
</SimObject>

I try'ed few option just for checking by removing

<Condition ID="A" Variable="TimeOfDay" Value="DAWN;DUSK;NIGHT"/>
(only "A" condition)
it's works! there is light I mean it's works in day low visibility! :)
another check is adding just to see if there is light
<ConditionalVisibility LogicExpression="A|B"> try'ed $
<Condition ID="A" Variable="MetVisibility" Value="0-10000"/>
<Condition ID="B" Variable="TimeOfDay" Value="DAWN;DUSK;NIGHT;DAY"/>
also change the order between the 2 condition
:(
thanks for any help
David
 
Hi,

there is an error in your xml

try this :

<Model SimTitle="12bPilot_SODE_Environmental_Data_Probe">
 
Thanks Jacques
<SODE>
<!-- Data Probe serving its clients -->
<SimObject Name="Milan Malpensa limc">
<Placement Lat="45.629900023" Lon="8.723094463" Alt="233.78" Hdg="0.0" />
<Model SimTitle="12bPilot_SODE_Environmental_Data_Probe">
<EnvironmentalDataProbe ClientList="DRS_Limc_rwy_lights"/>
</Model>
</SimObject>
Just Try'ed :banghead:
no go :(
 
:wizard:YES YES the magic Works

Thanks for the Help

This night I'll sleep like a 69 old baby

Regards

David
 
Back
Top