对象的渲染方法和装置与流程

文档序号:11408883阅读:190来源:国知局
对象的渲染方法和装置与流程
本发明涉及图像处理领域,具体而言,涉及一种对象的渲染方法和装置。
背景技术
:在游戏、动漫等领域中时常用到pr和npr技术,pr(photorealisticrendering)即照片真实级渲染,是指通过对真实物理光影的研究,做出真实世界的渲染效果;npr(non-photorealisticrendering)即非照片真实级渲染,是指通过研究画家透过画笔勾勒出的抽象意境,做出与该抽象意境类似的渲染效果,是计算机图形学的一类,主要用于模拟艺术式绘画风格,也用于发展新绘制风格。和传统的追求真实感的计算机图形学不同,npr受到油画、素描、技术图纸以及动画卡通的影响,所以目前在该领域发展较多而且较成熟的一般与西方绘画艺术有关,如素描画、钢笔画、碳笔画、水彩画、卡通画等,对于中国水墨画的研究则较少。上述的npr技术往往应用于实时渲染,在实时渲染时计算机实时生成图像,每秒钟生成足够的帧,从而可以通过渲染得到的图像和用户产生交互。实时渲染主要包括如下几个步骤:步骤1,计算cpu基于3d几何空间对实时3d图像(即三维图形)进行处理,进行轮廓边的查找;步骤2,计算机cpu锁住z-buffer进行逐个轮廓边顶点比较剔除,也即进行轮廓边顶点的可视性剔除,仅保留可见轮廓边顶点;步骤3,连接轮廓边顶点成笔划,具体是cpu进行逐个可见轮廓边顶点位置比较,进行笔划连接;步骤4,笔划裹上画家笔触,例如以带有alpha通道的纹理,作为贴图贴到一个三角形上用来产生笔触。上述的z-buffer(z缓存)是在为物件进行着色时,执行“隐藏面消除”工作的一项技术,所以隐藏物件背后的部分就不会被显示出来。在上述实时处理的过程中,所有的步骤均是由计算机cpu完成,且进行实时渲染时处理的是三维图像、在进行轮廓边顶点的可视性剔除是通过z-buffer实现,需要进行大量的数据运算处理,由于是基于cpu进行一系列的关键处理,且数据处理量较大,所以对cpu的运算资源量消耗较大,使得在cpu性能相对较低的电脑上运行实时渲染会相当吃力。针对相关技术中进行实时渲染时对计算机cpu的运算资源消耗量较大的技术问题,目前尚未提出有效的解决方案。技术实现要素:本发明实施例提供了一种对象的渲染方法和装置,以至少解决相关技术中进行实时渲染时对计算机cpu的运算资源消耗量较大的技术问题。根据本发明实施例的一个方面,提供了一种对象的渲染方法,包括:获取对目标对象进行图像采集得到的二维图像;在二维图像的所有像素点中识别出第一像素点集合,其中,第一像素点集合中的像素点为目标对象的轮廓上的点;通过调用图像处理器在第一像素点集合中识别出一个或多个第二像素点集合,其中,每个第二像素点集合中的像素点用于指示目标对象的轮廓中的一条线段;分别将每个第二像素点集合中的像素点连接成目标对象的轮廓中的一条线段,并按照预定渲染方式显示连接得到的每条线段。根据本发明实施例的另一方面,还提供了一种对象的渲染装置,包括:获取单元,用于获取对目标对象进行图像采集得到的二维图像;第一识别单元,用于在二维图像的所有像素点中识别出第一像素点集合,其中,第一像素点集合中的像素点为目标对象的轮廓上的点;第二识别单元,用于通过调用图像处理器在第一像素点集合中识别出一个或多个第二像素点集合,其中,每个第二像素点集合中的像素点用于指示目标对象的轮廓中的一条线段;渲染单元,用于分别将每个第二像素点集合中的像素点连接成目标对象的轮廓中的一条线段,并按照预定渲染方式显示连接得到的每条线段。在本发明实施例中,处理器直接获取对目标对象进行图像采集得到的二维图像,在二维图像的所有像素点中识别出用于表征目标对象的轮廓的第一像素点集合,通过调用图像处理器在第一像素点集合中识别出一个或多个第二像素点集合,分别将每个第二像素点集合中的像素点连接成目标对象的轮廓中的一条线段,并按照预定渲染方式显示连接得到的每条线段,由于处理的是二维图形,故而处理的数据量会大量减小,同时将顶点查询这类负荷较重的数据处理任务交由图像处理器完成,可以解决相关技术中进行实时渲染时对计算机cpu的运算资源消耗量较大的技术问题,进而达到降低实时渲染时计算机cpu的运算资源消耗量的技术效果。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是根据本发明实施例的对象的渲染方法的硬件环境的示意图;图2是根据本发明实施例的一种可选的对象的渲染方法的流程图;图3是根据本发明实施例的一种可选的目标对象的示意图;图4是根据本发明实施例的一种可选的目标对象的示意图;图5是根据本发明实施例的一种可选的物体边缘纹理的示意图;图6是根据本发明实施例的一种可选的轮廓线上的像素点的示意图;图7是根据本发明实施例的一种可选的轮廓线上的顶点的示意图;图8是根据本发明实施例的一种可选的笔画的示意图;图9是根据本发明实施例的一种可选的笔画带的示意图;图10是根据本发明实施例的一种可选的笔触的示意图;图11是根据本发明实施例的一种可选的渲染图像的示意图;图12是根据本发明实施例的多种可选的笔触的示意图;图13是根据本发明实施例的一种可选的渲染图像的示意图;图14是根据本发明实施例的一种可选的对象的渲染装置的示意图;以及图15是根据本发明实施例的一种终端的结构框图。具体实施方式为了使本
技术领域
的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。实施例1根据本发明实施例,提供了一种对象的渲染方法的方法实施例。可选地,在本实施例中,上述对象的渲染方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于pc、手机、平板电脑等。本发明实施例的对象的渲染方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的对象的渲染方法也可以是由安装在其上的客户端来执行。图2是根据本发明实施例的一种可选的对象的渲染方法的流程图,如图2所示,该方法可以包括以下步骤:步骤s202,获取对目标对象进行图像采集得到的二维图像;步骤s204,在二维图像的所有像素点中识别出第一像素点集合,第一像素点集合中的像素点为目标对象的轮廓上的点;步骤s206,通过调用图像处理器在第一像素点集合中识别出一个或多个第二像素点集合,每个第二像素点集合中的像素点用于指示目标对象的轮廓中的一条线段;步骤s208,分别将每个第二像素点集合中的像素点连接成目标对象的轮廓中的一条线段,并按照预定渲染方式显示连接得到的每条线段。通过上述步骤s202至步骤s208,处理器直接获取对目标对象进行图像采集得到的二维图像,在二维图像的所有像素点中识别出用于表征目标对象的轮廓的第一像素点集合,通过调用图像处理器在第一像素点集合中识别出一个或多个第二像素点集合,分别将每个第二像素点集合中的像素点连接成目标对象的轮廓中的一条线段,并按照预定渲染方式显示连接得到的每条线段,由于处理的是二维图形,故而处理的数据量会大量减小,同时将顶点查询这类负荷较重的数据处理任务交由图像处理器完成,可以解决相关技术中进行实时渲染时对计算机cpu的运算资源消耗量较大的技术问题,进而达到降低实时渲染时计算机cpu的运算资源消耗量的技术效果。上述的步骤s202至步骤s208可以在处理器中执行,如在计算机、移动设备的中央处理器cpu中执行。上述的目标对象可以为人物、动物、物体、环境等具象化的特征,在实际应用中,该目标对象可以为一个或多个;二维图形具体可以为深度纹理图片,或者携带每个像素的深度值的二维图片;上述的轮廓是指目标对象的边沿,如茶壶、人物等与自然环境或者其它物相区分的轮廓线;第一像素点集合中保存的像素点即所有识别出的轮廓上的点;第二像素点集合中保存的为识别出的属于同一线段的所有像素点。上述的预定渲染方式包括但不局限于素描画、钢笔画、炭笔画、水彩画、卡通画以及水墨画等渲染方式。上述的方法主要用于非照片真实级npr渲染,但不局限于此。在步骤s202提供的技术方案中,获取对目标对象进行图像采集得到的二维图像包括:获取采集到的类型为深度纹理类型的二维图像,其中,类型为深度纹理类型的二维图像中携带有像素点的深度值。具体地,可直接渲染目标对象得到该目标对象的深度纹理。在步骤s204提供的技术方案中,在二维图像的所有像素点中识别出第一像素点集合包括:对于二维图像的所有像素点中的每个像素点,执行以下步骤,其中,每个像素点在执行以下步骤时被记为当前像素点:获取当前像素点的深度变化值,其中,深度变化值用于指示当前像素点的多个相邻像素点之间的深度变化程度;在当前像素点的深度变化值大于等于预定的深度变化阈值的情况下,确定当前像素点为第一像素点集合中的像素点。在获取当前像素点的深度变化值时,可以通过如下方式实现:获取第一滤波器对多个相邻像素点进行第一过滤处理得到的第一深度变化值,其中,第一深度变化值用于表示多个相邻像素点之间在第一方向上的深度变化程度;获取第二滤波器对多个相邻像素点进行第二过滤处理得到的第二深度变化值,其中,第二深度变化值用于表示多个相邻像素点之间在第二方向上的深度变化程度,第二方向与第一方向不同;根据第一深度变化值和第二深度变化值确定当前像素点的深度变化值。可选地,获取第一滤波器对多个相邻像素点进行第一过滤处理得到的第一深度变化值包括:获取第一滤波器按照第一公式进行第一过滤处理得到的第一深度变化值,其中,第一公式用于计算多个相邻像素点中在第一方向上相邻的像素点的第一深度参数之和,第一深度参数为在第一方向上相邻的像素点的深度值与对应的影响因子的乘积。对于当前像素点而言,一般包括与之相邻并且围绕在当前像素点周围的8个像素点,可以将当前像素点记为s11,那么其左上角的像素点为s00,正上方的像素点为s01,右上角的像素点为s11,正左侧的像素点为s10,正右侧的像素点为s12,左下角的像素点为s20,正下方的像素点为s21,右下角的像素点为s22。上述的第一方向可以为纵向,第一公式为sobelx=s00+2*s10+s20-s02-2*s12-s22,sobelx表示第一深度变化值,s00、s10、s20、s02、s12、s22为对应位置的像素的深度值,系数1、2、1、-1、-2、-1为相应像素的影响因子。可选地,获取第二滤波器对多个相邻像素点进行第二过滤处理得到的第二深度变化值包括:获取第二滤波器按照第二公式进行第二过滤处理得到的第二深度变化值sobely,其中,第二公式用于计算多个相邻像素点中在第二方向上相邻的像素点的第二深度参数之和,第二深度参数为在第二方向上相邻的像素点的深度值与对应的影响因子的乘积。上述的第二方向可以为横向,第二公式为sobely=s00+2*s01+s02-s20-2*s21-s22,sobely表示第二深度变化值,s00、s01、s02、s20、s21、s22为对应位置的像素的深度值,1、2、1、-1、-2、-1为相应像素的影响因子。可选地,根据第一深度变化值和第二深度变化值确定当前像素点的深度变化值包括:将当前像素点的深度变化值设置为第一深度变化值的平方与第二深度变化值的平方之和。在确定了第一深度变化值sobelx和第二深度变化值sobely之后,可以按照如下公式确定当前像素点的深度变化值edgesqr。edgesqr=(sobelx*sobelx+sobely*sobely)。在步骤s206提供的技术方案中,通过调用图像处理器在第一像素点集合中识别出一个或多个第二像素点集合包括:发送顶点查询请求至图像处理器,其中,顶点查询请求中携带有第一像素点集合中像素点的位置信息和深度信息;接收图像处理器的响应信息,其中,响应信息用于指示第一像素点集合中像素点是否属于第二像素点集合。上述的图像处理器gpu具备顶点纹理处理功能,在使用该功能时,将模型的所有顶点以画点的方式向gpu进行查询,如果该顶点是在轮廓线上,那么就把它绘制出来,否则不绘制,这个结果会以查询结果(即响应信息)的方式反馈给cpu,最终就会得到哪些顶点在轮廓线上的第二像素点集合。在本申请的实施例中,cpu的处理复杂度和模型有关,如果模型顶点少,则可以以很高的fps(每秒传输帧的数量)运行,但是如果模型顶点较多的模型则会相当吃力,如果采用gpu来进行处理,由于gpu是专用于图像处理的处理器,可通过硬件加速的方式加快处理速度,将cpu解放出来,降低对其处理资源的占用,从而可以实现较高的fps(每秒传输帧数)。在步骤s208提供的技术方案中,分别将每个第二像素点集合中的像素点连接成目标对象的轮廓中的一条线段包括:按照预设条件将第二像素点集合中的像素点串联成一条线段,其中,一条线段至少包括一个笔画,预设条件用于指示每个笔画包括的像素点数目、笔画长度以及笔画包括的相邻的像素点间的转角角度中的至少之一。具体可在cpu中将得到的轮廓线顶点进行串联成笔画,串联后可以根据一个笔画的顶点数目,笔画长度,顶点之间的转角角度来决定如何将笔画进行断连,最后形成独立的笔画。可选地,按照预定渲染方式显示连接得到的每条线段包括:将每个笔画扩展成为笔画带;使用与预定渲染方式对应的笔触对笔画带进行绘制,其中,预定渲染方式包括素描画、钢笔画、炭笔画、水彩画、卡通画以及水墨画。具体可应用笔触将笔画的顶点在屏幕空间扩展成笔画带,为套用笔触做准备,然后给每个笔画带套用相应的笔触,最终得到满足需求的图像。本发明还提供了一种优选实施例,该优选实施例如图3所示,需要对游戏中的如图4所示的黑色椭圆(即目标对象)进行渲染:步骤s302,获取物体的轮廓线。上述的步骤s302可以通过两个子步骤实现,具体如子步骤s3022和s3024所示。步骤s3022,获取深度纹理,可以直接渲染物体得到物体的深度纹理,具体如图4所示。步骤s3024,通过使用过滤器进行过滤处理得到轮廓线像素。绘制与屏幕大小相同的矩形框,对得到的深度纹理图片进行采样,在pixelshader中按照如下方式进行处理。表1示出的为横向过滤器对深度纹理进行过滤所使用的矩阵。表110-120-210-1表2示出的为纵向过滤器对深度纹理进行过滤所使用的矩阵。表2121000-1-2-1需要说明的是,表1和表2中示出的影响因子为可选的,具体可以根据实际需求进行选取。表3示出的为当前像素及相邻像素的位置关系以及像素的深度值,其中深度值所在的表格的位置即该像素的位置,表3中s11表示当前像素,具有与之相邻的8个像素。表3s00s01s02s10s11s12s20s21s22利用表1示出的矩阵与表3示出的矩阵执行矩阵相乘可以得到实际的用于过滤的第一公式sobelx=s00+2*s10+s20-s02-2*s12-s22,sobelx表示第一深度变化值,s00、s10、s20、s02、s12、s22为对应位置的像素的深度值;利用表2示出的矩阵与表3示出的矩阵执行矩阵相乘可以得到实际的第二公式sobely=s00+2*s01+s02-s20-2*s21-s22,sobely表示第二深度变化值,s00、s01、s02、s20、s21、s22为对应位置的像素的深度值。在确定了第一深度变化值sobelx和第二深度变化值sobely之后,可以按照如下公式确定当前像素点的深度变化值edgesqr。edgesqr=(sobelx*sobelx+sobely*sobely)。采用横向和纵向过滤器对深度纹理进行过滤,逐像素处理,并且对当前像素的周围8个像素也进行采样,s11表示当前像素,edgesqr表示当前像素周围像素的值的变化程度,如果edgesqr大于一个阀值n,则说明当前像素周围的像素的值变化激烈,由于是使用深度信息得到的,那么说明当前像素周围像素的深度变化激烈,则说明当前像素是物体的轮廓。输出到轮廓纹理上,如果edgesqr小于阀值n,那么说明当前像素不是物体的轮廓,则向纹理输出0。对图4所示的深度纹理进行过滤处理得到轮廓线像素如图5所示,图5中椭圆线条即得到的物体边缘纹理。步骤s304,获取模型的轮廓顶点,具体是通过中央处理器cpu调用图像处理器gpu进行查询来实现。上述的gpu具备顶点纹理处理功能,使用该功能时,将模型的所有顶点以画点的方式向gpu进行查询,具体可以将如图6所示的所有顶点发送给gpu进行查询(其中虚线连接的顶点为实际上在轮廓线上的顶点,但是对于cpu而言其并不知晓),如果该顶点是在轮廓线上,那么就把它绘制出来,否则不绘制,这个结果会以查询结果的方式反馈给cpu,最终就会得到哪些顶点在轮廓线上的列表,具体如图7所示,最终可以通过gpu识别出所有顶点中在轮廓线上的顶点。步骤s306,处理轮廓线,连成笔画。在cpu中将得到的轮廓线顶点进行串联成笔画,串联后可以根据一个笔画的顶点数目,笔画长度,顶点之间的转角角度来决定如何将笔画进行断连,最后形成独立的笔画,如图8所示。步骤s308,生成最终笔画。可应用笔触将笔画的顶点在屏幕空间扩展成笔画带,为套用笔触做准备,具体如图9所示,然后给每个笔画带套用如图10所示的笔触,最终得到的结果如图11所示。可以套用的笔触有很多风格,如图12所示,通过套用对应的风格的笔触可以扩展得到最终的显示风格。风格化的npr效果对游戏艺术性的提升有很大的帮助,能够加强游戏的本身气质。可选地,本发明还提供了一种优选实施例,具体实施场景可以应用于动漫制作等,例如待渲染的对象为茶壶,那么可以应用上述图3的步骤对茶壶的深度纹理进行处理,具体实施方式与上述的对游戏中椭圆的处理方式相同,在此不再赘述。通过cpu执行相关处理,并调用gpu进行顶点识别,然后进行线条处理、利用笔触进行绘制,即可得到如图13所示的茶壶。在相关技术中,需要使用几何空间轮廓线查找技术,在原有的模型的顶点数据上加入几何空间轮廓线查找所必须的双法线信息,这是需要先遍历这个模型的所有面,找出共享边,并在边上存储两个共享面的法线信息。这个操作是在渲染前进行预先处理的,只需要处理一次,但计算量很大,非常消耗处理性能。在本申请的技术方案中,基于显卡的特性进行高效处理,将以前的预计算、cpu和gpu交互等高开销的操作优化掉,大大提升了运行的效率。去除预处理计算(即上述的轮廓线查找),降低系统复杂度,并可以针对一切原始模型进行直接处理;另外,使用gpu特性进行查询,大大高效于相关技术中锁住z-buffer进行逐轮廓边顶点比较剔除这种低效操作,从而可以降低cpu的开销。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。实施例2根据本发明实施例,还提供了一种用于实施上述对象的渲染方法的对象的渲染装置。图14是根据本发明实施例的一种可选的对象的渲染装置的示意图,如图14所示,该装置可以包括:获取单元142、第一识别单元144、第二识别单元146以及渲染单元148。获取单元142,用于获取对目标对象进行图像采集得到的二维图像;第一识别单元144,用于在二维图像的所有像素点中识别出第一像素点集合,其中,第一像素点集合中的像素点为目标对象的轮廓上的点;第二识别单元146,用于通过调用图像处理器在第一像素点集合中识别出一个或多个第二像素点集合,其中,每个第二像素点集合中的像素点用于指示目标对象的轮廓中的一条线段;渲染单元148,用于分别将每个第二像素点集合中的像素点连接成目标对象的轮廓中的一条线段,并按照预定渲染方式显示连接得到的每条线段。需要说明的是,该实施例中的获取单元142可以用于执行本申请实施例1中的步骤s202,该实施例中的第一识别单元144可以用于执行本申请实施例1中的步骤s204,该实施例中的第二识别单元146可以用于执行本申请实施例1中的步骤s206,该实施例中的渲染单元148可以用于执行本申请实施例1中的步骤s208。此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。通过上述模块,获取对目标对象进行图像采集得到的二维图像,在二维图像的所有像素点中识别出用于表征目标对象的轮廓的第一像素点集合,通过调用图像处理器在第一像素点集合中识别出一个或多个第二像素点集合,分别将每个第二像素点集合中的像素点连接成目标对象的轮廓中的一条线段,并按照预定渲染方式显示连接得到的每条线段,由于处理的是二维图形,故而处理的数据量会大量减小,同时将顶点查询这类负荷较重的数据处理任务交由图像处理器完成,可以解决相关技术中进行实时渲染时对计算机cpu的运算资源消耗量较大的技术问题,进而达到降低实时渲染时计算机cpu的运算资源消耗量的技术效果。上述的目标对象可以为人物、动物、物体、环境等具象化的特征,是实际应用中,该目标对象可以为一个或多个;二维图形具体可以为深度纹理图片,或者携带每个像素的深度值的二维图片;上述的轮廓是指目标对象的边沿,如茶壶、人物等与自然环境或者其它物相区分的轮廓线;第一像素点集合中保存的像素点即所有识别出的轮廓上的点;第二像素点集合中保存的为识别出的属于同一线段的所有像素点。上述的预定渲染方式包括但不局限于素描画、钢笔画、炭笔画、水彩画、卡通画以及水墨画等渲染方式。上述的装置主要用于非照片真实级npr渲染,但不局限于此。可选地,获取单元还用于获取采集到的类型为深度纹理类型的二维图像,其中,类型为深度纹理类型的二维图像中携带有像素点的深度值。具体地,可直接渲染目标对象得到该目标对象的深度纹理。可选地,第一识别单元还用于对于二维图像的所有像素点中的每个像素点,执行以下步骤,其中,每个像素点在执行以下步骤时被记为当前像素点:获取当前像素点的深度变化值,其中,深度变化值用于指示当前像素点的多个相邻像素点之间的深度变化程度;在当前像素点的深度变化值大于等于预定的深度变化阈值的情况下,确定当前像素点为第一像素点集合中的像素点。可选地,第一识别单元包括:第一获取模块,用于获取第一滤波器对多个相邻像素点进行第一过滤处理得到的第一深度变化值,其中,第一深度变化值用于表示多个相邻像素点之间在第一方向上的深度变化程度;第二获取模块,用于获取第二滤波器对多个相邻像素点进行第二过滤处理得到的第二深度变化值,其中,第二深度变化值用于表示多个相邻像素点之间在第二方向上的深度变化程度,第二方向与第一方向不同;确定模块,用于根据第一深度变化值和第二深度变化值确定当前像素点的深度变化值。上述的第一获取模块还用于获取第一滤波器按照第一公式进行第一过滤处理得到的第一深度变化值,其中,第一公式用于计算多个相邻像素点中在第一方向上相邻的像素点的第一深度参数之和,第一深度参数为在第一方向上相邻的像素点的深度值与对应的影响因子的乘积。对于当前像素点而言,一般包括与之相邻并且围绕在当前像素点周围的8个像素点,可以将当前像素点记为s11,那么其左上角的像素点为s00,正上方的像素点为s01,右上角的像素点为s11,正左侧的像素点为s10,正右侧的像素点为s12,左下角的像素点为s20,正下方的像素点为s21,右下角的像素点为s22。上述的第一方向可以为纵向,第一公式为sobelx=s00+2*s10+s20-s02-2*s12-s22,sobelx表示第一深度变化值,s00、s10、s20、s02、s12、s22为对应位置的像素的深度值,1、2、1、-1、-2、-1为相应像素的影响因子。上述的第二获取模块还用于获取第二滤波器按照第二公式进行第二过滤处理得到的第二深度变化值sobely,其中,第二公式用于计算多个相邻像素点中在第二方向上相邻的像素点的第二深度参数之和,第二深度参数为在第二方向上相邻的像素点的深度值与对应的影响因子的乘积。上述的第二方向可以为横向,第一公式为sobely=s00+2*s01+s02-s20-2*s21-s22,sobely表示第二深度变化值,s00、s01、s02、s20、s21、s22为对应位置的像素的深度值,1、2、1、-1、-2、-1为相应像素的影响因子。可选地,确定模块还用于将当前像素点的深度变化值设置为第一深度变化值的平方与第二深度变化值的平方之和。可选地,第二识别单元包括:发送模块,用于发送顶点查询请求至图像处理器,其中,顶点查询请求中携带有第一像素点集合中像素点的位置信息和深度信息;接收模块,用于接收图像处理器的响应信息,其中,响应信息用于指示第一像素点集合中像素点是否属于第二像素点集合。上述的图像处理器gpu具备顶点纹理处理功能,在使用该功能时,将模型的所有顶点以画点的方式向gpu进行查询,如果该顶点是在轮廓线上,那么就把它绘制出来,否则不绘制,这个结果会以查询结果(即响应信息)的方式反馈给cpu,最终就会得到哪些顶点在轮廓线上的第二像素点集合。可选地,渲染单元还用于按照预设条件将第二像素点集合中的像素点串联成一条线段,其中,一条线段至少包括一个笔画,预设条件用于指示每个笔画包括的像素点数目、笔画长度以及笔画包括的相邻的像素点间的转角角度中的至少之一。具体可在cpu中将得到的轮廓线顶点进行串联成笔画,串联后可以根据一个笔画的顶点数目,笔画长度,顶点之间的转角角度来决定如何将笔画进行断连,最后形成独立的笔画。可选地,渲染单元还用于将每个笔画扩展成为笔画带;使用与预定渲染方式对应的笔触对笔画带进行绘制,其中,预定渲染方式包括素描画、钢笔画、炭笔画、水彩画、卡通画以及水墨画。具体可应用笔触将笔画的顶点在屏幕空间扩展成笔画带,为套用笔触做准备,然后给每个笔画带套用相应的笔触,最终得到满足需求的图像。在本申请的技术方案中,基于显卡的特性进行高效处理,将以前的预计算、cpu和gpu交互等高开销的操作优化掉,大大提升了运行的效率。去除预处理计算,降低系统复杂度,并可以针对一切原始模型进行直接处理;另外,使用gpu特性进行查询,大大高效于相关技术中锁住z-buffer进行逐轮廓边顶点比较剔除这种低效操作,从而可以降低cpu的开销。此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。实施例3根据本发明实施例,还提供了一种用于实施上述对象的渲染方法的服务器或终端。图15是根据本发明实施例的一种终端的结构框图,如图15所示,该终端可以包括:一个或多个(图中仅示出一个)处理器1501、存储器1503、以及传输装置1505(如上述实施例中的发送装置),如图15所示,该终端还可以包括输入输出设备1507。其中,存储器1503可用于存储软件程序以及模块,如本发明实施例中的方法和装置对应的程序指令/模块,处理器1501通过运行存储在存储器1503内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器1503可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1503可进一步包括相对于处理器1501远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。上述的传输装置1505用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1505包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1505为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。其中,具体地,存储器1503用于存储应用程序。处理器1501可以通过传输装置1505调用存储器1503存储的应用程序,以执行下述步骤:获取对目标对象进行图像采集得到的二维图像;在二维图像的所有像素点中识别出第一像素点集合,其中,第一像素点集合中的像素点为目标对象的轮廓上的点;通过调用图像处理器在第一像素点集合中识别出一个或多个第二像素点集合,其中,每个第二像素点集合中的像素点用于指示目标对象的轮廓中的一条线段;分别将每个第二像素点集合中的像素点连接成目标对象的轮廓中的一条线段,并按照预定渲染方式显示连接得到的每条线段。处理器1501还用于执行下述步骤:获取当前像素点的深度变化值,其中,深度变化值用于指示当前像素点的多个相邻像素点之间的深度变化程度;在当前像素点的深度变化值大于等于预定的深度变化阈值的情况下,确定当前像素点为第一像素点集合中的像素点。采用本发明实施例,处理器直接获取对目标对象进行图像采集得到的二维图像,在二维图像的所有像素点中识别出用于表征目标对象的轮廓的第一像素点集合,通过调用图像处理器在第一像素点集合中识别出一个或多个第二像素点集合,分别将每个第二像素点集合中的像素点连接成目标对象的轮廓中的一条线段,并按照预定渲染方式显示连接得到的每条线段,由于处理的是二维图形,故而处理的数据量会大量减小,同时将顶点查询这类负荷较重的数据处理任务交由图像处理器完成,可以解决相关技术中进行实时渲染时对计算机cpu的运算资源消耗量较大的技术问题,进而达到降低实时渲染时计算机cpu的运算资源消耗量的技术效果。可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。本领域普通技术人员可以理解,图15所示的结构仅为示意,终端可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图15其并不对上述电子装置的结构造成限定。例如,终端还可包括比图15中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图15所示不同的配置。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。实施例4本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行对象的渲染方法的程序代码。可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:s11,获取对目标对象进行图像采集得到的二维图像;s12,在二维图像的所有像素点中识别出第一像素点集合,其中,第一像素点集合中的像素点为目标对象的轮廓上的点;s13,通过调用图像处理器在第一像素点集合中识别出一个或多个第二像素点集合,其中,每个第二像素点集合中的像素点用于指示目标对象的轮廓中的一条线段;s14,分别将每个第二像素点集合中的像素点连接成目标对象的轮廓中的一条线段,并按照预定渲染方式显示连接得到的每条线段。可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:s21,获取当前像素点的深度变化值,其中,深度变化值用于指示当前像素点的多个相邻像素点之间的深度变化程度;s22,在当前像素点的深度变化值大于等于预定的深度变化阈值的情况下,确定当前像素点为第一像素点集合中的像素点。可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1