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>标签来将两个视角放到一个窗口中。

这个后面我们再讨论吧,今天先到这里。

时间: 2025-01-18 01:17:07

FlightGear 视角控制的相关文章

Unity实现游戏中摄像机视角控制

using UnityEngine; using System.Collections; public class NewCamera : MonoBehaviour { public GameObject cameraFather; public Transform target; public float rotatespeed; public float scalespeed; public float min; public float max; public Transform obj

camera视角控制以及定位观察

1.类似英雄联盟的相机控制 using UnityEngine;using System.Collections; public class CameraCntrl : MonoBehaviour { public float camSpeed = 1; public int GUIsize = 25; public Transform target; public bool cameraLocked = false; void Update() { if(Input.GetKeyDown(Ke

【淡墨Unity3D Shader计划】五 圣诞用品: Unity在Shader三种形式的控制&amp;amp;混合操作编译

本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/42060963 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 邮箱: [email protected] 文章开头,先给自己诚求个游戏研发实习的好去处. 浅墨今年1月.明年上半年有近半年的空暇时间可供实习. 近5年游戏编程经验,能够胜任全职的游戏开发工作.仅仅拿实习生的工资(性价比非常高有

如何使用threejs实现第一人称视角的移动

在数据可视化领域利用webgl来创建三维场景或VR已经越来越普遍,各种开发框架也应运而生.今天我们就通过最基本的threejs来完成第一人称视角的场景巡检功能.如果你是一位threejs的初学者或正打算入门,我强烈推荐你仔细阅读本文并在我的代码基础之上继续深入学习.因为它将是你能够在网上找到的最好的免费中文教程,通过本文你可以学习到一些基本的三维理论,threejs的api接口以及你应该掌握的数学知识.当然要想完全掌握threejs可能还有很长的路需要走,但至少今天我将带你入门并传授一些独特的学

【游戏】【指环王OL】我的中土之旅(一)

昨天下午收到了盼望已久的“至尊光盘”,晚上回家立刻安装客户端,没想到,一张DVD里面,确实装着的是完整的客户端,安装完毕就可以顺利进入游戏.游戏安装后的大小大概是8G左右.网一.守卫之塔.人类.盾卫.刚铎血统.皮肤黝黑的光头沧桑男.游戏时间不长,说一下我对游戏的一点感受.由于昨晚使用的电脑是我家里配置最低的一台,因此效果全是“低”,运行得很流畅.尽管效果是“低”,画面也尚属可以接受,人物的造型.衣着都比较写实,很喜欢.游戏的操作方式是鼠标加键盘,键盘控制人物的运动.技能释放,鼠标负责视角控制以及

Unity3D:实现人物转向与移动

在网上有非常多通过射线方式实现的人物行走控制脚本,可是假设仅仅是想通过键盘按键来控制的话.比方进行第三人称视角控制,事实上仅仅须要进行简单的角度变换就可以.思路例如以下: 1.依照顺时针方向设定前.右.后.左分别为0,1,2,3. 2.设定状态初值0,即朝向前方. 3.通过当前方向值减去前一次方向值,乘以90°即为转向角,然后进行旋转变换就可以. using UnityEngine; using System.Collections; using System.Linq; public clas

C#版官方角色控制器脚本

将官方自带的角色控制器脚本,改写为C#版,以下为所有代码: CharacterMotor.cs  主要设置角色控制的系数,如运动,跳跃,移动,滑动等.第一人称与第三人称主角模型的移动与旋转的角度最后都是在这里计算的. CharacterMotor.cs  代码: 1 using UnityEngine; 2 using System.Collections; 3 4 /** 5 *主要设置角色控制的系数,如运动,跳跃,移动,滑动等.第一人称与第三人称主角模型的移动与旋转的角度最后都是在这里计算的

【浅墨Unity3D Shader编程】之五 圣诞夜篇: Unity中Shader的三种形态对比&amp;混合操作合辑

本系列文章由@浅墨_毛星云 出品,转载请注明出处.  文章链接:http://hpw123.net/a/C__/kongzhitaichengxu/2014/1222/164.html 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 邮箱: [email protected] QQ交流群:330595914 更多文章尽在:http://www.hpw123.net 本文算是固定功能Shader的最后一篇,下一次更新应该就会开始讲解表面Shader,而

unity学习--005:模仿几种游戏操作方式的实现

结合前面的 角色控制和镜头控制 在这里实现几种综合的操作方式 1. CF类的 第一视角控制方式 此类操控方式将摄像机绑定猪脚头部模拟第一视角 移动方式以unity自带的CharacterController.Move()方法为基础进行改进. 首先给角色判定一个Camera和下面的C#脚本 public float speed = 3.0F; public float rotateSpeed = 3.0F; void Update() { CharacterController controlle