一种渲染方法及装置与流程

文档序号:21369468发布日期:2020-07-04 04:46阅读:240来源:国知局
一种渲染方法及装置与流程

本发明涉及图像处理领域,尤其涉及一种渲染方法及装置。



背景技术:

近年来,随着玩家整体游戏审美水平的提升,玩家对游戏的美术表现和渲染效果的要求也越来越高,其中,由于游戏角色穿着的布料和衣服的材质在游戏整体表现效果上越来越高,玩家对游戏角色穿着的布料和衣服的渲染效果的要求也在逐步提升。

随着pbr等渲染技术流行,游戏的渲染效果也得到了逐步的提升,但是由于真实的布料结构非常复杂,即使采用当前流行的pbr技术,渲染结果也不理想,渲染的布料从视觉效果上看不真实,看起来更像金属或者塑料。



技术实现要素:

有鉴于此,本发明实施例公开了一种渲染方法及装置,提升了布料的渲染效果,使得渲染结果更加接近真实布料的视觉效果。

本发明实施例公开了一种渲染方法,包括:

当接收到待渲染对象的三维模型后,确定所述待渲染对象的布料类型;

调取所述待渲染对象的布料类型对应的通用渲染参数;

调取所述待渲染对象的布料类型对应的细节渲染参数;

基于所述通用渲染参数和细节渲染参数,对所述待渲染对象的三维模型进行渲染。

可选的,所述调取所述待渲染对象的布料类型对应的通用渲染参数,包括:

调取所述布料类型对应的光照参数;所述光照参数包括:直接光照diffuse参数、直接光照specular参数、间接光照diffuse参数和间接光照specular参数。

可选的,若所述待渲染对象的布料类型为皮质时,所述调取所述待渲染对象的布料类型对应的细节渲染参数,包括:

调取细节法线贴图参数;

所述细节法线贴图参数包括包含褶皱的低频法线细节贴图参数和/或包括细节纹路的高频法线细节贴图参数。

可选的,若所述待渲染对象的布料类型为丝绸时,所述调取所述待渲染对象的布料类型对应的细节渲染参数,包括:

调取anisotropicggx分布参数;

调取丝绸类型对应的直接光照diffuse参数和直接光照specular参数的配比;调取丝绸类型对应的细节粗糙噪声贴图参数。

可选的,所述调取anisotropicggx分布参数,包括:

调取anisotropicggx分布的通用参数;

确定anisotropicggx分布的粗糙度和各项异性权重;所述anisotropicggx分布的粗糙度和各项异性权重的关系用于表征anisotropicggx分布中不同方向的粗糙度。

可选的,若所述待渲染对象的布料类型为棉布或者绒布时,所述调取所述待渲染对象的布料类型对应的渲染参数,包括:

调取charlie分布参数;

调取棉布或者绒布类型对应的直接光照diffuse参数和直接光照specular参数的配比;调取所述棉布或者绒布类型对应的细节法线贴图参数;

调取棉布或者绒布类型对应的细节粗糙噪声图参数。

可选的,若所述待渲染对象的布料类型为毛料时,所述调取所述待渲染对象的布料类型对应的渲染参数包括:

调取半透明的叠加参数,以对所述待渲染对象的三维模型进行多次渲染,并在每次渲染时沿所述待渲染对象的三维模型的法线方向逐层次进行外扩操作;

调取所述待渲染对象各个层的颜色参数,以分别基于每个层的颜色参数对相应的层进行渲染;其中,所述各个层包括内层、外层和中间层,中间层的颜色参数是基于内层颜色和外层颜色进行插值计算得到的;

调取毛料类型对应的charlie分布参数。

可选的,还包括:

调取毛料类型对应的噪声图参数。

可选的,还包括:

调取毛发生长方向参数。

可选的,所述调取毛发生长方向包括:

获取毛发的走向流图;

对所述毛发的走向流图进行采样,得到走向图的方向;

将所述走向图的方向和所述待渲染对象的三维模型的法线方向相加,得到毛发生长方向参数。

可选的,若所述待渲染对象的布料类型为丝袜时,所述调取所述待渲染对象的布料类型对应的渲染参数,包括:

调取丝袜类型对应的通透程度参数,以使在渲染时基于所述通透程度对所述布料和所述布料内部皮肤作为同一种材质进行渲染;

调取视线方向和法线方向的点积结果和权重参数;

调取丝袜类型对应的粗糙度贴图参数。

可选的,若所述待渲染对象处于预设情景时,还包括:

获取预设情景下的布料的粗糙度参数和金属度参数;

提高直接光照specular参数和间接光照specular参数的权重;

降低直接光照diffuse参数和间接光照diffuse参数的权重。

可选的,还包括:

对所述待渲染对象的三维模型的噪声贴图进行采样;

基于采样结果,对所述待渲染对象的三维模型的粗糙度通道和金属度通道进行渲染。

可选的,还包括:

对所述待渲染对象的三维模型进行预处理,得到所述三维模型的模型自身空间坐标位置;

基于所述待渲染对象的三维模型的模型自身空间坐标的位置采样噪声参数,以对粗糙度参数和光照参数进行调整;所述光照参数包括:直接光照specular参数、直接光照diffuse参数、间接光照specular参数和间接光照diffuse参数。

可选的,还包括:

调整所述通用渲染参数和/或调整所述细节渲染参数。

可选的,包括:

调取布料的通用渲染参数;

从预先设置的所有的细节渲染参数中调取目标细节渲染参数;

将通用渲染参数和目标细节渲染参数进行组合;

设置通用渲染参数和目标细节渲染参数的组合结果与布料类型之间的关联关系。

本发明实施例还公开了一种渲染装置,包括:

布料类型确定单元,用于当接收到待渲染对象的三维模型后,确定所述待渲染对象的布料类型;

通用渲染参数调取单元,用于调取所述待渲染对象的布料类型对应的通用渲染参数;

细节渲染参数调取单元,用于调取所述待渲染对象的布料类型对应的细节渲染参数;

渲染单元,用于基于所述通用渲染参数和细节渲染参数,对所述待渲染对象的三维模型进行渲染。

本发明实施例公开了一种渲染方法,包括:当接收到待渲染对象的三维模型后,确定待渲染对象的布料类型;调取该待渲染对象的布料类型对应的通用渲染参数以及细节渲染参数,并基于通用渲染参数和细节渲染参数,对待渲染对象的三维模型进行渲染。由此,本方案中,将渲染对象按照布料的类型进行了划分,不同的类型对应不同的渲染参数,并且不同类型布料的渲染参数中考虑了布料的细节差异,这样避免了布料的渲染由于缺乏细节使得渲染结果不理想,并且提升了布料的渲染效果,使得渲染结果更加接近真实布料的视觉效果。

附图说明

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

图1示出了本发明实施例提供的一种渲染方法的流程示意图;

图2示出了本发明实施例中对于皮质布料添加细节参数渲染后的对比图;

图3示出了本实施例中关于调取待渲染对象的丝绸类型对应的细节渲染参数的过程的流程示意图;

图4示出了本发明实施例中关于调取待渲染对象的棉布或者绒布类型对应的细节渲染参数的过程;

图5示出了本发明实施例提供的棉布渲染的效果示意图;

图6示出了本发明实施例提供的绒布渲染的效果示意图;

图7示出了本发明实施例中添加了噪声参数后的效果示意图;

图8示出了本发明实施例中关于调取待渲染对象的毛料类型对应的渲染参数的过程示意图;

图9示出了本发明实施例在执行了在每次渲染时沿所述待渲染对象的三维模型的法线方向逐层次进行外扩操作后的效果示意图;

图10示出了本发明实施例分别基于每个层的颜色参数对相应的层进行渲染前后的对比示意图;

图11示出了本发明实施例公开的不同生长方向的毛发的效果示意图;

图12示出了本发明实施例中调取待渲染对象的丝袜类型的细节渲染参数的过程的示意图;

图13示出了不同厚度的丝袜的对比图;

图14示出了添加了不同粗糙度贴图后的丝袜效果图;

图15示出了本发明实施例提供的一种渲染方法的又一流程示意图;

图16示出了正常场景下的丝绸效果和湿润后的丝绸效果图;

图17示出了正常场景下皮质布料的效果和水珠下落的效果图;

图18示出了本发明实施例提供的一种渲染装置的结构示意图。

具体实施方式

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

参考图1,示出了本发明实施例提供的一种渲染方法的流程示意图,在本实施例中,该方法包括:

s101:当接收到待渲染对象的三维模型后,确定所述待渲染对象的布料类型;

本实施例中,真实世界中布料的类型包括很多,例如包括:皮质、丝绸、棉布、绒布、丝绸、丝袜等。为了让玩家的布料更加接近真实的材质,本实施例中将布料的类型进行了细分,不同的类型对应于不同的渲染方法。其中,具体细分到那种布料类型,本实施例中不进行限定。

本实施例中,当待渲染对象的三维模型输入到系统的同时,可以接收用户输入的布料的类型;或者在系统接收到待渲染对象的三维模型后,接收用户输入的布料的类型。

s102:调取所述待渲染对象的布料类型对应的通用渲染参数;

本实施例中,通用渲染参数用于对布料的通用效果进行渲染,其中通用的参数可以包括光照参数,该光照参数包括:直接光照diffuse参数、直接光照specular参数、间接光照diffuse参数和间接光照specular参数。

本实施例中,针对不同的布料类型,为了体现不同布料之间的差异,不同布料类型对应的通用参数的参数值也不同。

s103:调取所述待渲染对象的布料类型对应的细节渲染参数;

本实施例中,由于不同类型的布料在细节体现上不同,为了体现不同布料类型之间的差异,设计了体现每种布料类型细节渲染参数。

本实施例中,预先设置了布料类型与细节渲染参数的关联关系,基于该关联关系可以确定需要调取的布料类型对应的细节渲染参数,具体的,包括:

获取布料类型与细节渲染参数的关联关系;

基于布料类型与细节渲染参数的关联关系,确定所述布料类型对应的细节渲染参数。

进一步的,为了丰富布料的类型,可以基于实际需求,扩展布料类型的渲染方法,具体的,包括:

调取布料的通用渲染参数;

从预先设置的所有的细节渲染参数中调取目标细节渲染参数;

将通用渲染参数和目标细节渲染参数进行组合;

设置通用渲染参数和目标细节渲染参数的组合结果与布料类型之间的关联关系。

其中,关于布料类型与细节渲染参数的对应关系,下文中会进行详细的介绍,本实施例中,不再赘述。

s104:基于所述通用渲染参数和细节渲染参数,对所述待渲染对象的三维模型进行渲染。

本实施例中,调取的通用渲染参数和细节渲染参数的参数值,可以是预先设置好的,也可以是基于实际需求进行设置的,并基于最终的参数值对待渲染的三维模型进行渲染。

除此之外,在基于通过渲染参数和细节渲染参数对三维模型进行渲染之前,用户可以基于实际需求对上述参数进行调整,(例如改变某些参数的取值,添加某些参数或者去除某些参数等)。

本实施例中,当接收到待渲染对象的三维模型后,确定待渲染对象的布料类型;调取该待渲染对象的布料类型对应的通用渲染参数以及细节渲染参数,并基于通用渲染参数和细节渲染参数,对待渲染对象的三维模型进行渲染。由此,本方案中,将渲染对象按照布料的类型进行了划分,不同的类型对应不同的渲染参数,并且不同类型布料的渲染参数中考虑了布料的细节差异,这样避免了布料的渲染由于缺乏细节使得渲染结果不理想,并且提升了布料的渲染效果,使得渲染结果更加接近真实布料的视觉效果。

如下,针对不同的布料类型对应的细节渲染参数进行详细的介绍:

在布料类型为皮质时,调取该皮质布料对应的细节渲染参数的过程包括:

调取细节法线贴图参数;

其中,调取的细节发现贴图参数包括:包含褶皱的低频法线贴图参数和/或包含细节纹路的高频法线贴图参数。

本实施例中,法线贴图是通过在计算时,将模型法线转换为贴图中预存的法线,由于贴图的法线有变化,导致最终光照计算时造成了结果光照的明暗变化,形成了模型表现褶皱的“假象”。

本实施例中,提供了两种法线贴图:一种为包含褶皱的低频法线贴图参数,一种是包含细节纹路的高频法线贴图参数。

其中,这两种法线贴图可以同时使用,也可以单独使用。

具体的,在硬件性能较差或者远距离观察的情况下,采用低频法线贴图参数;在硬件性能较好或者近距离观察的情况下,采用包含褶皱的低频法线贴图参数和包含细节纹路的高频法线贴图参数,或者只采用包含细节纹路的高频法线贴图参数。

本实施例中,在通过采用包含褶皱的低频法线贴图参数和包含细节纹路的高频法线贴图参数进行渲染时,可以采用如下的方法为:

基于预设的混合通道图,将高频法线复制平铺在低频法线中;

调整法线平铺的大小。

本实施例中,通过调整法线平铺的大小,可以获得不同粗细的布料细节。

通过上述方法,极大的降低了法线内存消耗,实现了在移动平台的渲染。

参考图2,示出了皮质布料添加细节参数渲染后的对比图:其中,图2中最左边的图表示未添加细节参数渲染后的皮质布料,中间的图为添加包含褶皱的低频法线细节贴图参数渲染后的结果,最右边的图表示添加了包含细节纹路的高频法线细节贴图参数渲染后的结果。

本实施例中,通过细节法线贴图参数使得渲染结果更加接近真实的皮质布料,并且极大的降低了法线内存消耗,实现了在移动平台的渲染。

在布料类型为丝绸时,参考图3,调取待渲染对象的丝绸类型对应的细节渲染参数的过程包括:

s301:调取丝绸类型对应的直接光照diffuse参数和直接光照specular参数的配比;

申请人发现,丝绸布料不同于其它布料,为了更加贴近真实的丝绸布料表现,渲染后需要略微显示一点金属性,但是金属性不能太强,若是金属性太强会显的丝绸布料太僵硬,若完全不显示金属性,无法表现丝绸的特性,因此,为了达到上述目的,使得丝绸的渲染更加接近真实的丝绸布料的表现申请人对丝绸布料的渲染进行了如下的调整:

调整直接光照diffuse参数和直接光照specular参数的配比。

s302:调取anisotropicggx分布参数;

本实施例中,anisotropicggx分布,是通过将标准ggx在tangent方向和binormal方向给出不同的粗糙度,使得原本是同一聚集的圆形高光分布表现为沿着tangent方向或binormal方向成条带状分布的高光表现。通过anisotropicggx分布参数的渲染能够丝绸类型布料对各向异性分布的要求。

本实施例中,anisotropicggx分布可以通过如下的公式1)表示:

其中,d(m)表示ndf(英语全称:normaldistributionfunction,中文全称:微表面分布函数)的结果,其中,该项的计算结果对最终的表现影响最大;

x+(n·m)表示法线方向n与微表面法线方向m的点积值,该值取正。

αx:表示在x向的粗糙度,此处可以视为沿物体tangent方向粗糙度。

αy:表示在y向的粗糙度,此处可以视为沿物体binormal方向粗糙度。

(n·m)2:表示法线方向n与微表面法线方向m的点积值的平方。

(t·m)2:表示切线方向t(tangent)与微表面法线方向m的点积值的平方。

(b·m)2:表示副法线方向b(binormal)与微表面法线方向m的点积值的平方。

为了更方便美术调节,本方案将以上anisotropicggx分布进行了调整:

其中,αx=r2(1+anisotropic);αy=r2(1-anisotropic);

其中,r表示基本的粗糙度,anisotropic为各向异性权重;

其中,当anisotropic为0时,分布为标准ggx分布,而anisotropic为±1时即可分别表示沿tangent方向和binormal方向的各向异性分布光照。

本实施例中,为了得到不同的渲染结果,可以基于需求调整anisotropicggx分布的粗糙度和各向异性权重。

由此,调取anisotropicggx分布参数的过程,包括:

调取anisotropicggx分布的通用参数;

确定anisotropicggx分布的粗糙度和各项异性权重;所述anisotropicggx分布的粗糙度和各项异性权重的关系表示anisotropicggx分布中不同方向的粗糙度。

其中,除anisotropicggx分布的粗糙度和各项异性权重外,其余的参数为anisotropicggx分布的通用参数。

s303:调取丝绸类型对应的细节粗糙噪声贴图参数。

