一种基于网格顶点的手游布料模拟方法及系统、设备、存储介质与流程

文档序号:18468463发布日期:2019-08-20 19:59阅读:320来源:国知局
一种基于网格顶点的手游布料模拟方法及系统、设备、存储介质与流程

本发明属于手游模拟技术领域,尤其涉及是一种基于网格顶点的手游布料模拟方法及系统、设备、存储介质。



背景技术:

在图形学领域开始布料模拟的研究可以最早追溯到上世纪八十年代,最早的时候学术界对于布料系统的研究肯定不是用于布料的实时计算,而是离线渲染,甚至只是为了生成一副静态的图。

terzopoulos在1987年的论文提出一种方法,将布料当作矩形的网格,然后使用半隐式集成的方式来更新它的位置,使用弹性理论来模拟动画效果。

breen在1994年提出了一个新的视角,即基于粒子(particle-based)的方案,使用用于模拟纤维织物的kawabatameasuringsystem来模拟布料的运行效果。

baraff和witkin在1998年发表的论文中提出了一种在保证布料模拟效果稳定的前提下允许更大时间步长的方案,这一方案也被逐渐地改进为更快的方法。在这之后,基于aabb树等数据结构的算法优化,与刚体的碰撞,布料自身的碰撞计算等问题逐渐被研究和提出相应的解决方案,布料模拟也逐渐从一个学术界的研究方向发展成为可以应用于影视制作的工业技术,进而应用于需要实时计算的游戏领域。

对于布料系统,甚至物理系统来说,很多引擎都不会自己去实现,而是集成已经提供了相应功能的中间件。世界三大物理引擎有amd公司的bullet、nvidia公司的physx,还有现在被microsoft公司从intel公司手中收购了的havok,他们都提供了整套的布料模拟解决方案供其他引擎集成和使用,这种存在使用复杂,对于美术需要进行大量时间的培训,每一款引擎有对应的使用方式,无法做到通用。



技术实现要素:

为了解决上述现有技术中的不足,本发明的目的在于提供一种基于网格顶点的手游布料模拟方法及系统、设备、存储介质。本发明基于网格顶点的手游布料模拟方法能快速整合,不需要对美术做大量的培训,只需要几个简单的参数就可以实现布料的简单模拟。

为了解决上述技术问题,本发明采用如下技术方案:本发明一方面提供了一种基于网格顶点的手游布料模拟方法,包括以下步骤:

s1:美术建模面片,和程序约定几个的关键采样定点;

s2:程序根据面片的运动分别记录几帧的运动参数进行惯性计算;

s3:传入修正后的面片顶点偏移,模拟简单的布料物理模拟。

第一方面,作为优选,s1步骤包括:美术建模面片,必须事先约定好面片的原点;因为面片的物理模拟都是根据近似简略的物理公式计算,如果面片的原点位置不对,会导致面片定点模拟显示不正确。所以美术建模面片的时候需要严格和美术进行协商,但是这个一般都是通用的,比如飘带,披风都是最上方是原点。

第一方面,作为优选,s2步骤包括:

s21:通过当前帧和之前的帧计算延迟,从而获得延迟的距离,方向,角度以及时间,最终获得方向速度,方向加速度,角速度,角度加速度;

s22:方向速度和方向加速度用来模拟面片上所有顶点三个轴方向上位移的延迟,角速度和角度加速度用来模拟面片上所有顶点三个轴方向上角度的延迟。

第一方面,作为优选,s22步骤包括:

s221:三个轴方向上的位移延迟通过z轴方向的位移加速度和位移速度来确定,通过速度和时间,获得z轴延迟的距离,近似的可以认为z轴延迟的距离就是按照原点为圆心,y轴为半径旋转后的上面的圆弧长度,定义圆弧的长度为|d|,通过公式|d|/2×pi即可以得到旋转的角度,定义为rotation,通过旋转的角度,通过三角函数就可以分别得到模型空间内z轴和y轴上的偏移,已知当前顶点y轴坐标为|y-x|,从而算出z轴偏移为|y-x|×sin(rotation),y轴偏移为|y-x|-cos(rotation)×|y-x|,最后根据当前的顶点坐标算上z轴和y轴上的偏移,从而得到x轴的位移所导致的布料的惯性;y轴的位移和z轴的位移同理,并且三个轴的旋转可以推导出近似的公式;

s222:三个轴上的旋转延迟通过y轴方向的角度加速度和角度速度来确定,通过速度和时间,确定y轴方向的角度延迟,角度换算成弧度定义为|r|,通过同时|r|/2×pi就可以得到旋转的角度,定义为rotatation,通过旋转的角度,得到3个轴上的偏移,这个不同于单个轴位移的运动模拟,单个轴位置只会导致2个轴的物理模拟,但是单个轴的旋转需要3个轴的物理模拟,根据当前点和原点的距离|dis|算出z轴上的偏移为|dis|×sin(rotatation)算出x轴上得到偏移为|x-x|-cos(rotation)×|x-x|,算出z轴上的偏移为|z-z|-cos(rotataion)×|z-z|;

第一方面,作为优选,s3步骤包括:

s31:所有的运动就是三个轴的位移和三个轴的旋转,只需要近似模拟器这些运动所附带的物理表现,然后进行组合,就可以实现网格的布料模拟系统;

s32:美术根据程序提供的公式结合具体参数根据实际进行调整,比如飘带披风他们的建模面片原点不一样,他们对于物理的表现力表现形式也不一样;

s32:调好参数后,放在游戏里面,进行最终审核。

第二方面,本发明提供一种基于网格顶点的手游布料模拟系统,所述系统包括:

美术建模面片模块:用于美术建模面片,和程序约定几个的关键采样定点;

惯性计算模块:用于程序根据面片的运动分别记录几帧的运动参数进行惯性计算;

物理模拟模块:用于传入修正后的面片顶点偏移,模拟简单的布料物理模拟。

第二方面,作为优选,所述惯性计算模块包括位移延迟计算模块和旋转延迟计算模块。

第二方面,作为优选,所述位移延迟计算模块用于三个轴方向上的位移延迟通过z轴方向的位移加速度和位移速度来确定;所述旋转延迟计算模块用于三个轴上的旋转延迟通过y轴方向的角度加速度和角度速度来确定。

第三方面,本发明提供一种设备,所述设备包括:

一个或多个处理器;

存储器,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行上述的基于网格顶点的手游布料模拟方法。

第四方面,本发明提供一种存储有计算机程序的计算机可读存储介质,该程序被处理器执行时实现上述的基于网格顶点的手游布料模拟方法。

与现有技术相比,本发明的有益效果为:

1、本发明不需要花费大量的时间就可以实现游戏的布料物理效果,特别适用于手游这种不需要太精致的布料效果并且追求性能和表现平衡的过程。

2、本发明基于网格顶点的手游布料模拟方法能快速整合,不需要对美术做大量的培训,只需要几个简单的参数就可以实现布料的简单模拟。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1和2为三个轴方向上的位移延迟示例图;

图3和4为三个轴上的旋转延迟示例图;

图5为本申请实施例提供的基于网格顶点的手游布料模拟系统示意图;

图6为本申请实施例提供的一种设备的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

实施例1,本实施例提供了一种基于网格顶点的手游布料模拟方法,包括以下步骤:

s1:美术建模面片,和程序约定几个的关键采样定点;

s2:程序根据面片的运动分别记录几帧的运动参数进行惯性计算;

s3:传入修正后的面片顶点偏移,模拟简单的布料物理模拟。

本实施例中,s1步骤包括:美术建模面片,必须事先约定好面片的原点;因为面片的物理模拟都是根据近似简略的物理公式计算,如果面片的原点位置不对,会导致面片定点模拟显示不正确。所以美术建模面片的时候需要严格和美术进行协商,但是这个一般都是通用的,比如飘带,披风都是最上方是原点。

本实施例中,s2步骤包括:

s21:通过当前帧和之前的帧计算延迟,从而获得延迟的距离,方向,角度以及时间,最终获得方向速度,方向加速度,角速度,角度加速度;

s22:方向速度和方向加速度用来模拟面片上所有顶点三个轴方向上位移的延迟,角速度和角度加速度用来模拟面片上所有顶点三个轴方向上角度的延迟。

本实施例中,s22步骤包括:

s221:三个轴方向上的位移延迟通过z轴方向的位移加速度和位移速度来确定,通过速度和时间,获得z轴延迟的距离,近似的可以认为z轴延迟的距离就是按照原点为圆心,y轴为半径旋转后的上面的圆弧长度,定义圆弧的长度为|d|,通过公式|d|/2×pi即可以得到旋转的的角度,定义为rotation,通过旋转的角度,通过三角函数就可以分别得到模型空间内z轴和y轴上的偏移,已知当前顶点y轴坐标为|y-x|,从而算出z轴偏移为|y-x|×sin(rotation),y轴偏移为|y-x|-cos(rotation)×|y-x|,最后根据当前的顶点坐标算上z轴和y轴上的偏移,从而得到x轴的位移所导致的布料的惯性;y轴的位移和z轴的位移同理,并且三个轴的旋转可以推导出近似的公式;如图1、2,计算方法如下:

s222:三个轴上的旋转延迟通过y轴方向的角度加速度和角度速度来确定,通过速度和时间,确定y轴方向的角度延迟,角度换算成弧度定义为|r|,通过同时|r|/2×pi就可以得到旋转的角度,定义为rotatation,通过旋转的角度,得到3个轴上的偏移,这个不同于单个轴位移的运动模拟,单个轴位置只会导致2个轴的物理模拟,但是单个轴的旋转需要3个轴的物理模拟,根据当前点和原点的距离|dis|算出z轴上的偏移为|dis|×sin(rotatation)算出x轴上得到偏移为|x-x|-cos(rotation)×|x-x|,算出z轴上的偏移为|z-z|-cos(rotataion)×|z-z|;如图3、4,计算方法如下;

本实施例中,s3步骤包括:

s31:所有的运动就是三个轴的位移和三个轴的旋转,只需要近似模拟器这些运动所附带的物理表现,然后进行组合,就可以实现网格的布料模拟系统;

s32:美术根据程序提供的公式结合具体参数根据实际进行调整,比如飘带披风他们的建模面片原点不一样,他们对于物理的表现力表现形式也不一样;

s32:调好参数后,放在游戏里面,进行最终审核。

实施例2,本实施例提供一种基于网格顶点的手游布料模拟系统,所述系统包括:

美术建模面片模块:用于美术建模面片,和程序约定几个的关键采样定点;

惯性计算模块:用于程序根据面片的运动分别记录几帧的运动参数进行惯性计算;

物理模拟模块:用于传入修正后的面片顶点偏移,模拟简单的布料物理模拟。

本实施例中,所述惯性计算模块包括位移延迟计算模块和旋转延迟计算模块。

本实施例中,所述位移延迟计算模块用于三个轴方向上的位移延迟通过z轴方向的位移加速度和位移速度来确定;所述旋转延迟计算模块用于三个轴上的旋转延迟通过y轴方向的角度加速度和角度速度来确定。

实施例3,本实施例提供一种设备,所述设备包括:

一个或多个处理器;

存储器,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行上述的基于网格顶点的手游布料模拟方法。

参见图4,所述设备30包括:处理器301、存储器302和通信接口303。

在图4中,处理器301、存储器302和通信接口303可以通过总线相互连接;总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

处理器301通常是终端30的整体功能,例如终端的启动、msp和远程用户的私钥和公钥的生成、数据进行签密处理和数据签密密文进行聚合等。此外,处理器301可以是通用处理器,例如,中央处理器(英文:centralprocessingunit,缩写:cpu),网络处理器(英文:networkprocessor,缩写:np)或者cpu和np的组合。处理器也可以是微处理器(mcu)。处理器还可以包括硬件芯片。上述硬件芯片可以是专用集成电路(asic),可编程逻辑器件(pld)或其组合。上述pld可以是复杂可编程逻辑器件(cpld),现场可编程逻辑门阵列(fpga)等。

存储器302被配置为存储计算机可执行指令以支持终端30数据的操作。存储器301可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

启动终端30后,处理器301和存储器302上电,处理器301读取并执行存储在存储器302内的计算机可执行指令,以完成上述的隐私保护方法实施例中的全部或部分步骤。

通信接口303用于终端30传输数据,例如实现与实验仪器、各个液位感应器、控制阀等之间的数据通信。通信接口303包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口包括usb接口、microusb接口,还可以包括以太网接口。无线通信接口可以为wlan接口,蜂窝网络通信接口或其组合等。

在一个示意性实施例中,本申请实施例提供的终端30还包括电源组件,电源组件为终端30的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为终端30生成、管理和分配电力相关联的组件。

通信组件,通信组件被配置为便于终端30和其他设备之间有线或无线方式的通信。终端30可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。通信组件还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。

在一个示意性实施例中,终端30可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、终端、微终端、处理器或其他电子元件实现。

描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中。这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。

实施例4,本实施例提供一种存储有计算机程序的计算机可读存储介质,该程序被处理器执行时实现上述的基于网格顶点的手游布料模拟方法。该计算机可读存储介质可以是上述实施例中所述系统或设备中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质,如硬盘、光盘、sd卡等。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

除说明书所述的技术特征外,其余技术特征为本领域技术人员的已知技术,为突出本发明的创新特点,其余技术特征在此不再赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1