一种基于物理着色的方法及系统与流程

文档序号:12472211阅读:169来源:国知局
一种基于物理着色的方法及系统与流程

本发明涉及计算机图形学领域,特别涉及一种基于物理着色的方法及系统。



背景技术:

基于物理着色的光照模型能够大幅度提高材质渲染的真实感,同时为美术人员进行材质开发时找到对应的物理参数依据;目前已经广泛应用于次时代游戏引擎中。

随着手机等移动平台的普及、移动平台能够实现游戏,ar应用场景,因此对在移动平台上实现高质量三维渲染效果有了迫切的需求。但是目前基于物理着色的光照模型由于在移动平台中运行效率较低,在手机等移动平台上还没有普及。因此,如何提升基于物理着色的光照模型的效率,使其可以在手机等移动平台上实现。



技术实现要素:

本发明的目的是提供一种基于物理着色的方法及系统,提高基于物理着色的光照模型的效率,提高了渲染效率,使其可以在手机等移动平台上实现普及。

为解决上述技术问题,本发明提供一种基于物理着色的方法,包括:

利用环境纹理图片生成具有微表面反射项的环境光纹理序列;

根据所述环境光纹理序列,计算环境光纹理项;

利用加入模拟的高动态范围光照项对所述环境光纹理项进行对比度调节,得到初始反射颜色;

根据所述初始反射颜色,利用菲涅尔效应反射项计算最终反射颜色;

将所述最终反射颜色和漫反射颜色相加得到最终光照颜色。

可选的,利用环境纹理图片生成具有微表面反射项的环境光纹理序列,包括:

将环境纹理图片进行镜像处理,并将两个镜像后的图片分别拼接在环境纹理图片左右两侧,形成纹理图片;

对所述纹理图片进行预定次数高斯滤波处理,生成对应的高斯处理纹理图片;

对全部高斯处理纹理图片进行金字塔重采样;

选取重采样后的图片中的中心预定区域,生成一组正对不同粗糙度的环境光纹理序列。

可选的,根据所述环境光纹理序列,计算环境光纹理项,包括:

计算相机向量相对于表面法线的反射向量,并计算反射向量对应的环境纹理坐标;

利用所述环境光纹理序列,根据材质粗糙度选择反射向量对应的环境纹理;

利用所述环境纹理坐标和所述环境纹理进行采样,得到环境光纹理项。

可选的,利用加入模拟的高动态范围光照项对所述环境光纹理项进行对比度调节,得到初始反射颜色,包括:

计算所述环境光纹理项和所述环境纹理的平均颜色;

利用加入模拟的高动态范围光照项,调节所述平均颜色的对比度得到初始反射颜色。

可选的,根据所述初始反射颜色,利用菲涅尔效应反射项计算最终反射颜色,包括:

利用公式frenel+(1.0-frenel)*pow((1.0-reflectDir),5.0)计算菲涅尔效应强度值;

将所述菲涅尔效应强度值与所述初始反射颜色相乘得到最终反射颜色;

其中,frenel为菲涅尔效应反射项,reflectDir为反射向量,pow为指幂函数。

本发明还提供一种基于物理着色的系统,包括:

预处理模块,用于利用环境纹理图片生成具有微表面反射项的环境光纹理序列;

第一计算模块,用于根据所述环境光纹理序列,计算环境光纹理项;

第二计算模块,用于利用加入模拟的高动态范围光照项对所述环境光纹理项进行对比度调节,得到初始反射颜色;

第三计算模块,用于根据所述初始反射颜色,利用菲涅尔效应反射项计算最终反射颜色;

第四计算模块,用于将所述最终反射颜色和漫反射颜色相加得到最终光照颜色。

可选的,所述预处理模块,包括:

图片处理单元,用于将环境纹理图片进行镜像处理,并将两个镜像后的图片分别拼接在环境纹理图片左右两侧,形成纹理图片;

高斯滤波单元,用于对所述纹理图片进行预定次数高斯滤波处理,生成对应的高斯处理纹理图片;

金字塔采样单元,用于对全部高斯处理纹理图片进行金字塔重采样;

环境光纹理序列生成单元,用于选取重采样后的图片中的中心预定区域,生成一组正对不同粗糙度的环境光纹理序列。

可选的,所述第一计算模块,包括:

坐标计算单元,用于计算相机向量相对于表面法线的反射向量,并计算反射向量对应的环境纹理坐标;

环境纹理确定单元,用于利用所述环境光纹理序列,根据材质粗糙度选择反射向量对应的环境纹理;

环境光纹理项确定单元,用于利用所述环境纹理坐标和所述环境纹理进行采样,得到环境光纹理项。

可选的,所述第二计算模块,包括:

平均颜色计算单元,用于计算所述环境光纹理项和所述环境纹理的平均颜色;

初始反射颜色计算单元,用于利用加入模拟的高动态范围光照项,调节所述平均颜色的对比度得到初始反射颜色。

可选的,所述第三计算模块,包括:

菲涅尔效应强度计算单元,用于利用公式frenel+(1.0-frenel)*pow((1.0-reflectDir),5.0)计算菲涅尔效应强度值;

最终反射颜色计算单元,用于将所述菲涅尔效应强度值与所述初始反射颜色相乘得到最终反射颜色;

其中,frenel为菲涅尔效应反射项,reflectDir为反射向量,pow为指幂函数。

本发明所提供的一种基于物理着色的方法,包括:利用环境纹理图片生成具有微表面反射项的环境光纹理序列;根据所述环境光纹理序列,计算环境光纹理项;利用加入模拟的高动态范围光照项对所述环境光纹理项进行对比度调节,得到初始反射颜色;根据所述初始反射颜色,利用菲涅尔效应反射项计算最终反射颜色;将所述最终反射颜色和漫反射颜色相加得到最终光照颜色;

可见,该方法通过环境光纹理序列降低采样次数,利用加入模拟的高动态范围光照项减少纹理单元数量,加快高动态范围光照项的模拟;因此能够提高基于物理着色的光照模型的效率,提高了渲染效率,使其可以在手机等移动平台上实现普及;本发明还提供了一种基于物理着色的系统,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例所提供的基于物理着色的方法的流程图;

图2为本发明实施例所提供的生成环境光纹理序列的流程图;

图3为本发明实施例所提供的基于物理着色的系统的结构框图。

具体实施方式

本发明的核心是提供一种基于物理着色的方法及系统,提高基于物理着色的光照模型的效率,提高了渲染效率,使其可以在手机等移动平台上实现普及。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

由于移动平台由于其硬件计算能力等限制,使得目前基于物理着色的光照模型在移动平台上的运行会出现效率较低的缺点,从而导致基于物理着色的光照模型在手机等移动平台上还没有普及。本实施例提出一种基于物理着色的高效解决方案,为在移动平台进行高质量渲染提供了基础。具体请参考图1,图1为本发明实施例所提供的基于物理着色的方法的流程图;该方法可以包括:

S100、利用环境纹理图片生成具有微表面反射项的环境光纹理序列;

具体的,由于传统的微表面反射项的构建需要在每个点上对环境光源进行多次采样;这样的采样过程显然并不适用于移动平台这样的硬件基础上。因此,本实施例为了提高微表面反射项的环境光纹理的获取速度,采用预先生成带有微表面反射项的环境光纹理的方案,将采样次数降低到一次,从而提高效率。

其中,预处理环境纹理过程可以是:预先定义从低到高不同等级的粗糙度,每一级粗糙对应一个环境纹理,对环境纹理进行左右边缘的镜像处理,得到的环境纹理中有三个并列的环境纹理,左右两个环境纹理分别是中间纹理的镜像。对不同粗糙度的环境纹理进行高斯滤波,然后进行金字塔重采样。从环境纹理中切割出中间的部分,最终得到一组正对不同粗糙度的环境纹理序列。

即可选的,请参考图2,该步骤的具体过程可以是:

