掌桥专利:专业的专利平台
掌桥专利
首页

元素生成方法、渲染方法、装置、电子设备、存储介质

文献发布时间:2023-06-19 18:46:07


元素生成方法、渲染方法、装置、电子设备、存储介质

技术领域

本公开涉及计算机视觉技术领域,尤其涉及一种元素生成方法、渲染方法、装置、电子设备、存储介质及程序产品。

背景技术

随着计算机技术的发展,人们工作、生活、娱乐等各方面都与计算机有着千丝万缕的联系。计算机游戏以计算机为操作平台,通过人机互动形式实现的,能够体现当前计算机技术较高水平的一种新形式的娱乐方式。随着计算机处理速度的增加、视觉体验的改善,计算机游戏成为许多用户日常生活中不可缺少的组成部分。

游戏关卡中有一些弯曲树枝状的触手生物或物体,有时候这些触手系物体可以攀附在建筑上,成为游戏关卡的场景组成部分,或者是游戏通关的重要元素之一。除此之外,游戏中还存在多种需要随着场景信息变化、游戏进行而摆动的其它物体,如何灵活高效地制作此类物体,是游戏场景效果提升、制作效率提升的重要问题之一。

发明内容

有鉴于此,本公开的实施例提供一种元素生成方法、渲染方法、装置、电子设备、存储介质及程序产品,可以提高游戏中触手生物之类的物体的制作效率。

根据本公开的一些实施例,上述元素生成方法可以包括:

获取目标元素的第一静态网格图形;

生成用于表示上述第一静态网格图形至少一帧弯曲形状的第一曲线;

根据上述目标元素的动态弯曲信息,将上述第一曲线与上述第一静态网格图形进行绑定,使得绑定后的上述第一静态网格图形随着上述第一曲线的弯曲而弯曲;

将绑定上述第一曲线的第一静态网格图形作为生成的目标元素。

根据本公开的一些实施例,上述渲染方法可以包括:

获得待渲染的目标元素;目标元素为本公开任意一项实施例提供的元素生成方法生成的;

对目标元素进行渲染。

根据本公开的一些实施例,上述元素生成装置可以包括:

静态网格图形生成模块,用于获得目标元素的第一静态网格图形;

曲线生成模块,用于生成用于表示上述第一静态网格图形至少一帧动态弯曲形状的第一曲线;

绑定模块,用于根据上述目标元素的动态弯曲信息,将上述第一曲线与上述第一静态网格图形进行绑定,使得绑定后的上述第一静态网格图形随着上述第一曲线的弯曲而弯曲;

元素模块,用于将绑定上述第一曲线的第一静态网格图形作为生成的目标元素。

根据本公开的一些实施例,上述渲染装置,包括:

目标元素获得模块,用于获得待渲染的目标元素;目标元素为本公开任意一项实施例提供的元素生成装置生成的;

渲染模块,用于对目标元素进行渲染。

此外,本公开的实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述方法。

本公开的实施例还提供了一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令用于使计算机执行上述方法。

本公开的实施例还提供了一种计算机程序产品,包括计算机程序指令,当计算机程序指令在计算机上运行时,使得计算机执行上述方法。

从上述内容可以看出,通过本公开提供的方案,能够通过第一曲线表示目标元素的在至少一帧动态弯曲的形态,将第一曲线与表示目标元素的第一静态网格图形进行绑定,从而第一静态网格图形能够随着第一曲线的参数变化而进行弯曲形态的变化,呈现不同的弯曲形态,进而针对一个目标元素的不同弯曲形态,无需分别制作不同的模型,提高了目标元素对应的动态图形的制作效率。

附图说明

为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本公开实施例提供的元素生成方法的应用场景之一示意图;

图2显示了本公开一些实施例的元素生成方法的实现流程;

图3显示了本公开实施例的静态网格示意图;

图4显示了本公开实施例的样条曲线示意图;

图5显示了本公开一些实施例中的元素生成方法所包含的步骤示意图;

图6显示了本公开一些实施例的触手生物示意图;

图7示出了本公开一些实施例的第一静态网格图形弯曲静止状态示意图;

图8示出了本公开一些实施例的元素生成装置示意图;

图9示出了本公开一些实施例的渲染装置示意图;

图10为本公开实施例所提供的一种更为具体的电子设备硬件结构示意图。

具体实施方式

为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。

需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。

本公开实施例中提及的“一个”、“多个”或“至少一个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

如前,一般情况下,业务逻辑完全耦合在路由模块中,每次新增一条路由规则时,都要修改路由模块的代码。从而为路由模块的更新、代码维护造成不便。

为此,本公开的一些实施例提供了一种信息展示方法。参考图1,其为本公开实施例提供的信息展示方法的一种应用场景示意图。该应用场景包括:终端设备101。

在本公开的实施例中,上述终端设备101可以运行图像处理工具、动画元素生成工具和在场景中添加动画元素的生成工具。

在本公开的实施例中,上述终端设备101包括但不限于桌面计算机、移动电话、移动电脑、平板电脑、媒体播放器、智能可穿戴设备、个人数字助理(personal digitalassistant,PDA)或其它能够实现上述功能的电子设备等。上述终端设备101具有存储部、输入装置,可以通过对存储部的工具进行调用而创建动画元素对应的静态元素,也可以通过输入装置等获取静态元素的线条信息、表面信息等生成静态元素。

在终端设备101生成动画元素或者将动画元素放置入特定的场景,生成游戏场景之后,可以将生成的结果输入下一终端设备102,使得下游操作人员进一步根据动画元素或者添加了动画元素的场景,进行游戏的后续制作。

基于上述应用场景以及其它可能的应用场景,本公开的一些实施例提供了一种元素生成方法,可以在用户需要生成随意摆动的动态元素时,辅助用户快速生成动态元素对应的静态元素,并为对静态元素进行渲染的操作提供操作便利,提高制作效率。

本公开实施例也可以应用于具有必要的互联网、局域网连接的终端设备。

图2显示了本公开实施例的元素生成方法的实现流程。如图2所示,该方法可以包括如下步骤:

步骤S201:获取目标元素的第一静态网格图形;

步骤S202:生成用于表示上述第一静态网格图形至少一帧弯曲形状的第一曲线;

步骤S203:根据上述目标元素的弯曲动态信息,将上述第一曲线与上述第一静态网格图形进行绑定,使得绑定后的上述第一静态网格图形随着上述第一曲线的弯曲而弯曲;

步骤S204:将绑定上述第一曲线的第一静态网格图形作为生成的目标元素。

本公开一种实施例中,目标元素可以是游戏、动画、电影等需要构建的场景中的物体。比如,目标元素可以为触手状生物(即触手生物)、长条状物体、扁平漂浮状物体等。

本公开一种实施例中,静态网格图形可以是静态网格(Static Mesh)对象,可以是在外部工具(如玛雅、图像处理软件等)进行创建并添加贴图的多边形模型。静态网格图形可以具有与目标元素对应的形状、表面特性等信息。静态网格图形可以是用于表示目标元素的图形,具体可以是立体图像、平面图形等。如果目标元素为动态元素,则静态网格图形可以表示目标元素静止状态的基本外形,比如,目标元素为可以摆动的触手,则静态网格图形可以为处于静止、伸直状态的细长锥形图形,表示伸直的静态触手,如图3所示。

本公开一种实施例中,静态网格图形可以由线条、平面组成,也可以由单位图形组成,可以包括尺寸、坐标等信息。在游戏的一个关卡中,可以放置一个静态网格图形的多个副本,而机器性能不会出现明显下降。

在本公开一种实施例中,目标元素为具有可弯曲性质的元素,比如触手生物、藤条生物、旗帜、彩带等物体。目标元素可以随着其存在的场景中的一些信息进行弯曲,比如,风向、其它外力作用、目标元素内力的变化等。

在本公开一种实施例中,第一曲线为可以用函数表达式进行表达的曲线,通过不同的函数参数,可以改变第一曲线的弯曲程度。

在本公开另一种可能的实现方式中,第一曲线还可以为具有一定固定点的曲线。固定点可以通过函数表达式确定,固定点之间的曲线段,可以为采用其它函数确定的曲线段。

在本公开另一种可能的实现方式中,第一曲线可以包括多个已知点,根据已知点和曲线函数,生成第一曲线。在这种情况下,上述生成表示上述静态网格图形弯曲形状的第一曲线,可以包括,生成第一曲线的至少部分控制点,这些控制点即前述已知点。

在本公开一种实施例中,前述根据上述目标元素的弯曲信息,将上述第一曲线与上述第一静态网格图形进行绑定,可以是根据目标元素的弯曲趋势,将第一曲线的至少部分点与第一静态网格图形绑定。比如,若目标元素为触手状物体,则目标元素的弯曲信息可以包括:沿着触手延伸的方向弯曲,进而可以将第一曲线沿着第一静态网格图形对应于触手延伸的方向进行绑定。再如,若目标元素为旗帜,则目标元素的弯曲信息可以包括:沿着旗帜长度方向和宽度方向弯曲,进而可以将第一曲线沿着第一静态网格图形的长度方向或宽度方向进行绑定。

在本公开一种实施例中,绑定后的上述第一静态网格图形随着上述第一曲线的弯曲而弯曲,可以包括第一静态网格图形随着第一曲线的参数变化而弯曲。随着第一曲线在不同动画帧的弯曲状态变化,第一静态网格图形也呈现弯曲变化的动画。

在本公开一种实施例中,可以将绑定了第一曲线的第一静态网格图形(即第一曲线、第一静态网格图形以及第一曲线和第一静态网格图形之间的绑定关系)作为元素生成方法的执行结果。第一静态网格图形随着第一曲线的参数变化而弯曲,从而实现第一静态网格图形的弯曲,实现了目标元素至少一个动画状态的生成。

本公开实施例中,通过第一曲线表示目标元素的在至少一帧动态弯曲的形态,将第一曲线与表示目标元素的第一静态网格图形进行绑定,从而第一静态网格图形能够随着第一曲线的参数变化而进行弯曲形态的变化,呈现不同的弯曲形态,进而针对一个目标元素的不同弯曲形态,无需分别制作不同的模型,提高了目标元素对应的动态图形的制作效率。

在本公开一种实施方式中,如图4所示,上述第一曲线401为样条曲线;上述生成用于表示上述第一静态网格图形至少一帧动态弯曲形状的第一曲线,包括:

生成表示上述第一曲线的第一控制点402;

使用上述第一控制点402,代表上述第一曲线401。

在本公开一种实施例中,第一曲线可以为样条曲线,样条曲线(Spline Curves)可以是非均匀有理B样条曲线,可以指给定一组控制点而得到一条曲线,曲线的大致形状可以由这些控制点予以控制。本公开实施例中的样条曲线进一步为插值样条曲线和逼近样条曲线中的至少一种,可以为N次曲线(N≥2)。

本公开一种实施例中,表示第一曲线的控制点,可以是第一曲线对应的样条曲线的控制点。在样条曲线中,控制点可以是预先给定的一系列点,在本公开实施例中,控制点可通过随机生成、在第一静态网格图形上分段抓取等方式生成。

在本公开一种实施例中,使用上述第一控制点,代表上述第一曲线,可以是在预先确定了第一曲线的表达式或者第一曲线上每一点的三维(或二维)坐标生成方式之后,生成可以用于拟合第一曲线的多个第一控制点,即可认为生成了第一曲线。也可以在生成控制点之后,采用样条曲线生成方法,生成第一曲线。

