第11讲-三维形体的真实感显示.ppt_第1页
第11讲-三维形体的真实感显示.ppt_第2页
第11讲-三维形体的真实感显示.ppt_第3页
第11讲-三维形体的真实感显示.ppt_第4页
第11讲-三维形体的真实感显示.ppt_第5页
免费预览已结束,剩余47页可下载查看

下载本文档

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

文档简介

1、,1。简单效果的阴影图生成2。一般效果图生成3。现实效果图生成(*) 1。全球护理模式2。光线追踪3。辐射算法4。纹理映射10。3D形状的真实感显示和光照效果的影响因素。当光照射物体表面时,物体会反射、透射、吸收、衍射、折射和干涉光。被物体吸收的部分转化为热量。颜色是光的生理反射。反射和透射的光进入人类视觉系统,这样我们就可以看到物体的颜色。为了模拟这种现象,我们建立了一些数学模型,而不是复杂的物理模型。这些模型被称为阴影模型或照明模型。思考:我们看到的物体的颜色是如何形成的?影响被观察物体颜色的主要因素是什么?不考虑人体生理因素,物体的颜色与光源颜色、物体表面的物理特征、表面粗糙度、周围环境

2、等因素有关。在正常情况下,光沿着直线传播。当光遇到介质的不同表面时,它会产生反射和折射,当反射和折射时,它们遵循反射和折射定律。研究光照模型的目的是确定物体表面上每个多边形或多边形中每个点的颜色。1。简单效果的阴影图生成2。一般效果图生成3。现实效果图生成(*) 1。全球护理模式2。光线追踪3。辐射算法4。纹理映射10。3D形状1的逼真显示。单色填充多边形算法思想:根据多面体表面的平面法向量确定颜色值,并直接调用OpenGL多边形填充算法。算法简单,但轮廓清晰,多边形之间的过渡不平滑。简单的阴影贴图生成效果,2)Gouraud模型,算法思想:为了使多边形边界平滑显示,首先计算多边形每个顶点的光

3、照强度,然后通过双线性插值计算多边形中每个点的光照强度。这可以保证多边形边界颜色的连续性,但高光是模糊的,有时会有太亮或太暗的条纹(即马赫效应)。计算简单,OpenGL算法实现了硬件加速。算法步骤:对于(每个三角形)1)计算多边形顶点的平均法线方向;2)根据基本光照模型计算顶点的平均光强;3)通过线性插值计算多边形边缘各点的光强;4)通过线性插值计算多边形中每个点的光强。1.简单效果的阴影图生成2。通用效果图生成3。现实效果图生成(*) 1)全局护理模型2)光线跟踪3)辐射算法4。纹理映射10。三维物体的逼真显示1)简单光照明模型- Phong模型,它模拟光在物体表面上的反射。光源被假设为点光

4、源,反射被细分为镜面反射和漫反射。简单光照明模型仅考虑对象的反射来引导光,而对象之间的光反射仅由环境光表示。Phong模型是一个简单的光照模型,可以生成一般效果的图形。让我们假设入射光强度为Il。物体表面上点P的法线方向是N。从点P到光源的矢量是L。它们之间的角度是a)理想漫反射。当光源来自一个方向时,漫反射光在所有方向上均匀传播,这与视点无关,并且是由表面粗糙度引起的。因此,可以假设漫反射光的空间分布是均匀的。如果Il代表点光源的强度,kd代表物体表面的漫反射系数,漫反射方程可以描述为:如果n是物体表面的单位法向量,l是物体表面上指向光源的点的单位向量,那么:如果有多个光源,光强计算公式为:

5、b)镜面反射光对于理想的镜子,反射光集中在一个方向,并遵守反射定律。对于一般光滑表面,反射光集中在一个范围内,由反射定律确定的反射方向上的光强最大。因此镜面反射的光强可以表示如下:Ks是与物体相关的镜面反射系数,a是视线方向v与反射方向r之间的角度,n是反射指数,反映物体表面的光泽度,一般为12,000。数字越大,物体表面越平滑。镜面反射光在反射方向附近会形成一个亮点,这就是所谓的高光现象。由镜面反射光产生的高光区域仅反射光源的颜色,并且V和R都被格式化为单位向量。镜面反射光强度可以表示为:其中:对于多个光源:c)环境光环境光是指光源对物体的间接影响,是一种在物体和环境之间多次反射并最终达到平

6、衡的光。大致认为在同一环境中环境光的强度分布是均匀的,并且它在任何方向上的分布都是相同的。例如,穿过厚厚云层的阳光可以称为环境光。在简单光照明模型中,使用常数来模拟环境光,其表示为:其中:Ia是环境光的光强度,Ka是物体对环境光的反射系数,D)Phong光照明模型, Phong光照明模型is表示如下:从物体表面上的点p反射到视点的光强度I是环境光的反射光强度I e、理想漫射光强度I d和镜面光强度I s的和,即,根据r、g和b的三个颜色分量计算, 由此可以得出,当Phong模型用于计算时,对于物体表面上的每个点p,需要计算光的反射方向r,然后用v (RV)计算。 为了减少计算,可以做出以下假设

7、:a)光源在无穷远处,也就是说,光的方向l是恒定的;b)视点在无穷远处,即视线方向v是恒定的;c)为避免计算反射方向r,将(RV)替换为(HN),其中H是l和v的平分线矢量,即H (LV)/| LV |。注意:Phong模型计算物体表面上每个点的光强,这显然需要大量的计算。光源向量(3,4,0),法线向量(0,2,0),视线向量(4,3,0),光源强度(10,5,5),环境光强度(1,1,1),物体表面的漫反射系数0.2,镜面反射系数0.7和环境光反射系数0是已知的。示例:使用phong模型计算点p处的光强。解决方法:根据已知条件,单位光源矢量为L(3/5,4/5,0),单位光矢量为R(3/5

8、,4/5,0),单位法向矢量为N(0,1,0),单位视线矢量为V (4/5,0) 1,1)漫反射系数Kd 0.2镜面反射系数Ks 0.7环境光反射系数K 0.2高光指数n 2,cos(1,n) | 3/5 cos (r v) 3/54/54/53/500.96,I r 10.2 100.20.8 100.7(0.96)2 8.2512 I g 10.2 50.20.8 50.7(0.96)2 4.2256 I b 10.2 50.20.8 50.7(0.96)2 4.2256,则P点的照度根据以下公式获得Phong的光照模型是第一个在真实感图形中提出的有影响力的光照模型,生成的图像的真实性已经

9、达到了可接受的水平。但是,在实际应用中,它是一个经验模型,存在以下问题:Phong模型显示的对象像塑料一样,没有纹理;没有考虑距离对光照强度的衰减效应;环境光是恒定的,不考虑物体之间的反射光;镜面反射的颜色是光源的颜色,与物体的材质无关;当入射角较大时,镜面反射的计算会产生畸变;Phong模型是一个简单的局部光照模型,可以处理物体之间的相互反射和折射,并且缺少阴影处理。2)阴影贴图绘制算法,通过gouraud模型和Phong光照模型计算物体表面点的颜色值。为了显示形状的三维真实感渲染,下面描述了如何绘制多面体阴影贴图。因为口角如果可以得到物体上对应于屏幕上每个像素的点的颜色,就可以画出整个图形

10、。为了获得与屏幕上的像素对应的物体上的点的颜色,如果光线穿过像素并且光线平行于观察视线,则光线和多面体物体之间可能有多个交点。如果对象不透明,前面交叉点的颜色就是想要的颜色,如右图所示。最简单的算法是ZBuffer算法。为了计算物体表面上相应像素的颜色,使用帧缓冲器来存储每个像素的颜色(根据照明模型计算),并且使用深度缓冲器空间来存储每个像素的深度值Z,这被称为ZBuffer。A) Z-buffer算法,绘图思路:1)Z-buffer中的每个单位值是对应像素点所反映的物体的Z坐标值,初始值作为Z的最小值。2)将待处理场景表面的采样点变换到图像空间,计算其深度值Z。3)根据采样点在屏幕上的投影位

11、置,将其Z值与Z-buffer中对应像素点存储的原始可见点的深度值进行比较。4)如果采样点位于Z缓冲区中记录的可见点之前,则将采样点处的表面颜色填充到帧缓冲区的相应像素中,并用其深度值更新存储在Z缓冲区中的深度值。否则,既不写也不更新。Z-Buffer算法()(i=0,1,m) /m:窗口水平方向的像素数(j=1,n) /n:窗口垂直方向的像素数用背景色初始化帧缓冲CB: CB (I,j)=背景色;用最小z值初始化深度缓存:zb (I,j)=zmin;For(每个多边形)对多边形进行投影变换;扫描并转换观察平面上多边形的投影多边形;For(多边形覆盖的每个像素(I,j)计算像素处多边形的深度值

12、zi,j;若(子,(I,j);计算像素处多边形的颜色值ci、j;CB(i,j)=Ci,j;注意:裁剪投影多边形以获得有效区域可以加快显示速度。Z-Buffer算法在像素级用近物体代替远物体。形状在屏幕上出现的顺序并不重要。这种替换方法比整体排序更加灵活和简单,有利于硬件实现。然而,Z-Buffer算法有一些缺点:它占用大量空间,没有利用图形的相关性和连续性。Z-Buffer算法以简单著称,但它也占用了大量空间。Z-Buffer算法需要打开一个与图像大小相同的缓冲阵列ZB,可以显示一次。当然,只能使用一个深度缓存变量zb,但是显示需要逐点计算,显示效率低。b)扫描线Z缓冲区算法,如何减少Z缓冲区

13、的缓冲存储器,利用相关性提高点和面的包含测试和深度计算的速度,得到扫描线Z缓冲区算法。每条扫描线从最上面的扫描线向下处理。对于每条扫描线,将相应的帧缓冲单元设置为背景色,并将Z的最小值存储在Z缓冲区中。与Zbuffer算法相比,扫描线Zbuffer将整个绘图窗口中的消隐问题分解成扫描线,大大减少了所需的Z缓冲区。对于每个多边形,检查其在氧平面上的投影是否与当前扫描线相交(如右上图),如果不相交,跳过该多边形;如果它们相交,扫描线和多边形边界的交点必须成对出现。为每对交点之间的像素计算多边形平面的对应点的深度(即,Z值),并与Z缓冲器中的对应深度值进行比较。对帧缓冲区的所有多边形和每一行执行上述

14、处理。利用多边形Y桶对边缘表进行分类和激活,处理相邻扫描线和像素的一致性,提高了算法的效率。c)间隔扫描线算法,扫描线Z缓冲算法将消隐问题分散到每一条扫描线来解决,使问题变得更简单。然而,计算每个像素的多边形的Z值的工作量仍然很大。实际上,每条扫描线通过多边形边界在氧平面上的投影被分成几个部分(如t因此,只要在间隔中的任何一点找到z值最大的平面,间隔中的每个像素都将以该平面的颜色显示。这称为间隔扫描线算法。间隔扫描线算法使得深度值在扫描线上的每个间隔中仅计算一次,而没有Z缓冲区。在对当前扫描线和投影平面上的多边形的投影的交点进行排序之后,扫描线被分成几个子区间。因此,只要在间隔中的任何一点找到

15、z值最大的平面,间隔中的每个像素都将以该平面的颜色显示。当然,随着计算机硬件的快速发展,高速缓存阵列占用的空间不再是一个障碍。Phong模型的间隔扫描线绘制算法示例、1。简单效果阴影生成2。通用效果图形生成3。真实感图形生成(*) 1)全局护理模型2)光线跟踪3)辐射算法4。纹理映射,10。3D形状的真实感显示,1)整体光照模型和真实感显示,简单光照模型和局部光照模型,虽然可以生成物体的真实感图像,但它们只处理光源直接照射的光强计算,不能很好地模拟光的折射、反射和阴影,不能用来表达物体之间的光照相互影响。基于简单光照明模型的光传输模型可以模拟光的折射,但这种折射的计算范围很小,不能很好地模拟多

16、个透明体之间复杂的光照明现象。对于这些问题,有必要有一个更准确的照明模型。整个照明模型就是这样一个模型,它是相对于局部照明模型的。在现有的整体照明模型中,主要有两种绘制方法:光线跟踪和辐射。2)光线跟踪算法的基本思想。光线跟踪算法是真实感图形中的主要算法之一,具有原理简单、实现方便、能产生各种真实感视觉效果的优点。在真实感图形光线跟踪算法的研究中,惠特提出了第一个全局光照模型,并给出了一个综合考虑光线反射、折射和透射、阴影等因素的光线跟踪算法的实例。基本的光线跟踪算法是跟踪镜面反射和折射。当从光源发出的光遇到物体表面并被反射和折射时,光改变其方向并沿着反射和折射方向继续,直到遇到新的物体。然而,光源发出的光只有一小部分经过反射和折射后才能进入人们的眼睛。因此,实际光线跟踪算法的跟踪方向与光线传播方向相反,但视线跟踪。如图所示,视点和像素(x,y)发出的光线在与第一个对象相交后,沿其反射和折

温馨提示

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

评论

0/150

提交评论