1
0
Fork 0
fgdata/Environment/interpolator.xml
Torsten Dreyer edbff6bd34 Refactor weather-utility.nas
A bug in weather-utility.nas caused constant computation
of wave parameters due to the fact that the wind speed
was ignored.

That code was ugly anyway, so it has been replaced by
property rules which don't create work for the nasal
garbage collector.

All required properties for the wave shader are now in
interpolator.xml, the snow-line computation lives in
metarinterpolator.xml
2012-01-19 00:05:48 +01:00

382 lines
11 KiB
XML

<?xml version="1.0" ?>
<!--
This file is part of FlightGear, the free flight simulator
http://www.flightgear.org/
Copyright (C) 2009 Torsten Dreyer, Torsten (at) t3r _dot_ de
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
-->
<!--
Interpolate the values of /environment/interpolated/* over time
and write the results to /environment/*, the environment of our
aircraft
All filters are enabled on /environment/config/enabled=true
-->
<PropertyList>
<filter>
<name>EnvironmentInterpolator:temperature-sea-level-degc</name>
<enable>
<condition>
<property>/environment/config/enabled</property>
</condition>
</enable>
<input>/environment/config/interpolated/temperature-sea-level-degc</input>
<output>/environment/temperature-sea-level-degc</output>
<type>noise-spike</type>
<max-rate-of-change>0.1667</max-rate-of-change>
</filter>
<filter>
<name>EnvironmentInterpolator:dewpoint-sea-level-degc</name>
<enable>
<condition>
<property>/environment/config/enabled</property>
</condition>
</enable>
<input>/environment/config/interpolated/dewpoint-sea-level-degc</input>
<output>/environment/dewpoint-sea-level-degc</output>
<type>noise-spike</type>
<max-rate-of-change>0.1667</max-rate-of-change>
</filter>
<filter>
<!--
transfer the interpolated QNH to the global environment
limit the rate of change to approx 1hpa/sec
-->
<name>EnvironmentInterpolator:pressure-sea-level-inhg</name>
<type>noise-spike</type>
<max-rate-of-change>0.03</max-rate-of-change>
<enable>
<condition>
<property>/environment/config/enabled</property>
</condition>
</enable>
<input>/environment/config/interpolated/pressure-sea-level-inhg</input>
<output>/environment/pressure-sea-level-inhg</output>
</filter>
<filter>
<name>EnvironmentInterpolator:visibility-m</name>
<enable>
<condition>
<property>/environment/config/enabled</property>
</condition>
</enable>
<input>
<condition>
<property>/environment/config/presets/visibility-m-override</property>
</condition>
<property>/environment/config/presets/visibility-m</property>
</input>
<input>/environment/config/interpolated/visibility-m</input>
<output>/environment/visibility-m</output>
<type>exponential</type>
<filter-time>2</filter-time>
</filter>
<!--
filter the wind vector by filtering the cartesian representation
-->
<filter>
<name>EnvironmentInterpolator:wind-from-north</name>
<enable>
<condition>
<property>/environment/config/enabled</property>
</condition>
</enable>
<input>
<condition>
<property>/environment/config/presets/wind-override</property>
</condition>
<property>/environment/config/presets/wind-from-north-fps</property>
</input>
<input>/environment/config/interpolated/wind-from-north-fps</input>
<output>/environment/wind-from-north-fps</output>
<type>exponential</type>
<filter-time>5</filter-time>
</filter>
<filter>
<name>EnvironmentInterpolator:wind-from-east</name>
<enable>
<condition>
<property>/environment/config/enabled</property>
</condition>
</enable>
<input>
<condition>
<property>/environment/config/presets/wind-override</property>
</condition>
<property>/environment/config/presets/wind-from-east-fps</property>
</input>
<input>/environment/config/interpolated/wind-from-east-fps</input>
<output>/environment/wind-from-east-fps</output>
<type>exponential</type>
<filter-time>5</filter-time>
</filter>
<filter>
<name>EnvironmentInterpolator:wind-from-down</name>
<input>
<expression>
<sum>
<property>/environment/thermal-lift-fps</property>
<property>/environment/ridge-lift-fps</property>
<property>/environment/local-weather-lift-fps</property>
</sum>
</expression>
</input>
<output>/environment/wind-from-down-fps</output>
<type>exponential</type>
<filter-time>0.5</filter-time>
</filter>
<filter>
<name>EnvironmentInterpolator:turbulence-raw-magnitude</name>
<enable>
<condition>
<property>/environment/config/enabled</property>
</condition>
</enable>
<input>
<condition>
<property>/environment/config/presets/turbulence-magnitude-norm-override</property>
</condition>
<property>/environment/config/presets/turbulence-magnitude-norm</property>
</input>
<input>
<property>/environment/config/interpolated/turbulence/magnitude-norm</property>
</input>
<output>/environment/turbulence/raw-magnitude-norm</output>
<type>exponential</type>
<filter-time>1</filter-time>
</filter>
<filter>
<name>EnvironmentInterpolator:turbulence-magnitude</name>
<enable>
<condition>
<property>/environment/config/enabled</property>
</condition>
</enable>
<input>
<expression>
<pow>
<property>/environment/turbulence/raw-magnitude-norm</property>
<property>/environment/turbulence/sensitivity</property>
</pow>
</expression>
</input>
<output>/environment/turbulence/magnitude-norm</output>
<type>gain</type>
<gain>1</gain>
</filter>
<filter>
<name>EnvironmentInterpolator:turbulence-rate</name>
<enable>
<condition>
<property>/environment/config/enabled</property>
</condition>
</enable>
<input>/environment/config/interpolated/turbulence/rate-hz</input>
<output>/environment/turbulence/rate-hz</output>
<type>exponential</type>
<filter-time>1</filter-time>
</filter>
<!-- replace weather-utility.nas -->
<!--
#this utility is a workaround for the fact that a shader uses listeners which cannot
# be used with a tied property
-->
<filter>
<name>EnvironmentInterpolator:wave:wind-from-east-fps</name>
<input>/environment/config/boundary/entry[0]/wind-from-east-fps</input>
<output>/environment/sea/surface/wind-from-east-fps</output>
<type>gain</type>
<gain>1</gain>
</filter>
<filter>
<name>EnvironmentInterpolator:wave:wind-from-north-fps</name>
<input>/environment/config/boundary/entry[0]/wind-from-north-fps</input>
<output>/environment/sea/surface/wind-from-north-fps</output>
<type>gain</type>
<gain>1</gain>
</filter>
<filter>
<name>EnvironmentInterpolator:wave:wind-from-heading-deg</name>
<input>/environment/config/boundary/entry[0]/wind-from-heading-deg</input>
<output>/environment/sea/surface/wind-from-deg</output>
<type>gain</type>
<gain>1</gain>
</filter>
<filter>
<name>EnvironmentInterpolator:wave:wind-speed-kt</name>
<input>/environment/config/boundary/entry[0]/wind-speed-kt</input>
<output>/environment/sea/surface/wind-speed-kt</output>
<type>gain</type>
<gain>1</gain>
</filter>
<logic>
<name>EnvironmentInterpolator:wave:enabled</name>
<input>/environment/config/enabled</input>
<output>/environment/sea/config/enabled</output>
</logic>
<filter>
<name>EnvironmentInterpolator:model:heading</name>
<input>/orientation/heading-deg</input>
<output>/orientation/model/heading-deg</output>
<type>gain</type>
<gain>1</gain>
</filter>
<filter>
<name>EnvironmentInterpolator:model:pitch</name>
<input>/orientation/pitch-deg</input>
<output>/orientation/model/pitch-deg</output>
<type>gain</type>
<gain>1</gain>
</filter>
<filter>
<name>EnvironmentInterpolator:model:roll</name>
<type>gain</type>
<gain>1</gain>
<input>/orientation/roll-deg</input>
<output>/orientation/model/roll-deg</output>
</filter>
<filter>
<name>EnvironmentInterpolator:wave:amp</name>
<type>gain</type>
<gain>1</gain>
<input>
<expression>
<sum>
<value>1.0</value>
<product>
<value>0.02</value>
<property>/environment/sea/surface/wind-speed-kt</property>
</product>
</sum>
</expression>
</input>
<output>/environment/wave/amp</output>
<min>1.0</min>
<max>2.0</max>
</filter>
<filter>
<name>EnvironmentInterpolator:wave:angle</name>
<type>gain</type>
<gain>1</gain>
<input>
<expression>
<sum>
<value>35.0</value>
<product>
<value>0.2</value>
<property>/environment/sea/surface/wind-speed-kt</property>
</product>
</sum>
</expression>
</input>
<output>/environment/wave/angle</output>
</filter>
<filter>
<name>EnvironmentInterpolator:wave:dangle</name>
<type>gain</type>
<gain>1</gain>
<input>
<expression>
<difference>
<value>20.0</value>
<product>
<value>0.4</value>
<property>/environment/sea/surface/wind-speed-kt</property>
</product>
</difference>
</expression>
</input>
<output>/environment/wave/dangle</output>
</filter>
<filter>
<name>EnvironmentInterpolator:wave:freq</name>
<type>gain</type>
<gain>1</gain>
<input>
<expression>
<sum>
<value>0.01</value>
<product>
<value>0.0008</value>
<property>/environment/sea/surface/wind-speed-kt</property>
</product>
</sum>
</expression>
</input>
<output>/environment/wave/freq</output>
<min>0.01</min>
<max>0.015</max>
</filter>
<filter>
<name>EnvironmentInterpolator:wave:factor</name>
<type>gain</type>
<gain>1</gain>
<input>
<expression>
<difference>
<value>0.0004</value>
<product>
<value>0.00001</value>
<property>/environment/sea/surface/wind-speed-kt</property>
</product>
</difference>
</expression>
</input>
<output>/environment/wave/factor</output>
<min>0.0001</min>
<max>0.0004</max>
</filter>
<filter>
<name>EnvironmentInterpolator:wave:sharp</name>
<type>gain</type>
<gain>1</gain>
<input>
<expression>
<sum>
<value>1.0</value>
<product>
<value>0.02</value>
<property>/environment/sea/surface/wind-speed-kt</property>
</product>
</sum>
</expression>
</input>
<output>/environment/wave/sharp</output>
<min>1.0</min>
<max>2.0</max>
</filter>
</PropertyList>