在本公开一种实施例中,样条曲线可以是三次样条曲线,可以在Vertex Shader(顶点着色引擎)里实现分段三次样条曲线插值来表现触手生物等目标元素静态网格的弯曲。在一种具体实现方式中,首先确定三次样条曲线的一系列控制点,在每两个相邻控制点之间,根据相邻两个控制点的位置、各顶点的切线方向,确定相邻两个控制点之间各定点的位置。其中,各顶点的切线方向可以根据目标场景中的风向等可能影响触手生物等目标元素的外力信息确定。

本实施例中,第一曲线采用样条曲线,从而能够提高目标元素生成后摆动、飘动的效果。

在本公开一种实施方式中,上述根据上述目标元素的弯曲动态信息,将上述第一曲线与上述第一静态网格图形进行绑定,包括:

将上述第一静态网格图形的顶点,与对应的第一控制点进行绑定。

本实施例中,将代表目标元素的第一静态网格图形的点与表示第一曲线的第一控制点进行绑定,从而第一静态网格能够随着第一曲线的弯曲而弯曲,实现目标元素摆动、弯曲的动态效果。

在本公开一种实施方式中,元素生成方法还包括:

响应于生成指令,根据上述第一控制点、上述第一曲线的表达式,生成上述目标元素的实例;

根据获取到的上述目标元素的朝向信息,利用上述实例确定第一静态网格图形的所有顶点的位置。

通过上述实施例,将目标元素放置于游戏场景中,从而能够在游戏场景中生成可动态变化的触手。

在本公开一种实施例中,元素生成方法还包括:

在生成的目标元素放置于目标场景的情况下,检测目标元素与其它元素之间是否存在碰撞;

在存在碰撞的情况下,根据预设的元素间距,生成对目标元素的轴线调整信息;

根据轴线调整信息,获得朝向信息。

在本公开一种实施例中,元素生成方法应用于游戏中的触手生物的生成时,可首先提供一个场景蓝图表示一枝触手生物。将触手生物放入关卡,调整触手生物的位置、大小、朝向(触手的基础生长方向),点击“重新随机生成”可以自动随机生成样条点。生成时对场景进行碰撞检测,确保每个样条点(控制点)的位置合法,从而实现爬墙穿窗。逐一假定第0(即触手根部的)样条点位置P(0)到最大样条点数的样条点合法,根据上一样条点的位置、样条点间距、朝向、最大随机圆锥角(Cone Angle)随机生成前述上一样条点(i-1)的下一样条点(i)的位置,从上一样条点的位置到下一样条点的位置,对场景碰撞做Line Trace(线条跟踪),如果结果为true(真)即表示有穿插样条点之间的目标元素存在碰撞。根据上一样条点的位置、下一样条点的位置、墙面法线、允许的离墙距离(Off Wall Distance)计算一个旋转角度和旋转轴。根据向量[下一样条点的位置,上一样条点的位置]旋转后的方向重新计算下一样条点的位置,实现样条点的位置调整。记录最后一个受场景碰撞影响的样条点作为可动画的起始样条点。前述最大随机圆锥角可以为触手在允许的摆动范围内随机生成的圆锥角。

在本公开一种实施例中,根据朝向信息,确定的顶点位置,可以是目标元素在弯曲静止的状态下,第一静态网格图形的所有顶点的位置,绑定第一曲线701后,静止下的第一静态网格图形702可以参照图7所示。

本公开一种实施例中,元素生成方法用于生成游戏关卡中触手系的生物(触手生物)。游戏关卡中地编结束后,目标场景的全部触手生物被转化成各自对应的实例化静态网格(Instanced Static Mesh),每一个触手生物都对应一个实例(Instance),各个样条点的位置和切线方向成为逐实例定制数据(per-instance custom data),根据逐实例定制数据,能够得到每个目标元素静态网格图形的顶点位置,由所有顶点的位置构成对应目标元素静态网格图形。

在本公开实施例中,可通过目标元素对应的实例进行静态网格图形的渲染,实现游戏所需要的色彩、纹理等效果。在采用实例进行实时渲染时,Vertex Shader里读取per-instance custom data得到每个样条点的位置和切线方向,并经过上述分段三次样条曲线插值函数对每一个静态网格图形的顶点计算偏移值,实现作为目标元素的每一个触手生物的弯曲。

本实施例中,根据上述第一控制点、上述第一曲线的表达式,生成上述目标元素的实例,可以包括将第一静态网格图形和其绑定的第一曲线实例化。实例化过程所生成的实例,能够将第一静态网格图形随着第一曲线变动的每一帧动画画面进行渲染。

在本公开一种实施方式中,元素生成方法还包括:

在上述生成的元素放置于上述目标场景的情况下,响应于对上述目标元素的轴线调整操作,获取对上述元素的轴线调整信息;

根据上述轴线调整信息,获得上述朝向信息。

本公开实施例中,生成的元素包括第一静态网格图形、第一曲线和二者之间的绑定关系。采用本公开实施例的方法生成的元素可以放置于游戏的关卡中,生成的目标元素放入游戏关卡中后,能够获得对应的目标元素的轴线,轴线可以与第一静态网格图形的延伸方向大体一致。

可以通过调整轴线,调整第一静态网格图形的朝向,即调整目标元素的朝向。在调整方向之后,第一静态网格图形可以根据场景中的建筑等物体,生成穿插、围绕等效果。

本实施例中,能够在生成的元素放置于目标场景的情况下,调整目标元素的朝向,从而在游戏关卡等场景中能够根据需要生成不同的目标元素。

在本公开一种实施方式中,元素生成方法还包括:

响应于选择指令,在所述目标元素上确定至少一个子元素生成点;所述生成点为所述第一静态网格图形上的顶点;

根据所述生成点,生成与所述子元素相关的子元素第二曲线和第二子元素静态网格图形;

将子元素曲线绑定上述子元素静态网格图形;

将绑定子元素曲线的子元素静态网格图形作为上述目标元素的子元素;

将上述子元素与上述元素进行绑定,使得上述目标元素对应的曲线包括上述子元素曲线,上述目标元素的顶点包括上述子元素静态网格的顶点。

在本公开一种实施例中,生成点可以是第一静态网格图形的顶点之一。可以在第一静态网格图形上任选一点,作为子元素的生成点,按照与第一静态网格、第一曲线绑定的过程类似的方式生成目标元素的子元素。在目标元素为触手生物的情况下,子元素可以为子触手;在目标元素为藤条生物的情况下,子元素可以为藤条生物的子树枝。

在具有子元素的情况下,目标元素对应的曲线可以包括子元素的子元素曲线和第一静态网格图形对应的第一曲线。

子元素曲线的种类可以与第一曲线相同或不同。

子元素即目标元素的分枝生成时,会考虑其根部在主干上的位置,相对主干的大小;同样也会考虑场景碰撞。

本实施例中,能够采用类似的方式生成目标元素和目标元素的子元素,从而能够丰富目标元素的形态。

在本公开一种实施方式中,上述第一曲线为贝塞尔曲线、奈奎斯特曲线中的任意一种;上述目标元素为触手生物。

在本公开实施例中,如果第一曲线不为样条曲线,则第一曲线的种类可以采用贝塞尔曲线、奈奎斯特曲线。本公开实施例中的触手生物可以为动物触手或植物触手,该触手生物可以将放入场景中,根据所在的周边场景调整位置、大小、朝向,既要做出攀附建筑的样子又要避免穿帮(触手摆动时可能会和建筑穿插)。

在本公开一种实施方式中,提供一种渲染方法,包括:

获得待渲染的目标元素;目标元素为本公开任意一项实施例所提供的元素生成方法生成的;

对目标元素进行渲染。

在本公开一种实施方式中,如图5所示,元素生成方法利用上述实例针对上述目标元素的每一目标动画帧执行的下述步骤:

步骤S501:获取上述目标元素的飘动方向信息;

步骤S502:根据上述飘动方向信息,获取上述目标元素对应的曲线的参数;上述元素对应的曲线,包括上述第一曲线;

步骤S503:根据上述参数,确定上述第一静态网格图形的各顶点的位置;

步骤S504:根据上述顶点的位置,确定上述目标元素的形态。

本公开实施例中,飘动方向信息可以根据目标元素所在的目标场景的背景信息确定。比如,目标元素可以随着目标场景中的风向进行飘动。目标元素对应的实例,可以获取目标场景中由外界因素或者目标元素自身运动产生的飘动方向信息,根据飘动方向信息对应调整目标元素每一帧动画中的弯曲状态,以呈现更为逼真的动态效果。

本公开一实施例中,飘动方向信息可以是使目标元素顺着一定方向飘动的信息,比如,风朝向南方吹,则目标元素可以在偏向南方进行飘动。

在目标元素为触手生物的情况下,触手生物飘动的动画由实例在每个动画帧更新样条点的位置实现。更新过程可以包括:通过每一动画帧的Tick函数(周期调度函数)逐实例获取各样条点的位置、样条点的切线方向、目标场景中其它影响目标元素飘动方向的信息(比如风向、风速、风强等),根据各样条点的位置、样条点的切线方向、其它影响目标元素飘动方向的信息,计算各样条点的旋转角度和旋转轴,计算顺序为从每个触手生物的根部的样条点逐个计算至顶部的样条点。

本公开实施例中,在元素飘动的过程中,逐帧通过实例获得第一曲线的参数信息,根据逐帧确定的参数信息,调整第一曲线的弯曲形态,进而调整第一静态网格图形的弯曲形态,实现目标元素的不同弯曲状态。

在本公开实施例中,触手生物可以如图6所示。一般情况下,游戏关卡中的此类触手生物的模型和动画都是由操作人员手工制作,根据静态网格图形,制作触手生物的骨骼(Skeleton),获得静态网格模型的各个顶点的权重,得到骨骼模型(Skeletal Mesh),再由操作人员制作该骨骼模型的idle动画(角色空闲时动画),表现触手生物的飘动。如果采用人工的方式制作触手生物,则存在以下弊端:形态单一,一个骨骼模型只有1种形态,如果要n种形态必须制作n个模型,导致n倍工作量和资源量;渲染效率低,画面中同时显示多个时,需要多次drawcall(控制器调用图像编程接口,以实现渲染操作的过程),例如同一场景中存在3个触手生物,则需要3次drawcall来渲染;触手生物的摆动方向、幅度是动画制作时预设的,无法体现场景全局的动态因素,比如风场(方向、风速、风强等)。

通过本公开实施例,能够快捷生成多个形态不同、分枝数量不等的弯曲触手生物等目标元素;触手生物等目标元素能够实现自动爬墙穿窗;通过实例化的目标元素,可对目标场景中的所有目标元素进行高效渲染,全场景无论多少触手生物等目标元素,只需要一次drawcall。同时,本公开实施例,通过程序化样条点动画可以表现目标场景全局的动态风场等目标元素运动、飘动参数。

本公开实施例还提供一种元素生成装置,如图8所示,包括:

静态网格图形生成模块801,用于获取目标元素的第一静态网格图形;

曲线生成模块802,用于生成用于表示上述第一静态网格图形至少一帧弯曲形状的第一曲线;

绑定模块803,用于根据上述目标元素的动态弯曲信息,将上述第一曲线与上述第一静态网格图形进行绑定,使得绑定后的上述第一静态网格图形随着上述第一曲线的弯曲而弯曲;

元素模块804,用于将绑定上述第一曲线的第一静态网格图形作为生成的目标元素。

在一种实施方式中,上述第一曲线为样条曲线;上述曲线生成模块包括:

第一控制点单元,用于生成表示上述第一曲线的第一控制点;

第一控制点处理单元,用于使用上述第一控制点,代表上述第一曲线。

在一种实施方式中,上述绑定模块包括:

顶点绑定单元,用于将上述第一静态网格图形的顶点,与对应的第一控制点进行绑定。

在一种实施方式中,元素生成装置还包括:

实例生成模块,用于响应于生成指令,根据上述第一控制点、上述第一曲线的表达式,生成上述目标元素的实例;

位置模块,用于根据获取到的上述目标元素的朝向信息,利用上述实例确定第一静态网格图形的所有顶点的位置。

在一种实施方式中,元素生成装置还包括:

轴线调整模块,用于在上述生成的目标元素放置于上述目标场景的情况下,响应于对上述目标元素的轴线调整操作,获取对上述元素的轴线调整信息;

朝向模块,用于根据上述轴线调整信息,获得上述朝向信息。

在一种实施方式中,元素生成装置还包括:

碰撞检测模块,用于在所述生成的目标元素放置于所述目标场景的情况下,检测所述目标元素与其它元素之间是否存在碰撞;

调整信息模块,用于在存在碰撞的情况下,根据预设的元素间距,生成对所述目标元素的轴线调整信息;

第二朝向模块,用于则根据所述轴线调整信息,获得所述朝向信息。在一种实施方式中,元素生成装置还包括:

生成点模块,用于响应于选择指令,确定子元素在上述目标元素上的生成点;上述生成点为上述第一静态网格图形上的顶点;

子元素生成模块,用于根据上述生成点,生成上述子元素的子元素曲线和子元素静态网格图形;

子元素绑定信息模块,用于将子元素曲线绑定上述子元素静态网格图形;

子元素绑定信息处理模块,用于将绑定子元素曲线的子元素静态网格图形作为上述目标元素的子元素;

子元素绑定模块,用于将上述子元素与上述元素进行绑定,使得上述目标元素对应的曲线包括上述子元素曲线,上述目标元素的顶点包括上述子元素静态网格的顶点。

在一种实施方式中,上述曲线为贝塞尔曲线、奈奎斯特曲线中的任意一种;上述目标元素为触手生物。

本公开实施例提供一种渲染装置,如图9所示,包括:

目标元素获得模块901,用于获得待渲染的目标元素;目标元素为本公开任意一项实施例所提供的元素生成装置生成的;

渲染模块902,用于对目标元素进行渲染。

在一种实施方式中,渲染模块包括:

方向信息单元,用于获取目标元素的飘动方向信息;

曲线参数单元,用于根据飘动方向信息,获取目标元素对应的曲线的参数;元素对应的曲线,包括第一曲线;

曲线参数处理单元,用于根据参数,确定第一静态网格图形的各顶点的位置;

形态单元,用于根据顶点的位置,确定目标元素的形态。

上述各个模块的具体实现可以参考前述方法以及附图,在此不再重复说明。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。

上述实施例的装置用于实现前述任一实施例中相应的在视频中放置虚拟对象的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,上述处理器执行上述程序时实现上任意一实施例上述的在视频中放置虚拟对象方法。

图10示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器2010、存储器2020、输入/输出接口2030、通信接口2040和总线2050。其中处理器2010、存储器2020、输入/输出接口2030和通信接口2040通过总线2050实现彼此之间在设备内部的通信连接。

处理器2010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器2020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器2020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器2020中,并由处理器2010来调用执行。

输入/输出接口2030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口2040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。

总线2050包括一通路,在设备的各个组件(例如处理器2010、存储器2020、输入/输出接口2030和通信接口2040)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器2010、存储器2020、输入/输出接口2030、通信接口2040以及总线2050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

上述实施例的电子设备用于实现前述任一实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的方法。

本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的任务处理方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。

另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因此,这些描述应被认为是说明性的而不是限制性的。

尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。

本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。

技术分类

06120115686585