CN112221150B - 一种虚拟场景中的涟漪仿真方法及装置 - Google Patents

一种虚拟场景中的涟漪仿真方法及装置 Download PDF

Info

Publication number
CN112221150B
CN112221150B CN202011120105.2A CN202011120105A CN112221150B CN 112221150 B CN112221150 B CN 112221150B CN 202011120105 A CN202011120105 A CN 202011120105A CN 112221150 B CN112221150 B CN 112221150B
Authority
CN
China
Prior art keywords
key frame
current key
height offset
ripple
offset data
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
CN202011120105.2A
Other languages
English (en)
Other versions
CN112221150A (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.)
Zhuhai Kingsoft Digital Network Technology Co Ltd
Original Assignee
Zhuhai Kingsoft Digital Network 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 Zhuhai Kingsoft Digital Network Technology Co Ltd filed Critical Zhuhai Kingsoft Digital Network Technology Co Ltd
Priority to CN202011120105.2A priority Critical patent/CN112221150B/zh
Publication of CN112221150A publication Critical patent/CN112221150A/zh
Application granted granted Critical
Publication of CN112221150B publication Critical patent/CN112221150B/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/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • 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
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • 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/6009Methods for processing data by generating or executing the game program for importing or creating game content, e.g. authoring tools during game development, adapting content to different platforms, use of a scripting language to create content
    • 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/6661Methods for processing data by generating or executing the game program for rendering three dimensional images for changing the position of the virtual camera

Landscapes

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

Abstract

本说明书提供一种虚拟场景中的涟漪仿真方法及装置,其中,所述方法包括:获取虚拟对象或跟随所述虚拟对象的虚拟摄像机在虚拟场景中的位置;以所述虚拟对象或所述虚拟摄像机在虚拟场景中的位置为中心,在所述虚拟场景中创建涟漪生成区域并不断渲染出涟漪效果;在所述虚拟对象或所述虚拟摄像机发生运动的情况下,控制所述涟漪生成区域跟随所述虚拟对象或所述虚拟摄像机进行翻转,从而在虚拟场景中不断更新和叠加所述涟漪生成区域。

Description

一种虚拟场景中的涟漪仿真方法及装置
技术领域
本说明书涉及游戏引擎技术领域,特别涉及一种虚拟场景中的涟漪仿真方法及装置、计算设备及计算机可读存储介质。
背景技术
在虚拟场景的绘制过程中,往往需要通过游戏引擎中的着色器(Shader)对虚拟场景进行渲染,以提高虚拟场景的真实性,然而,在涉及到大型的虚拟场景中的制作时,例如在游戏场景中的存在广阔湖面而进行的水面涟漪的绘制,现有技术中的通常采用的技术方案为涟漪效果跟随虚拟对象,但是模拟出来的涟漪效果不仅仿真效果差而且交互性也往往不够,同时,现有技术中用于计算涟漪效果的过程基本来源于一个现有的涟漪样本(Demo),但是采用该涟漪样本的实现过程不适用大型场景的绘制,会极大的增加显卡内存(GPU)的负担。
发明内容
有鉴于此,本说明书实施例提供了一种虚拟场景中的涟漪仿真方法及装置、计算设备及计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种虚拟场景中的涟漪仿真方法,包括:
获取虚拟对象或跟随所述虚拟对象的虚拟摄像机在虚拟场景中的位置;
以所述虚拟对象或所述虚拟摄像机在虚拟场景中的位置为中心,在所述虚拟场景中创建涟漪生成区域并不断渲染出涟漪效果;
在所述虚拟对象或所述虚拟摄像机发生运动的情况下,控制所述涟漪生成区域跟随所述虚拟对象或所述虚拟摄像机进行翻转,从而在虚拟场景中不断更新和叠加所述涟漪生成区域。
根据本说明书实施例的第二方面,提供了一种虚拟场景中的涟漪仿真装置,包括:
位置获取模块,被配置为获取虚拟对象或跟随所述虚拟对象的虚拟摄像机在虚拟场景中的位置;
涟漪生成模块,被配置为以所述虚拟对象或所述虚拟摄像机在虚拟场景中的位置为中心,在所述虚拟场景中创建涟漪生成区域并不断渲染出涟漪效果;
无限涟漪模块,被配置为在所述虚拟对象或所述虚拟摄像机发生运动的情况下,控制所述涟漪生成区域跟随所述虚拟对象或所述虚拟摄像机进行翻转,从而在虚拟场景中不断更新和叠加所述涟漪生成区域。
根据本说明书实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述虚拟场景中的涟漪仿真方法的步骤。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述虚拟场景中的涟漪仿真方法的步骤。
本申请通过构建生成涟漪效果的涟漪生成区域,并将所述生成涟漪效果的涟漪生成区域随着用户的视角进行相对移动并向特定的发散方向循环延伸,形成了无限连续循环的涟漪效果,适用于大型虚拟场景的绘制。
此外,本申请仅采用两个高度偏移图就实现了涟漪效果,减少了高度偏移图的使用量进而减少了对于计算机显存的使用量,使得涟漪效果能够被应用于大型的虚拟场景中。
附图说明
图1是本申请实施例提供的计算设备的结构框图;
图2是本申请实施例提供的虚拟场景中的涟漪仿真方法的流程图;
图3是本申请实施例提供的虚拟场景中的涟漪仿真方法的另一流程图;
图4是本申请实施例提供的虚拟场景中的涟漪仿真方法的另一流程图;
图5是本申请实施例提供的高度差效果示意图;
图6是本申请实施例提供的高度差效果示意图;
图7是本申请实施例提供的无限涟漪的渲染效果示意图;
图8是本申请实施例提供的虚拟场景中的涟漪仿真方法的另一流程图;
图9是本申请实施例提供的高度偏移图数据交换的示意图;
图10是本申请实施例提供的虚拟场景中的涟漪仿真方法的另一流程图;
图11是本申请实施例提供的工作取区域划分单元格的示意图;
图12是本申请实施例提供的虚拟场景中的涟漪仿真方法的另一流程图;
图13是本申请实施例提供的网格单元的翻转过程示意图;
图14是本申请实施例提供的虚拟场景中的涟漪仿真装置的结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。
首先,对本发明一个或多个实施例涉及的名词术语进行解释。
虚拟场景:是应用程序在终端上运行时显示(或提供)的虚拟环境。该虚拟环境可以是对真实世界的仿真环境,也可以是半仿真半虚构的环境,还可以是纯虚构的环境。虚拟场景可以是二维虚拟环境、2.5维虚拟环境和三维虚拟环境中的任意一种,本申请对此不加以限定。
虚拟对象:是指在虚拟环境中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物等,比如:在三维虚拟场景中显示的人物、动物或物品等,虚拟对象是基于动画骨骼技术创建的三维立体模型,每个虚拟对象在三维虚拟场景中具有自身的形状和体积,占据三维虚拟场景中的一部分空间。
力点:指在虚拟场景中生成涟漪效果的初始点,例如将石头落在水面上的落点。
涟漪效果:指虚拟场景中模拟出现实环境中的水面上循环出现的波纹。
在本申请中,提供了一种虚拟场景中的涟漪仿真方法及装置、计算设备及计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本说明书一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
其中,处理器120可以执行图2所示方法中的步骤。图2是示出了根据本申请一实施例的虚拟场景中的涟漪仿真方法的示意性流程图,包括步骤202至步骤206。
步骤202:获取虚拟对象或跟随所述虚拟对象的虚拟摄像机在虚拟场景中的位置。
在本申请的实施例中,在玩家通过本申请的系统或终端进行游戏的过程中,玩家通控制游戏的虚拟场景中的虚拟对象进行移动以实现游戏的各项功能,同时,在虚拟对象进行移动过程中,本申请的系统或终端获取实时获取虚拟对象或跟随所述虚拟对象的虚拟摄像机在虚拟场景中的位置,其中,以第一人称视角的游戏为例,玩家在游戏的过程通常以所述虚拟对象自身的视角出发,通过虚拟对象的虚拟摄像机观察整个虚拟场景,此时,则实时获取所述虚拟对象的虚拟摄像机在虚拟场景中的位置;以第三人称视角的游戏为例,玩家在游戏的过程通常以上帝视角观察虚拟对象以及在屏幕视野范围内整个虚拟场景,此时,则实时获取虚拟对象在虚拟场景中的位置。
步骤204:以所述虚拟对象或所述虚拟摄像机在虚拟场景中的位置为中心,在所述虚拟场景中创建涟漪生成区域并不断渲染出涟漪效果。
在本申请的实施例中,在玩家控制虚拟对象在虚拟场景中移动至可以生成涟漪的某片区域的情况下,例如虚拟的池塘或者湖面,本申请的系统或终端将以所述虚拟对象或所述虚拟摄像机在虚拟场景中的位置为中心,在所述虚拟场景中创建涟漪生成区域并不断渲染出涟漪效果,并使得涟漪效果沿虚拟对象的移动轨迹不间断的生成并保留一定的持续时间,从而形成无限涟漪的效果。
在本申请的实施例中,如图3所示,在所述虚拟场景中创建涟漪生成区域并不断渲染出涟漪效果,包括步骤302至步骤308。
步骤302:在所述涟漪生成区域设置两个高度偏移图,并通过所述两个高度偏移图分别存储当前关键帧对应的力点偏移数据以及所述当前关键帧对应的上一关键帧的高度偏移数据。
在本申请的实施例中,本申请的系统或终端首先在涟漪生成区域内设置两个高度偏移图,其中一个高度偏移图用于存储虚拟对象形成的力点作用在虚拟场景中而在当前正形成的力点偏移数据,例如,玩家控制的虚拟角色在虚拟水面上进行移动的过程中,所述虚拟角色的特定部位在每个关键帧与虚拟水面接触时均会产生一个力点以及力点对应的力点偏移数据;同时,另一个高度偏移图用于存储涟漪效果在当前关键帧对应的上一关键帧的高度偏移数据,例如,虚拟角色在虚拟水面上进行移动的过程中形成水面波纹的涟漪效果。
在本申请的实施例中,在如图4所示,在通过所述两个高度偏移图分别存储相邻两个关键帧对应的高度偏移数据之前,还包括步骤402至步骤406。
步骤402:获取当前关键帧对应的上一关键帧的高度偏移数据。
在本申请的实施例中,本申请的系统或终端在进行涟漪效果的渲染过程中,首先基于高度偏移图获取当前关键帧对应的上一关键帧的高度偏移数据,即涟漪在当前关键帧对应的上一关键帧的水面扩散的高度结果。
步骤404:在所述涟漪生成区域中存在其他虚拟对象产生的至少一个力点的情况下,将当前关键帧中每个所述力点对应的偏移数据进行叠加,得到当前关键帧对应的力点偏移数据。
在本申请的实施例中,在所述涟漪生成区域中存在其他虚拟对象产生的至少一个力点的情况下,本申请的系统或终端将每个力点汇集到一起形成力总结果,并计算出当前关键帧对应的力点偏移数据,例如,在虚拟湖面上站立有大约二十个虚拟角色,并且每个虚拟角色都分布在不同的位置,那么每个虚拟角色都会在虚拟湖面上产生一个分力点,本申请的系统或终端将每个力点汇集到一起,从而在虚拟湖面形成一个集中力点,并以集中力点为中心形成涟漪效果。
应当注意的是,在所述虚拟场景中存在有多个集中力点的情况下,每个集中力点形成涟漪效果是否存在交集不属于本申请的讨论对象。
步骤406:根据当前关键帧对应的上一关键帧的高度偏移数据以及当前关键帧对应的力点偏移数据,计算出当前关键帧对应的高度偏移数据。
在本申请的实施例中,本申请的系统或终端在每个当前帧均根据当前关键帧对应的上一关键帧的高度偏移数据以及当前关键帧对应的力点偏移数据,计算出当前关键帧对应的高度偏移数据,从而得到如图5所示的高度差效果图,用于展示在当前关键帧时刻的高度偏移图所形成的高度差效果。
本申请通过当前关键帧对应的上一关键帧的高度偏移数据以及当前关键帧对应的力点偏移数据,计算出当前关键帧对应的高度偏移数据,从而准确计算出当前关键帧对应的高度偏移数据,还原了高度真实性的涟漪效果。
步骤304:将两个高度偏移图进行混合,得到当前关键帧对应的高度偏移图并存储当前关键帧对应的高度偏移数据。
在本申请的实施例中,本申请的系统或终端根据水面扩散以后的高度结果即当前关键帧对应的高度偏移数据,计算出当前关键帧对应的法线图。具体的,法线是垂直于切平面的向量,在计算法线时需要分别获取当前像素前后左右的高度,从而进行高度梯度的计算,最终得到当前关键帧对应的法线图并形成如图6所示的涟漪法线效果图。
步骤306:根据当前关键帧对应的高度偏移数据确定当前关键帧对应的法线图,并根据所述当前关键帧对应的高度偏移图和法线图共同作用于出涟漪效果的渲染。
在本申请的实施例中,本申请的系统或终端利用当前关键帧对应的高度偏移图和法线图共同用于最后涟漪效果的渲染,从而能够准确体现出类似于水面波纹的动态效果和光照效果等,最终形成如图7所示的水面波纹的涟漪效果,并且该涟漪效果会停留在所述虚拟场景中一段时间,形成无限涟漪。
步骤308:随关键帧对所述两个高度偏移图进行循环迭代,从而不断渲染出涟漪效果。
本申请的虚拟场景中涟漪效果能够根据玩家控制的虚拟角色的生成的不同的力点进行交互生成,通过根据当前关键帧对应的上一关键帧的高度偏移数据以及当前关键帧对应的力点偏移数据,计算出当前关键帧对应的高度偏移数据,并通过对高度偏移图进行循环迭代和混合,形成通过高度偏移图重复利用的涟漪效中间数据生成方式。
在本申请的实施例中,如图8所示,随关键帧对所述两个高度偏移图进行循环迭代,包括步骤802至步骤806。
步骤802:将当前关键帧对应的上一关键帧的高度偏移数据和当前关键帧对应的力点偏移数据,分别存储在其中一个高度偏移图的RG通道和BA通道中。
在本申请的实施例中,如图9所示,本申请的系统或终端在每个关键帧时刻首先获取当前关键帧对应的上一关键帧的高度偏移数据和当前关键帧对应的力点偏移数据,然后分别存储在其中一个高度偏移图的RG通道和BA通道中。
步骤804:将当前关键帧对应的高度偏移数据存储在另一个高度偏移图的RG通道中。
在本申请的实施例中,如图9所示,本申请的系统或终端进一步将每个关键帧对应的高度偏移数据存储在另一个高度偏移图的RG通道中,并保留另一个高度偏移图的BA通道为空。
步骤806:在下一关键帧为当前关键帧的情况下,将存储在另一个高度偏移图的RG通道中当前关键帧对应的高度偏移数据,作为当前关键帧对应的上一关键帧的高度偏移数据。
在本申请的实施例中,如图9所示,本申请的系统或终端将两个高度偏移图跟随关键帧的推移进行迭代,迭代的具体过程为:在当前帧根据上一帧对应的高度偏移数据结合当前帧的力点偏移数据,得到当前帧对应的高度偏移数据,然后在下一帧将所述当前帧对应的高度偏移数据作为“上一帧”的高度偏移数据,结合下一帧的力点偏移数据,得到下一帧对应的高度偏移数据,并循环往复。
在现有技术中,一般需要至少四张UV坐标纹理贴图才能形成完整的模拟交互波,然而,本申请通过利用两张贴图的RGBA通道进行数据存储和数据交换,采用两张贴图就可以实现涟漪效果的绘制,极大的简化了数据的计算过程,同时,本申请的技术方案允许在一定程度内缩小贴图和世界坐标的比例,例如1:8或1:4,从而在保证涟漪效果的前提下,通过减少每张贴图的尺寸进一步缓解了显存的压力。
步骤206:在所述虚拟对象或所述虚拟摄像机发生运动的情况下,控制所述涟漪生成区域跟随所述虚拟对象或所述虚拟摄像机进行翻转,从而在虚拟场景中不断更新和叠加所述涟漪生成区域。
在本申请的实施例中,如图10所示,控制所述涟漪生成区域跟随所述虚拟对象或所述虚拟摄像机进行翻转,包括步骤1002至步骤1004。
步骤1002:将所述涟漪生成区域划分为n×n个网格单元,其中,所述n为大于1的正整数。
在本申请的实施例中,本申请的系统或终端在逻辑控制层将所述涟漪生成区域划分为n×n个网格单元,其中,所述n为大于1的正整数,所述高度偏移图作为一个整体涉及若干个连续的网格单元,并对应所述虚拟场景的世界坐标的某个区域,并在该区域内形成涟漪效果。
在本申请的一个具体的实施例中,如图11所示,本申请的系统或终端在逻辑控制层将所述涟漪生成区域划分为4x4个网格单元,其中,阴影区域表示用于生成涟漪效果的高度偏移图的所在区域,其大小约为3x3个网格单元,即在这9个网格单元所在的区域内不断生成涟漪效果。
步骤1004:在保持位于所述涟漪生成区域的中心区域的网格单元在翻转前后的两个关键帧的世界坐标维持不变的情况下,控制位于所述涟漪生成区域的边缘区域的网格单元跟随所述虚拟对象或所述虚拟摄像机进行翻转。
在本申请的实施例中,由于高度偏移图能渲染出的涟漪效果的范围有限,为了能够在在所述虚拟场景中创造出沿虚拟对象的移动轨迹扩散的无限涟漪效果,就需要不断的修改高度偏移图对应的世界坐标(位置),但是,如果直接修改高度偏移图对应的世界坐标(位置),就会导致关键帧对应的高度偏移数据与世界坐标无法对应,所以在舍弃边缘的情况下,在保持位于所述涟漪生成区域的中心区域的网格单元在翻转前后的两个关键帧的世界坐标维持不变,并控制位于所述涟漪生成区域的边缘区域的网格单元跟随所述虚拟对象或所述虚拟摄像机进行翻转,从而重复利用高度偏移图实现涟漪效果的无限延展。
具体的,如图12所示,保持位于所述涟漪生成区域的中心区域的网格单元在翻转前后的两个关键帧的世界坐标维持不变,包括步骤1202至步骤1206。
步骤1202:为所述n×n个网格单元中的每个网格单元配置特征标识,并根据每个网格单元对应的特征标识生成所述n×n个网格单元对应的索引信息。
步骤1204:根据所述涟漪生成区域的翻转方向,通过所述索引信息确定在当前关键帧下位于所述涟漪生成区域的中心区域的网格单元以及位于所述涟漪生成区域的边缘区域的网格单元。
步骤1206:控制位于所述涟漪生成区域的边缘区域的网格单元按照索引信息的顺序进行翻转。
在本申请的实施例中,在所述涟漪生成区域跟随所述虚拟场景中的虚拟对象或虚拟摄像机进行翻转,通过设置每个网格单元对应的特征标识(ID),从而形成对整个涟漪生成区域内的全部网格单元对应的索引信息,在虚拟场景中的虚拟对象或虚拟摄像机发生移动的情况下,所述涟漪生成区域通过在每个关键帧不断交换索引信息,使得索引信息对应的网格单元进行翻转移动,从而实现不间断改变涟漪生成区域的世界位置,在虚拟场景中留下一连串如图7所示的涟漪效果。
具体的,如图13所示,假设所述涟漪生成区域被划分为3x3个网格单元,编号为0-8号,所述集中力点位于所述涟漪生成区域的中心处即4号网格单元,在所述涟漪生成区域向右侧翻转的过程中,由于涟漪效果至少需要两个关键帧才能完整展现,因此需要保证生成涟漪效果的中间部分的网格单元在至少两个关键帧期间的世界坐标维持不变,即在所述涟漪生成区域向右翻转的情况下,则优先考虑4号网格单元及其附近和右侧的1、2、5、7和8号网格单元保持不变,并将0、3和6号网格单元向右侧翻转,从而实现所述涟漪生成区域的向右翻转。
本申请通过构建生成涟漪效果的涟漪生成区域,并将所述生成涟漪效果的涟漪生成区域随着用户的视角进行相对移动并向特定的发散方向循环延伸,形成了无限连续循环的涟漪效果,适用于大型虚拟场景的绘制,同时,本申请仅采用两个高度偏移图就实现了涟漪效果,减少了高度偏移图的使用量进而减少了对于计算机显存的使用量,使得涟漪效果能够被应用于大型的虚拟场景中。
与上述方法实施例相对应,本说明书还提供了虚拟场景中的涟漪仿真装置实施例,图14示出了本说明书一个实施例的虚拟场景中的涟漪仿真装置的结构示意图。如图14所示,该装置包括:
位置获取模块1401,被配置为获取虚拟对象或跟随所述虚拟对象的虚拟摄像机在虚拟场景中的位置;
涟漪生成模块1402,被配置为以所述虚拟对象或所述虚拟摄像机在虚拟场景中的位置为中心,在所述虚拟场景中创建涟漪生成区域并不断渲染出涟漪效果;
无限涟漪模块1403,被配置为在所述虚拟对象或所述虚拟摄像机发生运动的情况下,控制所述涟漪生成区域跟随所述虚拟对象或所述虚拟摄像机进行翻转,从而在虚拟场景中不断更新和叠加所述涟漪生成区域。
可选的,所述涟漪生成模块1402包括:
高度图配置单元,被配置为在所述涟漪生成区域设置两个高度偏移图,并通过所述两个高度偏移图分别存储当前关键帧对应的力点偏移数据以及所述当前关键帧对应的上一关键帧的高度偏移数据;
高度图混合单元,被配置将两个高度偏移图进行混合,得到当前关键帧对应的高度偏移图并存储当前关键帧对应的高度偏移数据;
法线计算单元,被配置为根据当前关键帧对应的高度偏移数据确定当前关键帧对应的法线图,并根据所述当前关键帧对应的高度偏移图和法线图共同作用于出涟漪效果的渲染;
贴图迭代单元,被配置为随关键帧对所述两个高度偏移图进行循环迭代,从而不断渲染出涟漪效果。
可选的,所述涟漪生成模块1402还包括:
上一帧偏移获取单元,被配置为获取当前关键帧对应的上一关键帧的高度偏移数据;
力点偏移计算单元,被配置为在所述涟漪生成区域中存在其他虚拟对象产生的至少一个力点的情况下,将当前关键帧中每个所述力点对应的偏移数据进行叠加,得到当前关键帧对应的力点偏移数据;
混合偏移计算单元,被配置为根据当前关键帧对应的上一关键帧的高度偏移数据以及当前关键帧对应的力点偏移数据,计算出当前关键帧对应的高度偏移数据。
可选的,所述贴图迭代单元还被配置为:
将当前关键帧对应的上一关键帧的高度偏移数据和当前关键帧对应的力点偏移数据,分别存储在其中一个高度偏移图的RG通道和BA通道中;
将当前关键帧对应的高度偏移数据存储在另一个高度偏移图的RG通道中;
在下一关键帧为当前关键帧的情况下,将存储在另一个高度偏移图的RG通道中当前关键帧对应的高度偏移数据,作为当前关键帧对应的上一关键帧的高度偏移数据。
可选的,所述无限涟漪模块1403包括:
区域划分单元,被配置为将所述涟漪生成区域划分为n×n个网格单元,其中,所述n为大于1的正整数;
区域翻转单元,被配置为在保持位于所述涟漪生成区域的中心区域的网格单元在翻转前后的两个关键帧的世界坐标维持不变的情况下,控制位于所述涟漪生成区域的边缘区域的网格单元跟随所述虚拟对象或所述虚拟摄像机进行翻转。
可选的,所述区域翻转单元还被配置为:
为所述n×n个网格单元中的每个网格单元配置特征标识,并根据每个网格单元对应的特征标识生成所述n×n个网格单元对应的索引信息;
根据所述涟漪生成区域的翻转方向,通过所述索引信息确定在当前关键帧下位于所述涟漪生成区域的中心区域的网格单元以及位于所述涟漪生成区域的边缘区域的网格单元;
控制位于所述涟漪生成区域的边缘区域的网格单元按照索引信息的顺序进行翻转。
本申请通过构建生成涟漪效果的涟漪生成区域,并将所述生成涟漪效果的涟漪生成区域随着用户的视角进行相对移动并向特定的发散方向循环延伸,形成了无限连续循环的涟漪效果,适用于大型虚拟场景的绘制,同时,本申请仅采用两个高度偏移图就实现了涟漪效果,减少了高度偏移图的使用量进而减少了对于计算机显存的使用量,使得涟漪效果能够被应用于大型的虚拟场景中。
需要说明的是,装置权利要求中的各组成部分应当理解为实现该程序流程各步骤或该方法各步骤所必须建立的功能模块,各个功能模块并非实际的功能分割或者分离限定。由这样一组功能模块限定的装置权利要求应当理解为主要通过说明书记载的计算机程序实现该解决方案的功能模块构架,而不应当理解为主要通过硬件方式实现该解决方案的实体装置。
本申请一实施例还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现以下步骤:
获取虚拟对象或跟随所述虚拟对象的虚拟摄像机在虚拟场景中的位置;
以所述虚拟对象或所述虚拟摄像机在虚拟场景中的位置为中心,在所述虚拟场景中创建涟漪生成区域并不断渲染出涟漪效果;
在所述虚拟对象或所述虚拟摄像机发生运动的情况下,控制所述涟漪生成区域跟随所述虚拟对象或所述虚拟摄像机进行翻转,从而在虚拟场景中不断更新和叠加所述涟漪生成区域。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述虚拟场景中的涟漪仿真方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该计算机可读存储介质的技术方案与上述的虚拟场景中的涟漪仿真方法的技术方案属于同一构思,计算机可读存储介质的技术方案未详细描述的细节内容,均可以参见上述虚拟场景中的涟漪仿真方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中,从而有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只适用于帮助阐述本申请。可选实施例并,从而有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

Claims (12)

1.一种虚拟场景中的涟漪仿真方法,其特征在于,包括:
获取虚拟对象或跟随所述虚拟对象的虚拟摄像机在虚拟场景中的位置;
以所述虚拟对象或所述虚拟摄像机在虚拟场景中的位置为中心,在所述虚拟场景中创建涟漪生成区域,并在所述涟漪生成区域设置两个高度偏移图;
获取当前关键帧对应的上一关键帧的高度偏移数据;
根据当前关键帧对应的上一关键帧的高度偏移数据以及当前关键帧对应的力点偏移数据,计算出当前关键帧对应的高度偏移数据;
通过所述两个高度偏移图分别存储当前关键帧对应的力点偏移数据以及所述当前关键帧对应的上一关键帧的高度偏移数据,将两个高度偏移图进行混合,得到当前关键帧对应的高度偏移图并存储当前关键帧对应的高度偏移数据;
根据当前关键帧对应的高度偏移数据确定当前关键帧对应的法线图,并根据所述当前关键帧对应的高度偏移图和法线图共同作用于出涟漪效果的渲染;
重新将所述当前关键帧对应的下一关键帧确定为当前关键帧,返回执行所述获取当前关键帧对应的上一关键帧的高度偏移数据的步骤,不断渲染出涟漪效果,直至没有下一关键帧;
在所述虚拟对象或所述虚拟摄像机发生运动的情况下,控制所述涟漪生成区域跟随所述虚拟对象或所述虚拟摄像机进行翻转,从而在虚拟场景中不断更新和叠加所述涟漪生成区域。
2.根据权利要求1所述的方法,其特征在于,根据当前关键帧对应的上一关键帧的高度偏移数据以及当前关键帧对应的力点偏移数据,计算出当前关键帧对应的高度偏移数据之前,包括:
在所述涟漪生成区域中存在其他虚拟对象产生的至少一个力点的情况下,将当前关键帧中每个所述力点对应的偏移数据进行叠加,得到当前关键帧对应的力点偏移数据。
3.根据权利要求2所述的方法,其特征在于,重新将所述当前关键帧对应的下一关键帧确定为当前关键帧之前,还包括:
将当前关键帧对应的上一关键帧的高度偏移数据和当前关键帧对应的力点偏移数据,分别存储在其中一个高度偏移图的RG通道和BA通道中;
将当前关键帧对应的高度偏移数据存储在另一个高度偏移图的RG通道中;
重新将所述当前关键帧对应的下一关键帧确定为当前关键帧,获取当前关键帧对应的上一关键帧的高度偏移数据的步骤,包括:
在下一关键帧为当前关键帧的情况下,将存储在另一个高度偏移图的RG通道中当前关键帧对应的高度偏移数据,作为当前关键帧对应的上一关键帧的高度偏移数据。
4.根据权利要求1所述的方法,其特征在于,控制所述涟漪生成区域跟随所述虚拟对象或所述虚拟摄像机进行翻转,包括:
将所述涟漪生成区域划分为n×n个网格单元,其中,所述n为大于1的正整数;
在保持位于所述涟漪生成区域的中心区域的网格单元在翻转前后的两个关键帧的世界坐标维持不变的情况下,控制位于所述涟漪生成区域的边缘区域的网格单元跟随所述虚拟对象或所述虚拟摄像机进行翻转。
5.根据权利要求4所述的方法,其特征在于,保持位于所述涟漪生成区域的中心区域的网格单元在翻转前后的两个关键帧的世界坐标维持不变,包括:
为所述n×n个网格单元中的每个网格单元配置特征标识,并根据每个网格单元对应的特征标识生成所述n×n个网格单元对应的索引信息;
根据所述涟漪生成区域的翻转方向,通过所述索引信息确定在当前关键帧下位于所述涟漪生成区域的中心区域的网格单元以及位于所述涟漪生成区域的边缘区域的网格单元;
控制位于所述涟漪生成区域的边缘区域的网格单元按照索引信息的顺序进行翻转。
6.一种虚拟场景中的涟漪仿真装置,其特征在于,包括:
位置获取模块,被配置为获取虚拟对象或跟随所述虚拟对象的虚拟摄像机在虚拟场景中的位置;
涟漪生成模块,被配置为以所述虚拟对象或所述虚拟摄像机在虚拟场景中的位置为中心,在所述虚拟场景中创建涟漪生成区域并不断渲染出涟漪效果;
无限涟漪模块,被配置为在所述虚拟对象或所述虚拟摄像机发生运动的情况下,控制所述涟漪生成区域跟随所述虚拟对象或所述虚拟摄像机进行翻转,从而在虚拟场景中不断更新和叠加所述涟漪生成区域;
其中,所述涟漪生成模块包括:
高度图配置单元,被配置为在所述涟漪生成区域设置两个高度偏移图;
上一帧偏移获取单元,被配置为获取当前关键帧对应的上一关键帧的高度偏移数据;
混合偏移计算单元,被配置为根据当前关键帧对应的上一关键帧的高度偏移数据以及当前关键帧对应的力点偏移数据,计算出当前关键帧对应的高度偏移数据;
高度图混合单元,被配置为通过所述两个高度偏移图分别存储当前关键帧对应的力点偏移数据以及所述当前关键帧对应的上一关键帧的高度偏移数据,将两个高度偏移图进行混合,得到当前关键帧对应的高度偏移图并存储当前关键帧对应的高度偏移数据;
法线计算单元,被配置为根据当前关键帧对应的高度偏移数据确定当前关键帧对应的法线图,并根据所述当前关键帧对应的高度偏移图和法线图共同作用于出涟漪效果的渲染;
贴图迭代单元,被配置为重新将所述当前关键帧对应的下一关键帧确定为当前关键帧,返回执行所述获取当前关键帧对应的上一关键帧的高度偏移数据的步骤,从而不断渲染出涟漪效果,直至没有下一关键帧。
7.根据权利要求6所述的装置,其特征在于,所述涟漪生成模块还包括:
力点偏移计算单元,被配置为在所述涟漪生成区域中存在其他虚拟对象产生的至少一个力点的情况下,将当前关键帧中每个所述力点对应的偏移数据进行叠加,得到当前关键帧对应的力点偏移数据。
8.根据权利要求7所述的装置,其特征在于,所述贴图迭代单元还被配置为:
将当前关键帧对应的上一关键帧的高度偏移数据和当前关键帧对应的力点偏移数据,分别存储在其中一个高度偏移图的RG通道和BA通道中;
将当前关键帧对应的高度偏移数据存储在另一个高度偏移图的RG通道中;
在下一关键帧为当前关键帧的情况下,将存储在另一个高度偏移图的RG通道中当前关键帧对应的高度偏移数据,作为当前关键帧对应的上一关键帧的高度偏移数据。
9.根据权利要求6所述的装置,其特征在于,所述无限涟漪模块包括:
区域划分单元,被配置为将所述涟漪生成区域划分为n×n个网格单元,其中,所述n为大于1的正整数;
区域翻转单元,被配置为在保持位于所述涟漪生成区域的中心区域的网格单元在翻转前后的两个关键帧的世界坐标维持不变的情况下,控制位于所述涟漪生成区域的边缘区域的网格单元跟随所述虚拟对象或所述虚拟摄像机进行翻转。
10.根据权利要求9所述的装置,其特征在于,所述区域翻转单元还被配置为:
为所述n×n个网格单元中的每个网格单元配置特征标识,并根据每个网格单元对应的特征标识生成所述n×n个网格单元对应的索引信息;
根据所述涟漪生成区域的翻转方向,通过所述索引信息确定在当前关键帧下位于所述涟漪生成区域的中心区域的网格单元以及位于所述涟漪生成区域的边缘区域的网格单元;
控制位于所述涟漪生成区域的边缘区域的网格单元按照索引信息的顺序进行翻转。
11.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述指令时实现权利要求1-5任意一项所述方法的步骤。
12.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1-5任意一项所述方法的步骤。
CN202011120105.2A 2020-10-19 2020-10-19 一种虚拟场景中的涟漪仿真方法及装置 Active CN112221150B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011120105.2A CN112221150B (zh) 2020-10-19 2020-10-19 一种虚拟场景中的涟漪仿真方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011120105.2A CN112221150B (zh) 2020-10-19 2020-10-19 一种虚拟场景中的涟漪仿真方法及装置

