《chapter6-3.ppt》由会员分享,可在线阅读,更多相关《chapter6-3.ppt(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Phong光照明模型光照明模型物体表面上一点 P 反射到视点的光强 I I 为环境光的反射光理想漫反射光镜面反射光 12/30/20221计算机学院/GDUT增量式光照明模型增量式光照明模型在每个多边形顶点处计算光照明强度或参数,然后在各个多边形内部进行双线性插值,得到多边形光滑均匀颜色分布两个主要算法q光强插值、Gouraud明暗处理q法向插值、Phong明暗处理12/30/20222计算机学院/GDUTGouraud明暗处理算法描述明暗处理算法描述1)计算多边形顶点的平均法向2)用简单光照明模型计算顶点的平均光强3)插值计算离散多边形边上的各点光强4)插值计算多边形内域中各点的光强。12/
2、30/20223计算机学院/GDUTIc为简单光照模型计算结果,Is为其它物体反射光,It为透射光,Ks为物体表面的镜面反射系数,Kt为物体表面的透射系数。考虑光在物体间往复反射、折射引起的照明效果。物体表面向空间某方向V辐射的光亮度I由三部分组成:整体光照模型12/30/20224计算机学院/GDUTN1N2N2N3N3N3N31)形成二叉树的数据结构;2)在追溯到树的最低级叶子节点时,开始回溯,注意要加上Ic12/30/20225计算机学院/GDUT第第6章章真实感图形学真实感图形学颜色视觉图形消隐光照技术纹理技术纹理技术阴影生成阴影生成反走样反走样OpenGL真实感图形学技术12/30/
3、20226计算机学院/GDUT6.3纹理及纹理映射纹理及纹理映射 解决计算机生成真实感图象缺乏现实物体表面细节的问题12/30/20227计算机学院/GDUT纹理映射概述纹理映射概述物体表面的细节可以分为两类:一类是由物体表面颜色色彩、明暗变化体现出来的细节,如光滑瓷砖表面上装饰图案,它主要取决于物体表面的材质属性;另一类是由物体表面不规则的细小凹凸造成的细节,如桔子表面的皱纹,它主要取决于物体本身的几何形状。12/30/20228计算机学院/GDUT用简单光照明模型生成真实感图象,由于表面过于光滑单调,反而显得不真实现实物体表面有各种表面细节纹理q木材表面的木纹q建筑物墙壁上的装饰图案q桔子
4、皮表面的皱纹12/30/20229计算机学院/GDUT纹理示例纹理示例 12/30/202210计算机学院/GDUT模型模型 12/30/202211计算机学院/GDUT映射映射 12/30/202212计算机学院/GDUT纹理纹理技术分类技术分类颜色纹理映射l二维纹理,物体表面花纹、图案l三维纹理,木材纹理几何纹理映射,基于物体表面的微观几何形状l法向扰动12/30/202213计算机学院/GDUT1.颜色纹理映射颜色纹理映射纹理映射是把纹理图象值映射到三维物体的表面的技术基本思想q首先,对纹理定义;q其次,建立映射关系;q实现绘制:纹理值直接作为颜色或作为材质属性。12/30/202214
5、计算机学院/GDUT原始模型原始模型 12/30/202215计算机学院/GDUT二维纹理二维纹理 12/30/202216计算机学院/GDUT(1)纹理定义方法纹理定义方法q图象纹理:将二维纹理图案映射到三维物体表面,绘制物体表面上一点时,采用相应的纹理图案中相应点的颜色值。q函数纹理:用数学函数定义简单的二维纹理图案,如方格地毯。或用数学函数定义随机高度场,生成表面粗糙纹理即几何纹理。12/30/202217计算机学院/GDUT纹理空间纹理空间二维纹理定义在单位正方形区域 之上,称为纹理空间。纹理函数是定义在此空间上的函数。纹理空间也可用其他方法定义:q用参数曲面的参数域作为纹理空间 (2
6、D)q用辅助平面、圆柱、球定义纹理空间 (2D)q用三维直角坐标作为纹理空间 (3D)12/30/202218计算机学院/GDUT二维纹理域二维纹理域纹理映射中最常见的棋盘格纹理q二维纹理的函数表示12/30/202219计算机学院/GDUT(2)映射方法映射方法建立物体空间坐标(x,y,z)和纹理空间坐标(u,v)之间的对应关系对物体表面进行参数化,反求出物体表面的参数后,根据(u,v)得到该处的纹理值,并用此值取代光照明模型中的相应项,实现纹理映射12/30/202220计算机学院/GDUT圆柱面映射圆柱面映射圆柱面映射圆柱面的参数方程圆柱面上一点(x,y,z)的参数即纹理坐标12/30/
7、202221计算机学院/GDUT球面映射球面映射假设映射关系为线性关系,利用特殊点(即边界条件)求出系数即可。12/30/202222计算机学院/GDUT(3)纹理映射的实施纹理映射的实施正向纹理映射正向纹理映射 又称为纹理扫描,从纹理图像到三维物体的映射。原理:在二维空间中定义二维纹理映射函数,经映射函数将图像上每一个像素映射到空间中的三维物体表面,再经过投影变换显示到屏幕上。逆向纹理映射逆向纹理映射 又称为屏幕扫描,是从三维物体到纹理图像的映射。方便实现真实感绘制过程(P161)。12/30/202223计算机学院/GDUT三维纹理域的映射三维纹理域的映射二维纹理域,三维图形场景物体,二维
8、纹理映射是一种非线性映射。q纹理变形q不能保证纹理连续性三维纹理域映射:三维物体每一个点(x,y,z)均有一个纹理值t(x,y,z),物体空间就可以映射到一个三维纹理空间上。12/30/202224计算机学院/GDUT三维纹理例子三维纹理例子12/30/202225计算机学院/GDUT2.几何纹理映射几何纹理映射粗糙表面即使使用颜色纹理映射也难以模拟粗糙、凹凸不平的效果。12/30/202226计算机学院/GDUT法向扰动法法向扰动法q对景物表面各采样点位置作微小的扰动对景物表面各采样点位置作微小的扰动l改变表面的微观几何形状改变表面的微观几何形状l引起景物表面引起景物表面法向量的扰动法向量的
9、扰动q景物表面光亮度是法向量的函数景物表面光亮度是法向量的函数l法向量的扰动导致法向量的扰动导致表面光亮度的突变表面光亮度的突变l产生表面凹凸不平的真实效果产生表面凹凸不平的真实效果难点难点q扰动函数扰动函数的选取的选取 几何纹理映射技术几何纹理映射技术12/30/202227计算机学院/GDUTBlinn法向扰动法物体表面上的每一个点P(u,v),都沿该点处的法向量方向位移F(u,v)个单位长度,新表面位置:12/30/202228计算机学院/GDUT通过对两个偏导数求叉积得到F相对很小,可以忽略不计,则有新表面法向量计算新表面法向量计算12/30/202229计算机学院/GDUT几何纹理实
10、现几何纹理实现扰动后的法向量单位化,用于计算曲面的明暗度,产生凹凸不平的几何纹理几何纹理函数的定义可以用统一的图案纹理记录图案中较暗的颜色对应较小F值,较亮的颜色对应较大F值,把各象素的值一个二维数组记录下来,就是几何纹理统一表示。12/30/202230计算机学院/GDUT纹理映射例子纹理映射例子地板与墙都是经过二维图象纹理映射后的平面12/30/202231计算机学院/GDUT12/30/202232计算机学院/GDUT12/30/202233计算机学院/GDUT12/30/202234计算机学院/GDUT12/30/202235计算机学院/GDUT12/30/202236计算机学院/GD
11、UT6.4 阴影的生成阴影的生成阴影是现实生活中一个很常见的光照现象,在真实感图形学中,通过阴影可以反映出物体之间的相互位置关系,增加图形图像的立体效果,极大地增强真实感。12/30/202237计算机学院/GDUT阴影由两部分组成阴影由两部分组成q本影本影l任何光线都照不到的区域l呈现为全黑的轮廓分明的区域 q半影半影(分布光源)(分布光源)l可接收到分布光源照射的部分光线的区域 l通常位于本影周围,呈现为半明半暗的区域 本半区影区影区影无光源光源面光源照射形成的本影与半影面光源照射形成的本影与半影12/30/202238计算机学院/GDUT从原理上讲,计算阴影的本影是比较简单的,从阴影产生
12、的原因上看,有阴影区域的物体表面都无法看见光源,因此只需把光源作为观察点,前面介绍的任何一种隐藏面消除算法都可以用来生成阴影区域。实际绘制时,先进行消隐处理,再计算光照;计算阴影的过程,相当于两次消隐过程q对每个光源进行消隐q对视点的位置进行消隐12/30/202239计算机学院/GDUT产生的本影包括产生的本影包括q自身阴影面自身阴影面l假设视点在点光源位置,用背面剔除背面剔除的方法求出q投射阴影投射阴影l从光源向物体的所有可见面投射光线l将这些面投影到场景中得到投影面l将这些投影面与场景中其它平面求交线,可得阴影多边形 自身阴影自身阴影投射阴影投射阴影12/30/202240计算机学院/G
13、DUT6.5 反走样技术反走样技术走样走样:用离散量用离散量(像素像素)表示连续的量表示连续的量(图形图形)而引起而引起 的失真,叫的失真,叫混淆混淆或叫或叫走样走样(aliasing)。光栅图形的走样现象光栅图形的走样现象:l阶梯状边界;阶梯状边界;l图形细节失真;图形细节失真;l狭小图形遗失:动画序列中时隐时现,产生闪烁。狭小图形遗失:动画序列中时隐时现,产生闪烁。12/30/202241计算机学院/GDUT不光滑不光滑(阶梯状)的图形边界阶梯状)的图形边界12/30/202242计算机学院/GDUT图形细节失真图形细节失真12/30/202243计算机学院/GDUT狭小图形的遗失与狭小图
14、形的遗失与 动态图形的闪烁动态图形的闪烁12/30/202244计算机学院/GDUT在图形显示过程中,用于减少或消除走样在图形显示过程中,用于减少或消除走样现象的方法现象的方法q 提高分辨率方法提高分辨率方法q 非加权区域采样非加权区域采样q 加权区域采样加权区域采样什么是反走样?什么是反走样?12/30/202245计算机学院/GDUT提高分辨率的反走样方法提高分辨率的反走样方法 过采样过采样方法简单,但代价非常大。方法简单,但代价非常大。显示器的水平、竖直分辩率各提高一倍,则显显示器的水平、竖直分辩率各提高一倍,则显示器的点距减少一倍,帧缓存容量则增加到原来的示器的点距减少一倍,帧缓存容量
15、则增加到原来的4倍,而扫描转换同样大小的图元却要花倍,而扫描转换同样大小的图元却要花4倍时间。倍时间。12/30/202246计算机学院/GDUT走样原因走样原因q两点假设两点假设l象素是数学上抽象的点,它的面积为0,它的亮度由覆盖该点的图形的亮度所决定;l直线段是数学上抽象直线段,它的宽度为0。q现实现实l像素的面积不为0;l直线段的宽度至少为1个像素;q假设与现实的矛盾是导致走样出现的原因之一假设与现实的矛盾是导致走样出现的原因之一12/30/202247计算机学院/GDUTq解决方法:改变直线段模型,由此产生区域采样算法q方法步骤:l 将直线段看作具有一定宽度的狭长矩形;l 当直线段与某
16、象素有交时,求出两者相交区域的面积;l 根据相交区域的面积,确定该象素的亮度值12/30/202248计算机学院/GDUT区域采样区域采样l 直线段对一个像素亮度的贡献与两者相交区域的面积成正比;l 当直线段和某个像素不相交时,它对该像素的亮度无影响;l 相同面积的相交区域对像素的亮度贡献相同,而与这个相交区域落在像素内什麽位置无关。像素实际显示的灰度值像素实际显示的灰度值=相交面积相交面积*该像素的最大该像素的最大灰度值灰度值12/30/202249计算机学院/GDUTq求相交区域的近似面积的离散计算方法 1、将屏幕象素分割成n个更小的子象素;2、计算中心点落在直线段内的子象素的个数,记为k,3、k/n为线段与象素相交区域面积的近似值。目的:简化计算目的:简化计算n=16,k=3近似面积近似面积=3/1612/30/202250计算机学院/GDUT加权区域采样 改进非加权区域采样方法的第3条性质:相交区域对象素亮度的贡献相交区域对象素亮度的贡献依赖于该区域与象素中心的距离依赖于该区域与象素中心的距离12/30/202251计算机学院/GDUT12/30/202252计算机学院/GDUT