CN105635806B - 群体运动场景的渲染方法 - Google Patents

群体运动场景的渲染方法 Download PDF

Info

Publication number
CN105635806B
CN105635806B CN201511000924.2A CN201511000924A CN105635806B CN 105635806 B CN105635806 B CN 105635806B CN 201511000924 A CN201511000924 A CN 201511000924A CN 105635806 B CN105635806 B CN 105635806B
Authority
CN
China
Prior art keywords
moving objects
movement
frame
pos
next frame
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
CN201511000924.2A
Other languages
English (en)
Other versions
CN105635806A (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 Pixel Software Technology Co Ltd
Original Assignee
Beijing Pixel Software 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 Pixel Software Technology Co Ltd filed Critical Beijing Pixel Software Technology Co Ltd
Priority to CN201511000924.2A priority Critical patent/CN105635806B/zh
Publication of CN105635806A publication Critical patent/CN105635806A/zh
Application granted granted Critical
Publication of CN105635806B publication Critical patent/CN105635806B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44012Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请公开了一种群体运动场景的渲染方法,包括:对于每一帧,按照内聚规则和对准规则,确定该帧中参与群体运动的每个运动对象在下一帧的运动属性,所述运动属性包括位置信息和运动速度;当需要渲染所述下一帧时,根据所述运动属性进行相应的场景渲染。采用本发明可以实现群体运动规则性的渲染效果。

Description

群体运动场景的渲染方法
技术领域
本发明涉及计算机应用技术,特别是涉及一种群体运动场景的渲染方法。
背景技术
目前,人工智能(AI)是实现游戏系统的重要技术手段之一,高质量的游戏AI已经是和图形、或声音一样,成为游戏设计过程中极为重要的一部分。AI在计算机上实现有两种不同的方式:一种是工程学方式,该方式不需要考虑所用方法是否与人或动物机体所使用的方法相同,如文字识别、电脑下棋;另一种是模拟方式,该方式不仅要看效果,还要求实现方法和人类或生物机体所用方法相同或类似。
群体动画技术是游戏系统中经常用来实现AI生物模拟的技术,例如“红色警戒”、“星际争霸”等大规模战争场面、鸟群模拟、人流模拟等。对于群体运动场景的模拟,如鸟群飞行位置的模拟,比较成熟的技术手段是利用游戏引擎中粒子系统来实现。具体而言,是创建一个例子发射器,设置运动区域Volume体积,设置发射速率,选择粒子最大数量,随机产生粒子,创建粒子动画,使得粒子不断地来回移动,创建粒子替代物为一运动生物的模型,则实现相应生物的群体运动场景的模拟渲染,例如创建粒子替代物为鸟模型,则会实现鸟群运动的模拟效果。
上述利用粒子系统实现的群体运动场景的渲染方法,一般是基于CPU运算的粒子属性动态更新原理,在动画中的每一帧,对每一个粒子的属性(坐标,速度,加速度,生命值等)进行一次循环遍历更新,由于更新采用串行的方式逐个进行的,因此,每一帧的更新都会产生较多的时间开销。因此,不可避免地会影响运动模拟效果的流畅性。另一方面,基于常规粒子系统的物理模型,每一个粒子的运动方向随机,相邻粒子之间的物理属性没有关联约束,或是很弱,位置杂乱无章,因此,也无法实现具有一定群体运动方向的运动模拟效果。
由此可见,现有的群体运动场景的渲染方法存在时间开销大且个体运动位置杂乱无章的问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种群体运动场景的渲染方法,可以实现群体运动规则性的渲染效果。
为了达到上述目的,本发明提出的技术方案为:
一种群体运动场景的渲染方法,包括:
a、对于每一帧,按照内聚规则和对准规则,确定该帧中参与群体运动的每个运动对象在下一帧的运动属性,所述运动属性包括位置信息和运动速度;
b、当需要渲染所述下一帧时,根据所述运动属性进行相应的场景渲染。
综上所述,本发明提出的群体运动场景的渲染方法,通过按照内聚规则和对准规则,来确定每个运动对象在下一帧的运动属性,可以对群体运动方向进行控制,使其具有一定的规则性,从而提高场景渲染的智能化水平,更具有真实性。
附图说明
图1为本发明实施例的方法流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
本发明的核心思想是:在每一帧,对其中的每个运动对象,根据内聚规则和对准规则,确定其下一帧的运动属性,以确保群体运动的规则性
图1为本发明实施例的方法流程示意图,如图1所示,该实施例主要包括:
步骤101、对于每一帧,按照内聚规则和对准规则,确定该帧中参与群体运动的每个运动对象在下一帧的运动属性。
所述运动属性包括位置信息和运动速度。
所述内聚规则为尽量朝邻近伙伴中心移动。
所述对准规则为尽量与邻近运动对象的平均方向一致。
本步骤,通过按照内聚规则和对准规则,确定群体运动中的各运动对象在下一帧的运动属性,可以实现对运动对象运动轨迹的控制,从而可以确保群体运动的规则性,避免群体运动中个体运动位置杂乱无章的问题。
步骤102、当需要渲染所述下一帧时,根据所述运动属性进行相应的场景渲染。
本步骤中,将根据上一帧确定出的运动属性进行场景渲染,由于运动属性的获得是基于内聚规则和对准规则得到的,因此可以达到规则性运动的渲染效果。本步骤具体的渲染方法为本领域人员所掌握,在此不再赘述。
较佳地,为了有效提高群体运动场景的渲染效率、使场景渲染更流畅,步骤101中可以利用通用图形处理器(GPGPU)技术的强大并行计算能力,来实现每一帧运动属性的快速计算和更新。即,在每一帧,可以利用GPGPU,采用并行处理的方式,分别确定每个所述运动对象在下一帧的运动属性。具体而言,可以通过OpenCL平台,利用GPGPU的并行计算能力,为每个运动对象分配对应的“工作组”、“工作项”,用于对该运动对象的运动属性进行更新,从而可以实现运动对象的运动位置和方向并发计算、快速更新。
具体地,可以采用下述方法确定每个所述运动对象i在下一帧的运动属性:
步骤x1、根据当前帧中本运动对象i的位置以及附近预设范围内的其他运动对象的位置,计算出满足内聚规则的第一运动方向Va。
本步骤中,将考虑内聚规则来确定下一帧的运动方向,使得运动对象在下一帧尽可能的向邻近的其他运动对象中心移动。
所述预设范围的区域大小可由本领域技术人员根据运动群体的实际情况,如群体规模等因素,设置合适范围。
较佳地,本步骤可以采用下述方法实现:
步骤x11、按照nearPos=(pos0+….+posm+....+posM)/M,计算所述附近预设范围内的其他运动对象的平均位置nearPos。
其中,posm为所述附近预设范围内的第m个运动对象的位置,M为所述附近预设范围内的其他运动对象的数量。
步骤x12、利用所述nearPos,按照Va=(nearPos-posi)/|nearPos-posi|;计算运动对象i的所述第一运动方向Va。
其中,posi为运动对象i在当前帧的位置。上述位置均为失量,||为求模运算符号。本步骤得到的第一运动方向Va是一个单位向量失量。
步骤x2、根据当前帧中本运动对象i的运动速度以及所述附近预设范围内的其他运动对象的运动速度,计算出满足对准规则的第二运动方向Vb。
本步骤,将考虑对准规则计算第二运动方向,以使得运动对象在下一帧尽可能的与邻近的其他运动对象的平均方向一致。较佳地,可以采用下述方法实现:
按照计算所述第二运动方向Vb;其 中,velm为所述附近预设范围内的第m个运动对象的运动速度;M为所述附近预设范围内的 其他运动对象的数量。
上述公式中,velm/|velm|将为附近预设范围内的第m个运动对象的运动方向,为所述附近预设范围内的所有运动对象的平均方向失量,对其进行单位化处理则得到相应的单位失量。
步骤x3、利用所述第一运动方向Va、所述第二运动方向Vb和预设的调整系数α,得到本运动对象i在下一帧的运动属性,0≤α≤1。
本步骤,用于根据步骤x1、x2中分别根据内聚规则和对准规则得到的Va和Vb进行处理,得到运动对象i在下一帧的运动属性。
所述调整系数α,用于配置内聚规则和对准规则的对运动方向的影响程度,该值在0~1范围内,本领域技术人员可以根据实际需要进行设置。
较佳地,本步骤可以采用下述方法实现:
步骤x31、按照veli'=Va×α+Vb×(1-α),计算本运动对象i在下一帧的运动方向。
步骤x32、按照Vi'=veli'×|Vi|,计算本运动对象i在下一帧的运动速度Vi',Vi为运动对象i在当前帧的运动速度Vi。
这里需要说明的是,本步骤仅给出一个简单的匀速率运动的示例,在实际应用中,还可以结合预先为运动对象配置的加速度来计算下一帧的运动速度,使运动对象的运动具有一定加速度,具体方法为本领域技术人员所掌握,在此不再赘述。
步骤x33、按照posi'=Vi×△t+posi,计算本运动对象i在下一帧的位置,所述△t为当前帧和下一帧的时间间隔。
这里需要说明的是,本步骤仅给出一个简单匀速率运动的示例,在实际应用中,还可以结合预先为运动对象配置的加速度来计算下一帧的位置,在此不再赘述。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种群体运动场景的渲染方法,其特征在于,包括:
a、对于每一帧,按照内聚规则和对准规则,确定该帧中参与群体运动的每个运动对象在下一帧的运动属性,所述运动属性包括位置信息和运动速度;
b、当需要渲染所述下一帧时,根据所述运动属性进行相应的场景渲染;
其中,步骤a中每个所述运动对象i在下一帧的运动属性的确定包括:x1、根据当前帧中本运动对象i的位置以及附近预设范围内的其他运动对象的位置,计算出满足内聚规则的第一运动方向Va;所述内聚规则为尽量朝邻近伙伴中心移动;x2、根据当前帧中本运动对象i的运动速度以及附近预设范围内的其他运动对象的运动速度,计算出满足对准规则的第二运动方向Vb;所述对准规则为尽量与邻近运动对象的平均方向一致;x3、利用所述第一运动方向Va、所述第二运动方向Vb和预设的调整系数α,得到本运动对象i在下一帧的运动属性,0≤α≤1。
2.根据权利要求1所述的方法,其特征在于,步骤a中,在每一帧利用通用图形处理器GPGPU,采用并行处理的方式,分别确定每个所述运动对象在下一帧的运动属性。
3.根据权利要求1所述的方法,其特征在于,所述步骤x1包括:
按照nearPos=(pos0+….+posm+....+posM)/M,计算所述附近预设范围内的其他运动对象的平均位置nearPos;其中,posm为所述附近预设范围内的第m个运动对象的位置,M为所述附近预设范围内的其他运动对象的数量;
利用所述nearPos,按照Va=(nearPos-posi)/|nearPos-posi|;计算运动对象i的所述第一运动方向Va,其中,posi为运动对象i在当前帧的位置。
4.根据权利要求1所述的方法,其特征在于,所述步骤x2包括:
按照计算所述第二运动方向Vb;其中,velm为所述附近预设范围内的第m个运动对象的运动速度;M为所述附近预设范围内的其他运动对象的数量。
5.根据权利要求1所述的方法,其特征在于,所述步骤x3包括:
按照veli'=Va×α+Vb×(1-α),计算本运动对象i在下一帧的运动方向;
按照Vi'=veli'×|Vi|,计算本运动对象i在下一帧的运动速度Vi',Vi为运动对象i在当前帧的运动速度Vi;
按照posi'=Vi×△t+posi,计算本运动对象i在下一帧的位置,所述△t为当前帧和下一帧的时间间隔,posi为运动对象i在当前帧的位置。
CN201511000924.2A 2015-12-28 2015-12-28 群体运动场景的渲染方法 Active CN105635806B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511000924.2A CN105635806B (zh) 2015-12-28 2015-12-28 群体运动场景的渲染方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511000924.2A CN105635806B (zh) 2015-12-28 2015-12-28 群体运动场景的渲染方法

Publications (2)

Publication Number Publication Date
CN105635806A CN105635806A (zh) 2016-06-01
CN105635806B true CN105635806B (zh) 2018-12-28

Family

ID=56050227

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511000924.2A Active CN105635806B (zh) 2015-12-28 2015-12-28 群体运动场景的渲染方法

Country Status (1)

Country Link
CN (1) CN105635806B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106385591B (zh) * 2016-10-17 2020-05-15 腾讯科技(上海)有限公司 视频处理方法及视频处理装置
CN107609631B (zh) * 2017-08-03 2020-08-18 福建省天晴互动娱乐有限公司 Unity中实现群集AI的方法、存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1753031A (zh) * 2005-11-10 2006-03-29 北京航空航天大学 基于gpu的粒子系统
CN101188025A (zh) * 2007-11-30 2008-05-28 电子科技大学 一种高效实时的群体动画框架
CN101344969A (zh) * 2008-08-20 2009-01-14 浙江大学 一种生成群组动画的模糊控制方法
CN102208111A (zh) * 2011-06-09 2011-10-05 河海大学 群体动画运动控制系统及方法
CN102693549A (zh) * 2011-03-25 2012-09-26 上海日浦信息技术有限公司 一种虚拟人群运动的三维可视化方法
CN102722859A (zh) * 2012-05-31 2012-10-10 北京像素软件科技股份有限公司 一种计算机仿真场景渲染方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8149242B2 (en) * 2006-11-10 2012-04-03 Sony Computer Entertainment Inc. Graphics processing apparatus, graphics library module and graphics processing method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1753031A (zh) * 2005-11-10 2006-03-29 北京航空航天大学 基于gpu的粒子系统
CN101188025A (zh) * 2007-11-30 2008-05-28 电子科技大学 一种高效实时的群体动画框架
CN101344969A (zh) * 2008-08-20 2009-01-14 浙江大学 一种生成群组动画的模糊控制方法
CN102693549A (zh) * 2011-03-25 2012-09-26 上海日浦信息技术有限公司 一种虚拟人群运动的三维可视化方法
CN102208111A (zh) * 2011-06-09 2011-10-05 河海大学 群体动画运动控制系统及方法
CN102722859A (zh) * 2012-05-31 2012-10-10 北京像素软件科技股份有限公司 一种计算机仿真场景渲染方法

Also Published As

Publication number Publication date
CN105635806A (zh) 2016-06-01

Similar Documents

Publication Publication Date Title
US10262447B2 (en) Systems and methods for virtual entity animation
KR101640904B1 (ko) 온라인 게이밍 경험을 제공하기 위한 컴퓨터 기반 방법, 기계 판독가능 비일시적 매체 및 서버 시스템
US8082133B2 (en) Terrain paging during a distributed simulation involving multiple objects
Husselmann et al. Simulating species interactions and complex emergence in multiple flocks of boids with gpus
CN108090939B (zh) 基于集群协同算法与gpu优化渲染的海底生物集群模拟方法
CN105635806B (zh) 群体运动场景的渲染方法
CN110781446A (zh) 海洋中尺度涡旋拉格朗日平均涡度偏差快速计算方法
Tarras et al. Collective behavior of interacting particles: radius-dependent phase transition
Iwamoto et al. Multi‐layer Lattice Model for Real‐Time Dynamic Character Deformation
Erra et al. An efficient GPU implementation for large scale individual-based simulation of collective behavior
CN104361625A (zh) 一种基于射线原理的带边界保留的云数据精简算法
CN104657333B (zh) 基于gpu的动态二维矢量场流线可视化算法
Drone Real-time particle systems on the GPU in dynamic environments
WO2010012768A1 (en) Method and system for adjusting a virtual display device
Buschmann et al. Hardware-accelerated attribute mapping for interactive visualization of complex 3d trajectories
Majid et al. GPU-based Optimization of Pilgrim Simulation for Hajj and Umrah Rituals.
US9111391B2 (en) Image generating device, image generating method, and non-transitory information storage medium
JP2017523497A (ja) 縮小ピクセルシェーディングのための技術
Yilmaz et al. The virtual marathon: Parallel computing supports crowd simulations
Joselli et al. Techniques for designing GPGPU games
Sánchez-Banderas et al. Real-time Inextensible Hair with Volume and Shape.
Jung et al. Mesh deformations in X3D via CUDA with freeform deformation lattices
Zhao et al. Improved K-DOPs collision detection algorithms based on genetic algorithms
Zhang et al. Fast simulation method for ocean wave base on ocean wave spectrum and improved gerstner model with GPU
US20140104282A1 (en) System and method for animating a body

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant