FlightGear 视角控制
Posted 水滴工作室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FlightGear 视角控制相关的知识,希望对你有一定的参考价值。
Flightgear提供了非常灵活的模块化功能
这里就简要记录一下视角切换功能
首先,需要了解一下Flightgear中的property tree的主要内容,这里暂略。
http://wiki.flightgear.org/PropertyList_XML_files
然后,我们看官方说明(http://wiki.flightgear.org/Howto:Configure_camera_view_windows)
FlightGear‘s XML-configurable camera view 主要支持两种模式:
1. 假如你电脑连接了多个独立显示器(比如,你不能在显示器上前后拖拽窗口,也不能创建一个横跨多个显示器的大窗口),那你就可以配置FlightGear来打开一个分离的窗口,每块上面都显示一个特定角度的画面,然后分别显示在每个显示器上(当然,你也可以在一个显示器上打开多个窗口)
2. 如果你连接了多个显示器,并且将他们虚拟成了1个虚拟显示器。那么你可以配置FlightGear打开一个超大的能够扩展到所有显示器上的窗口,但也需要将这个大窗口分成多个相机看到的内容,然后在不同的显示器上显示。
要实现这一功能,需要修改 preferences.xml文件
但是,FlightGear并不建议这么做,为了主配置文件的稳定起见,将配置文件建立在外部,然后通过文件引用的方式使用。相关命令为:--config=path-to-your-config.xml 。
FlightGear的地景是通过OSG实现的,因此有个默认的配置文件为:$FG ROOT/preferences.xml. (实际FlightGear2016 .1.1中,在$FG ROOT/data,或者$FG ROOT/fgdata中)。
你可以通过添加配置文件,实现多个窗口,也可以在一个窗口中显示多个相机视角中的内容。当关闭其中任何一窗口时,整个程序关闭。
例:
1 <?xml version="1.0"?> 2 <PropertyList> 3 <camera> 4 <host-name type="string"></host-name> 5 <display>0</display> 6 <screen>0</screen> 7 <shear-x>2</shear-x> 8 <shear-y>1</shear-y> 9 <width>320</width> 10 <height>240</height> 11 <fullscreen type="bool">false</fullscreen> 12 </camera> 13 <camera> 14 <host-name type="string"></host-name> 15 <display>0</display> 16 <screen>0</screen> 17 <shear-x>-2</shear-x> 18 <shear-y>1</shear-y> 19 <width>320</width> 20 <height>240</height> 21 <fullscreen type="bool">false</fullscreen> 22 </camera> 23 </PropertyList>
这段代码放到rendering中,也就是,如果要引用的话,是这样的
1 <rendering include="camera-views.xml"> 2 ... 3 </rendering>
然后打开FlightGear,会发现,多了两个窗口,分别显示了不同的内容。
当然,你也可以通过<camera-group>标签来将两个视角放到一个窗口中。
这个后面我们再讨论吧,今天先到这里。
以上是关于FlightGear 视角控制的主要内容,如果未能解决你的问题,请参考以下文章
PX4模块设计之八:Ubuntu 20.04搭建FlightGear模拟器
nasal脚本起源与环境搭建(flightgear开源项目)
如何在使用WIN10 Visual Studio 2015 编译FlightGear源码(2020.1.1版本)