基于时间序列的并行实时渲染系统研究与实现

时间:2022-06-19 11:41:13

基于时间序列的并行实时渲染系统研究与实现

摘 要 并行渲染技术是构建大规模三维虚拟场景的有效途径。本文从时间序列的并行渲染技术入手,提出了新的集群控制渲染算法,并在此基础上构建了一个时序集群渲染系统。实验结果表明,该并行渲染系统相对于单机系统具有较高的加速比,针对大规模复杂三维场景的渲染,该系统的渲染速度提升明显。

【关键词】并行渲染 集群渲染 时间序列

1 前言

随着计算机硬件和图形学的迅速发展,虚拟现实技术得到了越来越广泛的应用。特别是在大规模场景漫游系统等沉浸式虚拟现实应用中,常常要求计算机图形系统具有很高的图形绘制速度,同时还要具备平滑的漫游效果和高分辨率的大屏幕显示。然而单机的图形处理系统,在三维数据的拣选、几何数据的产生、图形计算、几何指令发射和显示分辨率等方面的能力往往受到限制。许多专业的图形工作站由于价格过于昂贵,使得一般用户无法承担。因此,选用廉价的PC集群来构建并行渲染系统,不仅具有较高的性价比还具有良好的可扩展性。

并行渲染的基本思想是将渲染任务划分为小任务,通过多台计算机同时执行分发到的小任务来提高渲染速度。并行渲染任务有两种方式:空间渲染并行和时序渲染并行。

空间渲染并行,即将三维渲染相机的空间视锥等分为m×n空间体,然后根据渲染图元所在的空间置关系分配不同并行渲染机的任务。空间并行渲染方式结构简单,结构最大程度的保持了图形渲染流水线的完整性,易于使用软件实现,并且可以很方便地用于多通道的大屏幕显示,很多集群并行渲染系统都采用了该体系结构。但是,视锥分割意味着各子节点之间的投影矩阵是不同的,而一些渲染对象的状态可能依赖于整体视锥的形状,即使多个小视锥在几何意义上可以完全拼接,但是所渲染的数据结构可能并不一样,从而导致拼接处渲染的对象不一致,最终出现错误。而且,节点机的相机每帧都受控于主控相机,而主控机的视锥较大,由于相机漫游插值算法本身的问题,将可能导致相机的运动不连贯,这样在画面较大的地幕上不连贯的现象会更加明显。此外,传统视椎切割形式的集群方式中,各台机器的渲染压力不均衡(取决于子视锥中的模型数量)、机器性能的不均衡等因素导致帧同步严重受制于性能最差的机器,对于集群画面的一致性保证提出了很高的要求。

时序集群渲染是按时间将渲染任务分给多台机器,渲染完成将结果交给输出设备,输出设备再根据结果对应的时间进行处理和调整,那么理论上也是可以保证流畅的渲染画面的,而且由视锥划分导致的问题都可以解决。基于此想法提出时序集群的概念,将当前时间点之前一段时间内的交互操作的相机位置以时间轴为变量进行插值序列化,然后将序列化的时间节点的渲染参数分配给多台渲染机中的一台,完成渲染任务后将结果反馈给显示端,显示端根据时间将渲染机的结果有序地呈现出来,从而展示出完整流畅的画面。时序集群的最大的特点就是,每一帧三维画面的渲染最初都是由同一台机器完成的,自然时间的同一时刻,各台渲染机渲染的是控制机前一个时间段之内的某个时间点的画面,所以显示端最终看到的是有一定延迟的画面。但是这种保留输出模式,通过帧缓冲机制可以保证最终展现出的画面帧速率的稳定性。

本文提出一种新的基于时间序列的并行实时渲染系统架构,并对其中涉及到的关键技术进行了研究。

2 基于时间序列的并行实时渲染系统设计

基于以上对时序渲染并行集群的分析,系统PC分为3类:控制主机、渲染主机、显示主机。

2.1 集群系统物理架构

2.1.1 控制主机

控制主机的主要功能是响应用户的交互操作、生成相机序列,同时还要保证各个渲染节点的数据调度同步。控制主机中,根据用户的交互操作及操作趋势,生成相关的相机序列,于此同时,由于为了保证场景的运行效率,系统数据采用Out-core模式,它利用场景图高效的裁剪功能,可以快速地判断落在平截头体内的图元,完成图元的拣选操作,并判断是否需要调入相关的图元。根据图元记录表,如果需要系统调入则同步控制渲染节点机将渲染数据调入和调出。控制节点不需要纹理贴图等很耗时的操作,更不需要帧缓存,所以控制节点PC不需要高性能的图形卡。

2.1.2 渲染节点机

渲染节点机的主要功能是负责某一帧的渲染工作,渲染节点机的渲染结果通过千兆或万兆网络发送给显示机处理。由于系统运行有大量的图形计算及网络传输,因此系统需要配备高性能显卡及高速以太网。

系统采用保留模式渲染显示方式,它根据显示自身渲染速度和显示速度,动态的调整自身的缓冲长度。

2.1.3 显示主机

显示主机主要负责接收渲染主机传送过来的帧序列,以相对稳定的帧速率渲染输出结果。它根据渲染节点机的渲染速度,以连续的帧速率波动来动态的调整自身的缓冲大小。

2.2 集群算法的基本流程

集群算法的基本流程如图1所示,其中主要工作节点的功能如下:

集群控制机:是控制渲染、数据调度、事件响应等操作的控制者,角色类似于空间集群的主控机。

集群控制对象:控制机中的集群控制对象在一个单独的线程中与渲染机和显示机进行交互。

