一种基于点云的次表面散射物体的出射辐照度计算方法

xiaoxiao2021-2-24  258

一种基于点云的次表面散射物体的出射辐照度计算方法
【技术领域】
[0001] 本发明涉及次表面散射真实感渲染,具体涉及一种基于点云的次表面散射物体的 出射辐照度计算方法。
【背景技术】
[0002] 次表面散射(subsurface scattering)是指光从物体表面某点进入物体,经内部 散射,最终从物体表面其他顶点出射的光线传递过程。具有次表面散射性质的物体一般具 有较为圆润的外观色泽,这种现象在半透明材质上表现得更为明显,现实世界中的牛奶、玉 石、大理石以及生物表皮等都具有这种性质。次表面散射一般需要采用双向表面散射反射 分布函数(bidirectional surface scattering reflectance distribution function, 简称BSSRDF)来进行描述,并采用全局光照算法进行绘制。故对次表面散射材质的模拟成为 了真实感渲染领域一个非常重要而又极具挑战性的问题。
[0003] 但是,模拟具有次表面散射特性的物体并非易事,光线在射入半透明物体的内部, 然后经过多次反弹,经过散射和吸收后再射出物体表面,这个过程非常复杂。使用诸如路径 追踪(path tracing)和光子映射(photon mapping)等蒙特卡洛方法可以得到很精确的次 表面散射结果,但是需要耗费极长的时间才能达到收敛。目前应用较为广泛的方法有基于 预计算的次表面散射方法以及次表面散射近似模拟方法两种类型。
[0004] 例如,2002年Jensen在 "A rapid hierarchical rendering technique for translucent materials"一文中提出预计算福射度的算法,采用分层积分方式,使用预先 计算的采样点的辐照度计算漫射近似来模拟次表面散射,对于具有高度透明特性的物体的 渲染显得尤为高效。
[0005] 中国专利(申请号:CN 201210293255,专利名称:基于辐射度算法的次表面散射物 体的实时全局光照方法)中提出了一种基于辐射度算法的次表面散射物体的实时全局光照 方法。通过辐射度算法预计算出场景的能量传输矩阵,并利用GPU的快速稀疏矩阵库计算能 量传输过程,最后利用快速光子收集算法,获得最终的全局光照效果。该专利解决任意光源 光照下的次表面散射物体的全局光照效果,并在速度上可以达到实时。
[0006] 中国专利(申请号:CN 201110281048,专利名称:一种基于BRDF的次表面散射的实 时绘制方法)对次表面散射模型改进,采用BRDF的方法来近似逼近次表面散射中的单次次 表面散射,通过对积分的化简,简化传统光照模型所带来的大量计算量来提高绘制效率。
[0007] 基于预计算的次表面散射方法可实现高质量的次表面散射效果,但是预处理代价 高,并且需要高效的存储结构对预处理结果进行存储,以在光照计算过程进行加速;次表面 散射近似模拟方法,不是基于物理的方法,在绘制质量上有所损失。

【发明内容】

