一种模型勾线的渲染方法和装置转让专利

申请号 : CN202010609480.7

文献号 : CN111724463B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 熊鑫丁许朋

申请人 : 苏州幻塔网络科技有限公司

摘要 :

本申请涉及一种模型勾线的渲染方法和装置,其中,该方法包括:对待渲染模型的凹线执行预处理操作,得到预处理模型,其中,凹线是在待渲染模型的正面上夹角小于目标角度的两个面相交形成的线;渲染预处理模型的正面模型;对预处理模型上的顶点进行偏移,得到偏移模型,其中,预处理操作使得偏移模型在凹线处形成允许被渲染出的凹线面;渲染偏移模型的反面模型,其中,反面模型在正面模型上形成正面模型的模型勾线。本申请解决了相关技术中无法在模型上的凹面处渲染出勾线的技术问题。

权利要求 :

1.一种模型勾线的渲染方法,其特征在于,包括:对待渲染模型的凹线执行预处理操作,得到预处理模型,其中,所述凹线是在所述待渲染模型的正面上夹角小于目标角度的两个面相交形成的线;

渲染所述预处理模型的正面模型;

对所述预处理模型上的顶点进行偏移,得到偏移模型,其中,所述预处理操作使得所述偏移模型在所述凹线处形成允许被渲染出的凹线面;

渲染所述偏移模型的反面模型,其中,所述反面模型在所述正面模型上形成所述正面模型的模型勾线;

其中,对待渲染模型的凹线执行预处理操作,得到所述预处理模型包括:在所述待渲染模型上获取所述凹线;

在与所述凹线之间的距离为目标距离的所述待渲染模型的表面构建偏移线;

将所述凹线上的第一顶点的世界偏移权重设置为第一参数值,并将所述偏移线上的第二顶点的世界偏移权重设置为第二参数值,得到所述预处理模型,其中,所述第一参数值与所述第二参数值之间的差值用于控制所述凹线上渲染出的勾线的宽度。

2.根据权利要求1所述的方法,其特征在于,在与所述凹线之间的距离为目标距离的所述待渲染模型的表面构建偏移线包括:在第一表面和第二表面上与所述凹线之间的距离为所述目标距离的位置添加所述第二顶点,其中,所述第一表面和所述第二表面是形成所述凹线的两个面;

将所述第一表面上的所述第二顶点依次连接,并将所述第二表面上的所述第二顶点依次连接,得到两条所述偏移线。

3.根据权利要求1所述的方法,其特征在于,在与所述凹线之间的距离为目标距离的所述待渲染模型的表面构建偏移线包括:在第一表面上与所述凹线之间的距离为所述目标距离的位置对所述第一表面进行切分,并在第二表面上与所述凹线之间的距离为所述目标距离的位置对所述第二表面进行切分,得到两条所述偏移线,其中,所述第一表面和所述第二表面是形成所述凹线的两个面;

在两条所述偏移线上确定所述第二顶点。

4.根据权利要求1所述的方法,其特征在于,对所述预处理模型上的顶点进行偏移,得到所述偏移模型包括:

将所述预处理模型上的每个顶点的法线与所述每个顶点对应的世界偏移权重进行叠加,得到偏移法线;

将所述每个顶点沿所述偏移法线偏移目标偏移值,得到所述偏移模型。

5.根据权利要求4所述的方法,其特征在于,将所述预处理模型上的每个顶点的法线与所述每个顶点对应的世界偏移权重进行叠加,得到偏移法线包括:获取所述每个顶点的法线;

将所述每个顶点的法线与所述每个顶点对应的世界偏移权重相乘,得到所述偏移法线。

6.根据权利要求4所述的方法,其特征在于,将所述每个顶点沿所述偏移法线偏移目标偏移值,得到所述偏移模型包括:将所述每个顶点的所述偏移法线与所述目标偏移值相乘,得到所述每个顶点的世界位置偏移参数,其中,所述目标偏移值用于指示所述模型勾线的线宽;

将所述每个顶点按照所述每个顶点对应的所述世界位置偏移参数进行移动,得到所述偏移模型。

7.一种模型勾线的渲染装置,其特征在于,包括:预处理模块,用于对待渲染模型的凹线执行预处理操作,得到预处理模型,其中,所述凹线是在所述待渲染模型的正面上夹角小于目标角度的两个面相交形成的线;

第一渲染模块,用于渲染所述预处理模型的正面模型;

