首页> 中国专利> 自适应视域范围内三维海洋网格的计算机生成方法及其装置

自适应视域范围内三维海洋网格的计算机生成方法及其装置

摘要

本发明公开了一种计算机三维海洋网格的生成方法。该方法包括:根据当前的观察摄像机的视域参数,计算修正摄像机的视域参数;计算修正摄像机的视域所覆盖的海平面范围;对所覆盖海平面范围进行细分,生成海洋网格的全部顶点并送GPU绘制。本发明主要用于空中观察情形下的海洋绘制,可以根据观察摄像机的视域范围自适应地确定所覆盖的海平面范围,剔除范围以外的部分,而将范围内部分作为整体进行细分并生成网格,从而完成一体化且高效的海洋网格绘制。

著录项

  • 公开/公告号CN103106687A

    专利类型发明专利

  • 公开/公告日2013-05-15

    原文格式PDF

  • 申请/专利号CN201310042079.X

  • 发明设计人 蒋永实;刘思江;

    申请日2013-02-01

  • 分类号G06T17/00;G06T7/00;

  • 代理机构中科专利商标代理有限责任公司;

  • 代理人宋焰琴

  • 地址 100190 北京市海淀区中关村东路95号

  • 入库时间 2024-02-19 18:43:12

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-01-10

    未缴年费专利权终止 IPC(主分类):G06T17/00 专利号:ZL201310042079X 申请日:20130201 授权公告日:20150930

    专利权的终止

  • 2015-09-30

    授权

    授权

  • 2013-06-12

    实质审查的生效 IPC(主分类):G06T17/00 申请日:20130201

    实质审查的生效

  • 2013-05-15

    公开

    公开

说明书

技术领域

本发明涉及计算机三维图形绘制辅助设计领域,尤其涉及一种自适应 视域范围内三维海洋网格的计算机生成方法及其装置。

背景技术

海洋的实时绘制渲染是图形学中的一个重要分支,在飞行模拟、舰船 仿真应用中尤为重要。

总的来说,海洋绘制的方法主要分为两大类:基于物理的方法和基于 构造的方法。基于物理的方法一般通过求解Navier-Stokes方程组来实现对 海洋的模拟,由于计算比较复杂,该方法可实时模拟的场景规模较小,而 更适用于电影制作等不要求实时的应用场合。实时交互应用中更多是采用 基于构造的方法,该方法用一张平铺的网格表示海洋面,基于实际观测的 海洋统计和频谱数据,采用傅里叶变换等构造符合海洋频谱分布的波浪形 函数,并将离散化的函数值叠加置换到海洋面网格上,驱动网格起伏波动, 从而达到模拟海洋的目的。

飞行模拟是对实时性要求较高的应用场合,因此其中的海洋绘制也采 用基于构造的方法。由于飞行模拟的视点位置往往较高,视野也较为宽广, 这就要求用于构造海洋的网格平面同样宽广,才能避免在高空可以看到海 洋边缘的不自然现象;又由于飞行方向的不定性,这个网格又要占满所有 非陆地的空间,才能保证可视化真实感。上述两个原因将导致海洋网格极 为庞大,然而大多数情况下,只有很少部分会被看到,这就产生了相当多 的冗余计算。尽管通过对网格LoD化的处理可以减少冗余量,但控制网格 的LoD、以及保证不同LoD的一致性又需要额外计算资源。

实际上,只有在视域范围内的部分网格才会被最终绘制,并显示在用 户的显示屏上。如果能首先确定这个范围,并将网格局限在该范围内,不 仅可以提高网格顶点的实际利用率,而且可将更多的顶点集中在此范围内 来提高海洋细节程度,增强可视效果。

发明内容

(一)要解决的技术问题

有鉴于此,本发明的主要目的在于提供一种适合飞行模拟这一应用场 合,以空中观察为主的视角情形下,能够根据视域范围自适应调整的海洋 网格生成方法。

(二)技术方案

为达到上述目的,本发明提供了一种三维海洋网格的计算机生成方 法,其包括:

步骤101:根据当前观察摄像机的视域参数,计算修正摄像机的视域 参数,进而确定修正摄像机的视域;

步骤102:计算修正摄像机的视域所覆盖的海平面范围;

步骤103:对修正摄像机的视域所覆盖的海平面范围进行细分,生成 海洋网格的全部顶点,并将所述海洋网格的全部顶点送入GPU进行三维 海洋网格的绘制。

本发明还提出了一种三维海洋网格的计算机生成装置,其包括:

确定装置,用于根据当前观察摄像机的视域参数,计算修正摄像机的 视域参数,进而确定修正摄像机的视域;

计算装置,用于计算修正摄像机的视域所覆盖的海平面范围;

生成装置,用于对修正摄像机的视域所覆盖的海平面范围进行细分, 生成海洋网格的全部顶点,并将所述海洋网格的全部顶点送入GPU进行 三维海洋网格的绘制。

(三)有益效果

从上述技术方案可以看出,本发明具有以下有益效果:

1、本发明提供的这种计算机三维海洋网格的生成方法,可以将表示 海洋网格的范围限制在可见视域范围内,从而减少不必要的计算,提高网 格顶点的实际利用率。

2、本发明提供的这种计算机三维海洋网格的生成方法,可以根据视 域变化自适应地生成对应网格,保证在所需空间始终有海洋面存在,在冗 余尽可能少的同时确保真实感。

3、本发明提供的这种计算机三维海洋网格的生成方法,仅在视域覆 盖范围内对海洋网格进行细分,从而将更多的顶点集中在视域范围内,提 高海洋细节程度,增强可视效果。

附图说明

图1为依照本发明实施例的三维海洋网格的计算机生成方法流程图;

图2为依照本发明实施例的观察摄像机与修正摄像机的视域相互关系 图;

图3为依照本发明实施例的观察摄像机相对于修正摄像机的滚转角度 示意图;

图4为依照本发明实施例的观察摄像机和修正摄像机视域的纵向视场 角示意图;

图5为依照本发明实施例的修正摄像机视域与海平面示意图;

图6为依照本发明实施例的修正摄像机视域构成的四棱锥与海平面的 相交情形示意图;

图7为依照本发明实施例的对海平面所覆盖范围直接进行线性插值的 细分方法示意图;

图8为依照本发明实施例的对海平面所覆盖范围归一化后线性插值再 重新投射到海平面的细分方法示意图;

图9为依照本发明实施例的对海平面所覆盖范围进行经验参数的加权 线性插值的细分方法示意图;

图10为依照本发明实施例的计算机三维海洋网格的生成方法的实际 应用流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明自,以下结合具体实 施例,并参照附图,对本发明进一步详细说明。

如图1所示,本发明优选实施例中提出的计算机三维海洋网格生成方 法,主要包括:

步骤101、根据当前的观察摄像机的视域参数,计算修正摄像机的视 域参数,进而确定修正摄像机的视域;

步骤102、计算修正摄像机的视域所覆盖的海平面范围;

步骤103、对所覆盖海平面范围进行细分,生成海洋网格的全部顶点 并送至GPU绘制。

当前观察摄像机,是指在计算机三维场景内用于观察的虚拟摄像机, 其所观察到的内容决定最终用户在显示屏上看到的三维图像,即其观察到 的内容用于显示。修正摄像机,是计算机三维场景内的虚拟摄像机,其视 域范围所覆盖的海平面范围为绘制三维海洋网格的范围,因此修正摄像机 不用于显示而用于确定需要绘制的三维海洋网格的范围。观察摄像机可以 发生任何旋转,而修正摄像机可以在世界坐标系或本地坐标系下发生俯 仰,但只在世界坐标系下发生偏航,而在世界坐标系和本地坐标系下都不 发生滚转,世界坐标系指定义整个三维空间的坐标系,本地坐标系指以修 正摄像机或观察摄像机为原点所定义的相应本地坐标系。修正摄像机的视 域包含了观察摄像机的视域。观察摄像机和修正摄像机的视域参数包括视 域的指向、纵向视场角度、横纵向的长度比例和远截面距离等,修正摄像 机的视域指向、远截面距离、三维空间位置与观察摄像机的相同,而其它 视域参数由观察摄像机确定。

观察摄像机和修正摄像机两者的视域及相互关系如图2所示:

点E为视点位置,即观察摄像机所处的三维空间点;

四棱锥E-ABCD代表观察摄像机的视域,底面ABCD是矩形,边AB、 BC的比例即视域横纵向的长度比例Robs=|AB|/|BC|;点O是矩形ABCD 的中点,连线EO的指向即为视域的指向且与底面垂直,EO的长度为 远截面距离;边AB、CD的中点分别为F、G,连线EF、EG则∠FEG为 该视域的纵向视场角,设角度为θobs

四棱锥E-KLMN代表修正摄像机的视域,底面KLMN是矩形,边KL、 LM的比例即视域横纵向的长度比例Rrev=|KL|/|LM|;点O是矩形KLMN 的中点,连线EO的指向即为视域的指向且与底面垂直,EO的长度为 远截面距离;边KL、MN的中点分别为P、Q,连线EP、EQ则∠PEQ为 该视域的纵向视场角,设角度为θrev

观察摄像机的视域四棱锥E-ABCD可以发生偏航、俯仰或滚转的任何 旋转变化,而修正摄像机的视域四棱锥E-KLMN可以发生俯仰、仅发生 世界坐标系中的偏航、不发生任何坐标系中的滚转,因此边KL或MN始 终与世界坐标系中的水平面相平行;同时,修正摄像机的视域四棱锥底面 KLMN紧凑包围观察摄像机的视域四棱锥底面ABCD,即后者的顶点始终 落在前者的边上。

基于上述对观察摄像机和修正摄像机的定义,步骤101具体包括以下 步骤:

步骤1011:计算观察摄像机相对于修正摄像机的滚转角度。

观察摄像机的视域参数已知且确定,其发生各种旋转会引起修正摄像 机的变化,为得到某时刻观察摄像机所对应的修正摄像机,需要首先计算 观察摄像机相对于修正摄像机的滚转角度,如图3所示:

各点的定义与图2相同,定义为观察摄像机视域的向上向量,为修正摄像机的向上向量,则夹角∠FOP为观察摄像机相对于修正摄像机 的滚转角,设角度为α。但α值不易直接计算得到,这是因为,虽然向量 可由观察摄像机的本地坐标系Y轴得到,而向量是所求的修正摄 像机所包含的量,无法直接获得。

考虑到修正摄像机不能发生滚转,因此点E、O、P所决定的平面垂 直于世界坐标系的水平面。假设单位向量垂直于世界坐标系的水平面, 那么在平面EOP内;设向量与边KL平行,那么在平面KLMN (或ABCD)内,且若设与夹角为β,则有,

α=|β-90°|

另,向量与易知,则有,

得到向量和后,即可计算出两者夹角β,从而得到滚转角α。

步骤1012中:获得观察摄像机相对于修正摄像机的滚转角α后,计 算修正摄像机视域横纵向的长度比例。由图3可知,

|KL|=|AB|·|cosα|+|BC|·|sinα|

|LM|=|AB|·|sinα|+|BC|·|cosα|

又Rrev=|KL|/|LM|,即可得到修正摄像机视域横纵向的长度比例。

步骤1013:计算修正摄像机视域的纵向视场角度。如图4所示:

各点的定义与图2相同,∠FEG为观察摄像机视域的纵向视场角,角 度为θobs;∠PEQ为修正摄像机视域的纵向视场角,角度为θrev。则有,

|BC|=2·|EO|·|tan(θobs/2)|

|AB|=|BC|·Robs=2·|EO|·|tan(θobs/2)|·Robs

又有

|LM|=|AB|·|sinα|+|BC|·|cosα|

θrev=2·tan-1(0.5·|LM|/|EO|)=2·tan-1(0.5·(|AB|·|sinα|+|BC|·|cosα|)/|EO|)

=2·tan-1(|tan(θobs/2)|·(Robs·|sinα|+|cosα|))

步骤1014:设置修正摄像机的视域的指向、远截面距离、三维空间位 置(即点E)等参数,使其与观察摄像机的对应参数一致,从而根据所计 算得到的修正摄像机的纵向视场角度、横纵向的长度比例和所设置的视域 指向、远截面距离、三维空间位置确定修正摄像机的视域最终确定修正摄 像机的视域。

步骤102具体包括以下步骤:

步骤1021:确定修正摄像机所处三维空间位置点及其视域远截面的四 个角点组成的四棱锥;

步骤1022:计算所述四棱锥与海平面的所有交点;

步骤1023:根据所述交点确定修正摄像机视域所覆盖的海平面范围。 其中修正摄像机的视域和海平面如图5所示:

四棱锥E-KLMN是步骤101计算得到的修正摄像机视域所确定的锥 体,平面γ是由一确定点和竖直向上的向量预先定义好的平面,与世界坐 标系中的水平面平行,该确定点可以是世界坐标系中的任意一点。。

四棱锥E-KLMN与平面γ的相交情形如图6所示,有三种:

(1)没有交点;

(2)棱EN、EM与平面γ交于U、V两点,底边LM、KN与平面γ交 于X、Y两点;

(3)四条棱EN、EM、EL、EK与平面γ交于点U、V、X、Y。

对于情况(1),修正摄像机视域与平面没有交点,即认为观察摄像机此 时观察不到海平面,无须生成此时的海洋网格。

对于情况(2)(3),均有四个交点,因此认为观察摄像机此时能观察到海 平面,且把交点UVXY所围的四边形区域作为应该生成海洋网格的区域。

步骤103中,所覆盖海平面范围如步骤102所求,即为空,或者为平 面γ中的四边形UVXY区域。四边形UVXY区域即为需要进行细分生成 海洋网格的全部顶点的海平面范围。

对四边形UVXY包围的区域进行细分,生成海洋网格的全部顶点, 可以通过以下三种方法:

第一,对所述修正摄像机的视域在海平面上的覆盖范围直接进行线性 插值,生成顶点。如图7所示,为在平面γ上方的顶视图。四边形UVXY 的顶点位置已知,设边UV(或XY)上的采样点个数为m并均匀分布, 边UY(或VX)上的采样点个数为n同样均匀分布,由此连线相交而成 的所有顶点,即是细分得到的海洋网格顶点,例如横向序号i、纵向序号j 的点W,其位置为,

W=(1-j/n)·((i/m)·U+(1-i/m)·V)+(j/n)·((i/m)·Y+(1-i/m)·X)

其中,W、U、V、X和Y分别表示三维空间中的三维坐标。在四边 形UVXY中直接进行线性插值的优点是计算速度快,缺点是从顶视图来 看网格是被均匀划分,但根据透视原理,从观察摄像机角度看,近处的细 分网格则会显得很稀疏。

第二,对所述修正摄像机在海平面上的覆盖范围进行归一化后再线性 插值,并重新投射到海平面,以生成海洋网格的全部顶点。如图8所示, 由于修正摄像机不会发生滚转,因此根据对称性,边EU、EV长度相等, EX、EY长度相等;但EU和EY并不一定相等。因此首先将EU、EV、 EX、EY归一化为单位向量并在四边形U’V’X’Y’ 中按照第一种方法线性插值出所有点,再将点投射到四边形UVXY中, 如将点E与四边形U’V’X’Y’内某插值点W’连线,与四边形UVXY相交 得到细分点W。

第二种细分方法可以完全克服第一种细分方法的缺陷,但计算量会增 大。

第三,对所述修正摄像机在海平面上的覆盖范围进行经验参数的加权 线性插值,生成海洋网格的全部顶点。如图9所示,即对四边形UVXY 进行网格细分时,为纵向插值赋予权值,使纵向上的细分向近视点处(边 UV)靠近,即越靠近近视点处(边UV),则纵向上划分的网格越窄。一 个简单的加权策略如下表示:

W=(1-(j/n)2)·((i/m)·U+(1-i/m)·V)+(j/n)2·((i/m)·Y+(1-i/m)·X)

这种方法从经验而非原理出发,可以一定程度克服第一种方法的缺 陷,且计算量小于第二种方法。

当海平面范围细分获得所有海洋网格顶点后,将顶点数据送至GPU, 由GPU进行高度替换、着色等操作并最终绘制出整个网格。

本发明所述的计算机三维海洋网格的生成方法,所包含的三个步骤, 理论上每一帧刷新都应顺序执行一遍以更新数据,实际应用中可根据特定 条件省略或跳过部分工作,如图10依照本发明实施例的计算机三维海洋 网格生成方法的实际应用流程图所示。

图10中步骤201、202对应图1步骤101,具体为:

步骤201:判断观察摄像机拍摄到的图片与上一帧相比是否发生改变, 若是,则执行步骤202,否则结束该方法的执行;

步骤202:根据当前的观察摄像机的视域参数计算修正摄像机的视域 参数;。

图10中步骤203、204对应图1步骤102,具体为:

步骤203:修正摄像机的视域与海平面是否相交,若相交则执行步骤 204,否则结束该方法的执行;

步骤204:计算修正摄像机的视域所覆盖的海平面范围。

图10中步骤205对应图1步骤103,具体为:

步骤205:对所覆盖海平面范围进行细分生成海洋网格的全部顶点, 并将全部顶点送入GPU绘制。

综上所述,本发明通过根据当前的观察摄像机的视域参数,计算修正 摄像机的视域参数;计算修正摄像机的视域所覆盖的海平面范围;对所覆 盖海平面范围进行细分,生成海洋网格的全部顶点并送GPU绘制,来最 终实现自适应视域范围的海洋网格生成与绘制,整个过程完成。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行 了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而 已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号