[0008] 本发明针对基于预计算的次表面散射方法中辐照度预计算处理代价高和存储复 杂问题,提供一种基于点云的次表面散射物体的出射辐照度计算方法。该方法通过对次表 面散射物体的表面采样并直接照射生成点云,采用点云树对点云进行存储,在渲染过程中, 对于任一着色点通过查找预计算的点云树和积分技术,快速计算带有表面粗糙度的次表面 散射,最终得到次表面散射物体的出射辐照度。
[0009] 为实现上述目的,本发明采用以下技术方案:
[0010] 一种基于点云的次表面散射物体的出射辐照度计算方法,包括:
[0011]步骤(1):对次表面散射物体表面进行采样,再对次表面散射物体表面上的采样点 进行直接光照计算形成点云采样点,并将点云采样点组织到点云树中进行存储;
[0012] 步骤(2):开启光线追踪渲染流程进行渲染,每条光线和包含多个三维物体的场景 相交的点为着色点;当着色点落在次表面散射物体上时,通过遍历点云树来获取与当前着 色点的出射辐照度相关联的树切,将所述树切上的每个节点对当前着色点的入射辐照度均 进行积分,根据次表面散射函数计算得出当前着色点沿任一方向出射的辐照度。
[0013] 所述步骤(1)中,采用REYES算法在次表面散射物体表面进行插值采样。
[0014]采用REYES算法将次表面散射物体的表面划分成若干个多边形,所述多边形的重 心作为点云采样点的位置。
[0015] 通过计算每个点云采样点所在的多边形的面积,获得相应点云采样点代表的面 积。
[0016] 在所述步骤(1)中,点云树为K-D树结构。
[0017] 在所述步骤(1)中,采用二叉树结构存储点云树。
[0018] 在所述步骤(1)中,点云树的叶节点存储点云采样点,点云树的非叶节点存储其所 有孩子节点的总辐照度,所有孩子节点代表的总面积,经过辐照度加权的所有孩子节点位 置的平均位置。
[0019]在步骤⑵中,从点云树的根节点开始遍历点云树,在点云树的每个节点处,若该 节点满足下列任一条件:
[0020] (a)该节点代表的面积与当前着色点到该节点位置的距离的比值小于预设阈值;
[0021] (b)该节点为叶节点;
[0022] 则该节点与当前着色点的出射辐照度相关联,停止遍历该节点的子节点;否则,遍 历该节点的所有孩子节点,并判断该节点的所有孩子节点是否满足上述任一条件,直到找 到满足上述任一条件的所有节点,这些节点构成与当前着色点的出射辐照度相关联的树 切。
[0023] 在步骤(2)中,所述树切上的每个节点对当前着色点的入射辐照度进行积分之后, 再叠加高光项,最终得出当前着色点沿任一方向出射的辐照度;其中,高光项是由所述树切 上的每个节点对当前着色点的入射辐照度与相应高光系数的乘积项的累加值。
[0024]本发明的有益效果为:
[0025] (1)本发明通过层次遍历存储点云的树状结构,从而达到快速渲染的目的,可以模 拟光滑的玉石等次表面散射效果;
[0026] (2)本发明通过对点云树的有效组织,可快速找到对着色点有贡献的点云树节点, 在保证渲染质量的同时,采样点对当前着色点的影响呈指数函数下降来提高这种分层计算 的方法的效率。
【附图说明】
[0027] 图1为本发明的基于点云的次表面散射物体的出射辐照度计算方法的流程图。
【具体实施方式】
[0028] 下面结合附图与实施例对本发明做进一步说明:
[0029] 图1为本发明的基于点云的次表面散射物体的出射辐照度计算方法的流程图,根 据本图,可看出,本发明的该方法,包括:预处理步骤和渲染步骤。
[0030] (1)预处理步骤
[0031] 对次表面散射物体表面进行采样,再对次表面散射物体表面上的采样点进行直接 光照形成点云采样点,并将点云采样点组织到点云树中进行存储。
[0032]在该步骤中,采用REYES算法在次表面散射物体表面进行插值采样。点云树采用K-D树结构。
[0033]本实施例采用二叉树结构存储点云树。
[0034]在该步骤中,点云树的叶节点为点云采样点,非叶子节点存储其孩子节点的和,任 一点云树的节点存储有该节点的位置、面积以及辐照度。
[0035]采用REYES算法将次表面散射物体的表面划分成若干个多边形,所述多边形的重 心作为点云米样点。
[0036]通过计算每个点云采样点所在的多边形的面积,获得相应点云采样点代表的面 积。
[0037]例如:采用REYES算法, 关闭被向面和隐藏面消隐,将次表面散射物体表面细分成 微多边形(micropolygons)。微多边形以四边形为例,计算micropolygon的重心作为插值出 的点云米样点。
[0038]每个点云采样点计算其代表的面积,即其所在的micropolygons的面积,计算方法 为通过将micropolygons四边形分成两个三角形,两个三角形面积的和即为micropolygon 的精确面积。
[0039]计算每个点云采样点的直接光照作为该点的辐照度信息。
[0040]本实施例中,采用K-D树将点云组织到一个层次结构中,本发明采用二叉树结构存 储点云树。其中,叶节点中存储一个点云;中间节点存储的各个属性是对其孩子节点各个属 性的加和,即所有孩子节点的总的辐照度,所有孩子节点代表的总面积,经过辐照度加权的 所有孩子节点位置的平均位置。
[0041 ] (2)渲染步骤
[0042]开启光线追踪渲染流程进行渲染,每条光线和包含多个三维物体的场景相交的点 为着色点;当着色点落在次表面散射物体上时,通过遍历点云树来获取与当前着色点的出 射辐照度相关联的树切,将所述树切上的每个节点对当前着色点的入射辐照度均进行积 分,根据次表面散射函数计算得出当前着色点沿任一方向出射的辐照度。
[0043]该步骤中,从点云树的根节点开始遍历点云树,在点云树的每个节点处,若该节点 满足下列任一条件:
[0044] (a)该节点代表的面积与当前着色点到该节点位置的距离的比值小于预设阈值;
[0045] (b)该节点为叶节点;
[0046] 则该节点与当前着色点的出射辐照度相关联,停止遍历该节点的子节点;否则,遍 历该节点的所有孩子节点,并判断该节点的所有孩子节点是否满足上述任一条件,直到找 到满足上述任一条件的所有节点,获得与当前着色点的出射辐照度相关联的树切。
[0047] 将所述树切上的每个节点对当前着色点的入射辐照度均进行积分,还可以添加有 高光计算项。计算高光时使用blinn光照模型,高光系数由公式(R · V)a计算,其中R表示在 该着色点处的反射向量,V表示着色点到视点方向的向量,α为物体表面粗糙度,高光系数和 入射辐照度的乘积即为高光的值,最终累加得出当前着色点沿任一方向出射的辐照度。
[0048] (a)该节点代表的面积与当前着色点到该节点位置的距离的比值小于预设阈值的 表达式为:
[0049]
[0050] 其中,Av为节点的面积,i为着色点的位置,A为节点位置。
[0051] 通过判断△ ω是否小于某个常数,决定是否需要对节点的孩子节点进行遍历。 [0052]在该步骤中,依据次表面散射函数对所述树切上的每个节点的入射辐照度进行积 分的计算公式如下:
[0053]
[0054] 其中,/ 是在着色点X。和角度ω。的出射光,是树切上每个节点入 射点来自方向G的入射光,S为BSSRDF函数;系为在次表面物体表面上的着色点Xi的法向 量。
[0055] S为BSSRDF函数的公式如下:
[0056]
[0057] 其中,变量)和/^.(仏兩/)分别是在入射点和出射点处的菲涅尔反射率;Rd( | Χι-Χ〇| I )是用于近似次表面散射的漫反射率,表示从着色点^射入物体内部的光线经过散 射和吸收,然后从物体表面的着色点X。射出,这其中出射的光能占初始射入光能的比例,材 质的散射和吸收参数都会影响该函数的结果;η表示折射率。
[0058] 上述虽然结合附图对本发明的【具体实施方式】进行了描述,但并非对本发明保护范 围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不 需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
【主权项】
1. 一种基于点云的次表面散射物体的出射辐照度计算方法,其特征在于,包括: 步骤(1):对次表面散射物体表面进行采样,再对次表面散射物体表面上的采样点进行 直接光照计算形成点云采样点,并将点云采样点组织到点云树中进行存储; 步骤(2):开启光线追踪渲染流程进行渲染,每条光线和包含多个三维物体的场景相交 的点为着色点;当着色点落在次表面散射物体上时,通过遍历点云树来获取与当前着色点 的出射辐照度相关联的树切,将所述树切上的每个节点对当前着色点的入射辐照度均进行 积分,根据次表面散射函数计算得出当前着色点沿任一方向出射的辐照度。2. 如权利要求1所述的一种基于点云的次表面散射物体的出射辐照度计算方法,其特 征在于,所述步骤(1)中,采用REYES算法在次表面散射物体表面进行插值采样。3. 如权利要求2所述的一种基于点云的次表面散射物体的出射辐照度计算方法,其特 征在于,采用REYES算法将次表面散射物体的表面划分成若干个多边形,所述多边形的重心 作为点云采样点的位置。4. 如权利要求3所述的一种基于点云的次表面散射物体的出射辐照度计算方法,其特 征在于,通过计算每个点云采样点所在的多边形的面积,获得相应点云采样点代表的面积。5. 如权利要求1所述的一种基于点云的次表面散射物体的出射辐照度计算方法,其特 征在于,在所述步骤(1)中,点云树为K-D树结构。6. 如权利要求5所述的一种基于点云的次表面散射物体的出射辐照度计算方法,其特 征在于,在所述步骤(1)中,采用二叉树结构存储点云树。7. 如权利要求4所述的一种基于点云的次表面散射物体的出射辐照度计算方法,其特 征在于,在所述步骤(1)中,点云树的叶节点存储点云采样点,点云树的非叶节点存储其所 有孩子节点的总辐照度,所有孩子节点代表的总面积,经过辐照度加权的所有孩子节点位 置的平均位置。8. 如权利要求1所述的一种基于点云的次表面散射物体的出射辐照度计算方法,其特 征在于,在步骤(2)中,从点云树的根节点开始遍历点云树,在点云树的每个节点处,若该节 点满足下列任一条件: (a) 该节点代表的面积与当前着色点到该节点位置的距离的比值小于预设阈值; (b) 该节点为叶节点; 则该节点与当前着色点的出射辐照度相关联,停止遍历该节点的子节点;否则,遍历该 节点的所有孩子节点,并判断该节点的所有孩子节点是否满足上述任一条件,直到找到满 足上述任一条件的所有节点,获得与当前着色点的出射辐照度相关联的树切。9. 如权利要求1所述的一种基于点云的次表面散射物体的出射辐照度计算方法,其特 征在于,在步骤(2)中,所述树切上的每个节点对当前着色点的入射辐照度进行积分之后, 再叠加高光项,最终得出当前着色点沿任一方向出射的辐照度;其中,高光项是由所述树切 上的每个节点对当前着色点的入射辐照度与相应高光系数的乘积项的累加值。
【专利摘要】本发明公开了一种基于点云的次表面散射物体的出射辐照度计算方法,包括步骤(1):对次表面散射物体表面进行采样,再对次表面散射物体表面上的采样点进行直接光照计算形成点云采样点,并将点云采样点组织到点云树中进行存储;步骤(2):开启光线追踪渲染流程进行渲染,每条光线和包含多个三维物体的场景相交的点为着色点;当着色点落在次表面散射物体上时,通过遍历点云树来获取与当前着色点的出射辐照度相关联的树切,将所述树切上的每个节点对当前着色点的入射辐照度均进行积分,根据次表面散射函数计算得出当前着色点沿任一方向出射的辐照度。
【IPC分类】G06T15/50
【公开号】CN105488843
【申请号】CN201510811234
【发明人】王璐, 徐延宁, 屠长河, 孟祥旭, 岳双燕, 徐安敏
【申请人】山东大学
【公开日】2016年4月13日
【申请日】2015年11月19日

最新回复(0)