本实施例中,丝绸类型对应的细节粗糙度噪声贴图的目的在于,使得布料不同位置的粗糙度表现不一致。

不同的配比可以表现出不同丝绸的形态。

本实施例中,通过调整直接光照diffuse参数和直接光照specular参数的配比在体现丝绸金属性的同时,也保障了展示丝绸的真实布料形态,通过anisotropicggx分布实现了丝绸各向异性的分布表现,通过细节粗糙噪声贴图参数使得布料不同位置的粗糙度表现不一致。由此,通过上述对丝绸细节的调整,得到了更加符合真实的丝绸材质的渲染效果。

当布料类型为棉布或者绒布时,参考图4调取待渲染对象的棉布或者绒布类型对应的细节渲染参数的过程包括:

s401:调取charlie分布参数;

本实施例中,申请人发现,由于绒布和棉布等布料的内部结构较为复杂,导致绝大部分光并非被吸收,也并非在表面进行反射,而是随机方向的散射,为了实现绒布或者棉布材质的效果,申请人发现,charlie分布较为符合绒布和棉布的光分布特性。

其中,可以通过如下的公式2)表示charlie分布:

其中,x+(n·m)表示法线方向n与微表面法线方向m的点积值,该值取正;

α表示粗糙度;

(n·m)2:表示法线方向n与微表面法线方向m的点积值的平方。

本实施例中,d(m)的结果对棉绒布料的表现起决定的作用,而另一个影响的因子是gsf(英语全称:geometryshadowmaskfunction,中文全称:微表面阴影遮蔽函数),ndf和gsf二者的乘积为最终的光照结果。gsf项对最终的结果影响比较弱,但是计算消耗很大,标准charlie分布配套的gsf函数要用多个参数拟合插值曲线,不适用于移动平台。这里通过两种方案来进行简化,高配置情况下使用简化的曲线拟合gsf函数,而低配置下直接去掉了gsf项。这样在效果基本不受影响的情况下极大降低了整体计算的性能消耗。

除此之外,棉布或者绒布的间接光照若按照标准的ggx光照计算的话,会导致反射过强而不像布料,但是,若追求较好的效果,需要使用蒙特卡罗积分重新根据charlie分布计算间接反射球,或者是使用实时蒙特卡洛积分计算,但是这两种方式都会产生较高的功耗。

为了解决上述提出的问题,本实施例中进行了如下的调整:

获取直接光照计算得到的charlie分布ndf项;

基于该直接光照计算得到的charlie分布ndf项对标准ggx预烘焙的反射球进行调制。

s402:调取所述棉布或者绒布类型对应的直接光照diffuse参数和直接光照specular参数的配比;

本实施例中,由于棉布和绒布的差异,需要采用不同直接光照diffuse参数和直接光照specular参数的配比。

s403:调取所述棉布或者绒布类型对应的细节法线贴图参数;

s404:调取所述棉布或者绒布类型对应的细节粗糙噪声图参数;

本实施例中,为了克服棉布或者绒布的金属性,本实施例中,还调用了细节法线贴图参数和细节粗糙度噪声图参数。

其中,参考图5(棉布)-图6(绒布),最左边的图是未添加细节法线贴图参数和细节粗糙度噪声图参数的结果棉布和绒布效果,中间为添加了细节法线贴图参数和细节粗糙度噪声图参数的结果,最右边是对图5中间图放大后的效果。

进一步的,针对绒布类型的布料,由于绒布的毛是可以被抚摸导致整体毛料有不同的光感表现,还可以通过额外附加低频的粗糙度噪声贴图,调制粗糙度参数使之形成区域性的随机光照变化来实现这一特性。

如图7所示,为添加了噪声参数的渲染结果,最左边和中间的图为添加了不同噪声参数的渲染结果,最右边为图7的中间图放大后结果。

本实施例中,通过charlie分布可以得到更符合绒布和棉布的光分布特性的渲染结果,并且采用细节法线贴图参数和细节粗糙度噪声图参数增加了布料的细节表现。

在待渲染的布料为毛料类型时,参考图8,调取待渲染对象的毛料类型对应的渲染参数包括:

s801:调取半透明的叠加参数,以对所述待渲染对象的三维模型进行多次渲染,并在每次渲染时沿所述待渲染对象的三维模型的法线方向逐层次进行外扩操作;

本实施例中,在每次渲染时沿所述待渲染对象的三维模型的法线方向逐层次进行外扩操作后,该待渲染的三维模型会比原来更胖一些,如图9所示,图9中位于中间的图为扩展之后的结果。其中,在每一层扩展之后,再采样一张噪声贴图,并将一部分内容扣除,这样,可以得到如图9右边图的效果。

本实施例中,通过s801的参数进行渲染,即对三维模型进行多次渲染,并在每次渲染时沿待渲染对象的三维模型的法线方向进行外扩操作,这样实现了毛料蓬松或者致密的效果,进一步增加布料的丰富性。

s802:调取所述待渲染对象各个层的颜色参数,以分别基于每个层的颜色参数对相应的层进行渲染;其中,所述各个层包括内层、外层和中间层,中间层的颜色参数是基于内层颜色和外层颜色进行插值计算得到的;

本实施例中,真实的毛发,由于毛发之间会出现相互遮蔽的情况,处于根部的位置的毛发受光较少,而偏外部的毛发受光较多,形成了毛发非常丰富的层次。

为了展示真实毛发的效果,本实施例中,将不同层以不同的颜色进行渲染,其中,渲染时待渲染对象的三维模型的内层基于内层颜色参数进行渲染、所述待渲染对象的三维模型的外层基于所述外层颜色参数进行渲染,中间层基于内层颜色参数和外层颜色参数进行插值计算,并基于插值计算结果对中间层进行渲染。例如,内层可以使用深颜色进行渲染,外层可以使用较淡的颜色进行渲染。

参考图10,图10最左边的图为未通过s108渲染的图,中从左往右数第二、三、四是采用不同颜色对各个层进行渲染后的结果,由此可以看出,对不同的层采用不同颜色进行渲染后,可以得到更加有质感的毛发的效果。

s803:调取所述毛发类型对应的charlie分布参数。

本实施例中,上文中对charlie分布参数进行了详细的介绍,本实施例中不再赘述。

本实施例中,不同用户对毛发粗细有不同的要求,为了实现毛发粗细的调节,本实施例中添加了如下的方法:

调取毛料类型对应的噪声图参数。

其中,不同的噪声图可以实现对不同粗细的毛发的调节。

除此之外,噪声图参数中包括噪声图的平铺密度,可以通过调整噪声图的平铺密度tilling值,实现对毛发粗细的调整。

本实施例中,由于受到重力、风力等外力的影响,或者毛发本身生长方向的影响,毛发会处于不同的方向,本实施例中,为了展现毛发的不同方向,可以采用预设的毛发生长方向参数,其中,不同的参数形式可以表示不同的方向。

本实施例中,用户可以基于需求自定义毛发的生长方向,即可以自定义毛发的生长方向参数,具体的,包括:

获取毛发的走向流图;

对所述毛发的走向流图进行采样,得到走向图的方向;

将所述走向图的方向和所述待渲染对象的三维模型的法线方向相加,得到毛发生长方向参数。

参考图11,示出了不同生长方向的毛发的效果。

当布料类型为丝袜时,参考图12,示出了调取待渲染对象的丝袜类型的细节渲染参数的过程,包括:

s1201:调取所述丝袜类型对应的通透程度参数,以使在渲染时基于所述通透程度对所述布料和所述布料内部皮肤作为同一个材质进行渲染;

本实施例中,丝袜本身有一个纤维度的单位-丹尼尔值d,其中,丹尼尔值d越高,则表示丝袜本身越厚,反之丝袜越通透。

本实施例中,通过将丝袜以及内部的皮肤作为同一个材质进行渲染,实现了对丝袜通透程度的控制。

s1202:调取视线方向和法线方向的点积结果和权重参数。

本实施例中,丝袜本身还具有一个特性,丝袜的中心通透程度较高,但是丝袜的边缘总会呈现丝袜本身的颜色。本实施例中,通过调节视线方向和法线方向的点积结果和权重参数来实现该特性。

参考图13,从左到右数第一个图和第二图展示的不同厚度的丝袜,第三个图是对第一个图调整了视线方向和法线方向的点积结果的效果图,第四个图是对第二图调整了视线方向和法线方向的点积结果的效果图。

