实时渲染次表面散射的方法及相关装置制造方法及图纸

技术编号:15641388 阅读:174 留言:0更新日期:2017-06-16 11:51
本发明专利技术实施例提供实时渲染次表面散射的方法及相关装置,以提高次表面散射效果的精度。在本发明专利技术实施例中,三维模型上的像素点会对应多个基于散射原理确定的光线入射点,并基于各入射点与像素点之间的光线传播距离进行衰减求和。与现有方式中只基于一个入射点对光强进行衰减相比,其精准度大大提高了。同时,本发明专利技术实施例中,光线从光源出发、经M个光线入射点入射再从该像素点出射的过程,模拟的是光线进入物体内部的散射(漫反射)过程。而光线进入物体内部的散射过程是真实环境下的物理现象,因此,本发明专利技术实施例的次表面散射效果更合理,更贴近真实环境,与现有技术相比,次表面散射效果的精确度大大提高了。

【技术实现步骤摘要】
实时渲染次表面散射的方法及相关装置
本专利技术涉及计算机
,具体涉及实时渲染次表面散射的方法及相关装置。
技术介绍
次表面散射效果在3D动画电影、游戏等很多领域被广泛使用。次表面散射是光射入非金属材质的物体后,又射出该物体的光线传递过程。次表面散射主要用于表现光透过透明或半透明物体的效果,例如表现灯光照射下人的皮肤,光照射大理石、玉石、玻璃、液体等的效果等。在光线从该物体表面的某入射点入射再从物体表面的某出射点射出的过程中,光线会被散射和吸收,光线在物质中传播得越远,它被散射和吸收得就越厉害。则出射点处的光强会小于入射点处的光强。可使用深度映射方式来实时渲染次表面散射的,请参见图1a,其原理是:给定虚拟物体的3d模型(Object)表面的一个点(可称为像素点)作为出射点,例如图1中的do2点,根据光线直线传输的原理连接do2点与光源(light),二者与Object表面的交点为入射点di2。入射点di2与光源的距离减去出射点do2到光源距离,得到距离差S2,距离差S2是光线从点di2入射到do2点射出的传播距离。得到光线传播距离后,便可以使用距离指数对入射点的光强度进行衰减,得到出射点do2的光强度。屏幕上表现的虚拟物体的像素点与3d模型表面上的点有对应关系(请参见图1b,虚拟物体表面上的像素点是一个个小方格),之后,可使用出射点do2的光强度对虚拟物体表面上相应的像素点进行渲染。同理,对于给点定do1可得到光源到入射点di1的距离和从光源到射出点do1距离之差(S1),进而使用距离指数进行衰减,得到出射点do1的光强度,再使用出射点do1的光强度对虚拟物体表面上相应的像素点进行渲染。随着各应用场景越来越追求渲染效果的真实性,上述实时渲染虚拟物体的方式已不能满足更高的真实性要求,因此,需要提高实时渲染次表面散射效果的精度。
技术实现思路
有鉴于此,本专利技术实施例提供实时渲染次表面散射的方法及相关装置,以提高次表面散射效果的精度。为实现上述目的,本专利技术实施例提供如下技术方案:一种实时渲染次表面散射的方法,包括:在实时渲染过程中,获取虚拟物体对应的三维模型的表面纹理;所述表面纹理包括所述三维模型表面上的像素点的次表面散射纹理信息,所述次表面散射纹理信息包括所述像素点作为光线出射点时对应的M个光线入射点的空间信息,以及,每一光线入射点与所述像素点之间的光线传播距离;所述光线入射点位于所述三维模型的表面,所述M个光线入射点基于散射原理确定;M为大于1的正整数;根据所述光线入射点的空间信息,计算得到所述每一光线入射点对应的光强信息;根据每一光线入射点对应的光强信息以及其与所述像素点之间的光线传播距离进行光线衰减,得到每一光线入射点对应的衰减结果;对各光线入射点对应的衰减结果求和,得到所述像素点对应的光强信息;使用所述像素点对应的光强信息,对所述虚拟物体的表面上相应像素点进行渲染。一种实时渲染装置,包括获取单元和渲染单元,其中:所述获取单元用于在实时渲染过程中,获取虚拟物体对应的三维模型的表面纹理;所述表面纹理包括所述三维模型表面上的像素点的次表面散射纹理信息,所述次表面散射纹理信息包括所述像素点作为光线出射点时对应的M个光线入射点的空间信息,以及,每一光线入射点与所述像素点之间的光线传播距离;所述光线入射点位于所述三维模型的表面,所述M个光线入射点基于散射原理确定;M为大于1的正整数;所述渲染单元用于:根据所述光线入射点的空间信息,计算得到所述每一光线入射点对应的光强信息;根据每一光线入射点对应的光强信息以及其与所述像素点之间的光线传播距离进行光线衰减,得到每一光线入射点对应的衰减结果;对各光线入射点对应的衰减结果求和,得到所述像素点对应的光强信息;使用所述像素点对应的光强信息,对所述虚拟物体的表面上相应像素点进行渲染。一种终端,包括上述的实时渲染次表面散射的装置。在本专利技术实施例中,三维模型上的像素点会对应多个基于散射原理确定的光线入射点,并基于各入射点与像素点之间的光线传播距离进行衰减求和。与现有方式中只基于一个入射点对光强进行衰减相比,其精准度大大提高了。同时,本专利技术实施例中,光线从光源出发、经M个光线入射点入射再从该像素点出射的过程,模拟的是光线进入物体内部的散射(漫反射)过程。而光线进入物体内部的散射过程是真实环境下的物理现象,因此,本专利技术实施例的次表面散射效果更合理,更贴近真实环境,与现有技术相比,次表面散射效果的精确度大大提高了。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1a为深度映射原理示例图;图1b为本专利技术实施例提供的虚拟物体的像素点与三维模型表面的像素点的映射示例图;图2a为本专利技术实施例提供的应用场景示例图;图2b为本专利技术实施例提供的终端的计算机架构示例图;图3、图5、图6a、图6b、图8为本专利技术实施例提供的实时渲染次表面散射的方法的示例性流程图;图4a和图4b为本专利技术实施例提供的散射示意图;图4c为本专利技术实施例提供的投影纹理映射示意图;图7a为本专利技术实施例提供的划分示意图;图7b、图9a-图9d为本专利技术实施例提供的光线追踪示意图;图7c为本专利技术实施例提供的矢量示意图;图10为本专利技术实施例提供的渲染装置的示例性结构图。具体实施方式本专利技术可能使用的技术名词、简写或缩写如下:实时渲染:以图形处理器(GPU)为处理器,每秒钟达到24帧以上的画面渲染速度,被认为与操作者进行有效的交互;光线追踪:raytracing。也叫光束投射法,是在二维(2D)屏幕上呈现三维(3D)图像的方法。当光线照射到物体表面时,光线会经过一系列的衰减最后进入人眼,光线追踪就是要计算出光线发出后经过一系列衰减再进入人眼时的情况。光线跟踪程序数学地确定和复制光线的路线,但是方向相反(从眼睛返回光源),光线跟踪技术现被广泛用于计算机游戏和动画中;渲染预计算:在进行大量的离线计算,得到一些渲染用的常量,用于实时渲染计算。本专利技术提供的实时渲染次表面散射的方法及相关装置(实时渲染装置、终端)可应用于虚拟现实领域、计算机图形学、计算机动画等领域。例如,可应用于计算机动画领域游戏的实时渲染场景。上述实时渲染装置可以软件的形式应用于上述终端(诸如台式机、移动终端、ipad、平板电脑等)中,或以硬件(例如具体可为终端的控制器/处理器)的形式作为上述设备的组成部分。当以软件形式存在时,上述实时渲染装置具体可为一应用程序,例如手机APP、终端应用程序等,也可作为某应用程序或操作系统的组件。此外,实时渲染装置可应用于如图2a所示的应用场景,包括服务器101和终端102。其中,服务器101可用于提供游戏安装包,在游戏安装包中包括本文后续介绍的表面纹理,终端102可从服务器101处下载游戏安装包予以安装,并在游戏运行中,进行实时渲染。当然,终端102还可通过服务器101与其他终端交互,或者从服务器101中获取游戏运行过程中需要的数据。图2b示出了上述实时渲染装置或终端的一种通用计算机系统结构。上述计算机系统可包括总线、处理器1本文档来自技高网
...
实时渲染次表面散射的方法及相关装置

【技术保护点】
一种实时渲染次表面散射的方法,其特征在于,包括:在实时渲染过程中,获取虚拟物体对应的三维模型的表面纹理;所述表面纹理包括所述三维模型表面上的像素点的次表面散射纹理信息,所述次表面散射纹理信息包括所述像素点作为光线出射点时对应的M个光线入射点的空间信息,以及,每一光线入射点与所述像素点之间的光线传播距离;所述光线入射点位于所述三维模型的表面,所述M个光线入射点基于散射原理确定;M为大于1的正整数;根据所述光线入射点的空间信息,计算得到所述每一光线入射点对应的光强信息;根据每一光线入射点对应的光强信息以及其与所述像素点之间的光线传播距离进行光线衰减,得到每一光线入射点对应的衰减结果;对各光线入射点对应的衰减结果求和,得到所述像素点对应的光强信息;使用所述像素点对应的光强信息,对所述虚拟物体的表面上相应像素点进行渲染。

【技术特征摘要】
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.一种实时渲染装置,其特征在于,包括获取单元和渲染单元,其中:所述获取单元用...

【专利技术属性】
技术研发人员:刘皓
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1