三维可视化基础
光照
一般三维引擎光照模型将光归纳为两类:环境光和直射光 环境光,和自然界中的一样,没有实际的方向和光源,只有颜色
和光强 。它给各处提供一个较低级别的光强 直射光是场景中的光源产生的光,它总是具有颜色和强度,并沿
特定的方向传播。 直射光类型:点光源、聚光灯和平行光
着色模式
用于控制渲染多边形的着色模式完全影响到渲染结果。着色模式 决定多边形表面上任意一点上颜色的强度和光照计算方式
DEM数据组织
DEM库采用金字塔结构存放多种空间分辨率的地形数据,同一分 辨率的栅格数据被组织在一个层面内,而不同分辨率的地形数据具有上 下的垂直组织关系:越靠近顶层,数据的分辨率越小,数据量也越小, 只能反映原始地形的概貌;越靠近底层,数据的分辨率越大,数据量也 越大,更能反映原始地形详情
数据分块调度
图元
3D颜色表达
3D引擎一般采用红(R)、绿(G) 、蓝(B)和阿尔法(A)——描述颜色, 并将它们合成,产生最终颜色。R、G、B、A称之为颜色通道, 其中A描述了色彩的透明度属性。
表达颜色的Bit-即色深-决定了颜色的表现力和丰富程度。 OpenGL采用float精度也就是4个字节表现一个颜色通道,而 Direct3D采用Byte精度也就是1个字节表现一个颜色通道。
使用 MIP-MAP ,还可以有效解决纹理走样问题。
多重纹理映射
相比最初来说,单一纹理映射已给整个3D真实感图形带来很大的 不同,但使用多重纹理甚至可以达到一些更加令人难忘的效 果。
填充模式
平移、旋转、缩放
拾取
三维应用程序中,拾取算法的思想很简单:得到鼠标点击处的屏 幕坐标,通过投影矩阵和观察矩阵把该坐标转换为通过视点和鼠 标点击处的一条射入场景的光线,该光线如果与场景模型的三角 形相交,则获取该相交三角形的信息。
形成和原始表面近似且无缝无叠的简化连续三角化表面。
Lever=1
顶点
1
左邻接区
右邻接区
左顶点
左子树
右子树
中点
底部邻接区域
Lever=2
右顶点
23
Lever=3 5
4
6 7
层次细节模型——裂缝
裂缝的产生:
在建立地表模型时,如果只是单纯孤立地 绘制各个分块,而不考虑它们之间的联系,那 么就会出现块间的“裂痕”现象。
产生原因 :
相邻分块在公共边上的处理方式不一致。
层次细节模型——裂缝消除
层次细节模型——视觉平滑
模型层次切换时,采用几何形状过渡方法形成视觉 的光滑过渡 ,即将新增点随视点的拉近从起始位置逐渐移 动到最终位置。
格网立体图
生成真实感图形基本步骤
1、建立模型 模型的建立分以下三个小步: (1)建立物体的几何模型,设定物体的光学属性,其中多 边形建模方法是最常用的模型表示方法,该方法将对象简 化成一系列多边形表面。物体的光学属性包括对光的漫反 射系数、镜面反射系数、折射率、透明度、颜色、纹理、 粗糙度等 ; (2)设定光源的位置、形状及光学特性; (3)设定视点和视屏位置。 2、计算视屏上各像素点的颜色 : (1)不可见面消除; (2)阴影计算; (3)光照颜色计算 选择合适的光照模型,计算在光源照射 下物体表面各可见点对视屏上各像素点的光贡献,由此求 出视屏上各像素点的颜色值。 3.显示计算到屏幕上。
纹理压缩算法:
color_2 = (2 * color_0 + color_1 + 1) / 3; color_3 = (color_0 + 2 * color_1 + 1) / 3;
MIP-MAP纹理映射
引擎用来减少纹理内存和带宽需求的另外一个技术就是 MIP-MAP。 MIP 映射技术通过预先处理纹理,产生它的多个拷贝纹理,每个相 继的拷贝是上一个拷贝大小的1/4。
视域范围计算
层次细节模型
Level of Detail: 一种实时三维计算机图形技术,
规则网
最先由Clark于1976年提出。 工作原理:
三角网
视点离物体近时,能观察到的模
型细节丰富;视点远离模型时,观察
到的细节逐渐模糊。系统绘图程序根
据一定的判断条件,选择相应的细节
进行显示,从而避免了因绘制那些意
除了Specular属性,其余每个属性都用一个RGBA颜色描述, 表示该材质对某一给定类型光的红、绿和蓝成分的反射度, 以及一个阿尔法混合因子——RGBA颜色的A。
材质效果图
雾
纹理
计算机图形学中,纹理指的是一张表示物体表面细节 的位图。
纹理映射:
纹理坐标
纹理压缩
越真实的场景就要求纹理的数量越多,质量越高,这对系统带宽 和显存负担很大,因此自然想到对纹理进行压缩
本讲主要内容
三维可视化基础知识 地形可视化
三维地形可视化应用
三维可视化基础3DFra bibliotek视化基本概念 三维可视化引擎 三维可视化渲染流程
坐标系
坐标系
•世界坐标系 •物体坐标系
坐标变换
把三维物体变为二维图形表示的过程称为投影变换。 投影变换的分类情况如下表所示:
坐标变换
正平行投影
坐标变换
坐标变换
第三步,选择相机 镜头并调焦,使三维物体 投影在二维胶片上(投影 变换,Projection Transformation)。
第四步,决定二维像 片的大小(视口变换,
Viewport Transformation)。
这样,一个三维空间 里的物体就可以用相应的 二维平面物体表示了,也 就能在二维的电脑屏幕上 正确显示了。
DIRECT与OPENGL
目前来看,OpenGL和D3D在应用领域上各有侧重。 OpenGL在工业领域应用较多,而D3D在游戏领域则 更多。
D3D学习掌握较困难,但完善的辅助库支持,使得搭 建三维应用更快捷。在Windows平台下优势明显。
OpenGL架构相对稳定,更规范严格,跨平台和独立 窗口意义重大,容易掌握;但复杂应用上工作量很大。
材质
材质表现了物体表面对灯光的反射属性。在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、等等)的材质可以创建不同类型的效果 。
Z Buffer
OpenGL
OpenGL(Open Graphics Library)是以SGI公司的GL三维图形库为基础制定的
一个通用共享的开放式三维图形标准。从软件的角度讲,它就是一个开放的针 对于图形硬件的三维图形软件包。
OpenGL的优点:1) OpenGL可以大大降低了开发高质量图形软件对软、硬 件的依赖程度;2)跨平台,基本上的工业标准;3)学习容易,上手快;
HAL可以是显示驱动程序的一部分,也可以是一个动态连接库 (DLL)。HAL 由芯片制造商、板卡生产者或者原始设备制造商(OEM) 实现。HAL 实现了设备依赖的代码,但是并不做任何的模拟。也 就是说,如果硬件并不提供某一个功能,HAL 并不将其声明为硬 件的能力。另外,HAL 并不验证参数;Direct3D 在调用 HAL 以 前就已经完成了这项操作。
3D游戏效果图
3D操作系统
地形可视化
传统的地学分析图形中,三维地形立体图通常是用 一组经投影变换的剖面线或网线构造的,图形简单,内 容单一,缺乏实体感,实用价值受到限制。而三维地形 模型的动态显示是区域地形等多种要素三维景观的综合 体现,具有信息丰富、层次分明、真实感强的特点。
我们可通过获取地形等高线及地表属性多边形等信 息,采用适当的内插拟合方法,生成真实描述实际地表 特征的数字高程模型,并用栅格化技术建立相应的描述 区域地表类型的属性栅格,经透视投影变换和属性叠加 后,采用恰当的消隐处理和光照模型进行显示,再现区 域的三维地形形态,取得真实、鲜明、直观的图像效果。
Windows NT下OpenGL的结构
OpenGL程序运行方式
OpenGL硬件加速方式
一些显示芯片如3Dlabs公司的GliNT进行了优化,OpenGL的大 部分功能均可由硬件实现,仅有少量功能由操作系统来完成。
三维图形加速模式
一些中低档的图形芯片往往也具备一定的三维加速功能,由硬件 来完成一些较为复杂的图形操作。
使用DirectX的主要的两个好处:1)为软件开发者提供硬件无关性;2) 为硬件开发提供策略。
Direct3D
硬件抽象层
Direct3D通过硬件抽象层-HAL 提供了设备无关性。HAL 是一个 与设备相关的接口,它由设备制造商提供,Direct3D 通过它直接 控制显示设备。应用程序不会直接与 HAL 打交道。相反,通过 HAL 提供的特性,Direct3D 提供了一系列接口和方法用于应用程 序绘制图形。
透视投影
坐标变换
实际上,从三维空 间到二维平面,就如同 用相机拍照一样,通常 都要经历以下几个步骤 (括号内表示的是相应 的图形学概念):
第一步,将相机置 于三角架上,让它对准 三维景物(视点变换, Viewing Transformation)。
第二步,将三维物 体放在适当的位置(模 型变换,Modeling Transformation)。
义相对不大的细节而造成的时间浪费,
同时有效地协调了画面连续性与模型
分辨率的关系。
LOD
静态 动态
静态层次细节模型
视点抬高时地形① 线框/实体绘制效果
常见层次细节模型——四叉树
四叉树: