一种基于web的全景图的光照渲染方法

文档序号:6575715阅读:243来源:国知局
专利名称:一种基于web的全景图的光照渲染方法
技术领域
本发明涉及一种基于web的图像渲染技术,尤其涉及一种基于web的全景图的光照渲染方法。

背景技术
很多人喜欢旅游,在游玩中人们可以放松心情,陶冶情操,交识朋友,但是由于时间、地域、经济、体力等因素,很多人的旅游愿望无法实现。随着网络的发展,虚拟旅游为人们提供了一种新的旅游方式。
“照片级真实感(photorealism)”一直是数字照明和三维真实感渲染技术多年来追求的目标。这项技术不断发展,力求在计算机虚拟的三维世界中模拟自然界真实的光照效果以达到以假乱真的程度。其中涉及到的技术有光能传递(radiosity)技术以及光线跟踪技术,光能传递是80年代发展起来的渲染方法。其基于物理学理论,通过对整个场景的所有表面求解辐射度,即热力学的辐射度积分式来计算的。因此光能传递是一种建立在由面到面基础上的渲染方式。1997年,Lightscape作为独立的Radiosity渲染引擎由工作站移植到PC上,并由此得到了前所未有的广泛应用。同时,一种建立在光线追踪(Raytrace)系统基础上发展起来的全局照明(GI,GlobalIllumination)算法开始崭露头脚。其采用在表面上进行光线采样的方式,收集每个画面像素的细节值,并生成最终图像。采用这种技术的MentalRay渲染器由德国公司开发,被置入高端3D软件包Softimage中,首度出现在商用领域。到了2000年,MentalRay宣布支持Discreet的3ds max。由此,全局照明终于进入了PC平台。由德国Cebas公司开发的final Render独树一帜,成为引人注目的集点。其使用随机半球光线采样(the Hemispheric Dome ofRandom rays)收集光照信息,可描述的光线追踪与平行渲染技术应用于渲染,并用最短的时间完成计算。自然光照中的三种情况直接光照(DirectComponent),高亮的间接光照(Specular Indirect Component,即Caustics),漫射的间接光照(Difuse Indirect Component)都可以做到独立的和完全可控的模拟。HDRI可以生成比用传统照像设备包含更多色彩信息的图像。HDRI记录了真实世界的光和色彩,色调,可以获取超出普通图像可见范围的曝光梯度。其与全局照明算法的结合可以产生更接近现实生活环境的光照效果,即所说的“像片级真实感”。全局照明算法和高动态范围图像技术的结合应无疑极具诱惑力。通常,利用HDRI的三维场景可以分为三个部分远景(Distant scene),近景(Local Scene),虚拟体(Synthetic Objects)。其中,远景是指虚拟体所处的大环境,它在具体画面中可能所占的位置并不大。但是它对于场景物体的光照属性却有非常大的影响。近景则是与虚拟体相互作用的小环境,其接受阴影,反射折射的光线焦散,反弹光线及反射虚拟体。近景,虚拟体所呈现的颜色,明暗,投影,反射,折射都有赖于大环境的状况。HDRI所要做的,就是模拟远景环境。两者的照明关系由GI算法来实现。同时,近景和虚拟体对大环境光照属性的影响是可以忽略的。
但大多数虚拟旅游系统只是能够对单一的全景图进行360的观看,不能在旅游景点进行虚拟漫游。


发明内容
本发明提供一种利用LDR全景图里面的光照信息通过tone mapping技术来模拟HDR(high dynamic range)全景图的光照信息,得到逼真的HDR效果虚拟展示效果,解决了web上不同视点全景图漫游的速度延迟问题以及效果单调问题。
一种基于web的全景图的光照渲染方法,包括服务器端按照客户端的请求将指定的含有三维模型的图像进行压缩后发送给客户端;客户端对压缩的图像解码后进行渲染并显示,所述的渲染包括如下步骤 (1)对解码后的图像进行解析,在客户端建立一个半球体的模型,然后把解析后的图像作为纹理贴到半球体模型上去; (2)将整个半球体划分为若干个等面积的小球面,每个小球面虚拟为一个点光源,将三维模型按照其位置参数放置到半球体模型中; (3)计算三维模型上所有点沿各个方向的出射光辉值,其中某一点沿各个方向的出射光辉值Lr,如下式
式①中 Le(x,ωr)是模型上当前点上沿方向ωr的自发射的光辉值; fr是模型上当前点的双向反射分布函数; θi是模型上当前点的向量;

