CN102592297B - 一种基于3d网格的实时水波纹理处理方法 - Google Patents

一种基于3d网格的实时水波纹理处理方法 Download PDF

Info

Publication number
CN102592297B
CN102592297B CN201110447886.0A CN201110447886A CN102592297B CN 102592297 B CN102592297 B CN 102592297B CN 201110447886 A CN201110447886 A CN 201110447886A CN 102592297 B CN102592297 B CN 102592297B
Authority
CN
China
Prior art keywords
water wave
node
wave
water
grid
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.)
Expired - Fee Related
Application number
CN201110447886.0A
Other languages
English (en)
Other versions
CN102592297A (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.)
TCL Corp
Original Assignee
TCL Corp
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 TCL Corp filed Critical TCL Corp
Priority to CN201110447886.0A priority Critical patent/CN102592297B/zh
Publication of CN102592297A publication Critical patent/CN102592297A/zh
Application granted granted Critical
Publication of CN102592297B publication Critical patent/CN102592297B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明适用于图像处理领域,提供了一种基于2D网格的实时水波纹理处理方法,该方法包括下述步骤:根据显示图像的长宽比设置用于模拟水波纹理的网格,并对网格中的每个节点设置纹理坐标;将水波的传递模拟为正弦波,并根据波动方程计算水波到达网格的每个节点时的高度值;根据所述每个节点的高度值计算每个节点的纹理坐标的增量与波动平均法向量;根据所述的纹理坐标的增量与波动平均法向量实时渲染生成水波的波动。本发明实施例,对网格的每个节点设置纹理坐标,通过节点的高度值计算纹理坐标的增量,进而模拟水波图像,使得无需通过求导、求积分等复杂的算法,只需计算波动方程即可模拟水波图像,降低了对显示设备硬件的需求。

Description