s1203:调取丝袜布料对应的粗糙度贴图参数。

本实施例中,不同颜色的丝袜或者不同形态的丝袜,还可以展示不同的效果。本实施例中可以通过添加丝袜的粗糙度贴图,实现对丝袜细节的展示。

参考图14,示出了添加了不同粗糙度贴图后的丝袜效果。

本实施例中,基于通透程度参数,对布料和布料内部皮肤作为同一材质进行渲染,这样实现了对丝袜的通透程度的控制。并且,通过调整视线方向和法线方向的点积结果参数,实现了丝袜中心通透程度较高,边缘呈现丝袜本身的颜色的特性。除此之外,通过它添加粗糙度贴图参数,实现了对丝袜细节的展示。

当待渲染对象处于预设情景下时,还可以对待渲染对象进行如下的操作,参考图15,示出了一种渲染方法的又一流程示意图,包括:

s1501:获取预设情景下的布料的粗糙度参数和金属度参数;

本实施例中,通过调整布料的粗糙度和金属度可以调整布料的粗糙程度,例如通过调整布料的粗糙度和金属度,提升布料的光滑度,进而实现布料湿润的表现。

s1502:提高直接光照specular参数和间接光照specular参数的权重;

s1503:降低直接光照diffuse参数和间接光照diffuse参数的权重。

本实施例中,提升直接光照和间接光照specular参数的权重使得反射更强,降低直接光照和间接光照diffuse参数的权重,可以模拟布料吸水后变暗的效果,,使得布料整体表现上有湿润的表现。

本实施例中,预设情景可以表示为布料处于湿润情况下,或者待渲染对象处于下雨的场景下。

参考图16,左右两张图分别为正常场景下的丝绸效果和湿润后的丝绸效果。

本实施例中,通过对上述参数的调整,实现了待渲染对象处于预设场景下的效果表现。

本实施例中,通过对布料的粗糙度参数和金属度参数、直接光照和间接光照specular参数、直接光照和间接光照diffuse参数的调整实现了在湿润或者下雨场景下的布料效果。

仅进一步的,在某些场景下,可能会出现水珠下滑的表现,例如在下雨的场景下。

为了实现水珠下滑的情景,本实施例中,还包括:

对所述待渲染对象的三维模型进行预处理,得到所述三维模型的模型自身空间(英文全称:objctspace)坐标位置;

基于所述待渲染对象的三维模型的模型自身空间坐标的位置采样噪声参数,以对粗糙度噪声和光照噪声进行调整;所述光照噪声包括:直接光照diffuse参数、直接光照diffuse参数、间接光照specular参数和间接光照diffuse参数。。

本实施例中,通过上述调整,既可以实现x轴(横向)的水珠效果,也可以实现y轴(纵向)的水珠效果,从而使得布料呈现湿润或者水渍的形态。

参考图17,示出了正常场景下皮质布料的效果和水珠下落的效果。

参考图18,示出了本发明实施例提供的一种渲染装置的结构示意图,包括:

布料类型确定单元1801,用于当接收到待渲染对象的三维模型后,确定所述待渲染对象的布料类型;

通用渲染参数调取单元1802,用于调取所述待渲染对象的布料类型对应的通用渲染参数;

细节渲染参数调取单元1803,用于调取所述待渲染对象的布料类型对应的细节渲染参数;

渲染单元1804,用于基于所述通用渲染参数和细节渲染参数,对所述待渲染对象的三维模型进行渲染。

可选的,所述通用渲染参数调取单元,用于:

调取所述布料类型对应的直接光照diffuse参数、直接光照specular参数、间接光照diffuse参数和间接光照specular参数。

可选的,若所述待渲染对象的布料类型为皮质时,所述细节渲染参数调取单元,用于:

调取细节法线贴图参数;

所述细节法线贴图参数包括包含褶皱的低频法线细节贴图参数和/或包括细节纹路的高频法线细节贴图参数。

可选的,若所述待渲染对象的布料类型为丝绸时,所述细节渲染参数调取单元,包括:

调取anisotropicggx分布参数;

调取丝绸类型对应的直接光照diffuse参数和直接光照specular参数的配比;调取丝绸类型对应的细节粗糙噪声贴图参数。

