谢欣海
(天津天大求实智慧物联科技有限公司 天津市 300384)
在现代化发展不断加快的过程中,科学技术的发展逐渐成为了衡量国家综合实力¥的重要标准,科学技术也给人类社会带来的巨大的改变。当前计算机技术的发展正逐渐成为科学的前沿技术,在此过程中其他相关的科学技术的延伸也是得到了长足的发展。虚拟现实技术便是在计算机技术快速发展的背景下被广泛的应用到了各个领域,在此过程中,虚拟现实技术成为了诸多领域不可或缺的一部分。依据相应的虚拟现实技术科学家逐渐设计出适用于不同类型下的虚拟现实应用程序,针对不同的场景使用不同的虚拟现实应用程序,因而虚拟应用程序的跨平台运行研究十分有必要。所谓虚拟现实应用程序的跨平台运行主要指的是某些操作系统下所开发的应用程序稍加修改或是不修改便可以在其他的系统中实现运行,目前很多的商业公司所研发的虚拟现实程序开发软件都已经具备了基本的跨平台能力,因而在此过程中跨平台性逐渐成为了整体跨平台的关键所在。
FLTK 是一种基于C++语言的CUI 跨平台软件工具包,其能够应用于多种不同的系统之中,此外,CUI 功能还能够通过OpenGL及其GLUT 组件来支持3D 图形的渲染,相较于其他类型的GUI 工具MFC 及TQ,FLTK 具有诸多方面的优点,主要表现在以下几方面,分别是简洁、快速、以及具有良好的跨平台应用性能。不仅如此,FLTK 还是一种基于C++语言的GUI 开发工具,因而在此过程中可以应用于所有采用C++语言开发的应用程序之中。当前使用FLTK进行了一系列基础部件类的定义,主要包括菜单、按钮以及窗口等,这些不见都可以直接性的嵌入到GUI 应用程序中,同时也能够利用相应的信息处理功能以及各个部件的信息来实现部件之间的连接,在此过程中需要利用到相应的反馈功能。跨平台性能作为虚拟现实应用程序的重要标准之一,该性能在对于虚拟现实技术的应用有着十分重要的影响,因而在虚拟现实应用程序跨平台问题的解决过程中,需要将FLTK 应用到虚拟现实应用的开发过程中。同时在运用FLTK 的过程中还需要将FLTK 对其中的三种最为主要的虚拟现实渲染软件的整合方式进行深入的研究分析,并由此正和提出了多线程整合方法,现实的应用情况表明,改种方法对于跨平台运行的虚拟现实程序开发具有十分重要的参考意义。本文中对于多线程整合方法的介绍主要是从其主要结构入手进行分析,其中第二部分主要是提供了一系列的多线程整合方法,其作用是将OpenGL、Performer 以及Vega 三种开发软件充分的应用到了FLTK 之中,并在第三部分中详细的介绍了Onyx300 图形工作站的硬件结构。
图1:Onyx300 立体显示硬件结构
近些年来我国虚拟现实的应用主要是在城市规划、大型工程漫游、数字化酒店等方面比较广泛,同时也有着较为显著的发展趋势,取得了较好的成效。就目前的房地产市场发展形式而言,正处于高速的发展阶段,在此过程中房产市场有着十分激烈的竞争,这就需要不断的引入高新先进同时易于常人操作的宣传方式,而虚拟现实平台的应用则能够很好的解决这方面的问题。正对当前房地产市场发展情形进行了相关的研究,主要是针对C++结合Direct X 技术独立进行了一套虚拟现实平台的设计研发,并在此过程中综合性的将轨迹动画、虚拟漫游等进行了结合,因而在应用的过程中取得了较好的结果。不仅如此,国际上的诸多研究者还尝试着以陷阱的导航技术作为研究的模板,由此来为虚拟现实平台开发出全新的符合自身实际需求的新式导航功能,这也是导航系统领域的重大革新。鉴于该设计研发平台的实用性以及创新性,对此进行了虚拟现实应用的进一步深入研究,主要针对FLTK 与VR 程序进行了一定的整合分析,由此来研究虚拟现实平台在各个领域的应用前景以及仍需进一步加强改进的地方。
通过长期的分析研究可知,将FLTK 应用于VR 程序的关键之处在于将3D 虚拟场景结合到FLTK 的窗口部件之中,在此过程中实现三维虚拟场景在FLTK 窗口部件中的显示。不仅如此,对于FLTK 与VR 程序的整合还可以通过其他的FLTK 部件对虚拟场景进行一定的控制,以下主要是针对当前三种较为常见的虚拟现实开发软件的虚拟场景嵌入进行分析,这三种虚拟现实开发软件分别是OpenGL、Performer 以及Vega,将其嵌入到FLTK 窗口部件是当前的重点研究内容。以下对三种虚拟现实开发软件的嵌入进行分别介绍分析。
OpenGL 嵌入到FLTK 窗口部件主要是通过如下措施实现的,其中首先是有FLTK 提供了一个特殊的窗口类FI-GI-Window,并将之应用到了FLTK 窗口中展示出了OpenGL 场景,在此过程中,FIGI-Window 很大程度上能够实现直接嵌入到FLTK 的主窗口之中。此外,相应的开发者还可以根据OpenGL 的相应功能进行其子类功能函数生成新场景的重新设置,由此来最终实现对于OpenGL 场景在FLTK 主窗口中的嵌入。由此可见,OpenGL 整合方法的应用主要是通过FLTK 窗口的展示实现的,在此过程中,相应的场景展示起到了很大的作用,最终OpenGL 场景在FLTK 主窗口中的嵌入的实现对于实际的应用有着十分显著的影响,因而该方面的研究有必要进一步的深入。
当前国际对于虚拟现实技术的研究已经有了一定的进展,相关的研究仍在不断的深入过程中,近些年来关于虚拟现实技术的研究成果包括以下几点,Vega 以及OpenGL Performer 都是实时的3D 仿真软件,这也是当前应用最为广泛的仿真软件。目前工业生产过程中对于仿真技术的应用也有着很大的需求,工业仿真的相关研究很早之前便开始进行,但当前的研究过程中仍然存在着很多的问题,在此过程中FLTK 与OpenGL 存在着不同之处,其中FLTK 并没有将Vega 以及Performenr 提供特殊类型的函数并将虚拟场景嵌入到FLTK 的主窗口之中,此外和可以先将Vega 或是OpenGL Performer虚拟场景嵌入到FI-GI-Window 之中,在此过程中将该类加载到FLTK 的主窗口之中,由此来实现最终的嵌入过程。其中多线程整合方式主要包括FLTK 以及3D 场景两种线程,同时将Vega 或是OpenGL Performer 渲染的虚拟场景嵌入到FLTK 程序中的具体操作如下:首先第一步的操作是将应用FLTK 的FI-GI-Window 类为程序建立的主窗口,在此之后便需要将新建立的FI-GI-Window 以及FLTK 放置到主窗口之中,最后一步所要做的便是显示主窗口,该步骤中还需要运行3D 场景线程,Vega 或是OpenGL Performer 均可,没有十分严格的限制。接下来所要做的是将最后所获取的显示窗口嵌入到FLTK 线程的FI-GI-Window 中。3D 场景的线程步骤比较简单,只有以上所介绍的两个重要步骤,通过以上对于FLTK 线程步骤以及3D 场景线程步骤的介绍,可以发现,FLTK 线程与Vega 或是OpenGL Performer 线程的启用步骤类似,其中存在着很多的相似之处,但也有着明显的不同之处,不同的地方在于3D 场景线程能够把所获取的3D 虚拟场景的显示窗口嵌入到FI-GI-Window 中。
对于硬件结构来说,在此过程中主要是在Onyx300 图形工作站中的应用。三维虚拟场景的立体显示过程中,主要应用的是基于Onyx300 图形工作站的立体显示原理,在此过程中也已经研究出了相应的流程图。对于Onyx300 立体显示硬件结构的研究可以根据图示进行分析,其中主要包括以下几种结构,首先是投影幕布,投影幕布作为硬件结构中最为基本的一部分,其在水平方向上135 度有柱形幕,此外,三个立体的投影仪将图形工作站处理完成之后的图像投射到柱形幕布上。三维虚拟场景的立体结构还包括一台具有多种功能的特殊类型计算机,该计算机包含的功能方方面面,主要包含数字非线性几何矫正、数字四边边缘通河、数字色平衡以及数字热点补偿等,一般的,该特殊计算机安装的位置比较固定,往往是装在图形工作站以及多投影机系统之间,由此能够是现在相应的幕布上得到相应的亮度连续、色度均匀的三维图像,出了以上所介绍的基本硬件结构之外,虚拟现实应用程序还包括柱形幕布上方所安装的三个用于控制立体眼镜的红外发射器。以上所介绍的便是虚拟现实应用程序基本的硬件结构。
立体显示设计流程主要是依据视差进行的,视差主要指的是人类双眼所形成的立体视觉的核心所在,其中图形工作站的主要工作原理便是通过多台投影机系统在其所投影的幕布上形成不同的位置以及视角下的类似与人眼视差的图像,在此过程中相应的计算机由程序所控制的红外发射器通过其所发射的红外线以一定的评论所控制下的镜片交替透明,并最终将处理过的有视差特征的图像传输到观察者的双眼,由此帮助形成三维的立体虚拟场景。以上所介绍的便是当前我国三维立体虚拟场景的实现原理,这也是当前3D 电影中所使用到的最为根本的技术。然而对于Onyx300 来说,其立体显示主要是依据当前已有的硬件和软件,并将这些软件作为立体显示的基础,具体的立体显示设计的流程图如图所示,据此可以观察到每个窗口都设置了两个通道,分别分为主通道以及副通道,这两个通道都是通过对于人眼视差的模拟所得出的,主要是根据人眼视差找到了设计过程中不同视觉的位置以及角度,同时还需要进行主副通道切换频率的设置,该频率的设置主要是用来控制将两个通道所对应的图像分别传输的人的左右眼,并在此过程中模拟视差来形成立体视觉。
对于本文中所介绍的虚拟现实应用程序跨平台方法,相关的科学研究表明其具有一定的有效性以及实用性,首先第一个验证的实验例子是Vega 和FLTK 的整合。不仅如此,OpenGL Performer 与FLTK 之间的整合也可以实现,这些都是相关的是验证明所得出的最终结果。总的来说,以上所介绍的两点实验都是为了证明本文中所采用的虚拟现应用程序跨平台方法具有实用性,在实际的操作过程中切实可行。
本文中主要针对虚拟现实应用程序跨平台方法进行了深入的研究分析,在此过程中为了解决虚拟现实应用程序GUI 跨平台问题,给出了相应的多线程整合方法,该种方法主要是将三种常见的平台程序进行渲染后的三维虚拟场景成功的嵌入到了跨平台工具包FLTK 种,由此也给GUI 跨平台问题提供了一定的参考,能够据此研究出一定的解决办法。