1.一种三维场景渲染中基于对象判别的间接光照复用方法,其特征在于:为三维场景中的每个几何对象指定一个唯一的索引编号;在计算机中,利用光线投射技术计算三维场景的直接光照画面,在此过程中记录从视点发射的穿过虚拟相机的虚拟像素平面上的各个像素的光线与三维场景的几何对象的几何面片之间的离视点最近的交点A001及其所属几何对象的索引编号;交点A001是可视场景点,可视场景点和虚拟相机的虚拟像素平面上的像素一一对应;针对虚拟相机的虚拟像素平面上的各个像素,利用路径跟踪技术为每个像素计算Ms个间接光照采样值;针对虚拟相机的虚拟像素平面上的每个像素P001,找出虚拟像素平面上的满足如下条件的各个像素P002:像素P002到像素P001的距离小于阈值dp且像素P002对应的可视场景点所属几何对象的索引编号与像素P001对应的可视场景点所属几何对象的索引编号相同;根据找到的所有像素P002以及像素P001的间接光照采样值估计像素P001的最终间接光照值A002,如果估计出的最终间接光照值A002与像素P001对应的直接光照值之比大于阈值Ith,则用路径跟踪技术为像素P001再额外计算Ns个间接光照采样值,并根据像素P001的Ms+Ns个间接光照采样值估计像素P001的最终间接光照值A002;本方法的具体步骤如下:步骤Step101:为三维场景中的每个几何对象指定一个唯一的索引编号;
步骤Step102:在计算机中,利用光线投射技术计算三维场景的直接光照画面,在此过程中记录从视点发射的穿过虚拟相机的虚拟像素平面上的各个像素的光线与三维场景的几何对象的几何面片之间的离视点最近的交点A001及其所属几何对象的索引编号;直接光照画面是一个二维数组,该数组的每个元素保存虚拟相机的虚拟像素平面上的像素对应的直接光照值;直接光照画面对应的二维数组的元素与虚拟相机的虚拟像素平面上的像素一一对应;
步骤Step103:在计算机中,针对虚拟相机的虚拟像素平面上的每个像素,根据三维场景模型利用路径跟踪技术为每个像素计算Ms个间接光照采样值;
步骤Step104:在计算机中,针对虚拟相机的虚拟像素平面上的第i行、第j列像素P001,i=1,2,3,…,M,j=1,2,3,…,N,M表示虚拟像素平面上的像素行数,N表示虚拟像素平面上的像素列数,做如下操作:步骤Step104‑1:找出虚拟像素平面上的满足条件COND1的各个像素P002并把它们组成一个集合SP001,其中条件COND1为:像素P002到像素P001的距离小于dp且像素P002对应的可视场景点所属几何对象的索引编号与像素P001对应的可视场景点所属几何对象的索引编号相同;
步骤Step104‑2:在计算机内存中创建一个集合SP002,把集合SP002初始化成空集合;
把像素P001的Ms个间接光照采样值添加到集合SP002中;
步骤Step104‑3:针对集合SP001中的每个像素P002,做如下操作:
把像素P002的Ms个间接光照采样值添加到集合SP002中;
步骤Step104‑4:求集合SP002中的所有元素保存的间接光照采样值的平均值AVG;把平均值AVG作为像素P001的最终间接光照值A002的初始估计结果;
步骤Step104‑5:如果最终间接光照值A002的初始估计结果与像素P001对应的直接光照值之比大于阈值Ith,则转步骤Step104‑6,否则转步骤Step104‑7;
步骤Step104‑6:用路径跟踪技术为像素P001再额外计算Ns个间接光照采样值,使得像素P001拥有Ms+Ns个间接光照采样值;计算像素P001的Ms+Ns个间接光照采样值的平均值AVG2,把平均值AVG2作为像素P001的最终间接光照值A002;转步骤Step104‑8;
步骤Step104‑7:把步骤Step104‑4得到的最终间接光照值A002的初始估计结果作为像素P001的最终间接光照值A002;
步骤Step104‑8:针对像素P001的操作结束;
步骤Step105:在计算机内存中创建一个包含M行、N列元素的二维数组GILL,二维数组GILL的元素用于保存虚拟相机的虚拟像素平面上的像素对应的全局光照值;二维数组GILL的元素和虚拟相机的虚拟像素平面上的像素一一对应;
步骤Step106:针对二维数组GILL的第i行、第j列元素B001,i=1,2,3,…,M,j=1,2,
3,…,N,执行如下操作:
令vDILL为三维场景的直接光照画面的第i行、第j列元素保存的直接光照值;令vIndILL为虚拟相机的虚拟像素平面上的第i行、第j列像素对应的最终间接光照值A002;把vDILL与vIndILL相加在一起赋值给元素B001;
步骤Step107:把二维数组GILL保存的全局光照值转换成三维场景的全局光照效果画面图像保存到计算机硬盘文件中。