一种基于远程渲染的三维模型网络发布方法

文档序号:6554787阅读:154来源:国知局
专利名称:一种基于远程渲染的三维模型网络发布方法
技术领域
本发明涉及到三维模型化简,三维数据安全和远程渲染方面的技术,特别是一种远程渲染的三维模型网络发布方法,应用于各种三维模型的网络发布。此外,也应用于数字博物馆中珍贵文物三维模型的网络发布。
背景技术
为得到客户端的简化版模型,需要对高精度的三维模型进行化简。三维模型化简的研究,首先从1992年Schroeder等人的顶点删除方法开始,Hoppe在1993年提出了能量函数的网格优化方法,Cohen在1996年提出了简化封套的方法,Garland在其博士论文中提出了二次误差的方法。
三维数据安全方面,目前国内外的大部分研究都集中在网格数字水印技术上。在计算机图形学中,物体常常用三角形网格模型来描述。三维数字水印技术就是在三角形网格数据中嵌入隐藏的信息,这些信息通常是不可见或不可察的,但是通过一些计算操作可以被检测或提取出来。水印与源网格数据紧密结合并隐藏其中,成为网格数据不可分割的一部分,并可以经历一些不破坏源数据使用价值或商业价值的操作而存活下来。因此,三维数据的所有者可以通过检测水印数据来表明所有权并证明盗版行为。近年来有大量论文描述了在三维模型中嵌入隐藏信息的网格数字水印方法,较突出的有Praun的利用多分辨率分析的网格水印算法,Ohbuchi等人提出的基于扩展频域变换的三维水印算法等。但是,所有的三维水印技术都有一个致命的弱点它只能在数据失窃之后证明盗版行为,而无法事先防止对三维数据的攻击。
远程渲染系统是一种Client/Server结构。一般客户端负责接受用户的输入并向服务器发送相应的渲染请求,高图形性能的服务器负责进行渲染并把得到的图像传回给发送请求的客户端进行显示。绝大多数已实现的远程渲染系统的目的都是解决客户端机器图形性能低下,无法满足渲染要求的问题。Levoy和Yoon的研究提供了在渲染服务器和客户端之间有效地分配渲染负载和数据传输的专用算法。斯坦福大学的研究人员Koller对各种针对图形流水线的攻击手段进行了详细的分析,考察了现有的各种防护手段的优缺点,并提出了一种以三维数据保护为主要目标的远程渲染系统。
在三维模型数据网络传输方面,传统的单分辨率模型的网络传输采取“先下载,再显示”的模式,即将三维模型的所有相关数据都下载到客户端之后再显示。这种方式的不足之处在于用户需要等待太长的时间。而由Hoppe率先提出的递进网格传输方法首先传送一个粗糙模型到客户端并立刻显示,然后再逐渐的传输一系列的优化信息,对最初的粗糙模型进行细化,并且如果用户觉得模型的精细程度已经达到要求的时候,可以随时停止传输。这种传输模式虽然使得用户能够很快看到模型的显示,但是用户还是要等很长时间才能看到精细的模型效果。

发明内容
本发明的技术解决问题克服现有技术的不足,提供一种安全性好、对网络带宽要求低、对客户端机器的三维图形性能要求低、传输时间短的基于远程渲染的三维模型网络发布的方法。
本发明的技术解决方案一种基于远程渲染的三维模型网络发布方法,其特征在于包括下列步骤(1)将高精度模型保存在远程渲染服务器上;(2)远程渲染客户端的用户根据三维浏览器提供的精简的粗糙模型,进行缩放,平移和旋转等交互操作,选择最佳的观察视点;(3)当用户停止操作时,客户端向服务器发送一个渲染请求,该请求中包含用户当前的视点、方向和光照条件等信息;(4)远程渲染服务器根据远程客户端的上述信息的请求进行渲染,得到高分辨率的渲染图像;(5)将上述高分辨率的渲染图像发送给远程渲染客户端,客户端用它来替换当前相应位置的低分辨率的渲染图像。
还在远程渲染服务器上进行三维数据数据安全防护方法操作,主要操作步骤(1)日志分析,远程渲染服务器对每个客户端程序进行标识,并以此跟踪和监视每个客户端发出的渲染请求序列;(2)对渲染请求设置限制;(3)在图像中加入同种类型的噪音干扰。
本发明与现有的发布方法相比具有以下优点1.安全性高与目前流行的“先下载,再显示”的3D模型发布系统相比,本发明的系统具有先天的安全性优势——需要保护的原始模型数据保存在服务器端,客户端接收到的只有2D的图像。虽然客户端也有一个精简版的模型,但是本发明的模型化简算法可以指定化简的粗糙程度。对于一个百万多边形甚至千万多边形的初始模型而言,当把它化简到10000个左右的多边形时,虽然还具有基本的轮廓特征,但是会丢失绝大多数的局部细节,基本上已经不具有任何盗版的价值了。
2.对网络带宽要求低传统的“先下载,再显示”的模式为了显示模型必须先把所有模型数据下载到客户端。因此它受网络带宽的限制最大,对于规模动辄超过百万多边形的三维模型来说,这种模式根本无法应用。
最近几年发展迅速的递进传输技术对“先下载,再显示”模式进行了重要改进。这种方法首先传输一个数据量很小的粗糙的基网格给客户端,客户端接收到基网格后立即可以显示,然后服务器持续发送对基网格的优化信息,客户端的显示效果也逐渐精细,直到传输完毕或用户对模型精细度感到满意为止。这种方法大大降低了用户看到最初显示的等待时间,但是为了看到令人满意的精细的效果,用户仍然不得不等待很长时间。
传统的远程渲染系统不把三维模型数据传输到客户端,在客户端呈现给用户的实际上是由服务器根据客户端的用户输入渲染得到的图像流。为了在客户端得到实时的交互效果,图像流至少需要达到30fps。根据我们的实验,压缩后的渲染图像大小平均约为30KB,则客户端与服务器端的数据流量大约是900KB/s;即使如4.2.4节所述,服务器渲染性能大约只有16fps,数据流量仍然达到可观的480KB/s,这对于如今的普通网络条件而言仍然是一个沉重的负担。
而本发明在服务器和客户端之间传输的主要数据是图像数据,根据我们的实验统计,服务器发出的JPEG图像平均大小约为30KB。我们可以合理地假设用户在客户端平均每分钟使用鼠标操纵模型60次。那么这个用户的网络通信流量为30KB×60/60=30KB/s。
这样微弱的数据量对于目前的网络带宽来说没有任何问题。
3.对客户端的图形性能要求低“先下载,再显示”的方法和递进传输方法都是把全部的渲染任务交给客户端完成。因此为了达到令人满意的渲染效果,客户端机器必须配置高性能的图形硬件。
传统的远程渲染方法就是为了解决客户端图形性能弱的问题而诞生的。客户端只需要显示二维的图像,几乎所有的PC机都可以轻松胜任。
本发明的系统同样把渲染高精度模型的工作转交给了服务器,而客户端机器只需要最基本的3D图形性能即可胜任渲染精简版本模型的工作。试验表明,对于10000三角面片左右的模型,使用五年前面世的GeForce2显卡都能够达到30fps以上的刷新率。可以认为,现在的主流机型完全能够满足客户端的图形性能要求。


图1为本发明的三维模型网络发布方法实现示意图;图2为本发明的客户端的低分辨率模型图像(5000三角形);图3为本发明的服务器传来的高分辨率模型图像(100万三角形)。
具体实施例方式
本发明采用Client-Server模式,实现结构如图1所示。
1.客户端用户可以通过系统提供的三维客户端浏览器观察三维模型。客户端程序中包含一个分辨率很低的精简版三维模型,用户可以对此粗糙模型进行旋转、缩放、平移等交互式操作。当用户停止操作时(程序通过MouseUp消息检测到用户停止了操作),客户端程序通过网络向远程渲染服务器发送一个渲染请求,请求中包含当前用户的视点位置、方向以及控制三维模型状态的变换矩阵;服务器根据这些信息对服务器端的高精度模型进行渲染并得到高分辨率的渲染图像,然后发送给客户端,客户端用它来替换当前的低分辨率渲染效果,如图2和图3所示。
在低延迟的网络环境下,用户感觉就像在操作一个高分辨率的模型。一个文物的三维模型通常超过百万个三角形,在客户端使用的精简版模型一般被化简到5000个三角形左右。
2.服务器2.1渲染模块远程渲染服务器的渲染模块的功能是根据客户端的请求对服务器端的高精度模型进行渲染,得到一幅高清晰度的图像。为了提高服务器的响应速度,在服务器程序中应用了软硬结合的渲染技术,主要包括(1)把频繁使用的绘制命令或改变状态命令存储为显示列表以减少访问内存的次数。
(2)利用OpenGL的VBO扩展把模型的顶点、纹理坐标、法向量、颜色等数据存储到图形卡的高性能显存中。因为GPU访问显存的速度远远高于访问内存的速度,因此能够带来较大的性能提升。
采取上述加速措施之后,渲染模块在P4 3.0G/Radeon9800Pro的机器上渲染百万多边形的模型时,平均速度从24fps提高到45fps。
2.2渲染图像回读与压缩服务器根据客户端提供的信息进行渲染之后,得到的图像通常以象素形式保存在帧缓存(Framebuffer)中,服务器需要从帧缓存回读出这些象素信息并发送给客户端。在此过程中需要解决两个问题第一,帧缓存属于on-screen buffer,它必须与一个实际的窗口绑定的,因此在各方面都受到这个窗口的限制,比如大小、象素格式等等,而且如果绑定的窗口被其它窗口遮挡,也会破坏保存在帧缓存中的图像信息。为克服这些弊端,服务器中采用P-Buffer作为渲染的目标缓存。P-Buffer是OpenGL的标准ARB扩展,属于off-screen buffer,它不与真正的窗口绑定,是不可见的。服务器程序可以根据需要自由设置P-Buffer的大小、象素格式等属性而不会受到任何限制。第二,从缓存中读取的图像格式为每象素4字节的bmp格式,一幅800×600的图像大小约为2MB,难以满足网络传输的要求。因此,必须对图像进行压缩。本文选择了通用的JPEG图像压缩标准。本发明实现的压缩程序能够在保证图像质量的前提下把从帧缓存中读取的图像压缩到20KB到40KB。
2.3通信线程及其管理为了提高系统的并发程度,满足尽可能多的渲染请求,服务器程序采用了多线程的实现方式。服务器为每一个客户端建立一个通信线程,负责接收来自该客户端的渲染请求,并从渲染请求中读取视点、窗口大小、模型状态等信息,提供给渲染模块;在渲染模块根据这些信息渲染完毕后又负责把压缩得到的JPEG图像发送回客户端。很显然,渲染模块和图像缓存是临界资源,本发明采取了先来先服务的线程调度策略。
3.三维模型化简与传输本方法采用基于二次误差度量的网格简化算法对三维模型进行化简。该算法使用二次矩阵来保持表面的近似误差,通过递归地对顶点对进行压缩(contraction of vertex pairs)而实现对网格的化简。
算法的基本操作是顶点对压缩,即将2个顶点v1,v2合成一个顶点v(v1,v2)→v,与边折叠等网格化简算法不同的是,v1,v2可以是相邻的2个顶点,即(v1,v2)是三角网格的一条边(如图1a),也可以是不相邻的两个顶点(如图1b),从而实现了对聚集(aggregation)的支持。
算法首先需要选择顶点对(v1,v2),满足下面规则之一的为有效顶点对1)v1,v2)是网格的一条边;2)|v1-v2||<t,其中t是给定的参数阈值。
之后,需要根据误差度量对有效的顶点对进行删除合并,误差的度量方法如下首先为每个顶点分配一个4×4的矩阵Q,把顶点V=[vx,vy,vz,1]T的二次误差定义为Δ(v)=VTQV,在每次顶点对压缩(v1,v2)→v之后,给新的顶点v分配误差度量矩阵Q′=Q1+Q2。这样根据各个顶点对的压缩带来的误差选择合适的进行压缩。
Δ(v)定义为顶点ν到与之相连的面的距离平方和,其推导过程如下Δ(v)=Δ([vx,vy,vz,1])=Σp∈planes(v)(pTv)2]]>=Σp∈planes(v)(vTp)(pTv)]]>=Σp∈planes(v)vT(ppT)v]]>=vT(Σp∈planes(v)Kp)v]]>其中,Kp=ppT=a2abacadabb2bcbdacbcc2cdadbdcdd2]]>对于初始网格来说,Q为0,因为所有的点都在与其相邻的面上,所以其距离为0。
使用三维扫描仪得到的高精度三维文物模型通常都包含超过百万个三角形。利用上述的模型化简算法将其化简到5000三角形左右时,模型的局部细节大为缩减,但仍然较完整地保留了初始的几何特征。
客户端的粗模型可以采用下面两种方法之一进行发布1)把模型封装在客户端中,随客户端程序一起发布;2)粗模型也存放在服务器中,客户端建立与服务器的连接之后进行下载。
4.发布系统的安全防范技术与目前流行的“先下载,再显示”的3D模型发布系统相比,本文的系统具有先天的安全性优势——需要保护的原始模型数据保存在服务器端,客户端接收到的只有2D的图像。虽然客户端也有一个精简版的模型,但是我们的模型化简算法可以指定化简的粗糙程度。对于一个百万多边形甚至千万多边形的初始模型而言,当把它化简到10000个左右的多边形时,虽然还具有基本的轮廓特征,但是会丢失绝大多数的局部细节,基本上已经不具有任何盗版的价值了。
但是,也必须考虑到目前计算机视觉的高速发展提供了从2D图像重构3D模型的可能性。为了防止潜在的攻击者使用服务器提供的2D图像来重构初始的三维模型,服务器采取了下列防范重构的措施4.1日志分析服务器对每个客户端程序进行标识,并以此跟踪和监视每个客户端发出的渲染请求序列。通过分析服务器日志,可以鉴别出那些可疑的请求序列,例如在单位时间内发出异乎寻常的大量请求或者其它可疑的行为。
4.2对渲染请求设置限制为了进一步防止攻击者利用从客户端获取的大量2D图像进行3D重构,可以对观察条件进行一些限制,即对模型设置一些“游人止步”的区域,禁止观察者在某些区域观察模型,从而使攻击者无法重构出完整的模型。
设置限制方法分两步,第一步是确定模型表面需要进行观察限制的部位,第二步是以模型的中心点为顶点,向第一步中确定的部位投射一个视锥体,落入此视锥体内的任何渲染请求都被限制。这种方法的优点是简单,容易实施。
4.3噪音干扰在当前普遍使用的计算视觉算法中,噪音干扰往往会严重降低重构的质量。因此可以针对重构攻击的这一软肋,有针对性地在图像中加入同种类型的噪音干扰,以加大重构的难度。加入的干扰是以不影响用户观察为前提的,但是足以对重构造成严重的阻碍。系统中使用的干扰和变形包括干扰渲染的观察参数,干扰渲染的光照参数。
加入噪声干扰的方法和步骤干扰观察参数服务器端接收到客户端传来的观察参数之后,会在变换矩阵中随机地引入一个微小地干扰值,引入这个干扰值会造成对模型进行细微地旋转、平移或缩放地效果。为了保证用户不会通过肉眼察觉这些干扰效果,为该干扰值设置了一个最大值。在实际操作中,可以将该最大值设置为模型实际大小的一个比例,如1/10000。
干扰光照参数干扰光照参数的方法与对观察参数的方法相似。对于用户在客户端指定的光照方向,引入一个微小的干扰值。为了保证用户不会通过肉眼观察到这些干扰效果,设定该干扰值一般小于5°。
权利要求
1.一种基于远程渲染的三维模型网络发布方法,其特征在于包括下列步骤(1)将高精度模型保存在远程渲染服务器上;(2)远程渲染客户端的用户根据三维浏览器提供的精简的粗糙模型,进行缩放,平移和旋转等交互操作;(3)当用户停止操作时,客户端向服务器发送一个渲染请求,该请求中包含用户当前的视点、方向和光照条件等信息;(4)远程渲染服务器根据远程客户端的上述信息的请求进行渲染,得到高分辨率的渲染图像;(5)将上述高分辨率的渲染图像发送给远程渲染客户端,客户端用它来替换当前相应位置的低分辨率的渲染图像。
2.根据权利要求1所述的基于远程渲染的三维模型网络发布方法,其特征在于在远程渲染服务器上进行三维数据数据安全防护方法操作,主要操作步骤(1)日志分析,远程渲染服务器对每个客户端程序进行标识,并以此跟踪和监视每个客户端发出的渲染请求序列;(2)对渲染请求设置限制;(3)在图像中加入同种类型的噪音干扰。
3.根据权利要求1或2所述的基于远程渲染的三维模型网络发布方法,其特征在于所述的服务器根据客户端的渲染请求对服务器端的高精度模型进行渲染,得到高分辨率的渲染图像,并以P-Buffer作为渲染的目标缓存存储,从缓存中读取图像并对图像进行压缩,然后发送给客户端。
4.根据权利要求1或2所述的基于远程渲染的三维模型网络发布方法,其特征在于所述步骤(4)中的对高精度模型进行渲染是通过渲染模块来实现的,步骤为(1)把频繁使用的绘制命令或改变状态命令存储为显示列表以减少访问内存的次数。(2)利用OpenGL的VBO扩展把模型的顶点、纹理坐标、法向量、颜色等数据存储到图形卡的高性能显存中。
5.根据权利要求1所述的一种三维模型网络发布方法,其特征在于所述的步骤(5)中将高分辨率的渲染图像发送给客户端的方法为采用三维模型化简算法来实现,具体步骤为(1)选择顶点对v1,v2,满足下面规则之一的为有效顶点对a.(v1,v2)是网格的一条边;b.||v1-v2||<t,其中t是给定的参数阈值;(2)根据误差度量方法对有效的顶点对进行删除合并,误差的度量方法如下a.为每个顶点分配一个4×4的矩阵Q;b.把顶点V=[vx,vy,vz,1]T的二次误差定义为Δ(v)=VTQV,在每次顶点对压缩(v1,v2)→v之后,给新的顶点v分配误差度量矩阵Q′=Q1+Q2。
6.根据权利要求1所述的一种三维模型网络发布方法,其特征在于所述步骤(3)中的客户端的粗模型采用下面两种方法之一进行发布(1)把粗模型封装在客户端中,随客户端程序一起发布;(2)粗模型存放在服务器中,客户端建立与服务器的连接之后进行下载。
全文摘要
一种基于远程渲染的三维模型网络发布方法,把高精度模型保存在渲染服务器上,客户端的三维浏览器只提供大幅精简的粗糙模型。用户可以在客户端对粗模型进行缩放,平移和旋转等操作,选择最佳的观察视点。当用户停止操作时,客户端向服务器发送一个渲染请求,该请求中包含用户当前的视点、方向和光照条件等信息,服务器根据客户端请求进行渲染并返回高精度模型的图像。因为敏感的高精度模型保存在客户端,因此本发明具有先天的安全性优势;因为客户端和服务器之间只在用户停止操作时传输平均大小为30KB的图像,所以发明对网络要求很低;此外客户端只需要渲染极为简单的精简版模型,所以不需要很高的图形性能。
文档编号G06T15/00GK1805354SQ20061001125
公开日2006年7月19日 申请日期2006年1月23日 优先权日2006年1月23日
发明者齐越, 沈旭昆, 赵沁平, 金平 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1