Publications (2)

Publication Number Publication Date
CN112221150A CN112221150A (zh) 2021-01-15
CN112221150B true CN112221150B (zh) 2023-01-10

Family

ID=74117950

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011120105.2A Active CN112221150B (zh) 2020-10-19 2020-10-19 一种虚拟场景中的涟漪仿真方法及装置

Country Status (1)

Country Link
CN (1) CN112221150B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115546374B (zh) * 2022-11-28 2023-04-07 山东捷瑞数字科技股份有限公司 一种数字孪生的三维场景渲染方法、装置及设备和介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105279782B (zh) * 2015-07-02 2018-12-07 苏州蜗牛数字科技股份有限公司 实时海洋系统的模拟和渲染方法
KR102108244B1 (ko) * 2016-04-06 2020-05-07 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 이미지 처리 방법 및 장치
CN105913471B (zh) * 2016-04-06 2018-09-14 腾讯科技(深圳)有限公司 图片处理的方法和装置
CN109598777B (zh) * 2018-12-07 2022-12-23 腾讯科技(深圳)有限公司 图像渲染方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN112221150A (zh) 2021-01-15

Similar Documents

Publication Publication Date Title
CN112489171B (zh) 一种动画效果模拟方法及装置
JP2024522287A (ja) 三次元人体再構成方法、装置、デバイスおよび記憶媒体
CN110570507A (zh) 一种图像渲染方法及装置
CN104200506A (zh) 三维gis海量矢量数据渲染方法及装置
CN110992495B (zh) 一种虚拟模型的变形方法及装置
CN109949693B (zh) 一种地图绘制方法、装置、计算设备及存储介质
CN112967367B (zh) 水波特效生成方法及装置、存储介质、计算机设备
CN112569602B (zh) 在虚拟场景中构建地形的方法及装置
CN102819855B (zh) 二维图像的生成方法及装置
CN101477700A (zh) 面向Google Earth与Sketch Up的真三维立体显示方法
CN101477701A (zh) 面向AutoCAD和3DS MAX软件的植入式真三维立体渲染方法
CN112221150B (zh) 一种虚拟场景中的涟漪仿真方法及装置
CN112995533A (zh) 视频制作方法及装置
CN108230430B (zh) 云层遮罩图的处理方法及装置
WO2017174006A1 (zh) 图片处理的方法和装置
CN101521828B (zh) 面向esri三维gis模块的植入式真三维立体渲染方法
CN101540056B (zh) 面向ERDAS Virtual GIS的植入式真三维立体渲染方法
CN112604279A (zh) 一种特效显示方法及装置
CN116385577A (zh) 虚拟视点图像生成方法及装置
CN115228083A (zh) 一种资源渲染方法及装置
CN115830266A (zh) 游戏三维场景图处理方法及装置
CN110827303B (zh) 一种虚拟场景的图像编辑方法及装置
CN115272628A (zh) 一种三维模型的渲染方法、装置、计算机设备及存储介质
CN110782529B (zh) 一种基于三维人脸实现眼球转动效果的方法和设备
CN109529349B (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 519000 Room 102, 202, 302 and 402, No. 325, Qiandao Ring Road, Tangjiawan Town, high tech Zone, Zhuhai City, Guangdong Province, Room 102 and 202, No. 327 and Room 302, No. 329

Applicant after: Zhuhai Jinshan Digital Network Technology Co.,Ltd.

Address before: 519000 Room 102, 202, 302 and 402, No. 325, Qiandao Ring Road, Tangjiawan Town, high tech Zone, Zhuhai City, Guangdong Province, Room 102 and 202, No. 327 and Room 302, No. 329

Applicant before: ZHUHAI KINGSOFT ONLINE GAME TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant