CN114241097A - 一种基于有向距离场的内描线渲染方法和装置 - Google Patents
一种基于有向距离场的内描线渲染方法和装置 Download PDFInfo
- Publication number
- CN114241097A CN114241097A CN202111567883.0A CN202111567883A CN114241097A CN 114241097 A CN114241097 A CN 114241097A CN 202111567883 A CN202111567883 A CN 202111567883A CN 114241097 A CN114241097 A CN 114241097A
- Authority
- CN
- China
- Prior art keywords
- map
- distance field
- distance
- rendering
- line
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Generation (AREA)
Abstract
本申请提供一种基于有向距离场的内描线渲染方法和装置,该方法生成了高分辨率的有向距离场贴图,并根据内描线的特点对其进行了有效的压缩,对无用的SDF值进行了过滤,提升了内描线渲染的效率。在渲染内描线时还考虑到贴图uv值的变化率,根据uv值的变化率对内描边进行平滑处理,消除了锯齿和失真,从而实现了一种高效、简洁的内描线渲染方法。
Description
技术领域
本申请涉及计算机图形渲染技术领域,特别涉及一种基于有向距离场的内描线渲染方法和装置、计算设备和计算机可读存储介质。
背景技术
在移动终端的3D卡通渲染应用中,为了使得渲染出的画面更加逼真,提高用户的视觉感受效果,通常需要对卡通形象进行内描线。目前主要有基于模型、基于屏幕空间和基于贴图的三种内描线方式。基于贴图的内描线技术使用较为广泛,但是在内描线贴图采样中,锯齿和模糊的情况较为严重。为了克服这种情况,可以使用本村氏线方式,这需要把贴图的UV展开成横平竖直的形式,工作量很大且难度比较高。因此需要一种相较于本村氏线更简洁、成本更低的内描线生成方案。
发明内容
有鉴于此,本申请实施例提供了一种基于有向距离场的内描线渲染方法和装置、计算设备和计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本申请实施例的第一方面,提供了一种基于有向距离场的内描线渲染方法,包括:
将内描线预先绘制在高分辨率的贴图中;
根据所述贴图生成有向距离场,并生成对应分辨率的距离场贴图;
通过降采样生成低分辨率的距离场贴图;
获取上述低分辨率的距离场贴图,渲染出内描线效果。
根据本申请实施例的第二方面,提供了一种基于有向距离场的内描线渲染装置,包括:
绘制模块,用于将内描线预先绘制在高分辨率的贴图中;
生成模块,用于根据所述贴图生成有向距离场,并生成对应分辨率的距离场贴图;
采样模块,用于通过降采样生成低分辨率的距离场贴图;
渲染模块,获取上述低分辨率的距离场贴图,渲染出内描线效果。
根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述基于有向距离场的内描线渲染方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述基于有向距离场的内描线渲染方法的步骤。
通过本申请的实施例,提供了一种高效、简洁的内描线渲染方法和装置,首先生成了高分辨率的距离场贴图,根据内描线的特点对其进行了有效的压缩,对无用的SDF值进行了过滤,提升了内描线渲染的效率。进一步在渲染时还考虑到贴图uv值的变化率,根据uv值的变化率对内描边进行平滑处理,消除了锯齿和失真,使之与传统的字体SDF算法区分开。
附图说明
图1是本申请实施例提供的计算设备的结构框图;
图2a是三维应用中渲染对象未绘制内描线的示意图;
图2b是三维应用中渲染对象绘制了内描线的示意图;
图3是现有技术中有向距离场(SDF)的示意图;
图4是本申请实施例提供的基于有向距离场的内描线渲染方法步骤的一示意图;
图5是根据本申请实施例提供的基于有向距离场的内描线渲染方法所渲染的内描线的一示意图;
图6是本申请实施例提供的基于有向距离场的内描线渲染装置的结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“响应于确定”。
在本申请中,提供了一种基于有向距离场的内描线渲染方法及装置、计算设备和计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本申请的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
现有技术中,在例如对卡通对象进行渲染的应用中,通常使用内描线让渲染出来的对象更加的形象和逼真,如图2a和图2b所示,其中图2a为未绘制内描线的渲染贴图,图2b为绘制有内描线的渲染贴图。但内描线的绘制在实时卡通渲染中较为复杂,目前主要有基于模型、基于屏幕空间和基于贴图的三种内描线方式。基于模型就是在制作时将内部边界绘制在顶点或者是额外的模型上,这种制作方式浪费顶点数据且不灵活自由,较少使用。基于屏幕空间是指在屏幕后处理中进行边缘检测,内外描线一同绘制出来,这种方式较难对描线本身进行参数设置,并且描线会出现多、杂、乱等问题,难以满足高质量内描线的需求。基于贴图的内描线技术使用较为广泛,针对贴图采样和摄像机缩放产生的锯齿问题,一般有提高贴图分辨率和本村氏线两种方式。在移动端的实时渲染中,引擎中的贴图分辨率不能太高,更合理的方式是使用本村氏线,但本村氏线绘制十分麻烦,其UV分布需要横平竖直,工作量大,要求高。
在本申请实施例中,为了解决上述问题,提出了一种基于有向距离场的内描线渲染方法和装置、计算设备和计算机可读存储介质。
有向距离场(Signed Distance Field,SDF):是指判断一个点是否在一个区域内。其中,Signed指正负号,Distance指点到点的距离,Field指区域。即SDF的结算结果表征了一个点是在一个区域的内部还是外部。如图3所示,位于圆环区域为正区域,该区域上的距离值为正,位于圆环以外的区域为负区域,该区域上的距离值为负。
图4中示出了基于有向距离场的内描线渲染方法的流程图,包括步骤402至步骤408。
步骤402:将内描线预先绘制在高分辨率的贴图中;
在一种具体的实施方式中,制作一张高分辨率的贴图,例如分辨率为4096*4096的贴图,将内描线绘制在高分辨率的贴图上。
进一步的,可以通过三维建模工具将模型的内部边界烘焙至贴图中形成内描线。在所属技术领域中,烘焙指将三维模型相关的资源以图片的形式绘制到贴图上。
进一步的,还可以在高分辨贴图上,根据实际的设计需求直接手绘出内描线。
步骤404:生成所述贴图的有向距离场,并生成对应分辨率的距离场贴图。
在一种具体的实施方式中,根据线性复杂度的生成算法生成有向距离场。
在另一种可能的实施方式中,在生成距离场贴图时,通过设置一定的距离阈值,以去掉无效的距离范围。在生成有向距离场时,生成了每个像素的SDF值,但是贴图中内描线宽度都比较小,距离内描线较远的SDF值的作用不大,如图3所示,距离圆环较远的负区域的距离值作用不大。因此可以通过预设阈值的方式将无用的SDF值进行过滤,进一步提升内描线渲染的效率。
具体的,遍历生成的二维数组,计算出每个像素的SDF值,并且求出所有像素SDF值的最大值maxDistance和最小值minDistance。
其中,maxDistance是正值,minDistance是负值,取minDistance和-maxDistance这两个负值中最大的一个,用来压缩内描线以外的区域;SDF_THRESHOLD_SCALE为一个大于1的缩放系数,用来保证最后的内描线以外的区域不会太小。
minDistance=Mathf.Max(minDistance,-maxDistance*SDF_THRESHOLD_SCALE);
clampDist=maxDistance-minDistance;
将当前每个像素的SDF值distance[x,y]与minDistance比较,然后除以clampDist以缩放距离值在[0,1]范围内。
步骤406:对生成的距离场贴图进行降采样处理,生成低分辨率的距离场贴图。在移动终端的3D应用中,由于受到硬件资源的限制,渲染贴图的分辨率不会太高,否则将会影响应用的运行速度。因此在该实施方式中,通过降低距离场贴图的分辨率来实现这一目的。而且,通过高分辨率的内描线贴图生成低分辨率的距离场贴图,使得贴图在被渲染时能充分利用硬件的插值算法,即便分辨率较低,也能还原出原来高分辨率下的内描线效果。
步骤408:获取低分率的距离场贴图,渲染出内描线效果。
在一种具体的实施方式中,在对内描线进行渲染着色时,根据内描线的距离场贴图获取存储在贴图中alpha通道中的SDF值,渲染出内描线效果。
在另一种具体的实施方式中,当贴图的uv值的变化不均匀时,会导致渲染出来的内描线出现锯齿的情况。因此,为了解决该问题,在该实施方式中根据屏幕空间贴图的UV变化率自适应地平滑过渡采样值。
在获取存储在贴图中alpha通道中像素的SDF值后,计算距离值distance在x、y方向上的梯度值之和,根据梯度值来判断uv值的变化率。如果贴图的uv值在x、y方向变化率很大,说明贴图被拉伸严重,采样贴图会产生失真和锯齿,因此需要使得smoothstep的上下限变化幅度更大,实现更加平滑的抗锯齿效果。
float fstep(float threshold,float distance){
float afwidth=fwidth(distance)*_SmoothDelta;
//smoothstep输出[0,1],如果distance比threshold-afwidth小,时输出0,比threshold+afwidth大时输出1,在中间时则进行一个平滑的插值。
return smoothstep(threshold-afwidth,threshold+afwidth,distance);
}
half sdf=SAMPLE_TEXTURE2D(_SDFMap,sampler_SDFMap,uv).a;
//自适应算法的内边算法,对内描线进行绘制。
sdf=fstep(_DistanceSDF,sdf);
在另外一种具体的实施方式中,直接计算distance在x、y方向上的变化率值,然后求欧几里得距离,根据欧几里得距离、预设阈值以及distance调整smoothstep。smoothstep输出范围为[0,1],如果distance比threshold-afwidth小,时输出0,比threshold-afwidth大时输出1,中间则进行一个平滑的插值。
float afwidth=length(float2(ddx(distance),ddy(distance)))*_SmoothDelta;
return smoothstep(threshold-afwidth,threshold+afwidth,distance);
//自适应算法的内边算法,对内描线进行绘制。
sdf=fstep(_DistanceSDF,sdf);
在上述基于有向距离场的内描线渲染方法中,提供了一种高效、简洁的内描线渲染方法,同时也解决了现有技术中绘制的内描线锯齿严重、模糊的情况。本申请的方法在生成高分辨率的距离场贴图时,根据内描线的特点对其进行了有效的压缩,对无用的SDF值进行了过滤,提升了内描线渲染的效率。进一步的,在渲染时,为了适应移动终端的特点,对高分辨率的距离场进行降采样;在渲染时还考虑到贴图uv值的变化率,根据uv值的变化率对内描边进行平滑处理,消除了锯齿和失真。使用本申请实施例的方法对内描线的渲染效率和效果明显好于现有技术,如在字体渲染领域常用的SDF算法。
与上述方法实施例相对应,本申请还提供了一种基于有向距离场的内描线渲染装置的实施例,图6示出了本申请一个实施例的一种基于有向距离场的内描线渲染装置的结构示意图。如图6所示,该装置包括:
绘制模块,用于将内描线预先绘制在高分辨率的贴图中;
生成模块,用于根据所述贴图生成有向距离场,并生成对应分辨率的距离场贴图;
采样模块,用于通过降采样生成低分辨率的距离场贴图;
渲染模块,获取上述低分率的距离场贴图,渲染出内描线效果。
上述为本实施例的一种基于有向距离场的内描线渲染装置的示意性方案。需要说明的是,该用于移动终端的内描线渲染装置的技术方案与上述的基于有向距离场的内描线渲染方法的技术方案属于同一构思,用于移动终端的内描线渲染装置的技术方案未详细描述的细节内容,均可以参见上述用于移动终端的基于有向距离场的内描线渲染方法的技术方案的描述。
本申请一实施例中还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述的基于有向距离场的内描线渲染方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的基于有向距离场的内描线渲染方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述基于有向距离场的内描线渲染方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述基于有向距离场的内描线渲染方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的基于有向距离场的内描线渲染方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述基于有向距离场的内描线渲染方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。
Claims (10)
1.一种基于有向距离场的内描线渲染方法,其特征在于,包括:
将内描线预先绘制在高分辨率的贴图中;
根据所述贴图生成有向距离场,并生成对应分辨率的距离场贴图;
通过降采样生成低分辨率的距离场贴图;
获取上述低分辨率的距离场贴图,渲染出内描线效果。
2.根据权利要求1所述的方法,其中,所述将内描线预先绘制在高分辨率的贴图中,包括:
通过模型工具将内部边界烘焙至贴图中形成内描线或直接在贴图上手绘出内描线。
3.根据权利要求1所述的方法,所述根据所述贴图生成有向距离场,还包括:
采用线性复杂度的生成算法快速生成有向距离场。
4.根据权利要求1所述的方法,其中,所述根据所述贴图生成有向距离场,并生成对应分辨率的距离场贴图还包括:
通过设置距离阈值,压缩有向距离场中无效的距离范围。
5.根据权利要求1所述的方法,其中,所述渲染出内描线效果还包括:
在渲染时,对距离场贴图进行采样,根据屏幕空间贴图的UV变化率自适应平滑过渡采样值。
6.根据权利要求5所述的方法,所述根据屏幕空间贴图的UV变化率自适应平滑过渡采样值还包括:
获得距离在x、y方向上的梯度值之和;
根据所述梯度值之和、预设阈值以及距离值获取平滑过渡采样值。
7.根据权利要求5所述的方法,所述根据屏幕空间贴图的UV变化率自适应平滑过渡采样值还包括:
计算距离在x、y方向上的变化率值,求出欧几里得距离;
根据所述欧几里得距离、预设阈值以及距离值获取平滑过渡采样值。
8.一种基于有向距离场的内描线渲染装置,其特征在于,包括:
绘制模块,用于将内描线预先绘制在高分辨率的贴图中;
生成模块,用于根据所述贴图生成有向距离场,并生成对应分辨率的距离场贴图;
采样模块,用于通过降采样生成低分辨率的距离场贴图;
渲染模块,获取上述低分辨率的距离场贴图,渲染出内描线效果。
9.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述指令时实现权利要求1-7任意一项所述方法的步骤。
10.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1-7任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111567883.0A CN114241097A (zh) | 2021-12-21 | 2021-12-21 | 一种基于有向距离场的内描线渲染方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111567883.0A CN114241097A (zh) | 2021-12-21 | 2021-12-21 | 一种基于有向距离场的内描线渲染方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114241097A true CN114241097A (zh) | 2022-03-25 |
Family
ID=80759937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111567883.0A Pending CN114241097A (zh) | 2021-12-21 | 2021-12-21 | 一种基于有向距离场的内描线渲染方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114241097A (zh) |
-
2021
- 2021-12-21 CN CN202111567883.0A patent/CN114241097A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Real-esrgan: Training real-world blind super-resolution with pure synthetic data | |
US8655109B2 (en) | Regression-based learning model for image upscaling | |
Zhang et al. | CCR: Clustering and collaborative representation for fast single image super-resolution | |
WO2022199583A1 (zh) | 图像处理方法、装置、计算机设备和存储介质 | |
CN109360153B (zh) | 图像处理方法、超分辨率模型生成方法、装置及电子设备 | |
CN110610526B (zh) | 一种基于wnet对单目人像进行分割和景深渲染的方法 | |
CN109410141B (zh) | 一种图像处理方法、装置、电子设备及存储介质 | |
CN111652830A (zh) | 图像处理方法及装置、计算机可读介质及终端设备 | |
WO2021115403A1 (zh) | 一种图像的处理方法及装置 | |
CN107590775B (zh) | 一种利用回归树场的图像超分辨率放大方法 | |
KR20090065204A (ko) | 모바일 기기에서의 이미지 변환 장치 및 방법 | |
CN110163866A (zh) | 一种图像处理方法、电子设备及计算机可读存储介质 | |
CN111353955A (zh) | 一种图像处理方法、装置、设备和存储介质 | |
CN110570506A (zh) | 一种地图资源管理方法、装置、计算设备及存储介质 | |
CN114862725A (zh) | 基于光流法实现运动感知模糊特效的方法及装置 | |
CN115546027A (zh) | 图像缝合线确定方法、装置以及存储介质 | |
CN107038199B (zh) | 一种绘图方法和装置 | |
CN110363733B (zh) | 一种混合图像生成方法及装置 | |
Li et al. | Learning steerable function for efficient image resampling | |
Ning et al. | Multi-frame image super-resolution reconstruction using sparse co-occurrence prior and sub-pixel registration | |
CN114241097A (zh) | 一种基于有向距离场的内描线渲染方法和装置 | |
CN114820374A (zh) | 模糊处理方法及装置 | |
CN115908116A (zh) | 一种图像处理方法、装置、设备及存储介质 | |
Kao et al. | Improved edge-directed super resolution | |
CN111093045A (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 |