虚拟现实技术能够实现人与自然之间和谐交互, 可以扩大对信息空间的感知通道[1]. 虚拟漫游涵盖的范围较大, 它作为一种新的信息交互方式, 不会局限于传统的键盘和鼠标, 其接口可为用户提供更丰富的控制和内容, 可交互的实时浏览和信息查询是虚拟漫游系统的基本功能[2]. 目前有几种比较流行的输入和输出设备可用于虚拟漫游系统, 也有几种流行的交互技术用来连接设备和表征信息. 每一种设备和交互技术的结合都具有不同的特征和局限性, 这主要是因为系统设计者无论是在硬件设备的选择上, 还是在硬件和软件的搭配上需要不断完善以求体现最佳效果[3]. 德国斯图加特大学很早就开始筹划设计与开发自己的虚拟校园, 并利用相关技术对真实的校园进行模拟. 浙江大学、清华大学、山东大学等也都开展了数字化校园建设[4]. 吉林大学基于3DS Max创建数字校园场景, 然后在DirectX中选择专业组件进行图形再生和显示, 从而达到校园虚拟漫游的效果[5]. 传统虚拟校园在开发技术上大多采用Quick Time VR, 虽然其精确性比较高, 但交互性不太令人满意, 沉浸感较差[6]. 校园虚拟漫游仿真采用 Virtools技术进行开发, 侧重于虚拟场景的虚拟现实技术,设计实现了虚拟场景的视景仿真系统[7]. 一般的软件平台不具备充分利用设备的能力, 因此, 在各种应用环境下往往以牺牲系统某些功能为代价换取系统的可移植性.
本研究通过比较硬件平台来对设备性能进行分析, 使用InTml (Interaction Techniques markup language, 即交互技术标记语言)可以把虚拟漫游应用平台描述为一系列相互关联的组件, 而这些组件可以完成不同的功能设置[8]. 本研究主要探究交互式校园虚拟漫游系统的设计, 在借鉴以往的设计经验的基础上比较其性能, 使用不同的硬件和软件逐步建立一个应用模型. 该系统为学校在计算机及网络平台上建立数字化校园是普通平台所无法比拟的, 用户可以体验到与真实校园相近的虚拟环境, 并且可以与虚拟环境进行交互.
1 虚拟漫游系统交互式应用程序语言开发工具及作用InTml在交互式虚拟漫游系统中的应用可以看作是相互关联数据流的过滤器. 该过滤器可以连接下列任何实体: 输入或输出设备、交互技术、对象行为、动画、几何对象、或其他媒体对象等, 也可以连接设备收集的信息或编程语言描述的对象行为代码. 为了实现连接可以利用与内容相关的多媒体开发工具, 例如Maya、3DMAX、Blender等. InTml在虚拟现实应用中是一种集成所有组成要素的语言工具, 而不是具体内容, 这可以让设计人员专注于解决应用程序的体系结构和交互问题, 而不用处理过于复杂的对象. 以数据流为基础的语言, 如以VRML为核心,结合ASP技术, JavaScript脚本语言和Java语言,开发的虚拟校园漫游系统是以几何和动画的描述为重点[9], InTml主要侧重于特定行为和对象行为的应用、输入设备信息的收集、系统整合等. InTml的作用使得在Internet上通过传输很少的数据就可浏览三维虚拟场景成为可能[10].
交互式虚拟漫游系统应用程序是由一系列相互关联的过滤器组成, 以满足特定用户的需求. 图1显示了一个简单的InTml应用程序, 它允许用户用跟踪器移动虚拟手去触摸虚拟物体, 虚拟手跟踪设备把位置和方向信息输送到触摸选择技术和对象拥有者(手动识别), 过滤器把多个对象和一系列期望的变化结合在一起, 从而实现运动和旋转. 对象拥有者在输入端口通过特殊装饰图形识别, 输入端口接收新的持有对象(即手动识别).
2 交互式虚拟漫游系统开发环境设计 2.1 虚拟漫游系统交互式应用程序开发流程为了保证测量的一致性, 我们采用了以下流程图介绍虚拟漫游系统交互式应用程序设计开发流程(如图2所示), 该流程主要用InTml来识别硬件和系统平台的变化. 在确定该流程设计方案时要同时考虑系统的设计者和开发者, 设计者主要负责整体应用程序的体系架构, 而开发者负责详细实施设计者明确的任务. 从虚拟漫游系统设计者的角度来看, InTml应用包含了一系列的模块, 这些模块必须在基础框架上实施, 并且需要考虑一定的执行规则. 设计者与开发者需要合作, 他们的主要工作是在基于InTml的环境下完成开发工作, InTml在PC环境下被编译成Java和Unity3D开发工具.
2.2 交互式虚拟漫游系统开发平台的移植方案设计设计人员根据用户需求确定应用目标, 用InTml应用程序来满足用户需求, 这可用来检验此设计是否违背通用语义规则和基本使用原则[11]. 在这一点上, 开发人员可以检查应用程序是否支持当前的开发工具, 如果当前的开发工具无法涵盖新应用程序的所有需求, 设计和开发任务可以继续进行. 因此, 开发人员为了适应应用程序可能会改变InTml, 设计者为了适应平台可能会改变应用程序, 执行应用程序用来检验是否满足用户需求, 这就必须考虑软件平台的可移植性. 设计和开发的内容, 如以设计模型中的主体对象、特殊的图形效果、声音以及用3D工具设计的触觉等, 这些内容可在基础框架上通过运行InTml应用程序来开发各种类型的媒体. 图3中协作指的是设计者和开发者之间的协作,该设计方案可以提供更有效的互动技术、使用不同的硬件、改变内容以及集中处理问题.
图3中平台A开发后, 设计人员要进行修改完善是为了把这个平台顺利移植到一个新的平台上. 开发者重复平台B的开发流程, 如果可能重复利用平台A的部件或设计, 与设计者互动直到满足用户需求, 以这种方式使两个平台的应用程序保持相同功能, 同时也考虑了各自的独特优势. 不断重复整个流程可以在提升每个平台的功能基础上更新其应用程序. 这种方法可允许设计者与开发者在创建虚拟漫游系统应用程序中进行合作, 设计者不用深入了解框架如何实现或编程语言, 如C++或Java等, 可用InTml实现交互式虚拟漫游应用程序, 运用3DMAX、ArcMap等软件辅助平台环境建设. 以往的虚拟漫游系统开发者没有考虑到这种工作的多学科性质, 也没有认识到高级虚拟漫游系统语言的必要性[12], 这可以让非专业程序人员在开发应用程序过程中和专业程序人员有效交流意见. 该平台支持多用户同时在不同地点与同一场景实时进行交互, 并强调场景的真实度和渲染的实时性及连续性[13].
2.3 交互式虚拟漫游系统硬件环境的构建
建立虚拟漫游系统的目的是使用户能够在虚拟三维环境中以全沉浸式和360度全视角的方式漫游当前或未来的建筑或环境区域, 这是传统设计渲染、预渲染和回放三维动画所难以实现的功能. 用户对场景的交互控制通过改变视点的位置或视线的方向来实现, 从而获得三维虚拟场景空间的相关数据信息, 实现虚拟场景中的漫游功能[14]. 该系统对校园主干道、教学楼、生活区和标志景观等进行建模, 然后通过应用程序实现虚拟场景中的行走、转弯、仰视、俯视等视图效果,尤其是与其场景中的物体进行实时交互后, 形成一个逼真的、具有视觉、听觉、触觉的感官世界, 使人产生与计算机融为一体的真实感; 虚拟空间控制也可以通过用户的感觉、语言、手势等进行交互操作. 用户不仅可以全身心沉浸在虚拟校园中, 还可以进行信息查询、数据分析、教学评估、发展规划和管理决策. 校园虚拟漫游系统在高校优化管理、校园规划、辅助决策和学校发展等各方面发挥着不可替代的作用[15].
3 交互式数字校园视景漫游模型的建立与优化本研究在设计InTml应用程序的基础上以大学校园作为虚拟环境设计出可行的交互式校园虚拟漫游系统整体开发方案(如图4所示). 交互式数字校园视景漫游模型的建立主要包括平面图像设计、三维模型设计、模型优化与显示以及基本交互任务实现4个部分. 本研究主要利用Unity 3D工具中的可视化界面设置场景和Unity 3D代码驱动程序, 生成应用定义文件, 最后根据用户个性化需求设置场景虚拟漫游模式, 实现虚拟校园的全景漫游功能. 这也是当前智慧校园建设的重要组成部分, 为全体师生提供全面信息化和移动化的综合服务平台[16].
3.1 对校园场景进行三维建模
校园场景建模主要包括建模和图片映射两个步骤: 第一, 使用3DMAX软件或Creator建立模型, 创建者模型可通过向模型添加纹理映射功能来直接使用; 如果该模型是三维模型, 就需要通过面片映射或模型映射功能来获得场景的原始模型. 第二, 转换原始模型, 这个过程需要将3DMAX格式转换为Creator文件格式, 并将其导入到Unity 3D中以显示处理模型. 校园场景模型主要包括主干道和代表建筑群(如教学楼、生活区建筑、树木、花草、操场等).
3.2 对模型进行优化和显示校园漫游场景模型建立后, 由于游戏系统需要具备较强实时性, 场景模型难以快速发送到Unity 3D进行识别, 这就有必要对场景模型进行优化[11]. 在本研究中, 主要采用了一下优化方法: ① 纹理技术代替法: 在漫游场景中, 如果模型细节较多、精度要求低的模型可以通过纹理来模拟. ② 自动覆盖法: 当显示的多边形数量增加时, 一些多边形被自动覆盖, 这样多边形数量显示的数量会减少; 当显示的多边形数量减少时, 显示的多边形数量也会增加. 当需要在显示一个模型时, 并且在调用此函数之前, 还需进行以下操作: 创建或设置OpenGL绘制环境、绘制场景、设置摄像机位置和方向和刷新窗口. 该操作应该在调用函数的相应环境里实现, 在此只需要对模型本身理. 该函数的基本算法是:
for(int i=0; i<objectCount;i++)//调用此模型上所有对象
{
for(j=0; j<pObject[i].faceCount; j++)//调用此对象上所有的面片
{
if(pMat[pObject[i].pFaces[j].hasTexture)//若此面片存在纹理贴
PainTexture();
else
{
//设置绘制模式
glBegin(GL_TRIANGLES)
Paint(pObject->pVerts[pObject->pFaces[j].Vindex1]);
Paint(pObject->pVerts[pObject->pFaces[j].Vindex2]);
Paint(pObject->pVerts[pObject->pFaces[j].Vindex3]);
}
}
}
3.3 关键交互功能的实现交互性是虚拟现实技术最重要的特征之一, 也是数字校园的核心功能. 在数字校园中, 虚拟校园场景的基本交互功能主要有动作捕获、行走控制和选择操作.
(1)动作捕获
为了捕捉用户在虚拟漫游中的动作, 系统需要相应的硬件输入设备[13]. 桌面计算机上最常见的输入设备是键盘、鼠标或体感设备(如头盔、手套等). 漫游系统软件程序可以通过捕捉用户的相应动作并将其转换成相应的控制命令来控制场景转换. 如果要查询漫游场景中某个物体的信息, 系统需要具备相应的定位和选择设备. 这种定位不能用键盘来完成, 但可以借助鼠标的定点功能. 在VC++和C++编程工具中有一种特殊的信息控制机制, 可以方便地捕获漫游用户的基本动作. 此外, 在Unity 3D函数库中的捕获函数也可以处理用户的动作信息.
(2)行走控制
在该系统中, 用户在漫游系统中通过键盘的上、下、左、右键控制与场景的前、后、左、右交互, 最终重绘场景画面[14]. 有两种方法可以根据用户的动作重绘场景画面: 第一, 直接改变物体的三维坐标参数; 第二, 通过用户视点变换来实现交互场景的转变. 直接改变三维坐标参数会重新变换虚拟场景中所有目标对象的坐标参数, 并且多次变换将导致误差累积, 这将会导致虚拟场景失真. 因此, 通过改变用户视点来控制行走场景变换是目前交互式虚拟场景构建的主要方法.
(3)选择操作
因为在计算机显示器上绘制的目标对象通常需要多次旋转、平移和透视变换, 所以在多次变换之后进行选择操作时, 很难确定选择了虚拟场景中的某一对象[15]. 此外, 由于计算机的显示屏的画面是一个二维坐标系, 虚拟漫游系统中所表示的三维物体需要将二维坐标转换成三维坐标的运算, GLU实用库中的GLUUnproject()函数可以实现这种转换. 虚拟漫游系统通过不断改变用户视点和观察点位置来实现多次旋转、平移和透视变换效果, 例如向前、向后、多方位旋转、仰视和俯视等. 图5是在大学图书馆视景漫游中实现正向、反向和全方位旋转的演示效果图.
4 结论与展望虽然目前虚拟现实交互技术和硬件设备不断更新换代, 但是该研究的设计流程和方案具有普遍的适用性和推广价值. 本研究的特色在于能结合虚拟现实领域和学校资源进行应用研究, 通过该方案开发的系统可以将校园的各种场景、细节和体验完全复制到计算机或者互联网上, 让学生、教师以及社会公众不受时间和空间的限制, 只需要通过计算机和网络环境就能够全方位地感受校园景色、学习环境和学习资源, 使用户产生身临其境的沉浸效果. 随着虚拟现实技术和移动智能设备的快速发展, 还需要增加更多的虚拟漫游系统应用程序和硬件设备, 也为精确高效的交互式校园漫游提供了成熟的技术支持和用户基础[17]. 数字校园漫游系统在开发设计方案也需要进一步优化和创新, 以便支持应用平台建设.
[1] |
陈春伟, 郑仲元. 三维全景技术下的虚拟校园漫游系统设计方案. 现代电子技术, 2020, 43(7): 169-172, 177. |
[2] |
姬喆. 基于VR虚拟漫游技术的交互设计应用研究. 现代电子技术, 2019, 42(15): 86-90. |
[3] |
秦胜伟, 李重, 李金锋, 等. 校园漫游互动AR系统设计与实现. 系统仿真学报, 2019, 31(7): 1367-1376. |
[4] |
Sun YK, Luo X, Liu XJ. Optimization of a university timetable considering building energy efficiency: An approach based on the building controls virtual test bed platform using a genetic algorithm. Journal of Building Engineering, 2021, 35: 102095. DOI:10.1016/j.jobe.2020.102095 |
[5] |
俞飞, 陈荣, 伊力塔, 等. 基于生态校园虚拟数字化的实验教学平台建设探索. 实验技术与管理, 2020, 37(9): 266-269. |
[6] |
李遇涵. 基于Unity3D的虚拟校园漫游系统的研究[硕士学位论文]. 武汉: 华中科技大学, 2015.
|
[7] |
张萌, 肖小祥, 易笑, 等. 基于虚拟现实的校园漫游视景仿真. 软件导刊, 2011, 10(3): 172-174. |
[8] |
Figueroa P, Green M, Hoover HJ. InTml: A Description Language for VR Applications. New York: ACM Press, 2017. 53–58.
|
[9] |
李向栋. 软件复用技术在校园导航中的研究与应用[硕士学位论文]. 太原: 中北大学, 2020.
|
[10] |
Ressler S. Using VRML to access manufacturing data. http://ovrt.nist.gov/projects/mfg/SIMA/vrml97/vimhtml.frn.html, (2018-03-10).
|
[11] |
Stanney KM, Mollaghasemi M, Reeves L, et al. Usability engineering of Virtual Environments (VEs): Identifying multiple criteria that drive effective VE system design. International Journal of Human-Computer Studies, 2003, 58(4): 447-481. DOI:10.1016/S1071-5819(03)00015-6 |
[12] |
Tanriverdi V. A Virtual Reality Interface Design (VRID) Model and Methodology[Ph.D. thesis]. Medford, MA: Tufts University, 2001.
|
[13] |
张洪鑫. 基于VR的虚拟三维数字校园漫游系统设计与实现[硕士学位论文]. 天津: 天津师范大学, 2018.
|
[14] |
Kim J, Kim H, Wohn K. Visibility preprocessing for complex 3D scenes using hardware-visibility queries. International Journal of Image and Graphics, 2006, 6(1): 1-21. DOI:10.1142/S0219467806002069 |
[15] |
武迎淼. 沉浸式虚拟校园漫游系统的技术研究与实现[硕士学位论文]. 长沙: 湖南大学, 2018.
|
[16] |
陈晓璇, 陶漪. 基于文献计量的我国智慧校园研究态势分析. 软件导刊, 2019, 18(10): 204-208, 212. |
[17] |
秦政. 基于移动增强现实的校园导航方法研究[硕士学位论文]. 武汉: 华中师范大学, 2018.
|