CN108295471B - 模型震动的模拟方法、装置、存储介质、处理器及终端 - Google Patents

模型震动的模拟方法、装置、存储介质、处理器及终端 Download PDF

Info

Publication number
CN108295471B
CN108295471B CN201810094852.XA CN201810094852A CN108295471B CN 108295471 B CN108295471 B CN 108295471B CN 201810094852 A CN201810094852 A CN 201810094852A CN 108295471 B CN108295471 B CN 108295471B
Authority
CN
China
Prior art keywords
vibration
model
preset
attack
object model
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
CN201810094852.XA
Other languages
English (en)
Other versions
CN108295471A (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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network 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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201810094852.XA priority Critical patent/CN108295471B/zh
Publication of CN108295471A publication Critical patent/CN108295471A/zh
Application granted granted Critical
Publication of CN108295471B publication Critical patent/CN108295471B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/58Controlling game characters or game objects based on the game progress by computing conditions of game characters, e.g. stamina, strength, motivation or energy level
    • 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/50Controlling the output signals based on the game progress
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/016Input arrangements with force or tactile feedback as computer generated output to the user
    • 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/30Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device
    • 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/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
    • 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/65Methods for processing data by generating or executing the game program for computing the condition of a game character

Abstract

本发明公开了一种模型震动的模拟方法、装置、存储介质、处理器及终端。该方法包括:获取攻击对象模型的受击位置;在利用碰撞体相交检测方式确定攻击对象模型存在一个或多个邻接对象模型的情况下,将受击位置设置为震源,触发攻击对象模型以及一个或多个邻接对象模型中的部分或全部对象模型模拟震动行为,或者,在利用碰撞体相交检测方式确定攻击对象模型未存在一个或多个邻接对象模型的情况下,将受击位置设置为震源,触发攻击对象模型模拟震动行为。本发明解决了相关技术中所提供的手游场景中缺乏对于攻击反应的模拟的技术问题。

Description

模型震动的模拟方法、装置、存储介质、处理器及终端
技术领域
本发明涉及计算机领域,具体而言,涉及一种模型震动的模拟方法、装置、存储介质、处理器及终端。
背景技术
目前,伴随着游戏玩家对游戏体验的追求逐步提升,第三人称射击游戏已风靡全球。区别于屏幕内只有主角视野的第一人称射击游戏,第三人称涉及游戏更加强调动作感,主角在游戏屏幕内是可见的。由此,更加有利于观察角色的受伤情况、周围事物以及攻击轨迹(例如:弹道),而且还可以实现主角动作与游戏场景的完美结合。然而,相比于端游,尽管手游的操作方式更加简便,而且游戏玩家还可以随时随地进行畅快的游戏体验,但是受制于手游应用环境的屏幕尺寸以及硬件需求,在游戏场景的细节处理上,手游尚无法与端游相比。最为直观地体现在于,目前手游的开发重点通常放置于游戏角色本身,例如:游戏角色的皮肤或服装、游戏角色的技能种类以及技能展示,而对游戏角色的攻击对象的效果展示却缺乏真实感,由此造成游戏场景对游戏玩家的吸引力下降。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明至少部分实施例提供了一种模型震动的模拟方法、装置、存储介质、处理器及终端,以至少解决相关技术中所提供的手游场景中缺乏对于攻击反应的模拟的技术问题。
根据本发明其中一实施例,提供了一种模型震动的模拟方法,包括:
获取攻击对象模型的受击位置;在利用碰撞体相交检测方式确定攻击对象模型存在一个或多个邻接对象模型的情况下,将受击位置设置为震源,触发攻击对象模型以及一个或多个邻接对象模型中的部分或全部对象模型模拟震动行为,或者,在利用碰撞体相交检测方式确定攻击对象模型未存在一个或多个邻接对象模型的情况下,将受击位置设置为震源,触发攻击对象模型模拟震动行为。
可选地,获取攻击对象模型的受击位置包括:获取受击位置的世界坐标数据;利用世界矩阵的反矩阵将世界坐标数据转换为受击位置位于攻击对象模型的本地坐标数据。
可选地,在触发攻击对象模型以及一个或多个邻接对象模型中的部分或全部对象模型模拟震动行为,或者,触发攻击对象模型模拟震动行为之前,还包括:利用碰撞体相交检测方式判断攻击对象模型的包围盒与一个或多个邻接对象模型中每个邻接对象模型是否存在相交部分;如果存在相交部分,则确定攻击对象模型存在一个或多个邻接对象模型;如果未存在相交部分,则确定攻击对象模型未存在一个或多个邻接对象模型。
可选地,触发攻击对象模型以及一个或多个邻接对象模型中的部分或全部对象模型模拟震动行为包括:根据本地坐标数据和攻击对象模型与一个或多个邻接对象模型之间的邻接关系获取与震源关联的震动信息;采用震动信息在部分或全部对象模型中各个模型顶点位置添加震动变化量,模拟震动行为。
可选地,根据本地坐标数据和预设邻接关系获取震动信息包括:根据本地坐标数据和预设邻接关系计算部分或全部对象模型中各个模型顶点位置相对于震源的衰减值;根据实时获取的时间参数、预设频率参数和预设振幅参数计算部分或全部对象模型中各个模型顶点位置相对于震源的震动值;根据预设规则确定震动方向向量;采用震动信息在部分或全部顶点位置添加震动变化量包括:通过衰减值、震动值以及震动方向向量在部分或全部对象模型中各个模型顶点位置添加震动变化量,模拟震动行为。
可选地,根据预设规则确定震动方向向量包括:利用游戏视角向震源发出的射线方向确定震动方向向量。
可选地,根据本地坐标数据和预设邻接关系计算部分或全部对象模型中各个模型顶点位置相对于衰减值包括:采用部分或全部对象模型中每个模型顶点位置的坐标数据与震源的坐标数据进行减法运算,得到第一计算结果;按照部分或全部对象模型中每个对象模型的包围盒自身属性确定每个模型顶点位置与震源之间的参考距离值;采用第一计算结果与参考距离值的比值得到第二计算结果;将第二计算结果与权重值进行乘法运算得到第三计算结果,并对第三计算结果进行取反操作得到第四计算结果,其中,权重值为0至1之间的变量;将第四计算结果与预设衰减系数进行乘法运算得到第五计算结果,再对第五计算结果进行平方运算,得到衰减值。
可选地,根据实时获取的时间参数、预设频率参数和预设振幅参数计算部分或全部对象模型中各个模型顶点位置相对于震动值包括:对实时获取的时间参数与预设频率参数进行正弦运算,得到第六计算结果;将第六计算结果与预设振幅参数进行乘法运算,得到震动值。
可选地,通过衰减值、震动值以及震动方向向量在部分或全部对象模型中各个模型顶点位置添加震动变化量,模拟震动行为包括:采用衰减值、震动值以及震动方向向量进行乘法运算得到震动变化量;采用部分或全部对象模型中每个模型顶点位置的坐标数据与震动变化量进行加法运算,模拟震动行为。
可选地,在触发攻击对象模型以及一个或多个邻接对象模型中的部分或全部对象模型模拟震动行为,或者,触发攻击对象模型模拟震动行为的同时,还包括:加载预设裂纹图与预设权重图,其中,预设裂纹图是对预设纹理重复进行多次归一化处理得到的静态图,预设权重图是对预设色阶进行归一化处理得到的静态图;根据攻击对象模型的受损程度动态设置权重值;将权重值与预设权重图进行比较,得到比较后的权重图;采用比较后的权重图的权重值、攻击对象模型的原始贴图以及震动图进行插值处理,模拟裂纹表现,其中,震动图由原始贴图与预设裂纹图相乘得到。
可选地,对预设纹理进行重复处理的次数由攻击对象模型的包围盒的表面积与单位模型表面积确定。
根据本发明其中一实施例,还提供了一种模型震动的模拟装置,包括:
获取模块,用于获取攻击对象模型的受击位置;第一模拟模块,用于在利用碰撞体相交检测方式确定攻击对象模型存在一个或多个邻接对象模型的情况下,将受击位置设置为震源,触发攻击对象模型以及一个或多个邻接对象模型中的部分或全部对象模型模拟震动行为,或者,在利用碰撞体相交检测方式确定攻击对象模型未存在一个或多个邻接对象模型的情况下,将受击位置设置为震源,触发攻击对象模型模拟震动行为。
可选地,获取模块包括:第一获取单元,用于获取受击位置的世界坐标数据;转换单元,用于利用世界矩阵的反矩阵将世界坐标数据转换为受击位置位于攻击对象模型的本地坐标数据。
可选地,上述装置还包括:判断模块,用于利用碰撞体相交检测方式判断攻击对象模型的包围盒与一个或多个邻接对象模型中每个邻接对象模型是否存在相交部分;确定模块,用于如果存在相交部分,则确定攻击对象模型存在一个或多个邻接对象模型;如果未存在相交部分,则确定攻击对象模型未存在一个或多个邻接对象模型。
可选地,第一模拟模块包括:第二获取单元,用于根据本地坐标数据和攻击对象模型与一个或多个邻接对象模型之间的邻接关系获取与震源关联的震动信息;模拟单元,用于采用震动信息在部分或全部对象模型中各个模型顶点位置添加震动变化量,模拟震动行为。
可选地,第二获取单元包括:第一计算子单元,用于根据本地坐标数据和预设邻接关系计算部分或全部对象模型中各个模型顶点位置相对于震源的衰减值;第二计算子单元,用于根据实时获取的时间参数、预设频率参数和预设振幅参数计算部分或全部对象模型中各个模型顶点位置相对于震源的震动值;确定子单元,用于根据预设规则确定震动方向向量;模拟单元,用于通过衰减值、震动值以及震动方向向量在部分或全部对象模型中各个模型顶点位置添加震动变化量,模拟震动行为。
可选地,确定子单元,用于利用游戏视角向震源发出的射线方向确定震动方向向量。
可选地,第一计算子单元,用于采用部分或全部对象模型中每个模型顶点位置的坐标数据与震源的坐标数据进行减法运算,得到第一计算结果;按照部分或全部对象模型中每个对象模型的包围盒自身属性确定每个模型顶点位置与震源之间的参考距离值;采用第一计算结果与参考距离值的比值得到第二计算结果;将第二计算结果与权重值进行乘法运算得到第三计算结果,并对第三计算结果进行取反操作得到第四计算结果,其中,权重值为0至1之间的变量;以及将第四计算结果与预设衰减系数进行乘法运算得到第五计算结果,再对第五计算结果进行平方运算,得到衰减值。
可选地,第二计算子单元,用于对实时获取的时间参数与预设频率参数进行正弦运算,得到第六计算结果;以及将第六计算结果与预设振幅参数进行乘法运算,得到震动值。
可选地,模拟单元包括:第三计算子单元,用于采用衰减值、震动值以及震动方向向量进行乘法运算得到震动变化量;第四计算子单元,用于采用部分或全部对象模型中每个模型顶点位置的坐标数据与震动变化量进行加法运算,模拟震动行为。
可选地,上述装置还包括:加载模块,用于加载预设裂纹图与预设权重图,其中,预设裂纹图是对预设纹理重复进行多次归一化处理得到的静态图,预设权重图是对预设色阶进行归一化处理得到的静态图;设置模块,用于根据攻击对象模型的受损程度动态设置权重值;比较模块,用于将权重值与预设权重图进行比较,得到比较后的权重图;第二模拟模块,用于采用比较后的权重图的权重值、攻击对象模型的原始贴图以及震动图进行插值处理,模拟裂纹表现,其中,震动图由原始贴图与预设裂纹图相乘得到。
可选地,对预设纹理进行重复处理的次数由攻击对象模型的包围盒的表面积与单位模型表面积确定。
根据本发明其中一实施例,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述模型震动的模拟方法。
根据本发明其中一实施例,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述模型震动的模拟方法。
根据本发明其中一实施例,还提供了一种终端,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序用于执行上述模型震动的模拟方法。
在本发明至少部分实施例中,采用获取攻击对象模型的受击位置的方式,通过在利用碰撞体相交检测方式确定攻击对象模型存在一个或多个邻接对象模型的情况下,将受击位置设置为震源,触发攻击对象模型以及一个或多个邻接对象模型中的部分或全部对象模型模拟震动行为,或者,在利用碰撞体相交检测方式确定攻击对象模型未存在一个或多个邻接对象模型的情况下,将受击位置设置为震源,触发攻击对象模型模拟震动行为,达到了在手游场景真实模拟攻击对象模型在受到攻击后所产生的震动行为的目的,从而实现了增强游戏场景的真实感、提升玩家的游戏体验的技术效果,进而解决了相关技术中所提供的手游场景中缺乏对于攻击反应的模拟的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明其中一实施例的模型震动的模拟方法的流程图;
图2是根据本发明其中一优选实施例的模型震动的模拟过程示意图;
图3是根据本发明其中一实施例的模型震动的模拟装置的结构框图;
图4是根据本发明其中一优选实施例的模型震动的模拟装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明其中一实施例,提供了一种模型震动的模拟方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明其中一实施例的模型震动的模拟方法的流程图,如图1所示,该方法包括如下步骤:
步骤S11,获取攻击对象模型的受击位置;
步骤S14,在利用碰撞体相交检测方式确定攻击对象模型存在一个或多个邻接对象模型的情况下,将受击位置设置为震源,触发攻击对象模型以及一个或多个邻接对象模型中的部分或全部对象模型模拟震动行为,或者,在利用碰撞体相交检测方式确定攻击对象模型未存在一个或多个邻接对象模型的情况下,将受击位置设置为震源,触发攻击对象模型模拟震动行为。
通过上述步骤,可以采用获取攻击对象模型的受击位置的方式,通过在利用碰撞体相交检测方式确定攻击对象模型存在一个或多个邻接对象模型的情况下,将受击位置设置为震源,触发攻击对象模型以及一个或多个邻接对象模型中的部分或全部对象模型模拟震动行为,或者,在利用碰撞体相交检测方式确定攻击对象模型未存在一个或多个邻接对象模型的情况下,将受击位置设置为震源,触发攻击对象模型模拟震动行为,达到了在手游场景真实模拟攻击对象模型在受到攻击后所产生的震动行为的目的,从而实现了增强游戏场景的真实感、提升玩家的游戏体验的技术效果,进而解决了相关技术中所提供的手游场景中缺乏对于攻击反应的模拟的技术问题。
可选地,在步骤S11中,获取攻击对象模型的受击位置可以包括以下执行步骤:
步骤S111,获取受击位置的世界坐标数据;
步骤S112,利用世界矩阵的反矩阵将世界坐标数据转换为受击位置位于攻击对象模型的本地坐标数据。
游戏玩家可以使用攻击武器向攻击对象模型发起攻击,例如:游戏玩家使用锤子敲击房子的墙壁或者使用枪械向房子的墙壁连续射击。根据锤子打击点或者枪械射击点能够计算出该点的世界位置。具体地,当子弹射击到墙壁上,对于整个游戏世界而言,子弹坐标使用世界坐标系进行描述,然而,房子的墙壁受击表现震动效果的震源基于模型自身坐标系进行描述。因此,需要将子射击到墙壁上基于世界坐标系描述的位置乘以世界矩阵的反矩阵转换到基于房子自身坐标系进行描述,并最终当做震源传入着色器(shader),以完成世界空间向本地空间转换。
可选地,在步骤S14,触发攻击对象模型以及一个或多个邻接对象模型中的部分或全部对象模型模拟震动行为,或者,触发攻击对象模型模拟震动行为之前,还可以包括以下执行步骤:
步骤S12,利用碰撞体相交检测方式判断攻击对象模型的包围盒与一个或多个邻接对象模型中每个邻接对象模型是否存在相交部分;
步骤S13,如果存在相交部分,则确定攻击对象模型存在一个或多个邻接对象模型,例如:受到攻击的墙壁为墙壁A,而与墙壁A邻接的墙壁B、C和D存在与墙壁A存在相交部分;如果未存在相交部分,则确定攻击对象模型未存在一个或多个邻接对象模型,例如:房间内摆放的桌子、椅子、台灯、花盆。
每个模型都会创建一个碰撞体(即上述包围盒),并跟随模型保持不变。在引擎中判断模型相交即为通过预设程序判断模型的碰撞体是否相交,因为模型本身的结构通常较为复杂,而碰撞体是简化模型(碰撞体的面较少,可以理解成是碰撞代理),利用碰撞体能够有效地提高检测效率。
如果攻击对象模型的碰撞体与周边邻接模型的碰撞体存在交集,则计算出的世界顶点需要再次转换到这些相关模型的本地空间。具体地,在利用碰撞体相交检测方式确定攻击对象模型存在一个或多个邻接对象模型之后,如果只为攻击对象模型设置震动效果,并且在震动没有衰减完毕便即刻停止,实际效果表现极为不自然。为此,打击点世界空间的位置需要分别会转化到与攻击对象模型的碰撞体相交的一个或多个邻接对象模型的自身空间。由于衰减距离与衰减系数相同,而相对每个模型震源不同,因此,会表现出很好的余震效果。利用碰撞关联原理,设置一个震源并开启震动权重,可以触发攻击对象模型以及一个或多个邻接对象模型中的部分或全部对象模型模拟震动行为。
图2是根据本发明其中一优选实施例的模型震动的模拟过程示意图,如图2所示,A点为受击点,该点在世界空间位置转换成相对于A点的本地空间,并作为震源传入至A点的shader中。在打击到A点时,会影响到A点上挂接的B点,该点在世界空间位置也要转换成相对于B点的本地空间,并作为震源传递给B点的shader。此外,在打击到A点时,还会影响到位于A点旁边的C点和D点,该点在世界空间位置也要转换成相对于C点和D点的本地空间,并作为震源传递给C点和D点的shader。在此之后,还可以设置权重值为1以播放震动动画,而整个关联过程都是依靠模型碰撞体进行判断以确定碰撞体存在交集。
可选地,在步骤S14中,触发攻击对象模型以及一个或多个邻接对象模型中的部分或全部对象模型模拟震动行为可以包括以下执行步骤:
步骤S141,根据本地坐标数据和攻击对象模型与一个或多个邻接对象模型之间的邻接关系获取与震源关联的震动信息;
步骤S142,采用震动信息在部分或全部对象模型中各个模型顶点位置添加震动变化量,模拟震动行为。
在游戏玩家使用攻击武器向攻击对象模型发起攻击之后,攻击位置(即震源)的世界坐标会通过世界矩阵的反矩阵转换到基于攻击对象模型自身坐标系进行描述。而通过碰撞体相交检测可以确定攻击对象模型与一个或多个邻接对象模型之间的邻接关系。因此,为了避免只为攻击对象模型设置震动效果并且在震动没有衰减完毕便即刻停止会造成实际效果表现极为不自然,需要在为攻击对象模型设置震动效果的基础上实现震动传递效果。为此,需要根据本地坐标数据和上述邻接关系获取与震源关联的震动信息。该震动信息用于指示一个或多个邻接对象模型中参与震动的部分或全部对象模型中各个模型顶点位置需要添加的震动变化量。
可选地,在步骤S141中,根据本地坐标数据和攻击对象模型与一个或多个邻接对象模型之间的邻接关系获取与震源关联的震动信息可以包括以下执行步骤:
步骤S1411,根据本地坐标数据和预设邻接关系计算部分或全部对象模型中各个模型顶点位置相对于震源的衰减值;
步骤S1412,根据实时获取的时间参数、预设频率参数和预设振幅参数计算部分或全部对象模型中各个模型顶点位置相对于震源的震动值;
步骤S1413,根据预设规则(例如:利用游戏视角向震源发出的射线方向)确定震动方向向量;
在此基础上,在步骤S142中,采用震动信息在部分或全部对象模型中各个模型顶点位置添加震动变化量,模拟震动行为可以包括以下执行步骤:
步骤S1421,通过衰减值、震动值以及震动方向向量在部分或全部对象模型中各个模型顶点位置添加震动变化量,模拟震动行为。
在将震源传入shader之后,并不能表现震动效果,还需要动态开启权重值。首先,基于震源位置以及部分或全部对象模型中各个模型顶点位置计算各个模型顶点位置相对于震源的衰减值;其次,利用实时获取的时间参数以及预先设定的频率和振幅常量计算各个模型顶点位置相对于震源的震动值;然后,根据游戏玩家的朝向利用游戏视角向震源发出的射线方向确定震动方向向量;最后,通过在部分或全部对象模型中各个模型顶点位置添加由衰减值、震动值以及震动方向向量计算得到的震动变化量,模拟震动行为。
需要说明的是,上述震动行为的模拟过程同样适用于利用碰撞体相交检测方式确定攻击对象模型未存在一个或多个邻接对象模型的情形。在此情形下,模拟震动行为发生在攻击对象模型本身。
可选地,在步骤S1411中,根据本地坐标数据和预设邻接关系计算部分或全部对象模型中各个模型顶点位置相对于衰减值可以包括以下执行步骤:
步骤S14111,采用部分或全部对象模型中每个模型顶点位置的坐标数据与震源的坐标数据进行减法运算,得到第一计算结果;
步骤S14112,按照部分或全部对象模型中每个对象模型的包围盒自身属性确定每个模型顶点位置与震源之间的参考距离值;
步骤S14113,采用第一计算结果与参考距离值的比值得到第二计算结果;将第二计算结果与权重值进行乘法运算得到第三计算结果,并对第三计算结果进行取反操作得到第四计算结果,其中,权重值为0至1之间的变量;
步骤S14114,将第四计算结果与预设衰减系数进行乘法运算得到第五计算结果,再对第五计算结果进行平方运算,得到衰减值。
计算衰减值的过程是在攻击对象模型自身空间内完成的。首先,根据攻击对象模型的自身属性(包括但不限于:长、宽、高、顶点色),获取模型的包围盒中心到部分或全部对象模型中每个模型顶点位置之间的参考距离值,例如:假设包围盒的形状为球体,那么参考距离值可以理解为包围住攻击对象模型的最小球体半径。鉴于本发明实施例所涉及的游戏场景被划分为多个长为5米、宽为5米以及高为3.5米的长方体结构,因此,优选采用包围球半径作为参考距离值。其次,采用每个模型顶点位置与震源位置进行差值运算,并将差值结果与参考距离值进行除法运算得到线性衰减值。然后,为了确保保证衰减效果的准确性,需要将线性衰减值通过与权重值相乘进而限制在0到1之间。然后,考虑到越接近震源,震动效果越为明显,因此需要对计算得到的线性衰减权重执行取反操作,即,衰减值=1.0-线性衰减权重。最后,将执行取反操作后得到的衰减值与衰减系数(经过重复性实验确定取值为2.7)相乘,再执行平方运算,便可得到实际游戏场景中需要使用的衰减值。
可选地,在步骤S1412中,根据实时获取的时间参数、预设频率参数和预设振幅参数计算部分或全部对象模型中各个模型顶点位置相对于震源的震动值可以包括以下执行步骤:
步骤S14121,对实时获取的时间参数与预设频率参数进行正弦运算,得到第六计算结果;
步骤S14122,将第六计算结果与预设振幅参数进行乘法运算,得到震动值。
鉴于震动属于有规律的往复运动,故而使用到标准的正弦(sin)函数来求取震动值。即,采用如下公式表示震动的表现形式:
震动值=sin(时间×频率)×振幅;
其中,时间可以从引擎中实时获取,频率和振幅可以是传入shader的常量。
可选地,在步骤S1421中,通过衰减值、震动值以及震动方向向量在部分或全部对象模型中各个模型顶点位置添加震动变化量,模拟震动行为可以包括以下执行步骤:
步骤S14211,采用衰减值、震动值以及震动方向向量进行乘法运算得到震动变化量;
步骤S14212,采用部分或全部对象模型中每个模型顶点位置的坐标数据与震动变化量进行加法运算,模拟震动行为。
在获取到部分或全部对象模型中每个模型顶点位置的基础上,通过将上述衰减值、震动值以及震动方向向量进行乘法运算得到的计算结果与每个模型顶点位置进行加法运算,以模拟震动行为。假设方向向量为[0,1,0],则说明震动行为在y轴方向上起效。
可选地,在步骤S14,触发攻击对象模型以及一个或多个邻接对象模型中的部分或全部对象模型模拟震动行为,或者,触发攻击对象模型模拟震动行为的同时,还可以包括以下执行步骤:
步骤S15,加载预设裂纹图与预设权重图,其中,预设裂纹图是对预设纹理重复进行多次归一化处理得到的静态图,预设权重图是对预设色阶进行归一化处理得到的静态图;
步骤S16,根据攻击对象模型的受损程度动态设置权重值;
步骤S17,将权重值与预设权重图进行比较,得到比较后的权重图;
步骤S18,采用比较后的权重图的权重值、攻击对象模型的原始贴图以及震动图进行插值处理,模拟裂纹表现,其中,震动图由原始贴图与预设裂纹图相乘得到。
裂纹表现可以与震动行为配合使用。在整个游戏场景中,可以预先设定地表不受震动行为干涉,而其余场景元素均可以受到游戏玩家的武器攻击而模拟震动行为。另外,并非场景内所有元素均存在裂纹表现,而只有诸如房子的墙壁这类元素才会存在裂纹表现。游戏场景内可以使用裂纹表示该攻击对象模型的当前血量。在上述震动环节,可以基于震源表现为连续震动,但是裂纹表现只会表现当前击打的模型表面。
权重图可以为黑白色阶图,每一块色阶图会作为mask来显示一块裂纹效果。权重图中的色阶变化范围为0-255,在游戏场景中可以对权重图进行归一化处理,将其压缩到0-1之间。引擎传入的权重值可以根据游戏玩家对攻击对象模型的打击程度(即攻击对象模型的受损程度)进行动态设置。通过将动态设置的权重值与权重图进行比较,确定是否需要在攻击对象模型上显示裂纹。具体地,动态设置的权重值需要与权重图中每个经过归一化处理的像素点进行比对。如果权重图中像素点所表示的数值大于或等于权重值所表示的数值,则在对应位置显示1,以表示当前位置需要显示裂纹;如果权重图中像素点所表示的数值小于权重值所表示的数值,则在对应位置显示0,以表示当前位置需要使用原始贴图。由于权重图采用色阶形式加以表现,因此权重的触发是区域出现的。此外,攻击对象模型显示裂纹的多少表示攻击对象模型的血量。例如:权重图可以分成3个色阶,意味着裂纹显示会有节奏的分3次进行显示,进而在血量下降到80%、50%以及30%的不同程度加载裂纹效果,表示掉血状态。权重图的色阶层次可以根据实际场景需要灵活设定。
在优选实施过程中,对预设纹理进行重复处理的次数由攻击对象模型的包围盒的表面积与单位模型表面积确定,其中,单位模型表面积可以由长为5米、宽为5米以及厚为25厘米的模型计算得到。
上述裂纹图可以采用黑白色以便于后期着色,需要四方连续,在确保精度效果和效率情况下,该裂纹图的大小可以采用512×512。
关于攻击对象模型的贴图可以采用2UV模型。在实际制作过程中,第一层UV可以采用原始贴图,为了节省贴图容量,可以对原始贴图中重复出现的贴图单元进行高度复用。第二层UV可以采用裂纹图,其通常用于计算离线的光照,最后会以贴图形式加以保存。由于是光照计算,因此攻击对象模型的每一处光照各不相同,在UV表现上也不会出现重复。即,第二层UV的映射方式可以根据实际需要出现裂纹的位置来确定。
最后,采用原始贴图、震动图以及上述权重值与权重图的比较结果进行插值处理,以呈现出裂纹效果,其中,震动图由原始贴图与预设裂纹图进行乘法运算得到,权重值与权重图的比较结果表现为由0和1构成的编码序列,0所在的位置使用原始贴图,1所在的位置使用震动图。
根据本发明其中一实施例,提供了一种模型震动的模拟装置的实施例,图3是根据本发明其中一实施例的模型震动的模拟装置的结构框图,如图3所示,该装置包括:获取模块10,用于获取攻击对象模型的受击位置;第一模拟模块20,用于在利用碰撞体相交检测方式确定攻击对象模型存在一个或多个邻接对象模型的情况下,将受击位置设置为震源,触发攻击对象模型以及一个或多个邻接对象模型中的部分或全部对象模型模拟震动行为,或者,在利用碰撞体相交检测方式确定攻击对象模型未存在一个或多个邻接对象模型的情况下,将受击位置设置为震源,触发攻击对象模型模拟震动行为。
可选地,获取模块10包括:第一获取单元(图中未示出),用于获取受击位置的世界坐标数据;转换单元(图中未示出),用于利用世界矩阵的反矩阵将世界坐标数据转换为受击位置位于攻击对象模型的本地坐标数据。
可选地,图4是根据本发明其中一优选实施例的模型震动的模拟装置的结构框图,如图4所示,上述装置还包括:判断模块30,用于利用碰撞体相交检测方式判断攻击对象模型的包围盒与一个或多个邻接对象模型中每个邻接对象模型是否存在相交部分;确定模块40,用于如果存在相交部分,则确定攻击对象模型存在一个或多个邻接对象模型;如果未存在相交部分,则确定攻击对象模型未存在一个或多个邻接对象模型。
可选地,第一模拟模块20包括:第二获取单元,用于根据本地坐标数据和攻击对象模型与一个或多个邻接对象模型之间的邻接关系获取与震源关联的震动信息;模拟单元,用于采用震动信息在部分或全部对象模型中各个模型顶点位置添加震动变化量,模拟震动行为。
可选地,第二获取单元(图中未示出)包括:第一计算子单元(图中未示出),用于根据本地坐标数据和预设邻接关系计算部分或全部对象模型中各个模型顶点位置相对于震源的衰减值;第二计算子单元(图中未示出),用于根据实时获取的时间参数、预设频率参数和预设振幅参数计算部分或全部对象模型中各个模型顶点位置相对于震源的震动值;确定子单元(图中未示出),用于根据预设规则(例如:利用游戏视角向震源发出的射线方向)确定震动方向向量;模拟单元(图中未示出),用于通过衰减值、震动值以及震动方向向量在部分或全部对象模型中各个模型顶点位置添加震动变化量,模拟震动行为,其中,震动变化量由衰减值、震动值以及震动方向向量计算得到。
可选地,第一计算子单元(图中未示出),用于采用部分或全部对象模型中每个模型顶点位置的坐标数据与震源的坐标数据进行减法运算,得到第一计算结果;按照部分或全部对象模型中每个对象模型的包围盒自身属性确定每个模型顶点位置与震源之间的参考距离值;采用第一计算结果与参考距离值的比值得到第二计算结果;将第二计算结果与权重值进行乘法运算得到第三计算结果,并对第三计算结果进行取反操作得到第四计算结果,其中,权重值为0至1之间的变量;以及将第四计算结果与预设衰减系数进行乘法运算得到第五计算结果,再对第五计算结果进行平方运算,得到衰减值。
可选地,第二计算子单元(图中未示出),用于对实时获取的时间参数与预设频率参数进行正弦运算,得到第六计算结果;以及将第六计算结果与预设振幅参数进行乘法运算,得到震动值。
可选地,模拟单元(图中未示出)包括:第三计算子单元(图中未示出),用于采用衰减值、震动值以及震动方向向量进行乘法运算得到震动变化量;第四计算子单元(图中未示出),用于采用部分或全部对象模型中每个模型顶点位置的坐标数据与震动变化量进行加法运算,模拟震动行为。
可选地,如图4所示,上述装置还包括:加载模块50,用于加载预设裂纹图与预设权重图,其中,预设裂纹图是对预设纹理重复进行多次归一化处理得到的静态图,预设权重图是对预设色阶进行归一化处理得到的静态图;设置模块60,用于根据攻击对象模型的受损程度动态设置权重值;比较模块70,用于将权重值与预设权重图进行比较,得到比较后的权重图;第二模拟模块80,用于采用比较后的权重图的权重值、攻击对象模型的原始贴图以及震动图进行插值处理,模拟裂纹表现,其中,震动图由原始贴图与预设裂纹图相乘得到。
可选地,对预设纹理进行重复处理的次数由攻击对象模型的包围盒的表面积与单位模型表面积确定。
根据本发明其中一实施例,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述模型震动的模拟方法。上述存储介质可以包括但不限于:U盘、只读存储器(ROM)、随机存取存储器(RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
根据本发明其中一实施例,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述模型震动的模拟方法。上述处理器可以包括但不限于:微处理器(MCU)或可编程逻辑器件(FPGA)等的处理装置。
根据本发明其中一实施例,还提供了一种终端,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序用于执行上述模型震动的模拟方法。在一些实施例中,上述终端可以是智能手机(例如:Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,简称为MID)、PAD等终端设备。上述显示装置可以是触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与终端的用户界面进行交互。此外,上述终端还可以包括:输入/输出接口(I/O接口)、通用串行总线(USB)端口、网络接口、电源和/或相机。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (23)

1.一种模型震动的模拟方法,其特征在于,包括:
获取攻击对象模型的受击位置;
利用碰撞体相交检测方式判断所述攻击对象模型的包围盒与一个或多个邻接对象模型中每个邻接对象模型是否存在相交部分;如果存在所述相交部分,则确定所述攻击对象模型存在所述一个或多个邻接对象模型;如果未存在所述相交部分,则确定所述攻击对象模型未存在所述一个或多个邻接对象模型;
在确定所述攻击对象模型存在一个或多个邻接对象模型的情况下,将所述受击位置设置为震源,触发所述攻击对象模型以及所述一个或多个邻接对象模型中的部分或全部对象模型模拟震动行为;在确定所述攻击对象模型未存在一个或多个邻接对象模型的情况下,将所述受击位置设置为震源,触发所述攻击对象模型模拟震动行为。
2.根据权利要求1所述的方法,其特征在于,获取所述攻击对象模型的所述受击位置包括:
获取所述受击位置的世界坐标数据;
利用世界矩阵的反矩阵将所述世界坐标数据转换为所述受击位置位于所述攻击对象模型的本地坐标数据。
3.根据权利要求2所述的方法,其特征在于,触发所述攻击对象模型以及所述一个或多个邻接对象模型中的部分或全部对象模型模拟震动行为包括:
根据所述本地坐标数据和所述攻击对象模型与所述一个或多个邻接对象模型之间的邻接关系获取与所述震源关联的震动信息;
采用所述震动信息在所述部分或全部对象模型中各个模型顶点位置添加震动变化量,模拟震动行为。
4.根据权利要求3所述的方法,其特征在于,
根据所述本地坐标数据和预设邻接关系获取所述震动信息包括:
根据所述本地坐标数据和所述预设邻接关系计算所述部分或全部对象模型中各个模型顶点位置相对于所述震源的衰减值;
根据实时获取的时间参数、预设频率参数和预设振幅参数计算所述部分或全部对象模型中各个模型顶点位置相对于所述震源的震动值;
根据预设规则确定震动方向向量;
采用所述震动信息在所述部分或全部顶点位置添加震动变化量包括:
通过所述衰减值、所述震动值以及所述震动方向向量在所述部分或全部对象模型中各个模型顶点位置添加震动变化量,模拟所述震动行为。
5.根据权利要求4所述的方法,其特征在于,根据所述预设规则确定所述震动方向向量包括:
利用游戏视角向所述震源发出的射线方向确定所述震动方向向量。
6.根据权利要求4所述的方法,其特征在于,根据所述本地坐标数据和所述预设邻接关系计算所述部分或全部对象模型中各个模型顶点位置相对于所述衰减值包括:
采用所述部分或全部对象模型中每个模型顶点位置的坐标数据与所述震源的坐标数据进行减法运算,得到第一计算结果;
按照所述部分或全部对象模型中每个对象模型的包围盒自身属性确定每个模型顶点位置与所述震源之间的参考距离值;
采用所述第一计算结果与所述参考距离值的比值得到第二计算结果;
将所述第二计算结果与权重值进行乘法运算得到第三计算结果,并对所述第三计算结果进行取反操作得到第四计算结果,其中,所述权重值为0至1之间的变量;
将所述第四计算结果与预设衰减系数进行乘法运算得到第五计算结果,再对所述第五计算结果进行平方运算,得到所述衰减值。
7.根据权利要求4所述的方法,其特征在于,根据所述实时获取的时间参数、所述预设频率参数和所述预设振幅参数计算所述部分或全部对象模型中各个模型顶点位置相对于所述震动值包括:
对所述实时获取的时间参数与所述预设频率参数进行正弦运算,得到第六计算结果;
将所述第六计算结果与预设振幅参数进行乘法运算,得到所述震动值。
8.根据权利要求4所述的方法,其特征在于,通过所述衰减值、所述震动值以及所述震动方向向量在所述部分或全部对象模型中各个模型顶点位置添加震动变化量,模拟所述震动行为包括:
采用所述衰减值、所述震动值以及所述震动方向向量进行乘法运算得到所述震动变化量;
采用所述部分或全部对象模型中每个模型顶点位置的坐标数据与所述震动变化量进行加法运算,模拟所述震动行为。
9.根据权利要求1所述的方法,其特征在于,在触发所述攻击对象模型以及所述一个或多个邻接对象模型中的部分或全部对象模型模拟震动行为,或者,触发所述攻击对象模型模拟震动行为的同时,还包括:
加载预设裂纹图与预设权重图,其中,所述预设裂纹图是对预设纹理重复进行多次归一化处理得到的静态图,所述预设权重图是对预设色阶进行归一化处理得到的静态图;
根据所述攻击对象模型的受损程度动态设置权重值;
将所述权重值与所述预设权重图进行比较,得到比较后的权重图;
采用所述比较后的权重图的权重值、所述攻击对象模型的原始贴图以及震动图进行插值处理,模拟裂纹表现,其中,所述震动图由所述原始贴图与所述预设裂纹图相乘得到。
10.根据权利要求9所述的方法,其特征在于,对所述预设纹理进行重复处理的次数由所述攻击对象模型的包围盒的表面积与单位模型表面积确定。
11.一种模型震动的模拟装置,其特征在于,包括:
获取模块,用于获取攻击对象模型的受击位置;
判断模块,用于利用碰撞体相交检测方式判断所述攻击对象模型的包围盒与一个或多个邻接对象模型中每个邻接对象模型是否存在相交部分;
确定模块,用于如果存在所述相交部分,则确定所述攻击对象模型存在所述一个或多个邻接对象模型;如果未存在所述相交部分,则确定所述攻击对象模型未存在所述一个或多个邻接对象模型;
第一模拟模块,用于在确定所述攻击对象模型存在一个或多个邻接对象模型的情况下,将所述受击位置设置为震源,触发所述攻击对象模型以及所述一个或多个邻接对象模型中的部分或全部对象模型模拟震动行为;在确定所述攻击对象模型未存在一个或多个邻接对象模型的情况下,将所述受击位置设置为震源,触发所述攻击对象模型模拟震动行为。
12.根据权利要求11所述的装置,其特征在于,所述获取模块包括:
第一获取单元,用于获取所述受击位置的世界坐标数据;
转换单元,用于利用世界矩阵的反矩阵将所述世界坐标数据转换为所述受击位置位于所述攻击对象模型的本地坐标数据。
13.根据权利要求12所述的装置,其特征在于,所述第一模拟模块包括:
第二获取单元,用于根据所述本地坐标数据和所述攻击对象模型与所述一个或多个邻接对象模型之间的邻接关系获取与所述震源关联的震动信息;
模拟单元,用于采用所述震动信息在所述部分或全部对象模型中各个模型顶点位置添加震动变化量,模拟震动行为。
14.根据权利要求13所述的装置,其特征在于,
所述第二获取单元包括:
第一计算子单元,用于根据所述本地坐标数据和预设邻接关系计算所述部分或全部对象模型中各个模型顶点位置相对于所述震源的衰减值;
第二计算子单元,用于根据实时获取的时间参数、预设频率参数和预设振幅参数计算所述部分或全部对象模型中各个模型顶点位置相对于所述震源的震动值;
确定子单元,用于根据预设规则确定震动方向向量;
所述模拟单元,用于通过所述衰减值、所述震动值以及所述震动方向向量在所述部分或全部对象模型中各个模型顶点位置添加震动变化量,模拟所述震动行为。
15.根据权利要求14所述的装置,其特征在于,确定子单元,用于利用游戏视角向所述震源发出的射线方向确定所述震动方向向量。
16.根据权利要求14所述的装置,其特征在于,所述第一计算子单元,用于采用所述部分或全部对象模型中每个模型顶点位置的坐标数据与所述震源的坐标数据进行减法运算,得到第一计算结果;按照所述部分或全部对象模型中每个对象模型的包围盒自身属性确定每个模型顶点位置与所述震源之间的参考距离值;采用所述第一计算结果与所述参考距离值的比值得到第二计算结果;将所述第二计算结果与权重值进行乘法运算得到第三计算结果,并对所述第三计算结果进行取反操作得到第四计算结果,其中,所述权重值为0至1之间的变量;以及将所述第四计算结果与预设衰减系数进行乘法运算得到第五计算结果,再对所述第五计算结果进行平方运算,得到所述衰减值。
17.根据权利要求14所述的装置,其特征在于,所述第二计算子单元,用于对所述实时获取的时间参数与所述预设频率参数进行正弦运算,得到第六计算结果;以及将所述第六计算结果与预设振幅参数进行乘法运算,得到所述震动值。
18.根据权利要求14所述的装置,其特征在于,所述模拟单元包括:
第三计算子单元,用于采用所述衰减值、所述震动值以及所述震动方向向量进行乘法运算得到所述震动变化量;
第四计算子单元,用于采用所述部分或全部对象模型中每个模型顶点位置的坐标数据与所述震动变化量进行加法运算,模拟所述震动行为。
19.根据权利要求11所述的装置,其特征在于,所述装置还包括:
加载模块,用于加载预设裂纹图与预设权重图,其中,所述预设裂纹图是对预设纹理重复进行多次归一化处理得到的静态图,所述预设权重图是对预设色阶进行归一化处理得到的静态图;
设置模块,用于根据所述攻击对象模型的受损程度动态设置权重值;
比较模块,用于将所述权重值与所述预设权重图进行比较,得到比较后的权重图;
第二模拟模块,用于采用所述比较后的权重图的权重值、所述攻击对象模型的原始贴图以及震动图进行插值处理,模拟裂纹表现,其中,所述震动图由所述原始贴图与所述预设裂纹图相乘得到。
20.根据权利要求19所述的装置,其特征在于,对所述预设纹理进行重复处理的次数由所述攻击对象模型的包围盒的表面积与单位模型表面积确定。
21.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至10中任意一项所述的模型震动的模拟方法。
22.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至10中任意一项所述的模型震动的模拟方法。
23.一种终端,其特征在于,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序用于执行权利要求1至10中任意一项所述的模型震动的模拟方法。
CN201810094852.XA 2018-01-31 2018-01-31 模型震动的模拟方法、装置、存储介质、处理器及终端 Active CN108295471B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810094852.XA CN108295471B (zh) 2018-01-31 2018-01-31 模型震动的模拟方法、装置、存储介质、处理器及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810094852.XA CN108295471B (zh) 2018-01-31 2018-01-31 模型震动的模拟方法、装置、存储介质、处理器及终端

Publications (2)

Publication Number Publication Date
CN108295471A CN108295471A (zh) 2018-07-20
CN108295471B true CN108295471B (zh) 2021-01-26

Family

ID=62867283

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810094852.XA Active CN108295471B (zh) 2018-01-31 2018-01-31 模型震动的模拟方法、装置、存储介质、处理器及终端

Country Status (1)

Country Link
CN (1) CN108295471B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109745702B (zh) * 2018-12-28 2022-04-22 超级魔方(北京)科技有限公司 一种信息提示方法及装置
CN110075523B (zh) * 2019-04-30 2020-04-17 网易(杭州)网络有限公司 动作生成方法、装置、电子设备和计算机可读介质
CN111330278B (zh) * 2020-02-11 2021-08-06 腾讯科技(深圳)有限公司 基于虚拟环境的动画播放方法、装置、设备及介质
CN111773698A (zh) * 2020-07-13 2020-10-16 网易(杭州)网络有限公司 游戏信息的显示方法、装置、电子设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09262370A (ja) * 1996-03-29 1997-10-07 Sega Enterp Ltd 射撃ゲーム方法及び装置
CN102682470B (zh) * 2012-04-25 2014-12-17 北京农业信息技术研究中心 基于植株几何形态特征的碰撞检测方法
CN105396287B (zh) * 2015-12-23 2018-08-03 北京联联看科技有限公司 台球游戏控制方法及系统
CN106055749A (zh) * 2016-05-20 2016-10-26 哈尔滨工业大学(威海) 一种提高含间隙连杆机构运动稳定性的方法

Also Published As

Publication number Publication date
CN108295471A (zh) 2018-07-20

Similar Documents

Publication Publication Date Title
CN108295471B (zh) 模型震动的模拟方法、装置、存储介质、处理器及终端
US8803879B1 (en) Omnidirectional shadow texture mapping
CN114419240B (zh) 光照渲染方法、装置、计算机设备和存储介质
CN112915542B (zh) 一种碰撞数据处理方法、装置、计算机设备及存储介质
WO2021238870A1 (zh) 信息显示方法、装置、设备及存储介质
CN111589148A (zh) 用户界面的显示方法、装置、终端及存储介质
CN113559504A (zh) 信息处理方法、装置、存储介质及电子设备
CN112184873A (zh) 分形图形创建方法、装置、电子设备和存储介质
CN108176052B (zh) 模型建造的模拟方法、装置、存储介质、处理器及终端
CN110801629B (zh) 虚拟对象生命值提示图形的显示方法、装置、终端及介质
Neubert et al. Improved model‐and view‐dependent pruning of large botanical scenes
CN115082607A (zh) 虚拟角色头发渲染方法、装置、电子设备和存储介质
US20220032188A1 (en) Method for selecting virtual objects, apparatus, terminal and storage medium
Kolivand et al. An overview on base real-time shadow techniques in virtual environments
JP5916764B2 (ja) 仮想環境における隠蔽の推定方法
Belyaev Real-time simulation of water surface
CN111265874B (zh) 游戏中目标物的建模方法、装置、设备及存储介质
CN111265871A (zh) 虚拟对象的控制方法及装置、设备、存储介质
US9830408B1 (en) System and method for evaluating the performance of a weapon system
JP5848071B2 (ja) 均質な媒質中の光の散乱を推定する方法
CN117504280A (zh) 碎片效果的渲染方法、装置、设备及存储介质
CN116617658B (zh) 一种图像渲染方法及相关装置
CN115671748A (zh) 武器命中处理方法、装置、设备及存储介质
CN115810077A (zh) 一种虚拟对象渲染方法、装置、计算机设备和存储介质
CN116115997A (zh) 体积组件的光照渲染方法和装置

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