一种基于3D网格的实时水波纹理处理方法
技术领域
本发明属于图像处理领域,尤其涉及一种基于3D网格的实时水波纹理处理方法。
背景技术
水波图像的模拟一直是计算机图形学研究的热点,由于水面的物理原型十分复杂,实时地对其进行精确描述相当困难,因此研究者们一直在寻求真实感和复杂度之间的平衡点,基于Navier-Stokes方程的水面模型,模型精确但求解复杂,不适合实时计算。也有人提出了线性生成海面网格的方法,采用逆FFT计算,求得一定数量的线性函数叠加描述波浪,该类方法追求统计学上的模拟,未考虑物理精确性,有待于与流体动力学理论的结合;而在游戏等需要快速生成水体的场合,往往采用perlin噪声等噪声源的预计算生成水面,该方法可以生成视觉效果良好的水面,但无法结合物理计算。另外还提出了一种基于GPU的实时生成和渲染水面的方法。该方法仍使用折射和反射纹理的方式。而不同的是,纹理生成后,水面合成及模拟步骤均在GPU片段程序中实现。
由于目前开发板硬件只支持OpenES1.0接口,不能使用可编程显卡的强大的流计算能力。鉴于以上的水波模拟算法虽然可以获得一些模拟的真实效果,但是对于开发板处理速度慢,只支持Open ES1.0的瓶颈来说,复杂而计算量大的算法、使用GPU可编程显卡都是无法在目前的智能电视等智能设备开发平台上应用,所以针对目前的硬件状况,以上的算法均不适用于在智能电视等智能设备开发平台上使用。
发明内容
本发明实施例的目的在于提供一种基于3D网格的实时水波纹理处理方法,旨在解决在现有算法处理水面计算复杂,硬件要求高的问题。
本发明实施例是这样实现的,一种基于3D网格的实时水波纹理处理方法,所述方法包括下述步骤:
根据显示图像的长宽比设置用于模拟水波纹理的网格,并对网格中的每个节点设置纹理坐标;
将水波的传递模拟为正弦波,并根据波动方程计算水波到达网格的每个节点的高度值,其中A表示水波的振幅,x0表示水波源的网格坐标,x表示节点与水波源坐标的笛卡尔距离,Z(x,t)表示与水波源坐标的笛卡尔距离为x的节点在t时刻的水波高度值,W表示水波的波长,n表示第n帧时的水波;
根据所述每个节点的高度值计算每个节点的纹理坐标的增量与波动平均法向量,所述波动平均法向量为网格中三个相邻节点法向量的平均值;
根据所述的波动平均法向量与纹理坐标的增量通过图像渲染器生成二维坐标系下像素的变化方向与幅度的调整。
本发明实施例,按照长宽比将显示图像虚拟划分为一个网格,对网格的每个节点设置纹理坐标,根据波动方程计算水波通过网格中每个节点的高度值,通过该高度值计算纹理坐标的增量,进而模拟水波图像,使得无需通过求导、求积分等复杂的算法,只需计算波动方程即可模拟水波图像,降低了对显示设备硬件的需求。
附图说明
图1是本发明实施例提供的本发明实施例提供的基于3D网格的实时水波纹理处理方法实现流程图;
图2是本发明实施例提供的图1所示的步骤S101的具体实现流程图;
图3是本发明实施例提供的图1所示的步骤S103的具体实现流程图;
图4是本发明实施例提供的法向量的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例,按照长宽比将显示图像虚拟划分为一个网格,对网格的每个节点设置纹理坐标,根据波动方程计算水波通过网格中每个节点时的高度值,通过该高度值计算纹理坐标的增量,进而模拟水波图像,使得无需通过求导、求积分等复杂的算法,只需计算波动方程即可模拟水波图像,降低了对显示设备硬件的需求。
实施例一:
图1示出了本发明实施例提供的基于3D网格的实时水波纹理处理方法的实现流程,详述如下:
在步骤S101中,根据显示图像的长宽比设置用于模拟水波纹理的网格,并对网格中的每个节点设置纹理坐标。
在本发明实施例中,按照长宽比将显示图像虚拟划分为一个网格,所述网格的每个节点对应纹理坐标,所述网格的每个节点用于计算该点水波的高度,所述长宽比包括:16:9、4:3等,所述显示图像包括:智能电视、电脑显示器、智能手持设备、投影仪的显示图像等,其具体实现方法详见图2以及对图2的描述。
在步骤S102中,将水波的传递模拟为正弦波,并根据波动方程计算水波到达所述网格的每个节点的高度值。
在本发明实施例中,将水波的传递模拟为正弦波,并根据波动方程计算水波到达网格的每个节点时产生的高度值,其中A表示水波的振幅,x0表示水波源的网格坐标,x表示节点与水波源坐标的笛卡尔距离,则Z(x,t)表示:与水波源坐标的笛卡尔距离为x的节点在t时刻的水波高度值。当只有一条水波时,按照波动方程直接计算该时刻的高度值即可;当有多条水波时,则将每条水波在该时刻产生的高度值进行线性叠加。
在步骤S103中,根据所述每个节点的高度值计算每个节点的纹理坐标的增量与波动平均法向量。
在本发明实施例中,根据每个节点的高度值计算节点的纹理坐标的增量和波动平均法向量,其中纹理坐标的增量用于表示该节点增加的数值,波动平均法向量的方向用于表示该节点增量的方向,步骤S102计算的每个节点的高度值即为节点的增量,计算波动平均法向量的步骤详见图3以及对图3的描述。
同时,随着水波个数的增加,水波高度值的计算量线性增长,为减少计算量,算法可以设置模拟水波个数的上限,用户根据实际的硬件运算速度和渲染速度,设置模拟水波的个数。为了达到无限模拟水波的目的,可以自动或手动替换原有水波,水波在传递当中能量会逐渐丢失,表现为水波的振幅越来越小,直至消失,所以自动替换的方法为:替换当前振幅最小或振幅为0的水波。即设置D/(W*S*T)衰减系数对振幅增量进行衰减的步骤,衰减计算的公式为:An=An-1*[D/(W*S*T)],其中An表示第N帧时水波的波峰、An-1表示第N-1帧时的波峰、D表示网格节点到水波中心的距离、W表示水波的波长、S表示水波在介质中得传播速度、T表示水波波动的时间(T不能为0)。
在步骤S104中,根据所述纹理坐标的增量与波动平均法向量实时渲染生成水波的波动。
在本发明实施例中,根据方程Z(t0+t)=Z0(t0)+△Z实时更新水波质点的高度场(节点的增量),所述的高度场表示为方程Z(t)=X(x,y);以所述的波动平均法向量作为桥梁(节点增量的方向),将三维网格模型的节点波动映射为显示图像的纹理坐标的像素偏移。即根据所述的波动平均法向量与纹理坐标的增量通过图像渲染器生成二维坐标系下像素的变化方向与幅度的调整。
本发明实施例还可以生成随机的水波激荡,使水波向四周传递,通过上述方法计算水波的叠加、反射、衰减、平静。以及通过用户触摸或者鼠标激荡水波,水波向四周传递,通过上述方法计算水波的叠加、反射、衰减、平静。
本发明实施例,按照长宽比将显示图像虚拟划分为一个网格,对网格的每个节点设置纹理坐标,根据波动方程计算水波通过网格中每个节点时的高度值,通过该高度值计算纹理坐标的增量,进而模拟水波图像,使得无需通过求导、求积分等复杂的算法,只需计算波动方程即可模拟水波图像,降低了对显示设备硬件的需求。
实施例二:
图2示出了本发明实施例提供的图1所示的步骤S101的具体实现流程,详述如下:
在步骤S201中,设置水波三维网格模型,所述网格模型根据显示图像长宽自适应网格节点的X值、Y值,并且网格节点Z值初始时为0。
在本发明实施例中,设置水波三维网格模型,所述网格模型根据显示图像的长宽比自适应网格节点的X值、Y值,并且网格节点Z值初始时为0。所述长宽比包括:16:9、4:3等。
举例说明:
设一个显示图像的长宽比为16:9,将宽等分为90份,则按照长宽比,长应等分为160份,所以这个显示图像的水波网格模型为160*90,并根据所述网格模型自适应每个节点的X值、Y值,且每个节点的Z值初始时为0。
在步骤S202中,根据所述网格模型设置显示图像的纹理坐标,所述纹理坐标对应三维网格模型的节点设置。
在本发明实施例中,网格中的每个节点对应水波的纹理,根据网格模型获取每个节点的纹理坐标。
举例说明:
设显示图像的起始点(通常为左下角)的坐标为(0,0),终止点(通常为右上角)的坐标为(16,9),网格模型为160*90,则网格中每个节点的纹理坐标为(0+16/160*节点的行数,0+9/90*节点的列数)。
实施例三:
图3示出了本发明实施例提供的图1所示的步骤S103的具体实现流程,详述如下:
在步骤S301中,根据每个节点水波的坐标值计算所述节点的法向量。
在本发明实施例中,根据每个节点计算出的水波的高度值,获取每个节点的三维笛卡尔坐标,并根据所述坐标计算该节点的法向量。
在步骤S302中,通过求平均值法计算网格中每个节点的波动平均法向量。
在本发明实施例中,每三个相邻的节点之间通过求平均值法计算每个节点的波动平均法向量,所述波动平均法向量的方向用于表示节点增量的方向。
举例说明:
如图4所示,设某个节点A1的三维笛卡尔坐标为(X1,Y1,Z1),A1正上方节点A2的三维笛卡尔坐标为(X2,Y2,Z2),A1右边节点A3的三维笛卡尔坐标为(X3,Y3,Z3),用A2-A1获取向量a,A3-A1获取向量b,则向量a叉乘向量b即可求得A1处的法向量N1,为了计算精确,重复上述方法求得A2处的法向量N2,A3处的法向量N3,最终通过求平均值法求得节点A1处的法向量为(N1+N2+N3)/3。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种基于3D网格的实时水波纹理处理方法,其特征在于,所述方法包括以下步骤:
设置水波三维网格模型,所述网格模型根据显示图像长宽自适应网格节点的X值、Y值,并且网格节点Z值初始时为0;
根据所述网格模型设置显示图像的纹理坐标,所述纹理坐标对应三维网格模型的节点设置;
将水波的传递模拟为正弦波,并根据波动方程计算水波到达网格的每个节点的高度值,其中A表示水波的振幅,x0表示水波源的网格坐标,x表示节点与水波源坐标的笛卡尔距离,Z(x,t)表示与水波源坐标的笛卡尔距离为x的节点在t时刻的水波高度值,W表示水波的波长,n表示第n帧时的水波,T表示水波的周期;
根据所述每个节点的高度值计算每个节点的纹理坐标的增量与波动平均法向量,所述波动平均法向量为网格中三个相邻节点法向量的平均值;
根据所述的波动平均法向量与纹理坐标的增量通过图像渲染器生成二维坐标系下像素的变化方向与幅度的调整;
实时捕捉波幅最小节点的水波,对所述最小节点水波设置替换为振幅为零的水波。
2.如权利要求1所述的方法,其特征在于,所述坐标的增量的计算还包括,设置D/(W*S*T)衰减系数对振幅增量进行衰减的步骤,衰减计算的公式为:An=An-1*[D/(W*S*T)],其中An表示第N帧时水波的波峰、An-1表示第N-1帧时的波峰、D表示网格节点到水波中心的距离、W表示水波的波长、S表示水波在介质中的传播速度、T表示水波波动的时间。
3.如权利要求1所述的方法,其特征在于,所述波动平均法向量的计算,具体为:
根据每个节点水波的坐标值计算该节点的法向量;
每三个相邻的节点之间通过求平均值法计算每个节点的波动平均法向量。
4.如权利要求1所述的方法,其特征在于,所述计算水波到达网格的每个节点的高度值的方法具体为:
当只有一条水波时,按照波动方程直接计算波幅值;
或者,
当有多条水波时,则将每条水波产生的波幅值进行线性叠加。
5.如权利要求1所述的方法,其特征在于,所述的方法还包括,设置随机的水波激荡,水波向四周传递,形成水波的叠加、反射、衰减、平静步骤。
6.如权利要求1所述的方法,其特征在于,所述的方法还包括,设置用户触摸或者鼠标激荡水波,水波向四周传递,形成水波的叠加、反射、衰减、平静步骤。
CN201110447886.0A 2011-12-27 2011-12-27 一种基于3d网格的实时水波纹理处理方法 Expired - Fee Related CN102592297B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110447886.0A CN102592297B (zh) 2011-12-27 2011-12-27 一种基于3d网格的实时水波纹理处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110447886.0A CN102592297B (zh) 2011-12-27 2011-12-27 一种基于3d网格的实时水波纹理处理方法

