[转] VR-FORCES 介绍
转自:https://sanwen8.cn/p/1e6GQeK.html
今天给各位介绍的仿真平台是VR-Forces。VR-Forces是新加坡公司MAK的产品,前身是美国公司。在仿真平台领域里面,VR-Forces算得上是小兄弟了,年轻有好处也有坏处,下面听我慢慢道来。
1、VR-Forces概述
VR-Forces是一套先进的分布式计算机兵力生成软件和工具包,从名字就可以看出VR-Forces是用来做兵力推演的,最初的VR-Forces仅仅是为了配合VR-Link而开发的一个简单的FOM对象管理工具而已,是为了更好的管理兵力推演中的大量HLA实体的。而VR-Link可以简单地认为是RTI的一个封装,比直接使用RTI简单。
接下来有必要说一下背景了。MAK公司是做RTI起家的,他家的RTI绝对是COTS RTI中最强悍和稳定的RTI,也是仿真交互组织力推的RTI之一。因此VR-Forces从产生开始就遵循了RTI和HLA的特点并根植于RTI,如松散式集成,基于RTI的服务,利用FOM管理对象等。
从上面的图里面可以看出,VR-Forces提供了的分布式战场态势仿真功能和二维战场地图显示图形用户界面(4.x版本支持三维),底层通信支持HLA、DIS和TENA网络构架,通过VR-Forces工具包可以扩展该软件的仿真功能和定制用户界面。其中对TENA的支持是禁运的,不过俺们团队搞到了,嘿嘿......
2、VR-Forces技术架构分析
VR-Forces的技术架构如下图所示:
啊?又是这么简单?没搞错吧?是的,就是这样清爽!作为小弟的VR-Forces还是比较简单的,但它确实是遵循了MVC的新的建模思想,将界面、控制(引擎)和模型分开了。
从上图中可以看出,VR-Forces有两个执行文件组成,一个负责界面,一个负责引擎,分别通过各自的API与VR-Link相连。目前VR-Forces提供如下的API:
1)仿真API:用来定制或者扩展后台运行的仿真引擎;
2)界面API:用来定制或者扩展前台的图形用户界面,这是基于QT的,可以改造后部分支持中文。
3)远程控制API:从其他应用向VR-Forces后台引擎发送指令;
4)插件API:用来在现有的VR-Forces界面上开发新的补充功能,这种插件和PS的插件很相似,不能修改主界面和功能。
实体对象是VR-Forces中的核心对象,实体对象具有功能行为,可以执行任务。通过实体对象模型可以描述仿真实体的属性和行为。实体对象的属性对应仿真中实体的状态,实体对象的行为通过任务建模来实现。
VR-Forces对实体对象的描述借鉴了Agent的很多思想,一个实体对象的结构由四部分组成,如下图所示。
1) 传感器。负责模拟外部环境,涵盖了对复杂作战环境的探测、分类、识别和确认的全过程。
2) 控制器。控制器负责根据传感器的输入条件产生相应的动作或者任务,任务的传输是通过HLA的消息机制实现的。
3) 作动器。作动器表示了实体对象的物理模型,也就是模型自身的运动学或者动力学过程。作动器将控制器的指令输入后调用自身的计算模型完成作战使命。
4)实体状态。描述实体随着仿真推进而变化的本身的状态参数,通过与前面三个组件的交互使得实体状态得以不断更新。
3、VR-Forces技术优缺点分析
VR-Forces作为仿真平台界的后来者,从根本上采用了面向对象的建模方法和软件工程的实现方法。这个年轻的平台优缺点同样突出:
1)VR-Forces从内核里面就支持HLA,因此是HLA开发的强有力工具,但是对单机的支持就弱了,且不说RTIEXEC配置的复杂性,就是在单机也启动VR-LINK就够烦的了。
2)MVC架构加上大量设计模式的使用使得VR-Forces成为目前架构最先进的仿真框架之一。可惜的是MAK公司的战略注重在对外国用户的技术服务上,对国内应用现状了解太少,试问在国内的军方和工业部门的工科设计员中会熟练使用工厂类的人有几个?据小编了解,在国外MAK以技术服务为主,即为用户开发定制产品居多,但这一套拿到国内来就水土不服了。
3)二次定制和开发工作量巨大。VR-Forces内置的模型、实体对象均是美俄装备,而且按照DIS的命名规范组织,拿到国内来几乎没有用处,基本上全部需要定制开发。怪异的是MAK竟然连一个基本的类向导工具都没提供,只能按照例子自己修改,加上除了C++外还要学**MAK自己的脚本语言(STAGE也有),开发难度可想而知。
4)这点是我最不能忍受的——MAK产品更改的随意性!一个VR-Forces发展到4.X版本变化之大令人惊叹!在VR-Forces的升级中基本不考虑老用户的感受,API向下不兼容是常事,而且动不动架构也变化,连可视化内核也经历了从VP到OSG的巨变,可以说基本上没有延续性。这个问题对于一个年轻的平台来说尤为重要,哪个开发者愿意每次升级就要重新学**一边API的?
[转] VR-FORCES 介绍的更多相关文章
- 一些有意思的VR设备介绍
1.计算机(Computers) 不久以前,一个VR系统需要百万美元的超级计算机:而如今顶级的VR系统正在使用桌面便携式计算机簇,极大的降低了价格和维护成本. 2.跟踪器(Tracking) 为了能与 ...
- 《VR入门系列教程》之6---VR硬件介绍及DK1
第二章 VR硬件介绍 本章主要介绍当前比较流行的消费版VR设备,包括VR头显以及应用运行的PC和手机平台. 即使是在这工业高速发展的时代,一些大厂(比如Facebook的Oculus ...
- 《图说VR入门》——DK2入门及其资源汇总
本文章由cartzhang编写,转载请注明出处. 全部权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/53174895 作者:car ...
- GTC China 2016观感
上周二在北京参加了GTC China 2016,最大的感受就是一个字,“冷”!黄教主一如既往坚持机车皮夹克装,9月中旬的北京还没有那么的冷啊,感觉全场的空调简直是为他而开...好的,以上吐槽完毕,接着 ...
- VR全景项目外包团队— VR/AR相关领域介绍和VR全景案例
VR/AR相关领域这里我要说的一点就是硬件.诚然,硬件的确很难搞,国内在这方面就是荒漠,所以,如果你有信心,完全可以开拓一片蓝海.注意我是说真正的硬件,那些把Google的纸盒子拿来改改就能融资千万的 ...
- VR介绍
VR(Virtual Reality,即虚拟现实,简称VR),是由美国VPL公司创建人拉尼尔在20世纪80年代初提出的.其具体内涵是:综合利用计算机图形系统和各种现实及控制等接口设备,在计算机上生成的 ...
- 关于Daydream VR的最直白的介绍
虚拟现实(Virtual Reality),简称虚拟技术,也称虚拟环境,是利用电脑模拟产生一个三度空间的虚拟世界,提供用户关于视觉等感官的模拟,让用户如同身历其境一般,电脑可以立即进行复杂的运算,将精 ...
- 面试题 -AR VR MR以及CR的简单介绍
AR 增强现实技术(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像.视频.3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互 ...
- VR/AR 非技术总结
VR/AR 非技术总结 **欢迎转载~转载请注明Erma的博客 http://www.cnblogs.com/Erma-king/** 都说2016是VR/AR的元年,上半年我随着新技术的潮流进入了V ...
- iOS-多线程介绍
一.前言部分 最近在面试,重新温习了一遍多线程,希望加深一遍对于多线程的理解. 1.什么是进程? 1).要了解线程我们必须先了解进程,通俗来讲进程就是在系统中运行的一个应用程序. 2).每个线程之间是 ...
随机推荐
- Mac - 关闭隐藏文件显示(Terminal)
打开终端Terminal,输入:defaults write com.apple.finder AppleShowAllFiles -bool true 此命令显示隐藏文件defaults write ...
- Hibernate数据类型映射
Hibernate映射类型分为两种:内置的映射类型和客户化映射类型.内置映射类型负责把一些常见的Java类型映射到相应的SQL类型:此外,Hibernate还允许用户实现UserType或Compos ...
- Redis构建文章聚合信息分类网站
本系列教程内容提要 Java工程师之Redis实战系列教程教程是一个学习教程,是关于Java工程师的Redis知识的实战系列教程,本系列教程均以解决特定问题为目标,使用Redis快速解决在实际生产中的 ...
- wap启用宏
vba for wps office是使用wps的时候开启宏需要的VBA安装包,安装好这个插件就可以开启wps的宏功能了,重新打开WPS Excel,可以看到上面的工具栏中宏选项变成可选的就成功了 1 ...
- 限制ip ssh远程登录
有时候为了服务器的安全考虑,我们可以在服务器上做限制,禁止其他ip地址连接服务器. 方法一:修改ssh配置文件 其实做这个操作很简单,只需要改/etc/ssh/sshd_config配置文件,再最后一 ...
- .NET截取指定长度字符超出部分以"..."代替
/// <summary> /// 将指定字符串按指定长度进行剪切, /// </summary> /// <param name= "Str "&g ...
- Python3、Unicode、UTF-8、编码
text = u'你好,今天天气不错' text print(text) text = '\u4f60\u597d\uff0c\u4eca\u5929\u5929\u6c14\u4e0d\u9519' ...
- Mirror--镜像使用的工作线程数
/*在SQL SERVER 2005 及以后版本中, 使用'MAXworker thread' 来配置可用的线程数,默认设置为0 ,即自动控制线程数 计算最大工作线程数: 对于32 位系统:逻辑CPU ...
- Nginx 设置临时维护页面
Nginx 设置临时维护页面 http://www.myexception.cn/open-source/1753957.html http://blog.justwd.net/snippets/ng ...
- 设置XShell快捷键 复制粘贴 并禁用智能选择
设置XShell快捷键 复制粘贴 并禁用智能选择 1打开选项 2键盘和鼠标->打开编辑 3新建 组合键 Ctrl+C 类型:菜单 ->操作 [编辑]复制 [编辑]粘贴 4选中 ctrl+ ...