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>標簽來將兩個視角放到一個窗口中。

這個后面我們再討論吧,今天先到這里。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM