首页 / 专利库 / 图形技术 / 光线跟踪 / 三维场景光线跟踪渲染画面的自适应反走样方法

三维场景光线跟踪渲染画面的自适应反走样方法

阅读:400发布:2020-05-11

专利汇可以提供三维场景光线跟踪渲染画面的自适应反走样方法专利检索,专利查询,专利分析的服务。并且本 发明 公开一种三维场景 光线 跟踪 渲染 画面的自适应反走样方法。本方法能够把三维场景画面的各个 像素 对应的可视场景点的 位置 、法向量、所属几何对象以及 颜色 作为依据,来自适应地判断像素是否需要进行反走样处理。本方法只为那些需要做反走样处理的像素增加额外的光线 采样 操作,通过实现三维场景的 光线跟踪 画面的自适应反走样,既可以避免过多的额外计算开销,又可以获得高品质的反走样效果。,下面是三维场景光线跟踪渲染画面的自适应反走样方法专利的具体信息内容。

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)的结果。

说明书全文

三维场景光线跟踪渲染画面的自适应反走样方法

技术领域

[0001] 本发明属于三维场景画面渲染技术领域,涉及一种三维场景光线跟踪渲染画面的自适 应反走样方法。

背景技术

[0002] 光线跟踪是一种被广泛使用的用于渲染三维场景画面的技术。由于光线跟踪属于典型 的点采样技术,其很容易产生图形走样问题。造成走样的原因是:当像素矩形区域覆盖多 个具有不同颜色的场景区域时,使用点采样可能漏掉其中的某些颜色区域。光线跟踪渲染 画面反走样的基本思路是为出现走样的像素跟踪多条光线,尽可能对像素覆盖的不同颜色 区域都能产生对应的点采样。很显然,对应平滑变化表面内部位置的像素很少产生走样现 象。因此,在三维场景画面中,并非每个像素都需要进行反走样处理,只有那些处于区域 边缘的像素才有必要进行反走样处理。当三维场景画面的两个相邻像素对应的可视场景点 位于两个不同几何对象上时,这两个相邻像素应该分别处于不同画面区域的边缘上,有必 要对它们进行反走样处理。当三维场景画面的两个相邻像素对应的可视场景点的深度值差 异非常大时,这两个像素也非常可能处于不同画面区域的边缘上,此时也有必要对它们进 行反走样处理。如果三维场景画面的两个相邻像素对应的可视场景点的表面法向量相差很 大,表明两个像素对应场景点的表面的朝向明显不同,此时两个像素也非常可能位于不同 画面区域的边缘上,也有必要对它们进行反走样处理。此外,如果三维场景画面的两个相 邻像素对应的颜色差异很大,表明两个像素对应场景点位于不同颜色区域边缘,此时也有 必要对它们进行反走样处理。
[0003] 在三维场景渲染中,用红、绿、蓝三元组来表示各种颜色(即在RGB颜色空间中描 述颜色),因此光照值实际上也包含红色、绿色、蓝色三个分量。尽管RGB颜色空间在计 算机图形学中得到广泛使用,但是RGB颜色空间中的两种颜色的欧氏距离并不能用于描 述这两种颜色的视觉感知差异大小。J.F.Hughes等撰写的由Addison-Wesley公司于2014 年出版的《Computer Graphics:Principles and Practice,3rd Edition》的28.9节介绍了CIE Lab 颜色空间,在CIE Lab颜色空间中的两种颜色的欧氏距离可以表征这两种颜色的视觉感知 差异大小。RGB颜色空间中的颜色可以转换到CIE Lab颜色空间中。

发明内容

[0004] 本发明的目的在于,提供一种三维场景光线跟踪渲染画面的自适应反走样方法,实现 对三维场景的光线跟踪渲染画面的像素的反走样。
[0005] 本发明的技术方案是这样实现的:为三维场景中的每个几何对象指定一个唯一的索引 编号;利用光线跟踪技术,为虚拟相机的虚拟像素平面上的每个像素产生一条光线,跟踪 光线在三维场景中的传播,计算沿光线反向到达虚拟相机对应的视点的全局光照值;在此 过程中,记录光线传播路径与三维场景的几何对象的几何面片之间的第一个交点A001的 位置、法向量以及所属几何对象的索引编号;交点A001与虚拟相机的虚拟像素平面上的 像素一一对应;针对虚拟相机的虚拟像素平面上的每个像素,如果其对应的交点A001所 属几何对象的索引编号与周围的像素对应的交点A001所属几何对象的索引编号不同,则 为该像素再产生Ns条光线,并计算沿这Ns条光线反向到达虚拟相机对应的视点的全局光 照值;针对虚拟相机的虚拟像素平面上的每个像素,如果其对应的交点A001的位置与周 围的像素对应的交点A001的位置之间的距离大于阈值dth,则为该像素再产生Ns条光线, 并计算沿这Ns条光线反向到达虚拟相机对应的视点的全局光照值;针对虚拟相机的虚拟像 素平面上的每个像素,如果其对应的交点A001的法向量与周围的像素对应的交点A001 的法向量之间的夹大于阈值θth,则为该像素再产生Ns条光线,并计算沿这Ns条光线反 向到达虚拟相机对应的视点的全局光照值;针对虚拟相机的虚拟像素平面上的每个像素, 如果其对应的交点A001的颜色与周围的像素对应的交点A001的颜色的欧氏距离大于阈值 Cth,则为该像素再产生Ns条光线,并计算沿这Ns条光线反向到达虚拟相机对应的视点的 全局光照值。虚拟相机的虚拟像素平面上的每个像素对应的全局光照值等于该像素对应的 所有光线对应的全局光照值的平均值。本方法的具体步骤如下:
[0006] 步骤Step101:为三维场景中的每个几何对象指定一个唯一的索引编号;
[0007] 步骤Step102:在计算机的内存中创建一个包含M行、N列的二维数组GIMG,二维 数组GIMG的元素用于保存像素对应的全局光照值,M表示虚拟相机的虚拟像素平面上的 像素行数,N表示虚拟相机的虚拟像素平面上的像素列数;二维数组GIMG的元素和虚拟 相机的虚拟像素平面上的像素一一对应;
[0008] 步骤Step103:针对虚拟相机的虚拟像素平面上的每个像素Pix,做如下操作:
[0009] 从虚拟相机对应的视点发射一条穿过像素Pix对应的虚拟相机的虚拟像素平面上的矩 形方格中心点的光线A002,计算光线A002与三维场景的几何对象的几何面片之间的离虚 拟相机对应的视点最近的交点A001,记录交点A001的位置、交点A001的法向量、交点 A001所属几何对象的索引编号;像素Pix和交点A001一一对应;按照光线跟踪技术,跟 踪光线A002在三维场景中的传播,计算沿光线A002反向到达虚拟相机对应的视点的全局 光照值A003,把全局光照值A003保存在像素Pix对应的二维数组GIMG的元素中;
[0010] 步骤Step104:针对虚拟相机的虚拟像素平面上的每个像素Pix,做如下操作:
[0011] 步骤Step104-1:用虚拟相机的虚拟像素平面上的与像素Pix相邻的所有像素构造一个 集合S001,集合S001中的每个像素都与像素Pix相邻;
[0012] 步骤Step104-2:如果像素Pix对应的交点A001所属几何对象的索引编号和集合S001 中的任意一个像素对应的交点A001所属几何对象的索引编号不同,则转步骤Step104-6, 否则转步骤Step104-3;
[0013] 步骤Step104-3:如果像素Pix对应的交点A001的位置到集合S001中的任意一个像素 对应的交点A001的位置的距离大于阈值dth,则转步骤Step104-6,否则转步骤Step104-4;
[0014] 步骤Step104-4:如果像素Pix对应的交点A001的法向量与集合S001中的任意一个像 素对应的交点A001的法向量的夹角大于阈值θth,则转步骤Step104-6,否则转步骤 Step104-5;
[0015] 步骤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;
[0016] 步骤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);
[0017] 步骤Step104-7:针对像素Pix的操作结束;
[0018] 步骤Step105:把二维数组GIMG保存的全局光照值转换成三维场景画面图像保存到 计算机硬盘文件中。
[0019] 在三维场景渲染中,光照值包含红色、绿色、蓝色三个分量。在步骤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)的结果。二维数组GIMG的元素保存的是全局光照值,因此二维数组GIMG的元 素保存的值也包含红色、绿色、蓝色三个分量。
[0020] 本发明的积极效果是:本方法能够把三维场景画面的各个像素对应的可视场景点的位置、 法向量、所属几何对象以及颜色作为依据,来自适应地判断像素是否需要进行反走样处理。 本方法只为那些需要做反走样处理的像素增加额外的光线采样操作,通过实现三维场景的 光线跟踪画面的自适应反走样,既可以避免过多的额外计算开销,又可以获得高品质的反 走样效果。附图说明
[0021] 图1为虚拟相机的虚拟像素平面上的像素矩形方格示意图。

具体实施方式

[0022] 为了使本方法的特征和优点更加清楚明白,下面结合具体实施例对本方法作进一步的 描述。在本实施例中,考虑如下房间三维场景:在房间中放着一张床和一个柜子,房间的 天花板上有一个白炽灯,白炽灯向下照射,三维场景中的所有几何对象表面都是漫反射面。 计算机系统的CPU选择Intel(R)Xeon(R)CPU E3-1225 v3@3.20GHz,内存选择金士顿 8GB DDR3 1333,硬盘选择Buffalo HD-CE 1.5TU2;计算机操作系统选用Windows 7,软 件编程工具选用VC++2010。
[0023] 本发明的技术方案是这样实现的:为三维场景中的每个几何对象指定一个唯一的索引 编号;利用光线跟踪技术,为虚拟相机的虚拟像素平面上的每个像素产生一条光线,跟踪 光线在三维场景中的传播,计算沿光线反向到达虚拟相机对应的视点的全局光照值;在此 过程中,记录光线传播路径与三维场景的几何对象的几何面片之间的第一个交点A001的 位置、法向量以及所属几何对象的索引编号;交点A001与虚拟相机的虚拟像素平面上的 像素一一对应;针对虚拟相机的虚拟像素平面上的每个像素,如果其对应的交点A001所 属几何对象的索引编号与周围的像素对应的交点A001所属几何对象的索引编号不同,则 为该像素再产生Ns条光线,并计算沿这Ns条光线反向到达虚拟相机对应的视点的全局光 照值;针对虚拟相机的虚拟像素平面上的每个像素,如果其对应的交点A001的位置与周 围的像素对应的交点A001的位置之间的距离大于阈值dth,则为该像素再产生Ns条光线, 并计算沿这Ns条光线反向到达虚拟相机对应的视点的全局光照值;针对虚拟相机的虚拟像 素平面上的每个像素,如果其对应的交点A001的法向量与周围的像素对应的交点A001 的法向量之间的夹角大于阈值θth,则为该像素再产生Ns条光线,并计算沿这Ns条光线反 向到达虚拟相机对应的视点的全局光照值;针对虚拟相机的虚拟像素平面上的每个像素, 如果其对应的交点A001的颜色与周围的像素对应的交点A001的颜色的欧氏距离大于阈值 Cth,则为该像素再产生Ns条光线,并计算沿这Ns条光线反向到达虚拟相机对应的视点的 全局光照值。虚拟相机的虚拟像素平面上的每个像素对应的全局光照值等于该像素对应的 所有光线对应的全局光照值的平均值。本方法的具体步骤如下:
[0024] 步骤Step101:为三维场景中的每个几何对象指定一个唯一的索引编号;
[0025] 步骤Step102:在计算机的内存中创建一个包含M行、N列的二维数组GIMG,二维 数组GIMG的元素用于保存像素对应的全局光照值,M表示虚拟相机的虚拟像素平面上的 像素行数,N表示虚拟相机的虚拟像素平面上的像素列数;二维数组GIMG的元素和虚拟 相机的虚拟像素平面上的像素一一对应;
[0026] 步骤Step103:针对虚拟相机的虚拟像素平面上的每个像素Pix,做如下操作:
[0027] 从虚拟相机对应的视点发射一条穿过像素Pix对应的虚拟相机的虚拟像素平面上的矩 形方格中心点的光线A002,计算光线A002与三维场景的几何对象的几何面片之间的离虚 拟相机对应的视点最近的交点A001,记录交点A001的位置、交点A001的法向量、交点 A001所属几何对象的索引编号;像素Pix和交点A001一一对应;按照光线跟踪技术,跟 踪光线A002在三维场景中的传播,计算沿光线A002反向到达虚拟相机对应的视点的全局 光照值A003,把全局光照值A003保存在像素Pix对应的二维数组GIMG的元素中;
[0028] 步骤Step104:针对虚拟相机的虚拟像素平面上的每个像素Pix,做如下操作:
[0029] 步骤Step104-1:用虚拟相机的虚拟像素平面上的与像素Pix相邻的所有像素构造一个 集合S001,集合S001中的每个像素都与像素Pix相邻;
[0030] 步骤Step104-2:如果像素Pix对应的交点A001所属几何对象的索引编号和集合S001 中的任意一个像素对应的交点A001所属几何对象的索引编号不同,则转步骤Step104-6, 否则转步骤Step104-3;
[0031] 步骤Step104-3:如果像素Pix对应的交点A001的位置到集合S001中的任意一个像素 对应的交点A001的位置的距离大于阈值dth,则转步骤Step104-6,否则转步骤Step104-4;
[0032] 步骤Step104-4:如果像素Pix对应的交点A001的法向量与集合S001中的任意一个像 素对应的交点A001的法向量的夹角大于阈值θth,则转步骤Step104-6,否则转步骤 Step104-5;
[0033] 步骤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;
[0034] 步骤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);
[0035] 步骤Step104-7:针对像素Pix的操作结束;
[0036] 步骤Step105:把二维数组GIMG保存的全局光照值转换成三维场景画面图像保存到 计算机硬盘文件中。
[0037] 在本实施例中,Ns=10,dth等于刚好能包裹柜子几何对象的包围球的半径的二十分之 一,θth=π/6弧度,Cth=89,M=768,N=1024;二维数组GIMG的第i行、第j列元素与虚 拟相机的虚拟像素平面上的第i行、第j列像素相对应,i=1,2,…,M,j=1,2,…,N。
[0038] 对房间的立着的四面墙,把每面墙作为一个独立的几何对象,把房间的天花板作为一 个独立的几何对象,把房间的地板作为一个独立的几何对象,把房间的作为一个独立的 几何对象,把床作为一个独立的几何对象,把柜子作为一个独立的几何对象。每个独立几 何对象都包含一系列几何面片。众所周知,在光线跟踪中,本质上是从视点出发反向跟踪 光线传播,因此光源发出的光照实际上沿光线传播路径反向到达视点。虚拟相机的虚拟像 素平面上的像素对应的矩形方格,每个方格代表一个像素,所有方格组合在一起构成了虚 拟相机的虚拟成像区域。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