3D数学基础第15章图形数学课件资料_第1页
3D数学基础第15章图形数学课件资料_第2页
3D数学基础第15章图形数学课件资料_第3页
3D数学基础第15章图形数学课件资料_第4页
3D数学基础第15章图形数学课件资料_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

第15章图形数学图形管道概述设置视图参数坐标空间问题光照和雾化渲染中的缓冲纹理映射几何体生成与提交变换与光照背面剔除与裁剪光栅化第15章图形数学应用程序编程人员接口(API)

Applicationprogrammer’sinterface应用程序图形库(API)驱动程序图形系统的应用程序编程人员模型15.1图形管道概述图形管道中数据流的概况建立场景可见性检测设置物体级的渲染状态(纹理映射)几何体的生成与提交变换与光照背面剔除与裁减投影到屏幕空间光栅化像素着色15.1图形管道概述建立场景开始渲染之前,需要预先设定对整个场景有效的一些选项

选择进行渲染的出发点---视点,渲染的输出---视图设定光照与雾化选项准备z缓冲

可见性检测

检测场景中哪些物体是可见的

15.1图形管道概述设置物体级的渲染状态实际绘制潜在可见的物体的时候,由于每个物体的渲染设置可能是不同的,在渲染该物体之前,首先要设置物体级的渲染状态,最常见的此类选项是纹理映射

几何体的生成与提交一旦知道哪些物体可见,即需将其生成并提交给API。通常提交的是种种形式的三角形或三角形网格与三角带15.1图形管道概述变换和光照

渲染API得到了三角形数据后,即开始由模型空间向摄像机空间进行顶点坐标转换并计算顶点光照背面剔除和裁剪去除背对摄像机的三角形(背面剔除)三角形在视椎外的部分也被去除(裁剪)

15.1图形管道概述15.1图形管道概述投影到屏幕空间

将在3D裁剪空间中经裁剪产生的多边形,投影到输出窗口的2D屏幕空间里光栅化

光栅化指计算应绘制三角形上的哪些像素的过程,并为接下来的像素着色阶段提供合理的插值参数(如光照和纹理映射坐标)像素着色

计算三角形的色彩,此过程称作“着色”。接着把这些颜色写至屏幕,可能需要alpha混合与z-缓冲15.2设定视图参数

建立摄像机和输出窗口。即必须决定从哪个位置进行观察渲染(视点位置、方向、缩放)以及把渲染结果送到哪里(屏幕上的目标矩形区域)。15.2设定视图参数指定输出窗口

输出设备中将要渲染到的那部分15.2设定视图参数像素横纵比像素宽对高的比值,一般为1

15.2设定视图参数视锥

上、左、下、右面对应输出窗口的四边15.2设定视图参数视锥

上、左、下、右面对应输出窗口的四边15.2设定视图参数视场与缩放视场:视锥所截的角

水平视场垂直视场15.2设定视图参数视场与缩放缩放:表示物体实际大小和物体在90。视场中显示大小的比

在3D中,需要两个缩放值。为了维持恰当的比例,缩放要和输出窗口的尺寸对应,即:16渲染的管道流程顶点变换后的顶点世界矩阵摄像机矩阵投影矩阵渲染管道物体坐标系世界坐标系观察坐标系投影坐标系设备坐标系15.3坐标空间物体空间世界空间摄像机空间裁减空间屏幕空间模型变换视变换通过裁剪矩阵15.4光照和雾化色彩的数学计算机中的色彩常用RGB色彩模型表示,这里R表示红,G表示绿,B表示蓝

15.4光照和雾化色彩的数学所有颜色是RGB空间中的一点 纯黑色=(0,0,0),纯白色=(255,255,255)

灰色=(a,a,a),a越小越黑,越大越白色彩运算有时会使一个或多个RGB分量超出[0,1]的界限(比如,计算光照时,出现极强的光亮),此时简单地加以截断

如果只有一个分量超界,截断运算可能会引起色彩错乱,此时可以除以最大色彩值以单位化

15.4光照和雾化常见光源点光源平行光聚光灯环境光15.4光照和雾化点光源(Pointlight)是以一个点为中心向四周发出的光,光强度随距离平方成反比衰减。它的特点是没有方向性,随着光源距离的增大,光的强度也随之衰减,最终为零。如灯泡、火把等。聚光光源(Spotlight)是对固定的位置和方向进行照射的光源。如信号灯、车头灯等。网格表面网格表面点光源D3DLIGHT_POINT网格表面网格表面聚光光源D3DLIGHT_SPOT15.4光照和雾化分类环境光源(Ambientlight)是不属于任何光源而照亮整个场景的光。它对场景内的所有物体表面都提供了同等亮度的光,是现实世界中不存在的数学形态的光。平行光源(Directionallight)从无限远处射来的点光源的光线,场景中所有光线皆为平行的。平行光源没有位置的概念,也无衰减。太阳是平行光的典型代表网格表面网格表面平行光源D3DLIGHT_DIRECTIONAL2315.4光照和雾化光照增加光照和着色是为了加强真实感效果一个场景可配多个光源未进行着色和添加光照的模型效果进行了着色和添加了光照的模型效果15.4光照和雾化标准光照方程物体外观的决定因素物体表面的性质,即材质属性表面的方位与朝向照射来的各光源性质观察者位置分别为:镜面反射分量、散射分量、环境光分量打开光照情况下计算颜色值的结果15.4光照和雾化镜面反射分量镜面反射分量指由光源直接经物体表面反射入眼睛的光线Phong模型求反射向量r15.4光照和雾化镜面反射分量镜面反射分量指由光源直接经物体表面反射入眼睛的光线,其强度取决于物体、光源和观察者Phong模型如果观察者离物体的距离远大于物体的尺寸,可以仅计算v一次,然后认为它对整个物体是一个常量,同样道理对光源和l也适用。但由于n是变化的,仍需计算r15.4光照和雾化镜面反射分量镜面反射分量指由光源直接经物体表面反射入眼睛的光线Phong模型15.4光照和雾化镜面反射分量镜面反射分量指由光源直接经物体表面反射入眼睛的光线,其强度取决于物体、光源和观察者Blinn模型15.4光照和雾化漫反射分量漫反射是粗糙无光泽的物体表面对光的反射,它反映的是散开的随机方向上的反射漫反射不依赖于视点位置,但依赖于光源与物体的相对位置15.4光照和雾化环境光分量光线经历多于一次的反射后进入眼睛,此类反射即为环境光。环境光取决于材质和全局环境光,此时没有涉及任何光源

环境光计算公式为:其中:

15.4光照和雾化光照方程——合成单一光源15.4光照和雾化光照方程——合成多个光源15.4光照和雾化雾化现实中,光线被空气中无数粒子反射与折射。如果单位体积内粒子的浓度足够,则它们是可见的,例如烟、灰尘、雾等。计算机图形学中,上述现象都是通过雾化技术加以模拟的。

雾化效果能够增强三维场景中的真实感,并可提供一定的深度感。15.4光照和雾化雾化

15.4光照和雾化雾化效果实现原理

通过将景物颜色与雾的颜色,以随物体到观察点距离增加而增强的混合因子(雾浓度)混合而实现的。

clit:计算光照后的物体表面颜色f:雾浓度gfog:全局雾颜色15.4光照和雾化雾化效果实现原理雾浓度的计算:

说明:(1)该公式假设雾是空间均匀的,但实际情况并不总是如此。例如,现实世界中,雾常在下方较浓,此模型不能表达这个现象。(2)距离的定义是可变的15.4光照和雾化着色

着色规定了如何利用顶点的颜色(通过光照明模型计算)来计算构成图元的像素的颜色均匀着色光滑着色15.4光照和雾化均匀着色

任取多边形上一点,利用光照明模型计算出它的颜色,颜色即是多边形的颜色。

通常,计算光照的位置为三角形中心,表面法向量为三角形法向量。

优点:速度快缺点:由于相邻两个多边形法向不同,因而计算出来的颜色也不岂,由此造成整个物体表面的颜色过渡不平滑,有块效应。15.4光照和雾化光滑着色

主要采用插值方法,故亦称为插值着色Gouraud着色对多边形顶点的颜色进行插值以产生中间各点的颜色

Phong着色对多边形顶点的法向量进行插值以产生中间各点的法向量15.4光照和雾化光滑着色Gouraud着色对多边形顶点的颜色进行插值以产生中间各点的颜色由于顶点被相邻多边形所共享,所以相邻多边形在边界附近的颜色就比较光滑了(与flat着色相比)

缺点:当被模拟的值不是线性变化时,如线性高光,连续性不好15.4光照和雾化光滑着色Phong着色对多边形顶点的法向量进行插值以产生中间各点的法向量多边形上每一点需要计算一次光照明模型,因而计算量远大于Gouraudu着色,但用Phong着色方法绘制的图形更加真实

15.4光照和雾化Flat着色

对整个三角形只计算一次光照值Gourand着色

顶点级计算光照,然后这些值被线性插值用于整个多边形面Phong着色

对顶点法向量进行插值以获得

其内部各点法向量,然后逐像

素计算光照值15.4光照和雾化光滑着色插值方法存在的问题

物体轮廓不光滑、透视变形、方向依赖性、公共顶点处颜色连续、顶点法向不具代表性等尽管如此,插值着色因其算法简单,效率高,被广泛应用于绘制真实感图形15.5缓存缓存

矩形内存块,用于存取跟像素相关的数据帧缓存

存储每个像素的颜色,即渲染后的图像

双缓存(显示缓存和离线缓存):使用两个帧缓存(显示缓存和离线缓存),显示缓存用于存放当前显示的图像,离散缓存存放正在渲染的图像。解决了屏幕闪烁的问题。深度缓存(z-buffer)

存储像素的深度信息。深度信息反映了物体到摄像机的距离,通常保存的都是裁剪空间的z坐标。深度缓存一般用于计算物体之间的摭挡。15.6纹理映射纹理映射的功能根据映射函数将物体上每个点找到图像上对应点,并将对应点的颜色值赋给物体上的点

15.7几何体的生成与提交

一旦知道哪些物体可见(或至少潜在可见),即可将其生成并提交到图形处理器。该阶段完成以下任务:(1)细节层次(LOD)选择(2)渐进式生成几何体(3)向图形API提交数据15.7几何体的生成与提交LOD选择与渐进式生成LOD(LevelofDetail)技术

绘制图形的加速技术

LOD

的基本原理利用透视投影的特性,即距离当前观察视点越远的物体,其在成像平面上的投影面积越小,因而对远处的物体在绘制阶段可用较少的等效绘制元素来表现它。15.7几何体的生成与提交LOD选择与渐进式生成LOD分类

简单取舍型LOD平滑过渡型LOD静态LOD动态LOD

15.7几何体的生成与提交LOD选择与渐进式生成简单取舍型LOD

计算每个物体投影在屏幕的像素个数,如果小于给定的阈值,不绘制物体。缺点:(1)没有减少模型的细节,而只是简单地不绘制小的模型

(2)当相机在场景中运动时,模型的出现和消失会造成跳跃感,从而产生视觉失真15.7几何体的生成与提交LOD选择与渐进式生成平滑过渡型LOD

对于不应绘制的物体,该算法不是简单地剔除,而是通过逐帧提高物体的透明度值,将目标物体逐渐地淡出视野对于游戏中的重要角色,最好不采用平滑过渡型LOD,因为淡出效果将误导玩家认为游戏人物消失。因此,这种方法适用于模拟小的植被、装饰物和家具的细节等。15.7几何体的生成与提交LOD选择与渐进式生成静态LOD(真正减少了物体的多边形数目)

核心思想:预计算同一个物体的多个不同精度的模型。在场景漫游过程中,根据物体的真实投影尺寸选择最合适的模型进行绘制

关键:两个相邻层次的网格模型的过渡是否自然,应避免出现跳跃现象避免跳跃现象的方法:(1)增加雾化效果,通过雾的存在减少视觉上

的不连续感(2)使用透明融合技术生成两个相邻细节层次

之间的光滑过渡15.7几何体的生成与提交LOD选择与渐进式生成动态LOD

在场景漫游过程中,根据相机位置和物体的重要性动态地简化网格

基于边删除的顶点简化动态的几何变形LOD算法基本上克服了前面几种方法的帧间不连续的走样现象,但算法是否成功极大地取决于动态几何变形算法的效率是否高效15.7几何体的生成与提交层次细节显示和简化技术的难点

如何建立原始网格模型的不同层次细节的模型,以及如何建立相邻层次的多边形网格模型之间的几何形状过渡Huppe等人于1995年提出的渐进网格技术(progressivemesh)较好地解决了模型简化方法在实时绘制场景时图形画面的跳跃问题,可以支持不同细节的网格模型的实时生成。15.7几何体的生成与提交向API投送几何体

多数API采用的数据格式是某种形式的三角网格。数据的核心是顶点

顶点的数据一般分为3类:位置、光照和雾化以及纹理映射坐标15.8变换和光照变换和光照包含大量顶点级别的计算。最常见的顶点级的计算有:(1)物体空间顶点位置变换到裁剪空间(2)使用光照设置及法向量计算光照(3)根据顶点位置计算顶点级雾浓度(4)阶段式产生纹理映射坐标(5)在骨骼动画中,用skinning技术计算顶点值15.9背面剔除与裁剪背面剔除

去除背对摄像机的三角形裁剪

去除视锥外的三角形(一部分),以确保投影到屏幕空间的三角形完全在视锥内。15.10光栅化顶点坐标变换为屏幕坐标后,即获得一个2D三角形列表。光栅化的任务是为了绘制每个三角形,计算构成三角形的每个像素的颜色值

像素颜色值的计算在概念上有三个步骤:

着色、测试、写入

15.10光栅化顶点坐标变换为屏幕坐标后,即获得一个2D三角形列表。光栅化的任务是为了绘制每个三角形,如何计算构成三角形的每个像素的颜色值。像素颜色值的计算在概念上有三个步骤:

着色、测试、写入

着色

像素着色指为像素计算颜色的过程,一般先计算光照然后再雾化。像素着色的输出值不但有RGB,还有alpha值表示“透明”,用于混合。

15.10光栅化测试

裁剪测试、深度测试、alpha测试裁剪测试

去除渲染窗口外的像素。(假如做了完整的视锥测试则不必要)15.10光栅化测试

裁剪测试、深度测试、alpha测试深度测试

在绘制复杂的三维场景时,不可避免地会出现物体间的相互遮挡。为了正确地绘制场景需要使用深度测试。深度测试可以简化复杂场景的绘制。对一个启用了深度缓冲

温馨提示

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

评论

0/150

提交评论