偏移模块,用于对所述预处理模型上的顶点进行偏移,得到偏移模型,其中,所述预处理操作使得所述偏移模型在所述凹线处形成允许被渲染出的凹线面;

第二渲染模块,用于渲染所述偏移模型的反面模型,其中,所述反面模型在所述正面模型上形成所述正面模型的模型勾线;

其中,所述预处理模块包括:

获取单元,用于在所述待渲染模型上获取所述凹线;

构建单元,用于在与所述凹线之间的距离为目标距离的所述待渲染模型的表面构建偏移线;

设置单元,用于将所述凹线上的第一顶点的世界偏移权重设置为第一参数值,并将所述偏移线上的第二顶点的世界偏移权重设置为第二参数值,得到所述预处理模型,其中,所述第一参数值与所述第二参数值之间的差值用于控制所述凹线上渲染出的勾线的宽度。

8.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至6任一项中所述的方法。

9.一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序执行上述权利要求1至6任一项中所述的方法。

说明书 :

一种模型勾线的渲染方法和装置

技术领域

[0001] 本申请涉及计算机领域,尤其涉及一种模型勾线的渲染方法和装置。

背景技术

[0002] 在模型渲染技术中,有时需要对模型的勾线进行渲染,勾线是能够勾勒出模型轮廓的线。但目前渲染勾线的方式只能够渲染出模型边缘上的勾线,对于模型内部存在凹面
的情况却无法渲染出凹面的勾线,严重影响了模型的显示效果。
[0003] 针对上述的问题,目前尚未提出有效的解决方案。

发明内容

[0004] 本申请提供了一种模型勾线的渲染方法和装置,以至少解决相关技术中无法在模型上的凹面处渲染出勾线的技术问题。
[0005] 根据本申请实施例的一个方面,提供了一种模型勾线的渲染方法,包括:
[0006] 对待渲染模型的凹线执行预处理操作,得到预处理模型,其中,所述凹线是在所述待渲染模型的正面上夹角小于目标角度的两个面相交形成的线;
[0007] 渲染所述预处理模型的正面模型;
[0008] 对所述预处理模型上的顶点进行偏移,得到偏移模型,其中,所述预处理操作使得所述偏移模型在所述凹线处形成允许被渲染出的凹线面;
[0009] 渲染所述偏移模型的反面模型,其中,所述反面模型在所述正面模型上形成所述正面模型的模型勾线。
[0010] 根据本申请实施例的另一方面,还提供了一种模型勾线的渲染装置,包括:
[0011] 预处理模块,用于对待渲染模型的凹线执行预处理操作,得到预处理模型,其中,所述凹线是在所述待渲染模型的正面上夹角小于目标角度的两个面相交形成的线;
[0012] 第一渲染模块,用于渲染所述预处理模型的正面模型;
[0013] 偏移模块,用于对所述预处理模型上的顶点进行偏移,得到偏移模型,其中,所述预处理操作使得所述偏移模型在所述凹线处形成允许被渲染出的凹线面;
[0014] 第二渲染模块,用于渲染所述偏移模型的反面模型,其中,所述反面模型在所述正面模型上形成所述正面模型的模型勾线。
[0015] 根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。
[0016] 根据本申请实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方
法。
[0017] 在本申请实施例中,采用对待渲染模型的凹线执行预处理操作,得到预处理模型,其中,凹线是在待渲染模型的正面上夹角小于目标角度的两个面相交形成的线;渲染预处
理模型的正面模型;对预处理模型上的顶点进行偏移,得到偏移模型,其中,预处理操作使
得偏移模型在凹线处形成允许被渲染出的凹线面;渲染偏移模型的反面模型,其中,反面模
型在正面模型上形成正面模型的模型勾线的方式,通过对待渲染模型的凹线执行预处理操
作,使得对预处理模型上的顶点进行偏移得到的偏移模型上形成凹线面,该凹线面能够在
渲染时被渲染出,从而在渲染偏移模型的反面模型时在凹线上也能够形成模型勾线,达到
了在正面模型的边缘和凹面上均形成勾线的目的,从而实现了在模型上的凹面处渲染出勾
线的技术效果,进而解决了相关技术中无法在模型上的凹面处渲染出勾线的技术问题。

附图说明

[0018] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
[0019] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而
言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0020] 图1是根据本申请实施例的模型勾线的渲染方法的硬件环境的示意图;
[0021] 图2是根据本申请实施例的一种可选的模型勾线的渲染方法的流程图;
[0022] 图3是根据本申请实施例的一种模型勾线的渲染示意图;
[0023] 图4是根据本申请实施例的一种构建偏移线的示意图;
[0024] 图5是根据本申请实施例的一种引擎中的材质节点的示意图;
[0025] 图6是根据本申请可选实施例的勾线渲染方式的示意图;
[0026] 图7是根据本申请实施例的一种可选的模型勾线的渲染装置的示意图;
[0027] 图8是根据本申请实施例的一种终端的结构框图。

具体实施方式

[0028] 为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是
本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人
员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范
围。
[0029] 需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用
的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或
描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆
盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于
清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品
或设备固有的其它步骤或单元。
[0030] 根据本申请实施例的一方面,提供了一种模型勾线的渲染的方法实施例。
[0031] 可选地,在本实施例中,上述模型勾线的渲染方法可以应用于如图1所示的由终端101和服务器103所构成的硬件环境中。如图1所示,服务器103通过网络与终端101进行连
接,可用于为终端或终端上安装的客户端提供服务(如游戏服务、应用服务等),可在服务器
上或独立于服务器设置数据库,用于为服务器103提供数据存储服务,上述网络包括但不限
于:广域网、城域网或局域网,终端101并不限定于PC、手机、平板电脑等。本申请实施例的模
型勾线的渲染方法可以由服务器103来执行,也可以由终端101来执行,还可以是由服务器
103和终端101共同执行。其中,终端101执行本申请实施例的模型勾线的渲染方法也可以是
由安装在其上的客户端来执行。
[0032] 图2是根据本申请实施例的一种可选的模型勾线的渲染方法的流程图,如图2所示,该方法可以包括以下步骤:
[0033] 步骤S202,对待渲染模型的凹线执行预处理操作,得到预处理模型,其中,所述凹线是在所述待渲染模型的正面上夹角小于目标角度的两个面相交形成的线;
[0034] 步骤S204,渲染所述预处理模型的正面模型;
[0035] 步骤S206,对所述预处理模型上的顶点进行偏移,得到偏移模型,其中,所述预处理操作使得所述偏移模型在所述凹线处形成允许被渲染出的凹线面;
[0036] 步骤S208,渲染所述偏移模型的反面模型,其中,所述反面模型在所述正面模型上形成所述正面模型的模型勾线。
[0037] 可选地,在本实施例中,上述模型勾线的渲染方法可以但不限于使用渲染引擎来实现。或者也可以不使用引擎,可以使用对应的代码或者材质编辑器对上述过程进行复现。
[0038] 通过上述步骤S202至步骤S208,通过对待渲染模型的凹线执行预处理操作,使得对预处理模型上的顶点进行偏移得到的偏移模型上形成凹线面,该凹线面能够在渲染时被
渲染出,从而在渲染偏移模型的反面模型时在凹线上也能够形成模型勾线,达到了在正面
模型的边缘和凹面上均形成勾线的目的,从而实现了在模型上的凹面处渲染出勾线的技术
效果,进而解决了相关技术中无法在模型上的凹面处渲染出勾线的技术问题。
[0039] 在步骤S202提供的技术方案中,待渲染模型可以但不限于包括游戏中的虚拟模型(游戏角色、游戏道具、游戏背景等等),动画模型等等。
[0040] 可选地,在本实施例中,凹线是在待渲染模型的正面上夹角小于目标角度的两个面相交形成的线。目标角度可以但不限于为180°,即夹角小于平角的两个面相交形成的线
可以称为凹线。
[0041] 可选地,在本实施例中,预处理操作可以但不限于包括构建偏移线,设置世界偏移权重等能够使得在对待渲染模型进行偏移得到膨胀的偏移模型时在偏移模型上的凹线处
形成允许被渲染出的凹线面的操作。
[0042] 可选地,在本实施例中,可以但不限于通过双pass(两次绘制)的渲染方式对待渲染模型进行勾线渲染。
[0043] 在双pass的渲染方式中,一个pass渲染模型的正面,得到正面模型,另一个pass渲染膨胀后的模型的反面,得到反面模型,渲染时两个模型位置相同,由于反面模型进行了膨
胀处理(即顶点的偏移),反面模型的绝大部分会被正面模型遮挡,未被遮挡的部分就会在
正面模型上形成勾线效果。在本实施例中,由于对待渲染模型进行了预处理操作,使得顶点
偏移后的得到的偏移模型在模型的凹线处形成了一个能够被渲染出的凹线面,在渲染反面
模型时这个凹线面被渲染出来,并且不会被正面模型遮挡到,从而在正面模型的凹线处也
形成了勾线效果。
[0044] 在步骤S204提供的技术方案中,上述双pass的渲染方式中的一个pass用来渲染预处理模型的正面模型。
[0045] 可选地,在本实施例中,渲染预处理模型的正面模型的过程可以但不限于使用正面剔除Cull Back的方式对预处理模型进行正常的颜色渲染。
[0046] 在步骤S206提供的技术方案中,对预处理模型上的顶点进行偏移处理得到膨胀的偏移模型时,由于对待渲染模型的凹线进行了预处理操作,因此会在凹线处绘制出一个面,
这个凹线面是能够被渲染出的,从而使得在渲染过程中在凹线处也能够得到勾线效果。
[0047] 在步骤S208提供的技术方案中,上述双pass的渲染方式中的另一个pass用来渲染膨胀后的偏移模型的反面模型。使得该反面模型在上述正面模型上形成正面模型的模型勾
线,并且由于偏移模型上在凹线处形成了凹线面,使得在正面模型的凹线处也能够渲染出
勾线,使得模型勾线的效果更佳。
[0048] 在一个可选的实施方式中,图3是根据本申请实施例的一种模型勾线的渲染示意图,如图3所示,模型一是使用传统方式渲染出的勾线,可以看出在模型的凹面出没有能够
渲染出勾线效果。模型二是使用本实施例中提供的上述模型勾线的渲染过程渲染出的模
型,可见在模型的凹面出也渲染出了勾线效果。
[0049] 作为一种可选的实施例,对待渲染模型的凹线执行预处理操作,得到所述预处理模型包括:
[0050] S11,在所述待渲染模型上获取所述凹线;
[0051] S12,在与所述凹线之间的距离为目标距离的所述待渲染模型的表面构建偏移线;
[0052] S13,将所述凹线上的第一顶点的世界偏移权重设置为第一参数值,并将所述偏移线上的第二顶点的世界偏移权重设置为第二参数值,得到所述预处理模型,其中,所述第一
参数值与所述第二参数值之间的差值用于控制所述凹线上渲染出的勾线的宽度。
[0053] 可选地,在本实施例中,待渲染模型上的凹线可以是通过人工标记的,也可以是通过软件进行自动检测得到的。
[0054] 可选地,在本实施例中,偏移线的数量可以但不限于为两条,在凹线的两侧各一条。
[0055] 可选地,在本实施例中,目标距离可以但不限于是小于勾线宽度的距离。
[0056] 可选地,在本实施例中,待渲染模型上顶点的世界偏移权重可以但不限于通过顶点的蓝通道(即B通道)存储。
[0057] 可选地,在本实施例中,第一参数值可以但不限于为0,第二参数值可以但不限于为大于0且小于或者等于1的值。第一参数值与第二参数值之间的差值可以用于控制凹线上
渲染出的勾线的宽度。第二参数值为1表示凹线上渲染出的勾线最宽。
[0058] 在一个可选的实施方式中,图4是根据本申请实施例的一种构建偏移线的示意图,如图4所示,在每个凹线附近均构建了两条偏移线,偏移线上顶点的世界偏移权重被设置为
1,即偏移线上顶点的顶点色B通道被设置为1。
[0059] 作为一种可选的实施例,在与所述凹线之间的距离为目标距离的所述待渲染模型的表面构建偏移线包括:
[0060] S21,在第一表面和第二表面上与所述凹线之间的距离为所述目标距离的位置添加所述第二顶点,其中,所述第一表面和所述第二表面是形成所述凹线的两个面;
[0061] S22,将所述第一表面上的所述第二顶点依次连接,并将所述第二表面上的所述第二顶点依次连接,得到两条所述偏移线。
[0062] 可选地,在本实施例中,构建偏移线的一种方式可以但不限于是首先在凹线附件添加新的顶点,再将添加的顶点连接起来。
[0063] 可选地,在本实施例中,可以但不限于在形成凹线的两个面中的每个面上均构建一条偏移线。
[0064] 作为一种可选的实施例,在与所述凹线之间的距离为目标距离的所述待渲染模型的表面构建偏移线包括:
[0065] S31,在第一表面上与所述凹线之间的距离为所述目标距离的位置对所述第一表面进行切分,并在第二表面上与所述凹线之间的距离为所述目标距离的位置对所述第二表
面进行切分,得到两条所述偏移线,其中,所述第一表面和所述第二表面是形成所述凹线的
两个面;
[0066] S32,在两条所述偏移线上确定所述第二顶点。
[0067] 可选地,在本实施例中,构建偏移线的另一种方式可以但不限于是对形成凹线的两个面中每个面的切分,在每个面上形成一条偏移线,再在得到的偏移线上确定新添加的
顶点。
[0068] 作为一种可选的实施例,对所述预处理模型上的顶点进行偏移,得到所述偏移模型包括:
[0069] S41,将所述预处理模型上的每个顶点的法线与所述每个顶点对应的世界偏移权重进行叠加,得到偏移法线;
[0070] S42,将所述每个顶点沿所述偏移法线偏移目标偏移值,得到所述偏移模型。
[0071] 可选地,在本实施例中,叠加的方式可以但不限于包括相乘操作或者插值操作等等。
[0072] 可选地,在本实施例中,通过每个顶点对应的世界偏移权重可以对每个顶点的法线进行控制,通过目标偏移值可以对每个顶点的偏移量进行控制。
[0073] 可选地,在本实施例中,通过偏移操作使得待渲染模型在法线方向上膨胀,渲染后能够在正面模型的边缘和凹线处形成勾线效果。
[0074] 可选地,在本实施例中,在预处理模型上默认未做处理的顶点对应的世界偏移权重为1,即未做处理的顶点的顶点色为白色(B通道为1)。
[0075] 作为一种可选的实施例,将所述预处理模型上的每个顶点的法线与所述每个顶点对应的世界偏移权重进行叠加,得到偏移法线包括:
[0076] S51,获取所述每个顶点的法线;
[0077] S52,将所述每个顶点的法线与所述每个顶点对应的世界偏移权重相乘,得到所述偏移法线。
[0078] 可选地,在本实施例中,将预处理模型的模型顶点在世界空间的法线方向移动,并乘上顶点颜色的蓝通道(即世界偏移权重)作为顶点在世界空间上的偏移。
[0079] 作为一种可选的实施例,将所述每个顶点沿所述偏移法线偏移目标偏移值,得到所述偏移模型包括:
[0080] S61,将所述每个顶点的所述偏移法线与所述目标偏移值相乘,得到所述每个顶点的世界位置偏移参数,其中,所述目标偏移值用于指示所述模型勾线的线宽;
[0081] S62,将所述每个顶点按照所述每个顶点对应的所述世界位置偏移参数进行移动,得到所述偏移模型。
[0082] 可选地,在本实施例中,目标偏移值表示顶点在法线方向的移动距离,其用于指示模型勾线的线宽,也就是说,顶点的移动距离决定了渲染出的勾线的粗细程度。
[0083] 可选地,在本实施例中,顶点的世界位置偏移参数指示出了顶点偏移的方向和偏移的距离,使用顶点的世界位置偏移参数控制顶点进行移动,使得预处理模型膨胀,并在凹
线处形成凹线面。
[0084] 在一个可选的实施方式中,图5是根据本申请实施例的一种引擎中的材质节点的示意图,如图5所示,对于获取到的顶点法线还可以首先进行归一化处理再与顶点的世界偏
移权重(顶点色的B通道)进行相乘处理,再使用相乘处理后的结果与用于表示线宽的目标
偏移值进行相乘,将得到的结果作为顶点的世界位置偏移。上述实现过程可以由渲染引擎
来实现,也可以使用对应的代码或者材质编辑器进行复现。
[0085] 本申请还提供了一种可选实施例,该可选实施例提供了一种模型勾线的渲染方式,该方式通过在模型的凹线处添加新的顶点,并使用顶点的B通道控制顶点的偏移过程,
在模型的凹线处构造出了一个可以被渲染出的面,使得能够在模型的凹线处渲染出勾线效
果。在该方式中,首先对模型进行预处理,将模型的凹线处顶点的世界偏移权重设置为0,即
将凹线处顶点的B通道设置为0,并在凹的线附近位置切出偏移线,将偏移线上顶点的世界
偏移权重设置为1,即将偏移线上顶点的顶点色B通道设置为1。模型上其他未作处理的顶点
的B通道均为1。然后对模型进行双pass渲染,一个pass对模型进行正常的颜色渲染,得到正
面模型。另一个pass将模型顶点在世界空间的法线方向移动,并乘上顶点颜色的B通道作为
顶点的世界空间偏移,从而得到反面膨胀的模型。渲染反面膨胀的模型得到具有勾线效果
的模型。图6是根据本申请可选实施例的勾线渲染方式的示意图,如图6所示,由于反面膨胀
的模型能够在凹线处绘制出了一个面,可以在渲染出的模型上呈现出凹线上的勾线效果。
[0086] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为
依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知
悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请
所必须的。
[0087] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多
情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有
技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储
介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算
机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
[0088] 根据本申请实施例的另一个方面,还提供了一种用于实施上述模型勾线的渲染方法的模型勾线的渲染装置。图7是根据本申请实施例的一种可选的模型勾线的渲染装置的
示意图,如图7所示,该装置可以包括:
[0089] 预处理模块72,用于对待渲染模型的凹线执行预处理操作,得到预处理模型,其中,所述凹线是在所述待渲染模型的正面上夹角小于目标角度的两个面相交形成的线;
[0090] 第一渲染模块74,用于渲染所述预处理模型的正面模型;
[0091] 偏移模块76,用于对所述预处理模型上的顶点进行偏移,得到偏移模型,其中,所述预处理操作使得所述偏移模型在所述凹线处形成允许被渲染出的凹线面;
[0092] 第二渲染模块78,用于渲染所述偏移模型的反面模型,其中,所述反面模型在所述正面模型上形成所述正面模型的模型勾线。
[0093] 需要说明的是,该实施例中的预处理模块72可以用于执行本申请实施例中的步骤S202,该实施例中的第一渲染模块74可以用于执行本申请实施例中的步骤S204,该实施例
中的偏移模块76可以用于执行本申请实施例中的步骤S206,该实施例中的第二渲染模块78
可以用于执行本申请实施例中的步骤S208。
[0094] 此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如
图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
[0095] 通过上述模块,通过对待渲染模型的凹线执行预处理操作,使得对预处理模型上的顶点进行偏移得到的偏移模型上形成凹线面,该凹线面能够在渲染时被渲染出,从而在
渲染偏移模型的反面模型时在凹线上也能够形成模型勾线,达到了在正面模型的边缘和凹
面上均形成勾线的目的,从而实现了在模型上的凹面处渲染出勾线的技术效果,进而解决
了相关技术中无法在模型上的凹面处渲染出勾线的技术问题。
[0096] 作为一种可选的实施例,所述预处理模块包括:
[0097] 获取单元,用于在所述待渲染模型上获取所述凹线;
[0098] 构建单元,用于在与所述凹线之间的距离为目标距离的所述待渲染模型的表面构建偏移线;
[0099] 设置单元,用于将所述凹线上的第一顶点的世界偏移权重设置为第一参数值,并将所述偏移线上的第二顶点的世界偏移权重设置为第二参数值,得到所述预处理模型,其
中,所述第一参数值与所述第二参数值之间的差值用于控制所述凹线上渲染出的勾线的宽
度。
[0100] 作为一种可选的实施例,所述构建单元用于:
[0101] 在第一表面和第二表面上与所述凹线之间的距离为所述目标距离的位置添加所述第二顶点,其中,所述第一表面和所述第二表面是形成所述凹线的两个面;
[0102] 将所述第一表面上的所述第二顶点依次连接,并将所述第二表面上的所述第二顶点依次连接,得到两条所述偏移线。
[0103] 作为一种可选的实施例,所述构建单元用于:
[0104] 在第一表面上与所述凹线之间的距离为所述目标距离的位置对所述第一表面进行切分,并在第二表面上与所述凹线之间的距离为所述目标距离的位置对所述第二表面进
行切分,得到两条所述偏移线,其中,所述第一表面和所述第二表面是形成所述凹线的两个
面;
[0105] 在两条所述偏移线上确定所述第二顶点。
[0106] 作为一种可选的实施例,所述偏移模块包括:
[0107] 叠加单元,用于将所述预处理模型上的每个顶点的法线与所述每个顶点对应的世界偏移权重进行叠加,得到偏移法线;
[0108] 偏移单元,用于将所述每个顶点沿所述偏移法线偏移目标偏移值,得到所述偏移模型。
[0109] 作为一种可选的实施例,所述叠加单元用于:
[0110] 获取所述每个顶点的法线;
[0111] 将所述每个顶点的法线与所述每个顶点对应的世界偏移权重相乘,得到所述偏移法线。
[0112] 作为一种可选的实施例,所述偏移单元用于:
[0113] 将所述每个顶点的所述偏移法线与所述目标偏移值相乘,得到所述每个顶点的世界位置偏移参数,其中,所述目标偏移值用于指示所述模型勾线的线宽;
[0114] 将所述每个顶点按照所述每个顶点对应的所述世界位置偏移参数进行移动,得到所述偏移模型。
[0115] 此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如
图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络
环境。
[0116] 根据本申请实施例的另一个方面,还提供了一种用于实施上述模型勾线的渲染方法的服务器或终端。
[0117] 图8是根据本申请实施例的一种终端的结构框图,如图8所示,该终端可以包括:一个或多个(图中仅示出一个)处理器801、存储器803、以及传输装置805,如图8所示,该终端
还可以包括输入输出设备807。
[0118] 其中,存储器803可用于存储软件程序以及模块,如本申请实施例中的模型勾线的渲染方法和装置对应的程序指令/模块,处理器801通过运行存储在存储器803内的软件程
序以及模块,从而执行各种功能应用以及数据处理,即实现上述的模型勾线的渲染方法。存
储器803可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装
置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器803可进一步包括相对于处
理器801远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包
括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0119] 上述的传输装置805用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,
传输装置805包括一个网络适配器(Network Interface Controller,NIC),其可通过网线
与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装
置805为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
[0120] 其中,具体地,存储器803用于存储应用程序。
[0121] 处理器801可以通过传输装置805调用存储器803存储的应用程序,以执行下述步骤:
[0122] 对待渲染模型的凹线执行预处理操作,得到预处理模型,其中,所述凹线是在所述待渲染模型的正面上夹角小于目标角度的两个面相交形成的线;
[0123] 渲染所述预处理模型的正面模型;
[0124] 对所述预处理模型上的顶点进行偏移,得到偏移模型,其中,所述预处理操作使得所述偏移模型在所述凹线处形成允许被渲染出的凹线面;
[0125] 渲染所述偏移模型的反面模型,其中,所述反面模型在所述正面模型上形成所述正面模型的模型勾线。
[0126] 采用本申请实施例,提供了一种模型勾线的渲染的方案。通过对待渲染模型的凹线执行预处理操作,使得对预处理模型上的顶点进行偏移得到的偏移模型上形成凹线面,
该凹线面能够在渲染时被渲染出,从而在渲染偏移模型的反面模型时在凹线上也能够形成
模型勾线,达到了在正面模型的边缘和凹面上均形成勾线的目的,从而实现了在模型上的
凹面处渲染出勾线的技术效果,进而解决了相关技术中无法在模型上的凹面处渲染出勾线
的技术问题。
[0127] 可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
[0128] 本领域普通技术人员可以理解,图8所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet 
Devices,MID)、PAD等终端设备。图8其并不对上述电子装置的结构造成限定。例如,终端还
可包括比图8中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图8所示
不同的配置。
[0129] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质
中,存储介质可以包括:闪存盘、只读存储器(Read‑Only Memory,ROM)、随机存取器(Random 
Access Memory,RAM)、磁盘或光盘等。
[0130] 本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行模型勾线的渲染方法的程序代码。
[0131] 可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
[0132] 可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
[0133] 对待渲染模型的凹线执行预处理操作,得到预处理模型,其中,所述凹线是在所述待渲染模型的正面上夹角小于目标角度的两个面相交形成的线;
[0134] 渲染所述预处理模型的正面模型;
[0135] 对所述预处理模型上的顶点进行偏移,得到偏移模型,其中,所述预处理操作使得所述偏移模型在所述凹线处形成允许被渲染出的凹线面;
[0136] 渲染所述偏移模型的反面模型,其中,所述反面模型在所述正面模型上形成所述正面模型的模型勾线。
[0137] 可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
[0138] 可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者
光盘等各种可以存储程序代码的介质。
[0139] 上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
[0140] 上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技
术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软
件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一
台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所
述方法的全部或部分步骤。
[0141] 在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0142] 在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一
种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者
可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之
间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连
接,可以是电性或其它的形式。
[0143] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个
网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目
的。
[0144] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单
元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0145] 以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应
视为本申请的保护范围。