Publications (2)

Publication Number Publication Date
CN102592297A CN102592297A (zh) 2012-07-18
CN102592297B true CN102592297B (zh) 2015-01-07

Family

ID=46480887

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110447886.0A Expired - Fee Related CN102592297B (zh) 2011-12-27 2011-12-27 一种基于3d网格的实时水波纹理处理方法

Country Status (1)

Country Link
CN (1) CN102592297B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103474007B (zh) * 2013-08-27 2015-08-19 湖南华凯文化创意股份有限公司 一种互动式显示方法及系统
CN103578106B (zh) * 2013-11-06 2016-08-17 北京航空航天大学 一种基于真实数据的乱序水面编辑方法
CN107607092B (zh) * 2017-08-22 2019-11-12 哈尔滨工程大学 一种基于无人机遥感的波浪与浮体运动预报系统
CN107958480B (zh) * 2017-11-23 2021-04-30 腾讯科技(上海)有限公司 图像渲染方法、装置及存储介质
CN107967708A (zh) * 2017-12-06 2018-04-27 北京像素软件科技股份有限公司 水波模拟方法及装置
US11010509B2 (en) 2018-05-23 2021-05-18 Nvidia Corporation Systems and methods for computer simulation of detailed waves for large-scale water simulation
CN109410292B (zh) * 2018-09-30 2023-07-07 深圳市创维软件有限公司 实现水波纹动效的方法、装置、设备及存储介质
CN112214187B (zh) * 2019-07-11 2022-04-05 北京字节跳动网络技术有限公司 水波纹图像实现方法及装置
CN111008928B (zh) * 2019-11-26 2024-03-29 杭州小影创新科技股份有限公司 一种实现图像雨滴滴落、划动波纹特效的方法及系统
CN112465946B (zh) * 2020-12-08 2023-07-14 网易(杭州)网络有限公司 波纹的渲染方法、装置、电子设备及计算机可读介质
CN112767236B (zh) * 2020-12-30 2022-09-16 稿定(厦门)科技有限公司 图像扭曲效果渲染方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101930622A (zh) * 2009-09-29 2010-12-29 北京航空航天大学 浅水水波的真实感建模与绘制
CN102222362A (zh) * 2011-06-28 2011-10-19 Tcl集团股份有限公司 一种水波特效产生方法、装置及电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI353559B (en) * 2006-12-18 2011-12-01 Inst Information Industry Apparatus, method, application program and compute
CN101814006A (zh) * 2010-04-28 2010-08-25 中兴通讯股份有限公司 一种实现水波纹特效的方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101930622A (zh) * 2009-09-29 2010-12-29 北京航空航天大学 浅水水波的真实感建模与绘制
CN102222362A (zh) * 2011-06-28 2011-10-19 Tcl集团股份有限公司 一种水波特效产生方法、装置及电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
动态水域仿真技术的研究和实现;张丹;《科技资讯》;20110803(第22期);第5页中栏第2.1,2.2节,右栏第3节 *
邹清,等.真实感水波的模拟.《小型微型计算机系统》.2008,第29卷(第5期),963-966. *

