实时渲染次表面散射的方法及相关装置与流程

文档序号:12675640阅读:来源:国知局

技术特征:

1.一种实时渲染次表面散射的方法,其特征在于,包括:

在实时渲染过程中,获取虚拟物体对应的三维模型的表面纹理;所述表面纹理包括所述三维模型表面上的像素点的次表面散射纹理信息,所述次表面散射纹理信息包括所述像素点作为光线出射点时对应的M个光线入射点的空间信息,以及,每一光线入射点与所述像素点之间的光线传播距离;所述光线入射点位于所述三维模型的表面,所述M个光线入射点基于散射原理确定;M为大于1的正整数;

根据所述光线入射点的空间信息,计算得到所述每一光线入射点对应的光强信息;

根据每一光线入射点对应的光强信息以及其与所述像素点之间的光线传播距离进行光线衰减,得到每一光线入射点对应的衰减结果;

对各光线入射点对应的衰减结果求和,得到所述像素点对应的光强信息;

使用所述像素点对应的光强信息,对所述虚拟物体的表面上相应像素点进行渲染。

2.如权利要求1所述的方法,其特征在于,在获取所述表面纹理之前,还包括:生成所述表面纹理。

3.如权利要求2所述的方法,其特征在于,所述生成所述表面纹理包括:

基于所述三维模型表面上的像素点进行递归光线追踪,得到光线追踪结果,所述光线追踪结果包括所述像素点对应的多个表面散射点,所述多个表面散射点均位于所述三维模型表面上;

从所述多个表面散射点中确定出M个光线入射点;

存储每一光线入射点的空间信息,以及,每一光线入射点与所述像素点之间的光线传播距离。

4.如权利要求2或3所述的方法,其特征在于,在所述基于所述三维模型表面上的像素点进行递归光线追踪之前,还包括:

构建可完全包围所述三维模型的包围盒;

使用由多个切割面构成的网格对所述包围盒进行划分。

5.如权利要求4所述的方法,其特征在于,在所述基于所述三维模型表面上的像素点进行递归光线追踪之前,还包括:

获取光线追踪参数;所述光线追踪参数包括:散射方向个数m和矢量,m为大于1的正整数。

6.如权利要求5所述的方法,其特征在于,基于所述三维模型表面上的像素点进行的第i次递归光线追踪包括:

使用所述光线追踪参数生成m条散射光线,所述m条散射光线相交于目标点;

确定所述m条散射光线中第j条散射光线在本次递归光线追踪中对应的散射点;

若所述散射点不位于所述三维模型表面上,将所述散射点作为下一递归光线追踪中的目标点;

若所述散射点位于所述三维模型表面上,将所述散射点作为表面散射点;

其中,i为小于N的整数,所述N为最大递归次数;j为小于m的整数;

第0次递归光线追踪中的目标点为所述三维模型表面上的像素点。

7.如权利要求6所述的方法,其特征在于,所述确定第j条散射光线在本次递归光线追踪中对应的散射点包括:

确定所述第j条散射光线与目标切割面的第一交点,以及所述第j条散射光线和所述三维模型表面的第二交点;所述目标切割面为与所述目标点的法向夹角最大的切割面集合中、离所述目标点最近的切割面;

将所述第一交点和第二交点中更接近所述目标点的交点作为所述第j条散射光线对应的散射点。

8.如权利要求7所述的方法,其特征在于,所述从所述多个表面散射点中确定出M个光线入射点包括:

获取各表面散射点与所述像素点之间的光线传播距离;

按光线传播距离由小到大对所述多个表面散射点进行排序;

选择前M个表面散射点作为所述M个光线入射点。

9.如权利要求1所述的方法,其特征在于,所述空间信息包括位置信息和法线。

10.一种实时渲染装置,其特征在于,包括获取单元和渲染单元,其中:

所述获取单元用于在实时渲染过程中,获取虚拟物体对应的三维模型的表面纹理;所述表面纹理包括所述三维模型表面上的像素点的次表面散射纹理信息,所述次表面散射纹理信息包括所述像素点作为光线出射点时对应的M个光线入射点的空间信息,以及,每一光线入射点与所述像素点之间的光线传播距离;所述光线入射点位于所述三维模型的表面,所述M个光线入射点基于散射原理确定;M为大于1的正整数;

所述渲染单元用于:

根据所述光线入射点的空间信息,计算得到所述每一光线入射点对应的光强信息;

根据每一光线入射点对应的光强信息以及其与所述像素点之间的光线传播距离进行光线衰减,得到每一光线入射点对应的衰减结果;

对各光线入射点对应的衰减结果求和,得到所述像素点对应的光强信息;

使用所述像素点对应的光强信息,对所述虚拟物体的表面上相应像素点进行渲染。

11.如权利要求10所述的装置,其特征在于,还包括:

生成单元,用于生成所述表面纹理。

12.如权利要求11所述的装置,其特征在于,所述生成单元具体用于:

基于所述三维模型表面上的像素点进行递归光线追踪,得到光线追踪结果,所述光线追踪结果包括所述像素点对应的多个表面散射点,所述多个表面散射点均位于所述三维模型表面上;

从所述多个表面散射点中确定出M个光线入射点;

存储每一光线入射点的空间信息,以及,每一光线入射点与所述像素点之间的光线传播距离。

13.如权利要求11或12所述的装置,其特征在于,在所述基于所述三维模型表面上的像素点进行递归光线追踪之前,所述生成单元还用于:

构建可完全包围所述三维模型的包围盒;

使用由多个切割面构成的网格对所述包围盒进行划分。

14.如权利要求13所述的装置,其特征在于,在所述基于所述三维模型表面上的像素点进行递归光线追踪之前,所述生成单元还用于:

获取光线追踪参数;所述光线追踪参数包括:散射方向个数m和矢量,m为大于1的正整数。

15.如权利要求14所述的装置,其特征在于,在基于所述三维模型表面上的像素点进行的第i次递归光线追踪方面,所述生成单元具体用于:

使用所述光线追踪参数生成m条散射光线,所述m条散射光线相交于目标点;

确定所述m条散射光线中第j条散射光线在本次递归光线追踪中对应的散射点;

若所述散射点不位于所述三维模型表面上,将所述散射点作为下一递归光线追踪中的目标点;

若所述散射点位于所述三维模型表面上,将所述散射点作为表面散射点;

其中,i为小于N的整数,所述N为最大递归次数;j为小于m的整数;

第0次递归光线追踪中的目标点为所述三维模型表面上的像素点。

16.如权利要求15所述的装置,其特征在于,在所述确定第j条散射光线在本次递归光线追踪中对应的散射点方面,所述生成单元具体用于:

确定所述第j条散射光线与目标切割面的第一交点,以及所述第j条散射光线和所述三维模型表面的第二交点;所述目标切割面为与所述目标点的法向夹角最大的切割面集合中、离所述目标点最近的切割面;

将所述第一交点和第二交点中更接近所述目标点的交点作为所述第j条散射光线对应的散射点。

17.如权利要求16所述的装置,其特征在于,在所述从所述多个表面散射点中确定出M个光线入射点方面,所述生成单元具体用于:

获取各表面散射点与所述像素点之间的光线传播距离;

按光线传播距离由小到大对所述多个表面散射点进行排序;

选择前M个表面散射点作为所述M个光线入射点。

18.一种终端,其特征在于,包括如权利要求10至17所述的实时渲染装置。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1