集群渲染机:集群系统中专门负责渲染的机器,提供的功能就是渲染、然后将结果发送到显示机上。

集群渲染机(备选):考虑到单台机器的输出分辨率可能无法达到最大的画面大小,此处还可以对集群画面再进行一次视锥划分。(当然默认情况下是不需要的,只是个备选方案)。

集群显示机:负责将渲染机的渲染结果绘制出来,并输出到投影机。该机器渲染的范围等同于原节点机的范围,根据加密锁的范围确定。显示机负责接收渲染机的渲染结果,然后进行解码,将结果编号后保存在图像缓冲区中等待渲染,同时反馈控制机给渲染机器发送下一组渲染信息。

显示机图像缓冲区:该缓冲区保存渲染机发来的编码好的图像数据并解码上传到显卡,等待渲染显示。

渲染算法的执行步骤如下:

(1)控制机渲染帧数大于两帧就可以通知渲染机进行延迟的时序的渲染,将两帧的相机进行插值,得出渲染机个相机信息,进行编号发送。

(2)控制机发现连续帧的相机位置一致时不进行渲染任务发送,但是仍要更新当前显示帧数。

(3)控制机渲染自身当前帧同时,多线程将延迟帧的信息发送给渲染机器。数据的加载和释放都是针对当前帧进行的,所以数据一定要等待渲染帧处理完才可以释放。

(4)控制机与渲染机不进行帧同步操作,但是要进行数据加载的同步,数据释放的信息随渲染信息一同发送。各台渲染机之间的渲染信息中只有相机位置是不同的。

(5)控制机与渲染机之间的渲染帧数差距应该控制在一定分为内,或者说要保持一个动态的平衡,比如渲染压力大时,控制机与渲染机的帧差可能拉大,但是这种拉大不能是单向不可逆转的。同时,渲染机又不能跟的太紧,否则控制机的帧速又会被拉慢。

(6)显示机只管从图像池中取出图像根据帧号进行渲染,并确保画面帧数是稳定值。如果图像池中没有新图像供使用,可以重用旧数据。每一个控制机帧号对应渲染机个或者渲染机器个数除以2张图片可供渲染。

(7)为了确保池中的数据的帧号尽可能连续一旦断帧将无法渲染,所以添加一个渲染帧处理结束事件的反馈,也就是一个渲染帧信息发给渲染机之后,当渲染结果放到图像池中时需要给控制机反馈,以便发送下一个渲染帧信息。这也就是说渲染机之间的渲染能力要接近,否则快的会被拉慢。

(8)渲染机之间的性能差异体现在从接收到渲染帧数据到图像编解码结束并成功发送到显示机这段操作。

(9)显示端可以是一台机器,因为一台机器输出的分辨率很大时,并且可以接多个投影机(比如8个),那么一台显示机也是可行的。渲染机需要与每台显示机进行连接并发送图像数据。

(10)当三个渲染帧之间的相机变动很小时或者控制机当前帧已经跑很远是,可以进行渲染帧合并,将三个相机位置插值为渲染机个数个相机位置,进行渲染。

3 实验结果与性能分析

评估图形应用程序的并行处理能力的标准一般采用每秒帧数(FPS),本实验将采用FPS指标进行系统性能测试。本实验中的系统配置为五台主机,主机的处理器为4GHz,8G内存,2G显存。实验通过模拟三维自然场景来测试系统的各项性能指标,该场景具有416025个顶点,三角形面数为819200个。实验又针对三种不同复杂度的场景进行了单机和集群渲染对比测试,其平均测试结果如表1所示。

可以看到,随着场景复杂度的提升,本文所提出的集群渲染算法在加速比上提升显著,这说明,大规模的三维场景渲染在该系统上能得到很好的性能提升。

4 结语

时序集群渲染相对于空间并行渲染具有较多的优点,本文提出了一个新的基于时间序列的并行实时渲染算法,并在此基础上构建了一个时序集群渲染系统。通过实验验证,所提出的并行渲染系统相对于单机系统具有较高的加速比,尤其在大规模复杂场景渲染中,该系统可以大幅提升渲染速度和效果。

参考文献

[1]陈国良,孙广中,徐云,等.并行化计算的一体化研究与发展趋势[J].科学通报,2009,54(8):1043-1049.

[2] MOLNAR S,COXM,ELLSWORTH D,et al. A Sorting classification of parallel rendering [J].IEEEComputer Graphics and Applications,1994,(7):23-32.

[3]陈景广,佘江峰,宋晓群,王铁成. 基于多核CPU的大规模DEM并行三维渲染[J].武汉大学学报(信息科学版),2013, 38(5):618-621.

[4]左志权,陈媛.TB级地形数据实时漫游核心算法研究[J].中国图形图像学报,2010,15(9):1411-1415.

作者简介

付金华(1980-),男,山东省昌乐县人。现为郑州轻工业学院计算机与通信工程学院讲师。主要研究方向为计算机技术应用、算法分析。

徐洁(1980-),女,陕西省宝鸡市人。现为郑州轻工业学院软件学院讲师。主要研究方向为计算机技术应用、算法分析。

常化文(1980-),男,河南省安阳市人。现为郑州轻工业学院计算机与通信工程学院讲师。研究方向为地理信息系统。

作者单位

1.郑州轻工业学院计算机与通信工程学院 河南省郑州市 450002

2.郑州轻工业学院软件学院 河南省郑州市 450002

上一篇:冰明玉润天然色,冷暖镜像人间事 下一篇:大众文化视域下大学生思想政治教育工作研究