CN116993888A - 边缘描绘方法、装置、设备、存储介质及计算机程序产品 - Google Patents
边缘描绘方法、装置、设备、存储介质及计算机程序产品 Download PDFInfo
- Publication number
- CN116993888A CN116993888A CN202211105477.7A CN202211105477A CN116993888A CN 116993888 A CN116993888 A CN 116993888A CN 202211105477 A CN202211105477 A CN 202211105477A CN 116993888 A CN116993888 A CN 116993888A
- Authority
- CN
- China
- Prior art keywords
- dimensional model
- map
- sampling
- texture
- edge
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000003860 storage Methods 0.000 title claims abstract description 33
- 238000004590 computer program Methods 0.000 title claims abstract description 12
- 238000009877 rendering Methods 0.000 title claims description 47
- 238000005070 sampling Methods 0.000 claims abstract description 181
- 230000000694 effects Effects 0.000 claims abstract description 77
- 238000013507 mapping Methods 0.000 claims abstract description 43
- 230000009466 transformation Effects 0.000 claims description 25
- 238000009826 distribution Methods 0.000 claims description 22
- 238000004040 coloring Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 5
- 230000006978 adaptation Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000001131 transforming effect Effects 0.000 description 4
- 101100322249 Caenorhabditis elegans lev-1 gene Proteins 0.000 description 3
- 238000012952 Resampling Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000003708 edge detection Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 101100400452 Caenorhabditis elegans map-2 gene Proteins 0.000 description 2
- 101150064138 MAP1 gene Proteins 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
本申请公开了一种边缘描绘方法、装置、设备、存储介质及计算机程序产品,涉及图像处理领域。该方法包括:获取目标贴图,目标贴图是附着渲染在三维模型上的贴图;对目标贴图在三维模型上的附着效果进行纹理采样,得到纹理绘制结果,纹理绘制结果中包括目标贴图的像素点在三维模型上的显示浓度;对纹理绘制结果进行像素点邻域采样,得到邻域采样结果;基于邻域采样结果确定目标贴图在三维模型上的边缘描绘结果。即,通过纹理采样的方式确定目标贴图在三维模型上的附着效果从而得到目标贴图在三维模型上的边缘描绘结果,能够提高目标贴图在三维模型上进行显示的线条流畅度,进而提高显示效果。
Description
技术领域
本申请涉及图像处理领域,特别涉及一种边缘描绘方法、装置、设备、存储介质及计算机程序产品。
背景技术
随着计算机技术的不断发展,用户可以实现在指定应用程序内自主设计纹样并进行显示的方式,其中,纹样是指带有花纹的图案,如:以指定程序应用程序为游戏应用程序为例,用户在绘制虚拟对象服饰上的纹样的过程中,可以选择显示纹样对应的边缘线条来增强纹样的展示效果。
在相关技术中,在显示纹样对应的边缘线条的过程中,通常采用边缘检测方法,确定纹样的边缘,如:索贝尔算子(Sobel Operator),该算子通过对纹样对应的图片分别检测纵向边缘和横向边缘,从而得到纹样在虚拟服饰中的轮廓线条。
然而在上述相关技术中,边缘检测方式仅针对非实时的场景下,也即,边缘检测方式只能对纹样在服饰上显示过程中对应的二维图片进行检测,导致在用户在对纹样进行实时调整的过程中,纹样的轮廓线条的流畅度较低,进而导致纹样边缘的显示效果较差。
发明内容
本申请实施例提供了一种边缘描绘方法、装置、设备、存储介质及计算机程序产品,能够轮廓线条的平滑度。所述技术方案如下:
一方面,提供了一种边缘描绘方法,所述方法包括:
获取目标贴图,所述目标贴图是附着渲染在三维模型上的贴图;
对所述目标贴图在所述三维模型上的附着效果进行纹理采样,得到纹理绘制结果,所述纹理绘制结果中包括所述目标贴图的像素点在所述三维模型上的显示浓度,所述显示浓度与所述目标贴图在所述三维模型上的透明度情况关联;
对所述纹理绘制结果进行像素点邻域采样,得到邻域采样结果,所述邻域采样结果用于指示所述目标贴图的像素点在所述三维模型上的分布位置;
基于所述邻域采样结果确定所述目标贴图在所述三维模型上的边缘描绘结果,所述边缘描绘结果用于指示所述目标贴图在所述三维模型上显示对应的轮廓线条。
另一方面,提供了一种边缘描绘装置,所述装置包括:
获取模块,用于获取目标贴图,所述目标贴图是附着渲染在三维模型上的贴图;
采样模块,用于对所述目标贴图在所述三维模型上的附着效果进行纹理采样,得到纹理绘制结果,所述纹理绘制结果中包括所述目标贴图的像素点在所述三维模型上的显示浓度,所述显示浓度与所述目标贴图在所述三维模型上的透明度情况关联;
所述采样模块,还用于对所述纹理绘制结果进行像素点邻域采样,得到邻域采样结果,所述邻域采样结果用于指示所述目标贴图的像素点在所述三维模型上的分布位置;
确定模块,用于基于所述邻域采样结果确定所述目标贴图在所述三维模型上的边缘描绘结果,所述边缘描绘结果用于指示所述目标贴图在所述三维模型上显示对应的轮廓线条。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述本申请实施例中任一所述的边缘描绘方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述本申请实施例中任一所述的边缘描绘方法。
另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中任一所述的边缘描绘方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
当获取附着渲染在三维模型上的目标贴图后,首先对目标贴图在三维模型上的附着效果进行纹理采样,得到包含目标贴图在三维模型上的透明度情况的纹理绘制结果,再对纹理绘制结果进行像素点邻域采样,确定目标贴图的像素点在三维模型上的分布位置,从而得到目标贴图在三维模型上的轮廓线条作为边缘描绘结果进行着色显示。也即,通过纹理采样的方式确定目标贴图在三维模型上的附着效果从而得到目标贴图在三维模型上的边缘描绘结果,能够针对贴图实时调整的场景下,提高目标贴图在三维模型上进行显示的线条流畅度,进而提高显示效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的边缘描绘方法示意图;
图2是本申请一个示例性实施例提供的实施环境示意图;
图3是本申请一个示例性实施例提供的边缘描绘方法流程图;
图4是本申请一个示例性实施例提供的边缘描绘方法流程图;
图5是本申请一个示例性实施例提供的三维模型显示浓度示意图;
图6是本申请一个示例性实施例提供的不同线条宽度下边缘描绘结果示意图;
图7是本申请一个示例性实施例提供的邻域采样结果示意图;
图8是本申请另一个示例性实施例提供的边缘描绘方法流程图;
图9是本申请一个示例性实施例提供的贴图调整操作示意图;
图10是本申请一个示例性实施例提供的纹样边缘效果示意图;
图11是本申请一个示例性实施例提供的纹样类型示意图;
图12是本申请一个示例性实施例提供的不同级别的Mipmap显示效果示意图;
图13是本申请另一个示例性实施例提供的增加不同贴图偏移量后对应的描边效果示意图;
图14是本申请一个示例性实施例提供的边缘描绘装置结构图;
图15是本申请另一个示例性实施例提供的边缘描绘装置结构图;
图16是本申请一个示例性实施例提供的服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请提供的边缘描绘方法进行介绍,示意性的,如图1所示,其示出了本申请一个示例性实施例提供的边缘描绘方法示意图,如图1所示,获取目标贴图100,其中目标贴图100实现为装饰性纹样对应的贴图。对目标贴图100在三维模型110上的附着效果进行纹理采样,得到纹理绘制结果120。其中,三维模型110实现为虚拟对象当前身着的衣服所对应的三维模型。纹理绘制结果120用于表示装饰性纹样在衣服上的绘制结果,其中,绘制结果中包含装饰性纹样对应的贴图的显示浓度,如:装饰性纹样为一个不透明贴图,则装饰性纹样绘制到衣服上后,装饰性纹样所附着区域对应的像素点对应显示浓度为1,衣服上未被装饰性纹样附着区域对应的像素点对应显示浓度为0。
对三维模型110进行像素点邻域采样,得到邻域采样结果130,邻域采样结果130用于表示装饰性纹样对应的贴图的像素点在衣服上的分布位置(如:衣服上属于装饰性纹样的像素点的显示浓度标记为1,不属于装饰性纹样的像素点的显示浓度标记为0)。根据邻域采样结果130确定衣服所对应的三维模型中,属于装饰性纹样边缘的像素点,从而得到装饰性纹样对应的轮廓线条,作为边缘描绘结果140。
其次,对本申请实施例中涉及的实施环境进行说明,示意性的,本申请提供的边缘描绘方法可以由终端独立完成;或者,由终端和服务器共同完成,对此不加以限定。
在一个可选的实施例中,当由终端独立完成的情况下,当前终端安装具有绘制功能的应用程序,其中,应用程序可实现为单机版应用程序,也可实现为联机版应用程序。
当终端中运行应用程序的过程中,当终端接收到纹样绘制操作,获取纹样绘制操作对应的目标纹样的目标贴图,其中,纹样绘制操作用于将目标纹样绘制到虚拟对象的服饰上。终端根据目标贴图在虚拟对象的服饰对应的三维模型上的附着效果进行纹理采样,得到服饰对应的三维模型的纹理绘制结果(RGBA值),纹理绘制结果中包含目标贴图的像素点在三维模型上的显示浓度。对纹理绘制结果进行像素点邻域采样,得到邻域采样结果,根据邻域采样结果确定目标贴图绘制到三维模型上时,目标贴图对应的轮廓线条。本实施例中,由终端通过完成目标纹样的边缘描绘,实现对三维模型的本地渲染。
请参考图2,其示出了本申请实施例提供的一个实施环境示意图,实施环境中涉及终端210和服务器220,终端210和服务器220之间通过通信网络230连接。
终端210中安装具有画面显示功能的应用程序211,其中,应用程序211可实现为单机版应用程序,也可实现为联机版应用程序。本实施例以应用程序211实现为联机版应用程序进行说明。
当终端210中运行应用程序211的过程中,当终端210接收到纹样绘制操作,获取纹样绘制操作对应的目标贴图,生成边缘绘制请求发送至服务器220。其中,纹样绘制操作是指将目标纹样绘制三维模型上,目标贴图为目标纹样对应的贴图,边缘绘制请求中还包括目标纹样绘制过程中,目标纹样对应的目标贴图附着渲染到三维模型上的附着效果。
当服务器220接收到边缘绘制请求后,对目标贴图在三维模型上的附着结果进行纹理采样,得到纹理绘制结果,用于目标贴图在三维模型上的显示浓度。当获取纹理绘制结果后,对纹理绘制结果进行像素点邻域采样,得到邻域采样结果,用于指示目标贴图的像素点在三维模型上的分布位置。根据邻域采样结果,确定目标贴图在三维模型上的轮廓线条,作为边缘描绘结果反馈至终端210。
终端210根据接收到的边缘描绘结果显示目标纹样在三维模型上的轮廓线条。
其中,终端包括智能手机、平板电脑、便携式膝上笔记本电脑、台式计算机、智能音箱、智能可穿戴设备、智能语音交互设备、智能家电、车载终端等终端中的至少一种。
值得注意的是,上述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。其中,云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
在一些实施例中,上述服务器还可以实现为区块链***中的节点。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
示意性的,对本申请提供的边缘描绘方法进行说明,请参考图3,其示出了本本申请一个示例性实施例提供的边缘描绘方法流程图,如图3所示,以该方法应用于服务器中进行说明,该方法包括如下步骤。
步骤310,获取目标贴图。
其中,目标贴图是附着渲染在三维模型上的贴图。
在一些实施例中,目标贴图是指包含目标内容的贴图,如:纹样贴图(目标内容为纹样)、刺绣贴图(目标内容为刺绣)、插画贴图(目标内容为插画)等。
示意性的,目标贴图是指用于映射到三维模型上的纹理图像(Texture)。
在一个可实现的情况下,目标贴图是用于在对三维模型进行渲染过程中,附着在三维模型表面的二维图片。当三维模型存在表面凸起或者凹陷时,目标贴图附着渲染在三维模型上时也会呈现凸起或者凹陷的附着效果,也即,目标贴图是贴合三维模型的表面进行显示的。
可选地,目标贴图的获取方式包括如下几种方式中至少一种:
1.预先存储有贴图集合,贴图集合中包括多张不同贴图,通过用户选择操作,从贴图集合中获取与选择操作对应的贴图作为目标贴图;
示意性的,上述贴图集合中包括不同贴图内容的贴图,如:贴图集合中包括贴图内容为“猫”的贴图1和内容为“花瓶”的贴图2;或者,贴图集合中包括同一贴图内容但不同尺寸的贴图,如:贴图集合中包括像素为400*400的贴图1、像素为200*200的贴图2和像素为100*100的贴图3,此时,该贴图集合实现为多级渐远纹理(Mipmap)集合,Mipmap中每个贴图对应不同的Mipmap Level(级别),对此不加以限定。
2.通过接收到用户的绘制操作,根据用户绘制操作得到的绘制结果得到目标贴图。
值得注意的是,上述关于目标贴图的获取方式仅为示意性的举例,本申请实施例对此不加以限定。
在一些实施例中,三维模型是基于用户操作确定的目标对象对应的三维模型。
步骤320,对目标贴图在三维模型上的附着效果进行纹理采样,得到纹理绘制结果。
其中,纹理绘制结果包括目标贴图的像素点在三维模型上的显示浓度,显示浓度与目标贴图在三维模型上的透明度情况关联。
示意性的,纹理采样是指以目标贴图的附着效果为依据,通过三维模型上模型像素点关联的纹理坐标(Texture Coordinate)对目标贴图进行采样,用于确定目标贴图位于三维模型中的显示效果,如:目标贴图附着在三维模型的正中间,三维模型上像素点对应的纹理坐标范围为(0,0)到(1,1),三维模型中像素点a对应纹理坐标为(0.5,0.5),也即,三维模型中的像素点a上对应为目标贴图的中间部分的像素点A。即,纹理采样用于通过三维模型中模型像素点和目标贴图的像素点之间的位置对应关系,来获取目标贴图的像素点对应的像素颜色值。
其中,上述三维模型上模型像素点关联的纹理坐标可通过对模型像素点进行顶点变换和纹理映射变换(UV变换)后得到。
可选地,通过三维模型的所有模型像素点对应的纹理坐标对目标贴图进行纹理采样;或者,通过三维模型的目标模型像素点对应的纹理坐标对目标贴图进行纹理采样,其中,目标模型像素点可实现为三维模型对应的顶点像素点,如:三维模型为正方体时,三维模型对应的顶点像素点即为正方体各个顶点所对应的像素点坐标,对此不加以限定。
在一些实施例中,纹理绘制结果为一个全屏绘制结果,该结果中包含三维模型的模型像素点,以及不属于三维模型的像素点。本申请实施例中,将三维模型的模型像素点和不属于三维模型的像素点作为纹理绘制结果对应的绘制像素点。
示意性的,纹理绘制结果包括附着在三维模型上目标贴图上像素点的RGBA值,其中,RGBA值中包括四个通道的输出结果(R通道输出结果、G通道输出结果、B通道输出结果和A通道输出结果),其中,存在一个通道(A通道)的输出结果作为目标贴图的像素点在三维模型上的显示浓度,也即,纹理绘制结果中包括目标贴图的像素点对应的显示浓度,其中,显示浓度是指根据目标贴图附着在三维模型上的透明度情况而设定目标贴图上像素点对应的显示浓度值。其中,当目标贴图在三维模型上的不透明度越高,则目标贴图的像素点对应的显示浓度越高,反之,则显示浓度越低。
在一个可选的情况下,目标贴图实现为不透明贴图,也即,当通过纹理采样后,附着在三维模型上的目标贴图的像素点对应不同的不透明度值,其中,当不透明度值越高时,表明该像素点在三维模型上的透明度越低,若三维模型上的模型像素点对目标模型上的像素点进行纹理采样,得到采样结果为“1”时,则表明该模型像素点对应的显示浓度为1。最终目标贴图附着渲染到三维模型上进行显示的过程中,显示浓度为1的模型像素点对应的部分能够呈现目标贴图对应的目标内容的显示效果,显示浓度为0的模型像素点对应的部分呈现无目标内容的显示效果。可选地,若目标贴图呈现半透明,则三维模型上像素点对该目标贴图进行纹理采样后得到的采样结果介于0~1之间,作为其对应的显示浓度,表明在三维模型上该部分被附着了半透明的目标贴图。
示意性的,当确定附着渲染在三维模型上的目标贴图的边缘时,由于目标贴图会存在边缘不清晰,且与三维模型之间的分界不明确的情况,因此采用传统的RGB颜色值会存在对目标贴图边缘的识别准确度较差的情况,且当目标贴图为一个渐变式贴图时,仅采用RGB颜色值识别目标贴图的边缘时,对于不透明度较低的像素点无法识别。
因此本申请采用通过纹理采样确定目标贴图的像素点在三维模型上的显示浓度,能够在目标贴图实现为渐变式贴图的情况下,也能根据显示浓度确定属于边缘的像素点,从而对其进行着色,最终显示目标贴图对应的轮廓,能够较好地提高对目标贴图进行边缘描绘的边缘适配度,进而提高边缘显示效果。可选地,显示浓度是由服务器预先设置好的固定浓度值;或者,显示浓度是由用户根据实际需要自行调整的浓度值,对此不加以限定。
可选地,当目标贴图在三维模型上的附着效果每发生一次变化,即重新进行纹理采样;或者,每隔指定时间间隔,对附着效果重新进行纹理采样,对此不加以限定。
步骤330,对纹理绘制结果进行像素点邻域采样,得到邻域采样结果。
其中,邻域采样结果用于指示目标贴图的像素点在三维模型上的分布位置。
示意性的,像素点邻域采样用于确定三维模型中模型像素点对应的邻域采样区域后,对该区域内的邻域像素点进行采样,并根据纹理绘制结果得到该区域内邻域像素点对应的显示浓度,从而确定整个三维模型上各邻域像素点对应的显示浓度,进而得到目标贴图的像素点在三维模型上的分布位置(也即,显示浓度不为0的像素点即为被目标贴图附着的模型像素点)。
其中,邻域采样区域是指以模型像素点为中心,与其相邻的区域,如:模型像素点的上方、下方、左侧、右侧、左上角、左下角、右上角、右下角分别对应的区域。区域的大小与该区域内存在的像素点的数量相关,如:若模型像素点的上方区域大小为一个像素点,也即该邻域内仅包含模型像素点上方的一个邻域像素点,如:对模型像素点1的上方对应的邻域采样区域内的邻域像素点m进行像素点邻域采样,得到采样结果为r0,r0表示该邻域采样点m对应的显示浓度。
可选地,对所有绘制像素点进行像素点邻域采样;或者,对部分绘制像素点进行像素点邻域采样,对此不加以限定。
可选地,像素点邻域采样包括最邻近插值采样(Nearest NeighbourResampling)、双线性差值采样(Bilinear Resampling)或者双三次差值采样(BicubicResampling)中至少一种采样方法。
在一个可选的情况下,当采用双线性差值采样作为像素点邻域采样的过程中,对每个绘制像素点都进行双线性差值,用于将纹理绘制结果进行图像放大至全屏进行显示,针对每个绘制像素点,确定绘制像素点在纹理绘制结果上的像素点坐标,然后获取该绘制像素点八个邻域方向上的绘制像素点的显示浓度进行加权平均,得到插值,然后对绘制像素点进行插值。先在X方向上进行插值,得到X方向插值结果,使用X方向插值结果再在Y方向进行插值。得到最终插值后的显示浓度,作为邻域采样结果。
步骤340,基于邻域采样结果确定目标贴图在三维模型上的边缘描绘结果。
其中,边缘描绘结果用于指示目标贴图在三维模型上显示对应的轮廓线条。
示意性的,根据邻域采样结果确定三维模型的各模型像素点的排列方式,以及三维模型中各模型像素点的显示浓度,根据模型像素点的排列方式和显示浓度,确定目标贴图对应在三维模型上的边缘区域,也即,确定三维模型中与目标贴图的边缘区域对应的模型像素点。通过预先设定边缘颜色值,在与目标贴图的边缘区域对应的模型像素点上输出预设边缘颜色值,将输出结果作为目标贴图在三维模型上的边缘描绘结果。
可选地,轮廓线条的确定方式包括如下几种方式中至少一种:
1.预先设置透明度阈值,若模型像素点对应指定区域内的模型像素点对应的显示浓度均大于或者小于透明度阈值,则表明该模型像素点为非边缘像素点(可能为目标贴图对应的贴图像素点,或者不属于目标贴图的非贴图像素点),若模型像素点对应指定区域内存在至少一个模型像素点大于(或者小于)透明度阈值,指定区域内其他模型像素点小于(或者大于)透明度阈值,则表明该模型像素点为边缘像素点,将边缘像素点进行着色,根据着色结果呈现目标贴图对应的轮廓线条;
2.确定三维模型中相邻的至少两个模型像素点之间的显示浓度的差值,若该差值达到预先设定的浓度差阈值,确定相邻的至少两个模型像素点中存在边缘像素点,将边缘像素点依次连接,确定轮廓线条。
值得注意的是,上述关于轮廓线条的确定方式仅为示意性的举例,本申请实施例对此不加以限定。
综上所述,本申请实施例提供的边缘描绘方法,当获取附着渲染在三维模型上的目标贴图后,首先对目标贴图在三维模型上的附着效果进行纹理采样,得到目标贴图在三维模型上的透明度情况,再对三维模型进行像素点邻域采样,确定目标贴图的像素点在三维模型上的分布位置,最终根据透明度情况和分布位置,显示目标贴图在三维模型上的轮廓线条作为边缘描绘结果。也即,通过纹理采样的方式确定目标贴图在三维模型上的附着效果从而得到目标贴图在三维模型上的边缘描绘结果,能够针对贴图实时调整的场景下,提高目标贴图在三维模型上进行显示的线条流畅度,进而提高显示效果。
在一个可选的实施例中,获取纹理绘制结果的过程中包括纹理映射变换和顶点变换,示意性的,请参考图4,其示出了本申请一个是示例性实施例提供的边缘描绘方法的流程图,也即,步骤320中包括下位步骤321~步骤324,步骤330中包括下位步骤331~步骤332,如图4所示,该方法包括如下步骤。
步骤321,获取三维模型对应的像素点集合。
其中,像素点集合中包括多个模型像素点。
示意性的,首先对需要附着目标贴图并进行边缘描绘的三维模型进行渲染,得到三维模型对应的渲染目标,渲染目标中包括三维模型对应的像素点集合。
本实施例中,将三维模型渲染一遍至一个边缘渲染目标(Outline RenderTarget,OutlineRT)。
步骤322,基于模型像素点对三维模型进行顶点变换,得到三维模型对应的顶点着色结果。
其中,顶点着色结果用于指示三维模型的顶点位置。
示意性的,顶点变换用于表示三维模型对应初始情况下的模型渲染过程,其中,初始情况是指该三维模型未附着目标贴图的情况,如:虚拟对象穿着的衣服为三维模型,目标贴图为纹样贴图,对衣服进行顶点变换是指在未贴有纹样贴图情况下绘制该衣服。
在一些实施例中,通过顶点着色器实现对三维模型的顶点变换。
在一些实施例中,顶点变换用于确定三维模型中对应顶点位置的模型像素点,如:三维模型为一个四边体,则三维模型的顶点位置即为四边体的四个顶点,顶点变换用于确定该四个顶点对应的模型像素点坐标。
步骤323,基于模型像素点对三维模型进行纹理映射变换,得到多个模型像素点分别对应的纹理坐标。
示意性的,纹理映射变换是指将三维模型对应三维世界空间上的点映射到二维纹理空间上的点,得到三维模型在三维世界空间上的模型像素点对应在二维纹理空间上的纹理坐标(UV值)。
在一些实施例中,纹理映射变换用于确定三维模型的模型像素点与目标贴图的像素点之间的位置对应关系。
在一个可实现的情况下,当目标贴图的显示尺寸发生变化时,模型像素点对应的纹理坐标也随之变化,如:当目标贴图放大显示尺寸时,模型像素点的纹理坐标将对应减小。
在一些实施例中,单个模型像素点对应一个纹理坐标,且不同模型像素点分别对应的纹理坐标不同。
值得注意的是,根据模型像素点对三维模型进行顶点变换和纹理映射变换的过程是同时进行的。
本实施例中,通过对三维模型分别进行顶点变换和纹理映射变换,能够确定目标贴图附着渲染在三维模型上时与三维模型的像素点对应的位置关系,从而提高目标贴图在三维模型上显示位置的准确度。
其中,当对三维模型同时进行顶点变换和纹理映射变换时,能够在渲染三维模型的同时获取模型像素点对应的纹理坐标,便于后续进行纹理采样,提高了物体渲染效率。
步骤324,基于多个模型像素点分别对应的纹理坐标对目标贴图进行纹理采样,得到多个模型像素点分别对应的显示浓度,作为纹理绘制结果。
示意性的,根据纹理映射变换后得到的纹理坐标对目标贴图进行纹理采样,用于获取与模型像素点的纹理坐标对应的目标贴图的像素点对应的像素颜色。
在一些实施例中,像素颜色包括颜色空间中四个分量:R通道像素颜色、G通道像素颜色、B通道像素颜色以及A通道像素不透明度(Alpha值)。其中,像素不透明度即为本申请中目标贴图的像素点对应的显示浓度。如:模型像素点S对应目标贴图中像素点B,目标贴图为非透明贴图,则模型像素点S通过纹理采样获取像素点B对应的显示浓度为“1”,即不透明浓度。
其中,显示浓度用于确定后续边缘描绘结果中轮廓线条显示的颜色透明度。
本实施例中,纹理绘制结果中包含三维模型对应的Result,Result中R通道输出结果为显示浓度a,G通道输出结果为1,B通道和A通道输出结果为0(其中,每个通道各自如何输出结果可根据实际情况进行调整,本实施例对此不加限定)。
示意性的,请参考图5,其实除了本申请一个示例性实施例提供的三维模型显示浓度示意图,如图5所示,当前显示三维模型510,通过纹理采样确定三维模型510中目标贴图520对应的显示浓度,也即,目标贴图520附着在三维模型510的上方区域,该区域对应的模型像素点的显示浓度为1(非透明,以黑色区域为例进行显示)。
本实施例中,上述顶点变换、纹理映射变换和纹理采样作为第一渲染步骤(第一 Pass)中的相关过程,第一Pass输出得到的结果为OutlineRT的纹理绘制结果,也即,第一Pass是针对三维模型中每个模型像素点进行绘制的。
下面,将介绍第二渲染步骤(第二Pass),将OutlineRT的纹理绘制结果输入第二Pass中,用于确定目标贴图在三维模型上对应的轮廓线条。
本实施例中,通过经过纹理变换后得到的模型像素点的纹理坐标对目标贴图进行纹理采样,进而确定目标贴图在三维模型上对应的显示浓度,能够在获取目标贴图渲染结果的过程中,获得目标贴图附着在三维模型上的不透明效果,用于提高目标贴图最终的显示效果。
步骤331,确定纹理绘制结果中多个绘制像素点分别对应的邻域采样区域。
示意性的,确定绘制像素点对应的八个邻域采样区域(上方、下方、左侧、右侧、左上角、左下角、右上角和右下角八个区域)。
在一些实施例中,获取预设线条宽度,以及预设系数;基于线条宽度和预设系数确定领域采样区域。
本实施例中,邻域采样区域的宽度距离可参考如下公式一:
公式一:width=0.5*线条宽度*通用系数
其中,width为宽度距离,线条宽度是指最终目标贴图附着渲染在三维模型进行显示的过程中,目标贴图的轮廓线条所显示的宽度。通用系数是指预先设置好的常数,一般为(1.0/3840,1.0/2160),也即,取4k分辨率长度(3840*2160)的倒数。
其中,取4k分辨率长度的倒数作为通用系数能够使得通过邻域采样区域后得到的邻域采样结果更好的适配4k分辨率,提高了画面显示质量。
可选地,线条宽度是由服务器预先设置好的固定宽度;或者,线条宽度是由用户根据实际需要自行调整的可调宽度,对此不加限定。
在一些实施例中,不同的线条宽度将导致最终目标贴图在三维模型上的边缘描绘结果显示不同的效果,示意性的,请参考图6,其示出了本申请一个示例性实施例提供的不同线条宽度下边缘描绘结果示意图,如图6所示,图6中包含对应线条宽度为3时对应的边缘描绘结果610、线条宽度为5时对应的边缘描绘结果620,以及线条宽度为10时对应的边缘描绘结果630。由图6可知,不同的线条宽度决定了最终目标贴图最终在三维模型上显示的轮廓线条粗细效果不同。
示意性的,当确定邻域采样区域的宽度距离后即可确定邻域采样区域,如:模型像素点P坐标为(u,v),则模型像素点P对应左上角邻域坐标为(uv.x-width.x,uv.y-width.y),模型像素点P对应左侧邻域坐标为(uv.x-width.x,uv.y),模型像素点P对应右下角邻域坐标为(uv.x+width.x,uv.y+width.y),依次类推得到八个邻域采样区域对应的坐标范围。
其中,为了保证最终目标贴图的轮廓线条的粗细均匀,通过确定线条宽度从而获取绘制像素点对应的八个邻域采样区域,能够保证轮廓线条粗细均匀的情况下,使得像素点邻域采样后的邻域采样结果清晰度更高,提高最终图像显示质量。
步骤332,对邻域采样区域进行像素点邻域采样,得到绘制像素点对应的多个邻域像素点分别对应的显示浓度,作为邻域采样结果。
示意性的,针对绘制像素点对应的邻域采样区域内进行采样,确定邻域采样区域中包含的邻域像素点,根据纹理绘制结果,确定邻域像素点分别对应的显示浓度。也即,像素点邻域采样用于确定绘制像素点中对应为模型像素点的RGBA值,作为目标RT。
本实施例中,根据单个模型像素点对应的邻域采样区域进行像素点邻域采样,得到该模型像素点对应的采样结果,分别为r0(左上角邻域采样结果)、r1(上方邻域采样结果)、r2(右上角邻域采样结果)、r3(右侧邻域采样结果)、r4(右下角邻域采样结果)、r5(下方邻域采样结果)、r6(左下角邻域采样结果)和r7(左侧邻域采样结果)。
可选地,单个邻域采样区域中包含单个邻域像素点;或者,单个邻域采样区域中包含多个邻域像素点,对此不加以限定。本实施例中,每个邻域采样区域中包含一个邻域像素点。
示意性的,邻域采样结果可实现为绘制像素点对应的显示浓度分布图,也即,根据像素点邻域采样确定绘制像素点中的模型像素点,根据纹理绘制结果确定绘制像素点中的模型像素点分别对应的显示浓度,从而获得目标贴图的像素点在三维模型上的分布位置(由于目标贴图的像素点与模型像素点存在位置对应关系,因此目标贴图的像素点在三维模型上的分布位置也可认为是模型像素点在三维模型上显示浓度的分布位置)。
示意性的,请参考图7,其示出了本申请一个示例性实施例提供的邻域采样结果示意图,如图7所示,当前显示绘制像素点经过像素邻域采样后得到的各邻域像素点各自对应的R通道值(即为上文提及的显示浓度a),其中,由于目标贴图为不透明贴图,“1”表示该绘制像素点对应为目标贴图附着在三维模型上对应的像素点,表示“不透明”区域对应像素点,“0”表示该绘制像素点未附着有目标贴图,表示“透明”区域对应像素点。
步骤340,基于邻域采样结果确定目标贴图在三维模型上的边缘描绘结果。
示意性的,通过将邻域采样结果中各模型像素点分别对应的显示浓度与预先设置的浓度阈值进行比较,从而确定模型像素点属于边缘像素点还是非边缘像素点。
其中,边缘像素点是指该模型像素点位于目标贴图附着渲染在三维模型上时,目标贴图的轮廓对应的像素点。
其中,非边缘像素点包括附着有目标贴图的模型像素点;或者,未附着有目标贴图的像素点。
在一些实施例中,获取预设浓度阈值;将绘制像素点对应的多个邻域像素点分别对应的显示浓度与预设浓度阈值进行对比,得到多个邻域像素点分别对应的浓度对比结果;响应于多个邻域像素点分别对应的浓度对比结果不一致,确定绘制像素点为边缘像素点;输出边缘像素点对应的预设边缘颜色值,作为边缘描绘结果。
示意性的,浓度阈值是由服务器根据目标贴图在三维模型上的透明度情况预先设置好的阈值,本实施例中,浓度阈值为0.5。
可选地,浓度阈值与各绘制像素点对应的显示浓度均不同;或者,存在绘制像素点对应的显示浓度与浓度阈值相同,对此不加以限定。本实施例中,以浓度阈值与各绘制像素点对应的显示浓度均不同为例进行说明。
本实施例中,将绘制像素点对应的邻域像素点各自对应的显示浓度和浓度阈值进行比较,确定绘制像素点对应的邻域像素点分别对应的浓度对比结果,如:绘制像素点8对应的r7邻域对应的邻域像素点H对应显示浓度为“0”,则邻域像素点H的浓度对比结果为“小于浓度阈值”。
本实施例中,当绘制像素点对应的邻域像素点分别对应的浓度对比结果不一致时,也即,存在显示浓度大于浓度阈值的邻域像素点,以及,存在显示浓度小于浓度阈值的邻域像素点,则将该绘制像素点作为边缘像素点。对于边缘像素点输出预先设定好的边缘颜色值,从而以预设颜色显示目标贴图对应的轮廓线条,其中,边缘颜色值可实现为RGB坐标,如:(255,135,69)。
在一些实施例中,响应于多个邻域像素点分别对应的浓度对比结果一致,确定绘制像素点为非边缘像素点;输出非边缘像素点对应的非边缘颜色值。
本实施例中,当绘制像素点对应的邻域像素点分别对应的显示浓度都大于浓度阈值,或者都小于浓度阈值,则确定多个邻域像素点分别对应的浓度对比结果一直,则将该绘制像素点作为非边缘像素点,输出非边缘像素点对应的非边缘颜色值(本实施例中为0)。
本实施例中,通过预设浓度阈值,从而将绘制像素点对应的显示浓度与浓度阈值进行比较从而确定边缘点的方式,无需获取目标贴图对应的精确边缘点,从而使得最终目标贴图显示的轮廓线条流畅度更好,线条平滑度好,具有美观性。
示意性的,如图7所示,当绘制像素点710中的邻域像素点对应的显示浓度都为“0”,则绘制像素点710为非边缘像素点,当绘制像素点720中邻域像素点存在三个邻域像素点的显示浓度为“0”,四个邻域像素点的显示浓度为“1”,说明三个邻域像素点的显示浓度小于浓度阈值,四个邻域像素点的显示浓度大于浓度阈值,则表示绘制像素点720为边缘像素点。
综上所述,本申请实施例提供的边缘描绘方法,当获取附着渲染在三维模型上的目标贴图后,首先对目标贴图在三维模型上的附着效果进行纹理采样,得到目标贴图在三维模型上的透明度情况,再对三维模型进行像素点邻域采样,确定目标贴图的像素点在三维模型上的分布位置,最终根据透明度情况和分布位置,显示目标贴图在三维模型上的轮廓线条作为边缘描绘结果。也即,通过纹理采样的方式确定目标贴图在三维模型上的附着效果从而得到目标贴图在三维模型上的边缘描绘结果,能够针对贴图实时调整的场景下,提高目标贴图在三维模型上进行显示的线条流畅度,进而提高显示效果。
在一个可选的实施例中,以边缘描绘方法应用于游戏场景中对虚拟对象身着服饰上的纹样进行边缘描绘场景为例进行说明,示意性的,请参考图8,其示出了本申请一个示例性实施例提供的边缘描绘方法的流程图,如图8所示,该方法包括如下步骤。
步骤810,接收贴图调整操作。
示意性的,贴图调整操作用于调整目标纹样对应的纹样贴图,包括移动操作、旋转操作、放大操作、缩小操作、平铺操作等。
示意性的,请参考图9,其示出了本申请一个示例性实施例提供的贴图调整操作示意图,如图9所示,当前显示调整界面900,在调整界面900中显示纹样显示控件910和纹样调整控件920,首先接收对纹样显示控件910的触发操作,用于触发显示目标纹样对应的轮廓。其次,接收到纹样调整控件920的触发操作,用于对目标纹样在三维模型上的显示效果进行调整。本实施例中,三维模型指虚拟对象身着的衣服。
示意性的,请参考图10,其示出了本申请一个示例性实施例提供的纹样边缘效果示意图,如图10所示,当前显示通过不同贴图调整操作后,目标纹样1001在衣服对应的三维模型上的显示效果,包括第一显示效果1010、第二显示效果1020、第三显示效果1030和第四显示效果1040。其中,第一显示效果1010是指目标纹样1001以初始尺寸(初始状态)显示在衣服中间位置时对应的边缘描绘结果,第二显示效果1020是指通过移动操作将目标纹样1001以初始尺寸移动至衣服左侧时对应的边缘描绘结果,第三显示效果1030是指通过旋转操作将目标纹样1001逆时针旋转90度后对应的边缘描绘结果,第四显示效果1040是指通过旋转操作将目标纹样1001逆时针旋转90度后并且通过缩小操作缩小目标纹样1001的尺寸后对应的边缘描绘结果。由图10可以看出,当对目标纹样进行变换时,其对应的边缘描绘结果也随之发生改变。
步骤820,基于贴图调整操作,确定目标贴图在三维模型上的附着效果。
示意性的,根据贴图调整操作,确定目标纹样对应的纹样贴图附着渲染在三维模型上的显示效果。
步骤830,获取贴图集合。
其中,贴图集合中包括多个候选贴图,多个候选贴图对应不同像素分辨率。
本实施例中,以目标贴图为包含目标纹样的贴图为例进行说明。
示意性的,当目标贴图实现为纹样贴图时,纹样包含多种类型,其中,包括边缘较清晰明显的纹样,以及边缘模糊且不清晰的纹样,示意性的,请参考图11,其示出了本申请一个示例性实施例提供的纹样类型示意图,如图11所示,当前显示两种不同类型的纹样1110和纹样1120,其中,纹样1110属于边缘比较明显且规则的类型,纹样1120属于边缘比较模糊且不规则的类型。
当目标贴图属于边缘比较明显且规则的类型的纹样贴图时,采用上述实施例中的相关步骤进行纹理采样和像素点邻域采样能够实现纹样贴图的边缘描绘结果的线条平滑度较好。
当目标贴图属于边缘模糊且不清晰类型的纹样贴图时,采用上述实施例中相关步骤直接进行纹样采样和像素点邻域采样时会使得纹样贴图的边缘描绘结果呈现不规则,线条平滑度较差的效果,影响轮廓线条美观性。因此,通过获取纹样对应的Mipmap集合,Mipmap集合中包括不同像素分辨率对应的纹样贴图,作为纹样贴图的Mipmap。其中,在制作游戏中纹理资源时,需要制作对应的mipmap资源并包含在贴图中,不同像素分辨率的Mipmap作为不同级别的Mipmap,也即,不同像素分辨率的Mipmap对应不同的Mipmap Level。
本实施例中,采用纹样贴图的Mipmap进行纹理采样时,纹样贴图的Mipmap会产生一个近似模糊的效果,示意性的,如图12所示,其示出了本申请一个示例性实施例提供的Mipmap显示效果示意图,当前显示不同Mipmap Level分别对应的第一显示效果图1210、第二显示效果图1220和第三显示效果图1330,其中,第一显示效果图1210采用Leve1=1的Mipmap贴图,第二显示效果图1220采用Leve1=2的Mipmap贴图,第三显示效果图1230采用Leve1=3的Mipmap贴图。由图12看出,使用级别越高的Mipmap贴图能够使得贴图显示的模糊效果更好,纹样贴图的边缘更加平滑。
步骤840,从贴图集合中确定与三维模型的模型分辨率适配的候选贴图,作为目标贴图。
在一些实施例中,获取贴图偏移量,贴图偏移量用于指示候选贴图的像素分辨率与三维模型的模型分辨率之间的适配关系;基于贴图偏移量,从贴图集合中确定与贴图偏移量对应的候选贴图,作为目标贴图。
在一个可选的情况下,通过采样(Sample)方法,自动确定Mipmap Level后,选择与Mipmap Level对应的Mipmap作为目标贴图,对目标贴图中像素点进行采样。
在确定Mipmap Level的过程中,根据观察者与目标纹样对应的纹样贴图之间的目标距离,显卡自动判断需要使用哪一个Level的Mipmap,其中,观察者通常是指对目标纹样进行拍摄后进行显示的摄像机,如:每个Level的Mipmap都对应设有距离阈值,当目标距离达到指定Level对应的距离阈值时,将该指定Level的Mipmap作为目标贴图。也即,通过贴图调整操作确定纹样贴图在衣服上的附着效果后,根据附着效果自动从贴图集合中选择与三维模型的模型分辨率适配的候选贴图。
在一个可选的情况下,手动设置贴图偏移量(Bias),当显卡通过上述Sample方法计算得到指定Level对应的Mipmap的基础上自动加上贴图偏移量,用于获取对Level进行偏移后,级别更高的Mipmap,作为目标贴图。本实施例中,通过DirectX 12编程接口(dx12)对应的SampleBias方法,在显卡计算得到Mipmap Level后,自动加上输入的贴图偏移量,从而确定目标贴图。
示意性的,请参考图13,其示出了本申请一个示例性根据偏移量进行纹理采样效果图,如图13所示,当前显示第一边缘描绘结果1310、第二边缘描绘结果1320和第三边缘描绘结果1330,分别增加Mipmap的Level的贴图偏移量为1、3、4后最终得到的边缘描绘结果,由图13可知,当贴图偏移量越大时,纹样贴图的边缘越模糊,进而导致纹样贴图的轮廓线条越平滑。
步骤850,对目标贴图在三维模型上的附着效果进行纹理采样,得到纹理绘制结果。
其中,纹理绘制结果用于指示目标贴图的像素点在三维模型上的显示浓度,显示浓度与目标贴图在三维模型上的透明度情况关联。
本实施例中,首先进行第一个Pass:将衣服对应的三维模型渲染一遍到一个新的OutlineRT,然后根据三维模型进行顶点变换和纹理映射变换,分别得到三维模型的顶点着色结果和纹理坐标。根据纹理坐标对指定Level的Mipmap贴图进行纹理采样,得到纹样贴图在衣服上显示的透明度,作为显示浓度a。根据显示浓度a,输出结果Result,其中,Result中的R通道为A、G通道为1,B和A通道皆为0,最终得到第一个Pass对应的纹理绘制结果。
步骤860,对纹理绘制结果进行像素点邻域采样,得到邻域采样结果。
其中,邻域采样结果用于指示目标贴图的像素点在三维模型上的分布位置。
本实施例中,将第一Pass输出的纹理绘制结果作为第二Pass的输入,第二Pass输出为最终显示的衣服对应的目标RT。
在第二Pass中,首先通过对OutlineRT中每个绘制像素点对应的八个方向上的邻域进行采样,邻域的宽度可参考上述公式一,得到采样结果r0至r7,根据纹理绘制结果确定每个邻域中的邻域像素点对应的显示浓度,作为邻域采样结果。
步骤870,基于邻域采样结果确定目标贴图在三维模型上的边缘描绘结果。
其中,边缘描绘结果用于指示目标贴图在三维模型上显示对应的轮廓线条。
本实施例中,通过预设浓度阈值,根据邻域采样结果将模型像素点对应的邻域像素点对应的显示浓度和浓度阈值进行对比,若模型像素点对应的邻域像素点对应的显示浓度均大于/小于浓度阈值,则表示该模型像素点为非边缘像素点,若存在模型像素点对应的部分邻域像素点对应的显示浓度大于浓度阈值,且部分邻域像素点对应的显示浓度小于浓度阈值,则表示该模型像素点为边缘像素点。边缘像素点输出对应的预设颜色像素值,非边缘像素点输出0,最终根据输出的像素值显示目标贴图在三维模型上的轮廓线条。
综上所述,本申请实施例提供的边缘描绘方法,当获取附着渲染在三维模型上的目标贴图后,首先对目标贴图在三维模型上的附着效果进行纹理采样,得到目标贴图在三维模型上的透明度情况,再对三维模型进行像素点邻域采样,确定目标贴图的像素点在三维模型上的分布位置,最终根据透明度情况和分布位置,显示目标贴图在三维模型上的轮廓线条作为边缘描绘结果。也即,通过纹理采样的方式确定目标贴图在三维模型上的附着效果从而得到目标贴图在三维模型上的边缘描绘结果,能够针对贴图实时调整的场景下,提高目标贴图在三维模型上进行显示的线条流畅度,进而提高显示效果。
本实施例中,通过选择与三维模型的模型分辨率适配的候选贴图作为附着渲染在三维模型上的目标贴图,能够降低显卡的处理计算量,提高模型渲染的效率。
本实施例中,通过确定贴图偏移量,从而在获取候选贴图的基础上增加贴图偏移量从而获取Mipmap Level更高的Mipmap作为目标贴图,能够使得贴图产生模糊效果,对于处理边缘不清晰的目标贴图的情况下,提高目标贴图轮廓线条的平滑度。
本实施例中提供的方法能够使得纹样贴图的边缘线条粗细均匀,且能够适应不同边缘类型的纹样,提高边缘线条的平滑度,使边缘较为整洁。
图14是本申请一个示例性实施例提供的边缘描绘装置的结构框图,如图14所示,该装置包括如下部分:
获取模块1410,用于获取目标贴图,所述目标贴图是附着渲染在三维模型上的贴图;
采样模块1420,用于对所述目标贴图在所述三维模型上的附着效果进行纹理采样,得到纹理绘制结果,所述纹理绘制结果中包括所述目标贴图的像素点在所述三维模型上的显示浓度,所述显示浓度与所述目标贴图在所述三维模型上的透明度情况关联;
所述采样模块1420,还用于对所述纹理绘制结果进行像素点邻域采样,得到邻域采样结果,所述邻域采样结果用于指示所述目标贴图的像素点在所述三维模型上的分布位置;
确定模块1430,用于基于所述邻域采样结果确定所述目标贴图在所述三维模型上的边缘描绘结果,所述边缘描绘结果用于指示所述目标贴图在所述三维模型上显示对应的轮廓线条。
在一些实施例中,如图15所示,所述采样模块1420,包括:
获取单元1421,用于获取所述三维模型对应的像素点集合,所述像素点集合中包括多个模型像素点;
变换单元1422,用于基于所述模型像素点对所述三维模型进行纹理映射变换,得到所述多个模型像素点分别对应的纹理坐标;
采样单元1423,用于基于所述多个模型像素点分别对应的纹理坐标对所述目标贴图进行所述纹理采样,得到所述多个模型像素点分别对应的显示浓度,作为所述纹理绘制结果。
在一些实施例中,所述变换单元1422,还用于基于所述模型像素点对所述三维模型进行顶点变换,得到所述三维模型对应的顶点着色结果,作为所述纹理绘制结果,所述顶点着色结果用于指示所述三维模型的顶点位置。
在一些实施例中,所述采样模块1420,还用于确定所述纹理绘制结果中多个绘制像素点分别对应的邻域采样区域;对所述邻域采样区域进行像素点邻域采样,得到所述绘制像素点对应的多个邻域像素点分别对应的显示浓度,作为所述邻域采样结果。
在一些实施例中,所述采样模块1420,还用于获取预设线条宽度,以及预设系数;基于所述线条宽度和所述预设系数确定所述领域采样区域。
在一些实施例中,所述确定模块1430,还用于获取预设浓度阈值;将所述绘制像素点对应的多个邻域像素点分别对应的显示浓度与所述预设浓度阈值进行对比,得到所述多个邻域像素点分别对应的浓度对比结果;响应于所述多个邻域像素点分别对应的浓度对比结果不一致,确定所述绘制像素点为边缘像素点;输出所述边缘像素点对应的预设边缘颜色值,作为所述边缘描绘结果。
在一些实施例中,所述确定模块1430,还用于响应于所述多个邻域像素点分别对应的浓度对比结果一致,确定所述绘制像素点为非边缘像素点;输出所述非边缘像素点对应的非边缘颜色值。
在一些实施例中,所述获取模块1410,还用于获取贴图集合,所述贴图集合中包括多个候选贴图,所述多个候选贴图对应不同像素分辨率;从所述贴图集合中确定与所述三维模型的模型分辨率适配的候选贴图,作为所述目标贴图。
在一些实施例中,所述获取模块1410,还用于获取贴图偏移量,所述贴图偏移量用于指示所述候选贴图的像素分辨率与所述三维模型的模型分辨率之间的适配关系;基于所述贴图偏移量,从所述贴图集合中确定与所述贴图偏移量对应的候选贴图,作为所述目标贴图。
在一些实施例中,如图15所示,所述装置还包括:
接收模块1440,用于接收贴图调整操作;
所述确定模块1430,还用于基于所述贴图调整操作,确定所述目标贴图在所述三维模型上的附着效果。
综上所述,本申请实施例提供的边缘描绘装置,当获取附着渲染在三维模型上的目标贴图后,首先对目标贴图在三维模型上的附着效果进行纹理采样,得到包含目标贴图在三维模型上的透明度情况的纹理绘制结果,再对纹理绘制结果进行像素点邻域采样,确定目标贴图的像素点在三维模型上的分布位置,从而得到目标贴图在三维模型上的轮廓线条作为边缘描绘结果进行着色显示。也即,通过纹理采样的方式确定目标贴图在三维模型上的附着效果从而得到目标贴图在三维模型上的边缘描绘结果,能够针对贴图实时调整的场景下,提高目标贴图在三维模型上进行显示的线条流畅度,进而提高显示效果。
需要说明的是:上述实施例提供的边缘描绘装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的边缘描绘装置与边缘描绘方法实施例属于同一构思,其具体实现过程详见方法实施例,此处不再赘述。
图16示出了本申请一个示例性实施例提供的服务器的结构示意图。具体来讲:
服务器1600包括中央处理单元(Central Processing Unit,CPU)1601、包括随机存取存储器(Random Access Memory,RAM)1602和只读存储器(Read Only Memory,ROM)1603的***存储器1604,以及连接***存储器1604和中央处理单元1601的***总线1605。服务器1600还包括用于存储操作***1613、应用程序1614和其他程序模块1615的大容量存储设备1606。
大容量存储设备1606通过连接到***总线1605的大容量存储控制器(未示出)连接到中央处理单元1601。大容量存储设备1606及其相关联的计算机可读介质为服务器1600提供非易失性存储。也就是说,大容量存储设备1606可以包括诸如硬盘或者紧凑型光盘只读存储器(Compact Disc Read Only Memory,CD-ROM)驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、带电可擦可编程只读存储器(Electrically Erasable Programmable Read Only Memory,EEPROM)、闪存或其他固态存储技术,CD-ROM、数字通用光盘(Digital Versatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的***存储器1604和大容量存储设备1606可以统称为存储器。
根据本申请的各种实施例,服务器1600还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1600可以通过连接在***总线1605上的网络接口单元1611连接到网络1612,或者说,也可以使用网络接口单元1611来连接到其他类型的网络或远程计算机***(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。
本申请的实施例还提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的边缘描绘方法。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行,以实现上述各方法实施例提供的边缘描绘方法。
本申请的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中任一所述的边缘描绘方法。
可选地,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、固态硬盘(SSD,Solid State Drives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (14)
1.一种边缘描绘方法,其特征在于,所述方法包括:
获取目标贴图,所述目标贴图是附着渲染在三维模型上的贴图;
对所述目标贴图在所述三维模型上的附着效果进行纹理采样,得到纹理绘制结果,所述纹理绘制结果中包括所述目标贴图的像素点在所述三维模型上的显示浓度,所述显示浓度与所述目标贴图在所述三维模型上的透明度情况关联;
对所述纹理绘制结果进行像素点邻域采样,得到邻域采样结果,所述邻域采样结果用于指示所述目标贴图的像素点在所述三维模型上的分布位置;
基于所述邻域采样结果确定所述目标贴图在所述三维模型上的边缘描绘结果,所述边缘描绘结果用于指示所述目标贴图在所述三维模型上显示对应的轮廓线条。
2.根据权利要求1所述的方法,其特征在于,所述对所述目标贴图在所述三维模型上的附着效果进行纹理采样,得到纹理绘制结果,包括:
获取所述三维模型对应的像素点集合,所述像素点集合中包括多个模型像素点;
基于所述模型像素点对所述三维模型进行纹理映射变换,得到所述多个模型像素点分别对应的纹理坐标;
基于所述多个模型像素点分别对应的纹理坐标对所述目标贴图进行所述纹理采样,得到所述多个模型像素点分别对应的显示浓度。
3.根据权利要求2所述的方法,其特征在于,所述基于所述多个模型像素点分别对应的纹理坐标对所述目标贴图进行所述纹理采样,得到所述多个模型像素点分别对应的显示浓度之前,还包括:
基于所述模型像素点对所述三维模型进行顶点变换,得到所述三维模型对应的顶点着色结果,作为所述纹理绘制结果,所述顶点着色结果用于指示所述三维模型的顶点位置。
4.根据权利要求2所述的方法,其特征在于,所述对所述纹理绘制结果进行像素点邻域采样,得到邻域采样结果,包括:
确定所述纹理绘制结果中多个绘制像素点分别对应的邻域采样区域;
对所述邻域采样区域进行像素点邻域采样,得到所述绘制像素点对应的多个邻域像素点分别对应的显示浓度,作为所述邻域采样结果。
5.根据权利要求4所述的方法,其特征在于,所述确定所述纹理绘制结果中多个绘制像素点分别对应的邻域采样区域,包括:
获取预设线条宽度,以及预设系数;
基于所述线条宽度和所述预设系数确定所述领域采样区域。
6.根据权利要求4所述的方法,其特征在于,所述基于所述邻域采样结果确定所述目标贴图在所述三维模型上的边缘描绘结果,包括:
获取预设浓度阈值;
将所述绘制像素点对应的多个邻域像素点分别对应的显示浓度与所述预设浓度阈值进行对比,得到所述多个邻域像素点分别对应的浓度对比结果;
响应于所述多个邻域像素点分别对应的浓度对比结果不一致,确定所述绘制像素点为边缘像素点;
输出所述边缘像素点对应的预设边缘颜色值,作为所述边缘描绘结果。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
响应于所述多个邻域像素点分别对应的浓度对比结果一致,确定所述绘制像素点为非边缘像素点;
输出所述非边缘像素点对应的非边缘颜色值。
8.根据权利要求1至7任一所述的方法,其特征在于,所述获取目标贴图,包括:
获取贴图集合,所述贴图集合中包括多个候选贴图,所述多个候选贴图对应不同像素分辨率;
从所述贴图集合中确定与所述三维模型的模型分辨率适配的候选贴图,作为所述目标贴图。
9.根据权利要求8所述的方法,其特征在于,所述从所述贴图集合中确定与所述三维模型的模型分辨率适配的候选贴图,作为所述目标贴图,包括:
获取贴图偏移量,所述贴图偏移量用于指示所述候选贴图的像素分辨率与所述三维模型的模型分辨率之间的适配关系;
基于所述贴图偏移量,从所述贴图集合中确定与所述贴图偏移量对应的候选贴图,作为所述目标贴图。
10.根据权利要求1至7任一所述的方法,其特征在于,所述对所述目标贴图在所述三维模型上的附着效果进行纹理采样之前,还包括:
接收贴图调整操作;
基于所述贴图调整操作,确定所述目标贴图在所述三维模型上的附着效果。
11.一种边缘描绘装置,其特征在于,所述装置包括:
获取模块,用于获取目标贴图,所述目标贴图是附着渲染在三维模型上的贴图;
采样模块,用于对所述目标贴图在所述三维模型上的附着效果进行纹理采样,得到纹理绘制结果,所述纹理绘制结果中包括所述目标贴图的像素点在所述三维模型上的显示浓度,所述显示浓度与所述目标贴图在所述三维模型上的透明度情况关联;
所述采样模块,还用于对所述纹理绘制结果进行像素点邻域采样,得到邻域采样结果,所述邻域采样结果用于指示所述目标贴图的像素点在所述三维模型上的分布位置;
确定模块,用于基于所述邻域采样结果确定所述目标贴图在所述三维模型上的边缘描绘结果,所述边缘描绘结果用于指示所述目标贴图在所述三维模型上显示对应的轮廓线条。
12.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一段程序,所述至少一段程序由处理器加载并执行以实现如权利要求1至10任一所述的边缘描绘方法。
13.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一段程序,所述至少一段程序由处理器加载并执行以实现如权利要求1至10任一所述的边缘描绘方法。
14.一种计算机程序产品,其特征在于,包括计算机指令,所述计算机指令被处理器执行时实现如权利要求1至10任一所述的边缘描绘方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211105477.7A CN116993888A (zh) | 2022-09-09 | 2022-09-09 | 边缘描绘方法、装置、设备、存储介质及计算机程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211105477.7A CN116993888A (zh) | 2022-09-09 | 2022-09-09 | 边缘描绘方法、装置、设备、存储介质及计算机程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116993888A true CN116993888A (zh) | 2023-11-03 |
Family
ID=88532711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211105477.7A Pending CN116993888A (zh) | 2022-09-09 | 2022-09-09 | 边缘描绘方法、装置、设备、存储介质及计算机程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116993888A (zh) |
-
2022
- 2022-09-09 CN CN202211105477.7A patent/CN116993888A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
US9013499B2 (en) | Methods and apparatus for multiple texture map storage and filtering including irregular texture maps | |
US8294726B2 (en) | Methods and apparatus for multiple texture map storage and filtering | |
US7652675B2 (en) | Dynamically adjusted brush for direct paint systems on parameterized multi-dimensional surfaces | |
CN1322474C (zh) | 将多个输入图像混合为输出图像的方法 | |
US7884825B2 (en) | Drawing method, image generating device, and electronic information apparatus | |
US11600044B2 (en) | Rendering textures utilizing sharpness maps | |
BRPI0300983B1 (pt) | método para proporcionar amostragem de textura controlável e dispositivo de co-processamento | |
CN100399358C (zh) | 图像处理装置及其方法 | |
CN111127623A (zh) | 模型的渲染方法、装置、存储介质及终端 | |
CN112184575A (zh) | 图像渲染的方法和装置 | |
CN113658316B (zh) | 三维模型的渲染方法和装置、存储介质及计算机设备 | |
Kawasaki et al. | Microfacet billboarding | |
CN116917946A (zh) | 提供临时纹理应用以增强3d建模的方法和*** | |
WO1996013018A1 (en) | Methods and apparatus for rapidly rendering photo-realistic surfaces on 3-dimensional wire frames automatically | |
Umenhoffer et al. | An image-based method for animated stroke rendering | |
CN116402934A (zh) | 一种面向三维重建的自动纹理贴图方法、终端及存储介质 | |
CN116993888A (zh) | 边缘描绘方法、装置、设备、存储介质及计算机程序产品 | |
Liu et al. | Fog effect for photography using stereo vision | |
US11043015B2 (en) | Generating reflections within images | |
US7880743B2 (en) | Systems and methods for elliptical filtering | |
Hoppe et al. | Adaptive meshing and detail-reduction of 3D-point clouds from laser scans | |
CN117523074A (zh) | 一种面向Web端批量动态切换建筑白模纹理的方法及装置 | |
Ahokas | Shadow Maps | |
CN117292032A (zh) | 序列帧的生成方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |