8.地表三维可视化.ppt.ppt_第1页
8.地表三维可视化.ppt.ppt_第2页
8.地表三维可视化.ppt.ppt_第3页
8.地表三维可视化.ppt.ppt_第4页
8.地表三维可视化.ppt.ppt_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

地表可视化技术 本讲主要内容 三维可视化基础知识地形可视化三维地形可视化应用 3d可视化基本概念三维可视化引擎三维可视化渲染流程 三维可视化基础 坐标系 坐标系 世界坐标系物体坐标系 坐标变换 把三维物体变为二维图形表示的过程称为投影变换 投影变换的分类情况如下表所示 坐标变换 正平行投影 坐标变换 透视投影 坐标变换 透视投影 坐标变换 实际上 从三维空间到二维平面 就如同用相机拍照一样 通常都要经历以下几个步骤 括号内表示的是相应的图形学概念 第一步 将相机置于三角架上 让它对准三维景物 视点变换 viewingtransformation 第二步 将三维物体放在适当的位置 模型变换 modelingtransformation 坐标变换 第三步 选择相机镜头并调焦 使三维物体投影在二维胶片上 投影变换 projectiontransformation 第四步 决定二维像片的大小 视口变换 viewporttransformation 这样 一个三维空间里的物体就可以用相应的二维平面物体表示了 也就能在二维的电脑屏幕上正确显示了 图元 3d颜色表达 3d引擎一般采用红 r 绿 g 蓝 b 和阿尔法 a 描述颜色 并将它们合成 产生最终颜色 r g b a称之为颜色通道 其中a描述了色彩的透明度属性 表达颜色的bit 即色深 决定了颜色的表现力和丰富程度 opengl采用float精度也就是4个字节表现一个颜色通道 而direct3d采用byte精度也就是1个字节表现一个颜色通道 不断增大的色深是3d颜色表达的大势所趋 顶点颜色 顶点法向量 平面正方向 3d中使用顶点法向量计算光源和表面间的夹角 对多边形进行着色3d中每个面有一个垂直的法向量 该向量的方向由定义面顶点的顺序及坐标系统是左手系还是右手系决定 表面法向量从表面上指向正向面那一侧 如果把表面水平放置 正向面朝上 背向面朝下 那么表面法向量为垂直于表面从下方指向上方 这个就是平面正方向 光照 一般三维引擎光照模型将光归纳为两类 环境光和直射光环境光 和自然界中的一样 没有实际的方向和光源 只有颜色和光强 它给各处提供一个较低级别的光强直射光是场景中的光源产生的光 它总是具有颜色和强度 并沿特定的方向传播 直射光类型 点光源 聚光灯和平行光 着色模式 用于控制渲染多边形的着色模式完全影响到渲染结果 着色模式决定多边形表面上任意一点上颜色的强度和光照计算方式 材质 材质表现了物体表面对灯光的反射属性 在d3d和opengl中材质还有一个自发光属性 emissive 它用来描述物体自身发出的光的颜色和透明度的 颜色成员为r 1 0 g 1 0 b 1 0 a 1 0的材质会反射所有的入射光 同样 成员为r 0 0 g 1 0 b 0 0 a 1 0的材质会反射所有入射的绿光 具有多重反射系数值 diffuse specular 等等 的材质可以创建不同类型的效果 除了specular属性 其余每个属性都用一个rgba颜色描述 表示该材质对某一给定类型光的红 绿和蓝成分的反射度 以及一个阿尔法混合因子 rgba颜色的a 材质效果图 纹理 计算机图形学中 纹理指的是一张表示物体表面细节的位图 纹理映射 纹理坐标 mip map纹理映射 引擎用来减少纹理内存和带宽需求的另外一个技术就是mip map mip映射技术通过预先处理纹理 产生它的多个拷贝纹理 每个相继的拷贝是上一个拷贝大小的1 4 使用mip map 还可以有效解决纹理走样问题 相比最初来说 单一纹理映射已给整个3d真实感图形带来很大的不同 但使用多重纹理甚至可以达到一些更加令人难忘的效果 多重纹理映射 填充模式 frontbufferandbackbuffer z缓存 在3d环境中 每个像素中会利用一组数据资料用来定义像素在显示时的纵深充 即z轴座值 在zbuffer所用的位数越高 则代表该显示卡所提供的物体纵深感也越精确 一般的3d加速卡仅能支持到16位或24位的zbuffer 对于普通的3d模型而言也算是足够了 不过高级的3d卡更可支持到32位的zbuffer 对一个含有很多物体连接的较复杂3d模型而言 能拥有较多位数来表现深度感是相当重要的事情 例如一台500公尺长的飞机 其管线之间仅相距5公分的距离 2 bitzbuffer将无法提供足够的精确性让我们从某些视角能清楚地辨别二条管线的前后顺序 当显示卡尝试要显示这二条管线时 它会试着一次将二个同时显示出来 因而产生令人讨厌的闪烁现象 若使用的32位的zbuffer就能避免闪烁现象发生 zbuffer 高性能图形技术的工业标准 sgi sopengl microsoft sdirect3ddefinewaysofrenderingimages andtheyprovideanintermediatelayerofcontrolbetweenthevideohardware videocard andthevideosoftware 分布式环境下的高性能3d图形技术vrml 1994 x3d 1998 x3d整合正在发展的xml java 流技术等先进技术 包括了更强大 更高效的3d计算能力 渲染质量和传输速度java3d gl4java openglforjava opengl opengl opengraphicslibrary 是以sgi公司的gl三维图形库为基础制定的一个通用共享的开放式三维图形标准 从软件的角度讲 它就是一个开放的针对于图形硬件的三维图形软件包 opengl的优点 1 opengl可以大大降低了开发高质量图形软件对软 硬件的依赖程度 2 跨平台 基本上的工业标准 3 学习容易 上手快 windowsnt下opengl的结构 opengl程序运行方式 opengl硬件加速方式一些显示芯片如3dlabs公司的glint进行了优化 opengl的大部分功能均可由硬件实现 仅有少量功能由操作系统来完成 三维图形加速模式一些中低档的图形芯片往往也具备一定的三维加速功能 由硬件来完成一些较为复杂的图形操作 纯软件模式对于不具备三维加速功能的显示卡 要想运行opengl 采用纯软件模拟方式 directx directx是基于com的一套软件编程接口 directx是微软的游戏开发引擎 最新的版本是directx9 0c 微软的directx软件开发工具包 sdk 提供了一套优秀的应用程序编程接口 apis 这个编程接口可以提供给你开发高质量 实时的应用程序所需要的各种资源 使用directx的主要的两个好处 1 为软件开发者提供硬件无关性 2 为硬件开发提供策略 direct3d 硬件抽象层 direct3d通过硬件抽象层 hal提供了设备无关性 hal是一个与设备相关的接口 它由设备制造商提供 direct3d通过它直接控制显示设备 应用程序不会直接与hal打交道 相反 通过hal提供的特性 direct3d提供了一系列接口和方法用于应用程序绘制图形 hal可以是显示驱动程序的一部分 也可以是一个动态连接库 dll hal由芯片制造商 板卡生产者或者原始设备制造商 oem 实现 hal实现了设备依赖的代码 但是并不做任何的模拟 也就是说 如果硬件并不提供某一个功能 hal并不将其声明为硬件的能力 另外 hal并不验证参数 direct3d在调用hal以前就已经完成了这项操作 direct与opengl 目前来看 opengl和d3d在应用领域上各有侧重 opengl在工业领域应用较多 而d3d在游戏领域则更多 d3d学习掌握较困难 但完善的辅助库支持 使得搭建三维应用更快捷 在windows平台下优势明显 opengl架构相对稳定 更规范严格 跨平台和独立窗口意义重大 容易掌握 但复杂应用上工作量很大 固定流水线管道 cpu顶点数据 t l引擎 裁减 三角形设置 光栅化 多纹理混合处理 雾混合 透明度 模板和深度测试 帧缓冲可编程流水线管道 cpu顶点数据 vertexshader t l引擎 裁减 三角形设置 光栅化 pixelshader 多纹理混合处理 雾混合 透明度 模板和深度测试 帧缓冲 两种流水线管道 3d游戏效果图 3d操作系统 地形可视化 传统的地学分析图形中 三维地形立体图通常是用一组经投影变换的剖面线或网线构造的 图形简单 内容单一 缺乏实体感 实用价值受到限制 而三维地形模型的动态显示是区域地形等多种要素三维景观的综合体现 具有信息丰富 层次分明 真实感强的特点 我们可通过获取地形等高线及地表属性多边形等信息 采用适当的内插拟合方法 生成真实描述实际地表特征的数字高程模型 并用栅格化技术建立相应的描述区域地表类型的属性栅格 经透视投影变换和属性叠加后 采用恰当的消隐处理和光照模型进行显示 再现区域的三维地形形态 取得真实 鲜明 直观的图像效果 生成真实感图形基本步骤 1 建立模型模型的建立分以下三个小步 1 建立物体的几何模型 设定物体的光学属性 其中多边形建模方法是最常用的模型表示方法 该方法将对象简化成一系列多边形表面 物体的光学属性包括对光的漫反射系数 镜面反射系数 折射率 透明度 颜色 纹理 粗糙度等 2 设定光源的位置 形状及光学特性 3 设定视点和视屏位置 2 计算视屏上各像素点的颜色 1 不可见面消除 2 阴影计算 3 光照颜色计算选择合适的光照模型 计算在光源照射下物体表面各可见点对视屏上各像素点的光贡献 由此求出视屏上各像素点的颜色值 3 显示计算到屏幕上 dem数据组织 dem库采用金字塔结构存放多种空间分辨率的地形数据 同一分辨率的栅格数据被组织在一个层面内 而不同分辨率的地形数据具有上下的垂直组织关系 越靠近顶层 数据的分辨率越小 数据量也越小 只能反映原始地形的概貌 越靠近底层 数据的分辨率越大 数据量也越大 更能反映原始地形详情 数据分块调度 由于受到目前操作系统处理数据量的限制 存在于dem库中的海量地形数据不可能全部常驻内存 鉴于内外存的数据交换非常耗时 为了尽量减少数据库中的数据存取 需要针对三维地形可视化的特点对空间对象进行缓冲管理 在内存中用一块存储区作为数据缓冲区 由于数据缓冲区的大小有一定限制 在进行数据存取时只能将部分数据读入 操作过程中需要进行数据的 部分装入 和 部分对换 这种数据交换技术称为缓冲管理 视域范围计算 层次细节模型 levelofdetail 一种实时三维计算机图形技术 最先由clark于1976年提出 工作原理 视点离物体近时 能观察到的模型细节丰富 视点远离模型时 观察到的细节逐渐模糊 系统绘图程序根据一定的判断条件 选择相应的细节进行显示 从而避免了因绘制那些意义相对不大的细节而造成的时间浪费 同时有效地协调了画面连续性与模型分辨率的关系 多尺度表示的自然法则 multiscalerepresentationin2d lodsrepresentationin3d 度量上的lod与视觉上的lod 静态层次细节模型 视点抬高时地形 线框 实体绘制效果 常见层次细节模型 四叉树 四叉树 递归地将地形分割成小的区块来逼近真实地形 常见层次细节模型 roam 实时的最优自适应网格 roam 在对地形进行三维显示时 依据视点的位置和视线的方向等多种因素 对于表示地形表面的三角形片元进行一系列的基于三角形二叉剖分分裂与合并 最终形成和原始表面近似且无缝无叠的简化连续三角化表面 层次细节模型 裂缝 在建立地表模型时 如果只是单纯孤立地绘制各个分块 而不考虑它们之间的联系 那么就会出现块间的 裂痕 现象 裂缝的产生 产生原因 相邻分块在公共边上的处理方式不一致 层次细节模型 裂缝消除 层次细节模型 视觉平滑 模型层次切换时 采用几何形状过渡方法形成视觉的光滑过渡 即将新增点随视点的拉近从起始位置逐渐移动到最终位置 地形层次细节模型效果 动态层次细节模型的不足 遍历整个场景地形数据的预处理 时间开销较大 实时漫游存储原始的地形数据 各个层次简化因子以及层次间的相互关系 空间开销较大 参与绘制的三角形具体数量难以估算 视点所在区域地形较为平坦时 影响视觉效果 矢量叠加操作缺乏准确的高程依据 lod 平面晕渲图 地貌晕渲是目前在地图上产生地貌立体效果的主要方法 其基本原理是 描绘出在一定的光源条件下地貌的光辉与阴影的变化 通过人的视觉心理间接地感受山体的起伏变化 晕渲法的关键是正确地设置光源和描绘光影 以及地面各点日照度的计算 洪水淹没模拟 基于dem的三维可视化分析模型 有助于用户对空间数据的直观理解 形象地描述各种地形特征 同时 它也能提供一个动态的可互式显示环境 用以在相应空间氛围内逼真创建和显示复杂物体 提供进一步的空间查询及辅助分析 dem与矢量 影像数据叠加显示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论