CN102855400B - 一种基于投影网格的海洋表面建模及实时光照方法 - Google Patents

一种基于投影网格的海洋表面建模及实时光照方法 Download PDF

Info

Publication number
CN102855400B
CN102855400B CN201210333382.0A CN201210333382A CN102855400B CN 102855400 B CN102855400 B CN 102855400B CN 201210333382 A CN201210333382 A CN 201210333382A CN 102855400 B CN102855400 B CN 102855400B
Authority
CN
China
Prior art keywords
ocean surface
ocean
real
grid
ray
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
CN201210333382.0A
Other languages
English (en)
Other versions
CN102855400A (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.)
Beihang University
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN201210333382.0A priority Critical patent/CN102855400B/zh
Publication of CN102855400A publication Critical patent/CN102855400A/zh
Application granted granted Critical
Publication of CN102855400B publication Critical patent/CN102855400B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供一种基于投影网格的海洋表面建模及实时光照方法,包括:使用投影网格建立海洋表面几何模型,并通过变换摄像机位置和观测方向等参数,检测投影网格与视景体的相交部分,确立处于视景体内的所需绘制的海洋表面的范围;基于快速傅里叶变换(Fast Fourier Transform)来模拟海洋表面的波动效果,根据波浪长度的不同量级,采样不同量级波长的频率并将其转换成振幅信息,用复数空间三角函数和的形式来表示动态变化的波浪;通过将光线分解为太阳入射光、天空反射光和海洋折射光,并将光照计算的积分简化成多项式乘积或者线性函数的形式,来近似计算海洋表面的光照效果。本发明可满足环境光照下对动态海洋表面的仿真,具有高度的逼真性和良好的实时性等优点。

Description

一种基于投影网格的海洋表面建模及实时光照方法
技术领域
本发明涉及一种基于投影网格的海洋表面建模方法和实时光照方法。
背景技术
水流、海面、海浪、烟雾、火焰等现象具有复杂的运动规律,无法用常规方法来对其进行几何建模,对这些现象的仿真在在计算流体力学(CFD)领域一直是研究的热点。而在计算机图形学领域,则主要结合物理控制方程以及几何建模和绘制方法,按照时间的推移逐推演出流体的运动形式,并从视觉上来实时模拟这些现象。
目前最常用的流体模拟方法主要分为欧拉网格法和基于粒子的拉格朗日法,这些方法起源于流体运动的物理模型,并随着硬件计算能力的提高,逐渐在虚拟现实领域得到重视。物理学中,Navier-Stokes方程描述了流体运动的真实规律。他建立了流体各种属性之间的关系,包括粒子动量的变化率(加速度),作用在液体内部的压力的变化,耗散粘滞力(类似于摩擦力)以及重力等外力作用之间的关系。为了能够实时更新流体的状态,需要对整个“场”中的每一处进行实时更新,在计算一个量如何沿着速度场移动时,若采用欧拉网格方法,可以将每个网格单元的坐标点处看成是一个相应的粒子,与基于粒子的拉格朗日法不同的是,网格中粒子的位置并不随流体的运动,流体所受到的外力作用而变化而是将自身的一些属性信息传递给相邻网格的粒子。
Eric Bruneton,Fabrice Neyret使用Gerstner波对流体表面进行建模,并使用三角函数实现海洋表面的动态波动,根据距离视点位置的远近,可为处于不同距离的空间位置赋予不同的权值,使得波的高度随着距离的增加而衰减,直到无限远处的停止波动;而整个流体表面则用若干条三角函数叠加构成,将一定的流体区域投影到视口空间,根据风场的大小为不同空间设置不同的高度来实现流体表面的动态效果。Cem Yuksel和Donald H.House等人基于波粒子的概念将波粒子转化成高度场表面,提出了一种全新的方法来实时模拟流体水面和漂浮物体间相互作用所产生的波纹。这种方法简单,效率高,并且对波粒子的模拟非常稳定,适用于大多数有边界的流体模拟。Nils Thuerey和Chris Wojtan等人采用基于三角网格表面张力的方法将流体的模拟分为两层,第一层采用欧拉的方法模拟表面张力,第二层采用拉格朗日有限元法模拟流体表面子网格的波动细节,有效模拟了有强表面张力的复杂现象。
表面光照效果包括光的反射,透明性,表面纹理和阴影等。为可见对象建立物理准确的光照模型是一个非常复杂的过程,这包含许多因素,如材料特性,对象相对于光源及其他对象的位置,以及场景中的光源属性。此外,对象可以是不透明的,也可以有一定的透明度;其表面可以是光亮的,也可以是阴暗的,还可以带来各种各样的表面纹理等。其中,BRDF(Bidirectional Reflectance Distribution Function)是光照模型中一个重要概念,可用于描述入射光线在非透明物体表面如何进行反射。Jiaping Wang,Peiran Ren,Minmin Gong等人基于BRDF模型提出了一个使用环境光源和点光源来实时渲染动态空间各向异性全频阴影的方法。Robert L.COOK和Kenneth E.Torrance则提出了一种新的反射模型,用于渲染计算机合成的图片。该模型描述了入射光线的方向性分布,入射光线角度改变,反射光线也会产生变化,此时物体的颜色也会随着反射光线的变化而变化。
本发明主要通过对上述关键技术进行集成、优化来实时模拟具有高度真实感的动态海洋表面所应呈现的视觉效果。
发明内容
本发明要解决的技术问题是:为了实现海洋几何建模和绘制的真实感与实时性之间的平衡,发明了一种基于投影网格的海洋表面建模及其在环境光照条件下的实时逼真绘制方法。
本发明解决上述的技术问题采用的技术方案为:一种基于投影网格的海洋表面建模及实时光照方法,其步骤如下:
步骤(1)、在投影面上创建投影网格;
步骤(2)、根据视点信息,创建观测矩阵MView和透视矩阵MPerspective
步骤(3)、检测投影的基本平面与视景体是否相交,如果不相交,说明在当前视点下不需要进行绘制,则转步骤(2),若相交则继续步骤(4);
步骤(4)、将步骤(1)在投影面上创建的投影网格中的顶点pprojector变换到相交的基本平面,得到基本面上的点pworld,使用观测矩阵和透视矩阵的逆矩阵可以实现这个过程:
pworld=[MView·MPerspective]-1·pprojector    (1)
步骤(5)、创建范围转换矩阵,检测视景体的边和基本平面的交点以及在视景体内部的基本平面的顶点,并将这些点进行范围转换,此时,x和y的跨度分别被定义为投影后的点的x和y的最大值(xmax,ymax)和最小值(xmin,ymin)的差;公式(2)即为创建的范围转换矩阵:
M range = x max - x min 0 0 x min 0 y max - y min 0 y min 0 0 1 0 0 0 0 1 - - - ( 2 )
步骤(6)、生成动态海洋网格,并基于GPU对模拟结果进行实时绘制。
进一步的,步骤(6)中借助投影变换的逆变换来自适应的生成海洋表面的二维平面网格。
进一步的,步骤(6)中在生成海洋表面的平面网格的基础上,在纵轴上借助快速傅里叶变换来实现三维海洋表面的波动效果。
进一步的,使用光照分解计算和基于硬件的延迟着色和纹理混合技术来实现环境光照条件下的波动海洋表面的实时逼真绘制。
本发明的原理在于:
(1)基于投影网格的海洋表面网格生成方法。根据摄像机的位置、方向,及海洋表面的位置,反算出摄像机的变换矩阵。进行视域判断,检测投影网格与视景体相交的部分。计算相交部分在投影面横轴和纵轴上的跨度,建立范围转换矩阵,同时计算纹理坐标,实现一个可以充满视野的海洋表面网格。
(2)基于快速傅里叶变换的海洋表面波动效果。根据波浪长度的不同量级和海洋学中波浪的频谱特征,分别采样海洋表面的频率,并将采样的频率转化成振幅,利用复数空间中三角函数的特性,使用快速傅里叶变换对网格的振幅进行处理,合成最终的结果。
(3)可模拟直射光、反射光和折射光的海洋表面实时光照算法。根据不同光照分量的特点和照射范围,分别采用不同的方法计算三种光照分量。在网格的中心位置计算太阳的直射光,使用Fresnel公式近似BRDF(Bidirectional Reflectance Distribution Function)的积分。对于天空的反射光和海洋的折射光,将光照值分解为有效Fresnel反射和天空照度两个不同分量的乘积。并借助基于硬件的延迟着色和纹理混合技术,将三个部分的计算值相加,得到整体的光照效果。
本发明与现有技术相比的优点在于:
1、本发明直接通过在视平面上创建规则网格,并通过逆透视投影来生成海洋表面的三维网格表示,生成的三维几何网格天然具有LOD的性质,而与海洋表面面积大小及其三维网格的几何复杂度无关,因而更便于进行细节层次的控制。
2、本发明通过对生成的三维海洋表面网格进行快速傅里叶变换来实现海洋的动态波动效果,有效化解了流体物理方程求解效率低下的问题。
3、本发明将动态海洋模拟与环境光照技术相结合,并借助GPU进行并行加速,可更好地满足虚拟场景中对动态海洋实时逼真绘制的需要。
附图说明
图1为使用投影网格创建海洋表面的流程图;
图2为投影网格示意图生成过程示意图;
图3为视景体与基本平面的求交计算说明图;
图4为合成海洋表面高度的蝴蝶变换示意图;
图5为计算海洋表面实时光照的算法流程;
图6为投影网格计算过程中所涉及的各个分量的示意图;
图7为基于投影网格方法生成的海洋表面网格;
图8为基于快速傅里叶变换模拟的海洋表面的波动效果。
具体实施方式
下面结合附图及具体实施方式对本发明进一步进行说明。
基于投影网格的海洋表面建模,其主要步骤具体如下:
步骤(1)、在投影面上创建投影网格;
投影网格的生成原理可以用现实生活中的例子来加以说明。假设现在有一个聚光灯照亮了整个平坦的表面。将一张画有均匀网格的纸放到聚光灯前,并与聚光灯的投射方向相互垂直,这时就会在投影平面上出现相应的网格阴影,将投影平面上的网格用笔画出来,这样将纸和聚光灯移掉,从原来聚光灯的位置沿着照射的方向观察,就会看到现在的网格与纸上网格的视觉效果相同。实际上,这些点并不是像想象的那样均匀分布。
(a)是投影网格的实际情况, (b)显示聚光灯投影到平面上实际的光照范围,(b)图表示将一个有均匀网格的点垂直于聚光灯方向放置时,投影平面上产生点的情况,可以看到纸张上均匀的点投影到平面上时变得不均匀,由于视点观测角度的原因,较左侧的点离视点近,较右侧的点离视点远,为了能够在最后的视口中看到均匀分布的网格,较右侧点之间的间隔需要按照一定的比例增大。
步骤(2)、根据视点信息,创建观测矩阵MView和透视矩阵MPerspective
如公式(1)所示,世界坐标系中的点变换到相机透视空间需要用到相机的观测矩阵和透视矩阵的逆矩阵,这里采用图形学中的标准方法来建立观测矩阵和透视矩阵。
pprojector=MView·MPerspective·pworld    (1)
步骤(3)、检测投影的基本平面与视景体是否相交,如果不相交,说明在当前视点下不 需要进行绘制,则转步骤(2),若相交则计算交集Vvisible,并继续步骤(4);
在图形学中,仅仅绘制和渲染在视景体之内的部分,视景体之外的部分则抛弃不进行处理。如果基准平面与视景体相交,总会有需要绘制的部分。但使用视景体需要考虑另外一个问题,就是要找到哪些部分符合绘制的要求。 (a)中给出了基本平面与视景体的两条斜边的相交情况,这时,基本平面的投影会铺满整个的视口,就像装在瓶子中的水一样,当倾斜的角度不是很大时,整个水面会与瓶壁相交,无法看到瓶底,这时看到的是一个铺满了视口的网格空间。 (b)是当视景体和绘制平面的夹角变得更小时的情况,此时“瓶子”中的水面与瓶子相交的两个点一个在“瓶子壁”上,一个在“瓶底”上。这时整个视口仅有部分铺满了网格,但整个的网格区域中,各个顶点同样均匀的分布。而基本平面与视景体的求交计算则可以分解为基本的多边形间的相交计算来实现。
步骤(4)、将第(1)步在投影面上创建的投影网格中的顶点pprojector变换到相交的基本平面,得到基本面上的点;
将公式(3.1)两边分别乘以[MView·MPerspective]-1,可以得到如下的转换关系:
pworld=[MView·MPerspective]-1·pprojector    (2)
因而pworld,可使用观测矩阵和透视矩阵的逆矩阵可以实现这个过程,其中:
MProjector=[MView·MPerspective]-1(3)
步骤(5)、创建范围转换矩阵,检测视景体的边和基本平面的交点以及在视景体内部的基本平面的顶点,并将这些点进行范围转换,此时,x和y的跨度分别被定义为投影后的点的x和y的最大值(xmax,ymax)和最小值(xmin,ymin)的差;公式(2)即为创建的范围转换矩阵:
如图3所示,Sbase表示世界坐标中定义的一个基本平面;Supper和Slower表示的是一个表面移动的上界和下界,即网格中的所有点波动的范围;Vdisplaceable表示在Supper和Slower之间的部分。
首先,用相机的观测矩阵和透视矩阵乘积的逆矩阵变换视景体中顶角上的点到世界空间中。然后,检测视景体的边和边界平面(Supper和Slower之间,即Vdisplaceable)的交集,将这些交集的世界坐标系中的位置存储在一个buffer中,如果视景体边角上的点在Vdisplaceable内部则直接将他们加到缓存中,如果缓存buffer中没有数据,说明视景体的内部没有需要绘制的表面信息。否则,将buffer中所有的点投影到Sbase上。此时,Vvisible中x和y的跨度就被定义为buffer 中x的最大值和最小值的差,y的最大值和最小值的差,创建Mrange矩阵为:
M range = x max - x min 0 0 x min 0 y max - y min 0 y min 0 0 1 0 0 0 0 1 - - - ( 4 )
接下来,对海洋表面进行快速傅里叶变换,实现海洋表面的波动效果。海洋表面的频谱是海浪波的一种属性,与波长有一定的关系,它的大小决定着海洋波浪波峰的密级程度。通过对已经建模好的海洋表面进行频率采样,可以模拟具有一定振幅的海洋波动效果。
由于形成海洋的波浪波长范围变化很大,从厘米级到公里级,所以为了真实模拟海洋的波动情况,需要对不同频率的波长分别进行采样:
S(k)=k-3(Bl+Bh)(5)
其中Bl和Bh分别代表低频和高频部分,在获取到每个样本处不同的频率后再将相应的频率转化成对应的振幅:
h ( k ) = 1 2 ( ξ r + i ξ i ) S ( k ) - - - ( 6 )
ξr和ξi表示随机函数生成器生成的随机数的余弦和正弦值,将公式(5)得到的S(k)带入根式,即可使用复数空间的三角函数表示波浪的振幅。最后,根据时间的变化,进行实时更新。
得到海洋表面的振幅后,就可使用快速傅里叶变换合成海洋表面的高度。快速傅里叶变换采用分治策略,将转换成高度数据的实数部分和虚数部分分别进行处理,通过蝴蝶变换,以及n次单位复根的相消引理,折半引理和求和引理,可简化多项式乘法的计算,将时间复杂度降为nlgn。
海洋表面的光照主要有三个部分组成,太阳的入射光线,天空反射光线和海洋折射光线,将这三种光照分量分别进行计算并加以混合,即可得到最终的光照强度。
1.入射光线:因为海洋的波动是海洋表面在自己的平衡位置做往复运动,并没有发生前后左右的移动,对于光照模型中所需的物体表面法线信息,在本发明中,我们使用观测向量和入射光线的中间向量来近似替代法线,并将光照计算中的二次积分计算简化为多项式乘积的形式:
I sum ≈ L sun Ω sun p ( ζ h ) R + ( 1 - R ) ( 1 - v · h ) 5 4 h z 4 cos θ v ( 1 + Λ ( a v ) + Λ ( a l ) ) - - - ( 7 )
2.反射光线:在传统的光照反射计算中,往往需要在整个半球范围内对BRDF进行积分 计算:
Isky=∫∫Ωbrdf(v,I)Lsky(I)cosθld2ωl(8)
通过公式(8)对BRDF的二次积分来计算反射光线的强度,计算量大且计算过程复杂。为了简化计算,实现真实感和实时性的平衡,本发明将天空的反射光线约等为平均菲涅尔反射和天空平均辐射照度乘积的形式,通过使用纹理过滤技术来近似上述积分运算:
I sky ≈ F ‾ L ‾ - - - ( 9 )
(1)平均菲涅尔反射:
等式(10)表示平均菲涅尔反射:
F ‾ ( v ) = ∫ ∫ - ∞ ∞ p ( ζ ) ρ ′ ( v , ζ ) d 2 ζ - - - ( 10 )
平均菲涅尔反射表示反射光线的强度取决于观测角度。我们在计算天空的入射光线时,已经假设海洋表面的波动情况微小,所以网格表面的法线在垂直位置附近来回摆动。在计算的过程中,使用观测方向和垂直方向的夹角来代替观测方向和法线的夹角,因而可将公式(10)的二次积分近似为线性方程的形式:
F ‾ ( v ) ≈ R + ( 1 - R ) ( 1 - cos θ v ) 5 exp ( - 2.69 σ v ) 1 + 22.7 σ v 1.5 - - - ( 11 )
(2)天空平均辐射照度:
L ‾ ( v ) = ∫ ∫ - ∞ ∞ p ( ζ ) L sky ( r ) d 2 ζ - - - ( 12 )
首先,将天空的平均辐射亮度存储在一张纹理中;其次,将网格表面的斜率转换成对应的纹理坐标;最红,使用纹理采样函数提取天空平均辐射亮度;最终,得到计算平均辐射照度的公式如下:
L ‾ ≈ tex 2 D ( sampler , tc , dFdx ( tc , x ) , dFdy ( tc , y ) ) - - - ( 13 )
3.折射光线
根据菲涅尔定律,光线照射到不同介质表面时,入射光线夹角的正弦和折射光线夹角的正弦比值为一个常数,如等式(14):
sin θ v sin β = n - - - ( 14 )
所以只需将 代替 便可采用与反射光线相同的计算方法,近来似折射光强的计算,在计算时不考虑多重折射,得到最终折射光线的计算公式为:
I sea ≈ L sea ( 1 - F ‾ ) - - - ( 15 )
在具体的实施过程中,为了充分利用图形显卡的计算能力,我们在GPU shader中合成 海洋表面的高度,计算光照强度,其中我们所定义的shader函数主要包括:
(1)Spectrum():计算每一个样本处的频率。
(2)getSpectrumSample():表示对海洋表面的频率进行采样,并将采样样本转换成相应的振幅,使用复数空间中三角函数的形式表示,对海洋表面进行快速傅里叶变换,来简化计算的时间复杂度。需要注意的是,由于海洋波浪是由不同波长的波浪相互叠加组成,所以在本发明中对每一个样本需要进行四次不同量级波浪频率的采样,以此来获取不同量级波浪的频率。
(3)generateWavesSpectrum():将获取的振幅存储到相应的数组中,利用OpenGL的函数,将其转化成内存中的一种存储数据的纹理,用于后来的shader计算。
(4)computeButterflyLookupTexture():蝴蝶变换的计算,将利用旋转因子的特性,来简化高度计算的过程。
本发明未详细阐述的技术内容属于本领域技术人员的公知技术。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

Claims (4)

1.一种基于投影网格的海洋表面建模及实时光照方法,其特征在于:其步骤如下:
步骤(1)、在投影面上创建投影网格;
步骤(2)、根据视点信息,创建观测矩阵MView和透视矩阵MPerspective
步骤(3)、检测投影的基本平面与视景体是否相交,如果不相交,说明在当前视点下不需要进行绘制,则转步骤(2),若相交则继续步骤(4);
步骤(4)、将步骤(1)在投影面上创建的投影网格中的顶点pprojector变换到相交的基本平面,得到基本面上的点pworld,使用观测矩阵和透视矩阵的逆矩阵可以实现这个过程:
pworld=[MView·MPerspective]-1·pprojector  (1)
步骤(5)、创建范围转换矩阵,检测视景体的边和基本平面的交点以及在视景体内部的基本平面的顶点,并将这些点进行范围转换,此时,x和y的跨度分别被定义为投影后的点的x和y的最大值(xmax,ymax)和最小值(xmin,ymin)的差;公式(2)即为创建的范围转换矩阵:
M range = x max - x min 0 0 x min 0 y max - y min 0 y min 0 0 1 0 0 0 0 1 - - - ( 2 )
接下来,对海洋表面进行快速傅里叶变换,实现海洋表面的波动效果,海洋表面的频谱是海浪波的一种属性,与波长有一定的关系,它的大小决定着海洋波浪波峰的密级程度,通过对已经建模好的海洋表面进行频率采样,可以模拟具有一定振幅的海洋波动效果;
由于形成海洋的波浪波长范围变化很大,从厘米级到公里级,所以为了真实模拟海洋的波动情况,需要对不同频率的波长分别进行采样:
S(k)=k-3(Bl+Bh)   (5)
其中Bl和Bh分别代表低频和高频部分,在获取到每个样本处不同的频率后再将相应的频率转化成对应的振幅:
h ( k ) = 1 2 ( ξ r + i ξ i ) S ( k ) - - - ( 6 )
ξr和ξi表示随机函数生成器生成的随机数的余弦和正弦值,将公式(5)得到的S(k)带入根式,即可使用复数空间的三角函数表示波浪的振幅,最后,根据时间的变化,进行实时更新;
得到海洋表面的振幅后,就可使用快速傅里叶变换合成海洋表面的高度,快速傅里叶变换采用分治策略,将转换成高度数据的实数部分和虚数部分分别进行处理,通过蝴蝶变换,以及n次单位复根的相消引理,折半引理和求和引理,可简化多项式乘法的计算,将时间复杂度降为nlgn;
海洋表面的光照主要有三个部分组成,太阳的入射光线,天空反射光线和海洋折射光线,将这三种光照分量分别进行计算并加以混合,即可得到最终的光照强度;
1).入射光线:因为海洋的波动是海洋表面在自己的平衡位置做往复运动,并没有发生前后左右的移动,对于光照模型中所需的物体表面法线信息,使用观测向量和入射光线的中间向量来近似替代法线,
2).反射光线:将天空的反射光线约等为平均菲涅尔反射和天空平均辐射照度乘积的形式,通过使用纹理过滤技术来近似上述积分运算:
I sky ≈ F ‾ L ‾ - - - ( 9 )
(1)平均菲涅尔反射:
等式(10)表示平均菲涅尔反射:
F ‾ ( v ) = ∫ ∫ - ∞ ∞ p ( ζ ) ρ ′ ( v , ζ ) d 2 ζ - - - ( 10 )
平均菲涅尔反射表示反射光线的强度取决于观测角度;在计算天空的入射光线时,已经假设海洋表面的波动情况微小,所以网格表面的法线在垂直位置附近来回摆动,在计算的过程中,使用观测方向和垂直方向的夹角来代替观测方向和法线的夹角,因而可将公式(10)的二次积分近似为线性方程的形式:
F ‾ ( v ) ≈ R + ( 1 - R ) ( 1 - cos θ v ) 5 exp ( - 2.69 σ v ) 1 + 22.7 σ v 1.5 - - - ( 11 )
(2)天空平均辐射照度:
L ‾ ( v ) = ∫ ∫ - ∞ ∞ p ( ζ ) L sky ( r ) d 2 ζ - - - ( 12 )
首先,将天空的平均辐射亮度存储在一张纹理中;其次,将网格表面的斜率转换成对应的纹理坐标;最红,使用纹理采样函数提取天空平均辐射亮度;最终,得到计算平均辐射照度的公式如下:
L ‾ ≈ tex 2 D ( sampler , tc , dFdx ( tc . x ) , dFdy ( tc . y ) ) - - - ( 13 )
3).折射光线
根据菲涅尔定律,光线照射到不同介质表面时,入射光线夹角的正弦和折射光线夹角的正弦比值为一个常数,如等式(14):
sin θ v sin β = n - - - ( 14 )
所以只需将代替便可采用与反射光线相同的计算方法,近来似折射光强的计算,在计算时不考虑多重折射,得到最终折射光线的计算公式为:
I sea ≈ L sea ( 1 - F ‾ ) - - - ( 15 )
步骤(6)、生成动态海洋网格,并基于GPU对模拟结果进行实时绘制。
2.根据权利要求1所述的基于投影网格的海洋表面建模及实时光照方法,其特征在于:借助投影变换的逆变换来自适应的生成海洋表面的二维平面网格。
3.根据权利要求1所述的基于投影网格的海洋表面建模及实时光照方法,其特征在于:在生成海洋表面的平面网格的基础上,在纵轴上借助快速傅里叶变换来实现三维海洋表面的波动效果。
4.根据权利要求1所述的基于投影网格的海洋表面建模及实时光照方法,其特征在于:使用光照分解计算和基于硬件的延迟着色和纹理混合技术来实现环境光照条件下的波动海洋表面的实时逼真绘制。
CN201210333382.0A 2012-09-10 2012-09-10 一种基于投影网格的海洋表面建模及实时光照方法 Active CN102855400B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210333382.0A CN102855400B (zh) 2012-09-10 2012-09-10 一种基于投影网格的海洋表面建模及实时光照方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210333382.0A CN102855400B (zh) 2012-09-10 2012-09-10 一种基于投影网格的海洋表面建模及实时光照方法

Publications (2)

Publication Number Publication Date
CN102855400A CN102855400A (zh) 2013-01-02
CN102855400B true CN102855400B (zh) 2015-09-09

Family

ID=47401983

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210333382.0A Active CN102855400B (zh) 2012-09-10 2012-09-10 一种基于投影网格的海洋表面建模及实时光照方法

Country Status (1)

Country Link
CN (1) CN102855400B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103268608B (zh) * 2013-05-17 2015-12-02 清华大学 基于近红外激光散斑的深度估计方法及装置
CN103413341B (zh) * 2013-08-02 2015-12-09 浙江大学 一种基于Gerstner模型的波浪折射模拟方法
CN103472443B (zh) * 2013-09-24 2015-10-21 上海无线电设备研究所 一种动态海面激光脉冲波束回波仿真方法
CN103530901B (zh) * 2013-10-17 2016-05-04 中国测绘科学研究院 一种匹配真实三维环境的动态水域可视化方法及装置
CN103578106B (zh) * 2013-11-06 2016-08-17 北京航空航天大学 一种基于真实数据的乱序水面编辑方法
CN104050718B (zh) * 2014-07-03 2017-02-15 华东师范大学 具有时空连续性的真实感三维流体场景合成方法
CN104063891B (zh) * 2014-07-05 2017-04-19 长春理工大学 用三维场景空间梯度信息实现屏幕像素自适应采样的方法
CN104156338B (zh) * 2014-08-12 2017-02-15 北京交通大学 一种光照强度数据的频谱分析计算方法及计算器
CN104574518B (zh) * 2014-12-26 2017-07-11 浙江大学 具有丰富细节的大规模海洋场景半物理绘制方法
CN105912234B (zh) * 2016-04-06 2019-01-15 腾讯科技(深圳)有限公司 虚拟场景的交互方法和装置
CN105894563B (zh) * 2016-04-25 2018-09-18 中国电子科技集团公司第二十八研究所 一种数字地球上的全球海洋效果模拟方法
CN106202806A (zh) * 2016-07-25 2016-12-07 西南科技大学 一种用于虚拟实验的液体柱模拟方法
CN106780702B (zh) * 2016-12-23 2021-02-26 成都通甲优博科技有限责任公司 一种基于物理着色的方法及系统
CN110852960A (zh) * 2019-10-25 2020-02-28 江苏荣策士科技发展有限公司 一种去除雾化的图像增强装置及方法
CN111664937B (zh) * 2020-06-08 2021-04-30 西安电子科技大学 一种部分相干高斯光束辐照度波动时间特性的确定方法
CN111581873B (zh) * 2020-06-18 2022-07-01 重庆交通大学 一种考虑侧壁双向反射分布函数的隧道照明计算方法
CN112463877B (zh) * 2020-12-04 2022-12-09 中国人民解放军海军航空大学 一种三维海洋环境监测数据的压缩感知观测和重构方法
CN112927341A (zh) * 2021-04-02 2021-06-08 腾讯科技(深圳)有限公司 光照渲染方法、装置、计算机设备和存储介质
CN113592999B (zh) * 2021-08-05 2022-10-28 广州益聚未来网络科技有限公司 一种虚拟发光体的渲染方法及相关设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
图形引擎中大规模海洋的实时渲染与交互技术研究与实现;孙磊;《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》;20111231;第2011(年)卷(第12期);第I138-970页 *
基于GPU的海浪特效实时渲染;文治中等;《计算机工程与设计》;20101231;第31卷(第20期);第4426-4429页 *
虚拟海洋场景的实时模拟研究与实现;王锐等;《计算机工程与设计》;20120229;第33卷(第2期);第695-699页 *

Also Published As

Publication number Publication date
CN102855400A (zh) 2013-01-02

Similar Documents

Publication Publication Date Title
CN102855400B (zh) 一种基于投影网格的海洋表面建模及实时光照方法
Harris Real-time cloud simulation and rendering
Iglesias Computer graphics for water modeling and rendering: a survey
CN101930622B (zh) 浅水水波的真实感建模与绘制
CN102663827A (zh) 复杂淹没区域风暴潮洪水演进三维动态全过程仿真方法
CN102831275B (zh) 一种3d流体的仿真方法及系统
CN101706972A (zh) 海上溢油的三维可视化算法
CN102402792A (zh) 一种实时浅水模拟方法
CN101587594A (zh) 航海模拟器场景中的海浪构网算法
CN103617593A (zh) 三维流体物理动画引擎的实现方法及装置
Xi et al. Survey on smoothed particle hydrodynamics and the particle systems
Zhao Data acquisition and simulation of natural phenomena
CN102867336B (zh) 一种基于热力学模型的固体燃烧过程模拟方法
King et al. Fast volume rendering and animation of amorphous phenomena
CN110232846A (zh) 一种冲锋舟模拟驾驶方法、系统及相关装置
Ma et al. Real-time ocean wave motion simulation based on statistic model and GPU programming
Luo et al. GPU-based real-time virtual reality modeling and simulation of seashore
Weerasinghe et al. A novel approach to simulate wind-driven ocean waves in the deep ocean
King et al. Fast animation of amorphous and gaseous phenomena
Li et al. Simulation of water surface using current consumer-level graphics hardware
Lachman An open programming architecture for modeling ocean waves
Chen et al. The merging of water droplets base-on metaball
Li et al. Fast global illumination of dynamic water surface based on two stage rendering
Xie Research on application of virtual reality technology in virtual marine environment
Rui et al. Flow adaptive simulation of dynamic water body based on river velocity field

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