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;
步骤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帧直接光照画面的第nr行、第nc列元素保存的直接光
2 2 2 1/2
照值之比等于(γ1+γ2+γ3) ,其中γ1等于vInd的红色分量与第nF帧直接光照画面的第nr行、第nc列元素保存的直接光照值的红色分量之比,γ2等于vInd的绿色分量与第nF帧直接光照画面的第nr行、第nc列元素保存的直接光照值的绿色分量之比,γ3等于vInd的蓝色分量与第nF帧直接光照画面的第nr行、第nc列元素保存的直接光照值的蓝色分量之比。