是当前点的向量与点光源入射向量的夹角; Li是当前点上获取到的方向为ωi的光源的光辉值; x是表示三维模型上各个点的变量; (4)对模型上的所有点(即所有像素)进行可见性测试,剔除不可见的点,计算所有可见点的最终颜色值,其中某一可见点的最终颜色值如下 C=Pc+Lr 式中 C是当前可见点的最终颜色值; Pc是当前可见点的本身自带的颜色值; Lr是步骤(3)得到的当前可见点的出射光辉值; (5)对步骤(4)得到的所有可见点的最终颜色值进行色调映射,得到渲染后的图像。
其中步骤(5)所述的色调映射包括如下步骤 (a)采用定义在6尺度空间的高斯卷积核对步骤(4)中每一可见点的最终颜色值进行卷积,得到可见点的系数相关的卷积值W(x,y,Si); W(x,y,Si)=V(x,y,Si)×Si3 ② 式②中V(x,y,Si)为坐标(x,y)处的可见点相应的卷积结果; Si为卷积内核的区域面积(如果卷积内核的尺寸为3,那么内核的区域面积为9); Si中的i表示尺度的序号; x、y表示可见点在x轴和y轴上的坐标值; (b)将不同尺度的卷积结果进行相减得到一个多尺度空间的局部对比度估计Contrast(x,y,Si) ③ 式③中τ为自设定的锐化因子,τ取值越大,局部对比度估计值Contrast就越小,打到同样的色调映射效果需要的卷积内核就越大,卷积的计算时间就会越长。
(c)对于步骤(4)中每一个可见点,从最小的尺度S1开始计算局部对比度,直到第一个满足|Contrast(x,y,Sm)|>ε的尺度Sm出现; ε为自设定的阀值;ε取值越大,尺度之间的局部对比度就大,Sm的值也就越大。
(d)将步骤(a)中的W(x,y,Sm)作为坐标点(x,y)处的照明度,按照下式计算该可见点处显示时的光亮度Ld(x,y) ④ C为步骤(4)得到的是当前可见点的最终颜色值。
本发明方法可以渲染来自网络服务器的图像(不仅仅可以渲染LDR(low dynamic range image)全景图,同时也可以渲染HDRI(high dynamicrange image)全景图),网络服务器对需要传输的高质量图像利用基于GPU的图像编码压缩算法对图像进行压缩,然后对图像进行网络传输,客户端则接受服务器传来的高质量图像并缓存,客户端经图像解码器对压缩图像数据进行解码、解析,客户端的三维渲染模块构建三维模型,并把解析后的图像作为纹理进行贴图,同时可以交互的根据用户的要求实时渲染不同光照下的全景图,对于一张正常光照的全景像,通过调整曝光度得到早上、中午、下午、晚上、黎明等不同条件下的全景图。可以用在旅游行业,用户可以从一张景点的全景图来得到不同时间段的景色图。不仅仅可以渲染单幅的全景图,而且可以通过渲染一系列全景图来达到在真实场景中进行基于web的虚拟漫游。
本发明方法提供快速便捷精美的高真实感效果展示,同时解决了在有限带宽、状况复杂的因特网环境下大多数用户都可以快速便捷地通过网络查看高高动态范围图像(high dynamic range image)展示,其有益效果主要表现在 (1)可以渲染来自网络服务器的图像(不仅仅可以渲染LDR(lowdynamic range image)全景图,同时也可以渲染HDRI(high dynamic rangeimage)全景图) (2)对于LDR(low dynamic range image)全景图来说,方法可以挖掘LDR全景图里面的光照信息来模拟HDR(high dynamic range)全景图的光照信息,得到逼真的HDR效果。
(3)当一副图像正在渲染的时候方法根据设计精巧的预测策略来估计下一次用户可能会读到的文件,并从服务器端读取相应的文件放于图像数据缓存中。
(4)在图像压缩和传输的时候针对于不同的全景图,采取了不同的压缩方法,LDR(low dynamic range)全景图采用普通的压缩算法,而HDR采用RLE编解码器。
(5)客户端的三维渲染模块构建三维立方体盒子,并把解析后的图像作为纹理进行贴图,同时可以交互的根据用户的要求实时渲染不同光照下的全景图。
(6)不仅仅可以渲染单幅的全景图,而且可以通过渲染一系列全景图来达到在真实场景中进行基于web的虚拟漫游。



图1为本发明方法渲染时建立的半球体模型示意图。
图1中j,k为半球上的区域面积的拐角标识,(j,k)表示经度上的第j个,纬度上的第k个小球面的左上角,X代表半球的球心,θ表示仰角,

表示方位角。

具体实施例方式 客户端通过网络传输单元向服务器端发送浏览请求服务器端,接收请求命令后,由文件管理单元读取要求浏览的文件,经图像编码压缩单元压缩通过网络传输单元发送给客户端,图像在服务器端可以按照常规压缩方法进行压缩,也可以按照不同的种类选取相应的压缩算法进行压缩,例如LDR(low dynamic range)全景图采用普通的压缩算法,而HDR采用RLE编解码器将每一个图像分为RGB通道部分和E通道部分,将RGB通道部分的颜色数据利用颜色去相关性的方法,线性地从对数形式的RGB空间转换到YCbCr空间,再采用JPEG2000压缩方法进行压缩,得到压缩后的RGB通道部分的颜色数据;图像编解码压缩单元将数据量较大的高范围图像信息采用RLE压缩机制进行压缩处理,得到适合网络传输的数据格式以发送到客户端进行渲染。
本发明方法中客户端按照当前用户读取的图像采用设计精巧的预测策略来估计下一次用户可能会读到的文件,文件管理单元在系统接收到用户浏览某个文件的请求时,该单元负责从文件库读取相应的文件,由于该单元包含的I/O操作是提高系统响应速度的瓶颈,因此在该单元采用预读取并缓存部分文件的机制来进行优化。预测是根据当前的用户视点为中心,按照以前用户的行为来预测接下来最有可能要读取的图像,如果时间多余,也读取本视点中心前后左右的4幅图像中的其他3副,并把从服务器端读取相应的文件放于图像数据缓存中,网络速度允许的条件下,可以进行二次预测,即再读取4副图像或者进行第三次预测读取另外4副图像。
三维渲染引擎单元读入内存的图像,并对经图像解码器解压后的高范围图像文件进行解析,在客户端建立一个半球体模型,然后把全景图作为纹理贴到半球体模型上去。然后把从服务器端读取的三维模型放置到半球体模型中去。
对于HR全景图的渲染本发明采用面积光的方法来渲染,也就是说对于一个全景图的球体来讲,球心作为虚拟视点,从球心把整个球体划分为很多等面积的小球面(见图1),划分的球面数越多渲染起来速度就越慢,可以根据实时要求选择合适的球面数量,每个等面积的小球面可以作为一个面积光源,一个面积光源就是用来表示一个虚拟的点光源,它的方向就是照向球心。
计算三维模型上所有点沿各个方向的出射光辉值,其中某一点沿各个方向的出射光辉值Lr,如下式
式①中 Le(x,ωr)是模型上当前点上沿方向ωr的自发射的光辉值,自发射的的光辉值来自模型本身参数; fr是模型上当前点的双向反射分布函数; θi是模型上当前点的向量;

