发明名称 一种基于web的全景图的光照渲染方法
摘要 本发明公开了一种基于web的全景图的光照渲染方法,包括服务器端按照客户端的请求将指定的含有三维模型的图像进行压缩后发送给客户端;客户端对压缩的图像解码后进行渲染并显示,渲染包括如下步骤:(1)对解码后的图像进行解析,在客户端建立一个半球体的模型,然后把解析后的图像作为纹理贴到半球体模型上去;(2)将整个半球体划分为若干个等面积的小球面,将三维模型按照其位置参数放置到半球体模型中;(3)计算三维模型上所有点沿各个方向的出射光辉值;(4)计算模型上所有可见点的最终颜色值,(5)对可见点的最终颜色值进行色调映射,得到渲染后的图像。本发明方法可得到逼真的HDR效果虚拟展示效果。
申请公布号 CN101458824B 申请公布日期 2011.06.15
申请号 CN200910095358.6 申请日期 2009.01.08
申请人 浙江大学 发明人 赵磊;许端清;杨鑫;任崇辉
分类号 G06T15/50(2006.01)I;H04L29/06(2006.01)I 主分类号 G06T15/50(2006.01)I
代理机构 杭州天勤知识产权代理有限公司 33224 代理人 胡红娟
主权项 1.一种基于web的全景图的光照渲染方法,包括服务器端按照客户端的请求将指定的含有三维模型的图像进行压缩后发送给客户端;客户端对压缩的图像解码后进行渲染并显示,其特征在于,所述的渲染包括如下步骤:(1)对解码后的图像进行解析,在客户端建立一个半球体的模型,然后把解析后的图像作为纹理贴到半球体模型上去;(2)将整个半球体划分为若干个等面积的小球面,每个小球面虚拟为一个点光源,将三维模型按照其位置参数放置到半球体模型中;(3)计算三维模型上所有点沿各个方向的出射光辉值,其中某一点沿各个方向的出射光辉值Lr,如下式:<img file="FSB00000064605700011.GIF" wi="1530" he="76" />①式①中Le(x,ω<sub>r</sub>)是模型上当前点上沿方向ω<sub>r</sub>的自发射的光辉值;f<sub>r</sub>是模型上当前点的双向反射分布函数;θ<sub>i</sub>是模型上当前点的向量;<img file="FSB00000064605700012.GIF" wi="47" he="56" />是当前点的向量与点光源入射向量的夹角;L<sub>i</sub>是当前点上获取到的方向为ω<sub>i</sub>的光源的光辉值;x是表示三维模型上各个点的变量;(4)计算模型上所有可见点的最终颜色值,其中某一可见点的最终颜色值如下:C=Pc+Lr式中C是当前可见点的最终颜色值;Pc是当前可见点的本身自带的颜色值;Lr是步骤(3)得到的当前可见点的出射光辉值;(5)对步骤(4)得到的所有可见点的最终颜色值进行色调映射,得到渲染后的图像;所述的色调映射包括如下步骤:(a)采用定义在6尺度空间的高斯卷积核对步骤(4)中每一可见点的最终颜色值进行卷积,得到可见点的系数相关的卷积值W(x,y,S<sub>i</sub>);W(x,y,S<sub>i</sub>)=V(x,y,S<sub>i</sub>)×S<sub>i</sub><sup>3</sup>            ②式②中V(x,y,S<sub>i</sub>)为坐标(x,y)处的可见点相应的卷积结果;S<sub>i</sub>为卷积内核的区域面积;S<sub>i</sub>中的i表示尺度的序号;x、y表示可见点在x轴和y轴上的坐标值;(b)将不同尺度的卷积结果进行相减得到一个多尺度空间的局部对比度估计Contrast(x,y,S<sub>i</sub>):<maths num="0001"><![CDATA[<math><mrow><mi>Contrast</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><msub><mi>S</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mi>W</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><msub><mrow><mo>,</mo><mi>S</mi></mrow><mi>i</mi></msub><mo>)</mo></mrow><mo>-</mo><mi>W</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><msub><mi>S</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow></mrow><mrow><mi>&tau;</mi><mo>+</mo><mi>W</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><msub><mi>S</mi><mi>i</mi></msub><mo>)</mo></mrow></mrow></mfrac></mrow></math>]]></maths>③式③中τ为自设定的锐化因子;(c)对于步骤(4)中每一个可见点,从最小的尺度S<sub>1</sub>开始计算局部对比度,直到第一个满足|Contrast(x,y,S<sub>m</sub>)|>ε的尺度S<sub>m</sub>出现;8为自设定的阀值;(d)将步骤(a)中的W(x,y,S<sub>m</sub>)作为坐标点(x,y)处的照明度,按照下式计算该可见点处显示时的光亮度L<sub>d</sub>(x,y):<maths num="0002"><![CDATA[<math><mrow><msub><mi>L</mi><mi>d</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mi>C</mi><mrow><mn>1</mn><mo>+</mo><mi>W</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><msub><mi>S</mi><mi>m</mi></msub><mo>)</mo></mrow></mrow></mfrac></mrow></math>]]></maths>④C为步骤(4)得到的是当前可见点的最终颜色值。
地址 310027 浙江省杭州市西湖区浙大路38号