可选的,所述调取anisotropicggx分布参数,包括:

调取anisotropicggx分布的通用参数;

确定anisotropicggx分布的粗糙度和各项异性权重;所述anisotropicggx分布的粗糙度和各项异性权重的关系用于表征anisotropicggx分布中不同方向的粗糙度。

可选的,若所述待渲染对象的布料类型为棉布或者绒布时,所述细节渲染参数调取单元,包括:

调取charlie分布参数;

调取棉布或者绒布类型对应的直接光照diffuse参数和直接光照specular参数的配比;调取所述棉布或者绒布类型对应的细节法线贴图参数;

调取棉布或者绒布类型对应的细节粗糙噪声图参数。

可选的,若所述待渲染对象的布料类型为毛料时,所述细节渲染参数调取单元,包括:

调取半透明的叠加参数,以对所述待渲染对象的三维模型进行多次渲染,并在每次渲染时沿所述待渲染对象的三维模型的法线方向逐层次进行外扩操作;

调取所述待渲染对象各个层的颜色参数,以分别基于每个层的颜色参数对相应的层进行渲染;其中,所述各个层包括内层、外层和中间层,中间层的颜色参数是基于内层颜色和外层颜色进行插值计算得到的;

调取毛料类型对应的charlie分布参数。

可选的,所述细节渲染参数调取单元,还包括:

调取毛料类型对应的噪声图参数。

可选的,所述细节渲染参数调取单元,还包括:

调取毛发生长方向参数。

可选的,所述调取毛发生长方向参数包括:

获取毛发的走向流图;

对所述毛发的走向流图进行采样,得到走向图的方向;

将所述走向图的方向和所述待渲染对象的三维模型的法线方向相加,得到毛发生长方向参数。

可选的,若所述待渲染对象的布料类型为丝袜时,所述调取所述待渲染对象的布料类型对应的渲染参数,包括:

调取丝袜类型对应的通透程度参数,以使在渲染时基于所述通透程度对所述布料和所述布料内部皮肤作为同一种材质进行渲染;

调取视线方向和法线方向的点积结果和权重参数;

调取丝袜类型对应的粗糙度贴图参数。

可选的,若所述待渲染对象处于预设情景时,还包括:

场景参数调整单元,用于

获取预设情景下的布料的粗糙度参数和金属度参数;

提高直接光照specular参数和间接光照specular参数的权重;

降低直接光照diffuse参数和间接光照diffuse参数的权重。

可选的,所述场景参数调整单元,还包括:

对所述待渲染对象的三维模型的噪声贴图进行采样;

基于采样结果,对所述待渲染对象的三维模型的粗糙度通道和金属度通道进行渲染。

可选的,所述场景参数调整单元,还包括:

对所述待渲染对象的三维模型进行预处理,得到所述三维模型的模型自身空间坐标位置;

基于所述待渲染对象的三维模型的模型自身空间坐标的位置采样噪声参数,以对粗糙度参数和光照参数进行调整;所述光照参数包括:直接光照specular参数、直接光照diffuse参数、间接光照specular参数和间接光照diffuse参数进行调制。

可选的,还包括:

参数调整单元,用于调整所述通用渲染参数和/或调整所述细节渲染参数。

可选的,扩展单元,用于:

调取布料的通用渲染参数;

从预先设置的所有的细节渲染参数中调取目标细节渲染参数;

将通用渲染参数和目标细节渲染参数进行组合;

设置通用渲染参数和目标细节渲染参数的组合结果与布料类型之间的关联关系。

通过本实施例的装置,当接收到待渲染对象的三维模型后,确定待渲染对象的布料类型;调取该待渲染对象的布料类型对应的通用渲染参数以及细节渲染参数,并基于通用渲染参数和细节渲染参数,对待渲染对象的三维模型进行渲染。由此,本方案中,将渲染对象按照布料的类型进行了划分,不同的类型对应不同的渲染参数,并且不同类型布料的渲染参数中考虑了布料的细节差异,这样避免了布料的渲染由于缺乏细节使得渲染结果不理想,并且提升了布料的渲染效果,使得渲染结果更加接近真实布料的视觉效果。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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