S200、将环境纹理图片进行镜像处理,并将两个镜像后的图片分别拼接在环境纹理图片左右两侧,形成纹理图片;

其中,这里的两个镜像图片一个拼接在环境纹理图片左边,一个拼接在环境纹理图片右边。

S210、对所述纹理图片进行预定次数高斯滤波处理,生成对应的高斯处理纹理图片;

S220、对全部高斯处理纹理图片进行金字塔重采样;

S230、选取重采样后的图片中的中心预定区域,生成一组正对不同粗糙度的环境光纹理序列。

其中,本实施例中并不对高斯滤波处理的预定次数进行限定,一般情况进行10次高斯滤波处理即可。中心预定区域是指截取重采样后的图片中的中央位置作为中心预定区域。本实施例并不限定中心预定区域的大小和形状。一般情况下可以截取图片中间1/3的区域作为中心预定区域。依据该中心预定区域作为该图片最终的环境纹理。最终生成的一组正对不同粗糙度的环境光纹理序列中环境光纹理数量与预定次数相对应。

具体的,以1024*512的全景环境纹理图片作为原始素材为例说明上述处理过程(其中,该过程在iphone平台上通过openGL实施):

使用1024*512的全景环境纹理图片作为原始素材,镜像后拼接在原始图片左右两侧,生成3072*512的纹理图片。对3072*512的纹理图片进行10次高斯滤波处理,高斯核半径从0.5像素到50像素递增,生成10张纹理图片。对10张图片进行金字塔从采样,得到分辨率从3072*512到48*8递减的10张图片。截取图片中间1/3的区域作为最终的环境纹理,最终生成一组正对不同粗糙度的环境纹理序列。

S110、根据所述环境光纹理序列,计算环境光纹理项;

具体的,根据粗糙度选择最近的环境纹理(也即环境光纹理),即可以依据环境光纹理序列确定各粗糙度的环境纹理,并对反射光方向上的环境纹理进行采样,得到投影平面上一个像素点的原始光照颜色(spec)即环境光纹理项。

可选的,根据所述环境光纹理序列,计算环境光纹理项可以包括:

计算相机向量相对于表面法线的反射向量,并计算反射向量对应的环境纹理坐标;

利用所述环境光纹理序列,根据材质粗糙度选择反射向量对应的环境纹理;

利用所述环境纹理坐标和所述环境纹理进行采样,得到环境光纹理项。

具体的,以1024*512的全景环境纹理图片作为原始素材为例说明上述处理过程(其中,该过程在iphone平台上通过openGL实施):

计算相机向量相对于表面法线的反射向量(reflectDir),计算反射向量对应的环境纹理坐标。依据材质粗糙度选择对应的环境纹理。依据纹理坐标和环境纹理进行采样,得到投影平面上一个像素点的原始光照颜色(spec)。

S120、利用加入模拟的高动态范围光照项(hdr)对所述环境光纹理项进行对比度调节,得到初始反射颜色;

具体的,由于传统的高动态范围光照纹理要使用单个通道16位的半浮点类型作为纹理单元。由于本实施例中的方案要在移动平台上实现因此采用8位的纹理,通过调节对比度来模拟高动态范围光照。对步骤S110的结果进行对比度调节。

可选的,利用加入模拟的高动态范围光照项对所述环境光纹理项进行对比度调节,得到初始反射颜色可以包括:

计算所述环境光纹理项和所述环境纹理的平均颜色;

利用加入模拟的高动态范围光照项,调节所述平均颜色的对比度得到初始反射颜色。

具体的,以1024*512的全景环境纹理图片作为原始素材为例说明上述处理过程(其中,该过程在iphone平台上通过openGL实施):

根据步骤S110的结果和环境纹理的平均颜色,调节对比,模拟hdr效果,得到结果(hdrSpec)。

S130、根据所述初始反射颜色,利用菲涅尔效应反射项计算最终反射颜色;

具体的,由于传统的菲涅尔效应反射项构建需要对针对不同物理材质进行模型构建;本实施例为了进一步提高渲染效率优选的可以使用一个多项式简化菲涅尔效应的模型对步骤S120的结果进行处理,得到最终反射颜色。

优选的,根据所述初始反射颜色,利用菲涅尔效应反射项计算最终反射颜色可以包括:

利用公式frenel+(1.0-frenel)*pow((1.0-reflectDir),5.0)计算菲涅尔效应强度值;其中,frenel为菲涅尔效应反射项,reflectDir为反射向量,pow为指幂函数,pow(x,y)表示x的y次方。

将所述菲涅尔效应强度值与所述初始反射颜色相乘得到最终反射颜色。

具体的,根据菲涅尔强度和反射向量计算菲涅尔效应强度:frenel+(1.0-frenel)*pow((1.0-reflectDir),5.0)。将菲涅尔效应强度和步骤S120的结果的乘积为最终反射颜色。

S140、将所述最终反射颜色和漫反射颜色相加得到最终光照颜色。

基于上述技术方案,本发明实施例提的基于物理着色的方法,通过环境光纹理序列降低采样次数,利用加入模拟的高动态范围光照项减少纹理单元数量,加快高动态范围光照项的模拟,使用多项式简化菲涅尔效应的模型计算最终反射颜色,实现多次渲染效率的提升;因此能够提高基于物理着色的光照模型的效率,提高了渲染效率,使其可以在手机等移动平台上实现普及。

下面对本发明实施例提供的基于物理着色的系统进行介绍,下文描述的基于物理着色的系统与上文描述的基于物理着色的方法可相互对应参照。

请参考图3,图3为本发明实施例所提供的基于物理着色的系统的结构框图;该系统可以包括:

预处理模块100,用于利用环境纹理图片生成具有微表面反射项的环境光纹理序列;

第一计算模块200,用于根据所述环境光纹理序列,计算环境光纹理项;

第二计算模块300,用于利用加入模拟的高动态范围光照项对所述环境光纹理项进行对比度调节,得到初始反射颜色;

第三计算模块400,用于根据所述初始反射颜色,利用菲涅尔效应反射项计算最终反射颜色;

第四计算模块500,用于将所述最终反射颜色和漫反射颜色相加得到最终光照颜色。

基于上述实施例,所述预处理模块100可以包括:

图片处理单元,用于将环境纹理图片进行镜像处理,并将两个镜像后的图片分别拼接在环境纹理图片左右两侧,形成纹理图片;

高斯滤波单元,用于对所述纹理图片进行预定次数高斯滤波处理,生成对应的高斯处理纹理图片;

金字塔采样单元,用于对全部高斯处理纹理图片进行金字塔重采样;

环境光纹理序列生成单元,用于选取重采样后的图片中的中心预定区域,生成一组正对不同粗糙度的环境光纹理序列。

基于上述任意实施例,所述第一计算模块200可以包括:

坐标计算单元,用于计算相机向量相对于表面法线的反射向量,并计算反射向量对应的环境纹理坐标;

环境纹理确定单元,用于利用所述环境光纹理序列,根据材质粗糙度选择反射向量对应的环境纹理;

环境光纹理项确定单元,用于利用所述环境纹理坐标和所述环境纹理进行采样,得到环境光纹理项。

基于上述任意实施例,所述第二计算模块300可以包括:

平均颜色计算单元,用于计算所述环境光纹理项和所述环境纹理的平均颜色;

初始反射颜色计算单元,用于利用加入模拟的高动态范围光照项,调节所述平均颜色的对比度得到初始反射颜色。

基于上述任意实施例,所述第三计算模块400可以包括:

菲涅尔效应强度计算单元,用于利用公式frenel+(1.0-frenel)*pow((1.0-reflectDir),5.0)计算菲涅尔效应强度值;其中,frenel为菲涅尔效应反射项,reflectDir为反射向量,pow为指幂函数。

最终反射颜色计算单元,用于将所述菲涅尔效应强度值与所述初始反射颜色相乘得到最终反射颜色。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的一种基于物理着色的方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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