基于虚拟现实技术的自行车漫游系统的研究与实现
的数据进行模数转换后存入的结果寄存器中。
2.2.2多线程、非阻塞的实时通信技术
TMS320LF2407A的串行通信接口SCI模块可以通过RS232转换芯片与PC机进行异步通信。因为由传感器实时采集到的数据通过DSP的SCI串口传给上位机进行处理,同时虚拟场景中的地形数据需要下传来达到控制执行机构输出力矩的目的,模拟人骑自行车上、下坡时的感觉,在程序中把它设置成全双工方式。
使用多路传感器作为三维场景漫游的视点跟踪传感器时,必须不断地从串口采集各路传感器的状态数据,以跟踪观察者对视点位置和视线方向的改变。通常有两种方式:(1)在应用程序中创建定时器;(2)采用多线程的应用程序框架。第一种方法由于控制单元是以固定的频率向主机传输状态数据,因此为定时器选择适当的定时周期是关键,否则很容易造成数据丢失。另外,由于应用程序需要不断地响应定时器函数,因此三维场景的绘制速度必然会受到影响。笔者采用了第二种方法,具体如下:
在VC环境下开发了基于RS232协议的实时通信软件,可以与虚拟环境软件部分直接相连,并采用了多线程、非阻塞的实时漫游框架,在辅助线程中监视串口,有数据到达时依靠事件驱动,读入数据并向主线
程报告;并且WaitCommEvent()、ReadFile()、WriteFile()都使用了非阻塞通信技术,依靠重叠(overlapped)读写操作,让串口读写操作在后台运行。每当主线程收到由辅助线程传过来的新一帧数据后,首先对它进行判断,只有在它相对于上一帧状态数据的变化超过规定阈值的情况下,才能开始更新用户视口内的场景显示,从而避免由于参与者的微小运动而引起的不必要的场景重绘。
2.3虚拟场景的构造及其实时显示技术
目前,从技术角度上讲,漫游的最大难点在于建模和实时绘制,需要在模型的精细程度和绘制速度方面取一个折衷,既要保证一定的绘制质量,又不能造成用户的运动不适感。在建模和实时显示方面采用了各种技术,以保证实时性。
2.3.1虚拟场景的构建
虚拟环境中的每个物体包含形状和外观两个方面,用于存储虚拟环境中几何模型的模型文件应该能够提供这两方面的信息。同时还要满足虚拟建模技术的三个常用指标——交互显示能力、交互操纵能力、易于构造的能力对虚拟对象模型的要求。OpenGL中很容易实现模型的各种变换、着色、光照、纹理、交互操作和动画,但是它只能提供基本几何元素的造型函数,使得复杂模型的建模相对困难。3DMAX等三维图形建模工具能方便建立各种复杂特体模型,但是很难进行程序控制。因此,笔者在3DMAX等工具中建立好复杂模型后,在OpenGL中实现对其方便控制和变换。
本系统(VR-BWS)软件部分需要享用多种公开三维格式文件数据,同时还要与数据库相关联,VR-BWS数据流图如图2示。
2.3.2三维模型的实时显示
在3DMAX等建模工具中建立好复杂模型后,可以用多种文件格式存储。考虑到OpenGL提供了最基本的由多边形构造三维模型的方法,故以三角形网络方式存储。VR-BWS的软件部分是基于面向对象技术。三维图形类、渲染场景必不可少的属性类如:颜色类、纹理类、材质类、光源光等均采用面对象方法对OpenGL函数进行封装(如图3所示),软件的各个组成模块使用OCX控件和COM作为标 《基于虚拟现实技术的自行车漫游系统的研究与实现(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/142349.html
2.2.2多线程、非阻塞的实时通信技术
TMS320LF2407A的串行通信接口SCI模块可以通过RS232转换芯片与PC机进行异步通信。因为由传感器实时采集到的数据通过DSP的SCI串口传给上位机进行处理,同时虚拟场景中的地形数据需要下传来达到控制执行机构输出力矩的目的,模拟人骑自行车上、下坡时的感觉,在程序中把它设置成全双工方式。
使用多路传感器作为三维场景漫游的视点跟踪传感器时,必须不断地从串口采集各路传感器的状态数据,以跟踪观察者对视点位置和视线方向的改变。通常有两种方式:(1)在应用程序中创建定时器;(2)采用多线程的应用程序框架。第一种方法由于控制单元是以固定的频率向主机传输状态数据,因此为定时器选择适当的定时周期是关键,否则很容易造成数据丢失。另外,由于应用程序需要不断地响应定时器函数,因此三维场景的绘制速度必然会受到影响。笔者采用了第二种方法,具体如下:
在VC环境下开发了基于RS232协议的实时通信软件,可以与虚拟环境软件部分直接相连,并采用了多线程、非阻塞的实时漫游框架,在辅助线程中监视串口,有数据到达时依靠事件驱动,读入数据并向主线
程报告;并且WaitCommEvent()、ReadFile()、WriteFile()都使用了非阻塞通信技术,依靠重叠(overlapped)读写操作,让串口读写操作在后台运行。每当主线程收到由辅助线程传过来的新一帧数据后,首先对它进行判断,只有在它相对于上一帧状态数据的变化超过规定阈值的情况下,才能开始更新用户视口内的场景显示,从而避免由于参与者的微小运动而引起的不必要的场景重绘。
2.3虚拟场景的构造及其实时显示技术
目前,从技术角度上讲,漫游的最大难点在于建模和实时绘制,需要在模型的精细程度和绘制速度方面取一个折衷,既要保证一定的绘制质量,又不能造成用户的运动不适感。在建模和实时显示方面采用了各种技术,以保证实时性。
2.3.1虚拟场景的构建
虚拟环境中的每个物体包含形状和外观两个方面,用于存储虚拟环境中几何模型的模型文件应该能够提供这两方面的信息。同时还要满足虚拟建模技术的三个常用指标——交互显示能力、交互操纵能力、易于构造的能力对虚拟对象模型的要求。OpenGL中很容易实现模型的各种变换、着色、光照、纹理、交互操作和动画,但是它只能提供基本几何元素的造型函数,使得复杂模型的建模相对困难。3DMAX等三维图形建模工具能方便建立各种复杂特体模型,但是很难进行程序控制。因此,笔者在3DMAX等工具中建立好复杂模型后,在OpenGL中实现对其方便控制和变换。
本系统(VR-BWS)软件部分需要享用多种公开三维格式文件数据,同时还要与数据库相关联,VR-BWS数据流图如图2示。
2.3.2三维模型的实时显示
在3DMAX等建模工具中建立好复杂模型后,可以用多种文件格式存储。考虑到OpenGL提供了最基本的由多边形构造三维模型的方法,故以三角形网络方式存储。VR-BWS的软件部分是基于面向对象技术。三维图形类、渲染场景必不可少的属性类如:颜色类、纹理类、材质类、光源光等均采用面对象方法对OpenGL函数进行封装(如图3所示),软件的各个组成模块使用OCX控件和COM作为标 《基于虚拟现实技术的自行车漫游系统的研究与实现(第2页)》