CN107045729B - 一种图像渲染方法及装置 - Google Patents

一种图像渲染方法及装置 Download PDF

Info

Publication number
CN107045729B
CN107045729B CN201710312950.1A CN201710312950A CN107045729B CN 107045729 B CN107045729 B CN 107045729B CN 201710312950 A CN201710312950 A CN 201710312950A CN 107045729 B CN107045729 B CN 107045729B
Authority
CN
China
Prior art keywords
profile
stroke
vertex
target object
rendering
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.)
Active
Application number
CN201710312950.1A
Other languages
English (en)
Other versions
CN107045729A (zh
Inventor
刘皓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710312950.1A priority Critical patent/CN107045729B/zh
Publication of CN107045729A publication Critical patent/CN107045729A/zh
Application granted granted Critical
Publication of CN107045729B publication Critical patent/CN107045729B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/02Non-photorealistic rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/506Illumination models

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

本发明提供了一种图像渲染方法及装置,其中,所述方法包括:获取目标对象的第一轮廓;从所述目标对象的顶点中,选择出位于第一轮廓上的轮廓顶点;获取经预设光源和预设光照模型处理后的所述目标对象的第二轮廓;根据所述轮廓顶点的位置信息,在所述第二轮廓采样对应的颜色,并根据采样到的颜色,确定所述轮廓顶点对应的笔画宽度;根据所述轮廓顶点对应的笔画宽度,生成串联所述轮廓顶点的笔画,并按照预定渲染方式渲染所述笔画,得到渲染后的轮廓纹理。本发明基于光照轮廓的颜色进行轮廓渲染,使得渲染后的轮廓能够反映出光照信息,改善了渲染效果。另外,本发明可以在图像处理器中通过可编程管线实现,提升了渲染效率。

Description

一种图像渲染方法及装置
技术领域
本发明涉及图像处理技术领域,具体涉及一种图像渲染方法及装置。
背景技术
在图像处理技术领域,时常会用到照片真实级渲染(PR,PhotorealisticRendering)和非照片真实级渲染(NPR,Non-Photorealistic Rendering)技术。其中,PR是指通过对真实物理光影的研究,做出真实世界的渲染效果;NPR是指通过研究画家通过画笔勾勒出的抽象意境,做出与该抽象意境类似的渲染效果。NPR是计算机图形学的一类,主要用于模拟艺术式绘画风格,也用于发展新绘制风格。
和传统的追求真实感的计算机图形学不同,NPR受到油画、素描、技术图纸以及动画卡通的影响,在该领域发展较多而且较成熟的一般与西方绘画艺术有关,如素描画、钢笔画、碳笔画、水彩画、卡通画等。目前,NPR也开始应用中国水墨画的笔触进行相关渲染。
发明内容
本发明实施例提供了一种图像渲染方法及装置,实现一种基于光照信息的图像轮廓渲染。
第一方面,本发明实施例提供了一种图像渲染方法,包括:
获取目标对象的第一轮廓;
从所述目标对象的顶点中,选择出位于第一轮廓上的轮廓顶点;
获取经预设光源和预设光照模型处理后的所述目标对象的第二轮廓;
根据所述轮廓顶点的位置信息,在所述第二轮廓采样对应的颜色,并根据采样到的颜色,确定所述轮廓顶点对应的笔画宽度;
根据所述轮廓顶点对应的笔画宽度,生成串联所述轮廓顶点的笔画,并按照预定渲染方式渲染所述笔画,得到渲染后的轮廓纹理。
第二方面,本发明实施例还提供了一种图像渲染装置,包括:
第一获取模块,用于获取目标对象的第一轮廓;
选择模块,用于从所述目标对象的顶点中,选择出位于第一轮廓上的轮廓顶点;
第二获取模块,用于获取经预设光源和预设光照模型处理后的所述目标对象的第二轮廓;
笔画分析模块,用于根据所述轮廓顶点的位置信息,在所述第二轮廓采样对应的颜色,并根据采样到的颜色,确定所述轮廓顶点对应的笔画宽度;
笔画生成模块,用于根据所述轮廓顶点对应的笔画宽度,生成串联所述轮廓顶点的笔画,并按照预定渲染方式渲染所述笔画,得到渲染后的轮廓纹理。
本发明实施例提供的图像渲染方法及装置,至少具有以下有益效果:
本发明实施例的图像渲染方法及装置,基于光照轮廓的颜色进行轮廓渲染,使得渲染后的轮廓能够反映出光照信息,改善了渲染效果。另外,本发明实施例的方法和装置,可以在图像处理器(GPU)中通过可编程管线实现,提升了渲染效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的图像渲染方法的一种应用场景示意图;
图2为本发明实施例提供的图像渲染方法的一种流程示意图;
图3为本发明实施例中目标对象的深度纹理图像的一个示意图;
图4为图3所示深度纹理图像的轮廓的示意图;
图5为本发明实施例中目标对象的顶点的示例图;
图6为本发明实施例中目标对象的轮廓顶点的示例图;
图7为本发明实施例中可以采用的多种不同风格的笔触纹理示意图;
图8为本发明实施例中采用的一种笔触纹理示意图;
图9为本发明实施例中渲染得到的一种轮廓纹理的示意图;
图10为本发明实施例提供的图像渲染方法的另一流程示意图;
图11为本发明实施例提供的图像渲染方法的又一流程示意图;
图12为本发明实施例中目标对象的深度纹理图像的一个示例图;
图13为本发明实施例中采用的一种光源位置的示意图;
图14为本发明实施例中针对图13的目标对象获得的轮廓示意图;
图15为本发明实施例中根据轮廓顶点去采样第二轮廓的示例图;
图16为本发明实施例中基于采样到的颜色所得到的笔画宽度的示意图;
图17为本发明实施例中采用的另一笔触纹理示意图;
图18为本发明实施例中一种轮廓的笔画示意图;
图19为本发明实施例中渲染得到的另一轮廓纹理的示意图;
图20为本发明实施例提供的一种图像渲染装置的结构示意图;
图21为本发明实施例提供的又一图像渲染装置的结构示意图;
图22为本发明实施例提供的又一图像渲染装置的结构示意图;
图23为本发明实施例提供的又一图像渲染装置的结构示意图;
图24本发明实施例提供的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种图像渲染方法,能够基于光照信息实现图像轮廓的渲染,使得渲染后的轮廓能够反映出光照信息,改善了渲染效果。在本实施例中,上述对象的渲染方法可以应用于如图1所示的由服务器102和终端104所构成的场景中。如图1所示,服务器102通过网络与终端104进行通信,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于个人电脑(PC)、手机、平板电脑等。本发明实施例的图像渲染方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的图像渲染方法也可以是由安装在其上的客户端来执行。
为帮助理解本发明实施例的方案,下面首先介绍一下本文涉及的图像处理领域的若干概念:
轮廓(Contour):
轮廓是指图像中的对象边界。轮廓作为图像的一种基本特征,是图像处理的基础。在一种实施例提供了一种基于微分运算的轮廓提取算法,可以通过平滑来滤除图像中的噪声,然后进行一阶微分或二阶微分运算,求得梯度最大值或二阶导数的过零点,最后选取适当的阈值来提取边界,获得图像的轮廓。
顶点(Vertex):
在图像处理中,三维物体可以看作是由三角形网格组成的,每个三角形是由空间中的三个点构成的。在图像渲染中,显示在屏幕上的图形通常都是由一个个三角形绘制得到的,这些三角形的顶点即为本文所述的顶点。顶点是图像渲染的基础数据,通常包括位置、法向、颜色、纹理坐标、顶点权重等信息。
请参照图2,本发明实施例提供的图像渲染方法,该方法可以应用于一图形处理器(GPU)中,如图2所示,该方法包括:
步骤21,获取目标对象的第一轮廓。
本发明实施例可以预先对目标对象进行图像采集,获得携带有像素深度信息的二维图像,在步骤21中,可以直接渲染该目标对象,得到该目标对象的深度纹理图像。这里,目标对象可以是人物、动物、物体、环境等具象化的特征。在实际应用中,该目标对象可以包括上述一个或多个特征。图3给出了渲染得到的目标对象的深度纹理图像的一个示意图,该图3中,目标对象为位于屏幕30中央的一椭圆形对象31;然后计算所述深度纹理图像中各像素的深度变化值,所述深度变化值用于表示所述像素的多个相邻像素间的深度变化程度,进而确定出所述深度变化值超出预设阈值的多个像素,得到所述目标对象的第一轮廓,图4给出了图3所示深度纹理图像的轮廓32的示意图。
本发明实施例中,可以采用过滤器对所述深度纹理图像进行过滤处理,识别出目标对象的第一轮廓,具体包括:获取第一滤波器对当前像素的多个相邻像素进行第一过滤处理得到的第一深度变化值,其中,第一深度变化值用于表示所述多个相邻像素之间在第一方向上的深度变化程度;获取第二滤波器对所述多个相邻像素进行第二过滤处理得到的第二深度变化值,其中,第二深度变化值用于表示所述多个相邻像素之间在第二方向上的深度变化程度,第二方向与第一方向不同;根据第一深度变化值和第二深度变化值确定当前像素的深度变化值。
这里,第一滤波器可以按照第一公式进行第一过滤处理,第一公式用于计算多个相邻像素中在第一方向上相邻的像素的第一深度参数之和,第一深度参数为在第一方向上相邻的像素的深度值与对应的影响因子的乘积。第二滤波器可以按照第二公式进行第二过滤处理,第二公式用于计算多个相邻像素中在第二方向上相邻的像素的第二深度参数之和,第二深度参数为在第二方向上相邻的像素的深度值与对应的影响因子的乘积。
对于当前像素而言,一般包括与之相邻并且围绕在当前像素周围的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=S00+2*S01+S02-S20-2*S21-S22,SobelY表示第二深度变化值,S00、S01、S02、S20、S21、S22为对应位置的像素的深度值,1、2、1、-1、-2、-1分别为对应像素在第二方向上的影响因子。在确定了第一深度变化值SobelX和第二深度变化值SobelY之后,可以按照如下公式:edgeSqr=(SobelX*SobelX+SobelY*SobelY),计算得到当前像素的深度变化值edgeSqr。
步骤22,从所述目标对象的顶点中,选择出位于第一轮廓上的轮廓顶点。
这里,可以通过图形处理器(GPU)获取目标对象的所有顶点,即用于渲染所述目标对象的顶点,并判断每个顶点是否位于所述第一轮廓上,若是,则将该顶点作为轮廓顶点,从而可以得到一个或多个轮廓顶点。所述轮廓顶点是指位于轮廓上的顶点。例如,图5给出了通过GPU可以获得到目标对象的所有顶点,如顶点33、顶点34等,然后从中选择出位于轮廓上的顶点,如顶点33等,进而获得如图6所示的轮廓顶点。
步骤23,获取经预设光源和预设光照模型处理后的所述目标对象的第二轮廓。
在步骤23中,可以按照预设光源和预设光照模型,对目标对象进行着色处理,得到着色处理后的目标对象;然后,获取所述着色处理后的目标对象的第二轮廓。第二轮廓的获取方式可以是采用类似于步骤21中计算像素的深度变化值的方式,若某个像素的深度变化值超出预设阈值,则认为该像素属于第二轮廓。这里,可以采用现有的光照模型,如Lambert模型、Phong模型、Blinn-Phong模型、Cook-Torrance模型等对目标对象进行着色处理,具体的着色处理过程可以通过图形处理器的顶点着色器和/或片段着色器来实现。
需要说明的是,上述步骤21~22和步骤23之间并无严格的执行顺序关系,可以先执行步骤21~22,再执行步骤23,也可以先执行步骤23,再执行步骤21~22,甚至还可以将步骤21~22和步骤23同时执行。在步骤21~22和步骤23均执行完毕后,进入步骤24。
步骤24,根据所述轮廓顶点的位置信息,在所述第二轮廓采样对应的颜色,并根据采样到的颜色,确定所述轮廓顶点对应的笔画宽度。
这里,根据所述轮廓顶点的位置信息,在所述第二轮廓进行采样,获取所述第二轮廓对应位置处的颜色,进而根据该颜色确定轮廓顶点对应的笔画宽度。具体的,可以获取采样到的颜色的亮度值;然后,根据预设的亮度值与笔画宽度之间的对应关系,确定出所述亮度值对应的笔画宽度,作为所述轮廓顶点对应的笔画宽度。
作为一种实现方式,笔画宽度与亮度值正相关,也即较大的亮度值对应的笔画宽度,大于或等于较小的亮度值对应的笔画宽度。例如,可以按照以下公式,确定轮廓顶点x的笔画宽度Wx:Wx=Wmax*Bx/Bmax,这里,Wmax表示预设的笔画宽度的最大值,Bmax表示亮度值的上限,Bx表示轮廓顶点x的亮度值。需要指出的是,以上公式仅是本发明实施例确定笔画宽度的一种示例,本发明实施例还可以采用其他方式确定笔画宽度。
步骤25,根据所述轮廓顶点对应的笔画宽度,生成串联所述轮廓顶点的笔画,并按照预定渲染方式渲染所述笔画,得到渲染后的轮廓纹理。
这里,可以根据相邻轮廓顶点各自对应的笔画宽度,通过插值计算,得到相邻轮廓顶点间的笔画宽度;然后,根据所得到的相邻轮廓顶点间的笔画宽度,生成串联所述轮廓顶点的笔画。在生成笔画之后,可以根据需要,使用预定渲染方式对应的笔触纹理绘制笔画,从而渲染得到轮廓纹理。具体的,所述预定渲染方式包括素描画、钢笔画、炭笔画、水彩画、卡通画以及水墨画等,图7给出了多种不同风格的笔触纹理示意图。例如,套用如图8所示的水墨画对应的笔触纹理,可以得到如图9所示的渲染后的轮廓纹理。
通过以上步骤,本发明实施例采用光照模型对目标对象进行着色处理,进而根据光照模型处理后的轮廓顶点处的颜色,来对轮廓进行渲染,使得渲染后的轮廓能够反映出光照信息,从而实现了基于光照(光源)的轮廓渲染,丰富了渲染后的图像内容,改善了渲染效果。另外,本发明实施例的以上步骤,均可以由图形处理器(GPU)来执行,GPU是专用于图形处理的处理器,可通过硬件加速的方式加快处理速度,因此本发明实施例可以通过对GPU进行编程,采用可编程管线实现上述所有步骤的流程处理,可以省去CPU与GPU之间的数据交互过程,提升了处理效率。
本发明实施例的以上方法可以实现非照片真实级(NPR)渲染,当然,本发明实施例还可以并不局限于NPR。
本发明实施例的以上步骤,也可以分别由CPU和GPU执行。例如,可以根据CPU和GPU各自的处理能力和/或当前负荷,确定出以上各步骤的执行主体。例如,上述步骤21~22和步骤23之间并无严格的执行顺序关系,因此可以由CPU执行步骤21~22,由GPU执行步骤23(也可以由CPU执行步骤23,由GPU执行步骤21~22),以采用并行处理方式提高处理效率。
在本发明的实施例中,还可以对步骤23中着色处理时所采用的光源进行调整,例如调整光源的数量和/或位置,以获得不同的光照方向,改变第二轮廓的颜色,以获得动态光源的渲染效果。此时,如图10所示,本发明实施例的图像渲染方法在上述步骤25之后,还可以包括以下步骤:
步骤26,调整所述预设光源的数量和/或位置,返回步骤23。
这里,可以根据模拟场景的需要,增加或减少光源数量,也可以调整某个或某些光源的位置,以改变光照方向,从而模拟出动态光源的场景,并获取该场景下的原始目标图像的第二轮廓,从而对第二轮廓进行了更新。后续继续执行步骤24-25,基于轮廓顶点在更新后的第二轮廓中的颜色,更新轮廓顶点对应的笔画宽度,生成串联所述轮廓顶点的笔画,并按照预定渲染方式渲染所述笔画,得到更新后的轮廓纹理。
通过以上步骤,本发明实施例可以使得轮廓纹理支持动态光源,进一步提升了渲染效果。
接下来结合一个具体示例,对本发明实施例的以上步骤进行更为详细的说明。
请参照图11所示,本发明实施例提供的图像渲染方法,包括:
步骤111,获取对目标对象进行图像采集得到的二维图像。
这里,采集到的二维图像可以是携带像素的深度值的二维图像,从而本发明实施例可以直接渲染目标对象,得到目标对象的深度纹理图像,图11给出了深度纹理图像的一个示例。
步骤112,根据所述二维图像,渲染得到包括有深度值信息的深度纹理图像,利用过滤器对所述深度纹理图像进行过滤,获得所述目标对象的轮廓,即第一轮廓。
这里,可以绘制和屏幕大小相同的框(如矩形框),然后对深度纹理图像进行采样,获得所述第一轮廓。具体的,可以在PixelShader中按照如下方式进行处理。
采用横向和纵向过滤器对深度纹理图像逐像素进行过滤,表1给出了本发明实施例中横向过滤器对深度纹理进行过滤时可以采用的一种矩阵,表2给出了本发明实施例中纵向过滤器对深度纹理进行过滤时可以采用的一种矩阵,表3给出了当前像素及相邻像素的位置关系以及像素的深度值,其中深度值所在的表格的位置即该像素的位置,表3中S11表示当前像素的深度值,当前像素具有与之相邻的8个像素。
利用表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)。
edgeSqr表示当前像素周围像素的值的变化程度,如果edgeSqr大于一个阈值n(例如,n可以取值为0.005,也可以适当微调),则说明当前像素周围的像素的深度值变化激烈,则说明当前像素是物体的轮廓,从而将当前像素判断为轮廓上的像素;如果edgeSqr小于阈值n,那么说明当前像素不是物体的轮廓。最终可以得到目标对象的第一轮廓。
步骤113,绘制目标对象的轮廓顶点。
可以通过图像处理器(GPU)查询得到目标对象的顶点,将所有顶点以画点的方式进行绘制,通过读取目标对象的第一轮廓,逐个顶点进行判断,如果该顶点位于第一轮廓上,则该顶点为轮廓顶点,并将其绘制出来;如果该顶点不在第一轮廓上,则不绘制该顶点,从而可以获得轮廓顶点纹理。
步骤114,按照预设光源和预设光照模型,对目标对象进行着色处理,得到新的深度纹理图像,生成新的深度纹理图像中所述目标对象的第二轮廓;
本发明实施例中,可以根据需要采用对应的光源和光照模型对目标对象进行着色,得到新的深度纹理图像。图13给出了采用两个光源131,按照通用漫反射光照模型,对目标对象进行着色的一个示意图,图13中光源131分别位于目标对象的上方和下方。然后,利用过滤器对该新的深度纹理图像进行过滤,获得目标对象被光照的第二轮廓,具体的过滤方式可以参考步骤112,这里不再赘述。图14中给出了图13中的目标对象的轮廓的示意图。
步骤115,根据所述轮廓顶点的位置信息,在所述第二轮廓采样对应的颜色,并根据采样到的颜色,确定所述轮廓顶点对应的笔画宽度。
这里,根据步骤113中所获得的轮廓顶点的位置信息,采样第二轮廓中对应位置像素的颜色,具体可以为该像素颜色中的亮度值,根据该亮度值,确定所述轮廓顶点对应的笔画宽度。图15给出了根据轮廓顶点去采样第二轮廓的示例。
步骤116,根据所述轮廓顶点对应的笔画宽度,生成串联所述轮廓顶点的笔画,并按照预定渲染方式渲染所述笔画,得到渲染后的轮廓纹理。
在获得轮廓顶点对应的笔画宽度后,可以利用插值算法,计算相邻轮廓顶点间的笔画宽度,例如,若相邻的两个轮廓顶点a和b各自对应的笔画宽度分别为Wa和Wb,那么,该轮廓顶点间的像素x对应的笔画宽度可以为:Wa+Lx*Wd/L,其中,Lx表示像素x与顶点a之间的距离,L表示顶点b与顶点a之间的距离,Wd=Wb-Wa。当然,以上举例只是本发明实施例可以采用的一种线性插值算法,本发明实施例还可以采用其他各种插值算法,这里不再一一举例说明。在按照插值算法确定了笔画宽度之后,可以连接相邻轮廓顶点,获得线段,然后根据所确定的笔画宽度,将所述线段扩展成对应宽度的笔画,图16给出了基于采样到的颜色所得到的笔画宽度的示意图。通过对上述笔画套用特定的笔触纹理,可以渲染得到轮廓纹理。
在渲染轮廓对应笔画时,本发明实施例可以绘制和屏幕相同大小的矩形框,然后套用预定的笔触纹理,渲染得到轮廓纹理。图19给出了采用图17所示笔触纹理,对图18中得轮廓笔画进行渲染得到的轮廓纹理的示例。对于原始目标图像除轮廓以外的部分,本发明实施例可以根据需要进行渲染或不渲染,若不渲染,此时仅获得轮廓的纹理图像。
从以上步骤可以看出,本发明实施例的上述所有步骤,均可以在图像处理器(GPU)中实现,省去了CPU与GPU数据交互过程,并可以通过GPU的可编程管线实现上述流程处理,提升了渲染效率。另外,本发明实施例中基于光照轮廓的颜色进行轮廓渲染,使得渲染后的轮廓能够反映出光照信息,改善了渲染效果。另外,本发明实施例还可以支持基于动态光源的轮廓渲染,提升了渲染效果。
请参照图20,本发明实施例还提供了一种图像渲染装置,该图像渲染装置可以设置在个人终端设备(如智能手机、个人电脑、PAD等)或服务器处,如图20所示,该图像渲染装置包括:
第一获取模块201,用于获取目标对象的第一轮廓;
选择模块202,用于从所述目标对象的顶点中,选择出位于第一轮廓上的轮廓顶点;
第二获取模块203,用于获取经预设光源和预设光照模型处理后的所述目标对象的第二轮廓;
笔画分析模块204,用于根据所述轮廓顶点的位置信息,在所述第二轮廓采样对应的颜色,并根据采样到的颜色,确定所述轮廓顶点对应的笔画宽度;
笔画渲染模块205,用于根据所述轮廓顶点对应的笔画宽度,生成串联所述轮廓顶点的笔画,并按照预定渲染方式渲染所述笔画,得到渲染后的轮廓纹理。
通过以上模块,本发明实施例基于光照轮廓的颜色进行轮廓渲染,使得渲染后的轮廓能够反映出光照信息,改善了渲染效果。在一些实施例中,上述图像渲染装置的所有模块可以在GPU中实现,此时,上述图像渲染装置可以设置于GPU中,在GPU的可编程管线中实现上述模块,能够利用GPU专用的图像处理功能,提高渲染效率。
如图21所示,在一些实施例中,所述第二获取模块203包括:
着色模块2031,用于按照预设光源和预设光照模型,对目标对象进行着色处理,得到着色处理后的目标对象;
轮廓过滤模块2032,用于获取所述着色处理后的目标对象的第二轮廓。
所述笔画分析模块204包括:
亮度获取模块2041,用于获取采样到的颜色的亮度值;
笔画宽度确定模块2042,用于根据预设的亮度值与笔画宽度之间的对应关系,确定出所述亮度值对应的笔画宽度,作为所述轮廓顶点对应的笔画宽度。
作为一种实现方式,所述对应关系中,笔画宽度与亮度值正相关。
如图22所示,在一些实施例中,所述笔画渲染模块205包括:
插值模块2051,用于根据相邻轮廓顶点各自对应的笔画宽度,通过插值计算,得到相邻轮廓顶点间的笔画宽度;
串联模块2052,用于根据所得到的相邻轮廓顶点间的笔画宽度,生成串联所述轮廓顶点的笔画。
绘制模块2053,用于使用与所述预定渲染方式对应的笔触纹理对所述笔画进行绘制,其中,所述预定渲染方式包括素描画、钢笔画、炭笔画、水彩画、卡通画以及水墨画。
如图23所示,在一些实施例中,所述图像渲染装置还包括:
光源更新模块206,用于在所述笔画渲染模块得到渲染后的轮廓纹理之后,调整所述预设光源的数量和/或位置,并触发所述第二获取模块。
通过以上模块,本发明实施例可以支持动态光源的轮廓渲染。
请参照图24,图24是本发明实施例提供的一种电子设备的结构图,该电子设备可以是个人电脑、智能手机、服务器等。如图24所示,该电子设备包括:至少一个处理器2401、存储器2402、至少一个网络接口2404和用户接口2403。电子设备中的各个组件通过总线系统2405耦合在一起。可理解,总线系统2405用于实现这些组件之间的连接通信。总线系统2405除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图24中将各种总线都标为总线系统2405。
其中,用户接口2403可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(track ball)、触感板或者触摸屏等。
可以理解,本发明实施例中的存储器2402可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable P ROM,EPROM)、电可擦除可编程只读存储器(Electrically EP ROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous D RAM,SDRAM)、双倍数据速率同步动态随机存取存储器(DoubleData Rate SD RAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SD RAM,ESDRAM)、同步连接动态随机存取存储器(Synch link D RAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本文描述的系统和方法的存储器2402旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器2402存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:操作系统24021和应用程序24022。
其中,操作系统24021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序24022,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序24022中。
在本发明实施例中,通过调用存储器2402存储的程序或指令,具体的,可以是应用程序24022中存储的程序或指令,处理器2401用于:获取目标对象的第一轮廓;从所述目标对象的顶点中,选择出位于第一轮廓上的轮廓顶点;获取经预设光源和预设光照模型处理后的所述目标对象的第二轮廓;根据所述轮廓顶点的位置信息,在所述第二轮廓采样对应的颜色,并根据采样到的颜色,确定所述轮廓顶点对应的笔画宽度;根据所述轮廓顶点对应的笔画宽度,生成串联所述轮廓顶点的笔画,并按照预定渲染方式渲染所述笔画,得到渲染后的轮廓纹理。
可选的,处理器2401还用于:按照预设光源和预设光照模型,对目标对象进行着色处理,得到着色处理后的目标对象;获取所述着色处理后的目标对象的第二轮廓。
可选的,处理器2401还用于获取采样到的颜色的亮度值;根据预设的亮度值与笔画宽度之间的对应关系,确定出所述亮度值对应的笔画宽度,作为所述轮廓顶点对应的笔画宽度。
可选的,处理器2401还用于根据相邻轮廓顶点各自对应的笔画宽度,通过插值计算,得到相邻轮廓顶点间的笔画宽度;根据所得到的相邻轮廓顶点间的笔画宽度,生成串联所述轮廓顶点的笔画,以及,使用与所述预定渲染方式对应的笔触纹理对所述笔画进行绘制,其中,所述预定渲染方式包括素描画、钢笔画、炭笔画、水彩画、卡通画以及水墨画。
可选的,处理器2401还用于调整所述预设光照模型处理时所采用的光源的数量和/或位置,返回所述获取经预设光源和预设光照模型处理后的所述目标对象的第二轮廓的步骤。
本发明实施例的以上电子设备,基于光照轮廓的颜色进行轮廓渲染,使得渲染后的轮廓能够反映出光照信息,改善了渲染效果。另外,本发明实施例的方法和装置,可以在图像处理器(GPU)中通过可编程管线实现,提升了渲染效率。并且,上述电子设备还可以支持动态光源的轮廓渲染,进一步提升了渲染效果。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一个方法实施例中的图像渲染方法中的步骤。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (12)

1.一种图像渲染方法,其特征在于,包括:
获取目标对象的第一轮廓;
从所述目标对象的顶点中,选择出位于第一轮廓上的轮廓顶点;
获取经预设光源和预设光照模型处理后的所述目标对象的第二轮廓;
根据所述轮廓顶点的位置信息,在所述第二轮廓采样对应的颜色,并根据采样到的颜色,确定所述轮廓顶点对应的笔画宽度;
根据所述轮廓顶点对应的笔画宽度,生成串联所述轮廓顶点的笔画,并按照预定渲染方式渲染所述笔画,得到渲染后的轮廓纹理;
其中,所述根据采样到的颜色,确定所述轮廓顶点对应的笔画宽度的步骤,包括:
获取采样到的颜色的亮度值;
根据预设的亮度值与笔画宽度之间的对应关系,确定出所述亮度值对应的笔画宽度,作为所述轮廓顶点对应的笔画宽度。
2.根据权利要求1所述的方法,其特征在于,所述获取经预设光源和预设光照模型处理后的所述目标对象的第二轮廓的步骤,包括:
按照预设光源和预设光照模型,对目标对象进行着色处理,得到着色处理后的目标对象;
获取所述着色处理后的目标对象的第二轮廓。
3.根据权利要求1所述的方法,其特征在于,所述对应关系中,笔画宽度与亮度值正相关。
4.根据权利要求1所述的方法,其特征在于,所述根据所述轮廓顶点对应的笔画宽度,生成串联所述轮廓顶点的笔画的步骤,包括:
根据相邻轮廓顶点各自对应的笔画宽度,通过插值计算,得到相邻轮廓顶点间的笔画宽度;
根据所得到的相邻轮廓顶点间的笔画宽度,生成串联所述轮廓顶点的笔画。
5.根据权利要求1所述的方法,其特征在于,所述按照预定渲染方式渲染所述笔画,得到渲染后的轮廓纹理的步骤,包括:
使用与所述预定渲染方式对应的笔触纹理对所述笔画进行绘制,其中,所述预定渲染方式包括素描画、钢笔画、炭笔画、水彩画、卡通画以及水墨画。
6.根据权利要求1所述的方法,其特征在于,在所述按照预定渲染方式渲染所述笔画,得到渲染后的轮廓纹理的步骤之后,所述方法还包括:
调整所述预设光源的数量和/或位置,返回所述获取经预设光源和预设光照模型处理后的所述目标对象的第二轮廓的步骤。
7.一种图像渲染装置,其特征在于,包括:
第一获取模块,用于获取目标对象的第一轮廓;
选择模块,用于从所述目标对象的顶点中,选择出位于第一轮廓上的轮廓顶点;
第二获取模块,用于获取经预设光源和预设光照模型处理后的所述目标对象的第二轮廓;
笔画分析模块,用于根据所述轮廓顶点的位置信息,在所述第二轮廓采样对应的颜色,并根据采样到的颜色,确定所述轮廓顶点对应的笔画宽度;
笔画渲染模块,用于根据所述轮廓顶点对应的笔画宽度,生成串联所述轮廓顶点的笔画,并按照预定渲染方式渲染所述笔画,得到渲染后的轮廓纹理;
其中,所述笔画分析模块包括:
亮度获取模块,用于获取采样到的颜色的亮度值;
笔画宽度确定模块,用于根据预设的亮度值与笔画宽度之间的对应关系,确定出所述亮度值对应的笔画宽度,作为所述轮廓顶点对应的笔画宽度。
8.根据权利要求7所述的图像渲染装置,其特征在于,所述第二获取模块包括:
着色模块,用于按照预设光源和预设光照模型,对目标对象进行着色处理,得到着色处理后的目标对象;
轮廓过滤模块,用于获取所述着色处理后的目标对象的第二轮廓。
9.根据权利要求7所述的图像渲染装置,其特征在于,所述对应关系中,笔画宽度与亮度值正相关。
10.根据权利要求7所述的图像渲染装置,其特征在于,所述笔画渲染模块包括:
插值模块,用于根据相邻轮廓顶点各自对应的笔画宽度,通过插值计算,得到相邻轮廓顶点间的笔画宽度;
串联模块,用于根据所得到的相邻轮廓顶点间的笔画宽度,生成串联所述轮廓顶点的笔画。
11.根据权利要求7所述的图像渲染装置,其特征在于,所述笔画渲染模块包括:
绘制模块,用于使用与所述预定渲染方式对应的笔触纹理对所述笔画进行绘制,其中,所述预定渲染方式包括素描画、钢笔画、炭笔画、水彩画、卡通画以及水墨画。
12.根据权利要求7所述的图像渲染装置,其特征在于,还包括:
光源更新模块,用于在所述笔画渲染模块得到渲染后的轮廓纹理之后,调整所述预设光源的数量和/或位置,并触发所述第二获取模块。
CN201710312950.1A 2017-05-05 2017-05-05 一种图像渲染方法及装置 Active CN107045729B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710312950.1A CN107045729B (zh) 2017-05-05 2017-05-05 一种图像渲染方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710312950.1A CN107045729B (zh) 2017-05-05 2017-05-05 一种图像渲染方法及装置

Publications (2)

Publication Number Publication Date
CN107045729A CN107045729A (zh) 2017-08-15
CN107045729B true CN107045729B (zh) 2018-09-18

Family

ID=59546181

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710312950.1A Active CN107045729B (zh) 2017-05-05 2017-05-05 一种图像渲染方法及装置

Country Status (1)

Country Link
CN (1) CN107045729B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108022286B (zh) * 2017-11-30 2019-08-13 腾讯科技(深圳)有限公司 画面渲染方法、装置及存储介质
CN109993760A (zh) * 2017-12-29 2019-07-09 北京京东尚科信息技术有限公司 一种图片的边缘检测方法和装置
CN110473280B (zh) * 2018-05-09 2024-02-23 网易(杭州)网络有限公司 多光源画面渲染方法、装置、存储介质、处理器和终端
CN110070555A (zh) * 2018-10-19 2019-07-30 北京微播视界科技有限公司 图像处理方法、装置、硬件装置
CN109993822B (zh) * 2019-04-10 2023-02-21 创新先进技术有限公司 一种水墨风格渲染方法和装置
CN110298786B (zh) * 2019-07-02 2023-12-08 北京字节跳动网络技术有限公司 图像渲染方法、装置、设备及存储介质
CN110969568B (zh) * 2019-11-29 2023-06-13 广联达科技股份有限公司 Bim模型双面显示加速渲染方法、系统、产品和存储介质
CN111402381B (zh) * 2020-03-17 2023-11-21 网易(杭州)网络有限公司 模型渲染方法与装置、可读存储介质
CN111932980A (zh) * 2020-09-14 2020-11-13 苏州探寻文化科技有限公司 数字国画模拟方法及设备
CN112233215B (zh) * 2020-10-15 2023-08-22 网易(杭州)网络有限公司 轮廓渲染方法、装置、设备及存储介质
CN114419238A (zh) * 2022-01-24 2022-04-29 脸萌有限公司 特效图像处理方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038675A (zh) * 2006-03-16 2007-09-19 腾讯科技(深圳)有限公司 实现水墨风格渲染的方法及装置
CN101127127A (zh) * 2007-09-29 2008-02-20 腾讯科技(深圳)有限公司 阴影绘制方法及渲染装置
CN104966312A (zh) * 2014-06-10 2015-10-07 腾讯科技(深圳)有限公司 一种3d模型的渲染方法、装置及终端设备
CN105869203A (zh) * 2016-03-28 2016-08-17 南京大学 一种三维场景的彩铅风格处理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8249365B1 (en) * 2009-09-04 2012-08-21 Adobe Systems Incorporated Methods and apparatus for directional texture generation using sample-based texture synthesis

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038675A (zh) * 2006-03-16 2007-09-19 腾讯科技(深圳)有限公司 实现水墨风格渲染的方法及装置
CN101127127A (zh) * 2007-09-29 2008-02-20 腾讯科技(深圳)有限公司 阴影绘制方法及渲染装置
CN104966312A (zh) * 2014-06-10 2015-10-07 腾讯科技(深圳)有限公司 一种3d模型的渲染方法、装置及终端设备
CN105869203A (zh) * 2016-03-28 2016-08-17 南京大学 一种三维场景的彩铅风格处理方法

Also Published As

Publication number Publication date
CN107045729A (zh) 2017-08-15

Similar Documents

Publication Publication Date Title
CN107045729B (zh) 一种图像渲染方法及装置
CN109427088B (zh) 一种模拟光照的渲染方法及终端
JP7370527B2 (ja) 衣服の3次元モデルデータを生成するための方法およびコンピュータプログラム
Jimenez et al. Separable subsurface scattering
CN100463003C (zh) 实现水墨风格渲染的方法及装置
US20150310305A1 (en) Learning painting styles for painterly rendering
CN108090945A (zh) 对象渲染方法和装置、存储介质及电子装置
CN110223372A (zh) 模型渲染的方法、装置、设备及存储介质
CN113240783B (zh) 风格化渲染方法和装置、可读存储介质、电子设备
US10922852B2 (en) Oil painting stroke simulation using neural network
CN107330966A (zh) 一种渲染方法和装置
US8847963B1 (en) Systems and methods for generating skin and volume details for animated characters
CN109712226A (zh) 虚拟现实的透明模型渲染方法及装置
CN109448088A (zh) 渲染立体图形线框的方法、装置、计算机设备和存储介质
Ma et al. Neural compositing for real-time augmented reality rendering in low-frequency lighting environments
US9202291B1 (en) Volumetric cloth shader
CA2957493C (en) System and method for colorimetric and geometric parameterization of procedural textures on an object
Haller et al. A loose and sketchy approach in a mediated reality environment
Kerber et al. Real-time generation of digital bas-reliefs
Montesdeoca et al. Edge-and substrate-based effects for watercolor stylization
Seo et al. Interactive painterly rendering with artistic error correction
Semmo et al. Interactive image filtering for level-of-abstraction texturing of virtual 3D scenes
Wu et al. Field coupling-based image filter for sand painting stylization
Burgess et al. A system for real-time watercolour rendering
Güssefeld et al. Are reflectance field renderings appropriate for optical flow evaluation?

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
GR01 Patent grant
GR01 Patent grant