OpenGL-自主高性能三维GIS平台架构与实现(第2季)

笑面虎
• 阅读 122

OpenGL-自主高性能三维GIS平台架构与实现(第2季) OpenGL-自主高性能三维GIS平台架构与实现(第2季)

给大家分享一套课程——OpenGL-自主高性能三维GIS平台架构与实现(第2季),附源码。大家下载学习。

OpenGL(英语:Open Graphics Library,译名:开放图形库或者“开放式图形库”)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。这个接口由近350个不同的函数调用组成,用来绘制从简单的图形到比较复杂的三维景象。而另一种程序接口系统是仅用于Microsoft Windows上的Direct3D。OpenGL常用于CAD、虚拟现实、科学可视化程序和电子游戏开发。 OpenGL的高效实现(利用了图形加速硬件)存在于Windows,部分UNIX平台和Mac OS。这些实现一般由显示设备厂商提供,而且非常依赖于该厂商提供的硬件。开放源代码库Mesa是一个纯基于软件的图形API,它的代码兼容于OpenGL。但是,由于许可证的原因,它只声称是一个“非常相似”的API。 当今,OpenGL是视频行业领域中用于处理2D/3D图形的最为广泛接纳的API,在此基础上,为了用于计算机视觉技术的研究,从而催生了各种计算机平台上的应用功能以及设备上的许多应用程序。其是独立于视窗操作系统以及操作系统平台,可以进行多种不同领域的开发和内容创作,简而言之,其帮助研发人员能够实现PC、工作站、超级计算机以及各种工控机等硬件设备上实现高性能、对于视觉要求极高的高视觉图形处理软件的开发。

OpenGL相对于市面上主流的视频处理软件具有如下的优势: 1. 具有强大的通用性和可移植性,可以将其轻松的移植在多个不同的平台上进行二次开发。因为OpenGL本身是一个与硬件无关的软件接口,所以,通用于市面上较为流行的平台:比如,Windows、Unix、Linux、MacOS等。 2. 能够转换3D图形设计软件制作的模型文件。OpenGL仅仅作为一个图形的底层图形库,并没有提供直接描述某个场景地几何实体的圆元。但是,为了其转换的方便性,其内部集合了许多转换函数,可以快速方便的将3DS/3DSMAX、AutoCAD等3D绘制的图形设计制作出的DXF以及3DS模型的文件转换成数组的形式,从而将图像转换成数据进行编程处理。 3. 配备了高级图形库:Open Inventor、Cosmo3D、Optimizer等。这些软件库针对于创建、编辑以及处理分析三维的立体场景提供了高级的应用程序单元;提高不同类型的图形格式的交换数据的能力。

当前研究和开发三维GIS的思路可归纳为两种:

由于三维GIS首先要将地理数据变为可见的地理信息,因此人们一方面从三维可视化领域向三维GIS系统扩展,这一点同早期的二维GIS来源于计算机制图管理一样,是从可视化角度出发的。

另一方面,GIS需要存储和管理大量的空间信息和属性信息,因此另一部分人从数据库的角度出发向三维GIS发展,从商用数据库向非标准应用领域扩展,将三维空间信息的管理融入RDBMS中,或是从底层开发全新的面向空间的OODBMS, 如GODO,GeoO2,GEO++,SmallWorld GIS。一个新的发展方向是将三维可视化与三维空间对象管理藕合起来,形成集成系统。

三维可视化流程 经过建模处理后的各类地形地物,要想真实地显示在计算机屏幕上,需要经过一系列必要的变换,包括数据预处理、几何变换、选择光照模型和纹理映射等。 (1)数据预处理 数据预处理主要包括:将建模后得到的物体的几何模型数据转换成可直接接受的基本图元形式,如点、线、面等;对影像数据(如纹理图像)进行预处理,包括图像格式转换、图像质量的改善及影像金字塔的生成等。 (2)参数设置 参数设置指在对三维场景进行渲染前,需要先设置相关的场景参数值,包括光源性质、光源方位、明暗处理方式和纹理映射方式等。此外,还需要设定视点位置和视线方向等参数。 (3)几何变换 几何变换是生成三维场景重要基础和关键步骤,包括坐标变换和投影变换。 ① 坐标变换 坐标变换是指对需要显示的对象进行平移、旋转或缩放等数学变换。在三维图形的显示和内部计算中,一般假定所有的顶点都用四维齐次坐标表示,即以(x,y,z,w)的形式,等价于(x/w,y/w,z/w,w/w)。模型中使用的三维坐标(x,y,z)等价于四维齐次坐标(x,y,z,1)。 ② 投影变换 投影变换是指选取某种投影变换方式,对物体进行变换,完成从物体坐标到视点坐标的变换,它是生成三维模型的重要基础。投影变换分为透视投影变换和正射投影变换两类。投影方式的选择取决于显示的内容和用途。透视投影类似于人眼对客观世界的观察方式,最明显的特点是按透视法缩小,物体离相机越远,成的像就越小,因而广泛用于三维城市模拟、飞行仿真、步行穿越等模拟人眼效果的研究领域。正射投影的物体或场景的几何属性不变,视点位置不影响投影的结果,一般用于制作地形晕渲图。 (4)纹理映射 在三维可视化过程中,纹理映射是其最为成功的技术之一。纹理映射就是在三维模型的灰度图上增加纹理使其成为具有纹理属性的三维模型,它是通过将图像粘贴于几何表面来增强图形的真实感。纹理映射是建立逼真场景的重要手段。光照模型可以按照高程值进行过渡着色或分层设色,但通过三维模型的构造和真实纹理映射就能够获得十分逼真的三维地形景观。 影像数据作为纹理特征来增强图形的真实感,其对于弥补三维模型几何数据描述的不足和提高可视化效果具有重要意义,并且可以在很大程序上减轻图形硬件的负担,提高图形渲染速度。由于影像数据占用较大的内存空间,一般计算机图形渲染设备限制了单次装载影像的大小。而实际情况下,地形与建筑物影像的范围远远大于这一规模,这就需要根据纹理分辨率的视点相关性来生成多分辨率的纹理。在大范围三维场景内,模型不同部分距离观察者的远近有所不同。对于离观察者较远的部分,可使用较低分辨率的影像;较近的部分则使用较高分辨率的影像来进行纹理映射。对于地面的三维地物模型建筑物,可以根据建筑物的高度和复杂程度确定其表面纹理的分辨率。对于较高、复杂和典型的建筑物模型使用较高的分辨率;反之,使用较低的分辨率。 (5)实时消隐 通常我们看到的三维物体,是不能一眼看到其全部表面的。从一个视点去观察一个三维物体,必然只能看到该物体表面上的部分点、线、面,而其余部分则被这些可见部分遮挡住。如果观察的是多个三维物体,则物体之间还可能彼此遮挡而部分不可见。因此,如果想有真实感地显示三维物体,必须在视点确定后,将对象表面上不可见的点、线、面消去。执行这一功能的算法,称为消隐算法。 消隐算法将物体的表面分解为一组空间多边形,研究多边形之间的遮挡关系。按操作对象的不同,可分为两大类:对象空间方法和图像空间方法。对象空间方法是通过分析对象的三维特性之间的关系来确定其是否可见,例如,将三维平面作为分析对象,通过比较各平面的参数来确定它们的可见性;图像空间是对象投影后所在的二维空间,图像空间方法是将对象投影后分解为像素,按一定的规律,比较像素之间的Z值,从而确定其是否可见。

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
2年前
VS2010配置OpenGL开发环境
最近开始研究OpenGL了,下面是网上看到的一篇入门VS2010上环境配置的文章OpenGL(OpenGraphicsLibrary)是一个跨编程语言、跨平台的专业图形程序接口。   OpenGL是SGI公司开发的一套计算机图形处理系统,是图形硬件的软件接口,任何一个OpenGL应用程序无须考虑其运行环境所在平台与操作系统,在任何一个遵循O
Stella981 Stella981
2年前
HT for Web整合OpenLayers实现GIS地图应用
HTforWeb(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.hightopo.com%2F)作为逻辑拓扑图形组件自身没有GIS功能,但可以与各种GIS引擎即其客户端组件进行融合,各取所长实现逻辑拓扑和物理拓扑的无缝融合,本章将具体介绍HTforWeb(https:
笑面虎 笑面虎
4个月前
【完结13章】高性能多级网关与多级缓存架构落地实战
【完结13章】高性能多级网关与多级缓存架构落地实战给大家分享一套网关课程——高性能多级网关与多级缓存架构落地实战,已完结13章,附源码电子书。多级网关与多级缓存架构是一种常用的系统架构设计模式,用于提高系统性能和可扩展性。下面详细介绍一下这两种架构。多级
笑面虎 笑面虎
4个月前
【完结12章】基于C++从0到1手写Linux高性能网络编程框架
【完结12章】基于C从0到1手写Linux高性能网络编程框架分享一套课程——基于C从0到1手写Linux高性能网络编程框架,已完结12章,附源码电子书。大家下载学习。Socket网络编程框架Socket(套接字)是一个网络编程概念,描述了一个通信
笑面虎 笑面虎
4个月前
基于SpringBoot3.x+Vue3.x整合从0到1一步一步实现酒店管理系统
基于SpringBoot3.xVue3.x整合从0到1一步一步实现酒店管理系统给大家分享一套课程——基于SpringBoot3.xVue3.x整合从0到1一步一步实现酒店管理系统,附源码笔记数据库脚本下载。Spring框架是Java平台上的一种开源
赵嬷嬷 赵嬷嬷
3个月前
OpenGL-自主高性能三维GIS平台架构与实现(第2季)
网盘地址:https://pan.baidu.com/s/1Z2FTiwJ6nXxvgvMayuXNKw提取码:12so腾讯微云下载地址:https://share.weiyun.com/I2HekLPO密码:b36r5s今天给大家讲讲关于OpenGL的知
荀勗 荀勗
3个月前
[第2季]OpenGL-自主高性能三维GIS平台架构与实现
学习资料地址1:https://pan.baidu.com/s/13XjYIpnTsXteItmKx5NIxg提取码:c821学习资料地址2:https://share.weiyun.com/I2HekLPO密码:b36r5sOpenGL没有提供着色器编译
吉太 吉太
3个月前
OpenGL-自主高性能三维GIS平台架构与实现(第二季)
学习地址1:https://pan.baidu.com/s/1HsM5p56DosQgAgYDC9G26g提取码:rkeh学习地址2:https://share.weiyun.com/I2HekLPO密码:b36r5sOpenGL(OpenGraphics
光之守卫 光之守卫
2星期前
系统玩转OpenGL+AI,实现各种酷炫视频特效
系统玩转OpenGLAI,实现各种酷炫视频特效download》itzcw.com/9126/OpenGLAI的介绍OpenGL(OpenGraphicsLibrary)是一种用于渲染2D和3D矢量图形的跨平台图形库。它提供了一组函数,允许开发人员在不
笑面虎 笑面虎
5个月前
系统玩转OpenGL+AI,实现各种酷炫视频特效
系统玩转OpenGLAI,实现各种酷炫视频特效视频课程分享——系统玩转OpenGLAI,实现各种酷炫视频特效,附源码。大家下载学习。OpenGL(英语:OpenGraphicsLibrary,译名:开放图形库或者“开放式图形库”)是用于渲染2D、3D矢