基于视觉重要性的三维场景动画渲染间接光照帧间复用方法技术

技术编号:23191950 阅读:65 留言:0更新日期:2020-01-24 16:37
本发明专利技术公开一种基于视觉重要性的三维场景动画渲染间接光照帧间复用方法。在计算当前帧画面的某个像素的间接光照时,先估计间接光照与直接光照之比是否大于特定阈值,如果大于特定阈值,则表明间接光照相对于直接光照来说在视觉上比较重要,因此采取重新计算间接光照的方式来获得间接光照结果,否则直接复用前一帧的间接光照。本方法在进行间接光照的帧间复用时,考虑了间接光照相对于直接光照的视觉重要性,可以减小因帧间复用导致的间接光照误差。

Indirect frame multiplexing method based on visual importance for 3D scene animation rendering

【技术实现步骤摘要】
基于视觉重要性的三维场景动画渲染间接光照帧间复用方法
本专利技术属于三维场景画面渲染
,涉及一种基于视觉重要性的三维场景动画渲染间接光照帧间复用方法。
技术介绍
三维场景渲染是影视特效制作和虚拟现实应用中的关键技术。提高三维场景渲染效率一直是人们的一个研究重点。对于三维场景动画渲染来说,连续的前后两帧画面之间存在明显的时间相关性,可以在后一帧中复用前一帧的某些计算结果,这能节省渲染计算开销。在三维场景渲染中,生成真实感三维场景画面的关键是计算三维场景的全局光照。全局光照可以看成是直接光照和间接光照之和。从人眼视觉感知的角度说,对于某个三维场景画面像素,如果其对应的直接光照值远大于其对应的间接光照值,人眼可能难以察觉到间接光照产生的视觉效果,换句话说,此时像素对应的间接光照的视觉重要性很低。间接光照计算开销通常远大于直接光照计算开销。同时直接光照通常对视觉感知精度有重要影响。因此,本专利技术提出每帧画面的直接光照都重新计算,但对间接光照进行前后帧复用,如图1所示。在计算当前帧画面的某个像素的间接光照时,先估计间接光照与直接光照之比是否大于特定阈值,如果大于特定阈值,则表明间接光照相对于直接光照来说在视觉上比较重要,因此采取重新计算间接光照的方式来获得间接光照结果,否则直接复用前一帧的间接光照。在估计间接光照与直接光照之比时,通过查找前一帧画面的对应像素的间接光照来获得当前帧画面的像素的间接光照估计值。如果当前帧画面的某个像素在前一帧画面中找不到对应像素,则当前帧画面的这个像素的间接光照也重新计算。在三维场景渲染中,用红、绿、蓝三元组来表示各种颜色,因此光照值实际上也包含红色、绿色、蓝色三个分量。光线投射(RayCasting)是一种常见的用于渲染三维场景画面的技术。J.F.Hughes等撰写的由Addison-Wesley公司于2014年出版的《ComputerGraphics:PrinciplesandPractice,3rdEdition》的第15章对光线投射技术作过介绍,其可以用于计算三维场景的直接光照画面。J.F.Hughes等撰写的由Addison-Wesley公司于2014年出版的《ComputerGraphics:PrinciplesandPractice,3rdEdition》的第32章介绍了路径跟踪的具体实现方法。在路径跟踪中,对于从视点出发的穿过虚拟相机的虚拟像素平面上的像素的一条光线传输路径,如果不计算在该光线传输路径与三维场景几何面片的第一个交点处散射的直接来自光源的光照贡献,则最终得到的经该光线传输路径到达视点的光照为一个间接光照采样值。在路径跟踪中,通过对像素对应的多个间接光照采样值求平均可以得到像素的最终间接光照结果。
技术实现思路
本专利技术的目的在于,提供一种基于视觉重要性的三维场景动画渲染间接光照帧间复用方法,实现在三维场景动画渲染中基于视觉重要性对间接光照计算结果进行帧间复用,以便根据视觉重要性来确定是否复用前一帧的间接光照结果,从而确保间接光照精度。本专利技术的技术方案是这样实现的:本方法的实现步骤如下:步骤Step101:利用光线投射技术计算三维场景动画的第1帧直接光照画面,利用路径跟踪技术计算三维场景动画的第1帧间接光照画面;在利用光线投射技术计算三维场景动画的第1帧直接光照画面时,记录第1帧画面对应的虚拟相机的虚拟像素平面上的每个像素对应的可视场景点的位置和法向量;可视场景点就是从虚拟相机的视点发射的穿过虚拟相机的虚拟像素平面上的像素的光线与三维场景的几何面片之间的离视点最近的交点,可视场景点与虚拟相机的虚拟像素平面上的像素一一对应;直接光照画面是一个二维数组,数组的每个元素保存虚拟相机的虚拟像素平面上的像素对应的直接光照值;间接光照画面是一个二维数组,数组的每个元素保存虚拟相机的虚拟像素平面上的像素对应的间接光照值;直接光照画面对应的二维数组和间接光照画面对应的二维数组具有相同的行数和相同的列数;直接光照画面对应的二维数组的行数等于虚拟相机的虚拟像素平面上的像素行数,直接光照画面对应的二维数组的列数等于虚拟相机的虚拟像素平面上的像素列数;步骤Step102:令帧编号nF=2;步骤Step103:利用光线投射技术计算三维场景动画的第nF帧直接光照画面,在此过程中记录第nF帧画面对应的虚拟相机的虚拟像素平面上的每个像素对应的可视场景点的位置和法向量;在计算机的内存中,创建第nF-1帧间接光照画面的一个副本作为第nF帧间接光照画面的初始值;步骤Step104:针对第nF帧画面对应的虚拟相机的虚拟像素平面上的每个像素对应的可视场景点A001,做如下操作:步骤Step104-1:令可视场景点A001对应的虚拟相机的虚拟像素平面上的像素的行号为nr,令可视场景点A001对应的虚拟相机的虚拟像素平面上的像素的列号为nc;判断可视场景点A001的位置是否在第nF-1帧画面对应的虚拟相机的视场范围内,如果是,则首先计算可视场景点A001的位置按透视投影方式投影到第nF-1帧画面对应的虚拟相机的虚拟像素平面上时落入的像素矩形方格对应的像素行号nRow和像素列号nCol,接着转步骤Step104-2,否则转步骤Step104-4;步骤Step104-2:令d1等于从可视场景点A001的位置到第nF-1帧画面对应的虚拟相机的虚拟像素平面上的第nRow行、第nCol列像素对应的可视场景点A002的位置的距离,令α1等于可视场景点A001的法向量与第nF-1帧画面对应的虚拟相机的虚拟像素平面上的第nRow行、第nCol列像素对应的可视场景点A002的法向量的夹角;如果d1≤dth且α1≤αth,则转步骤Step104-3,否则转步骤Step104-4;步骤Step104-3:令vInd是第nF-1帧间接光照画面的第nRow行、第nCol列元素保存的间接光照值;如果vInd与第nF帧直接光照画面的第nr行、第nc列元素保存的直接光照值之比大于Ith,则转步骤Step104-4,否则转步骤Step104-5;步骤Step104-4:利用路径跟踪技术计算三维场景动画的第nF帧画面对应的虚拟相机的虚拟像素平面上的第nr行、第nc列像素的间接光照值B001,把第nF帧间接光照画面的第nr行、第nc列元素赋值为间接光照值B001;转步骤Step104-6;步骤Step104-5:把第nF帧间接光照画面的第nr行、第nc列元素赋值为第nF-1帧间接光照画面的第nRow行、第nCol列元素保存的值;步骤Step104-6:针对可视场景点A001的操作结束;步骤Step105:把第nF帧直接光照画面和第nF帧间接光照画面加在一起得到第nF帧全局光照画面,把第nF帧全局光照画面转换成图像文件保存在计算机硬盘上;步骤Step106:令nF=nF+1,如果nF≤NF,则转步骤Step103,否则结束三维场景动画的渲染。在三维场景渲染中,光照值包含红色、绿色、蓝色三个分量。在步骤Step104-3中,vInd与第nF帧直本文档来自技高网
...

【技术保护点】
1.一种基于视觉重要性的三维场景动画渲染间接光照帧间复用方法,其特征在于:本方法的实现步骤如下:/n步骤Step101:利用光线投射技术计算三维场景动画的第1帧直接光照画面,利用路径跟踪技术计算三维场景动画的第1帧间接光照画面;在利用光线投射技术计算三维场景动画的第1帧直接光照画面时,记录第1帧画面对应的虚拟相机的虚拟像素平面上的每个像素对应的可视场景点的位置和法向量;可视场景点就是从虚拟相机的视点发射的穿过虚拟相机的虚拟像素平面上的像素的光线与三维场景的几何面片之间的离视点最近的交点,可视场景点与虚拟相机的虚拟像素平面上的像素一一对应;直接光照画面是一个二维数组,数组的每个元素保存虚拟相机的虚拟像素平面上的像素对应的直接光照值;间接光照画面是一个二维数组,数组的每个元素保存虚拟相机的虚拟像素平面上的像素对应的间接光照值;直接光照画面对应的二维数组和间接光照画面对应的二维数组具有相同的行数和相同的列数;直接光照画面对应的二维数组的行数等于虚拟相机的虚拟像素平面上的像素行数,直接光照画面对应的二维数组的列数等于虚拟相机的虚拟像素平面上的像素列数;/n步骤Step102:令帧编号n

【技术特征摘要】
1.一种基于视觉重要性的三维场景动画渲染间接光照帧间复用方法,其特征在于:本方法的实现步骤如下:
步骤Step101:利用光线投射技术计算三维场景动画的第1帧直接光照画面,利用路径跟踪技术计算三维场景动画的第1帧间接光照画面;在利用光线投射技术计算三维场景动画的第1帧直接光照画面时,记录第1帧画面对应的虚拟相机的虚拟像素平面上的每个像素对应的可视场景点的位置和法向量;可视场景点就是从虚拟相机的视点发射的穿过虚拟相机的虚拟像素平面上的像素的光线与三维场景的几何面片之间的离视点最近的交点,可视场景点与虚拟相机的虚拟像素平面上的像素一一对应;直接光照画面是一个二维数组,数组的每个元素保存虚拟相机的虚拟像素平面上的像素对应的直接光照值;间接光照画面是一个二维数组,数组的每个元素保存虚拟相机的虚拟像素平面上的像素对应的间接光照值;直接光照画面对应的二维数组和间接光照画面对应的二维数组具有相同的行数和相同的列数;直接光照画面对应的二维数组的行数等于虚拟相机的虚拟像素平面上的像素行数,直接光照画面对应的二维数组的列数等于虚拟相机的虚拟像素平面上的像素列数;
步骤Step102:令帧编号nF=2;
步骤Step103:利用光线投射技术计算三维场景动画的第nF帧直接光照画面,在此过程中记录第nF帧画面对应的虚拟相机的虚拟像素平面上的每个像素对应的可视场景点的位置和法向量;在计算机的内存中,创建第nF-1帧间接光照画面的一个副本作为第nF帧间接光照画面的初始值;
步骤Step104:针对第nF帧画面对应的虚拟相机的虚拟像素平面上的每个像素对应的可视场景点A001,做如下操作:
步骤Step104-1:令可视场景点A001对应的虚拟相机的虚拟像素平面上的像素的行号为nr,令可视场景点A001对应的虚拟相机的虚拟像素平面上的像素的列号为nc;判断可视场景点A001的位置是否在第nF-1帧画面对应的虚拟相机的视场范围内,如果是,则首先计算可视场景点A001的位置按透视投影方式投影到第nF-1帧画面对应的虚拟相机的虚拟像素平面上时落入的像素矩形方格对应的像素行号nRow和像素列号nCol,接着转步骤Step104-2,否则转步骤Step104-4;
步骤...

【专利技术属性】
技术研发人员:陈纯毅杨华民蒋振刚胡小娟
申请(专利权)人:长春理工大学
类型:发明
国别省市:吉林;22

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1