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

文档序号:9728094阅读:486来源:国知局
一种基于点云的次表面散射物体的出射辐照度计算方法
【技术领域】
[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算法,
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1