Also Published As

Publication number Publication date
CN102592297A (zh) 2012-07-18

Similar Documents

Publication Publication Date Title
CN102592297B (zh) 一种基于3d网格的实时水波纹理处理方法
US11010509B2 (en) Systems and methods for computer simulation of detailed waves for large-scale water simulation
US8289327B1 (en) Multi-stage fire simulation
CN106228591B (zh) 虚拟现实超高速实时渲染方法
CN104574484B (zh) 一种基于交互操作产生图片动态效果的方法和装置
US20150227651A1 (en) Liquid flow simulation techniques
CN106934192B (zh) 一种参数优化的浅水方程模型水体建模方法
US20120229463A1 (en) 3d image visual effect processing method
KR101319996B1 (ko) 유체 시뮬레이션 방법
US11803674B2 (en) Dual mode post processing
KR101349236B1 (ko) 유체유동 표현 방법 및 그 장치
Wendt et al. Finite volume flow simulations on arbitrary domains
Baravalle et al. Realistic modeling of porous materials
CN115099025A (zh) 在流体模型中计算流体流速的方法、电子设备及存储介质
Fujisawa et al. Particle-based shallow water simulation with splashes and breaking waves
KR101691476B1 (ko) 방향 벡터 보간에 의한 3차원 형상의 온도-적외선 신호 계산 방법 및 장치
CN114912303A (zh) 三维流体的展示方法、装置、电子设备及存储介质
Maule et al. Efficient collision detection and physics-based deformation for haptic simulation with local spherical hash
TWI797761B (zh) 虛擬實境的顯示方法
Ni et al. Summary of fluid simulation based on physical model
Bunlutangtum et al. Enhanced view-dependent adaptive grid refinement for animating fluids
KR100441081B1 (ko) 선형방정식을 이용한 삼각함수 계산 방법
Kinakh Realistic water modeling and GPU-based rendering
CN118071899A (zh) 一种虚拟人与水面交互系统
Gao et al. A Controllable Spring Force Based Method for Fluid Surface Disturbance Details Simulation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150107

CF01 Termination of patent right due to non-payment of annual fee