|
发布时间: 2017-03-16 |
第十一届中国计算机图形学大会专栏 |
|
|
收稿日期: 2016-08-03; 修回日期: 2016-10-25
基金项目: 国家自然科学基金项目(61170171)
第一作者简介: 高瞻(1972-), 男, 副教授, 2006年于香港大学获机械工程专业博士学位, 主要研究方向为人机交互、虚拟现实。E-mail:gaozhan@ntu.edu.cn
中图法分类号: TP301.6
文献标识码: A
文章编号: 1006-8961(2017)03-0385-10
|
摘要
目的 为使用户随时随地获得需要较大计算和存储资源的交互真实感体渲染服务,设计并实现了一种面向Web的远程真实感体渲染方法。 方法 计算量较大的实时体渲染任务由远端渲染服务器中的GPU加速完成并通过WebSocket将渲染图像发送至客户端;客户端浏览器只需负责接收显示渲染图像并监听发送用户交互事件。提出了一种输出系统耦合算法用以连接输出图像速率较大的渲染服务器和发送图像速率较慢的Web服务器。算法能根据Web服务器发送图像的情况动态调整每次图像输出的迭代计算次数,改变渲染服务器输出图像的时间间隔以达到与Web服务器发送速度相平衡,同时保持渲染服务器持续工作。 结果 实验比较了在不同网络传输条件下,采用输出系统耦合算法与直接连接渲染器和Web服务器,渲染4个不同数据集所需的完成时间及帧率等性能评价指标。在局域网和广域网环境下,本文方法分别最多只需17 s和14 s即可完成整个渲染过程,而采用直接连接渲染器和Web服务器的方法则分别至少需要31 s和60 s才能完成整个渲染过程。实验结果表明采用输出系统耦合算法在不同网络条件下均可较大地缩短整个渲染过程所需时间,使用户在较短时间内获得高质量渲染图像。 结论 本文渲染器与Web服务器耦合实现远程体渲染交互优化的方法可让用户使用与计算能力无关的桌面或移动设备通过网络透明使用高性能渲染系统;系统采用的输出系统耦合算法能够根据网络承载能力自适应调整渲染器输出速度,使用户在不同的网络环境中均可以较快的速度获得高质量渲染图像。
关键词
Web; 远程渲染; 真实感; 图像传输; 交互优化
Abstract
Objective Modern medical imaging devices, such as CT and MRI, can provide detailed data representations of the interior of the human body. Realistic volume rendering incorporates Monte Carlo path-tracing algorithm, which addresses the visualization of these data to provide photorealistic images. However, Monte Carlo path-tracing volume rendering demands high storage volume and computational power. Therefore, it can only be interactively visualized on clusters with installed high-performance GPU. Current mobile devices, such as smart phones and tablets, significantly contribute to mobile computing. The realistic volume rendering of high-volume datasets at interactive update rates is still computationally expensive for current hand-held devices because of the limitations of computational capability and power consumption. Remote rendering helps address this issue by running heavy-volume rendering computation on a powerful GPU-accelerated server and transmitting the rendering results to the mobile client for display and interaction. Methods A volume renderer that utilizes Monte Carlo path-tracing (MCPT) techniques was set up to progressively generate realistic images. A dedicated web server sent rendering results to and received user inputs from mobile devices. Renderer servers can produce rendered images at a high updating rate, whereas web server streams render images at a slower rate than a renderer server, particularly when network conditions are poor. Low rendering efficiency is caused by unbalanced data transmission and processing rate between renderer servers and web servers. This paper introduced optimized coupling and performance between a graphic server and web server to improve rendering efficiency and maintain system interactivity. The coupling algorithm can balance the output speed of renderer servers and transfer speed of web servers by adaptively adjusting the rendering iterations of each output image and keeping renderer servers busy before completing rendering tasks. Results To directly compare the performance of the coupling algorithm with that of a connected volume renderer server with web server, we set up an experiment that recorded the total frames received by browsers and the duration of the entire rendering process after user interaction was terminated. The experiment utilized Manix, Mecanix, VisMale, and Bonsai volume datasets. Experimental results indicated that using the coupling algorithm between renderer servers and web servers significantly reduced the time required to achieve the final high-quality image, unlike the direct connection between renderer servers and web servers. The results also revealed that the renderer server connects with web servers via the coupling algorithm, which allows end users to obtain the final high quality image in nearly the same amount of time, regardless of network condition. Conclusion Web-based realistic remote volume rendering system is proposed to provide end users with access to high-performance rendering services using any HTML5 supported device. The coupling algorithm that links renderers and Web servers can adjust the output speed of the renderer depending on the overall capacity of a network while maintaining the performance of the renderer. Thus, end users quickly obtain the final rendered images.
Key words
Web; remote rendering; realistic; image transmission; interaction optimization
0 引言
基于光线投射的体渲染技术以其易于实现、算法变化灵活、可生成复杂光照效果等优点,被广泛应用于医学图像分析、资源勘探和科学仿真数据分析等涉及3维数据可视化的领域。但该算法对硬件平台的计算能力和存储带宽要求较高,高分辨率CT及MRI数据的交互实时重建通常在高性能GPU工作站或计算集群上才能实现,而用户对这些昂贵计算资源的访问一般均限制在较小的地域空间内。近年来随着网络基础设施的逐步完善,用户几乎可随时随地接入网络,因此远程服务越来越受到欢迎和重视。与本地渲染方式相比,远程渲染具有以下几大优点[1]:首先,远程渲染可使计算资源有限的设备(如通用台式机、笔记本电脑及平板电脑等移动设备) 成为1台虚拟高性能图形工作站;其次,远程渲染服务器的计算资源在同一时刻可为多个终端用户提供服务;最后,远程渲染可作为种高效的跨平台渲染解决方案。
目前远程渲染系统的设计主要采用C/S (client/server) 架构和B/S (browser/server) 架构。其中C/S架构需要在客户机平台上安装客户端软件,因此需要为不同操作系统开发相应的软件,且给用户的安装设置带来不便;此外,随着操作系统及一些中间件的淘汰,客户端软件也须重新开发。采用B/S架构的系统则较好地弥补了C/S架构的缺点,几乎所有的现代智能设备均支持Web浏览器,用户可在任意安装浏览器的设备上使用远程渲染系统,免去了下载安装的过程;而开发人员只需维护1套Web应用程序便可轻松实现跨平台解决方案。由于技术限制,早期的B/S架构系统需在浏览器中安装插件(Flash, Java Applet等) 以支持多媒体应用程序[2],这种方式会存在插件安装失败,插件被屏蔽以及引发安全隐患等弊端。HTML5原生支持绘图及Socket通信API,给图形应用程序的开发带来前所未有的方便。文献[3-5]研究了采用HTML5技术实现交互医学影像可视化的可行性并给出了实现的基本框架。
体渲染中引入基于物理的真实感光照能够帮助用户更好地感知3维数据的形态,其中,间接光照作为一种重要的视觉提示,在给观察者提供3维物体深度信息的同时也可较好地展示体数据中重要的全局信息以及局部细节结构。因为基于物理的真实感光照的计算量较大,所以大多数国内外学者主要研究如何利用GPU快速近似生成真实感光照效果的算法以达到交互级渲染速度[6-9]。相比于现有的各种近似算法,基于蒙特卡罗(MC) 方法的物理光照计算能够在不损失光能传输计算精度的条件下渲染出更加具有物理真实感的图片。此外,该算法能够在主流GPU平台上以交互渲染速度运行。Kroes等人[10]开发的Exposure Render很好地证明了采用随机MC方法计算光照不仅没有其他方法对灯光配置和相机模型等的限制,而且可以较好地解决传统光线投射体渲染中由光线步进引起的年轮(wood ring) 失真[6]。
1 总体架构
图 1所示为面向Web的远程真实感体渲染系统总体架构示意图。系统分为服务端和客户端两大部分;服务端可进一步划分为渲染集群和Web服务器,渲染集群负责快速生成体渲染图像,Web服务器负责前端页面逻辑处理及图像发送。系统有2条主要的数据通道,其中一条负责用户交互事件的传送,另一条用以向在线用户分发渲染图像。当用户通过网络连接至Web服务器后,可选择存储服务器中现存的数据或通过上传本地数据进行渲染;计算量较大的渲染任务由渲染集群中的1个渲染器实例负责,渲染器实例启动后将渲染图像序列通过Web服务器连续发送给对应用户;用户通过浏览器产生的交互事件(视角变换、灯光设置、裁剪面设置、体数据属性设置等) 则通过Web服务器转发至对应的渲染实例用以渲染新的图像。由于用户接入的网络情况各异,为了使不同带宽的网络用户尽可能以最快的速度获得较高质量的图片,渲染集群中的自适应优化组件根据不同接入用户的网络情况选择最佳的图片质量与压缩策略对原始渲染图像进行压缩编码。
2 基于物理光照的体渲染
2.1 体渲染方程
面绘制渲染方程假设场景中的物体处于真空环境中,光线在物体之间的传输不会发生辐射亮度的变化。但是在体渲染场景中,必须考虑介质对光线辐射亮度的影响。光与介质的交互主要有3种过程会影响辐射亮度的分布(图 2):1) 光子撞击介质后可能会被介质吸收转化为其他形式的能量,导致辐射亮度降低;2) 高温介质可能会以光子的形式向外辐射能量;3) 光子与介质碰撞后能量不变但方向改变,偏离视线方向的事件称为外向散射,由其他方向进入视线方向的事件称为内向散射。综合这3个主要因素,光线在介质中的传播可用辐射传输方程(RTE) 描述[13]为
$ \begin{array}{*{20}{c}} {\left( {\mathit{\boldsymbol{\omega }} \cdot \nabla } \right)L\left( {\mathit{\boldsymbol{p}},\mathit{\boldsymbol{\omega }}} \right) = - {\sigma _t}\left( \mathit{\boldsymbol{p}} \right)L\left( {\mathit{\boldsymbol{p}},\mathit{\boldsymbol{\omega }}} \right) + }\\ {{\sigma _{\rm{s}}}\left( \mathit{\boldsymbol{p}} \right)\int_\Omega {p\left( {\mathit{\boldsymbol{p}},\mathit{\boldsymbol{\omega '}},\mathit{\boldsymbol{\omega }}} \right)} L\left( {\mathit{\boldsymbol{p}},\mathit{\boldsymbol{\omega '}}} \right){\rm{d}}\mathit{\boldsymbol{\omega '}} + }\\ {{\sigma _{\rm{a}}}\left( \mathit{\boldsymbol{p}} \right)L\left( {\mathit{\boldsymbol{p}},\mathit{\boldsymbol{\omega }}} \right)} \end{array} $ | (1) |
式中,
因为大多数CT或MRI扫描的物体几乎无外向可见光辐射,所以本文的实现忽略介质外向辐射项。对RTE积分可得体渲染方程
$ \begin{array}{*{20}{c}} {L\left( {\mathit{\boldsymbol{p}},\mathit{\boldsymbol{\omega }}} \right) = T\left( {{\mathit{\boldsymbol{p}}_0},\mathit{\boldsymbol{p}}} \right)L\left( {{\mathit{\boldsymbol{p}}_0},\mathit{\boldsymbol{\omega }}} \right) + }\\ {\int_{{\mathit{\boldsymbol{p}}_0}}^\mathit{\boldsymbol{p}} {T\left( {\mathit{\boldsymbol{p'}},\mathit{\boldsymbol{p}}} \right)} {\sigma _{\rm{s}}}\left( {\mathit{\boldsymbol{p'}}} \right)\int_\Omega {p\left( {\mathit{\boldsymbol{p'}},\mathit{\boldsymbol{\omega '}},\mathit{\boldsymbol{\omega }}} \right)} L\left( {\mathit{\boldsymbol{p'}},\mathit{\boldsymbol{\omega '}}} \right){\rm{d}}\mathit{\boldsymbol{\omega '}}{\rm{d}}\mathit{\boldsymbol{p'}}} \end{array} $ | (2) |
式中,等号右边2项分别表示背景光线透射后的辐射亮度以及累积内向辐射亮度。
2.2 体路径追踪算法实现
光线步进算法是种易于实现的求解体渲染方程的方法,但是每一步阴影的计算将导致算法的复杂度变为
$ \begin{array}{l} L\left( {\mathit{\boldsymbol{p}},\mathit{\boldsymbol{\omega }}} \right) = \\ \;\;\;\frac{1}{N}\sum\limits_{i = 0}^{N - 1} {\frac{{{\sigma _{\rm{s}}}\left( {{{\mathit{\boldsymbol{p'}}}_i}} \right)}}{{{\sigma _{\rm{t}}}\left( {{{\mathit{\boldsymbol{p'}}}_i}} \right)}}} \int_\Omega {p\left( {{{\mathit{\boldsymbol{p'}}}_i},\mathit{\boldsymbol{\omega '}},\mathit{\boldsymbol{\omega }}} \right)} L\left( {{{\mathit{\boldsymbol{p'}}}_i},\mathit{\boldsymbol{\omega '}}} \right){\rm{d}}\mathit{\boldsymbol{\omega '}} \end{array} $ | (3) |
由于体数据并未显式定义法线向量,所以单一体渲染方程并不能呈现出高光带来的细节增强,如图 3(a)所示。本文采用Kroes等人[10]提出的方法解决该问题,令
$ \begin{array}{*{20}{c}} {L\left( {\mathit{\boldsymbol{p'}},\mathit{\boldsymbol{\omega }}} \right) = }\\ {\left\{ \begin{array}{l} \int_\Omega {\frac{{{\sigma _{\rm{s}}}\left( {{{\mathit{\boldsymbol{p'}}}_i}} \right)}}{{{\sigma _{\rm{t}}}\left( {{{\mathit{\boldsymbol{p'}}}_i}} \right)}}\int_{{\rm{phase}}} {\left( {\mathit{\boldsymbol{p'}},\mathit{\boldsymbol{\omega '}},\mathit{\boldsymbol{\omega }}} \right)} L\left( {\mathit{\boldsymbol{p'}},\mathit{\boldsymbol{\omega '}}} \right){\rm{d}}\mathit{\boldsymbol{\omega '}}} \;\;\;\;\;\xi > {P_{{\rm{brdf}}}}\\ \int_\Omega {{P_{{\rm{brdf}}}}\left( {\left( {\mathit{\boldsymbol{p'}},\mathit{\boldsymbol{\omega '}},\mathit{\boldsymbol{\omega }}} \right)L\left( {\mathit{\boldsymbol{p'}},\mathit{\boldsymbol{\omega '}}} \right)} \right.\left| {\cos \left( \theta \right)} \right|{\rm{d}}\mathit{\boldsymbol{\omega '}}} \;\;\;\;其他 \end{array} \right.} \end{array} $ | (4) |
若将式(4) 中的
$ \int_\Omega {{f_{{\rm{reflect}}}}\left( {\mathit{\boldsymbol{p'}},\mathit{\boldsymbol{\omega '}},\mathit{\boldsymbol{\omega }}} \right)L\left( {\mathit{\boldsymbol{p'}},\mathit{\boldsymbol{\omega '}}} \right){\rm{d}}\mathit{\boldsymbol{\omega '}}} $ | (5) |
本文使用CUDA实现体路径追踪算法以利用GPU提供的大规模并行计算能力,此外GPU还可提供更高的存储带宽以及硬件实现的三线性纹理插值计算,这些功能对体渲染程序的性能都有较大影响。GPU实现中,每个CUDA线程在1次迭代计算中执行的体路径追踪算法的核心步骤如下:
1) 由相机中心和像素区域内随机采样点构建主光线;若主光线与体数据相交则继续;否则返回背景光。
2) 由Woodcock tracking方法确定下一次光线发生散射的位置距当前位置的距离
3) 对灯光位置进行采样并结合当前位置
4) 对BSDF进行采样,确定散射光线方向。
5) 由Russian Roulette算法决定光线是否终止;若光线在算法中胜出,则追踪散射光线,转步骤2);否则,终止光线追踪,返回光线的辐射亮度。
3 Web交互与优化
采用基于HTML5的Web技术设计交互界面并使用WebSocket进行服务器与浏览器的通信。WebSocket是一种基于TCP协议的全双工通信方式,服务器可以在无浏览器请求的情况下向已建立连接的浏览器推送消息,与此同时,浏览器也可向服务器发送请求。在交互过程中,远程服务端的渲染器将渲染结果传递至Web服务器并由后者发送给浏览器;但由于渲染器和Web服务器的输出速率不一致,因此本文设计了一种耦合算法连接两种输出系统使两者的工作性能互不影响。评价一个远程应用程序最直接的标准是用户能够感受的服务质量,系统结合了MC渲染的特点以及应用环境的要求,在渲染过程中选择不同的渲染图像压缩质量使用户获得更好的交互体验。
3.1 Web交互设计
系统将服务器功能分为2个功能模块:1) 浏览器通信模块;2) GPU体渲染模块。客户端部分可以分为3个功能模块:1) 服务器通信模块;2) 图像显示模块;3) 交互动作监听模块。下面介绍服务器和客户端各模块的主要实现步骤。
当用户发起连接请求时,浏览器通信模块建立1个WebSocket实例并等待用户连接。该实例以字符串的形式接收来自浏览器的JSON格式指令及参数,解包后交予指令对应部件执行。渲染器输出的图像以PNG或JPEG格式传输至该模块,WebSocket以二进制的格式将其发送到浏览器。浏览器接收到图像数据后可直接用HTML5的canvas显示,无需任何显式解码过程。GPU体渲染模块负责生成体数据渲染图像,当渲染器收到浏览器通信模块传递的指令和参数时便进行相应的渲染参数调整,之后进行新一轮的渲染并将生成的图像数据传输至浏览器通信模块。
客户端是1个支持HTML5 canvas的浏览器。浏览器通过WebSocket与服务器进行通信,由Javascript捕获用户的键盘与鼠标事件发送至服务器并从服务器接收渲染图像。客户端的服务器通信模块通过由Javascript创建的WebSocket实例与服务器进行异步消息传递;实例创建后进入等待状态,一方面监听服务器发送的图像数据,另一方面负责等待发送用户请求。当服务器通信模块收到服务器发送的图像数据后将其分发至图像显示模块,显示模块调用ImageUpdate函数将最新图像显示在canvas标签内。用户交互事件主要包括鼠标在canvas上产生的视角变换事件和各参数窗口中滑块移动产生的参数改变事件。交互动作监听模块通过Javascript定义发生在canvas上的各种鼠标事件回调函数以及各窗口控件的回调函数获取交互事件,并通过{eventName:name, eventParams:parameters}的JSON格式由服务器通信模块发送至服务器。
图 4所示为1个用户交互事件产生至浏览器获得新渲染图像的Web交互过程。通过这样的交互循环,系统可以在任何支持HTML5的设备上实现1种真实感光照体渲染的伪3维交互模式。
3.2 渲染器与Web服务器的耦合算法
随机MC渲染算法通常每个像素需要几百至几千次的采样才能获得高质量的图像。较少采样次数渲染的图像包含大量噪点,尤其是最初的几十次渲染结果;用户可接受的图像需要经过数百次的迭代渲染,高质量图像则需要千次或更高的迭代次数。然而用户关心的是最终的渲染图像,中间图像是否全部依次呈现并不重要;若整个渲染过程中的中间结果均不向客户端发送而只发送最终渲染图像则会影响用户交互体验,使用户得不到即时的交互反馈。因此,在交互过程中服务器需发送中间渲染图像但无需发送全部中间渲染图像至浏览器。
系统中渲染图像的输出分为渲染集群向前端Web服务器的输出和前端Web服务器向浏览器的输出。渲染集群的图像输出速度主要取决于GPU的计算性能、渲染算法、渲染参数以及体数据结构;Web服务器通过网络输出图像,网络带宽、图像分辨率及图像质量综合决定了其输出速度。表 1所示为GPU在不同渲染参数下的渲染性能范围,可见其渲染速度均高于Web服务器向浏览器流畅发送图像的速率,因此需要选择合适的算法将2种输出速度差异较大的系统进行耦合。
表 1
GPU渲染速度范围
Table 1
Range of GPU rendering speed
体数据 | 数据大小/体素 | 速度/(迭代/s) |
Manix | 512×512×460 | 51136 |
Mecanix | 512×512×743 | 55143 |
Engine | 256×256×256 | 98183 |
Bonsai | 512×512×182 | 91171 |
渲染集群输出1帧图像的时间为
通常使用高速缓冲区连接2种输出速度不同的系统,本文使用FIFO队列作为缓冲区耦合2个输出系统,渲染集群以较高的速率向队列输出数据,而Web服务器则以较低的速率读取数据。令
渲染开始时,渲染器以最快的速度(
当用户进行交互时,渲染器需要根据最新渲染参数重新渲染,此时清空队列中以前的渲染图像并重新进入快速输出。当渲染集群发现总迭代渲染次数达到系统预设或用户设置值,表明系统默认或用户可接受图像质量符合要求,则以无损压缩算法对图像编码并发送至浏览器;之后清空缓冲队列并暂停渲染器和Web服务器,直至用户产生新的交互事件。
3.3 图像质量与交互帧率优化策略
更新渲染参数后重新渲染的前十几至几十帧图像包含大量的噪点,随着迭代渲染次数的增加,噪点减少速率减缓(MC收敛速度为
采用过低的JPEG质量压缩图像会导致解压后的图像产生严重的方块效应,使得图像无法辨认。虽然初始渲染的几十帧图像并非用户最终需要的结果,但其仍然为用户交互提供一定的视觉反馈,引导用户尽快调节到所需的渲染参数,因此需要为不同阶段的图像选择合适的
4 实验与结果
4.1 系统功能验证
实验使用基于Kepler架构的NVIDIA GTX760显卡作为渲染加速器,其GK104核心GPU有6个流多核处理器共1152个CUDA核心,4GB显存,最高时钟频率为1.18 GHz。渲染器部分采用C++和CUDA C编写,使用的CUDA版本为7.5;采用Python tornado编写Web服务器。
图 8和图 9所示分别为系统交互界面和系统运行于移动设备的效果图。系统界面主要分为2个部分,左侧的画布用以绘制远程服务器发送的渲染图像并接受用户的鼠标拖拽以及滚轮操作(移动设备的单指拖拉以及两指缩放操作) 产生视角变换事件;右侧的工具栏以百叶窗的形式提供传输函数、灯光参数、裁剪面参数和相机参数调整的空间组。
图 10展示了系统提供的各种渲染功能,用户可以通过调整传输函数
4.2 系统性能测试与分析
实验选取Manix、Mecanix、VisMale和Bonsai作为测试数据集,分别统计了采用文中提出的输出系统耦合算法发送渲染图像和发送所有迭代渲染图像在校园局域网(BW: 100 Mb/ps,RTT: 1.33 ms,Packet loss: 0%) 和宽带(BW: 10 Mb/ps,RTT: 45 ms,Packet loss: 0.89%) 环境下渲染这些数据集,从交互动作停止至渲染结束,客户端浏览器收到的总帧数以及完成所需时间数据。实验中渲染图像的分辨率为640×480像素,JPEG质量为90(1100),总迭代计算次数为1 000,缓冲队列长度为60,Web服务器以30帧/s的速度输出图像,表 2所示为测试结果。
表 2
系统性能测试数据
Table 2
Performance tests of the system
体数据 | 速度/ (迭代/s) |
采用耦合算法 | 未采用耦合算法 | ||||||||
总帧数 | 完成时间/s | LAN平均帧率 /(帧/s) |
总帧数 LAN & WAN |
完成时间/s | |||||||
LAN | WAN | LAN | WAN | LAN | WAN | ||||||
Manix | 89 | 340 | 53 | 16.456 | 13.348 | 20 | 1 000 | 30.029 | 91.029 | ||
Mecanix | 141 | 197 | 51 | 9.835 | 8.684 | 20 | 1 000 | 30.028 | 99.753 | ||
Engine | 169 | 160 | 56 | 6.966 | 6.034 | 22 | 1 000 | 30.030 | 65.088 | ||
Bonsai | 247 | 111 | 49 | 4.547 | 4.156 | 24 | 1 000 | 30.028 | 59.997 |
表 2数据表明采用文中提出的输出系统耦合算法渲染不同数据集在LAN和WAN两种环境下所需的完成时间均少于未采用输出系统耦合算法渲染不同数据集在2种网络环境下所需的完成时间。该结果说明采用文中提出的耦合算法连接渲染器和Web服务器能够较好地提高整个系统的性能,使系统在较好和较差的网络传输环境中均能以较快的速度输出最终的高质量渲染图像。
分析表 2中采用输出系统耦合算法的测试数据可发现:1) LAN环境中渲染不同数据集的过程中浏览器收到的总帧数远大于WAN下浏览器收到的总帧数,但2种网络环境下渲染不同数据集对应所需完成时间相差很小。显然在相近的时间内接收到的帧数越多,显示效果越平滑。因为LAN环境下Web服务器输出较快且稳定,渲染器的平均每次图像输出的迭代计算次数较少,故输出图像较多;而WAN环境下Web服务器输出速度较慢且可能出现丢包,因此缓冲队列被填满的概率较高,输出系统耦合算法增加渲染器每次输出图像的迭代计算次数,故整个渲染过程中输出图像变少。2) LAN环境中渲染不同数据集的平均帧率大致相同,因此完成渲染任务所需时间越短,浏览器收到的总帧数越少;而WAN下渲染不同数据集浏览器收到的总帧数相差较小。因为Web服务器在LAN中能较稳定发送图像,渲染器能较快找到和Web服务器发送速度相平衡时的迭代计算次数,因此浏览器可以较稳定的帧率接收图像;WAN的不稳定性则使渲染器每次图像输出的迭代计算次数不停大幅波动,即使能达到平衡,每次图像输出的迭代计算次数也较大,因此整个过程输出的图像数量较少。
表 2中未采用输出系统耦合算法获得的数据则说明了:1) 系统会将每次迭代计算渲染的图像都发送至浏览器,因此2种网络环境下浏览器收到的总帧数相同。2) LAN下不同数据集渲染完成所需时间基本相同,而WAN下不同数据集渲染完成所需时间相差较大,且均高于LAN环境中对应的数据集所需时间。因为渲染系统1次迭代计算输出图像所需时间小于Web发送间隔,所以其完成所需时间约为Web服务器发送1 000帧图片所需时间,因此所需时间基本相同;而WAN环境所需时间完全取决于网络环境,无相关规律。
4.3 实验结论
相比于原始直接连接渲染器和Web服务器时的系统性能,采用输出系统耦合算法连接渲染器和Web服务器可较大地缩短整个渲染过程所需时间,提高系统性能,使用户在不同的网络环境中均可以较快的速度获得高质量渲染图像。在大带宽低延迟的局域网内,渲染器能通过缓冲队列的状态较快调整其每次图像输出间隔使得其输出速度与网络承载能力相平衡,并能相对平稳保持该状态,因此用户在整个渲染过程中能以较流畅的视觉体验观察图像的输出过程。在网络传输情况难以预测的广域网环境中,渲染器的计算速度远大于Web服务器的输出速度,此时渲染器会调整每次图像输出的迭代计算次数至1个较大的值,因此渲染器每次输出图像间隔变大,在渲染过程中输出较少图像,所以虽然图像输出帧率不高,但整个渲染过程所需时间基本不变。
5 结论
本研究设计并实现了面向Web的远程真实感体渲染方法。本方法的特点是将渲染和显示进行分离,计算量巨大的渲染任务在专用渲染服务器或工作站上执行,而用户则可以使用任何支持HTML5的设备以交互级速度使用远端渲染系统。本文提出的输出系统耦合算法能够将渲染集群和Web服务器这2个输出速度相差较大的系统进行连接,使用户在较好的网络环境下可以获得较流畅的图像输出;在相对较差的网络环境下,用户虽然会发现整个渲染过程中接收图像的帧率不高,但同样能够在较短的时间内获得最终渲染图像。
本文在图像传输方式上采用发送JPEG图像,缺少帧间压缩带来的更好压缩效率,因此在后续研究中将研究如何合理结合文中提出的输出系统耦合算法和x264视频编码算法,采用流的方式发送图像数据,减少网络传输的压力。
参考文献
-
[1] Shi S, Hsu C H. A survey of interactive remote rendering systems[J]. ACM Computing Surveys (CSUR), 2015, 47(4): #57. [DOI:10.1145/2719921]
-
[2] Jourdain S, Ayachit U, Geveci B. ParaViewWeb:a web framework for 3D visualization and data processing[J]. International Journal of Computer Information Systems and Industrial Management Applications, 2011, 3(1): 870–877.
-
[3] Lei H, Zhao Y, Wang M J, et al. Html5-based medical image visualization system[J]. Journal of Image and Graphics, 2015, 20(4): 491–498. [雷辉, 赵颖, 王铭军, 等. 面向浏览器的医学影像可视化系统[J]. 中国图象图形学报, 2015, 20(4): 491–498. DOI:10.11834/jig.20150404]
-
[4] Gao P, Liu P, Su H S, et al. Research on three-dimensional medical image reconstruction and interaction based on HTML5 and visualization toolkit[J]. Journal of Biomedical Engineering, 2015, 32(2): 336–342. [高鹏, 刘鹏, 苏红森, 等. 基于HTML5与可视化工具包的医学影像三维重建及交互方法研究[J]. 生物医学工程学杂志, 2015, 32(2): 336–342. ]
-
[5] Wangkaoom K, Ratanaworabhan P, Thongvigitmanee S S. High-quality web-based volume rendering in real-time[C]//Proceedings of the 12th International Conference on Electrical Engineering/Electronics, Computer, Telecommunications and Information Technology. Hua Hin, Thailand:IEEE, 2015:1-6.[DOI:10.1109/ECTICon.2015.7207091]
-
[6] Engel K, Hadwiger M, Kniss J M, et al. Real-Time Volume Graphics[M]. Wellesley: CRC Press, 2006: 163-185.
-
[7] Kulla C, Fajardo M. Importance sampling techniques for path tracing in participating media[J]. Computer Graphics Forum, 2012, 31(4): 1519–1528. [DOI:10.1111/j.1467-8659.2012.03148.x]
-
[8] Zhukov S, Iones A, Kronin G. An ambient light illumination model[C]//Proceedings of the Eurographics Workshop on Rendering Techniques'98. Vienna:Springer, 1998:45-55.[DOI:10.1007/978-3-7091-6453-2_5]
-
[9] Beason K M, Grant J, Banks D C, et al. Pre-computed illumination for isosurfaces[C]//Proceedings of the SPIE 6060, Visualization and Data Analysis 2006. San Jose, CA:SPIE, 2006:#60600B.[DOI:10.1117/12.650849]
-
[10] Kroes T, Post F H, Botha C P. Exposure render:an interactive photo-realistic volume rendering framework[J]. PLoS One, 2012, 7(7): e38586. [DOI:10.1371/journal.pone.0038586]
-
[11] Davidovi T, Kivánek J, Haan M, et al. Progressive light transport simulation on the GPU:survey and improvements[J]. ACM Transactions on Graphics, 2014, 33(3): #29. [DOI:10.1145/2602144]
-
[12] Lafortune E P, Willems Y D. Rendering participating media with bidirectional path tracing[C]//Proceedings of the Eurographics Workshop in Porto on Rendering Techniques'96. Vienna:Springer-Verlag, 1996:91-100.[DOI:10.1007/978-3-7091-7484-5_10]
-
[13] Pharr M, Humphreys G. Physically Based Rendering:From Theory to Implementation[M]. 2nd ed. Burlington: Morgan Kaufmann/Elsevier, 2010: 873-876.
-
[14] Wrenninge M. Production Volume Rendering:Design and Implementation[M]. Boca Ration: CRC Press, 2012: 185-187.
-
[15] Woodcock E, Murphy T, Hemmings P, et al. Techniques used in the GEM code for Monte Carlo neutronics calculations in reactors and other systems of complex geometry[C]//Proceedings of the Conference Applications of Computing Methods to Reactor Problems. Chicago:Argonne National Laboratory, 1965:557.
-
[16] Raab M, Seibert D, Keller A. Unbiased global illumination with participating media[M]//Keller A, Heinrich S, Niederreiter H. Monte Carlo and Quasi-Monte Carlo Methods 2006. Berlin Heidelberg:Springer, 2008:591-605.[DOI:10.1007/978-3-540-74496-2_35]