CN113658315B - 基于分形噪声的光影特效制作方法和装置 - Google Patents
基于分形噪声的光影特效制作方法和装置 Download PDFInfo
- Publication number
- CN113658315B CN113658315B CN202110940793.5A CN202110940793A CN113658315B CN 113658315 B CN113658315 B CN 113658315B CN 202110940793 A CN202110940793 A CN 202110940793A CN 113658315 B CN113658315 B CN 113658315B
- Authority
- CN
- China
- Prior art keywords
- shadow
- rendering
- texture
- fractal noise
- offset
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/503—Blending, e.g. for anti-aliasing
-
- 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
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/30—Polynomial surface description
Abstract
本发明涉及一种基于分形噪声的光影特效制作方法和装置,该方法包括:基于线条在渲染区域内构造出主体;确定渲染区域内的每个像素点到主体的最短距离;根据最短距离确定对应像素点的发光效果,并根据发光效果在对应像素点处进行辉光渲染;基于分形噪声变换辉光渲染结果的纹理采样坐标,得到多种光影效果;将所有光影效果进行叠加处理,得到光影特效。本发明消耗的计算资源和时间较少,能够适用于移动端。此外,本发明支持灵活编辑光影特效,生成的光影特效具备多样性和差异性,以及具备真实质感。
Description
技术领域
本发明涉及视频制作技术领域,具体涉及一种基于分形噪声的光影特效制作方法和装置。
背景技术
光影特效在电影等影视作品中经常出现,给人们带来了很好的视觉体验。目前,影视作品中的光影特效通常利用粒子系统以及基于物理的渲染方法来实现。通过该方法制作的光影特效效果饱满、多样且极富现实感,能带来充分的视觉冲击力。然而,该光影特效的制作方法存在耗费计算资源和时间的缺点,不适用于移动端。
发明内容
有鉴于此,提供一种基于分形噪声的光影特效制作方法和装置,以解决相关技术的光影特效的制作方法存在的耗费计算资源和时间的缺点,不适用于移动端的问题。
本发明采用如下技术方案:
第一方面,本发明提供了一种基于分形噪声的光影特效制作方法,包括:
基于线条在渲染区域内构造出主体;所述主体为光影特效需作用的位置;
确定所述渲染区域内的每个像素点到所述主体的最短距离;
根据所述最短距离确定对应所述像素点的发光效果,并根据所述发光效果在对应所述像素点处进行辉光渲染;
基于分形噪声变换辉光渲染结果的纹理采样坐标,得到多种光影效果;
将所有所述光影效果进行叠加处理,得到光影特效。
优选的,所述主体由直线、拟合二阶贝塞尔曲线和/或拟合三阶贝塞尔曲线构成;所述拟合二阶贝塞尔曲线和所述拟合三阶贝塞尔曲线由多条直线段拟合得出;
所述基于线条在渲染区域内构造出主体之后,本实施例的基于分形噪声的光影特效制作方法还包括:
获取所述主体的各线段的端点位置信息,并将所述端点位置信息传入OpenGL,以使OpenGL根据所述各线段的端点位置信息实现所述基于线条在渲染区域内构造出主体之后各方法步骤。
优选的,本实施例的基于分形噪声的光影特效制作方法,还包括:将所述最短距离保存至纹理;
所述最短距离存储为vec2类型的数据。
优选的,所述确定所述渲染区域内的每个像素点到所述主体的最短距离之前,本实施例的基于分形噪声的光影特效制作方法还包括:将所述纹理的分辨率缩小至240P;
所述确定所述渲染区域内的每个像素点到所述主体的最短距离之后,还包括:将所述纹理的分辨率放大至原始分辨率。
优选的,所述辉光渲染的计算公式如下:
color
=vec4(mix(dColor.rgb,sColor.rgb,pow(f,e1)),mix(0.0,sColor.a,pow(f,e2)))
其中,color表示辉光渲染结果;dColor表示辉光颜色;sColor表示主体颜色;f表示插值比例,0≤f≤1;mix表示线性插值函数;pow表示指数函数,第一个参数为底数,第二个参数为指数,e1,e2即为pow函数的指数参数;rgb表示颜色的红蓝绿分量,a表示颜色的透明度分量;
其中f的计算公式如下:
f=calcInterpolation(r,diffusion,bias)
其中,r表示最短距离;diffusion表示扩散因子;bias表示偏置因子。
优选的,所述分形噪声的函数为连续函数;
所述基于分形噪声变换辉光渲染结果的纹理采样坐标,得到多种光影效果,包括:
根据如下计算公式对所述纹理采样坐标进行偏移;所有所述纹理采样坐标的偏移结果相同;所述偏移结果与当前时间成正比;
offset'=rot*time*speed
其中,offset’表示偏移结果;rot表示旋转变换矩阵;time表示当前时间;speed表示光影运动速度;
以纹理采样坐标为自变量,以偏移结果为因变量,生成分形噪声函数;
根据如下计算公式在所述分形噪声函数中增设随时间连续变化的向量参数;
其中,fbm表示分形噪声函数;st’表示预偏移之后的纹理采样坐标;offB表示向量参数,用来增强光影流动效果的表现力;phase表示相位参数;frequency表示频率;amplitude表示振幅;transMat表示线性变换矩阵;perlinNoise表示柏林噪声函数;
根据如下计算公式计算最终纹理采样坐标:
pos=st+fbm(st+offset'*a,offset'*b)
其中,pos表示最终纹理采样坐标;st表示原始纹理采样坐标;a和b分别为预设常量;fbm表示分形噪声函数;
在所述最终纹理采样坐标处对纹理进行采样,并将采样结果渲染至原始纹理采样坐标,得到光影效果;
重复执行上述步骤,并在重复执行过程中改变所述分形噪声函数的内部参数,得到多种光影效果。
优选的,所述改变所述分形噪声函数的内部参数,包括:
在transMat中添加线性变换操作和/或修改目标参数;所述目标参数包括频率、振幅和相位;所述线性变换操作至少包括平移、缩放、旋转和正切。
优选的,所述将所有所述光影效果进行叠加处理,包括:
通过混合模式将所有所述光影效果进行叠加处理;所述混合模式为滤色。
第二方面,本发明还提供了一种基于分形噪声的光影特效制作装置,包括:
构造主体模块,用于基于线条在渲染区域内构造出主体;所述主体为光影特效需作用的地方;
计算最短距离模块,用于确定所述渲染区域内的每个像素点到所述主体的最短距离;
辉光渲染模块,用于根据所述最短距离确定对应所述像素点的发光效果,并根据所述发光效果在对应所述像素点处进行辉光渲染;
确定光影效果模块,用于基于分形噪声变换辉光渲染结果的纹理采样坐标,得到多种光影效果;
叠加模块,用于将所有所述光影效果进行叠加处理,得到光影特效。
本发明采用以上技术方案,一种基于分形噪声的光影特效制作方法,包括:基于线条在渲染区域内构造出主体;所述主体为光影特效需作用的地方;确定所述渲染区域内的每个像素点到所述主体的最短距离;根据所述最短距离确定对应所述像素点的发光效果,并根据所述发光效果在对应所述像素点处进行辉光渲染;基于分形噪声变换辉光渲染结果的纹理采样坐标,得到多种光影效果;将所有所述光影效果进行叠加处理,得到光影特效。基于此,由于噪声的计算对资源和时间的需求很低,使得本发明消耗的计算资源和时间较少,能够适用于移动端。此外,本发明支持灵活编辑光影特效,生成的光影特效具备多样性和差异性,以及具备真实质感。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种基于分形噪声的光影特效制作方法的流程示意图。
图2是本发明实施例提供的一种光影特效图。
图3是本发明实施例提供的另一种光影特效图。
图4是本发明实施例提供的另一种光影特效图。
图5是本发明实施例提供的另一种光影特效图。
图6为本发明实施例提供的一种基于分形噪声的光影特效制作装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
图1是本发明实施例提供的一种基于分形噪声的光影特效制作方法的流程示意图。如图1所示,本实施例的基于分形噪声的光影特效制作方法,包括:
S101、基于线条在渲染区域内构造出主体;所述主体为光影特效需作用的地方。
具体的,主体即是光影特效需作用的位置。光影特效会改变主体及其预设距离范围内渲染区域的表现效果,远离主体的渲染区域的表现效果不会改变。图2是本发明实施例提供的一种光影特效图。如图2所示,图中高亮部分的W字形即为主体,纯黑色部分是距离主体较远的区域。预设距离范围内由步骤S103决定。
S102、确定渲染区域内的每个像素点到主体的最短距离。
详细的,主体由线段构成,最短距离等价于像素点到主体所有线段的距离最小值,最短距离的计算公式如下:
Distance(pixel,SL)=min{Distance(pixel,Li)|Li∈SL}
其中,Distance(pixel,SL)表示当前像素点到主体的最短距离;Distance(pixel,Li)表示当前像素点到主体中某一线段Li的距离;pixel为当前像素点,其具体数据代表当前像素点的坐标信息,可表示为向量(x,y)的形式;SL表示主体,主体又可当成一个线段集合;Li为该集合内的某一元素,亦即组成该主体的某一条线段。
具体的,最短距离计算过程又可细分为三步,假设当前的目标线段为L1(L1∈SL),并设其两个端点分别为p0和p1,则具体计算过程如下:
步骤一、将pixel与p0连成一条线段L1',求L1'在线段L1上的投影shadow,其计算公式如下:
shadow=dot(pixel-po,normalize(p1-p0))
其中,dot表示点乘运算;pixel表示当前像素点;normalize表示归一化运算,即将任意长度的向量转化为单位向量。
步骤二、利用投影shadow来计算经过点pixel且与目标线段垂直的直线与包含目标线段的直线的交点pIs,其计算公式如下:
pIs=p0+shadow*normalize(p1-p0)
步骤三、判断交点pIs是否在目标线段的端点p0、p1所限定的范围内,如过在该范围内,最短距离可由计算该像素点pixel到交点pIs的距离直接得出,否则取pixel到p0、p1的距离的较小值。
需要说明的是,本实施例步骤S102-S105全部基于OpenGL进行渲染。上述计算全部通过向量的加法、减法、点乘运算来进行,避免了对于直线斜率不存在的情况(即平行于坐标系y轴的直线的情况)的讨论,并尽量避免了除法运算,最大限度地降低OpenGL渲染过程的消耗。
S103、根据最短距离确定对应像素点的发光效果,并根据发光效果在对应像素点处进行辉光渲染。
详细的,通过计算像素点距离主体的最短距离来确定该像素位置的发光效果,这种方式的好处在于使辉光效果多样化,让开发者能够更灵活地去定制不同风格的辉光效果,并具备更高的可扩展性。
S104、基于分形噪声变换辉光渲染结果的纹理采样坐标,得到多种光影效果。
具体的,利用上一步获得的辉光效果,渲染得到光影效果。其关键点在于纹理采样位置的变换,具体应根据当前纹理采样坐标以及播放时间进行一定程度的偏移,偏移的方向以及程度,由分形噪声所决定。
更具体地讲,可以将分形噪声的处理过程看作一个函数,自变量为纹理采样坐标,因变量为偏移结果。对于两个相邻坐标,两个相对应的输出也需要是连续的,即这个分形噪声函数是一个连续函数。在本实施例中,分形噪声由多个频率、振幅和相位等参数不同的柏林噪声叠加组成。由于柏林噪声通过插值方法实现了连续性,而连续函数相加的结果仍然是连续函数,因此分形噪声同样具备连续性。此外,函数的变化趋势需要具备明显的随机性,使视觉上出现频繁且剧烈的波动,这种随机性也由于多个不同噪声的相加而得到增强。这样就能模拟出自然事物那般外形极不规则,但又并非完全混乱的情况。
S105、将所有光影效果进行叠加处理,得到光影特效。
具体的,可以通过正常、溶解、正片叠加和滤色等混合模式将所有光影效果进行叠加处理,得到光影特效。
本实施例采用以上技术方案,一种基于分形噪声的光影特效制作方法,包括:基于线条在渲染区域内构造出主体;所述主体为光影特效需作用的地方;确定所述渲染区域内的每个像素点到所述主体的最短距离;根据所述最短距离确定对应所述像素点的发光效果,并根据所述发光效果在对应所述像素点处进行辉光渲染;基于分形噪声变换辉光渲染结果的纹理采样坐标,得到多种光影效果;将所有所述光影效果进行叠加处理,得到光影特效。基于此,由于噪声的计算对资源和时间的需求很低,使得本实施例消耗的计算资源和时间较少,能够适用于移动端。此外,本发明支持灵活编辑光影特效,生成的光影特效具备多样性和差异性,以及具备真实质感。
优选的,主体由直线、拟合二阶贝塞尔曲线和/或拟合三阶贝塞尔曲线构成;所述拟合二阶贝塞尔曲线和拟合三阶贝塞尔曲线由多条直线段拟合得出;
所述基于线条在渲染区域内构造出主体之后,本实施例的基于分形噪声的光影特效制作方法还包括:
获取所述主体的各线段的端点位置信息,并将所述端点位置信息传入OpenGL,以使OpenGL根据所述各线段的端点位置信息实现步骤S102-S105。
详细的,主体由线段构成,这些线段通过首尾相连的方式构造出多种多样的形状,使得主体呈现多种多样的形状。主体支持三种类型的线条,即直线、n拟合二阶贝塞尔曲线和拟合三阶贝塞尔曲线。直线型主体可用单条线段直接表示,而由于在OpenGL中很难直接对曲线进行处理和绘制,因此对于拟合贝塞尔曲线,选择由多条连续线段拟合的方式来近似表达,线段的数量越多,拟合效果就越接近曲线本身,线段连接处的转折所造成的分割感也越微弱。
二阶贝塞尔曲线方程如下:
B(t)=(1-t)2P0+2t(1-t)P1+t2P2,t∈[0,1]
三阶贝塞尔曲线方程如下:
B(t)=(1-t)3P0+3t(1-t)2P1+3t2(1-t)P2+t3P3,t∈[0,1]
其中,P0、P1和P2分别为贝塞尔曲线的控制点,为常量部分;t是方程的自变量;B(t)是因变量,表示位于曲线上的某个点。
通过对自变量t等间隔地取值,获取相对应的结果,就能将曲线较为合理地分割成多条直线段。
最后,在数据传输方面,本实施例参考矢量图的数据存储形式,仅需线段的端点位置信息就能在后续步骤中还原出这些线段所组成的图形,因此本实施例仅将主体的各线段的端点数据传入OpenGL进行下一步处理。
优选的,本实施例的基于分形噪声的光影特效制作方法,还包括:将所述最短距离保存至纹理;所述最短距离存储为vec2类型的数据。
具体的,在计算出像素点到主体的每个线段的距离后,获取到其中的最小值,即最短距离,将该最短距离保存至纹理,以供下一步读取。其中,纹理为OpenGL中保存渲染数据的一种格式。
值得注意的是,纹理所存储的数据格式通常为RGBA格式,是一个vec4类型的数据,由R、G、B(分别表示三原色红绿蓝)和A(表示透明度)这4个数组成,如果其单位为float8(8位浮点数),那么单个数就能够提供1/256的小数点后精度或[0,255]的整数取值范围。为了支持更大的处理范围或更高的存储精度,可将计算结果拆解,用两个或更多数字存储(最多不会超过4个),读取时再将它们合并回单个数值。在本实施例中,则将最短距离存储在一个vec2数据(两个vec2可组成一个vec4)中,其转换公式以及逆转换公式分别为:
r→vec2(mod(r,64.0),floor(r*0.015625))*0.015625
vec2.x*64.0+vec2.y*4096.0→r
其中,r表示最短距离;mod为取余运算;floor为取整运算。
上述计算公式为r提供了64/256,即1/4的小数点后精度,并提供了[0,4159](4159=64*64+64-1)的整数取值范围。
此外,由于该步需要在代码中使用for循环,而for循环在GPU里的运行效率相对较低。考虑到距离具备线性变化的性质,因此为了维持较高的性能,在计算最短距离这一步之前先将纹理缩小至240P分辨率,计算完成后,再通过OpenGL自身所带的插值运算过程将纹理放大至原始大小。即确定所述渲染区域内的每个像素点到所述主体的最短距离之前,本实施例的基于分形噪声的光影特效制作方法还包括:将所述纹理的分辨率缩小至240P;确定所述渲染区域内的每个像素点到所述主体的最短距离之后,本实施例的基于分形噪声的光影特效制作方法还包括:将所述纹理的分辨率放大至原始分辨率。
优选的,所述辉光渲染的计算公式如下:
color
=vec4(mix(dColor.rgb,sColor,rgb,pow(f,e1)),mix(0.0,sColor.a,pow(f,e2)))
其中,color表示辉光渲染结果;dColor表示辉光颜色;sColor表示主体颜色;f表示插值比例,0≤f≤1;mix表示线性插值函数;pow表示指数函数,第一个参数为底数,第二个参数为指数,e1,e2即为pow函数的指数参数;rgb表示颜色的红蓝绿分量,a表示颜色的透明度分量;
其中,f的计算公式如下:
f=calcInterpolation(r,diffusion,bias)
其中,r表示最短距离;diffusion表示扩散因子;bias表示偏置因子。
具体的,除了最短距离r,本实施例还提供了扩散因子diffusion以及偏置因子bias参数。bias的作用是决定步骤S101中提到的主体预设距离范围的宽广程度,bias的值越大,纹理采样位置就会越往主体所在的方向靠拢,从而间接使得辉光作用的范围变广,这一点本质上通过按比例缩小最短距离r来达成,即r=r*scale,scale∈[0,1]。diffusion的作用是影响辉光的表现效果,具体需要从整体上改变辉光的亮度bright和不透明度opacity。
通过对辉光渲染的计算公式进行插值来获得最终渲染结果color,亦是当前位置辉光强弱效果的量化表示,其值为vec4格式。最短距离r和扩散因子diffusion对插值比例f的值均产生积极影响,即最短距离r和扩散因子diffusion的值越大,f的值也越大。且由于f∈[0,1],因此使用指数运算pow来区分其对bright和opacity属性的影响程度。经过指数运算后的插值比例的值越大,color前三位的值会越靠近辉光颜色,即bright越大,反之则越靠近主体颜色;同理,第四位的值越逼近于0(表示完全透明),opacity的值就越小,反之越逼近主体自身的不透明度(通常为1,表示完全不透明)。
值得注意的是,随着扩散因子diffusion参数的值由0逐步增大,辉光效果也会产生从粒子聚集在主体部分,到粒子向主体四周扩散,再到粒子完全消逝不见的变化过程(分别参考图3、图4和图5),从而呈现出更优良的视觉质感。
优选的,所述分形噪声的函数为连续函数;所述基于分形噪声变换辉光渲染结果的纹理采样坐标,得到多种光影效果,包括:
根据如下计算公式对所述纹理采样坐标进行偏移;所有所述纹理采样坐标的偏移结果相同;所述偏移结果与当前时间成正比;
offset'=rot*time*speed
其中,offset’表示偏移结果;rot表示旋转变换矩阵;time表示当前时间;speed表示光影运动速度;
以纹理采样坐标为自变量,以偏移结果为因变量,生成分形噪声函数;
根据如下计算公式在所述分形噪声函数中增设随时间连续变化的向量参数;
其中,fbm表示分形噪声函数;st’表示预偏移之后的纹理采样坐标;offB表示向量参数,用来增强光影流动效果的表现力;phase表示相位参数;frequency表示频率;amplitude表示振幅;transMat表示线性变换矩阵;perlinNoise表示柏林噪声函数;
根据如下计算公式计算最终纹理采样坐标:
pos=st+fbm(st+offset'*a,offset'*b)
其中,pos表示最终纹理采样坐标;st表示原始纹理采样坐标;a和b分别为预设常量;fbm表示分形噪声函数。
在所述最终纹理采样坐标处对纹理进行采样,并将采样结果渲染至原始纹理采样坐标,得到光影效果;
重复执行上述步骤,并在重复执行过程中改变所述分形噪声函数的内部参数,得到多种光影效果。
具体的,为让光影效果随时间动态变化,在将纹理采样坐标传入分形噪声函数之前,会首先对所有纹理采样坐标进行一个等值并与当前时间成正比的偏移,这样能让光影在整体上向某个固定方向运动,产生类似于流体流动的效果。在此基础上,如果用旋转变换矩阵去预乘这个偏移向量,就能达到控制光影运动方向的目的。为了增强流动效果的表现力,还将一个随时间连续变化的向量作为参数传递给分形噪声函数,去影响其内部的相位参数phase。
此外,通过对分形噪声函数的内部行为(例如在transMat中添加线性变换操作和/或修改目标参数;所述目标参数包括频率、振幅和相位;所述线性变换操作至少包括平移、缩放、旋转和正切),则能塑造出富有差异性的效果。
优选的,所述将所有所述光影效果进行叠加处理,包括:
通过混合模式将所有所述光影效果进行叠加处理;所述混合模式为滤色。
具体的,通过如下计算公式将所有所述光影效果进行叠加处理,得到光影特效:
color=white-(white-layer1)*(white-layer2)
其中,white代表纯白色;layer1和layer2分别代表不同的光影效果层。
本实施例提供灵活的编辑能力,以生成兼具多样性以及差异性的光影特效,并同时也保证了最终结果的自然美观。
基于一个总的发明构思,本发明还提供了基于分形噪声的光影特效制作装置。图6为本发明实施例提供的一种基于分形噪声的光影特效制作装置的结构示意图。如图6所示,本实施例的基于分形噪声的光影特效制作装置,包括:构造主体模块61、计算最短距离模块62、辉光渲染模块63、确定光影效果模块64和叠加模块65。
其中,构造主体模块61,用于基于线条在渲染区域内构造出主体;所述主体为光影特效需作用的地方;计算最短距离模块62,用于确定所述渲染区域内的每个像素点到所述主体的最短距离;辉光渲染模块63,用于根据所述最短距离确定对应所述像素点的发光效果,并根据所述发光效果在对应所述像素点处进行辉光渲染;确定光影效果模块64,用于基于分形噪声变换辉光渲染结果的纹理采样坐标,得到多种光影效果;叠加模块65,用于将所有所述光影效果进行叠加处理,得到光影特效。
优选的,本实施例的基于分形噪声的光影特效制作装置还包括:数据传输模块,用于获取所述主体的各线段的端点位置信息,并将所述端点位置信息传入OpenGL。
优选的,本实施例的基于分形噪声的光影特效制作装置还包括:保持模块,用于将所述最短距离保存至纹理;所述最短距离存储为vec2类型的数据。
优选的,本实施例的基于分形噪声的光影特效制作装置还包括:调整纹理分辨率模块,用于将所述纹理的分辨率缩小至240P;
所述确定所述渲染区域内的每个像素点到所述主体的最短距离之后,还包括:将所述纹理的分辨率放大至原始分辨率。
优选的,辉光渲染模块63具体通过如下计算公式进行辉光渲染;
color
=vec4(mix(dColor.rgb,sColor.rgb,pow(f,e1)),mix(0.0,sColor.a,pow(f,e2)))
其中,color表示辉光渲染结果;dColor表示辉光颜色;sColor表示主体颜色;f表示插值比例,0≤f≤1;mix表示线性插值函数;pow表示指数函数,第一个参数为底数,第二个参数为指数,e1,e2即为pow函数的指数参数;rgb表示颜色的红蓝绿分量,a表示颜色的透明度分量;
其中f的计算公式如下:
f=calcInterpolation(r,diffusion,bias)
其中,r表示最短距离;diffusion表示扩散因子;bias表示偏置因子。
优选的,确定光影效果模块64具体用于实现如下方法:
根据如下计算公式对所述纹理采样坐标进行偏移;所有所述纹理采样坐标的偏移结果相同;所述偏移结果与当前时间成正比;
offset'=rot*time*speed
其中,offset’表示偏移结果;rot表示旋转变换矩阵;time表示当前时间;speed表示光影运动速度;
以纹理采样坐标为自变量,以偏移结果为因变量,生成分形噪声函数;
根据如下计算公式在所述分形噪声函数中增设随时间连续变化的向量参数;
其中,fbm表示分形噪声函数;st’表示预偏移之后的纹理采样坐标;offB表示向量参数,用来增强光影流动效果的表现力;phase表示相位参数;frequency表示频率;amplitude表示振幅;transMat表示线性变换矩阵;perlinNoise表示柏林噪声函数;
根据如下计算公式计算最终纹理采样坐标:
pos=st+fbm(st+offset'*a,offset'*b)
其中,pos表示最终纹理采样坐标;st表示原始纹理采样坐标;a和b分别为预设常量。
在所述最终纹理采样坐标处对纹理进行采样,并将采样结果渲染至原始纹理采样坐标,得到光影效果;
重复执行上述步骤,并在重复执行过程中改变所述分形噪声函数的内部参数,得到多种光影效果。
优选的,确定光影效果模块64具体用于在transMat中添加线性变换操作和/或修改目标参数;所述目标参数包括频率、振幅和相位;所述线性变换操作至少包括平移、缩放、旋转和正切。
优选的,叠加模块65具体用于通过混合模式将所有所述光影效果进行叠加处理;所述混合模式为滤色。
需要说明的是,本实施例和上述实施例基于一个总的发明构思,具备相同或相应的执行过程和有益效果,在此不再赘述。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程示意图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (8)
1.一种基于分形噪声的光影特效制作方法,其特征在于,包括:
基于线条在渲染区域内构造出主体;所述主体为光影特效需作用的位置;
确定所述渲染区域内的每个像素点到所述主体的最短距离;
根据所述最短距离确定对应所述像素点的发光效果,并根据所述发光效果在对应所述像素点处进行辉光渲染;
基于分形噪声变换辉光渲染结果的纹理采样坐标,得到多种光影效果;
将所有所述光影效果进行叠加处理,得到光影特效;
其中,所述分形噪声的函数为连续函数;所述基于分形噪声变换辉光渲染结果的纹理采样坐标,得到多种光影效果,包括:
根据如下计算公式对所述纹理采样坐标进行偏移;所有所述纹理采样坐标的偏移结果相同;所述偏移结果与当前时间成正比;
offset'=rot*time*speed
其中,offset’表示偏移结果;rot表示旋转变换矩阵;time表示当前时间;speed表示光影运动速度;
以纹理采样坐标为自变量,以偏移结果为因变量,生成分形噪声函数;
根据如下计算公式在所述分形噪声函数中增设随时间连续变化的向量参数;
其中,fbm表示分形噪声函数;st’表示预偏移之后的纹理采样坐标;offB表示向量参数,用来增强光影流动效果的表现力;phase表示相位参数;frequency表示频率;amplitude表示振幅;transMat表示线性变换矩阵;perlinNoise表示柏林噪声函数;
根据如下计算公式计算最终纹理采样坐标:
pos=st+fbm(st+offset'*a,offset'*b)
其中,pos表示最终纹理采样坐标;st表示原始纹理采样坐标;a和b分别为预设常量;fbm表示分形噪声函数;
在所述最终纹理采样坐标处对纹理进行采样,并将采样结果渲染至原始纹理采样坐标,得到光影效果;
重复执行上述步骤,并在重复执行过程中改变所述分形噪声函数的内部参数,得到多种光影效果。
2.根据权利要求1所述的基于分形噪声的光影特效制作方法,其特征在于,所述主体由直线、拟合二阶贝塞尔曲线和/或拟合三阶贝塞尔曲线构成;所述拟合二阶贝塞尔曲线和所述拟合三阶贝塞尔曲线由多条直线段拟合得出;
所述基于线条在渲染区域内构造出主体之后,还包括:
获取所述主体的各线段的端点位置信息,并将所述端点位置信息传入OpenGL,以使OpenGL根据所述各线段的端点位置信息实现所述基于线条在渲染区域内构造出主体之后各方法步骤。
3.根据权利要求1所述的基于分形噪声的光影特效制作方法,其特征在于,还包括:将所述最短距离保存至纹理;
所述最短距离存储为vec2类型的数据。
4.根据权利要求3所述的基于分形噪声的光影特效制作方法,其特征在于,所述确定所述渲染区域内的每个像素点到所述主体的最短距离之前,还包括:将所述纹理的分辨率缩小至240P;
所述确定所述渲染区域内的每个像素点到所述主体的最短距离之后,还包括:将所述纹理的分辨率放大至原始分辨率。
5.根据权利要求1所述的基于分形噪声的光影特效制作方法,其特征在于,所述辉光渲染的计算公式如下:
color
=vec4(mix(dColor.rgb,sColor.rgb,pow(f,e1)),mix(0.0,sColor.a,pow(f,e2)))其中,color表示辉光渲染结果;dColor表示辉光颜色;sColor表示主体颜色;f表示插值比例,0≤f≤1;mix表示线性插值函数;pow表示指数函数,第一个参数为底数,第二个参数为指数,e1,e2即为pow函数的指数参数;rgb表示颜色的红蓝绿分量;a表示颜色的透明度分量;
其中f的计算公式如下:
f=calcInterpolation(r,diffusion,bias)
其中,r表示最短距离;diffusion表示扩散因子;bias表示偏置因子。
6.根据权利要求1所述的基于分形噪声的光影特效制作方法,其特征在于,所述改变所述分形噪声函数的内部参数,包括:
在transMat中添加线性变换操作和/或修改目标参数;所述目标参数包括频率、振幅和相位;所述线性变换操作至少包括平移、缩放、旋转和正切。
7.根据权利要求1所述的基于分形噪声的光影特效制作方法,其特征在于,所述将所有所述光影效果进行叠加处理,包括:
通过混合模式将所有所述光影效果进行叠加处理;所述混合模式为滤色。
8.一种基于分形噪声的光影特效制作装置,其特征在于,包括:
构造主体模块,用于基于线条在渲染区域内构造出主体;所述主体为光影特效需作用的地方;
计算最短距离模块,用于确定所述渲染区域内的每个像素点到所述主体的最短距离;
辉光渲染模块,用于根据所述最短距离确定对应所述像素点的发光效果,并根据所述发光效果在对应所述像素点处进行辉光渲染;
确定光影效果模块,用于基于分形噪声变换辉光渲染结果的纹理采样坐标,得到多种光影效果;
叠加模块,用于将所有所述光影效果进行叠加处理,得到光影特效;
其中,所述分形噪声的函数为连续函数;所述确定光影效果模块,具体用于根据如下计算公式对所述纹理采样坐标进行偏移;所有所述纹理采样坐标的偏移结果相同;所述偏移结果与当前时间成正比;
offset'=rot*time*speed
其中,offset’表示偏移结果;rot表示旋转变换矩阵;time表示当前时间;speed表示光影运动速度;
以纹理采样坐标为自变量,以偏移结果为因变量,生成分形噪声函数;
根据如下计算公式在所述分形噪声函数中增设随时间连续变化的向量参数;
其中,fbm表示分形噪声函数;st’表示预偏移之后的纹理采样坐标;offB表示向量参数,用来增强光影流动效果的表现力;phase表示相位参数;frequency表示频率;amplitude表示振幅;transMat表示线性变换矩阵;perlinNoise表示柏林噪声函数;
根据如下计算公式计算最终纹理采样坐标:
pos=st+fbm(st+offset'*a,offset'*b)
其中,pos表示最终纹理采样坐标;st表示原始纹理采样坐标;a和b分别为预设常量;fbm表示分形噪声函数;
在所述最终纹理采样坐标处对纹理进行采样,并将采样结果渲染至原始纹理采样坐标,得到光影效果;
重复执行上述步骤,并在重复执行过程中改变所述分形噪声函数的内部参数,得到多种光影效果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110940793.5A CN113658315B (zh) | 2021-08-17 | 2021-08-17 | 基于分形噪声的光影特效制作方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110940793.5A CN113658315B (zh) | 2021-08-17 | 2021-08-17 | 基于分形噪声的光影特效制作方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113658315A CN113658315A (zh) | 2021-11-16 |
CN113658315B true CN113658315B (zh) | 2023-09-29 |
Family
ID=78491698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110940793.5A Active CN113658315B (zh) | 2021-08-17 | 2021-08-17 | 基于分形噪声的光影特效制作方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113658315B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114339448B (zh) * | 2021-12-31 | 2024-02-13 | 深圳万兴软件有限公司 | 光束视频特效的制作方法、装置、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102136250A (zh) * | 2006-09-29 | 2011-07-27 | 株式会社半导体能源研究所 | 显示装置和电子装置 |
CN111951156A (zh) * | 2020-08-24 | 2020-11-17 | 杭州趣维科技有限公司 | 一种绘制图形光电特效的方法 |
CN112184856A (zh) * | 2020-09-30 | 2021-01-05 | 广州光锥元信息科技有限公司 | 支持多图层特效及动画混合的多媒体处理装置 |
CN112200900A (zh) * | 2020-12-02 | 2021-01-08 | 成都完美时空网络技术有限公司 | 一种体积云渲染方法、装置、电子设备及存储介质 |
CN112190935A (zh) * | 2020-10-09 | 2021-01-08 | 网易(杭州)网络有限公司 | 动态体积云的渲染方法、装置及电子设备 |
-
2021
- 2021-08-17 CN CN202110940793.5A patent/CN113658315B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102136250A (zh) * | 2006-09-29 | 2011-07-27 | 株式会社半导体能源研究所 | 显示装置和电子装置 |
CN111951156A (zh) * | 2020-08-24 | 2020-11-17 | 杭州趣维科技有限公司 | 一种绘制图形光电特效的方法 |
CN112184856A (zh) * | 2020-09-30 | 2021-01-05 | 广州光锥元信息科技有限公司 | 支持多图层特效及动画混合的多媒体处理装置 |
CN112190935A (zh) * | 2020-10-09 | 2021-01-08 | 网易(杭州)网络有限公司 | 动态体积云的渲染方法、装置及电子设备 |
CN112200900A (zh) * | 2020-12-02 | 2021-01-08 | 成都完美时空网络技术有限公司 | 一种体积云渲染方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
基于GPU的深度图像后期绘制与合成系统;贺明明;《中国优秀硕士学位论文全文数据库(信息科技辑)》(第6期);I138-1007 * |
Also Published As
Publication number | Publication date |
---|---|
CN113658315A (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10089774B2 (en) | Tessellation in tile-based rendering | |
Litke et al. | Trimming for subdivision surfaces | |
JP3989451B2 (ja) | カラー・グラディエント・パス | |
RU2324978C2 (ru) | Системы и способы для обеспечения управляемой дискретизации текстуры | |
CN108399646B (zh) | 一种图像渲染方法及装置 | |
JP4763712B2 (ja) | 3次元グラフィックスをレンダリングする方法及びデバイス | |
JP2008536213A (ja) | モデルの簡略化した表示を決定するためのシステム及び方法 | |
Freudenberg et al. | Real-time halftoning: a primitive for non-photorealistic shading | |
CN113658315B (zh) | 基于分形噪声的光影特效制作方法和装置 | |
KR101793017B1 (ko) | 컴퓨터 스크린 상에 객체를 디스플레이하는 방법, 장치 및 프로그램 | |
CN111951156B (zh) | 一种绘制图形光电特效的方法 | |
JP2008059582A (ja) | 省エネのためのlod値計算方法とこれを利用した3次元レンダリングシステム | |
CN111080505B (zh) | 一种提高图元装配效率的方法、装置及计算机存储介质 | |
US9607435B2 (en) | Method for rendering an image synthesis and corresponding device | |
Everts et al. | Interactive illustrative line styles and line style transfer functions for flow visualization | |
US9626774B2 (en) | Saturation varying color space | |
Mattausch et al. | Freeform shadow boundary editing | |
CN116363288A (zh) | 目标物的渲染方法、装置、存储介质及计算机设备 | |
US6191788B1 (en) | Method and apparatus for approximating nonlinear functions in a graphics system | |
Everts et al. | Illustrative line styles for flow visualization | |
Besenthal et al. | Multi-resolution rendering for computationally expensive lighting effects | |
Tatarinov | Instanced tessellation in DirectX10 | |
Liang et al. | Automatic mesh and shader level of detail | |
US6750862B1 (en) | Method and system for performing enhanced lighting functions for texture map data | |
Ray et al. | Material space texturing |
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 |