1.一种三维场景光线跟踪渲染画面的自适应反走样方法,其特征在于:本方法的具体步骤如下:
步骤Step101:为三维场景中的每个几何对象指定一个唯一的索引编号;
步骤Step102:在计算机的内存中创建一个包含M行、N列的二维数组GIMG,二维数组GIMG的元素用于保存像素对应的全局光照值,M表示虚拟相机的虚拟像素平面上的像素行数,N表示虚拟相机的虚拟像素平面上的像素列数;二维数组GIMG的元素和虚拟相机的虚拟像素平面上的像素一一对应;
步骤Step103:针对虚拟相机的虚拟像素平面上的每个像素Pix,做如下操作:
从虚拟相机对应的视点发射一条穿过像素Pix对应的虚拟相机的虚拟像素平面上的矩形方格中心点的光线A002,计算光线A002与三维场景的几何对象的几何面片之间的离虚拟相机对应的视点最近的交点A001,记录交点A001的位置、交点A001的法向量、交点A001所属几何对象的索引编号;像素Pix和交点A001一一对应;按照光线跟踪技术,跟踪光线A002在三维场景中的传播,计算沿光线A002反向到达虚拟相机对应的视点的全局光照值A003,把全局光照值A003保存在像素Pix对应的二维数组GIMG的元素中;
步骤Step104:针对虚拟相机的虚拟像素平面上的每个像素Pix,做如下操作:
步骤Step104-1:用虚拟相机的虚拟像素平面上的与像素Pix相邻的所有像素构造一个集合S001,集合S001中的每个像素都与像素Pix相邻;
步骤Step104-2:如果像素Pix对应的交点A001所属几何对象的索引编号和集合S001中的任意一个像素对应的交点A001所属几何对象的索引编号不同,则转步骤Step104-6,否则转步骤Step104-3;
步骤Step104-3:如果像素Pix对应的交点A001的位置到集合S001中的任意一个像素对应的交点A001的位置的距离大于阈值dth,则转步骤Step104-6,否则转步骤Step104-4;
步骤Step104-4:如果像素Pix对应的交点A001的法向量与集合S001中的任意一个像素对应的交点A001的法向量的夹角大于阈值θth,则转步骤Step104-6,否则转步骤Step104-5;
步骤Step104-5:把像素Pix对应的二维数组GIMG的元素保存的全局光照值A003转换成CIE Lab颜色空间中的颜色,把集合S001中的各个像素对应的二维数组GIMG的元素保存的全局光照值A003转换成CIE Lab颜色空间中的颜色;如果从像素Pix对应的二维数组GIMG的元素保存的全局光照值A003转换得到的CIE Lab颜色空间中的颜色与从集合S001中的任意一个像素对应的二维数组GIMG的元素保存的全局光照值A003转换得到的CIE Lab颜色空间中的颜色的欧氏距离大于阈值Cth,则转步骤Step104-6,否则转步骤Step104-7;
步骤Step104-6:在像素Pix对应的虚拟相机的虚拟像素平面上的矩形方格内按均匀分布随机选择Ns个点PR,从虚拟相机对应的视点发射穿过每个点PR的光线Ray,共得到Ns条光线Ray,按照光线跟踪技术跟踪这Ns条光线Ray在三维场景中的传播,计算沿这Ns条光线Ray反向到达虚拟相机对应的视点的全局光照值,令S1为沿这Ns条光线Ray反向到达虚拟相机对应的视点的全局光照值之和,令S2为S1与像素Pix对应的二维数组GIMG的元素的值之和;把像素Pix对应的二维数组GIMG的元素的值更新为S2/(Ns+1);
步骤Step104-7:针对像素Pix的操作结束;
步骤Step105:把二维数组GIMG保存的全局光照值转换成三维场景画面图像保存到计算机硬盘文件中;
在三维场景渲染中,光照值包含红色、绿色、蓝色三个分量;在步骤Step104-6中,S1也包含红色、绿色、蓝色三个分量,S1的红色分量等于沿这Ns条光线Ray反向到达虚拟相机对应的视点的全局光照值的红色分量之和,S1的绿色分量等于沿这Ns条光线Ray反向到达虚拟相机对应的视点的全局光照值的绿色分量之和,S1的蓝色分量等于沿这Ns条光线Ray反向到达虚拟相机对应的视点的全局光照值的蓝色分量之和;同理,S2也按这种方式计算;S2/(Ns+1)得到的结果是一个包含红色、绿色、蓝色三个分量的平均全局光照值,平均全局光照值的红色分量等于S2的红色分量除以(Ns+1)的结果,平均全局光照值的绿色分量等于S2的绿色分量除以(Ns+1)的结果,平均全局光照值的蓝色分量等于S2的蓝色分量除以(Ns+1)的结果。