一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

水体波纹生成方法、设备、电子设备及存储介质与流程

2022-07-13 22:05:37 来源:中国专利 TAG:


1.本技术涉及图像处理技术领域,尤其涉及一种水体波纹生成方法、设备、电子设备及存储介质。


背景技术:

2.在虚拟场景的绘制过程中,往往需要通过各类绘制引擎中的着色器(shader)对虚拟场景进行渲染,以提高虚拟场景的真实性。然而,在涉及到大型的虚拟场景中的制作时,例如在游戏场景中的存在广阔湖面而进行的水面涟漪等波纹的绘制时,现有技术通常直接通过k动画的方式进行制作。
3.但这样的方式,一方面如果使用骨骼动画进行制作,则非常难以绑定出能做出水波纹动态的骨骼。就算完成绑定,万一需要调整修改,又要重新完成一遍制作。造成现有方案在制作波纹时,费时费力、修改繁琐,造成整体制作效率低下,用户体验不高。


技术实现要素:

4.有鉴于此,本技术提出一种水体波纹生成方法、设备、电子设备及存储介质,以此方便快捷的进行虚拟场景的波纹制作。
5.基于上述目的,本技术提供了一种水体波纹生成方法,包括:
6.构建一水体波纹模型,并获得所述水体波纹模型的uv贴图;
7.根据预设的噪波图,对所述uv贴图进行叠加处理,得到目标渐变图;
8.将所述目标渐变图映射到所述水体波纹模型中,以渲染显示水体波纹。
9.在一些实施方式中,所述构建一水体波纹模型,包括:
10.获取水体平面模型,并确定所述水体平面模型的平面顶点坐标;
11.通过对所述平面顶点坐标的调整,将所述水体平面模型调整为圆形平面模型,以此生成所述水体波纹模型。
12.在一些实施方式中,所述水体平面模型为四边形平面模型;
13.所述将所述水体平面模型调整为圆形平面模型,包括:
14.对所述四边形平面模型进行平面调整,使所述四边形平面模型的两条对边重叠,并使所述四边形平面模型的另外两条对边做拉伸或压缩处理,以此得到所述圆形平面模型。
15.在一些实施方式中,所述对所述uv贴图进行叠加处理之前,包括:
16.获取波纹流动速度及时间参数,根据所述波纹流动速度及所述时间参数计算,得到所述uv贴图的渐变图中间值,以通过所述渐变图中间值与所述预设的噪波图进行叠加。
17.在一些实施方式中,所述得到所述uv贴图的渐变图中间值,具体为:
18.wave_intenty
19.=pow((((1.0-distance(frac((v.texcoord.xy.x (_speed*_time.y))),0.5)) -0.5)*2.0),_power)
20.其中,wave_intensity为渐变图中间值,v.texcoord.xy.x为纹理贴图一个设定坐标方向的坐标值,_speed为波纹流动速度,_time.y为系统的时间参数,_power为预设的调节变量参数,frac(x)表示取x的小数部分的函数,distance(x,y)表示求取x与y之间距离的函数,pow(x)表示对x进行指数函数计算。
21.在一些实施方式中,所述将所述目标渐变图映射到所述水体波纹模型中之前,还包括:
22.获取预设的黑白渐变图,将所述目标渐变图与所述黑白渐变图进行叠加处理,得到调整后的目标渐变图。
23.在一些实施方式中,所述将所述目标渐变图映射到所述水体波纹模型中之前,还包括:
24.利用菲涅尔效应对所述目标渐变图进行叠加处理。
25.在一些实施方式中,所述将所述目标渐变图映射到所述水体波纹模型中之前,还包括:
26.获取预设的流动贴图的噪波贴图,利用所述噪波贴图的任一颜色通道对所述目标渐变图进行叠加处理。
27.基于同一构思,本技术还提供了一种水体波纹生成设备,包括:
28.获取模块,用于构建一水体波纹模型,并获得所述水体波纹模型的uv贴图;
29.计算模块,用于根据预设的噪波图,对所述uv贴图进行叠加处理,得到目标渐变图;
30.渲染模块,用于将所述目标渐变图映射到所述水体波纹模型中,以渲染显示水体波纹。
31.基于同一构思,本技术还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任一项所述的方法。
32.基于同一构思,本技术还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机实现如上任一项所述的方法。
33.从上面所述可以看出,本技术提供的一种水体波纹生成方法、设备、电子设备及存储介质,包括:构建一水体波纹模型,并获得所述水体波纹模型的uv贴图;根据预设的噪波图,对所述uv贴图进行叠加处理,得到目标渐变图;将所述目标渐变图映射到所述水体波纹模型中,以渲染显示水体波纹。本技术通过构建水体波纹模型,并以此获得水体波纹模型的uv贴图,在与相应的预设噪波图相结合得到最终的目标渐变图,通过该目标渐变图映射并渲染出最终的水体波纹。以此提供了一种可以方便快捷的完成水体波纹制作及调整方案,提高了整体制作效率。并且方案利用较少的贴图降低了制作成本,同时调整后可以快速查看到制作效果,节约了大量制作时间。
附图说明
34.为了更清楚地说明本技术实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
35.图1为本技术实施例提出的一种水体波纹生成方法的流程示意图;
36.图2为本技术实施例提出的一种水体波纹模型的模型结构示意图;
37.图3为本技术实施例提出的一种水体波纹的效果示意图;
38.图4为本技术实施例提出的一种uv贴图与噪波图的效果示意图;
39.图5为本技术实施例提出的一种黑白渐变图的示意图;
40.图6为本技术实施例提出的一种水体波纹生成设备的结构示意图;
41.图7为本技术实施例提出的电子设备结构示意图。
具体实施方式
42.为使本说明书的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本说明书进一步详细说明。
43.需要说明的是,除非另外定义,本技术实施例使用的技术术语或者科学术语应当为本技术所属领域内具有一般技能的人士所理解的通常意义。本技术实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件、物件或者方法步骤涵盖出现在该词后面列举的元件、物件或者方法步骤及其等同,而不排除其他元件、物件或者方法步骤。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
44.如背景技术部分所述,传统用模型直接k动画的方式,如果是骨骼动画,本身就较难以进行绑定,做好后也不方便进行修改调整。而如果直接k模型动画,则动态呆板机械,没有水的灵动。其中,k动画和k动作等就是指动画制作工程师给模型绑定骨骼、蒙皮之后,做动画或动作的过程。目前传统的制作过程主要有两种:1)使用粒子发射器播放卡通序列帧贴图,来实现涟漪效果;2)使用houdini(一种三维计算机图形制作软件)模拟涟漪的效果,导出一组序列模型,然后通过粒子发射序列模型来实现涟漪效果。但是这两种技术都存在一些缺陷。第一种技术,用序列帧,会在慢镜头的情况下出现严重的卡顿现象,极大程度影响美术表现和用户体验。第二种技术,模型序列,不适合做高精度效果,模型数量过多,占用大量资源,不适合移动设备平台,比较适合一些主机端或终端的项目。因此,在移动设备端需要一种可以用较少的贴图做出生动的涟漪效果,开销成本较低,并且波纹效果在着色器(shader)里面调整起来较为方便快捷的波纹生成方案。
45.结合上述实际情况,本技术实施例提出了一种水体波纹生成方案,通过构建水体波纹模型,并以此获得水体波纹模型的uv贴图,在与相应的预设噪波图相结合得到最终的目标渐变图,通过该目标渐变图映射并渲染出最终的水体波纹。以此提供了一种可以方便快捷的完成水体波纹制作及调整方案,提高了整体制作效率。并且方案利用较少的贴图降低了制作成本,同时调整后可以快速查看到制作效果,节约了大量制作时间。
46.如图1所示,为本技术提出的一种水体波纹生成方法的流程示意图,该方法具体包括:
47.步骤101,构建一水体波纹模型,并获得所述水体波纹模型的uv贴图。
48.在本步骤中,水体波纹模型由能够生成波纹的表面模型产生,该表面模型一般为溶液的表面模型,例如水面模型、水滴模型、溶剂表面模型等等。之后,表面模型一般为平面模型,而波纹一般是有一定弧度的弧面模型,水体波纹模型,同时一般也是一个从波纹产生的中心点向四周辐射的圆环形模型,如图2所示,即为一种水体波纹模型,其为平面模型进行弯曲等变形后的模型。进而,需要对基础的平面模型进行弯曲等操作以生成该水体波纹模型,将其弯曲成波纹的基础形状,例如一个圆环或不规则环形等等,弯曲的过程可以是通过事先设定好的模板对模型进行弯曲,也可以是用户工程师直接对基础模型进行调整得到,还可以是在基础模型上加载用于进行弯曲的修改器,用户工程师直接通过参数调节或人工智能计算参数对修改器进行调节等等。从而得到一个圆环形或不规则环形的水体波纹模型。当然,水体波纹模型的具体形状可以根据具体的应用场景进行具体的调整,水体波纹模型一般对应着波纹的大致形状。
49.之后,获取该水体波纹模型的uv贴图。其中,一般说来,纹理是表示物体表面的一幅或几幅二维图形,也称纹理贴图(texture)。当把纹理按照特定的方式映射到物体表面上的时候,能使物体看上去更加真实。在进行三维动画、游戏制作时,一般使用的是uv纹理贴图或uvw纹理贴图等等。以uv纹理贴图为例,uv贴图是用于轻松包装纹理的三维模型表面的平面表示,u通道和v通道指的是二维空间的水平轴和垂直轴。具体的,u、v是uv纹理贴图的坐标的简称)它和空间模型的x、y、z轴是类似的)。定义了图片上每个点的位置的信息,这些点与三维模型是相互联系的,用于决定表面纹理贴图的位置。就好像虚拟的“创可贴”,uv就是将二维图像上每一个点精确对应到三维模型物体的表面。在点与点之间的间隙位置由特定软件进行图像光滑插值处理。在本步骤中,当确定完水体波纹模型之后,通过第三方软件或功能模块可以直接获取到该水体波纹模型的uv贴图。
50.步骤102,根据预设的噪波图,对所述uv贴图进行叠加处理,得到目标渐变图。
51.在本步骤中,得到uv贴图之后,可以进行目标渐变图的计算。其中,渐变图中一般是图形中的图案或颜色随着坐标轴的移动逐渐发生变化的图像。在具体的实施例中,波纹的渐变图一般与波纹的传播速度、初始冲击力度(传播幅度)、模型材质等因素有关,从而波纹渐变图可以以uv贴图为基础,通过这些会影响波纹形状的全部或部分的参数进行计算得到。在具体实施例中,目标渐变图可以是只针对模型或贴图的顶点进行驱动,通过顶点对其他点进行带动,即,可以通过顶点偏移的方式进行波纹的传播。在具体实施例中,以通过传播速度及系统时间计算目标渐变图为例,可以通过uv贴图的u通道的值叠加波纹流动速度与系统的时间参数的乘积,并确定叠加值结果的小数部分,确定这个叠加值结果的小数部分对应的位置与中心位置的距离,再结合调节变量求取指数的方式,最终得到一张渐变图,这张渐变图可以是中间渐变图,也可以作为最终渐变图直接进行应用。当作为中间渐变图时,可以再结合预设的噪波图对渐变图进行调整,使其更对应波纹的形状。在具体实施例中,预设的噪波图可以是泰森多边形即为voronoi图,黑白噪波图等等,通过这些噪波图与uv贴图计算得到的中间图形以相乘的方式进行结合,得到最终的目标渐变图。之后,在一些实施例中,还可以对波纹形状进行进一步的调整,例如勾边、扰动等,使其更符合基础模型所在环境,使波纹效果更为真实。
52.在一些实施例中,可以确定uv贴图中对应波纹的较为边缘的坐标,这些位置的坐
标可以利用距离中心的距离来确定。对于一圈波纹,其实质是一个圆环或一个圆盘,从而通过对其边缘的调整就能完成波纹的制作。之后,由于uv贴图实质即为一种坐标贴图,反映图像中每个点的位置信息。从而可以根据坐标值(uv值等)准确的确定出中间模型的边缘的坐标。
53.步骤103,将所述目标渐变图映射到所述水体波纹模型中,以渲染显示水体波纹。
54.在本步骤中,将计算得到的目标渐变图映射到水体波纹模型上,以通过目标渐变图对水体波纹模型的各个点坐标(例如顶点坐标)进行相应的调整,并以此来进行渲染,使其最终生成对应的水体波纹。如图3所示,为目标渐变图映射到水体波纹模型上之后,渲染得到的水体波纹的示意图。
55.之后,可以输出该水体波纹,用以存储、展示、使用或再加工该水体波纹。根据不同的应用场景和实施需要,具体的对于该水体波纹的输出方式可以灵活选择。
56.例如,对于本实施例的方法在单一设备上执行的应用场景,可以将该水体波纹直接在当前设备的显示部件(显示器、投影仪等)上以显示的方式输出,使得当前设备的操作者能够从显示部件上直接看到该水体波纹的内容。
57.又如,对于本实施例的方法在多个设备组成的系统上执行的应用场景,可以将该水体波纹通过任意的数据通信方式(有线连接、nfc、蓝牙、wifi、蜂窝移动网络等)发送至系统内的其他作为接收方的预设设备上,即同步终端上,以使得同步终端可以对其进行后续处理。可选的,该同步终端可以是预设的服务器,服务器一般设置在云端,作为数据的处理和存储中心,其能够对该水体波纹进行存储和分发;其中,分发的接收方是终端设备,这些终端设备的持有者或操作者可以是当前用户、下游游戏、动画制作人员、游戏、动画的质量监管人员等等。
58.再如,对于本实施例的方法在多个设备组成的系统上执行的应用场景时,可以将该水体波纹通过任意的数据通信方式直接发送至预设的终端设备,终端设备可以是前述段落列举中的一种或多种。
59.从上面所述可以看出,本技术实施例的一种水体波纹生成方法,包括:构建一水体波纹模型,并获得所述水体波纹模型的uv贴图;根据预设的噪波图,对所述uv贴图进行叠加处理,得到目标渐变图;将所述目标渐变图映射到所述水体波纹模型中,以渲染显示水体波纹。本技术通过构建水体波纹模型,并以此获得水体波纹模型的uv贴图,在与相应的预设噪波图相结合得到最终的目标渐变图,通过该目标渐变图映射并渲染出最终的水体波纹。以此提供了一种可以方便快捷的完成水体波纹制作及调整方案,提高了整体制作效率。并且方案利用较少的贴图降低了制作成本,同时调整后可以快速查看到制作效果,节约了大量制作时间。
60.需要说明的是,本技术实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本技术实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本技术实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
61.需要说明的是,上述对本技术特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要
求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
62.在一个可选的示例性实施例中,所述构建一水体波纹模型,包括:获取水体平面模型,并确定所述水体平面模型的平面顶点坐标;通过对所述平面顶点坐标的调整,将所述水体平面模型调整为圆形平面模型,以此生成所述水体波纹模型。以此通过将水体平面模型调整为圆形平面模型的方式对水体平面模型进行快速调整,使其成为想要的水体波纹模型。
63.在本实施例中,水体平面模型即为一些能够生成波纹的表面模型,例如水面模型、水滴模型、溶剂表面模型等等。由于波纹本身在水面中是一个局部现象,进而可以选取一个小块水体平面模型来进行水体波纹模型的创建,例如设置一个矩形或正方形的水体平面模型等等。之后,在确定了模型之后,其相应的顶点及顶点坐标等也就全部确定下来了,进而可以通过对这个水体平面模型的顶点坐标进行调整,来最终生成一个圆形平面模型,以此作为水体波纹模型。
64.在具体实施例中,可以利用一些第三方三维建模软件对平面模型进行调整,例如3dmax等软件,在这些第三方三维建模软件中通常会设置bend修改器,即弯曲修改器。在这些软件中,可以通过将弯曲修改器直接加载至水体平面模型上的方式,利用弯曲修改器,对水体平面模型的平面进行调整,使其按照设定或用户的调整实现弯曲。还可以通过将弯曲修改器先添加至特定模具上,再将模具加载至水体平面模型上的方式进行弯曲修改器的加载。如图2所示,为利用3dmax等建模软件完成的水体平面模型的调整,其最终生成的即为水体波纹模型。在具体实施例中,对于具体弯曲调整的幅度等因素,即想要体现的波纹大小等,由于涉及到动画制作本身,从而需要动画制作工程师进行主动的调整及设置,系统进行执行,即获取针对所述弯曲修改器的设置信息。
65.在一个具体实施例中,可以通过创建面片的方式对水体平面模型进行调整。面片是介于二维和三维之间的一种图形,有三维的面,但保留了二维的“样条曲线”可以通过调整其“贝兹句柄”达到曲面效果。所以在三维建模软件中一般用面片进行软体布料(衣物、桌布、床罩等)、山地、水面等等的制作。在具体应用场景中,可以在诸如3dmax等三维建模软件中创建一个能够覆盖水体平面模型的调整面片,之后在这个调整面片上添加一个bend修改器,最终将添加有bend修改器的调整面片加载至基础模型,动画制作工程师通过对bend修改器进行设置从而完成对基础模型的弯曲。
66.在一个可选的示例性实施例中,所述水体平面模型为四边形平面模型;所述将所述水体平面模型调整为圆形平面模型,包括:对所述四边形平面模型进行平面调整,使所述四边形平面模型的两条对边重叠,并使所述四边形平面模型的另外两条对边做拉伸或压缩处理,以此得到所述圆形平面模型。
67.在本实施例中,四边形平面模型可以是矩形平面模型或正方形平面模型等等。以矩形平面模型为例,其在平面图中为一长方形,在进行调整时,可以对长方形整体在平面中进行弯曲拉伸,使长方形的两条短边相重叠。为了完成这一调整,其两条长边势必要一条进行拉伸,另外一条进行压缩,最终,拉伸的这条边就变成了圆形或环形的外轮廓线,而被压缩的这条边则变成了圆形或环形的圆心或内轮廓线。当然对于正方形平面模型、平行四边形平面模型、菱形平面模型等等可以执行相类似的操作。本领域技术人员可以根据具体的
应用场景对四边形平面模型进行具体的调整。
68.在一个可选的示例性实施例中,所述对所述uv贴图进行叠加处理之前,包括:获取波纹流动速度及时间参数,根据所述波纹流动速度及所述时间参数计算,得到所述uv贴图的渐变图中间值,以通过所述渐变图中间值与所述预设的噪波图进行叠加。
69.在本实施例中,波纹流动速度即为波纹的传播速度,例如一颗石子投掷入湖面后,产生的涟漪波纹的传播速度是由石子的入水速度、入水体积等决定的,这里可以又动画制作工程师直接给定一个波纹流动速度的值。之后,时间参数为系统时间参数,其可以由工程师给定,也可以通过计算或统计得到,例如当石子投入湖面时开始进行时间的统计,并以此来给予该时间参数。进而,通过波纹流动速度以及时间参数,可以结合uv贴图中各个点的坐标值来生成一张中间渐变图,即渐变图中间值。其具体的计算过程,可以为:
70.wave_intensity
71.=pow((((1.0-distance(frac((v.texcoord.xy.x (_speed*_time.y))),0.5)) -05)*2.0),_power)
72.其中,wave_intensity为渐变图中间值,v.texcoord.xy.x为纹理贴图一个设定坐标方向的坐标值,_speed为波纹流动速度,_time.y为系统时间参数,_power为预设的调节变量参数。frac(x)表示取x的小数部分的函数,本实施例中为取((v.texcoord.xy.x (_speed*_time.y)))计算结果小数部分;distance(x,y)表示求取x与y之间距离的函数,本实施例中为求取(frac((v.texcoord.xy.x (_speed*_time.y))),0.5)的距离;pow(x)表示进行指数函数计算, 在本实施例中为对((((1.0-distancefracv.texcoord.xy.x _speed*_time.y,0.5 -0.5*2.0,_power进行指数函数计算。之后,在具体应用场景中,v.texcoord.xy.x可以为uv贴图中的u通道的值。
73.最后,在完成这个渐变图中间值的计算之后,再与预设的噪波图进行叠加,最终得到目标渐变图。在具体实施例中,预设的噪波图可以是泰森多边形噪波图。泰森多边形即为voronoi图,泰森多边形又叫冯洛诺伊图(voronoi diagram),是一组由连接两邻点线段的垂直平分线组成的连续多边形。一个泰森多边形内的任一点到构成该多边形的控制点的距离小于到其他多边形控制点的距离。噪波图为反映噪波的图。在三维动画制作领域,噪波可以为顶点提供随机位置的波形图,在三维模型的制作中主要是使建立的平面变的不规整、高低不平等等。比如土地、山洞等,在现实生活中其表面是很不规则的,而为了使虚拟场景中的土地、山洞等更为真实,其就需要加载随机的噪波图,而这里如用普通建模很难准确建模的。在具体应用场景中,voronoi图的噪波图可以是事先设定好的,也可以是得到预设的voronoi图之后利用三维建模软件直接进行噪波的计算得到的。之后,将渐变图中间值与诸如泰森多边形噪波图的预设噪波图进行叠加。如图4所示,其中图4a为一种具体实施例中的渐变图中间值,图4b为泰森多边形噪波图,在具体实施例中,叠加的过程为将渐变图中间值计算出的每个点的通道值或灰度值等,与泰森多边形噪波图同样位置处的通道值或灰度值等进行相乘运算。最终得到目标渐变图。
74.在一个可选的示例性实施例中,所述将所述目标渐变图映射到所述水体波纹模型中之前,还包括:获取预设的黑白渐变图,将所述目标渐变图与所述黑白渐变图进行叠加处理,得到调整后的目标渐变图。
75.由于渐变图中间值与泰森多边形噪波图等预设的噪波图进行叠加之后得到的目
标渐变图的波纹的幅度是相同的,也即是说,利用这个目标渐变图得到的波纹不论距离波纹产生的中心点多少距离,其波纹的幅度是一样的。从而这种波纹渐变图仅能利用于一些特定场景。而在更为真实的场景中,波纹的效果是离中心点越近波纹幅度越大,离中心点越远波纹幅度越小直至消失。从而还可以对该目标渐变图进行进一步的调整。在本实施例中,可以通过加入一张黑白渐变图的方式实现上述效果。如图5所示,黑白渐变图为一张常规的由黑到白逐渐变化的渐变图,可以通过目标渐变图与黑白渐变图进行相乘等叠加方式,完成目标渐变图的调整,使其产生距离的效果。例如,设定黑白渐变图中更黑的部分为更靠近中心点的位置,从而在赋值时可以针对性的赋值,或是之间利用黑白渐变图的各个点的颜色数值(颜色的数值范围一般为0至255)来反映距离中心点的远近。最终得到了调整后的目标渐变图,实现了远处波动小,中心波动大的效果。
76.在一个可选的示例性实施例中,所述将所述目标渐变图映射到所述水体波纹模型中之前,还包括:
77.利用菲涅尔效应对所述目标渐变图进行叠加处理。
78.在本实施例中,菲涅尔效应指的是:某种材质在不同距离上呈现出不同的反射效果。菲涅尔效应的意义是:当光从一种具有折射率为的介质向另一种具有折射率为的介质传播时,在两者的交界处(通常称作界面)可能会同时发生光的反射和折射。菲涅尔方程描述了不同光波分量被折射和反射的情况。在三维建模软件中,可以直接进行设置,使系统能够自动利用菲涅尔效应对贴图进行调整。在本实施例中,可以通过菲涅尔效应对完成后的目标渐变图进行进一步的勾边加工处理,使其生成的波纹贴图更为自然、逼真。其中,勾边为绘画的常规步骤之一。
79.在一个可选的示例性实施例中,所述将所述目标渐变图映射到所述水体波纹模型中之前,还包括:获取预设的流动贴图的噪波贴图,利用所述噪波贴图的任一颜色通道对所述目标渐变图进行叠加处理。
80.在本实施例中,由于在真实场景下,波纹还可能受到基础模型所呈现的流体的流动的影响,例如水面的流动对涟漪产生的朝向水流运动方向的扰动现象。从而在得到目标渐变图之后,可以通过预先设定好的流动贴图的噪波贴图来对目标渐变图进行进一步的修饰,使其适应水体模型所呈现的流体的流动的影响。之后对于贴图中的每个点都会对应至少三个颜色通道,即r、g、b通道,以此反映每个点的颜色,进而在具体应用是,可以通过直接获取预先设定好的流动贴图的噪波贴图上各个点的任意一个通道的值(例如r通道的值)来反映流动的扰动。进而可以在目标渐变图每个点的值的基础上,直接加上该通道的值,来实现最终的流体流动的扰动效果。
81.基于同一构思,与上述任意实施例方法相对应的,本技术还提供了一种水体波纹生成设备。
82.参考图6,所述水体波纹生成设备,包括:
83.获取模块210,用于构建一水体波纹模型,并获得所述水体波纹模型的uv贴图;
84.计算模块220,用于根据预设的噪波图,对所述uv贴图进行叠加处理,得到目标渐变图;
85.渲染模块230,用于将所述目标渐变图映射到所述水体波纹模型中,以渲染显示水体波纹。
86.为了描述的方便,描述以上设备时以功能分为各种模块分别描述。当然,在实施本技术实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
87.上述实施例的设备用于实现前述实施例中相应的水体波纹生成方法,并且具有相应的水体波纹生成方法实施例的有益效果,在此不再赘述。
88.在一个可选的示例性实施例中,所述获取模块210,还用于:
89.获取水体平面模型,并确定所述水体平面模型的平面顶点坐标;
90.通过对所述平面顶点坐标的调整,将所述水体平面模型调整为圆形平面模型,以此生成所述水体波纹模型。
91.在一个可选的示例性实施例中,所述水体平面模型为四边形平面模型;
92.所述获取模块210,还用于:
93.对所述四边形平面模型进行平面调整,使所述四边形平面模型的两条对边重叠,并使所述四边形平面模型的另外两条对边做拉伸或压缩处理,以此得到所述圆形平面模型。
94.在一个可选的示例性实施例中,所述计算模块220,还用于:
95.获取波纹流动速度及时间参数,根据所述波纹流动速度及所述时间参数计算,得到所述uv贴图的渐变图中间值,以通过所述渐变图中间值与所述预设的噪波图进行叠加。
96.在一个可选的示例性实施例中,所述计算模块220得到所述uv贴图的渐变图中间值,具体为:
97.wave_intensity
98.=pow((((1.0-distance(frac((v.texcoord.xy.x (_speed*_time.y))),0.5)) -05)*2.0),_power)
99.其中,wave_intensity为渐变图中间值,v.texcoord.xy.x为纹理贴图一个设定坐标方向的坐标值,_speed为波纹流动速度,_time.y为系统的时间参数,_power为预设的调节变量参数,frac(x)表示取x的小数部分的函数,distance(x,y)表示求取x与y之间距离的函数,pow(x)表示对x进行指数函数计算。
100.在一个可选的示例性实施例中,所述渲染模块230,还用于:
101.获取预设的黑白渐变图,将所述目标渐变图与所述黑白渐变图进行叠加处理,得到调整后的目标渐变图。
102.在一个可选的示例性实施例中,所述渲染模块230,还用于:
103.利用菲涅尔效应对所述目标渐变图进行叠加处理。
104.在一个可选的示例性实施例中,所述渲染模块230,还用于:
105.获取预设的流动贴图的噪波贴图,利用所述噪波贴图的任一颜色通道对所述目标渐变图进行叠加处理。
106.基于同一构思,与上述任意实施例方法相对应的,本技术还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的水体波纹生成方法。
107.图7示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间
在设备内部的通信连接。
108.处理器1010可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
109.存储器1020可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
110.输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
111.通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
112.总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
113.需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
114.上述实施例的电子设备用于实现前述任一实施例中相应的水体波纹生成方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
115.基于同一构思,与上述任意实施例方法相对应的,本技术还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的水体波纹生成方法。
116.本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
117.上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的水体波纹生成方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
118.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本技术的范围(包括权利要求)被限于这些例子;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如
上所述的本技术实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
119.另外,为简化说明和讨论,并且为了不会使本技术实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本技术实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本技术实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本技术的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本技术实施例。因此,这些描述应被认为是说明性的而不是限制性的。
120.尽管已经结合了本技术的具体实施例对本技术进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
121.本技术实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本技术实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献