CN111192367B - 一种可变形对象碰撞变形实时模拟方法及装置 - Google Patents

一种可变形对象碰撞变形实时模拟方法及装置 Download PDF

Info

Publication number
CN111192367B
CN111192367B CN202010004341.1A CN202010004341A CN111192367B CN 111192367 B CN111192367 B CN 111192367B CN 202010004341 A CN202010004341 A CN 202010004341A CN 111192367 B CN111192367 B CN 111192367B
Authority
CN
China
Prior art keywords
matrix
deformable object
state
neural network
trained
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
Application number
CN202010004341.1A
Other languages
English (en)
Other versions
CN111192367A (zh
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zhongke Shenzhi Technology Co ltd
Original Assignee
Beijing Zhongke Shenzhi Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Zhongke Shenzhi Technology Co ltd filed Critical Beijing Zhongke Shenzhi Technology Co ltd
Priority to CN202010004341.1A priority Critical patent/CN111192367B/zh
Publication of CN111192367A publication Critical patent/CN111192367A/zh
Application granted granted Critical
Publication of CN111192367B publication Critical patent/CN111192367B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • A63F13/577Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using determination of contact between game characters or objects, e.g. to avoid collision between virtual racing cars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6692Methods for processing data by generating or executing the game program for rendering three dimensional images using special effects, generally involving post-processing, e.g. blooming

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Architecture (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种可变形对象碰撞变形实时模拟方法及装置,该方法包括:获取多帧原始时间序列的待训练样本;对所述待训练样本中的每一帧图像提取状态特征;采用主成分分析法PCA对所述状态特征进行降维;使用所述降维后的状态特征训练神经网络模型的目标参数的参数值,得到训练之后的所述神经网络模型;通过训练之后的所述神经网络模型对待预测可变形对象碰撞后的变形进行预测,输出可变形对象的预测状态特征;使用所述可变形对象的预测状态特征模拟所述可变形对象碰撞变形效果。解决了现有的模拟方法无法满足AAA级游戏和虚拟现实等现代交互应用程序对内存和性能的极限限制的问题,使得布料等柔性材质可以在这些环境中实现实时模拟和显示。

Description

一种可变形对象碰撞变形实时模拟方法及装置
技术领域
本发明涉及游戏和虚拟现实技术领域,特别涉及一种可变形对象碰撞变形实时模拟方法。
背景技术
现有的游戏和虚拟现实中许多视觉效果依赖于对可变形对象的相互作用和运动的逼真模拟,例如布料的实时模拟。然而,现有的模拟方法无法满足AAA级游戏和虚拟现实等现代交互应用程序对内存和性能的极限限制,也就是说无法达到实时的显示效果,这里,物理模拟的性能预算范围从每一帧、每一个对象的数十到数百微秒。在基于位置的动力学和基于投影的动力学中,计算成本通常随顶点数和约束数的增加而增加,这对于高分辨率的布来说是非常大的。这使得它在游戏的时间限制内无法访问,特别是当这些限制变得难以计算时,例如自碰撞和任意网格上的碰撞。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
为解决上述技术问题,本发明的目的在于提供一种能够满足AAA级游戏和虚拟现实等现代交互应用程序对内存和性能的极限限制的可变形对象碰撞变形实时模拟方法,以解决背景技术中出现有一个或多个的问题。
第一方面,本发明实施例提供一种可变形对象碰撞变形实时模拟方法,包括:
获取多帧原始时间序列的待训练样本;
对所述待训练样本中的每一帧图像提取状态特征,其中,所述状态特征包括外部对象的状态特征和发生碰撞后的可变形对象的状态特征;
采用主成分分析法PCA对所述状态特征进行降维;
使用所述降维后的状态特征训练神经网络模型的目标参数的参数值,得到训练之后的所述神经网络模型;
通过训练之后的所述神经网络模型对待预测可变形对象碰撞后的变形进行预测,输出可变形对象的预测状态特征;
使用所述可变形对象的预测状态特征模拟所述可变形对象碰撞变形效果。
进一步地,对所述待训练样本中的每一帧图像提取状态特征的步骤包括:
提取所述待训练样本中的每一帧图像上由可变形对象所有顶点位置构建的矩阵X,所述矩阵X用于表示可变形对象的状态特征;
构建与所述矩阵X相对应的矩阵Y,所述矩阵Y用于表示外部对象的状态特征。
进一步地,所述采用主成分分析法PCA对所述状态特征进行降维的步骤包括:
采用主成分分析法PCA对所述矩阵X进行降维,使用计算出的变换矩阵来构造所述矩阵X的子空间表示Z;
采用主成分分析法PCA对所述矩阵Y进行降维,使用计算出的变换矩阵来构造所述矩阵Y的子空间表示W。
进一步地,所述神经网络模型为前馈神经网络模型,所述前馈神经网络模型用于从所述t-1、t-2时刻的Z和t时刻的W预测t时刻的Z。
进一步地,所述前馈神经网络模型为10层,除输入和输出层外的每一层的隐藏单元数量为PCA基大小的1.5倍。
进一步地,所述使用所述可变形对象的预测状态特征模拟所述可变形对象碰撞变形效果的步骤包括:
将所述可变形对象的预测状态特征发送给GPU,所述GPU用于在渲染时对所述可变形对象的预测状态特征执行解压缩。
根据所述解压缩后的所述可变形对象的预测状态特征模拟所述可变形对象碰撞变形效果。
第二方面,本发明实施例提供一种可变形对象碰撞变形实时模拟装置,包括:
获取模块,用于获取多帧原始时间序列的待训练样本;
提取模块,用于对所述待训练样本中的每一帧图像提取状态特征,其中,所述状态特征包括外部对象的状态特征和发生碰撞后的可变形对象的状态特征;
PCA模块,用于采用主成分分析法PCA对所述状态特征进行降维;
神经网络模块,用于使用所述降维后的状态特征训练神经网络模型的目标参数的参数值,得到训练之后的所述神经网络模型;
预测模块,用于通过训练之后的所述神经网络模型对待预测可变形对象碰撞后的变形进行预测,输出可变形对象的预测状态特征;
实时模拟模块,用于使用所述可变形对象的预测状态特征模拟所述可变形对象碰撞变形效果。
进一步地,所述提取模块包括:
矩阵X提取模块,用于提取所述待训练样本中的每一帧图像上由可变形对象所有顶点位置构建的矩阵X,所述矩阵X用于表示可变形对象的状态特征;
矩阵Y构建模块,用于构建与所述矩阵X相对应的矩阵Y,所述矩阵Y用于表示外部对象的状态特征。
进一步地,所述PCA模块包括:
矩阵X降维模块,用于采用主成分分析法PCA对所述矩阵X进行降维,使用计算出的变换矩阵来构造所述矩阵X的子空间表示Z;
矩阵Y降维模块,用于采用主成分分析法PCA对所述矩阵Y进行降维,使用计算出的变换矩阵来构造所述矩阵Y的子空间表示W。
进一步地,所述模拟模块包括:
发送模块,用于将所述可变形对象的预测状态特征发送给GPU,所述GPU用于在渲染时对所述可变形对象的预测状态特征执行解压缩。
变形模拟模块,用于根据所述解压缩后的所述可变形对象的预测状态特征模拟所述可变形对象碰撞变形效果。
第三方面,本发明实施例提供一种存储介质,所述存储介质包括存储的程序,其中,所述程序执行任意一种上述的方法。
第四方面,本发明实施例提供一种处理器,上述处理器用于运行程序,其中,所述程序运行时执行任意一种上述的方法。
第五方面,本发明实施例提供一种电子设备,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置为由上述一个或多个处理器执行,上述一个或多个程序包括用于执行任意一种上述的方法。
有益效果
本发明提供的可变形对象碰撞变形实时模拟方法及装置,通过将子空间模拟与机器学习相结合,可以实现非常有效的纯子空间物理模拟,从而支持与外部对象的交互,能够产生高质量的结果,比参考模拟快几个数量级,大大优于目前其他最新技术,并且其适用于各种变形行为,由于其性能以及适度的内存占用,可以适用于现代AAA级游戏和虚拟现实引擎。
附图说明
图1是根据本发明实施例的一种可变形对象碰撞变形实时模拟方法的流程图;
图2是根据本发明具体实施例的一种可选的可变形对象碰撞变形实时模拟方法的流程图;
图3是将胶囊安装到角色的每个关节上的示意图;
图4是根据本发明实施例的一种可变形对象碰撞变形实时模拟方法在16名舞者的场景中的模拟效果图;
图5是根据本发明实施例的一种可变形对象碰撞变形实时模拟装置的结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
在本发明实施中,提供一种可变形对象碰撞变形模拟方法,如图1所示,该方法包括如下步骤:
步骤S100,获取多帧原始时间序列的待训练样本;
步骤S102,对待训练样本中的每一帧图像提取状态特征,其中,状态特征包括外部对象的状态特征和发生碰撞后的可变形对象的状态特征;
步骤S104,采用主成分分析法PCA对状态特征进行降维;
步骤S106,使用降维后的状态特征训练神经网络模型的目标参数的参数值,得到训练之后的神经网络模型;
步骤S108,通过训练之后的神经网络模型对待预测可变形对象碰撞后的变形进行预测,输出可变形对象的预测状态特征;
步骤S110,使用可变形对象的预测状态特征模拟可变形对象碰撞变形效果。
其中,可变形对象可以是布料,比如国旗,披肩,裙子,也可以是可变形的物体,比如橡胶材料的兔子等等,碰撞可以是来自外力的碰撞或自碰撞,外力可以是重力或其他物体,可变形对象在外部对象碰撞下发生形变,在实际应用过程中,来自外力的碰撞可以通过用户使用鼠标、游戏手柄或用户界面上的滑块操作可变形对象来实现。
其中,主成分分析技术PCA(principal components analysis)用于减少状态特征的维数,对数据进行降维,构造子空间,同时保持状态特征的对方差贡献最大的特征。
在本发明实施例中,通过将子空间模拟与机器学习相结合,可以实现非常有效的纯子空间物理模拟,从而支持与外部对象的交互,能够产生高质量的结果,比参考模拟快几个数量级,大大优于最新技术,并且其适用于各种变形行为,由于其性能以及适度的内存占用,可以适用于现代AAA级游戏和虚拟现实引擎。
进一步地,对待训练样本中的每一帧图像提取状态特征的步骤可以包括:
提取待训练样本中的每一帧图像上由可变形对象所有顶点位置构建的矩阵X,矩阵X用于表示可变形对象的状态特征;
构建与矩阵X相对应的矩阵Y,矩阵Y用于表示外部对象的状态特征。
如图2所示,图2是根据本发明具体实施例的一种可选的可变形对象碰撞变形模拟方法的流程图,我们首先使用Maya的nCloth离线获取训练数据X和Y,并执行PCA以获得压缩表示Z和w,然后训练神经网络Φ,以根据对象
Figure BDA0002354660070000051
的先前状态和外部对象w*的压缩状态反复预测对象z*的压缩状态。我们将该模型集成到一个交互式运行时算法中,该算法包括几个优化,如高效的GPU解压算法和顶点法向逼近方法,模拟可变形对象位置x*和法线n*直接从模型输出中计算,以进行渲染。
具体地,我们使用Maya的nCloth采集高质量的训练数据,使用逐帧顶点位置的原始时间序列作为训练数据,以每秒60帧的速度捕获数据,根据模拟的稳定性,包括5到20个子步骤和10到25个约束迭代。对于像布一样的物体,我们主要使用t恤材质,并在重量和拉伸阻力上有小的增加。对于可变形物体,我们使用预先设置的可以减少摩擦的固体橡胶材料,以使物体易于在表面上滑动。我们对外部几何图形的三角形执行外部碰撞,而自碰撞使用的布料碰撞是顶点对顶点碰撞,而对于可变形物体的碰撞则使用三角碰撞。在这两种情况下,我们都使用约5cm的相当大的碰撞厚度,以确保稳定性并防止布料在模拟过程中卡住和断裂。此外,这可以在预测过程中保持宽大处理,而不会立即出现视觉相交伪像。
对于简单的交互对象(例如大头针,球体),我们通过在随机时间设置随机位置的关键帧,在训练数据中随机生成它们的运动,以产生不同类型的交互。对于布料角色交互,我们使用约6.5×105个动画帧组成的大型运动捕获数据库,将其缝合在一起即可形成一个大型动画。然后,我们模拟整个系列。模拟后,我们检查数据并排除观察到不稳定或不良行为的所有帧。对于裙子场景,我们移除角色的手臂,因为它们与腿部网格的几何形状经常相交,从而导致布料断裂。
我们可以获取105到106帧的数据作为训练数据。我们发现在大多数情况下,约105帧足以进行测试,而在接近约105帧的情况下可获得最佳结果。表1显示了在实际应用过程中不同场景下的训练数据采集参数和时间。
表1,不同场景的训练数据采集参数和时间。
场景 材料 顶点数量 帧数量 帧/秒 时间
球与床单 t恤 2601 1,000,000 7.6 36h
四针 t恤 2601 1,000,000 15.5 18h
国旗 t恤 2601 1,000,000 10.9 25h
裙子 牛仔布 3000 650,000 3.1 60h
披肩 t恤 2601 650,000 1.9 95h
兔子 橡胶 2503 200,000 0.4 129h
橡胶 3000 500,000 1.0 138h
对上述采集的训练数据,我们首先将每一帧t上的顶点位置展平成一个大的向量
Figure BDA0002354660070000061
其中c为顶点数。然后我们将这些向量连接成单个大矩阵
Figure BDA0002354660070000062
这个矩阵表示可变形对象的状态,之后我们必须在每一帧构建外部对象状态的表示。对于简单的物体,比如球,我们可以使用它们的3D位置,而对于像完整角色这样的复杂对象,我们使用每个关节相对于参考框架的位置,比如,在裙子的情况下,我们将髋关节作为参考框架,在披肩的情况下,我们使用颈关节作为参考框架,将其展平为一个大矢量,忽略关节旋转。对于具有移动参考框架的对象,我们还包括地面相对于该参考框架的位置,因此我们知道重力方向和地面位置以及该参考框架的速度、加速度、旋转速度和旋转加速度。对于国旗,我们包括风速和风向。在建立了这个参数化之后,我们对于每一帧
Figure BDA0002354660070000063
有一个表示外部对象状态的大向量,其中e为外部对象的自由度数,我们也将其连接成一个大矩阵
Figure BDA0002354660070000064
进一步地,采用主成分分析法PCA对状态特征进行降维的步骤包括:
采用主成分分析法PCA对矩阵X进行降维,使用计算出的变换矩阵来构造矩阵X的子空间表示Z;
采用主成分分析法PCA对矩阵Y进行降维,使用计算出的变换矩阵来构造矩阵Y的子空间表示W。
具体地,我们将PCA应用于X和Y,并使用计算出的变换矩阵来构造子空间表示
Z=U(X-xμ),W=V(Y-yμ),
其中
Figure BDA0002354660070000071
u是子空间基的数量,可以是64、128或256),υ是用于压缩外部对象表示的基的数量。xμ是所有x的平均值,和yμ所有y的平均值。当不需要对外部对象的参数化进行压缩时,通常设置v=e。如果内存使用量太大而无法执行PCA,我们将在应用数据之前可以对数据进行二次采样。由于PCA压缩不可避免地会造成细节上的损失,特别是对于具有许多潜在状态的对象,例如细折叠,因此,我们优选使有256个基,它能够大体上保留大部分细节。
进一步地,神经网络模型为前馈神经网络模型,前馈神经网络模型用于从t-1、t-2时刻的Z和t时刻的W预测t时刻的Z。
其中,神经网络模型可以为LSTM、GRU或前馈神经网络模型,优选为前馈神经网络模型。
对于给定子空间数据Z和W,神经网络模型能够从Zt-1,Zt-2和Wt预测Zt。由于可变形对象通常表示惯性,并且倾向于某种平均静止状态(在PCA之后用0表示),因此,一个好的Zt初始模型
Figure BDA0002354660070000072
表达式如是:
Figure BDA0002354660070000073
其中,α和β模型的参数,⊙是分量乘法。我们通过分别求解α和β的每个维度(用m表示)的线性最小二乘方程来获得这些参数的值:
Figure BDA0002354660070000074
其中t∈[2,n),
Figure BDA0002354660070000075
表示矩阵伪逆。
由于
Figure BDA0002354660070000076
变换只是一个非常粗略的Zt近似值,并且没有考虑外部对象w的影响,因此我们训练神经网络Φ来近似预测模型的残余效应,
Figure BDA0002354660070000077
进一步地,前馈神经网络模型为10层,除输入和输出层外的每一层的隐藏单元数量为PCA基大小的1.5倍。
我们通过一个标准的10层前馈神经网络参数化Φ,除了输出层外,每层使用ReLU激活。排除输入层和输出层,为了在容量和性能之间达成了很好的平衡,我们将每层的隐藏单元数设置为PCA基大小的1.5倍。
训练Φ的标准方法是在数据集上进行小批量迭代,并训练网络以预测所有t的
Figure BDA0002354660070000081
值。尽管此方法将产生较低的训练误差,但在下一时间步骤将预测反馈到网络中时,Φ的自动递归性质以及方程(1)的耦合速度步长会导致行为不稳定。因此,我们提出了一种训练算法,该算法可预测帧窗口内的运动,并通过方程(3)所述的完整积分过程反向传播误差,以确保稳定的长期预测。
在较高的层次上,我们的训练过程如下:在训练集中给定Z和W值的小窗口的情况下,我们在初始状态采用前两个帧Z0,Z1并加上一些小噪声r0,r1使其在训练中稍微偏离训练轨迹。根据这些初始状态,我们反复使用方程(1)和方程(3)预测以下帧,并在每个新的时间步骤反馈先前的预测。一旦预测了整个轨迹,我们就可以计算出整个运动窗口的平均位置误差和速度误差。我们将此错误传递给AmsGrad优化器,使用从TensorFlow计算的自动导数。
为了激励这一训练过程,考虑网络预测从一个时间步骤到下一时间步骤的位置发生较大变化的情况。这种差异将在下一次逐步通过方程(1)产生一个大的初始猜测,其本身可能需要从网络向训练数据进行积极的校正。随着重复进行,校正尺寸增加并且预测变得不稳定。但是,如果我们在一个帧的窗口上训练,则网络将仅产生可在整个窗口上改善结果的校正,从而鼓励进行更小,更稳定的校正。
我们使用大小为32的重叠窗口,在大小为16的小批次上重复此训练过程,大约100轮,直到训练收敛为止。我们使用0.0001的学习率和0.999的学习率衰减率。我们使用的噪声标准偏差rσ为0.01,这是通过在PCA空间的前3个分量中可视化此扰动的结果而得到的。训练需要10到48小时,具体取决于设置的复杂性和所用PCA基的数量。
我们可以使用如下训练算法,在给定一个短的s帧窗口的情况下,我们预测物理对象的子空间状态,并利用误差来更新网络参数θ,当针对单个训练样本提出此过程时,我们将其分别应用于小批量中的每个元素,并在更新θ时平均结果,具体算法步骤如下:
(1)采样两个噪声向量r0,r1
(2)在初始状态z0,z1中加入噪声,即
Figure BDA0002354660070000082
(3)在短窗口s上预测z*的值,即使用模型的参数α和β预测
Figure BDA0002354660070000083
使用神经网络Φ预测
Figure BDA0002354660070000084
Figure BDA0002354660070000085
Figure BDA0002354660070000086
Figure BDA0002354660070000091
(4)用平均绝对误差计算损失L。
Figure BDA0002354660070000092
Figure BDA0002354660070000093
(5)更新网络参数θ。
Figure BDA0002354660070000094
进一步地,使用可变形对象的预测状态特征模拟可变形对象碰撞变形效果的步骤包括:
将可变形对象的预测状态特征发送给GPU,GPU用于在渲染时对可变形对象的预测状态特征执行解压缩。
根据解压缩后的可变形对象的预测状态特征模拟可变形对象碰撞变形效果。
由于方程(3)期望压缩状态z作为输入,因此只需要渲染完整对象状态x。我们可以将压缩后的布料状态z发送到GPU,并仅在渲染时执行解压缩。使用一个简单的GPU计算着色器,该着色器针对每个对象顶点计算z的点积和矩阵UT的三行,对应于该顶点位置的x,y和z分量,最后添加平均值xμ。与单纯的CPU解压缩方法相比,这种方法有两个优点:首先,GPU并行性极大地加速了x的计算,我们发现x的计算在CPU上可能要花费1毫秒。其次,它减少了GPU到CPU内存传输的数量级,这在传输整个对象状态变得异常缓慢的平台上很重要。
在渲染时,为了获得更新的效率,除访问顶点位置外,对于变形的顶点法线也需要渲染。我们发现一个基本的CPU实现需要大约150μs(除了CPU解压缩和内存传输成本)。虽然可以在GPU上执行此计算,但是由于需要执行并行随机访问写操作,因此可能难以高效实现。因此,我们学习从子空间状态到完整状态的法线向量的线性回归,并在GPU计算着色器上执行该回归,同时进行顶点位置计算。给定每一帧的顶点法线,将其展平为一个大向量并将其连接在一起
Figure BDA0002354660070000095
我们可以使用以下等式找到从子空间表示Z到顶点法线的最佳映射矩阵Q,
Figure BDA0002354660070000096
其中nμ是所有t的n的平均值。一旦计算出,QT可以用与UT相同的方式来预测每个顶点的顶点法线,方法是取QT的三列对应于顶点法线的子空间状态的点积,加上平均nμ并重新规范化。
我们在实践中发现子空间表示能够产生足够准确的结果,计算成本会随着我们使用的基的数量的增加而增加,因此,我们希望当有足够大的基项时,GPU加速实现标准的每面分布方法可以更有效。
由于子空间压缩可能会引起误差和预测结果的不精确性,导致外部对象和可变形对象之间可能出现可见的交叉伪影。我们使用如下解决方案在渲染时解决这些交叉点,它将相交的顶点投影到表示角色的简单代理碰撞对象的表面上。这个投影是简单的在GPU上用我们现有的计算着色器进行解压缩,它解压缩布状态并计算阴影法线。
首先,如图3所示,我们将具有不同的开始半径和结束半径的胶囊安装到与每个角色关节相关联的所有顶点来为关节角色构建代理碰撞对象。一旦安装上,我们将胶囊开始/结束位置和半径传递给GPU解压缩计算着色器。此外,我们还测试了每个相关胶囊的交叉点位置,如果发现交叉点,我们将顶点投影回胶囊表面。我们只调整顶点的位置,不修改计算出的法线以不影响着色。如果在模拟过程中产生的顶点位移误差不足以导致投影到胶囊的“背面”,我们的胶囊投影过程将从最终结果中移除小的可见交叉点。
为了进一步验证本发明实施方式的有效性和可靠性,能够满足预测的需求,我们在一个用c++和DirectX编写的简单交互式3D应用程序中呈现了我们的方法的结果。对于披肩和裙子的结果,我们使用运动匹配实现了基本的角色控制器,并允许用户使用游戏手柄动态控制角色。我们在运动匹配中使用的数据包括训练数据中存在的运动剪辑。大多数其他用户交互都是通过允许用户使用鼠标或用户界面上的滑块操作交互对象来实现的。图4展示了我们在16名舞者的场景中测试我们方法的结果图,使用256个基以240帧的速度模拟16名舞者。
我们可以在各种具有不同变形以及与外力和物体相互作用的场景上测试我们的方法,比如,一个与用户可控球交互的悬挂板,一个用户操纵可变形板的固定角,一个用户可以移动杆或调整风速和风向的杆上旗子,一个连接到由用户动态控制的动画角色的披肩和裙子,一只可变形的兔子和一个可以挤压和推动物体的用户控制球,以及一条被移动茶壶摄动的可变形龙。
表2显示了可变形兔子场景下不同方法性能和内存的比较,将我们使用的前馈神经网络方法与超简化投影动力学(HRPD),LSTM和GRU进行比较。由表2可以看出,与HRPD相比,性能提升约为7倍,与真实情况相比,性能提升约为300倍至5,000倍。与我们探索的替代LSTM和GRU基线相比,我们的体系结构选择合理。
表2,可变形兔子场景下不同方法性能和内存的比较。
Figure BDA0002354660070000101
Figure BDA0002354660070000111
图5显示了根据本发明实施例的一种可变形对象碰撞变形模拟装置的示意图,如图5所示,本实施例的可变形对象碰撞变形模拟装置包括获取模块200、提取模块202、PCA模块204、神经网络模块206、预测模块208和模拟模块210。获取模块200、提取模块202、PCA模块204、神经网络模块206、预测模块208和模拟模块210分别用于执行图1中的S100、S102、S104、S106、S108、S110中的具体方法,详情可参见图1的相关介绍,在此仅作简单描述:
获取模块200,用于获取多帧原始时间序列的待训练样本;
提取模块202,用于对待训练样本中的每一帧图像提取状态特征,其中,状态特征包括外部对象的状态特征和发生碰撞后的可变形对象的状态特征;
PCA模块204,用于采用主成分分析法PCA对状态特征进行降维;
神经网络模块206,用于使用降维后的状态特征训练神经网络模型的目标参数的参数值,得到训练之后的神经网络模型;
预测模块208,用于通过训练之后的神经网络模型对待预测可变形对象碰撞后的变形进行预测,输出可变形对象的预测状态特征;
模拟模块210,用于使用可变形对象的预测状态特征模拟可变形对象碰撞变形效果。
在本发明实施例中,通过PCA模块204和神经网络模块206将子空间模拟与机器学习相结合,可以实现非常有效的纯子空间物理模拟,从而支持与外部对象的交互,能够产生高质量的结果,比参考模拟快几个数量级,大大优于最新技术,并且其适用于各种变形行为,由于其性能以及适度的内存占用,可以适用于现代AAA级游戏和虚拟现实引擎。
进一步地,提取模块200可以包括:
矩阵X提取模块,用于提取待训练样本中的每一帧图像上由可变形对象所有顶点位置构建的矩阵X,矩阵X用于表示可变形对象的状态特征;
矩阵Y构建模块,用于构建与矩阵X相对应的矩阵Y,矩阵Y用于表示外部对象的状态特征。
进一步地,PCA模块204可以包括:
矩阵X降维模块,用于采用主成分分析法PCA对矩阵X进行降维,使用计算出的变换矩阵来构造矩阵X的子空间表示Z;
矩阵Y降维模块,用于采用主成分分析法PCA对矩阵Y进行降维,使用计算出的变换矩阵来构造矩阵Y的子空间表示W。
进一步地,模拟模块210可以包括:
发送模块,用于将可变形对象的预测状态特征发送给GPU,GPU用于在渲染时对可变形对象的预测状态特征执行解压缩。
变形模拟模块,用于根据解压缩后的可变形对象的预测状态特征模拟可变形对象碰撞变形效果。
在本发明实施中,还提供一种存储介质,存储介质包括存储的程序,其中,程序执行任意一种上述的方法。
在本发明实施中,还提供一种处理器,上述处理器用于运行程序,其中,程序运行时执行任意一种上述的方法。
在本发明实施中,还提供一种电子设备,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置为由上述一个或多个处理器执行,上述一个或多个程序包括用于执行任意一种上述的方法。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

Claims (9)

1.一种可变形对象碰撞变形实时模拟方法,其特征在于,所述方法包括:
获取多帧原始时间序列的待训练样本;
对所述待训练样本中的每一帧图像提取状态特征,其中,所述状态特征包括外部对象的状态特征和发生碰撞后的可变形对象的状态特征;
采用主成分分析法PCA对所述状态特征进行降维;
使用所述降维后的状态特征训练神经网络模型的目标参数的参数值,得到训练之后的所述神经网络模型;
通过训练之后的所述神经网络模型对待预测可变形对象碰撞后的变形进行预测,输出可变形对象的预测状态特征;
使用所述可变形对象的预测状态特征模拟所述可变形对象碰撞变形效果。
2.根据权利要求1所述的方法,其特征在于,对所述待训练样本中的每一帧图像提取状态特征的步骤包括:
提取所述待训练样本中的每一帧图像上由可变形对象所有顶点位置构建的矩阵X,所述矩阵X用于表示可变形对象的状态特征;
构建与所述矩阵X相对应的矩阵Y,所述矩阵Y用于表示外部对象的状态特征。
3.根据权利要求2所述的方法,其特征在于,所述采用主成分分析法PCA对所述状态特征进行降维的步骤包括:
采用主成分分析法PCA对所述矩阵X进行降维,使用计算出的变换矩阵来构造所述矩阵X的子空间表示Z;
采用主成分分析法PCA对所述矩阵Y进行降维,使用计算出的变换矩阵来构造所述矩阵Y的子空间表示W。
4.根据权利要求3所述的方法,其特征在于,所述神经网络模型为前馈神经网络模型,所述前馈神经网络模型为10层,除输入和输出层外的每一层的隐藏单元数量为PCA基大小的1.5倍。
5.根据权利要求1所述的方法,其特征在于,所述使用所述可变形对象的预测状态特征模拟所述可变形对象碰撞变形效果的步骤包括:
将所述可变形对象的预测状态特征发送给GPU,所述GPU用于在渲染时对所述可变形对象的预测状态特征执行解压缩;
根据所述解压缩后的所述可变形对象的预测状态特征模拟所述可变形对象碰撞变形效果。
6.一种可变形对象碰撞变形实时模拟装置,其特征在于,所述装置包括:
获取模块,用于获取多帧原始时间序列的待训练样本;
提取模块,用于对所述待训练样本中的每一帧图像提取状态特征,其中,所述状态特征包括外部对象的状态特征和发生碰撞后的可变形对象的状态特征;
PCA模块,用于采用主成分分析法PCA对所述状态特征进行降维;
神经网络模块,用于使用所述降维后的状态特征训练神经网络模型的目标参数的参数值,得到训练之后的所述神经网络模型;
预测模块,用于通过训练之后的所述神经网络模型对待预测可变形对象碰撞后的变形进行预测,输出可变形对象的预测状态特征;
模拟模块,用于使用所述可变形对象的预测状态特征模拟所述可变形对象碰撞变形效果。
7.根据权利要求6所述的装置,其特征在于,所述提取模块包括:
矩阵X提取模块,用于提取所述待训练样本中的每一帧图像上由可变形对象所有顶点位置构建的矩阵X,所述矩阵X用于表示可变形对象的状态特征;
矩阵Y构建模块,用于构建与所述矩阵X相对应的矩阵Y,所述矩阵Y用于表示外部对象的状态特征。
8.根据权利要求7所述的装置,其特征在于,所述PCA模块包括:
矩阵X降维模块,用于采用主成分分析法PCA对所述矩阵X进行降维,使用计算出的变换矩阵来构造所述矩阵X的子空间表示Z;
矩阵Y降维模块,用于采用主成分分析法PCA对所述矩阵Y进行降维,使用计算出的变换矩阵来构造所述矩阵Y的子空间表示W。
9.根据权利要求8所述的装置,其特征在于,所述模拟模块包括:
发送模块,用于将所述可变形对象的预测状态特征发送给GPU,所述GPU用于在渲染时对所述可变形对象的预测状态特征执行解压缩;
变形模拟模块,用于根据所述解压缩后的所述可变形对象的预测状态特征模拟所述可变形对象碰撞变形效果。
CN202010004341.1A 2020-01-03 2020-01-03 一种可变形对象碰撞变形实时模拟方法及装置 Active CN111192367B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010004341.1A CN111192367B (zh) 2020-01-03 2020-01-03 一种可变形对象碰撞变形实时模拟方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010004341.1A CN111192367B (zh) 2020-01-03 2020-01-03 一种可变形对象碰撞变形实时模拟方法及装置

Publications (2)

Publication Number Publication Date
CN111192367A CN111192367A (zh) 2020-05-22
CN111192367B true CN111192367B (zh) 2021-01-15

Family

ID=70710650

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010004341.1A Active CN111192367B (zh) 2020-01-03 2020-01-03 一种可变形对象碰撞变形实时模拟方法及装置

Country Status (1)

Country Link
CN (1) CN111192367B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114626293A (zh) * 2022-02-23 2022-06-14 中国科学院深圳先进技术研究院 预测碰撞仿真结果的方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677950A (zh) * 2015-12-30 2016-06-15 浙江巴贝领带有限公司 一种织物变形仿真的方法
CN109388229A (zh) * 2017-08-11 2019-02-26 哈尔滨工业大学 一种带有触感体验的沉浸式虚拟试衣方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016142685A1 (en) * 2015-03-06 2016-09-15 Micromass Uk Limited Collision surface for improved ionisation
JP2017191501A (ja) * 2016-04-14 2017-10-19 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677950A (zh) * 2015-12-30 2016-06-15 浙江巴贝领带有限公司 一种织物变形仿真的方法
CN109388229A (zh) * 2017-08-11 2019-02-26 哈尔滨工业大学 一种带有触感体验的沉浸式虚拟试衣方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Improved Support Vector Machine Models for Work Zone Crash Injury Severity Prediction and Analysis;Seyedmirsajad Mokhtarimousavi等;《Transportation Research Record》;20191101;第2673卷(第11期);第1-13页 *
基于训练图CNN特征的视频人体动作识别算法;曹晋其 等;《计算机工程》;20171130;第43卷(第11期);第234-238页 *

Also Published As

Publication number Publication date
CN111192367A (zh) 2020-05-22

Similar Documents

Publication Publication Date Title
US11295479B2 (en) Blendshape compression system
Holden et al. Subspace neural physics: Fast data-driven interactive simulation
US10403404B2 (en) Physical face cloning
US20210118239A1 (en) Learning-based animation of clothing for virtual try-on
US9818217B2 (en) Data driven design and animation of animatronics
Zurdo et al. Animating wrinkles by example on non-skinned cloth
Feng et al. Real-time data driven deformation using kernel canonical correlation analysis
US10410431B2 (en) Skinning a cluster based simulation with a visual mesh using interpolated orientation and position
CN111192367B (zh) 一种可变形对象碰撞变形实时模拟方法及装置
US20130046522A1 (en) Physics-inspired up sampling for cloth simulation
CN116362133A (zh) 一种基于骨架的预测目标姿势下布料静态变形的双相流网络方法
CN112308952B (zh) 模仿给定视频中人物动作的3d角色动作生成系统和方法
Wu et al. Example-based real-time clothing synthesis for virtual agents
Wu et al. Agentdress: Realtime clothing synthesis for virtual agents using plausible deformations
CN116228951B (zh) 一种数字虚拟对象的表情数据处理方法和装置
CN115049768B (zh) 创建角色动画模型方法、装置、计算机设备和存储介质
CN111105489A (zh) 数据合成方法和装置、存储介质和电子装置
Diao et al. Combating Spurious Correlations in Loose‐fitting Garment Animation Through Joint‐Specific Feature Learning
US10864434B2 (en) Simulation of multiple connected bodies for real-time application
US11957976B2 (en) Predicting the appearance of deformable objects in video games
Choi et al. Estimating material properties of deformable objects by considering global object behavior in video streams
Gomes Prediction for projection on time-varying surfaces
Yang et al. N-Cloth: Predicting 3D Cloth Deformation with Mesh-Based Networks
Galoppo Animation, simulation, and control of soft characters using layered representations and simplified physics-based methods
Li et al. Efficient Deformation Learning of Varied Garments with a Structure-Preserving Multilevel Framework

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
CP02 Change in the address of a patent holder

Address after: Room 311a, floor 3, building 4, courtyard 4, Yongchang Middle Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing

Patentee after: Beijing Zhongke Shenzhi Technology Co.,Ltd.

Address before: 303 platinum international building, block C, fortune World Building, 1 Hangfeng Road, Fengtai District, Beijing

Patentee before: Beijing Zhongke Shenzhi Technology Co.,Ltd.

CP02 Change in the address of a patent holder
CP03 Change of name, title or address

Address after: Room 911, 9th Floor, Block B, Xingdi Center, Building 2, No.10, Jiuxianqiao North Road, Jiangtai Township, Chaoyang District, Beijing, 100000

Patentee after: Beijing Zhongke Shenzhi Technology Co.,Ltd.

Country or region after: China

Address before: 100000 room 311a, floor 3, building 4, courtyard 4, Yongchang Middle Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing

Patentee before: Beijing Zhongke Shenzhi Technology Co.,Ltd.

Country or region before: China

CP03 Change of name, title or address