GIS基础-地表可视化技术之拾取与缓存

拾取

三维应用程序中,拾取算法的思想很简单:得到鼠标点击处的屏幕坐标,通过投影矩阵和观察矩阵把该坐标转换为通过视点和鼠标点击处的一条射入场景的光线,该光线如果与场景模型的三角形相交,则获取该相交三角形的信息。

缓存

一个设备对象至少包含两个显示缓存区:当前缓存区(Front Buffer)和后备缓存区(Back Buffer)。当我们渲染图形时,实际上并不是直接在窗口上输出,而是在后备缓存区上绘图。渲染完毕后,交换两个缓存区,使原来的后备缓存区变成当前缓存区,从而实现窗口刷新,如上图所示。快速重复此过程,就会在屏幕上形成连续的动画。

Z缓存

在3D环境中,每个像素中会利用一组数据资料用来定义像素在显示时的纵深充(即Z轴座值)在Z BUFFER所用的位数越高,则代表该显示卡所提供的物体纵深感也越精确。一般的3D加速卡仅能支持到16位或24位的Z BUFFER,对于普通的3D模型而言也算是足够了,不过高级的3D卡更可支持到32位的Z BUFFER。对一个含有很多物体连接的较复杂3D模型而言,能拥有较多位数来表现深度感是相当重要的事情。例如一台500公尺长的飞机,其管线之间仅相距5公分的距离,2-bitZBUFFER将无法提供足够的精确性让我们从某些视角能清楚地辨别二条管线的前后顺序。当显示卡尝试要显示这二条管线时,它会试着一次将二个同时显示出来,因而产生令人讨厌的闪烁现象。若使用的32位的Z BUFFER就能避免闪烁现象发生。

在3D中,使用深度缓存区(Depth Buffer)来进行消隐处理(隐藏面消除),以确保实体被遮挡的部分不被显示。Z缓存是最常用的一种深度缓存,它因为用Z坐标作为判断深度(远近)的依据而得名。

GIS基础-地表可视化技术之纹理映射方式 GIS基础-地表可视化技术之纹理

作者:,GIS爱好者。
分享本文,请您带上本文链接
分享到:

发表评论