一种基于图像的hdr光照渲染方法

文档序号:6622592阅读:463来源:国知局
一种基于图像的hdr光照渲染方法
【专利摘要】本发明公开了一种基于图像的HDR光照渲染方法,主要包括:把场景渲染到一张二维64位的浮点纹理;将浮点纹理进行降采样、模糊和叠加处理,得到一张BloomMap图;把HDRSence浮点纹理进行FilmicToneMapping,映射之后的值和BloomMap图进行叠加,得到叠加后FinalScene图并输出到屏幕帧缓冲。本发明所述基于图像的HDR光照渲染方法,可以克服现有技术中光照效果差、明暗细节不丰富和渲染速度低等缺陷,以实现光照效果好、明暗细节丰富和渲染速度高的优点。
【专利说明】
【技术领域】
[0001] 本发明涉及计算机图形学领域,具体地,涉及一种基于图像的HDR光照渲染方法。 -种基于图像的HDR光照渲染方法

【背景技术】
[0002] 随着虚拟3D在生活中应用的更加普遍,对于更快的处理器的需求也在提升,GPU 代替的CPU的密集运算,所以在引入浮点方式来处理和存储像素的各个参数的参与计算, 这样大大提高了渲染的速度,同时GPU可编程的普及也缩短了几何坐标变换处理的执行流 程,像素着色单元提供容量大的浮点运算,提高的处理的流量,同时也使图像的精确度和复 杂度都提升了,更好的从视觉上展现了从虚拟世界到真实世界模拟,而高动态范围技术对 实现图像质量方面有显著的效果。
[0003] 目前在实时光照领域方面,一般都是基于图形的光照实现,比如说有Phong光照 模型Blinn-Phong光照模型等来实现的场景中的光照效果,这样的效果来模拟场景中光照 效果差、明暗细节不丰富,渲染速度也不高。
[0004] 在实现本发明的过程中,发明人发现现有技术中至少存在光照效果差、明暗细节 不丰富和渲染速度低等缺陷。


【发明内容】

[0005] 本发明的目的在于,针对上述问题,提出一种基于图像的HDR光照渲染方法,以实 现光照效果好、明暗细节丰富和渲染速度高的优点。
[0006] 为实现上述目的,本发明采用的技术方案是:一种基于图像的HDR光照渲染方法, 主要包括: a、 把场景渲染到一张二维64位的浮点纹理; b、 将上述浮点纹理进行降采样、模糊和叠加处理,得到一张 BloomMap图; c、 把HDRSence浮点纹理进行Filmic Tone Mapping,映射之后的值和BloomMap图进行 叠加,得到叠加后FinalScene图并输出到屏幕帧缓冲。
[0007] 进一步地,所述步骤b,具体包括: bl、把步骤a得到的浮点纹理降采样到1/4大小的浮点纹理HDRSceneScale,并对新浮 点纹理HDRSceneScale依次使用linear降采样得到场景当前的平均亮度; b2、根据得到的场景的平均亮度和一个阈值的参数值并结合HDRSenceScale得到一张 BrightPass 图; b3、对亮度阈值图进行高斯模糊得到一张 BrightPassBlur图,然后再对其进行降采样 1/2得到一张 BrightPassBlur_Half图,再次重复前面的步骤,得到一张 BrightPassBlur_ Quarter图,依次得到三张不同分辨率的亮度模糊图并将其颜色叠加得到最终的得到一张 亮度阈值图; b4、将步骤b3最终得到的亮度阈值图进行多次横向模糊,得到横向的光晕就形成了一 张炫光图star map,然后在与亮度阈值图进行叠加得到一张 BloomMap图。
[0008] 进一步地,所述步骤bl,具体包括: ⑴经过光栅化后的浮点纹理由像素来填充,把上述场景的浮点纹理降采样得到1/4大 小的纹理图像,每个像素都对应一个亮度值,其对应关系为:

【权利要求】
1. 一种基于图像的HDR光照渲染方法,其特征在于,主要包括: a、 把场景渲染到一张二维64位的浮点纹理; b、 将上述浮点纹理进行降采样、模糊和叠加处理,得到一张 BloomMap图; c、 把HDRSence浮点纹理进行Filmic Tone Mapping,映射之后的值和BloomMap图进行 叠加,得到叠加后FinalScene图并输出到屏幕帧缓冲。
2. 根据权利要求1所述的基于图像的HDR光照渲染方法,其特征在于,所述步骤b,具 体包括: bl、把步骤a得到的浮点纹理降采样到1/4大小的浮点纹理HDRSceneScale,并对新浮 点纹理HDRSceneScale依次使用linear降采样得到场景当前的平均亮度; b2、根据得到的场景的平均亮度和一个阈值的参数值并结合HDRSenceScale得到一张 BrightPass 图; b3、对亮度阈值图进行高斯模糊得到一张 BrightPassBlur图,然后再对其进行降采样 1/2得到一张 BrightPassBlur_Half图,再次重复前面的步骤,得到一张 BrightPassBlur_ Quarter图,依次得到三张不同分辨率的亮度模糊图并将其颜色叠加得到最终的得到一张 亮度阈值图; b4、将步骤b3最终得到的亮度阈值图进行多次横向模糊,得到横向的光晕就形成了一 张炫光图star map,然后在与亮度阈值图进行叠加得到一张 BloomMap图。
3. 根据权利要求2所述的基于图像的HDR光照渲染方法,其特征在于,所述步骤bl,具 体包括: ⑴经过光栅化后的浮点纹理由像素来填充,把上述场景的浮点纹理降采样得到1/4大 小的纹理图像,每个像素都对应一个亮度值,其对应关系为:
(1); 其中I(i)为每i个像素的亮度值,c(i)为每i个像素的颜色值,0为一个预设常 量;然后对每个像素的亮度值求对数运算得到新的亮度值L(i)为:
(2); ⑵有上述的得到HDRSceneScale纹理中每个像素的亮度值,然后对该像素周围的亮度 值进行采样,把采样的结果存储在预先创建的64*64大小的二维纹理中:
(3); 其中,N=9为需要采样像素的数量,P(i)为第i个像素亮度值,为中心像素的平 均亮度值;然后依次遍历降采样纹理的每个像素的亮度值,并写入一张64*64大小的亮度 图; ⑶基于上述得到的亮度图,在此基础上降采样得到1/4的亮度图,即64*64大小纹理 图,然后利用系统自带的线性过滤linear采样,把亮度依次写入到16*16纹理大小的亮度 图副本,4*4纹理大小的亮度图副本,1*1的纹理大小亮度图,这张1*1图的结果就是该场景 当前的平均亮度。
4. 根据权利要求3所述的基于图像的HDR光照渲染方法,其特征在于,所述步骤b2,具 体包括: 基于上述计算场景中的平均亮度值和传入的一个阈值并结合HDRSenceScale图,得到 一张亮度阈值图,这个阈值可以调节的一个定值,它的作用是过滤掉阈值以下暗部颜色,这 张图显示出场景那些像素由于明暗反差过大出现光晕的效果。
5. 根据权利要求4所述的基于图像的HDR光照渲染方法,其特征在于,所述步骤b3,具 体包括: ⑴首先基于上述得到的亮度阈值图,对其进行作一次双向高斯模糊,横向一次,纵向一 次,得到一张 BrightPassBlur 图; 高斯模糊是一种图像滤波器,它用正态分布计算图像中每个像素的变换,采用二维空 间的正态分布方程为:
其中0*正态分布的方差,u, v是像素的坐标值; 它是利用相邻像素的加权值来表示该点的像素值;然后对亮度阈值图在横向进行一次 高斯矩阵变换,然后在对纵向进行依次高斯矩阵变换,得到与二维矩阵变换相同的效果; ⑵对上述高斯模糊后的BrightPassBlur图进行降采样1/2,然后进行同样的高斯模糊 操作得到一张 BrightPassBlur_Half 图; ⑶然后将上述的模糊后图像再次降采样1/2,然后进行同样的高斯模糊操作得到一张 BrightPassBlur_Quarter 图; ⑷将上述得到的 BrightPassBlur 图、BrightPassBlur_Half 图和 BrightPassBlur_ Quarter图三张不同模糊程度的图像的颜色进行叠加,把不同分辨率的BrightPassBlur_ Half图和BrightPassBlur_Quarter图缩放到BrightPassBlur图大小,然后进行对应像素 的颜色进行相加,得到一张最终的亮度阈值图Bri ghtPass。
6. 根据权利要求5所述的基于图像的HDR光照渲染方法,其特征在于,所述步骤b4,具 体包括: ⑴将上述得到的BrightPass图,经行多次横向的模糊,得到横向的光晕,得到一张炫 光Star Map图,这样的算法可以用来模拟炫光的效果; 设定取BrightPass图任意一点的像素,取此像素的左边P个像素,右边Q个像素,P、Q 为整数,那么该点的像素颜色值为:
(4); 其中每i个像素的像素值,M=P+Q+1,想要更加的模糊时,P,Q的取值增大得到的图像更 模糊,这样的横向模糊后得到一张炫光图; ⑵将上述得到的炫光图和步骤4得到的亮度阈值图进行颜色叠加得到最终的 BloomMap 图。
7. 根据权利要求1-6中任一项所述的基于图像的HDR光照渲染方法,其特征在于,所述 步骤a,具体包括: 在绘制场景纹理时,在纹理空间中UV平面上预先定义纹理图像映射到景物空间的三 维景物表面。
【文档编号】G06T15/50GK104157005SQ201410382964
【公开日】2014年11月19日 申请日期:2014年8月6日 优先权日:2014年8月6日
【发明者】张翼 申请人:无锡梵天信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1