利索能及
我要发布
收藏
专利号: 2011103251436
申请人: 克拉玛依红有软件有限责任公司
专利类型:发明专利
专利状态:已下证
更新日期:2026-06-16
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于GPU的GeometryClipmap渲染地形的方法,其特征在于,包括:对高程纹理数据进行组织,逐级排列的不同分辨率的高程纹理数据;

根据顶点位置从相应层获取高程纹理组织数据的高程值,获得高程纹理组织数据的高程值;

对过渡带进行顶点高程数据的混合,获得多过渡带的高程混合数据;

在像素着色器中计算法向量及细节纹理,获得法向量及细节纹理;

将图像渲染到屏幕上,获得在屏幕上显示的图像渲染效果;

检测视点是否更新,作出相应的操作。

2.如权利要求1所述的方法,其特征在于,所述对高程纹理数据进行组织,逐级排列的不同分辨率的高程纹理数据的步骤,包括:获取当前视点范围内的高程纹理数据,得到当前视点范围内的高程纹理数据;

获取不同分辨率的高程纹理数据,得到不同分辨率的高程纹理数据;

将不同分辨率的高程纹理数据按照Clipmap的方式进行排列,获得逐级排列的不同分辨率的高程纹理数据。

3.如权利要求1所述的方法,其特征在于,所述对高程纹理数据进行组织的步骤,包括:对高程纹理数据的高度数据进行组织,获得合成后的高程纹理数据的高度数据;

对高程纹理数据的水平数据进行组织,获得高程纹理数据的水平数据;

对高程纹理数据的地形数据进行合并,获得高程纹理数据的地形数据。

4.如权利要求3所述的方法,其特征在于,所述对高程纹理数据的高度数据进行组织,获得合成后的高程纹理数据的高度数据的步骤,包括:将高度纹理数据的高度数据进行创建,获得32位float精度的纹理高度数据;

将两层纹理高度数据保存到一张纹理内并传输给GPU;

将当前层的纹理高度数据保存为32位float精度的纹理高度数据的整数部分;

将相邻的下一层纹理高度数据保存为32位float精度的纹理高度数据的小数部分;

对两层纹理高度数据进行合成;

采用公式I来对两层纹理高度数据进行计算,获得合成后的高程纹理数据的高度数据;

Vdest(u,v)=VLevelN(u,v)+VLevelN+1(u,v)*0.001(I)其中,Vdest(u,v)是合成后的纹理高度数据,VLevelN(u,v)是相对精细层的纹理高度数据,VLevelN+1(u,v)是相对粗糙层的纹理高度数据。

5.如权利要求3所述的方法,其特征在于,所述对高程纹理数据的地形数据进行合并,获得高程纹理数据的地形数据的步骤,包括:利用高度数据创建创建FMT_R32纹理,获得纹理数据;

将纹理数据传入Vertex Shader的常量表;

把高度Z数据传进GPU,获得GPU内的一维高度Z数据;

x、y二维数据通过顶点缓冲方式传输进GPU,获得GPU内的x、y二维数据;

将上述GPU内的一维高度Z数据及GPU内的x、y二维数据合成,获得高程纹理数据的地形数据。

6.如权利要求1所述的方法,其特征在于,所述检测视点是否更新,作出相应的操作的步骤,包括:检测视点是否更新,获得视点是否更新的分析结果;

若分析结果是视点已经进行了更新,则执行视点更新的相应操作;

若分析结果是视点没有进行更新,则接收算法结束请求指令,完成对地形进行渲染的全过程。

7.如权利要求6所述的方法,其特征在于,所述若分析结果是视点已经进行了更新,则执行视点更新的相应操作的步骤,包括:若分析结果是视点已经进行了更新,获得视点更新的数据;

依据视点更新的数据来计算视点移动的数值变化,获得视点移动值;

依据视点移动值来对高程纹理数据进行更新,获得更新后的高程纹理数据;

根据顶点位置从相应层获取高程纹理组织数据的高程值,获得高程纹理组织数据的高程值;

对过渡带进行顶点高程数据的混合,获得过渡带的高程混合数据;

在像素着色器中计算法向量及细节纹理,获得法向量及细节纹理;

将图像渲染到屏幕上,获得在屏幕上显示的图像渲染效果;

完成上述操作,执行一轮视点更新的相应操作;

执行多轮视点更新的相应操作;

检测视点是否更新的结果为视点没有进行更新,则接收算法结束请求指令,完成对地形进行渲染的全过程。

8.如权利要求1所述的方法,其特征在于:所述裂缝消除的方式为通过在两个地形块之间添加一个过渡带,使得在过渡带的边缘高度数据和下一层采集的高度数据是同一个精细度,则使得裂缝消除。

9.如权利要求1所述的方法,其特征在于:所述通过GeometryClipmap的方式对地形进行渲染,获得地形渲染的效果图。

10.如权利要求1所述的方法,其特征在于,所述通过GeometryClipmap的方式对地形进行渲染,获得地形渲染的效果图的步骤,包括:把地形数据缓存在一组嵌套的规格网格内;

当观察点移动时,通过更新地形数据,获得更新后的地形数据;

规整的网格在GPU中利用vertex Texture技术对高度数据进行采样,获得高度数据;

将高度数据和二维平面数据进行组合,获得三维空间数据;

依据三维空间数据对地形进行渲染,获得地形渲染的效果图。