CN109509243B - 一种液体仿真方法、液体交互方法及装置 - Google Patents
一种液体仿真方法、液体交互方法及装置 Download PDFInfo
- Publication number
- CN109509243B CN109509243B CN201710823492.8A CN201710823492A CN109509243B CN 109509243 B CN109509243 B CN 109509243B CN 201710823492 A CN201710823492 A CN 201710823492A CN 109509243 B CN109509243 B CN 109509243B
- Authority
- CN
- China
- Prior art keywords
- liquid
- dimensional
- grid
- cube
- height
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/60—3D [Three Dimensional] animation of natural phenomena, e.g. rain, snow, water or plants
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F9/00—Games not otherwise provided for
- A63F9/06—Patience; Other games for self-amusement
- A63F9/08—Puzzles provided with elements movable in relation, i.e. movably connected, to each other
- A63F9/0826—Three-dimensional puzzles with slidable or rotatable elements or groups of elements, the main configuration remaining unchanged, e.g. Rubik's cube
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/24—Fluid dynamics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/56—Particle system, point based geometry or rendering
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明实施例提供一种液体仿真方法、液体交互方法及装置,其中液体仿真方法包括:GPU获取初始化信息;根据所述初始化信息确定二维网格;将待仿真三维液体的平面映射到所述二维网格中,确定所述待仿真三维液体的平面在所述二维网格中相应映射的目标网格;将待仿真三维液体的液面高度映射到所述二维网格中,在目标网格的各格点记录所述待仿真三维液体相应的液面高度,得到所述待仿真三维液体在所述二维网格中相应的高度场;根据所述高度场的更新,绘制三维液体,得到液体仿真结果。本发明实施例可在保障液体仿真结果逼真度的情况下,降低液体仿真的计算开销。
Description
技术领域
本发明涉及仿真技术领域,具体涉及一种液体仿真方法、液体交互方法及装置。
背景技术
液体仿真能够模拟三维的流动液体,在影视特效制作、计算机游戏、水利工程设计等场景中应用广泛,液体包括但不限于水体等。液体仿真的性能主要通过液体仿真结果的逼真度,和液体仿真所涉及的计算开销衡量,特别是在计算机游戏场景中进行液体仿真时,高逼真度且低计算开销的液体仿真对于计算机游戏的正常运行至关重要。
目前液体仿真的主要方式是基于粒子的粒子法,具体的,可使用大量粒子对液体进行近似,通过计算粒子的运动行为来仿真液体;使用粒子法进行液体仿真的优势在于计算速度相对较快,且计算开销较低,但缺点是液体仿真结果的逼真度较低(体现在液体的仿真精度较低,效果较为粗糙)。因此如何在保障液体仿真结果逼真度的情况下,降低液体仿真的计算开销一直是本领域技术人员急需解决的问题。
发明内容
有鉴于此,本发明实施例提供一种液体仿真方法、液体交互方法及装置,以在保障液体仿真结果逼真度的情况下,降低液体仿真的计算开销。
为实现上述目的,本发明实施例提供如下技术方案:
一种液体仿真方法,应用于GPU,所述方法包括:
获取初始化信息;
根据所述初始化信息确定二维网格;
将待仿真三维液体的平面映射到所述二维网格中,确定所述待仿真三维液体的平面在所述二维网格中相应映射的目标网格;
将待仿真三维液体的液面高度映射到所述二维网格中,在目标网格的各格点记录所述待仿真三维液体相应的液面高度,得到所述待仿真三维液体在所述二维网格中相应的高度场;
根据所述高度场的更新,绘制三维液体,得到液体仿真结果。
本发明实施例还提供一种液体交互方法,应用于CPU,所述方法包括:
将交互体的模型使用立方体组进行近似,所述立方体组包括多个立方体;
获取待仿真液体在二维网格中相应的高度场,其中,所述高度场对应有目标网格,所述目标网格为所述待仿真三维液体的平面在所述二维网格中相应映射的网格,且目标网格的各格点记录有待仿真三维液体相应的液面高度;
根据各立方体的水平位置坐标及所述高度场,确定各立方体对应的液面高度;
根据各立方体对应的液面高度,确定三维液体与各立方体的相互作用力;
将三维液体与各立方体的相互作用力相综合,确定三维液体与交互体的相互作用力。
本发明实施例还提供一种液体仿真装置,应用于GPU,包括:
初始化信息获取模块,用于获取初始化信息;
二维网格确定模块,用于根据所述初始化信息确定二维网格;
平面映射模块,用于将待仿真三维液体的平面映射到所述二维网格中,确定所述待仿真三维液体的平面在所述二维网格中相应映射的目标网格;
高度映射模块,用于将待仿真三维液体的液面高度映射到所述二维网格中,在目标网格的各格点记录所述待仿真三维液体相应的液面高度,得到所述待仿真三维液体在所述二维网格中相应的高度场;
仿真结果绘制模块,用于根据所述高度场的更新,绘制三维液体,得到液体仿真结果。
本发明实施例还提供一种液体交互装置,应用于CPU,包括:
模型近似模块,用于将交互体的模型使用立方体组进行近似,所述立方体组包括多个立方体;
高度场获取模块,用于获取待仿真液体在二维网格中相应的高度场,其中,所述高度场对应有目标网格,所述目标网格为所述待仿真三维液体的平面在所述二维网格中相应映射的网格,且目标网格的各格点记录有待仿真三维液体相应的液面高度;
液面高度确定模块,用于根据各立方体的水平位置坐标及所述高度场,确定各立方体对应的液面高度;
相互作用力确定模块,用于根据各立方体对应的液面高度,确定三维液体与各立方体的相互作用力;
综合模块,用于将三维液体与各立方体的相互作用力相综合,确定三维液体与交互体的相互作用力。
本发明实施例还提供一种仿真设备,包括:存储器和GPU;
其中,所述存储器存储有程序,所述GPU调用所述程序,所述程序用于:
获取初始化信息;
根据所述初始化信息确定二维网格;
将待仿真三维液体的平面映射到所述二维网格中,确定所述待仿真三维液体的平面在所述二维网格中相应映射的目标网格;
将待仿真三维液体的液面高度映射到所述二维网格中,在目标网格的各格点记录所述待仿真三维液体相应的液面高度,得到所述待仿真三维液体在所述二维网格中相应的高度场;
根据所述高度场的更新,绘制三维液体,得到液体仿真结果。
本发明实施例还提供一种仿真设备,包括:存储器和CPU;
所述存储器存储有程序,所述CPU调用所述程序,所述程序用于:
将交互体的模型使用立方体组进行近似,所述立方体组包括多个立方体;
获取待仿真液体在二维网格中相应的高度场,其中,所述高度场对应有目标网格,所述目标网格为所述待仿真三维液体的平面在所述二维网格中相应映射的网格,且目标网格的各格点记录有待仿真三维液体相应的液面高度;
根据各立方体的水平位置坐标及所述高度场,确定各立方体对应的液面高度;
根据各立方体对应的液面高度,确定三维液体与各立方体的相互作用力;
将三维液体与各立方体的相互作用力相综合,确定三维液体与交互体的相互作用力。
基于上述技术方案,本发明实施例提供的液体仿真方法中,GPU获取初始化信息后,可确定二维网格,将待仿真三维液体的平面映射到所述二维网格中,确定出所述待仿真三维液体的平面在所述二维网格中相应映射的目标网格;并将待仿真三维液体的液面高度映射到所述二维网格中,在目标网格的各格点记录所述待仿真三维液体相应的液面高度,得到所述待仿真三维液体在所述二维网格中相应的高度场;进而可根据所述高度场的更新,绘制三维液体,得到液体仿真结果。
可见,本发明实施例提供的液体仿真方法,通过在二维网格中确定被待仿真三维液体的平面占据的目标网格,并在目标网格的各格点中记录相应的待仿真三维液体的液面高度,可将待仿真三维液体的仿真简化到二维网格中实现,可极大的减少计算量,降低计算开销,从而使实时流动的液体仿真成为可能;同时,使用基于空间网格的方式实现液体仿真(即本发明实施例为基于空间网格的欧拉法,所改进的基于二维空间网格的三维液体仿真方法),可继承基于空间网格进行液体仿真所带来的较高逼真度的效果,从而在保障液体仿真结果逼真度的情况下,降低液体仿真的计算开销。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为仿真设备的硬件结构框图;
图2为本发明实施例提供的液体仿真方法的流程图;
图3为待仿真三维液体的平面映射到二维网格的示意图;
图4为格点记录液面高度的示意图;
图5为现有技术与本发明实施例的液体仿真方案比对示意图;
图6为本发明实施例提供的液体仿真方法的另一流程图;
图7a为本发明实施例提供的液体仿真效果的示例图;
图7b为本发明实施例提供的液体仿真效果的另一示例图;
图7c为本发明实施例提供的液体仿真效果的再一示例图;
图8为本发明实施例提供的液体交互方法的流程图;
图9为确定三维液体与各立方体的相互作用力的方法流程图;
图10为三维液体对立方体的作用力的示意图;
图11为立方体对三维液体的作用力的示意图;
图12为现有技术与本发明实施例的液体交互方案比对示意图;
图13为CPU和GPU的处理走向示意图;
图14为本发明实施例提供的液体仿真装置的结构框图;
图15为本发明实施例提供的液体仿真装置的另一结构框图;
图16为本发明实施例提供的液体交互装置的结构框图。
具体实施方式
在改进液体仿真方法的过程中,本发明的发明人发现了一种基于空间网格的欧拉法进行液体仿真的技术;通过将整个仿真空间划分为空间网格,确认待仿真三维液体在该空间网格中所占据的网格,在每一个被占据的网格上根据流体力学方程来计算液体的流动信息(如流速、压强等),并以此更新液体的形态(如更新液体的运动状态和形状变化),完成液体仿真。
本发明的发明人经过比对基于空间网格的欧拉法,和基于粒子的粒子法,发现欧拉法的优势和劣势与粒子法相反,欧拉法能够很好地表现出液面(液面如水面)细节,液体仿真结果具有较高的逼真度,但缺点是计算开销较大,特别是在三维的液体仿真情况下,仅可进行小范围的液体仿真;虽然,欧拉法的液体仿真结果具有较高的逼真度,但计算开销较大,对于实时性要求较高的游戏等场景而言是无法接受的。
基于此,本发明的发明人在欧拉法的基础上进行改进,提出本发明实施例提供的液体仿真方法,并设置相应的程序,希望在进行三维的液体仿真的情况下,保留欧拉法的高逼真度的液体仿真结果,同时降低计算开销,以满足本发明实施例提供的液体仿真方法在对于实时性要求、和仿真逼真度要求较高的游戏等场景中的适用。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的液体仿真方法可通过相应的程序表示,并由CPU(CentralProcessing Unit,中央处理器)和GPU(Graphics Processing Unit,图形处理器)联合工作,执行液体仿真方法相应程序中CPU和GPU各自负责的流程,实现本发明实施例提供的液体仿真方法。另外,本发明实施例还提供的液体交互方法也可通过相应的程序表示,由CPU和GPU联合工作,执行液体交互方法相应程序中CPU和GPU各自负责的流程,实现本发明实施例提供的液体交互方法。
可选的,CPU和GPU可在仿真设备上进行设置,仿真设备如网络侧的服务器,当然,仿真设备也并不排除使用用户侧的PC(个人计算机)、智能手机等终端设备的可能。
可选的,图1示出了仿真设备的可选硬件结构框图,参照图1,仿真设备可以包括:CPU1,GPU2,通信接口3,存储器4和通信总线5;
可选的,通信接口2可以为通信模块的接口;
存储器3可能包含高速RAM(随机存取存储器)存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器;存储器3中可存储实现本发明实施例提供的液体仿真方法相应的程序,以及实现本发明实施例提供的液体交互方法相应的程序;
CPU 1和GPU2可联合工作实现本发明实施例提供的液体仿真方法,具体的,CPU 1和GPU2可通过调用存储器3中所存储的液体仿真方法相应的程序,执行液体仿真方法中各自负责的流程,实现本发明实施例提供的液体仿真方法。CPU 1和GPU2可联合工作实现本发明实施例提供的液体交互方法,具体的,CPU 1和GPU2可通过调用存储器3中所存储的液体交互方法相应的程序,执行液体交互方法中各自负责的流程,实现本发明实施例提供的液体交互方法。
可选的,本发明实施例所提供的液体仿真方法主要由GPU2实现,GPU2可基于CPU1的初始化信息和存储器3中所存储的由GPU负责执行的程序,实现三维的液体仿真;CPU1可基于GPU2的输出信息,和存储器3中所存储的由CPU负责执行的液体交互方法相应的程序,实现液体交互。
可选的,图2示出了本发明实施例提供的液体仿真方法的流程图,该液体仿真方法可应用于GPU中,由GPU负责执行,参照图2,该液体仿真方法可以包括:
步骤S100、获取初始化信息。
可选的,初始化信息可由CPU传递给GPU,初始化信息中可以包括:液体仿真对应的二维网格的布局信息(如二维网格的二维维度,每一个网格的边长等);使用该二维网格的布局信息可以绘制出液体仿真对应的二维网格;
进一步,该初始化信息中还可以包括:二维网格中所有格点对应的初始液面高度,以及其他的仿真所需参数。
步骤S110、根据所述初始化信息确定二维网格。
可选的,本发明实施例可根据所述初始化信息中记录的二维网格的布局信息,绘制出液体仿真对应的二维网格;具体的,可根据二维网格的二维维度,每一个网格的边长,进行二维网格的绘制。
值得注意的是,本发明实施例在进行三维液体仿真时,仅进行二维网格的绘制,并不涉及三维网格的情况;所确定的二维网格可以认为是基于空间网格的欧拉法所相应的二维网格。
步骤S120、将待仿真三维液体的平面映射到所述二维网格中,确定所述待仿真三维液体的平面在所述二维网格中相应映射的目标网格。
本发明实施例提供的液体仿真方法主要用于进行三维液体的仿真,在确认需要进行液体仿真的待仿真三维液体(如需要进行液体仿真的液池等)后,本发明实施例可将该待仿真三维液体的平面映射到二维网格中,确定所述二维网格中被该待仿真三维液体的平面所占据的网格,得到待仿真三维液体的平面在所述二维网格中相应映射的目标网格;
可选的,可选的,本发明实施例可将待仿真三维液体的平面可以视为是待仿真三维液体的底面,本发明实施例可将待仿真三维液体的底面映射到所述二维网格中;
本发明实施例可确定待仿真三维液体的底面的平面坐标,根据所述底面的平面坐标,将待仿真三维液体的平面映射到二维网格中与所述底面的平面坐标相应的区域,确定出二维网格中被该待仿真三维液体的平面所占据的网格,得到待仿真三维液体的平面在所述二维网格中相应映射的目标网格。
如图3所示,待仿真三维液体的平面形状如图中曲线部分所示,将待仿真三维液体的平面映射到二维网格中后,可确认出二维网格中被该待仿真三维液体的平面所占据的网格,得到目标网格,目标网格的数量为多个。
步骤S130、将待仿真三维液体的液面高度映射到所述二维网格中,在目标网格的各格点记录所述待仿真三维液体相应的液面高度,得到所述待仿真三维液体在所述二维网格中相应的高度场。
在通过步骤S120确定出二维网格中被待仿真三维液体的平面所占据的目标网格后,待仿真三维液体的平面二维坐标已可通过目标网格的平面坐标进行记录;而对于待仿真三维液体的垂直方向的液面高度信息,本发明实施例可通过将待仿真三维液体的液面高度映射到二维网格中,使得待仿真三维液体不同的平面坐标对应的垂直方向的液面高度(液面高度如水体高度),能够在待仿真三维液体的平面坐标相应映射的目标网格的格点上进行记录,进而使得目标网格的各格点可记录相应映射的待仿真三维液体的平面坐标所对应的液面高度;从而综合待仿真三维液体的平面在二维网格中相应映射的目标网格的坐标,以及目标网格的各格点记录的待仿真三维液体相应的液面高度,得出所述高度场。
可见,高度场可以表示出待仿真液体的二维的平面坐标与液面高度的一种函数关系。
可选的,作为一种优选方案,本发明实施例可在目标网格的各格点记录,格点对应的待仿真三维液体的平面坐标相应的液面高度,从而实现将待仿真三维液体的液面高度映射到所述二维网格中,在目标网格的各格点记录所述待仿真三维液体相应的液面高度;
如图4所示,在确定出目标网格后,本发明实施例可确定目标网格的各格点所对应的待仿真三维液体的平面坐标,在各格点上记录对应的待仿真三维液体的平面坐标相应的液面高度,如图中黑点部分对应记录有相应的液面高度;相应的,高度场可以认为是一个平面网格,网格中每个格点的值代表该点的高度。
需要说明的是,本发明实施例提供的液体仿真方法,通过在二维网格中确定被待仿真三维液体的平面占据的目标网格,并在目标网格的各格点记录相应的待仿真三维液体的液面高度,可将待仿真三维液体的仿真简化到二维网格中实现,可极大的减少计算量,降低计算开销,从而使实时流动的液体仿真成为可能;
如图5所示比对,相比于传统的基于空间网格的欧拉法所进行的三维液体仿真,传统的基于空间网格的欧拉法需要构建出三维空间网格的三维液体相应的形态,如图5左部分所示,计算开销极大;而将待仿真三维液体的仿真简化到二维网格中实现,并优选在目标网格的各格点记录相应的待仿真三维液体的液面高度,如图5右部分所示,可极大的降低了计算开销。
步骤S140、根据所述高度场的更新,绘制三维液体,得到液体仿真结果。
在通过步骤S100至步骤S130确定出高度场后,该高度场可以认为是初始高度场,可不断的进行高度场的更新,从而根据高度场的更新结果绘制三维液体,得到液体仿真结果。
本发明实施例提供的液体仿真方法中,GPU获取初始化信息后,可确定二维网格,将待仿真三维液体的平面映射到所述二维网格中,确定出所述待仿真三维液体的平面在所述二维网格中相应映射的目标网格;并将待仿真三维液体的液面高度映射到所述二维网格中,在目标网格的各格点记录所述待仿真三维液体相应的液面高度,得到所述待仿真三维液体在所述二维网格中相应的高度场;根据所述高度场的更新,绘制三维液体,得到液体仿真结果。
可见,本发明实施例提供的液体仿真方法,通过在二维网格中确定被待仿真三维液体的平面占据的目标网格,并在目标网格的各格点中记录相应的待仿真三维液体的液面高度,可将待仿真三维液体的仿真简化到二维网格中实现,可极大的减少计算量,降低计算开销,从而使实时流动的液体仿真成为可能;同时,使用基于空间网格的方式实现液体仿真(即本发明实施例为基于空间网格的欧拉法,所改进的基于二维空间网格的三维液体仿真方法),可继承基于空间网格进行液体仿真所带来的较高逼真度的效果,从而在保障液体仿真结果逼真度的情况下,降低液体仿真的计算开销。
可选的,在通过步骤S100至步骤S130的流程确定高度场后,本发明实施例可每隔设定数量帧更新所述高度场,进而可每隔设定数量帧,根据更新的高度场绘制三维液体,得到液体仿真结果。
步骤S100至步骤S130的流程所确定的高度场可以认为是待仿真三维液体初始的高度场,而三维液体由于流动或者与在交互体进行交互的情况下,三维液体的流速将改变,从而导致高度场也相应的改变;因此在通过步骤S100至步骤S130确定出初始的高度场后,还需根据三维液体的流动或者与交互体的交互情况,每隔设定数量帧的更新高度场;
可以认为,在液体仿真过程中,步骤S100至步骤S130可执行一次,后续可每隔设定数量帧更新所述高度场,从而可每隔设定数量帧,根据更新的高度场进行三维液体的绘制,得到液体仿真结果;可选的,设定数量帧可以是一帧,即在每一帧根据三维液体的流动或者与交互体的交互情况,更新高度场;设定数量帧也可能是大于一的帧数,具体可根据实际情况设置。
可选的,本发明实施例可每隔设定数量帧,根据更新的高度场,结合曲面细分和顶点偏移技术,绘制出三维液体;
可选的,在每隔设定数量帧,根据更新的高度场,结合曲面细分和顶点偏移技术,绘制出三维液体时,本发明实施例可将待仿真三维液体对应预置的Mesh(三维网格模型,Mesh可以认为是物体的三维网格模型),划分成由多个三角形拼接的网格;进而可根据每隔设定数量帧更新的高度场,对各三角形的各顶点的高度进行顶点偏移,得到各三角形的各顶点偏移后的顶点位置,进而每隔设定数量帧,根据各三角形的各顶点偏移后的顶点位置绘制三维液体,得到液体仿真结果;
具体的,由于待仿真三维液体预置的Mesh(三维网格模型,Mesh可以认为是物体的三维网格模型)仅仅是简单的四边形,为进一步提升液体仿真的逼真度效果,本发明实施例可将待仿真三维液体对应的Mesh使用曲面细分技术,动态划分成由多个三角形拼接的网格;可选的,本发明实施例可使用DirectX提供的曲面细分技术,将待仿真三维液体的Mesh进行曲面细分;
进而可根据每隔设定数量帧更新的高度场记录的待仿真三维液体相应的液面高度,确定出划分成的各三角形的各顶点对应的液面高度,从而将各三角形的各顶点的高度与对应的液面高度相加,进行顶点偏移,得到各三角形的各顶点偏移后的顶点位置;从而在每隔设定数量帧,根据各三角形的各顶点偏移后的顶点位置绘制出三维液体,得到液体仿真结果。
需要说明的是,待仿真三维液体的流动信息(如流速、压强)的更新计算可以由GPU在二维空间基于流体力学方程进行,根据流体力学方程更新计算流速场,从而基于更新的流速场,以SWE公式更新目标网格的各格点中记录的待仿真三维液体相应的液面高度(即更新高度场);
即在二维网格中进行待仿真三维液体的仿真之后,最终会基于计算的待仿真三维液体的流动信息,对目标网格的每个格点上记录的液面高度值进行更新,这样就可以根据所有格点的液面高度值把三维的液体还原出来,完成二维网格到三维液体的反投影,实现三维液体的流动效果仿真。
进一步,在涉及到交互体(如用户手指,鱼竿等固体)与三维液体的交互时,待仿真三维液体的流动信息(如流速、压强)的更新还可基于交互体对三维液体的作用力实现;可选的,除考虑基于流体力学方程进行待仿真三维液体的流动信息更新外,还可结合考虑交互体对三维液体的作用力,更新待仿真三维液体的流动信息,进而更新高度场。
可选的,目标网格的各格点除可记录该格点对应的液面高度外,还可记录:该格点与周围相邻格点之间的流速、压强等流动信息;目标网格的各格点所记录的与相邻格点之间的流速、压强等流动信息,可形成待仿真三维液体在二维网格中相应的流速场;
即目标网格的各格点中所记录的液面高度信息可形成高度场,而目标网格的各格点中记录的流速、压强等流动信息可形成流速场。
相应的,每隔设定数量帧更新高度场的方式可以是:每隔设定数量帧更新流速场;每隔设定数量帧,根据更新的流速场更新所述高度场。
而流速场的更新可以根据流体力学方程进行;在存在交互体与液体交互的情况下,还可结合交互体与三维液体交互情况,更新流速场。
进一步,GPU通过每帧的实时更新的高度场进行三维液体绘制,可得到液体的流动仿真效果。
需要说明的是,根据初始化信息所确定的二维网格越细,则液体仿真结果与实际的待仿真液体的近似度越高,但计算开销也将相应的提升,因此二维网格可以选取一个适中的细化程度,以平衡液体仿真结果的逼真度和涉及的计算开销;当然,二维网格的细化程度可以根据实际情况调整设定。
可选的,为进一步降低计算开销,GPU可利用Compute Shader(计算着色器)的并行计算机制,进行液体仿真处理;在Compute Shader的帮助下,可将GPU作为并行处理器加以利用,GPU将不仅具有3D渲染能力,也具有其他的运算能力;可选的,GPU可利用ComputeShade每隔设定数量帧的更新高度场,进一步降低液体仿真涉及的计算开销。
可选的,GPU在进行液体仿真时,可优选使用图6所示方法流程,图6为本发明实施例提供的液体仿真方法的另一流程图,该液体仿真方法可应用于GPU中,由GPU负责执行,参照图6,该液体仿真方法可以包括:
步骤S200、获取初始化信息。
步骤S210、根据所述初始化信息确定二维网格。
步骤S220、将待仿真三维液体的平面映射到所述二维网格中,确定所述待仿真三维液体的平面在所述二维网格中相应映射的目标网格。
步骤S230、在目标网格的各格点记录,格点对应的待仿真三维液体的平面坐标相应的液面高度,得到所述待仿真三维液体在所述二维网格中相应的高度场。
可选的,步骤S230可以认为是图2所示步骤S130的一种优选实现。
步骤S240、每隔设定数量帧更新所述高度场。
可选的,本发明实施例可每隔设定数量帧更新流速场,进而每隔设定数量帧,根据更新的流速场更新所述高度场;
可选的,流速场的更新可根据流体力学方程实现;当存在交互体与液体的情况时,还可结合交互体与三维液体交互情况,更新流速场;关于结合交互体与三维液体的交互情况,更新流速场的内容,将在下文的液体交互方法内容部分进行介绍。
步骤S250、将待仿真三维液体预置的Mesh使用曲面细分技术,动态划分成由多个三角形拼接的网格。
步骤S260、每隔设定数量帧,根据更新的高度场记录的待仿真三维液体相应的液面高度,确定划分成的各三角形的各顶点对应的液面高度,将各三角形的各顶点的高度与对应的液面高度相加,得到各三角形的各顶点偏移后的顶点位置。
步骤S270、每隔设定数量帧,根据各三角形的各顶点偏移后的顶点位置绘制三维液体,得到液体仿真结果。
可选的,步骤S240至步骤S270可以认为是图2所示步骤S140的一种可选实现,本发明实施并不排除根据每隔设定数量帧更新的高度场绘制三维液体的其他方式,比如每隔设定数量帧,先根据更新的高度场绘制初始的三维液体,初始的三维液体的液面高度与高度场中目标网格的各格点记录的待仿真三维液体相应的液面高度相应;进而每隔设定数量帧,根据待仿真三维液体预置的Mesh细分的各三角形的各顶点的高度,调整初始的三维液体中各顶点相应的液面高度,绘制出三维液体。
可选的,在实现液体仿真的基础上,本发明实施例还可实现交互体(交互体如与液体交互的固体、用户操作液体的物品等)与液体的交互,以使得用户可基于高逼真且计算开销较低的液体仿真结果,实现逼真的交互体验;以液体为水体为例,图7a和图7b示出了水池的水体仿真效果以及用户的交互示意,用户可以在水面上划出波浪甚至搅动整池的水,漂浮在水面上的白色立方体会随着波浪上下起伏并来回浮动,可见,基于本发明实施例所进行的水体仿真,其水面效果细腻真实;
图7c展示了基于本发明实施例提供的液体仿真方法,所制作的一个钓鱼小游戏,可以看出基于本发明实施例所实现的水体仿真结果非常真实,真实的水面效果能够提升用户的沉浸感;
需要说明的是,经测试,图7a、图7b和图7c的示例中,本发明实施例进行水体仿真在CPU和GPU端仅仅各占用了0.5ms左右的时间,相比于高逼真的水面效果,本发明实施例的计算时间开销是极低的。
可选的,本发明实施例为实现液体交互,需要计算三维液体与交互体的相互作用力(如三维液体对交互体的作用力,交互体对三维液体的作用力),在本发明实施例中,三维液体与交互体的相互作用力的计算可由CPU执行,以降低GPU的计算开销,而GPU可基于CPU所计算的三维液体与交互体的相互作用力进行液体交互效果的展示;
可选的,图8示出了本发明实施例提供的液体交互方法的流程图,该液体交互方法主要介绍了三维液体与交互体的相互作用力的计算过程,该液体交互方法可应用于CPU,由CPU负责执行;参照图8,该方法可以包括:
步骤S300、将交互体的模型使用立方体组进行近似,所述立方体组包括多个立方体。
液体交互方式涉及三维液体与交互体的相互作用力的确定时,首先需要解决的问题是将交互体抽象为何种形式,传统的液体交互方式主要是直接使用交互体的表面Mesh来表示交互体,从而针对交互体的表面Mesh上的每一个三角形去计算与三维液体的相互作用力,来实现三维液体与交互体的相互作用力的确定;然而这种使用交互体的表面Mesh来表示交互体的方式,涉及到大量的计算开销,并不适用于计算机游戏等对于实时性要求较高的场景;
因此本发明实施例提出改进方案,使用一组立方体组(立方体组可包括多个立方体)来近似表示交互体,以避免传统方式使用交互体的表面Mesh来表示交互体,需要针对交互体的表面Mesh上的每一个三角形去计算,与三维液体的相互作用力所带来的大量计算开销。
可选的,本发明实施例将交互体使用立方体组进行近似的方式可以是:将交互体的模型周围空间划分成三维网格,可选的,三维网格的长宽高应能容纳该交互体;对于该三维网格中的每一个格点,判断格点的位置是否位于交互体的模型内部,若是,则在该格点处生成与该格点对应的立方体,若否,则忽略该格点;即可确定三维网格中位于交互体的模型内部的各格点,根据位于交互体的模型内部的各格点生成对应的立方体,得到与交互体的模型近似的立方体组。
相应的,本发明实施例可确定出交互体所包含的所有立方体,以及每个立方体的边长、立方体在交互体的相对位置。
进一步,为了在液体仿真结果中展示交互体,CPU可将用于近似交互体的立方体组的信息传输给GPU,以便GPU在液体仿真结果中进行交互体的展示,该立方体组的信息可以包括:每个立方体的边长、每个立方体相对于交互体的模型的相对位置等。
步骤S310、获取待仿真液体在二维网格中相应的高度场,其中,所述高度场对应有目标网格,所述目标网格为所述待仿真三维液体的平面在所述二维网格中相应映射的网格,且目标网格的各格点记录有待仿真三维液体相应的液面高度。
可选的,目标网格的各格点可以记录,格点对应的待仿真三维液体的平面坐标相应的液面高度。
可选的,所述高度场可由GPU根据上文提供的液体仿真方法确定,GPU在确定所述高度场后可反馈给CPU,以便CPU进行三维液体与交互体的相互作用力计算。
步骤S320、根据各立方体的水平位置坐标及所述高度场,确定各立方体对应的液面高度。
可选的,高度场可以表示待仿真液体的二维的平面坐标与液面高度的函数关系,而各立方体所位于的空间位置坐标是已知的,通过将各立方体的空间位置坐标中的水平位置坐标代入到所述高度场表示的函数关系中,则可得出各立方体的水平位置坐标相应的液面高度,得到各立方对应的液面高度;
可假设高度场表示的函数关系为f(x,y)→z,即通过水平坐标x,y可确定相应的液面高度;假设一立方体的空间位置坐标为(x,y,z),则将该立方体的空间位置坐标中的水平位置坐标x,y代入f(x,y)→z的函数关系,可得到该立方体对应的液面高度。
步骤S330、根据各立方体对应的液面高度,确定三维液体与各立方体的相互作用力。
步骤S340、将三维液体与各立方体的相互作用力相综合,确定三维液体与交互体的相互作用力。
可选的,对于每个立方体,设立方体的中心空间坐标为p,算出立方体与三维液体的相互作用力后,则可以直接在立方体所属交互体的模型上的p的相对位置处,确定出与三维液体的相互作用力;在指定点确定相互作用力的过程在一般的物理引擎里都提供了函数接口,此处可直接调用。综合三维液体与各立方体的相互作用力,意味着对所有的立方体执行都这一操作后,这样就可得到交互体的模型在不同位置的与三维液体的相互作用力,从而可相互作用力来确定液体交互效果;
即本发明实施例可根据各立方体的中心空间坐标对应的与三维液体的相互作用力,确定出交互体的模型与各立方体的中心空间坐标相应位置,所对应的与三维液体的相互作用力,得到三维液体与交互体的相互作用力;
如在确定三维液体对立方体的作用力时,本发明实施例可确定每个立方体的中心空间坐标相应的三维液体受力,从而在交互体的模型上与各立方体的中心空间坐标相应的位置,确定出相应的三维液体受力,得到交互体的模型在不同位置的一组三维液体受力,得出三维液体对立方体的作用力。确定立方体对三维液体的作用力的原理类似。
可选的,在确定三维液体与交互体的相互作用力后,CPU可进一步根据三维液体与交互体的相互作用力,确定三维液体与交互体的交互影响结果,并传输给GPU,由GPU根据三维液体与交互体的交互影响结果,展示三维液体与交互体的交互结果;
例如,在确定三维液体对交互体的作用力后,CPU可进一步确定交互体在三维液体作用下的影响结果,并传输至GPU,由GPU展示三维液体对交互体的交互结果。
而在确定交互体对三维液体的作用力后,GPU可更新流速场,从而进一步更新高度场,更新三维液体的仿真结果。
可选的,在确定各立方体对应的液面高度后,本发明实施例可相应确定各立方体浸入三维液体的深度,从而根据各立方体浸入三维液体的深度,确定三维液体与各立方体的相互作用力;
相应的,图9示出了本发明实施例提供的确定三维液体与各立方体的相互作用力的方法流程图,该方法可应用于CPU,参照图9,该方法可以包括:
步骤S400、根据各立方体的垂直高度坐标,与对应的液面高度,确定各立方体浸入三维液体的深度。
可选的,本发明实施例可根据各立方体的垂直高度坐标,与各立方体的高度,确定出各立方体的下底面高度;从而将各立方体对应的液面高度减去下底面高度,可得出各立方体浸入三维液体的深度。
步骤S410、根据各立方体浸入三维液体的深度,确定三维液体与各立方体的相互作用力。
可选的,本发明实施例可根据各立方体浸入三维液体的深度,确定各立方体浸入三维液体的体积,从而根据各立方体浸入三维液体的体积,各立方体的速度,三维液体的速度确定三维液体与各立方体的相互作用力。
可选的,三维液体与各立方体的相互作用力可以由三维液体对各立方体的作用力,和各立方体对三维液体的作用力表示;
对于一立方体,三维液体对立方体的作用力可由三维液体对立方体的浮力和阻力表示,本发明实施例可根据立方体浸入三维液体的深度,确定立方体浸入三维液体的体积,进而根据立方体浸入三维液体的体积,立方体的速度、三维液体的速度,计算出三维液体对立方体的浮力和阻力,得到三维液体对立方体的作用力;如图10所示,图10所示方框表示立方体,波浪状图形表示三维液体,虚拟箭头分割开的一个区域对应一个格点,箭头表示了三维液体对立方体的作用力。
在计算立方体对三维液体的作用力时,对于每一立方体,可根据立方体浸入三维液体的深度,确定立方体浸入三维液体的体积,进而根据立方体浸入三维液体的体积,立方体相对于三维液体的速度,计算出立方体对三维液体的作用力;可选的,各立方体与三维液体的相对速度可由三维液体的速度和立方体的速度确定,其中,三维液体的速度可由GPU传输的流速场确定(相应的,CPU还可获取GPU传输的流速场,所述流速场对应有目标网格,所述目标网格为所述待仿真三维液体的平面在所述二维网格中相应映射的网格,且各目标网格的格点上记录有与相邻格点的相对流速),而立方体的速度是由物理引擎计算得出,物理引擎如PhysX。
如图11所示,方框表示立方体,虚拟箭头分割开的一个区域对应一个格点,则该立方体占据了两个格点,需要根据这两个格点上的立方体各自的浸入深度以及,相对于三维液体的速度,计算该立方体对三维液体的作用力,立方体对三维液体的作用力如图11箭头所示。
如图12所示,相比于使用交互体的表面Mesh来表示交互体,从而针对交互体的表面Mesh上的每一个三角形去计算与三维液体的相互作用力的方式,本发明实施例可在交互体的模型上采样立方体,从而以细分的立方体进行与三维液体的相互作用力的确定,相对于以表面Mesh整体的进行与三维液体的相互作用力的计算,本发明实施例可极大的降低计算开销。
可选的,立方体对三维液体的作用力,将影响三维液体的运动状态,因此本发明实施例中,CPU可将计算立方体与三维液体的相互作用力的过程中,各立方体与三维液体的相对速度,各立方体浸入三维液体的深度传输给GPU,由GPU根据各立方体与三维液体的相对速度,以及各立方体浸入三维液体的深度,对流速场进行更新,即对各立方体对应的目标网格的格点上记录的相对流速进行更新;
可选的,高度场对应的每个目标网格的格点上可记录对应的液面高度,流速场对应的每个目标网格的格点上可记录与相邻格点的相对流速;
GPU基于CPU的传输,确定交互体的模型采样的每一个立方体与三维液体的相对速度,以及立方体浸入三维液体的深度后,对于每一立方体,GPU可将立方体与三维液体的相对速度乘以设定系数,将相乘结果加上流速场中与该立方体对应的目标网格的格点上记录的相对流速,将相加结果记录在该立方体对应的目标网格的格点上,从而更新流速场中该立方体对应的目标网格的格点上记录的相对流速;其中,所述设定系数与立方体浸入三维液体的深度相关。
相应的,GPU可根据更新的流速场中各目标网格的格点所更新记录的相对流速,更新高度场,即更新高度场中目标网格的各格点对应记录的液面高度;如可将更新的目标网格的格点上记录的相对流速,纳入SWE(ShallowWater Equation,浅水方程算法)公式,计算出目标网格的各格点对应记录的液面高度,从而确定交互体对三维液体的运动状态影响;
需要说明的是,SWE的核心公式表示了液面高度和流速的互相影响,即液面高度的变化受流速的影响,流速的变化又受到液面高度值的影响。举例来说,一个格点与相邻格点的相对流速都是从这个格点流出,那么流出速度越大,该格点的液面高度下降就越快。而流出速度又与该格点和周围格点的高度差相关,高度相差越大,流出速度也越大;即SWE公式表示的液面高度与相对流速的关系为:一个格点记录的液面高度的变化速率,与所记录的与相邻格点的相对流速反应的流出速度为负相关关系,一个格点所记录的与相邻格点的相对流速反应的流出速度,与该格点记录的液面高度和相邻格点记录的液面高度的高度差为正相关关系。
进一步,GPU可基于更新的高度场进行液体仿真更新,更新液体仿真结果。
可选的,GPU更新流速场和高度场,以及确定液体仿真结果的过程可由ComputeShader提供的并行运算机制,并行处理进行。
可选的,上文描述的本发明实施例提供的液体仿真方法主要由GPU实现,液体交互方法涉及的交互体与三维液体的相互作用力计算由CPU实现;
需要说明的是,由于交互体对受力很敏感,一般情况下需要每帧得到最新的作用力,如果在GPU端计算交互体与三维液体的相互作用力,则需要每帧都从GPU往CPU回传高度场等数据,造成CPU端大量的计算开销和时间浪费;因此可将交互体与三维液体的相互作用力的计算(如交互体的受力计算)放到CPU端每帧计算,GPU每隔若干帧将最新的高度场等液体数据传给CPU,以使CPU进行交互体与三维液体的相互作用力计算;GPU不用每帧都回传液体数据的原因是在几帧的时间内液体高度和速度不会发生显著变化,因此可以沿用旧的液体数据来计算固体受力;
相应的,本发明实施例提供的液体仿真方法和液体交互方法,涉及的CPU和GPU处理走向可如图13所示,CPU可将初始化信息,用于近似交互体的立方体组的信息传输给GPU,GPU可通过Compute Shader更新高度场和流速场,并传输给CPU,由CPU基于高度场和流速场以及交互体的模型,执行本发明实施例提供的液体交互方法,进行交互体与三维液体的相互作用力计算;同时,GPU可基于所更新的高度场进行Pixe Shader(像素着色器)进行渲染绘制,得到液体仿真结果,并在液体仿真结果中渲染交互体。
本发明实施例提供的液体仿真方法,可由GPU使用Compute Shader并行处理,将待仿真三维液体的仿真简化到二维网格中实现,极大的减少计算量,降低计算开销,从而使实时流动的液体仿真成为可能;同时,使用基于空间网格的方式实现液体仿真可继承基于空间网格进行液体仿真所带来的较高逼真度的效果,从而在保障液体仿真结果逼真度的情况下,降低液体仿真的计算开销。
并且,本发明实施例提供的液体交互方法,可由CPU使用交互体的模型近似的立方体组,基于高度场进行三维液体与交互体的相互作用力的计算,降低液体交互方法处理过程中,三维液体与交互体的相互作用力的计算开销;并且GPU可根据立方体与三维液体的相对速度,以及立方体浸入三维液体的深度,更新流速场,进而以更新的流速场通过SWE公式更新高度场,从而使得GPU能够基于实时更新的高度场对液体仿真结果进行实时更新。
下面对本发明实施例提供的液体仿真装置进行介绍,下文描述的液体仿真装置,可以认为是GPU为实现本发明实施例提供的液体仿真方法所需设置的程序模块。下文描述的液体仿真装置可与上文描述的液体仿真方法相互对应参照。
图14为本发明实施例提供的液体仿真装置的结构框图,该液体仿真装置可应用于GPU,参照图14,该液体仿真装置可以包括:
初始化信息获取模块100,用于获取初始化信息;
二维网格确定模块110,用于根据所述初始化信息确定二维网格;
平面映射模块120,用于将待仿真三维液体的平面映射到所述二维网格中,确定所述待仿真三维液体的平面在所述二维网格中相应映射的目标网格;
高度映射模块130,用于将待仿真三维液体的液面高度映射到所述二维网格中,在目标网格的各格点记录所述待仿真三维液体相应的液面高度,得到所述待仿真三维液体在所述二维网格中相应的高度场;
仿真结果绘制模块140,用于根据所述高度场的更新,绘制三维液体,得到液体仿真结果。
可选的,仿真结果绘制模块140,用于根据所述高度场的更新,绘制三维液体,得到液体仿真结果,具体包括:
每隔设定数量帧更新所述高度场;
每隔设定数量帧,根据更新的高度场绘制三维液体,得到液体仿真结果。
可选的,高度映射模块130,用于将待仿真三维液体的液面高度映射到所述二维网格中,在目标网格的各格点记录所述待仿真三维液体相应的液面高度,具体包括:
在目标网格的各格点记录,格点对应的待仿真三维液体的平面坐标相应的液面高度。
可选的,仿真结果绘制模块140,用于每隔设定数量帧,根据更新的高度场绘制三维液体,得到液体仿真结果,具体包括:
将待仿真三维液体对应的Mesh,划分成由多个三角形拼接的网格;
每隔设定数量帧,根据更新的高度场对各三角形的各顶点的高度进行顶点偏移,得到各三角形的各顶点偏移后的顶点位置;
每隔设定数量帧,根据各三角形的各顶点偏移后的顶点位置绘制三维液体,得到液体仿真结果。
可选的,仿真结果绘制模块140,用于将待仿真三维液体对应的Mesh,划分成由多个三角形拼接的网格,具体包括:
将待仿真三维液体对应的Mesh使用曲面细分技术,动态划分成由多个三角形拼接的网格;
可选的,仿真结果绘制模块140,用于根据更新的高度场对各三角形的各顶点的高度进行顶点偏移,得到各三角形的各顶点偏移后的顶点位置,具体包括:
根据每隔设定数量帧更新的高度场记录的待仿真三维液体相应的液面高度,确定出划分成的各三角形的各顶点对应的液面高度;
将各三角形的各顶点的高度与对应的液面高度相加,得到各三角形的各顶点偏移后的顶点位置。
可选的,平面映射模块120,用于将待仿真三维液体的平面映射到所述二维网格中,确定所述待仿真三维液体的平面在所述二维网格中相应映射的目标网格,具体包括:
确定待仿真三维液体的底面的平面坐标,根据所述底面的平面坐标,将待仿真三维液体的平面映射到二维网格中与所述底面的平面坐标相应的区域,确定出二维网格中被该待仿真三维液体的平面所占据的网格,得到待仿真三维液体的平面在所述二维网格中相应映射的目标网格。
可选的,图15示出了本发明实施例提供的液体仿真装置的另一结构框图,结合图14和图15所示,该液体仿真装置还可以包括:
流速场确定模块150,用于确定目标网格的各格点与周围相邻格点之间的流动信息,得到待仿真三维液体在二维网格中相应的流速场;所述流动信息包括:各格点与周围相邻格点之间的相对流速;
相应的,仿真结果绘制模块140,用于每隔设定数量帧更新所述高度场,具体包括:
每隔设定数量帧更新所述流速场;
每隔设定数量帧,根据更新的流速场更新所述高度场。
可选的,仿真结果绘制模块140,用于每隔设定数量帧更新所述流速场,具体包括:
根据流体力学方程,每隔设定数量帧更新流速场;
或者,获取交互体与三维液体交互情况下,近似交互体的各立方体与三维液体的相对速度,各立方体浸入三维液体的深度,每隔设定数量帧,根据各立方体与三维液体的相对速度,以及各立方体浸入三维液体的深度,更新流速场。
可选的,仿真结果绘制模块140,用于每隔设定数量帧,根据更新的流速场更新所述高度场,具体包括:
每隔设定数量帧,根据更新的流速场以及浅水方程算法SWE公式,更新高度场;
其中,SWE公式表示的液面高度与相对流速的关系为:一个格点记录的液面高度的变化速率,与所记录的与相邻格点的相对流速反应的流出速度为负相关关系,一个格点所记录的与相邻格点的相对流速反应的流出速度,与该格点记录的液面高度和相邻格点记录的液面高度的高度差为正相关关系。
可选的,仿真结果绘制模块140,用于根据各立方体与三维液体的相对速度,以及各立方体浸入三维液体的深度,更新流速场,具体包括:
对于每一立方体,将立方体与三维液体的相对速度乘以设定系数,将相乘结果加上流速场中与该立方体对应的目标网格的格点记录的相对流速,将相加结果记录在该立方体对应的目标网格的格点上,以更新流速场中该立方体对应的目标网格的格点上记录的相对流速;其中,所述设定系数与立方体浸入三维液体的深度相关。
可选的,该液体仿真装置还可用于调用Compute Shade;
相应的,仿真结果绘制模块140可利用Compute Shade每隔设定数量帧更新所述高度场。
本发明实施例还提供一种液体交互装置,该液体交互装置可以认为是,CPU为实现本发明实施例提供的液体交互方法所需设置的程序模块。下文描述的液体交互装置可与上文描述的液体交互方法相互对应参照。
图16为本发明实施例提供的液体交互装置的结构框图,参照图16,该液体交互装置可以包括:
模型近似模块200,用于将交互体的模型使用立方体组进行近似,所述立方体组包括多个立方体;
高度场获取模块210,用于获取待仿真液体在二维网格中相应的高度场,其中,所述高度场对应有目标网格,所述目标网格为所述待仿真三维液体的平面在所述二维网格中相应映射的网格,且目标网格的各格点记录有待仿真三维液体相应的液面高度;
液面高度确定模块220,用于根据各立方体的水平位置坐标及所述高度场,确定各立方体对应的液面高度;
相互作用力确定模块230,用于根据各立方体对应的液面高度,确定三维液体与各立方体的相互作用力;
综合模块240,用于将三维液体与各立方体的相互作用力相综合,确定三维液体与交互体的相互作用力。
可选的,模型近似模块200,用于将交互体的模型使用立方体组进行近似,具体包括:
将交互体的模型周围空间划分成三维网格;
确定三维网格中位于交互体的模型内部的各格点;
根据位于交互体的模型内部的各格点生成对应的立方体,得到与交互体的模型近似的立方体组。
可选的,液面高度确定模块220,用于根据各立方体的水平位置坐标及所述高度场,确定各立方体对应的液面高度,具体包括:
将各立方体的空间位置坐标中的水平位置坐标代入到所述高度场表示的函数关系中,确定各立方体的水平位置坐标相应的液面高度,得到各立方对应的液面高度;其中,所述高度场表示待仿真液体的二维的平面坐标与液面高度的函数关系。
可选的,相互作用力确定模块230,用于根据各立方体对应的液面高度,确定三维液体与各立方体的相互作用力,具体包括:
根据各立方体的垂直高度坐标,与对应的液面高度,确定各立方体浸入三维液体的深度;
根据各立方体浸入三维液体的深度,确定三维液体与各立方体的相互作用力。
可选的,该液体交互装置还可用于:获取流速场;所述流速场对应有目标网格,所述目标网格为所述待仿真三维液体的平面在所述二维网格中相应映射的网格,且各目标网格的格点上记录有与相邻格点的相对流速;
相应的,相互作用力确定模块230,用于根据各立方体浸入三维液体的深度,确定三维液体与各立方体的相互作用力,具体包括:
根据各立方体浸入三维液体的深度,确定各立方体浸入三维液体的体积;
根据各立方体浸入三维液体的体积,各立方体的速度,三维液体的速度确定三维液体与各立方体的相互作用力;其中,三维液体的速度由所述流速场确定,各立方体的速度由物理引擎确定。
可选的,综合模块240,用于将三维液体与各立方体的相互作用力相综合,确定三维液体与交互体的相互作用力,具体包括:
根据各立方体的中心空间坐标对应的相互作用力,确定交互体的模型与各立方体的中心空间坐标相应位置,所对应的相互作用力,得到三维液体与交互体的相互作用力。
可选的,所述三维液体与各立方体的相互作用力包括:三维液体对各立方体的作用力,以及,各立方体对三维液体的作用力。
可选的,该液体交互装置还可用于:将各立方体与三维液体的相对速度,各立方体浸入三维液体的深度传输给GPU,以便GPU更新流速场;其中,各立方体与三维液体的相对速度由三维液体的速度和各立方体的速度确定。
本发明实施例还提供一种实现液体仿真方法的仿真设备,该仿真设备的结构可类似图1所示,包括:存储器和GPU;
其中,存储器存储有程序,GPU调用所述程序,所述程序用于:
获取初始化信息;
根据所述初始化信息确定二维网格;
将待仿真三维液体的平面映射到所述二维网格中,确定所述待仿真三维液体的平面在所述二维网格中相应映射的目标网格;
将待仿真三维液体的液面高度映射到所述二维网格中,在目标网格的各格点记录所述待仿真三维液体相应的液面高度,得到所述待仿真三维液体在所述二维网格中相应的高度场;
根据所述高度场的更新,绘制三维液体,得到液体仿真结果。
该程序的功能实现细节,以及扩展功能可参照上文相应部分的描述。
本发明实施例还提供一种实现液体交互方法的仿真设备,该仿真设备的结构可类似图1所示,包括:存储器和CPU;
其中,存储器存储有程序,CPU调用所述程序,所述程序用于:
将交互体的模型使用立方体组进行近似,所述立方体组包括多个立方体;
获取待仿真液体在二维网格中相应的高度场,其中,所述高度场对应有目标网格,所述目标网格为所述待仿真三维液体的平面在所述二维网格中相应映射的网格,且目标网格的各格点记录有待仿真三维液体相应的液面高度;
根据各立方体的水平位置坐标及所述高度场,确定各立方体对应的液面高度;
根据各立方体对应的液面高度,确定三维液体与各立方体的相互作用力;
将三维液体与各立方体的相互作用力相综合,确定三维液体与交互体的相互作用力。
该程序的功能实现细节,以及扩展功能可参照上文相应部分的描述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的核心思想或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种液体仿真方法,其特征在于,应用于图形处理器GPU,所述方法包括:
获取初始化信息;
根据所述初始化信息确定二维网格;
将待仿真三维液体的平面映射到所述二维网格中,确定所述待仿真三维液体的平面在所述二维网格中相应映射的目标网格;
将待仿真三维液体的液面高度映射到所述二维网格中,在目标网格的各格点记录所述待仿真三维液体相应的液面高度,得到所述待仿真三维液体在所述二维网格中相应的高度场;
确定目标网格的各格点与周围相邻格点之间的流动信息,得到待仿真三维液体在二维网格中相应的流速场;所述流动信息包括:各格点与周围相邻格点之间的相对流速;
每隔设定数量帧更新所述流速场;
每隔设定数量帧,根据更新的流速场以及浅水方程算法SWE公式,更新所述高度场;其中,SWE公式表示的液面高度与相对流速的关系为:一个格点记录的液面高度的变化速率,与所记录的与相邻格点的相对流速反应的流出速度为负相关关系,一个格点所记录的与相邻格点的相对流速反应的流出速度,与该格点记录的液面高度和相邻格点记录的液面高度的高度差为正相关关系;
每隔设定数量帧,根据更新的高度场绘制三维液体,得到液体仿真结果。
2.根据权利要求1所述的液体仿真方法,其特征在于,所述每隔设定数量帧,根据更新的高度场绘制三维液体,得到液体仿真结果包括:
将待仿真三维液体对应的三维网格模型Mesh,划分成由多个三角形拼接的网格;
每隔设定数量帧,根据更新的高度场对各三角形的各顶点的高度进行顶点偏移,得到各三角形的各顶点偏移后的顶点位置;
每隔设定数量帧,根据各三角形的各顶点偏移后的顶点位置绘制三维液体,得到液体仿真结果。
3.根据权利要求2所述的液体仿真方法,其特征在于,所述将待仿真三维液体对应的三维网格模型Mesh,划分成由多个三角形拼接的网格包括:
将待仿真三维液体对应的Mesh使用曲面细分技术,动态划分成由多个三角形拼接的网格;
所述根据更新的高度场对各三角形的各顶点的高度进行顶点偏移,得到各三角形的各顶点偏移后的顶点位置包括:
根据每隔设定数量帧更新的高度场记录的待仿真三维液体相应的液面高度,确定出划分成的各三角形的各顶点对应的液面高度;
将各三角形的各顶点的高度与对应的液面高度相加,得到各三角形的各顶点偏移后的顶点位置。
4.根据权利要求1所述的液体 仿真方法,其特征在于,所述每隔设定数量帧更新所述流速场包括:
根据流体力学方程,每隔设定数量帧更新流速场;
或者,获取交互体与三维液体交互情况下,近似交互体的各立方体与三维液体的相对速度,各立方体浸入三维液体的深度,每隔设定数量帧,根据各立方体与三维液体的相对速度,以及各立方体浸入三维液体的深度,更新流速场。
5.根据权利要求4所述的液体仿真方法,其特征在于,所述根据各立方体与三维液体的相对速度,以及各立方体浸入三维液体的深度,更新流速场包括:
对于每一立方体,将立方体与三维液体的相对速度乘以设定系数,将相乘结果加上流速场中与该立方体对应的目标网格的格点记录的相对流速,将相加结果记录在该立方体对应的目标网格的格点上,以更新流速场中该立方体对应的目标网格的格点上记录的相对流速;其中,所述设定系数与立方体浸入三维液体的深度相关。
6.一种液体交互方法,其特征在于,应用于中央处理器CPU,所述方法包括:
将交互体的模型使用立方体组进行近似,所述立方体组包括多个立方体;
获取待仿真液体在二维网格中相应的高度场,其中,所述高度场对应有目标网格,所述目标网格为所述待仿真三维液体的平面在所述二维网格中相应映射的网格,且目标网格的各格点记录有待仿真三维液体相应的液面高度;所述高度场是图形处理器GPU采用权利要求1所述的液体仿真方法获取到的最新的高度场,并每隔设定数量帧传输给所述CPU的;
根据各立方体的水平位置坐标及所述高度场,确定各立方体对应的液面高度;
根据各立方体对应的液面高度,确定三维液体与各立方体的相互作用力;
将三维液体与各立方体的相互作用力相综合,确定三维液体与交互体的相互作用力。
7.根据权利要求6所述的液体交互方法,其特征在于,所述将交互体的模型使用立方体组进行近似包括:
将交互体的模型周围空间划分成三维网格;
确定三维网格中位于交互体的模型内部的各格点;
根据位于交互体的模型内部的各格点生成对应的立方体,得到与交互体的模型近似的立方体组。
8.根据权利要求6所述的液体交互方法,其特征在于,所述根据各立方体的水平位置坐标及所述高度场,确定各立方体对应的液面高度包括:
将各立方体的空间位置坐标中的水平位置坐标代入到所述高度场表示的函数关系中,确定各立方体的水平位置坐标相应的液面高度,得到各立方对应的液面高度;其中,所述高度场表示待仿真液体的二维的平面坐标与液面高度的函数关系。
9.根据权利要求6所述的液体交互方法,其特征在于,所述根据各立方体对应的液面高度,确定三维液体与各立方体的相互作用力包括:
根据各立方体的垂直高度坐标,与对应的液面高度,确定各立方体浸入三维液体的深度;
根据各立方体浸入三维液体的深度,确定三维液体与各立方体的相互作用力。
10.根据权利要求9所述的液体交互方法,其特征在于,所述方法还包括:
获取流速场;所述流速场对应有目标网格,所述目标网格为所述待仿真三维液体的平面在所述二维网格中相应映射的网格,且各目标网格的格点上记录有与相邻格点的相对流速;
所述根据各立方体浸入三维液体的深度,确定三维液体与各立方体的相互作用力包括:
根据各立方体浸入三维液体的深度,确定各立方体浸入三维液体的体积;
根据各立方体浸入三维液体的体积,各立方体的速度,三维液体的速度确定三维液体与各立方体的相互作用力;其中,三维液体的速度由所述流速场确定,各立方体的速度由物理引擎确定。
11.一种液体仿真装置,其特征在于,应用于图形处理器GPU,包括:
初始化信息获取模块,用于获取初始化信息;
二维网格确定模块,用于根据所述初始化信息确定二维网格;
平面映射模块,用于将待仿真三维液体的平面映射到所述二维网格中,确定所述待仿真三维液体的平面在所述二维网格中相应映射的目标网格;
高度映射模块,用于将待仿真三维液体的液面高度映射到所述二维网格中,在目标网格的各格点记录所述待仿真三维液体相应的液面高度,得到所述待仿真三维液体在所述二维网格中相应的高度场;
流速场确定模块,用于确定目标网格的各格点与周围相邻格点之间的流动信息,得到待仿真三维液体在二维网格中相应的流速场;所述流动信息包括:各格点与周围相邻格点之间的相对流速;
仿真结果绘制模块,用于每隔设定数量帧更新所述流速场;每隔设定数量帧,根据更新的流速场以及浅水方程算法SWE公式,更新所述高度场;其中,SWE公式表示的液面高度与相对流速的关系为:一个格点记录的液面高度的变化速率,与所记录的与相邻格点的相对流速反应的流出速度为负相关关系,一个格点所记录的与相邻格点的相对流速反应的流出速度,与该格点记录的液面高度和相邻格点记录的液面高度的高度差为正相关关系;每隔设定数量帧,根据更新的高度场绘制三维液体,得到液体仿真结果。
12.一种液体交互装置,其特征在于,应用于中央处理器CPU,包括:
模型近似模块,用于将交互体的模型使用立方体组进行近似,所述立方体组包括多个立方体;
高度场获取模块,用于获取待仿真液体在二维网格中相应的高度场,其中,所述高度场对应有目标网格,所述目标网格为所述待仿真三维液体的平面在所述二维网格中相应映射的网格,且目标网格的各格点记录有待仿真三维液体相应的液面高度;所述高度场是图形处理器GPU采用权利要求1所述的液体仿真方法获取到的最新的高度场,并每隔设定数量帧传输给所述CPU的;
液面高度确定模块,用于根据各立方体的水平位置坐标及所述高度场,确定各立方体对应的液面高度;
相互作用力确定模块,用于根据各立方体对应的液面高度,确定三维液体与各立方体的相互作用力;
综合模块,用于将三维液体与各立方体的相互作用力相综合,确定三维液体与交互体的相互作用力。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710823492.8A CN109509243B (zh) | 2017-09-13 | 2017-09-13 | 一种液体仿真方法、液体交互方法及装置 |
PCT/CN2018/101329 WO2019052313A1 (zh) | 2017-09-13 | 2018-08-20 | 一种液体仿真方法、液体交互方法及装置 |
US16/601,736 US11062513B2 (en) | 2017-09-13 | 2019-10-15 | Liquid simulation method, liquid interaction method and apparatuses |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710823492.8A CN109509243B (zh) | 2017-09-13 | 2017-09-13 | 一种液体仿真方法、液体交互方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109509243A CN109509243A (zh) | 2019-03-22 |
CN109509243B true CN109509243B (zh) | 2022-11-11 |
Family
ID=65723236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710823492.8A Active CN109509243B (zh) | 2017-09-13 | 2017-09-13 | 一种液体仿真方法、液体交互方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11062513B2 (zh) |
CN (1) | CN109509243B (zh) |
WO (1) | WO2019052313A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109598777B (zh) * | 2018-12-07 | 2022-12-23 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、设备及存储介质 |
CN112044077B (zh) * | 2020-09-02 | 2022-02-11 | 北京冰封互娱科技有限公司 | 水体配置方法、装置、设备和存储介质 |
CN112214921B (zh) * | 2020-10-27 | 2022-02-18 | 上海工程技术大学 | 一种基于应力矢量的三维边坡稳定性评价方法 |
CN112446942B (zh) * | 2020-11-09 | 2023-12-19 | 北京达佳互联信息技术有限公司 | 特效渲染方法、装置、电子设备及存储介质 |
CN112862942B (zh) * | 2021-02-08 | 2024-04-09 | 腾讯科技(深圳)有限公司 | 物理特效模拟方法、装置、电子设备和存储介质 |
CN112926252B (zh) * | 2021-02-09 | 2024-03-26 | 北京工业大学 | 液体与布料交互现象模拟方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6847359B1 (en) * | 1999-10-14 | 2005-01-25 | Fuji Photo Film Co., Ltd | Image processing apparatus and image capturing apparatus, which approximate object shapes using a plurality of polygon patches |
US8204725B1 (en) * | 2008-07-25 | 2012-06-19 | Nvidia Corporation | Real-time breaking waves for shallow water simulations |
CN106446425A (zh) * | 2016-09-29 | 2017-02-22 | 华东师范大学 | 一种基于视频重建与sph模型的流固交互仿真方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003044720A1 (en) * | 2001-11-15 | 2003-05-30 | Nintendo Software Technology Corporation | System and method of simulating and imaging realistic water surface |
JP3853329B2 (ja) * | 2004-03-31 | 2006-12-06 | 株式会社コナミデジタルエンタテインメント | ゲームプログラム及びゲーム装置 |
US8638330B1 (en) * | 2009-10-28 | 2014-01-28 | Google Inc. | Water surface generation |
US9134454B2 (en) | 2010-04-30 | 2015-09-15 | Exxonmobil Upstream Research Company | Method and system for finite volume simulation of flow |
CN104268943B (zh) * | 2014-09-28 | 2017-05-03 | 北京航空航天大学 | 一种基于欧拉‑拉格朗日耦合方法的流体仿真方法 |
CN104778754B (zh) * | 2015-03-10 | 2019-01-15 | 复旦大学 | 水下目标动态尾迹与流体微元轨道速度的数值仿真方法 |
US9940689B2 (en) * | 2015-11-02 | 2018-04-10 | Nvidia Corporation | Latency-resistant sparse simulation technique, system and method |
CN106202806A (zh) * | 2016-07-25 | 2016-12-07 | 西南科技大学 | 一种用于虚拟实验的液体柱模拟方法 |
WO2018022647A1 (en) * | 2016-07-29 | 2018-02-01 | Exxonmobil Upstream Research Company | Method and system for generating a subsurface model |
-
2017
- 2017-09-13 CN CN201710823492.8A patent/CN109509243B/zh active Active
-
2018
- 2018-08-20 WO PCT/CN2018/101329 patent/WO2019052313A1/zh active Application Filing
-
2019
- 2019-10-15 US US16/601,736 patent/US11062513B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6847359B1 (en) * | 1999-10-14 | 2005-01-25 | Fuji Photo Film Co., Ltd | Image processing apparatus and image capturing apparatus, which approximate object shapes using a plurality of polygon patches |
US8204725B1 (en) * | 2008-07-25 | 2012-06-19 | Nvidia Corporation | Real-time breaking waves for shallow water simulations |
CN106446425A (zh) * | 2016-09-29 | 2017-02-22 | 华东师范大学 | 一种基于视频重建与sph模型的流固交互仿真方法 |
Non-Patent Citations (1)
Title |
---|
Real-time Simulation of Large Bodies of Water With Small Scale Details;Nuttapong Chentane,Matthias Müller;《Eurographics/ ACM SIGGRAPH Symposium on Computer Animation (2010)》;20100702;第201-205页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2019052313A1 (zh) | 2019-03-21 |
US11062513B2 (en) | 2021-07-13 |
CN109509243A (zh) | 2019-03-22 |
US20200043230A1 (en) | 2020-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109509243B (zh) | 一种液体仿真方法、液体交互方法及装置 | |
US11010509B2 (en) | Systems and methods for computer simulation of detailed waves for large-scale water simulation | |
US7586489B2 (en) | Method of generating surface defined by boundary of three-dimensional point cloud | |
US7983884B2 (en) | Water particle manipulation | |
US8199148B2 (en) | System and method for surfacing of particle systems | |
KR101214661B1 (ko) | 정점 응집맵을 이용한 지형 데이터 시각화 방법 | |
CN112516595B (zh) | 岩浆渲染方法、装置、设备和存储介质 | |
Kim et al. | Synthesizing Large‐Scale Fluid Simulations with Surface and Wave Foams via Sharp Wave Pattern and Cloudy Foam | |
KR100898989B1 (ko) | 물 표면의 포말 생성 및 표현 장치와 그 방법 | |
CN115906703A (zh) | 一种用于实时交互应用的gpu流体仿真方法 | |
CN115099025A (zh) | 在流体模型中计算流体流速的方法、电子设备及存储介质 | |
Ottosson | Real-time interactive water waves | |
CN114912303A (zh) | 三维流体的展示方法、装置、电子设备及存储介质 | |
CN114676616A (zh) | 一种三维场景下流体风场图渲染方法 | |
Grottel et al. | Real-Time Visualization of Urban Flood Simulation Data for Non-Professionals. | |
CN111506680B (zh) | 地形数据生成、渲染方法及装置、介质、服务器、终端 | |
Coutinho et al. | Rain scene animation through particle systems and surface flow simulation by SPH | |
Cords et al. | Interactive screen-space surface rendering of dynamic particle clouds | |
El Hajjar et al. | A model for real-time on-surface flows | |
CN114912376A (zh) | 流体碰撞效果的展示方法、装置、电子设备及存储介质 | |
CN115641402A (zh) | 水体渲染方法、装置和电子设备 | |
Goswami | Interactive Water Surfaces using GPU based eWave algorithm in a game production environment | |
Liu et al. | Building a Real-Time System on GPUs for Simulation and Rendering of Realistic 3D Liquid in Video Games | |
Liang et al. | Performance analysis of improvemental LOD technology under VR headsets | |
CN118045352A (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 |