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

文档序号:6399035阅读:120来源:国知局
专利名称:自适应视域范围内三维海洋网格的计算机生成方法及其装置的制作方法
技术领域
本发明涉及计算机三维图形绘制辅助设计领域,尤其涉及一种自适应视域范围内三维海洋网格的计算机生成方法及其装置。
背景技术
海洋的实时绘制渲染是图形学中的一个重要分支,在飞行模拟、舰船仿真应用中尤为重要。总的来说,海洋绘制的方法主要分为两大类:基于物理的方法和基于构造的方法。基于物理的方法一般通过求解Navier-Stokes方程组来实现对海洋的模拟,由于计算比较复杂,该方法可实时模拟的场景规模较小,而更适用于电影制作等不要求实时的应用场合。实时交互应用中更多是采用基于构造的方法,该方法用一张平铺的网格表示海洋面,基于实际观测的海洋统计和频谱数据,采用傅里叶变换等构造符合海洋频谱分布的波浪形函数,并将离散化的函数值叠加置换到海洋面网格上,驱动网格起伏波动,从而达到模拟海洋的目的。飞行模拟是对实时性要求较高的应用场合,因此其中的海洋绘制也采用基于构造的方法。由于飞行模拟的视点位置往往较高,视野也较为宽广,这就要求用于构造海洋的网格平面同样宽广,才能避免在高空可以看到海洋边缘的不自然现象;又由于飞行方向的不定性,这个网格又要占满所有非陆地的空间,才能保证可视化真实感。上述两个原因将导致海洋网格极为庞大,然而大多数情况下,只有很少部分会被看到,这就产生了相当多的冗余计算。尽管通过对网格LoD化的处理可以减少冗余量,但控制网格的LoD、以及保证不同LoD的一致性又需要额外计算资源。实际上,只有在视域范围内的部分网格才会被最终绘制,并显示在用户的显示屏上。如果能首先确定这个范围,并将网格局限在该范围内,不仅可以提高网格顶点的实际利用率,而且可将更多的顶点集中在此范围内来提高海洋细节程度,增强可视效果。

发明内容
(一 )要解决的技术问题有鉴于此,本发明的主要目的在于提供一种适合飞行模拟这一应用场合,以空中观察为主的视角情形下,能够根据视域范围自适应调整的海洋网格生成方法。( 二 )技术方案为达到上述目的,本发明提供了一种三维海洋网格的计算机生成方法,其包括:步骤101:根据当前观察摄像机的视域参数,计算修正摄像机的视域参数,进而确定修正摄像机的视域;步骤102:计算修正摄像机的视域所覆盖的海平面范围;步骤103:对修正摄像机的视域所覆盖的海平面范围进行细分,生成海洋网格的全部顶点,并将所述海洋网格的全部顶点送入GPU进行三维海洋网格的绘制。本发明还提出了一种三维海洋网格的计算机生成装置,其包括:确定装置,用于根据当前观察摄像机的视域参数,计算修正摄像机的视域参数,进而确定修正摄像机的视域;计算装置,用于计算修正摄像机的视域所覆盖的海平面范围;生成装置,用于对修正摄像机的视域所覆盖的海平面范围进行细分,生成海洋网格的全部顶点,并将所述海洋网格的全部顶点送入GPU进行三维海洋网格的绘制。(三)有益效果从上述技术方案可以看出,本发明具有以下有益效果:1、本发明提供的这种计算机三维海洋网格的生成方法,可以将表示海洋网格的范围限制在可见视域范围内,从而减少不必要的计算,提高网格顶点的实际利用率。2、本发明提供的这种计算机三维海洋网格的生成方法,可以根据视域变化自适应地生成对应网格,保证在所需空间始终有海洋面存在,在冗余尽可能少的同时确保真实感。3、本发明提供的这种计算机三维海洋网格的生成方法,仅在视域覆盖范围内对海洋网格进行细分,从而将更多的顶点集中在视域范围内,提高海洋细节程度,增强可视效果O


图1为依照本发明实施例的三维海洋网格的计算机生成方法流程图;图2为依照本发明实施例的观察摄像机与修正摄像机的视域相互关系图;图3为依照本发明实施例的观察摄像机相对于修正摄像机的滚转角度示意图;图4为依照本发明实施例的观察摄像机和修正摄像机视域的纵向视场角示意图;图5为依照本发明实施例的修正摄像机视域与海平面示意图;图6为依照本发明实施例的修正摄像机视域构成的四棱锥与海平面的相交情形示意图;图7为依照本发明实施例的对海平面所覆盖范围直接进行线性插值的细分方法示意图;图8为依照本发明实施例的对海平面所覆盖范围归一化后线性插值再重新投射到海平面的细分方法示意图;图9为依照本发明实施例的对海平面所覆盖范围进行经验参数的加权线性插值的细分方法示意图;图10为依照本发明实施例的计算机三维海洋网格的生成方法的实际应用流程图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明自,以下结合具体实施例,并参照附图,对本发明进一步详细说明。如图1所示,本发明优选实施例中提出的计算机三维海洋网格生成方法,主要包括:
步骤101、根据当前的观察摄像机的视域参数,计算修正摄像机的视域参数,进而确定修正摄像机的视域;步骤102、计算修正摄像机的视域所覆盖的海平面范围;步骤103、对所覆盖海平面范围进行细分,生成海洋网格的全部顶点并送至GPU绘制。当前观察摄像机,是指在计算机三维场景内用于观察的虚拟摄像机,其所观察到的内容决定最终用户在显示屏上看到的三维图像,即其观察到的内容用于显示。修正摄像机,是计算机三维场景内的虚拟摄像机,其视域范围所覆盖的海平面范围为绘制三维海洋网格的范围,因此修正摄像机不用于显示而用于确定需要绘制的三维海洋网格的范围。观察摄像机可以发生任何旋转,而修正摄像机可以在世界坐标系或本地坐标系下发生俯仰,但只在世界坐标系下发生偏航,而在世界坐标系和本地坐标系下都不发生滚转,世界坐标系指定义整个三维空间的坐标系,本地坐标系指以修正摄像机或观察摄像机为原点所定义的相应本地坐标系。修正摄像机的视域包含了观察摄像机的视域。观察摄像机和修正摄像机的视域参数包括视域的指向、纵向视场角度、横纵向的长度比例和远截面距离等,修正摄像机的视域指向、远截面距离、三维空间位置与观察摄像机的相同,而其它视域参数由观察摄像机确定。观察摄像机和修正摄像机两者的视域及相互关系如图2所不:点E为视点位置,即观察摄像机所处的三维空间点;四棱锥E-AB⑶代表观察摄像机的视域,底面AB⑶是矩形,边AB、BC的比例即视域横纵向的长度比例Robs = IAB I / IBCI ;点O是矩形ABCD的中点,连线EO的指向即为视域的指向⑶且与底面垂直,EO的长度为远截面距离;边AB、CD的中点分别为F、G,连线EF、EG则Z FEG为该视域的纵向视场角,设角度为Θ-;四棱锥E-KLMN代表修正摄像机的视域,底面KLMN是矩形,边KL、LM的比例即视域横纵向的长度比例Rrev = IKLI / I LMI ;点O是矩形KLMN的中点,连线EO的指向即为视域的指向面且与底面垂直,EO的长度为远截面距离;边KL、丽的中点分别为P、Q,连线EP、EQ则Z PEQ为该视域的纵向视场角,设角度为θ_;观察摄像机的视域四棱锥E-ABCD可以发生偏航、俯仰或滚转的任何旋转变化,而修正摄像机的视域四棱锥E-KLMN可以发生俯仰、仅发生世界坐标系中的偏航、不发生任何坐标系中的滚转,因此边KL或MN始终与世界坐标系中的水平面相平行;同时,修正摄像机的视域四棱锥底面KLMN紧凑包围观察摄像机的视域四棱锥底面ABCD,即后者的顶点始终落在前者的边上。基于上述对观察摄像机和修正摄像机的定义,步骤101具体包括以下步骤:步骤1011:计算观察摄像机相对于修正摄像机的滚转角度。观察摄像机的视域参数已知且确定,其发生各种旋转会引起修正摄像机的变化,为得到某时刻观察摄像机所对应的修正摄像机,需要首先计算观察摄像机相对于修正摄像机的滚转角度,如图3所示:各点的定义与图2相同,定义(5歹为观察摄像机视域的向上向量,⑩为修正摄像机的向上向量,则夹角Z FOP为观察摄像机相对于修正摄像机的滚转角,设角度为α。但α值不易直接计算得到,这是因为,虽然向量^^可由观察摄像机的本地坐标系Y轴得到,而向I (I 是所求的修正摄像机所包含的量,无法直接获得。考虑到修正摄像机不能发生滚转,因此点Ε、O、P所决定的平面垂直于世界坐标系的水平面。假设单位向量$垂直于世界坐标系的水平面,那么&在平面EOP内;设向量G豆与边KL平行,那么■在平面KLMN (或ABCD)内,且■丄@,若设@与@夹角为β,则有,
权利要求
1.一种三维海洋网格的计算机生成方法,其包括: 步骤101:根据当前观察摄像机的视域参数,计算修正摄像机的视域参数,进而确定修正摄像机的视域; 步骤102:计算 修正摄像机的视域所覆盖的海平面范围; 步骤103:对修正摄像机的视域所覆盖的海平面范围进行细分,生成海洋网格的全部顶点,并将所述海洋网格的全部顶点送入GPU进行三维海洋网格的绘制。
2.根据权利要求1所述的三维海洋网格的计算机生成方法,其特征在于,所述观察摄像机是指在计算机三维场景内用于观察三维空间的虚拟摄像机。
3.根据权利要求1所述的三维海洋网格的计算机生成方法,其特征在于,所述观察摄像机和修正摄像机的视域参数包括视域的指向、纵向视场角度、横纵向的长度比例和远截面距离,修正摄像机的视域参数由观察摄像机的视域参数确定。
4.根据权利要求1所述的三维海洋网格的计算机生成方法,其特征在于,所述修正摄像机是计算机三维场景内的虚拟摄像机,其视域范围所覆盖的海平面范围为用于绘制三维海洋网格的范围。
5.根据权利要求1所述的三维海洋网格的计算机生成方法,其特征在于,所述修正摄像机的视域只在世界坐标系下发生偏航,而在世界坐标系和本地坐标系下均不能发生滚转,且修正摄像机的视域包含所述观察摄像机的视域。
6.根据权利要求1所述的三维海洋网格的计算机生成方法,其特征在于,步骤101中根据当前观察摄像机的视域参数计算修正摄像机的视域参数,进而确定修正摄像机的视域具体包括: 步骤1011:计算观察摄像机相对于修正摄像机的滚转角度; 步骤1012:根据所计算的滚转角度以及观察摄像机视域的纵向视场角度、横纵向的长度比例,计算修正摄像机的纵向视场角度和横纵向的长度比例: 步骤1013:设置修正摄像机的视域指向、远截面距离、三维空间位置与观察摄像机的视域指向、远截面距离、三维空间位置一致,并根据所计算得到的修正摄像机的纵向视场角度、横纵向的长度比例和所设置的视域指向、远截面距离、三维空间位置确定修正摄像机的视域。
7.根据权利要求1所述的三维海洋网格的计算机生成方法,其特征在于,所述海平面是通过一个确定点和竖直向上的法向量预先定义的平面,与世界坐标系中的水平面平行。
8.根据权利要求1所述的三维海洋网格的计算机生成方法,其特征在于,步骤102中计算修正摄像机视域所覆盖的海平面范围具体包括: 步骤1021:确定修正摄像机所处三维空间位置点及其视域远截面的四个角点组成的四棱锥; 步骤1022:计算所述四棱锥与海平面的所有交点; 步骤1023:根据所述交点确定修正摄像机的视域所覆盖的海平面范围。
9.根据权利要求1所述的三维海洋网格的计算机生成方法,其特征在于,步骤103中对所覆盖海平面范围进行细分,生成海洋网格的全部顶点的方式包括三种: 第一,对所述修正摄像机的视 域所覆盖的海平面范围直接进行线性插值,生成海洋网格的全部顶点;第二,对所述修正摄像机的视域所覆盖的海平面范围进行归一化后再线性插值,并重新投射到海平面,以生成海洋网格的全部顶点; 第三,对所述修正摄像机的视域所覆盖的海平面范围进行经验参数的加权线性插值,以生成海洋网格的全部顶点。
10.一种三维海洋网格的计算机生成装置,其包括: 确定装置,用于根据当前观察摄像机的视域参数,计算修正摄像机的视域参数,进而确定修正摄像机的视域; 计算装置,用于计算修正摄像机的视域所覆盖的海平面范围; 生成装置,用于对修正摄像机的视域所覆盖的海平面范围进行细分,生成海洋网格的全部顶点,并将所述海洋网 格的全部顶点送入GPU进行三维海洋网格的绘制。
全文摘要
本发明公开了一种计算机三维海洋网格的生成方法。该方法包括根据当前的观察摄像机的视域参数,计算修正摄像机的视域参数;计算修正摄像机的视域所覆盖的海平面范围;对所覆盖海平面范围进行细分,生成海洋网格的全部顶点并送GPU绘制。本发明主要用于空中观察情形下的海洋绘制,可以根据观察摄像机的视域范围自适应地确定所覆盖的海平面范围,剔除范围以外的部分,而将范围内部分作为整体进行细分并生成网格,从而完成一体化且高效的海洋网格绘制。
文档编号G06T7/00GK103106687SQ201310042079
公开日2013年5月15日 申请日期2013年2月1日 优先权日2013年2月1日
发明者蒋永实, 刘思江 申请人:中国科学院自动化研究所, 常州科学与艺术融合技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1