APP下载

研究基于并行渲染的虚拟现实开发平台设计与实现

2017-09-28陈衡

电子测试 2017年8期
关键词:光子虚拟现实速率

陈衡

(四川旅游学院,四川成都,610100)

研究基于并行渲染的虚拟现实开发平台设计与实现

陈衡

(四川旅游学院,四川成都,610100)

在设计三维VR场景时需要依赖可视化的开发平台,设计开发平台时应注重提高软件运行速度,确保硬件接口与软件接口相互匹配,维持虚拟环境共享的一致性,能够及时更新网络协议与升级软件功能,保证VR系统具有兼容性的特点。

开发平台;并行渲染;设计;实现;虚拟现实

0 引言

虚拟现实(VR)也称人工环境、虚拟实境、灵境技术,利用VR技术虚构的人工环境能够让使用者产生逼真的触觉、听觉与视觉等感官体验,如体验虚拟场景中的物体温度、位置、形状、大小及重量等。VR技术的实质为运用模型构建、空间跟踪、声音跟踪、视点感应、视觉跟踪等技术实现虚拟交互,交互设备包括VR引擎、解释器、传感器等,传感器可将原始数据转化成交互信息,解释器可根据交互信息生成行为数据。

1 并行渲染概述

并行渲染结构包括Sort-Last结构、Sort-Middle结构、Sort-first结构三大类。Sort-Last结构的应用领域包括Parallel-Mesa系统、Pixel-Flow系统等,Sort-Last结构在像素化过程中发生归属判断,应用Sort-Last结构时需要传输大量像素,因此传输时占用的带宽较大,这就会延缓虚拟VR图像的合成速度,还容易对负载平衡产生影响。Sort-Middle结构的应用领域包括Chromium框架、PGL系统及Infinite Reality系统等。在Sort-Middle结构中,图元的归属判断过程发生在像素化与几何变换之间,易于实现模块化设计,传输量的增长倍数为处理器几何级数,应用Sort-Middle结构时可能出现可扩展性不足等问题。Sort-first结构的特点包括通信量少、流水线互不干扰,能明确定义VR场景数据删除函数、修改函数及增加函数的调用接口,可支持分辨率较高的VR显示环境,屏幕上的图元对象位置由几何处理方式决定,Sort-first结构已经被应用在Display Wall、WireGL中。Sort-first结构中的图元分配、图元数据预变换及传输等操作可产生额外负载,应用Sort-first结构时需要采用负载平衡技术解决图元差异与图元分布不均匀问题,以免对开发平台性能造成不良影响。上述三种渲染结构各具优缺点,因此目前多数VR系统会混合使用两种渲染结构,如AnyGL系统、Parallel-SG系统等。应用混合型渲染结构时需保证工作站中安装有多个性能优良的CPU,数据通信系统应具有较广的适用性,尽量运用多核微机运行渲染系统。

2 基于并行渲染的VR开发平台设计与实现

2.1 开发平台架构

本文分析的VR开发平台采用了Sort-first渲染结构,PC节点包括控制节点与渲染节点。控制节点可对图元组归属情况进行有效判断,并将图元组编号发送到渲染节点,在发送编号时要求渲染节点能够同步接收信息。控制节点无法保留VR场景的图形数据,仅保留包围盒、VR场景结构数据,无需承担渲染任务。渲染节点可利用多通道型投影系统渲染屏幕区域中对应的图元组,在渲染图元组时需消除投影系统之间的边缘拼缝,处理拼缝时需调整帧缓存图像亮度,运用渐变函数控制边缘融合过程中的图像亮度,促使拼缝融合,确保经过拼接处理的VR场景自然统一。VR系统架构模式为C/S,客户端由金属漆墙、投影仪、方向盘、显示器、PC构成,服务端由渲染PC构成,渲染PC的显卡为Geforce7900GS。客户端中的PC可采集操作数据及显示控制信息,同时向服务端发送View Matris,传输协议为TCP,该传输协议能确保服务端、客户端同步处理数据。服务端获取渲染图像的命令为OpenGL,渲染链接库为OpenGL 32.dll,操作时利用glReadPixel函数、SwapBuffer函数获取缓存区数据,随后在Buffer中存入压缩数据,由Buffer保存与发送数据,发送数据时采用实时性强的UDP发送线程。此外,VR系统中的绘制过程、裁剪过程相互独立,可减轻CPU负担,确保渲染节点CPU数据实现并行化管理,开发平台工作流程如图1所示。

图1

2.2 并行算法与负载平衡实现

开发平台中的渲染算法为光子映射并行算法,Rank0进程可事先将待渲染VR场景模型分发到计算节点,如计算环境为内存共享并行环境,则Rank0无需向计算节点分发场景模型。由于光子生成时间开销较小,因此在渲染时可保证每个节点均能够实现单独计算。在发射光子时,每个光源采用的种子相同,这就可以确保光子映射相同。计算节点接收到种子后,可根据种子发射光子,光源发射的光子可随物体材质的变化产生不同的吸收、发射与折射区域,并形成光子图,如待渲染区域为空,可向区域的左上角移动渲染点。利用光子图并行渲染VR场景时,需全面跟踪视点与渲染点之间的射线,在VR场景与射线相交的位置选择采样点P,采样点P的颜色取决于光子类型与光子能量。负载平衡的具体策略包括场景扫描、搜索密集区、平衡算法与屏幕算法策略。利用八叉树加载场景,渲染时只需扫描八叉树,找到叶节点,随后将八分子叶节点组建成立方体,在屏幕上投影立方体中心,投影后对小方格中的对象进行归并处理,屏幕中的小方格划分。搜索密集区时先找出最小的方格,并扩张小方格,扩张后可生成密集矩形,同时确保屏幕边界与矩形边界互相重合。平衡算法可向各个平行节点均匀分配图元,像素shader可融合Sort-First渲染结果,在各个子节点分散合成Client端的深度图像,以免造成Client端出现网络拥堵问题。

2.3 渲染性能

测试了三种图像尺寸下VR开发平台的渲染性能。图像尺寸为720×576时,25fps图像速率为597.4Mbps,网络最大帧率为37518fps,网络速率平均值为330Mbps,节点渲染时间为0.175帧/s,节点分配帧率为5.62fps。图像尺寸为720×1280时,25fps图像速率为934.7Mbps,网络最大帧率为10632fps,网络速率平均值为330Mbps,节点渲染时间为0.763帧/s,节点分配帧率为2.73fps。图像尺寸为1080×1920时,25fps图像速率为1587.2Mbps,网络最大帧率为7429fps,网络速率平均值为330Mbps,节点渲染时间为1.362帧/s,节点分配帧率为1.62fps。开发平台可处理复杂化的VR场景数据,帧率、网络速率均能够达到协同VR装配要求。

3 结语

VR开发平台的设计过程复杂,需要处理多种细节问题及不断优化VR软件的开发设计环境。为确保开发平台便于维护,应不断更新并行渲染等核心技术,在综合考虑VR系统整体开发结构与开发方法的基础上合理组织虚拟对象,简化图形建模的旋转及平移等操作,提高VR场景的编辑与制作效率,同时保证开发平台具有可复用性、异构性、伸缩性及可扩展性的特点,能够描述复杂化与多样化的VR场景。

[1]徐继伟,张文博,王焘,等.一种基于遗传算法的虚拟机镜像自适应备份策略[J].计算机学报,2015,39(2):351-363.

[2]赵忠良,吴军强,李浩,等.高机动导弹气动/运动/控制耦合的风洞虚拟飞行试验技术[J].空气动力学学报,2016,34(1):14-19.

Design and implementation of virtual reality development platform based on Parallel Rendering

Chen Heng
(Sichuan Tourism university,Chengdu Sichuan,610100)

in the design of 3D VR scene need to rely on visual development platform,design and development platform should focus on improving the speed of software operation,ensure that the hardware interface and software interface matching,maintains consistency with the shared virtual environment,can update the network protocol and upgrade the software function,ensure that the VR system has the advantages of compatibility.

development platform;parallel rendering;design;implementation;virtual reality

四川省教育厅自然科学一般项目“基于3DsMAX的270°渲染技术在虚拟仿真景区漫游中的研究与应用”。项目编号:16ZB0350。

猜你喜欢

光子虚拟现实速率
《光子学报》征稿简则
“化学反应的速率与限度”知识与能力提升
速度和速率有什么不同
REALITY BITES
风口上的虚拟现实
虚拟现实技术向科幻小说借灵感
光子嫩肤在黄褐斑中的应用
在光子带隙中原子的自发衰减
不同冷却速率下低压转子钢30Cr2Ni4MoV的凝固组织
莲心超微粉碎提高有效成分的溶出速率