是当前点的向量与点光源入射向量的夹角; Li是当前点上获取到的方向为ωi的光源的光辉值; x是表示三维模型上各个点的变量; 三维模型上某点上的沿方向ωi的出射光辉,主要由二部分组成,这个点自发射的光辉、从半球空间过来的到达这点的入射光辉Li以及BRDF(双向反射分布函数)函数fr的乘积。后者是当从方向ωr看过去来自方向ωi的入射光的时候一个在点x出的材料行为模型。
计算某一点沿各个方向的出射光辉值时,为假设视点和模型上的点在同一个平面上。
利用计算得到的三维模型上所有点沿各个方向的出射光辉值,对模型上的所有点进行可见性测试,剔除不可见的点,计算所有可见点的最终颜色值,其中某一可见点的最终颜色值如下 C=Pc+Lr 式中 C是当前可见点的最终颜色值; Pc是当前可见点的本身自带的颜色值; Lr是上个步骤得到的当前可见点的出射光辉值; 根据可见点的最终颜色值进行色调映射(tone mapping),本发明选择实现Reinhard et al提出的色调映射算法来模拟高动态的图像渲染。而Reinhard算法主要是基于摄影中的“分区曝光显影系统”(可参见AnselAdams.The Print.Little,Brown and Company,1983.),首先设置摄像机的全局曝光级别。假设Lw(x,y)是每个像素点的全局光照,那么平均的全局局光照如下 其中N是图像中的像素总数,δ是一个用来避免计算溢出的小常数。然后

通过刻画像素亮度来映射到中级灰度区 这里的a是一个“关键值”,决定着一个给定图像是亮,正常还是偏暗。正常时的值为a=0.18,这和控制摄像机自动曝光的值是一样的。
下一步就是,使用一个简单的色调映射操作来获得显示时的光亮度Ld(x,y) 上述的简单色调映射操作似乎在保留低对比度区域的细节方面做的很好,并且保证了所有的光亮度都映射到了显示设备的
范围内。然而,Reinhard却观察到在图像的高频细节却丢失了,特别是在特别明亮的区域。为了克服这样的缺点,本发明采用一种叫做局部对比度增强的技术,这种技术特别类似于摄影中的“dodging and burning”。
本发明进行色调映射时,采用定义在6尺度空间的高斯卷积核进行卷积。
假如第i个卷积内核的大小为a,那么这个卷积内核的区域面积为Si,那么利用这个系数的高斯卷积核进行卷积得到每个像素点相应的卷积结果为V(x,y,Si)。对卷积的结果和系数的立方进行乘积得到一个每个像素的系数相关的卷积值为 W(x,y,Si)=V(x,y,Si)×Si3 式中V(x,y,Si)为坐标(x,y)处的可见点相应的卷积结果; Si为卷积内核的区域面积(如果卷积内核的尺寸为3,那么内核的区域面积为9); Si中的i表示尺度的序号; x、y表示可见点在x轴和y轴上的坐标值; 将不同尺度的卷积结果进行相减得到一个多尺度空间的局部对比度估计,本发明使用的局部对比度估计如下 式中τ为自设定的锐化因子,τ取值越大,局部对比度估计值Contrast就越小,打到同样的色调映射效果需要的卷积内核就越大,卷积的计算时间就会越长。
为了能够测量给定尺度Si的局部对比度,要使用τ这个控制边缘的锐化因子(一般设置为10)。考虑了6尺度的级别这时最小的尺度为Si=0.25和Si+1=1.4×Si。对于每一个像素来说,从最小的尺度S1开始计算局部对比度,直到第一个满足|Contrast(x,y,Sm)|>ε的尺度Sm出现为止。其中的阀值ε缺省地设置为0.05.其实,Sm就是给定的像素最大的没有发生对比度突变的最大卷积系数对应的区域,大于这个系数的卷积的结果就会导致突变。
用Sm取代公式W(x,y,Si)=V(x,y,Si)×Si3中的Si,即将每个像素的系数相关的卷积值W(x,y,Sm)作为坐标点(x,y)处的照明度,按照下式计算该可见点处显示时的光亮度Ld(x,y) L(x,y)指步骤(4)得到的当前可见点的最终颜色值C; 渲染后对图像即按照显示时的光亮度Ld(x,y)进行显示。
权利要求
1、一种基于web的全景图的光照渲染方法,包括服务器端按照客户端的请求将指定的含有三维模型的图像进行压缩后发送给客户端;客户端对压缩的图像解码后进行渲染并显示,其特征在于,所述的渲染包括如下步骤
(1)对解码后的图像进行解析,在客户端建立一个半球体的模型,然后把解析后的图像作为纹理贴到半球体模型上去;
(2)将整个半球体划分为若干个等面积的小球面,每个小球面虚拟为一个点光源,将三维模型按照其位置参数放置到半球体模型中;
(3)计算三维模型上所有点沿各个方向的出射光辉值,其中某一点沿各个方向的出射光辉值Lr,如下式
式①中
Le(x,ωr)是模型上当前点上沿方向ωr的自发射的光辉值;
fr是模型上当前点的双向反射分布函数;
θi是模型上当前点的向量;
是当前点的向量与点光源入射向量的夹角;
Li是当前点上获取到的方向为ωi的光源的光辉值;
x是表示三维模型上各个点的变量;
(4)计算模型上所有可见点的最终颜色值,其中某一可见点的最终颜色值如下
C=Pc+Lr
式中
C是当前可见点的最终颜色值;
Pc是当前可见点的本身自带的颜色值;
Lr是步骤(3)得到的当前可见点的出射光辉值;
(5)对步骤(4)得到的所有可见点的最终颜色值进行色调映射,得到渲染后的图像。
2、如权利要求1所述的光照渲染方法,其特征在于,步骤(5)所述的色调映射包括如下步骤
(a)采用定义在6尺度空间的高斯卷积核对步骤(4)中每一可见点的最终颜色值进行卷积,得到可见点的系数相关的卷积值W(x,y,Si);
W(x,y,Si)=V(x,y,Si)×Si3②
式②中V(x,y,Si)为坐标(x,y)处的可见点相应的卷积结果;
Si为卷积内核的区域面积;
Si中的i表示尺度的序号;
x、y表示可见点在x轴和y轴上的坐标值;
(b)将不同尺度的卷积结果进行相减得到一个多尺度空间的局部对比度估计Contrast(x,y,Si)

式③中τ为自设定的锐化因子;
(c)对于步骤(4)中每一个可见点,从最小的尺度S1开始计算局部对比度,直到第一个满足|Contrast(x,y,Sm)|>ε的尺度Sm出现;
ε为自设定的阀值;
(d)将步骤(a)中的W(x,y,Sm)作为坐标点(x,y)处的照明度,按照下式计算该可见点处显示时的光亮度Ld(x,y)

C为步骤(4)得到的是当前可见点的最终颜色值。
全文摘要
本发明公开了一种基于web的全景图的光照渲染方法,包括服务器端按照客户端的请求将指定的含有三维模型的图像进行压缩后发送给客户端;客户端对压缩的图像解码后进行渲染并显示,渲染包括如下步骤(1)对解码后的图像进行解析,在客户端建立一个半球体的模型,然后把解析后的图像作为纹理贴到半球体模型上去;(2)将整个半球体划分为若干个等面积的小球面,将三维模型按照其位置参数放置到半球体模型中;(3)计算三维模型上所有点沿各个方向的出射光辉值;(4)计算模型上所有可见点的最终颜色值;(5)对可见点的最终颜色值进行色调映射,得到渲染后的图像。本发明方法可得到逼真的HDR效果虚拟展示效果。
文档编号G06T15/50GK101458824SQ200910095358
公开日2009年6月17日 申请日期2009年1月8日 优先权日2009年1月8日
发明者磊 赵, 许端清, 鑫 杨, 任崇辉 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1