真实感图形绘制
计算机图形学实验——真实感图形场景的生成
实验四真实感图形的生成一、实验内容⏹创建一个简单场景⏹场景中有一个复杂的三维几何体⏹通过一系列处理使得场景和几何体具有真实感⏹可以通过变换视点观察场景二、程序结构创建Win32 Console Application,使用OpenGL的控制台应用程序框架。
其中:•init()函数进行场景初始化工作;•reshape(GLsizei width, GLsizei height)函数设置窗口的视口大小,同时设置透视深度和透视角度等参数;•display()函数构建坐标系并通过调用具体的绘制图形函数来绘制具体场景和几何图形;•LoadBMP()函数导入纹理位图文件;•LoadTexture()函数加载纹理到内存空间中;•generateShadow(GLfloat shadow[4][4], const GLfloat ground[4], const GLfloat light[4])函数来计算空间中物体上任意一点的平面阴影投射矩阵•keyboard(unsigned char key, int x, int y)函数处理键盘按键消息;•mouseButton(int button, int state, int x, int y)函数处理鼠标按键消息;最后由主函数main(int argc, char** argv)中调用OpenGL函数来显示窗口,并进行绘图和处理事件消息函数。
三、代码说明1.加载位图纹理首先,编写LoadBMP()函数导入位图文件,代码截图如下:然后,编写LoadEarthTexture()函数加载导入的位图并设置相关参数,代码截图如下:2.绘制房间场景在drawScene()函数中调用OpenGL基本几何元素绘制过程glBegin(GL_QUADS)绘制4个平面,并为每个平面绑定相应的纹理图片,主要代码截图如下:3.绘制地球仪模型编写drawEarth()函数绘制地球仪模型,并为地球仪模型绑定对应的纹理贴图,同时增加光照和材质的处理,代码截图如下:4.绘制模拟点光源编写drawBulb()函数绘制模拟点光源及灯罩,首先调用glBegin(GL_TRIANGLE_STRIP)绘制4个三角形面构成棱锥形灯罩的4个侧面,然后调用gluSphere()函数绘制球形灯泡并增加光照和材质处理效果,代码截图如下:5.生成阴影根据点光源、物体上的任意一点、物体在平面上的投影点“三点共线”的几何原理,以及投影点在平面上的位置关系,通过平面方程求得其法向量,然后利用点光源和物体上一点的坐标进行计算,得出物体上该点的平面阴影投射矩阵。
真实感图形绘制(光照模型 视无关)课件
10800 rays used in lighting pass.Note:-improved caustic definition,-lighting effect of mirror, -reflection of caustic,-shadowing due to mirror lighting.CausticsFrom Alan Watt, “3D Computer Graphics”Standard raytracer:Diffuse table and blue ball,mirrors left, right and back, transparent red ballBi-directional raytracer More rays in the light passSingle Pass (Conventional RT)Note : caustic due to red transparent ballHenrik http://www.gk.dtu.dk/~hwjBidirectional example200 rays used in lighting pass 400 rays used in lighting passRefraction causticsHenrik http://www.gk.dtu.dk/~hwj15Direct illumination 16Global Illumination17eyediagram photograph:18Original sculpture by John Ferren lit by daylight from behind.Image rendered with radiosity. note color bleeding effects.Ray traced image. A standard ray tracer cannot simulate the interreflection of light between 19Radiosity vs. Ray TracingRay-tracingView-dependentSpecular and refractionRadiosityView-independent Diffuse only20Radiosity vs. Ray Tracing•Ray tracing is an algorithm–If the camera is moved, we have to start over•Radiosity is computed in object-space–View-independent (just don't move the light)–Can pre-compute complex lighting to allow interactive walkthroughs26The Rendering EquationxMuseum simulation. Program of Computer Graphics, Cornell University.50,000 patches. Note indirect lighting from ceiling.32Radiosity Overview在辐射度方法中,所有的景物表面都假设为理想的朗伯漫反射表面所有的入射光在各个方向上反射的光强都一样整个场景被划分为一系列的小区域(small areas, or patches )设小区域i 向外辐射的所有能量的辐射度为Bi,并认为在i 内所有地方的辐射度为一个常数单位如下,表示单位立体角单位面积的瓦特数:Watts / steradian * meter 2x'ω'x'xxx’Discrete Radiosity EquationA iA j•discrete representation•iterative solution•costly geometric/visibility calculationspatches, over which the radiosity =i B The Radiosity Matrix求解该矩阵,就可以为每一个patch 得到一个B i ,它与视点是无关的。
计算机图形学第五次实验报告
《计算机图形学》实验报告实验十一真实感图形一、实验教学目标与基本要求初步实现真实感图形, 并实践图形的造型与变换等。
二、理论基础运用几何造型, 几何、投影及透视变换、真实感图形效果(消隐、纹理、光照等)有关知识实现。
1.用给定地形高程数据绘制出地形图;2.绘制一(套)房间,参数自定。
三. 算法设计与分析真实感图形绘制过程中, 由于投影变换失去了深度信息, 往往导致图形的二义性。
要消除这类二义性, 就必须在绘制时消除被遮挡的不可见的线或面, 习惯上称之为消除隐藏线和隐藏面, 或简称为消隐, 经过消隐得到的投影图称为物体的真实图形。
消隐处理是计算机绘图中一个引人注目的问题, 目前已提出多种算法, 基本上可以分为两大类:即物体空间方法和图象空间方法。
物体空间方法是通过比较物体和物体的相对关系来决定可见与不可见的;而图象空间方法则是根据在图象象素点上各投影点之间的关系来确定可见与否的。
用这两类方法就可以消除凸型模型、凹形模型和多个模型同时存在时的隐藏面。
1).消隐算法的实现1.物体空间的消隐算法物体空间法是在三维坐标系中, 通过分析物体模型间的几何关系, 如物体的几何位置、与观察点的相对位置等, 来进行隐藏面判断的消隐算法。
世界坐标系是描述物体的原始坐标系, 物体的世界坐标描述了物体的基本形状。
为了更好地观察和描述物体, 经常需要对其世界坐标进行平移和旋转, 而得到物体的观察坐标。
物体的观察坐标能得到描述物体的更好视角, 所以物体空间法通常都是在观察坐标系中进行的。
观察坐标系的原点一般即是观察点。
物体空间法消隐包括两个基本步骤, 即三维坐标变换和选取适当的隐藏面判断算法。
选择合适的观察坐标系不但可以更好地描述物体, 而且可以大大简化和降低消隐算法的运算。
因此, 利用物体空间法进行消隐的第一步往往是将物体所处的坐标系转换为适当的观察坐标系。
这需要对物体进行三维旋转和平移变换。
常用的物体空间消隐算法包括平面公式法、径向预排序法、径向排序法、隔离平面法、深度排序法、光线投射法和区域子分法。
第十二讲真实感图形的显示
Phong对表面法线进行插值
Phong对表面法线进行插值
扫描线
颜色模型
颜色模型是指:某个三维颜色空间中的一个可见光子集,
它包含某个颜色域的所有颜色。例如,RGB颜色模型是在 三维直角坐标颜色系统中的一个单位正方体。颜色模型的用 途是在某个颜色域内方便地指定颜色。任何一个颜色域都无 法包含所有的可见光。
• Gouraud明暗处理:(由Gouraud提 出的强度插值模式)
只在多边形顶点处的平均单位法向量按上式 计算明暗度,而对于多边形内各点,用顶点 的明暗度的线性插值算出。线性插值可以与 扫描线算法配合,用增量计算实现。
• 缺点
要求光源方向与视线的方向比较接近。一般 二者方向角不超过45°为宜。(否则对高 光处理有误)
HSY (Hue, Saturation, Value)
– 色彩、浓度、亮度
纹理
• 纹理:表面细节。 • 颜色纹理:通过颜色色彩或明暗度的变化凸显出来的表面细
节。
• 凸包纹理:由于不规则的细小凹凸造成的表面细节。 • 可以通过纹理映射的方法给计算机生成的物体图象
加上纹理。 • 纹理生成的方法:
在一平面区域(即纹理空间)上预先定义纹理图案;然后建立 物体表面的点与纹理空间的点之间的对应(即映射)。当物体 表面的可见点确定之后,以纹理空间的对应点的值乘以亮度值, 就可以把纹理图案附到物体表面上。可以用类似的方法给物体 表面产生凹凸不平的外观,或称凸包纹理。不过这时纹理值作 用在法向量上,而不是颜色亮度上。
• 线消隐(Hidden-line Removal)
用于线框图,消隐对象是物体上的边,消除 的是物体上不可见的边。
• 面消隐(Hidden-surface Removal)
真实感图形的绘制
引
言
• 为了更好地表现出由于物体表面材料不同 而引起的不同视觉感受,表现光源形状、 颜色、及照明区域等因素对照明效果的影 响等,需要建立更能精确反映客观世界的 光照明模型。本章将要介绍的TorranceSparrow 模型和Cook-Torrance模型等就是 这样一些能更好地模拟自然界光照明物理 过程的光照明模型。而一些更为精确的计 算模型,如辐射度算法,则考虑了场景中 光源与物体表面间辐射能量的传递来计算 光强度。
• 包围盒技术是用几何形状相对简单的封闭表面 (如长方体、球、圆柱等)将一复杂景物包裹起 来,如图12.6中的虚线为最简单的椭球形包围盒。 • 优点:场景分层次表示法和包围盒技术用光线与 少量形状简单的包围盒的求交测试取代与大量景 物表面的求交计算,提高了算法效率。 • 缺点:这种方法的问题在于许多情况下简单的包 围盒不能紧密地包裹其中所含的景物,因此降低 了包围盒测试的可靠性。而复杂的包围盒又将导 致光线和包围盒的求交计算变得困难。
12.1.2 Whitted光照明模型
• 规则透射方向t可写成如下形式
t = k f (N 0 − V ′) − N 0
其中
| N0 | kf = [(η 2 / η1 ) 2 | V ' | 2 − | N 0 − V ' | 2 ]1 / 2
下面讨论如何确定 k f
12.1.2 Whitted光照明模型
σσ+
视点 图12.8 BSP树的遍历
Root 1 3 0 2 4 5 6 8 9 1 3 2 0 04 4 5 7 8 6 69 9 13 024 57 689 7 01234 56789
图12.9 二维场景及其BSP树
• 3. 基于网格剖分的光线跟踪 首先求光线在当前网格中的出口,然后将该点沿 光线前进方向做微小移动,使 P 点为光线即将进 入的下一个网格的一个内部点。根据光线前进的 特点,光线位于下一个网格内的区段上各点的参 数值一定大于光线在当前网格内各点的参数。设 光线在当前网格的出口点参数为t(当然它也是下 一个网格的入口参数)。这样只要将t加上一个很 小的正挠动量,就得到点 P 的参数值。确定了 P 的位置就可确定它所在的叶结点空间。然后将光 线与该叶结点空间中所含的景物进行求交测试。 若存在有效交点,则结束光线跟踪;否则继续跟 踪进入相邻的下一空间区域,直至该光线射出空 间或求得有效交点为止。
基于NURBS曲面和BTF的真实感图形绘制
20 07年第 5期 安 徽 电子信 息 职业 技 术 学 院学 报 N . 2 0 o 0 7 5 第 6 总第 2 JRL H A N L E C O S I R T H LY e e l o 2V 1 卷( 期) O NO N ICIA OE E TN & FMI T NO G nr . o 6 UA F U OT L L O L R I N A N C OG A V O C G FE C O O E aN 3 .
给 定 1 x 个 控 制 点 , 阶N RB 曲 面 可 以 由下 式定 16 3 U S
义:
控制 点数 分别 为 1、。在u 两个方 向上 的节点 矢量 大 16 和v 致 都采用 均匀 的 矢量 ,但 是有 一小部 分 节 点与其 他 的节 点不是等 距 的。节点数 分别 是1+ += 5 + + =0 下 13 11和6 3 11 , 面就可 以运 用v + 编写 程序 , C+ 进行 橘子表 面建模 了。
N.; v 可 以用 类似 的方法来确 定 。 ()
根据N R S U B 曲面的基本 原理 ,基于O eG 算 法的橘 pn L
子表面造型可以分如下几步完成:先参照橘子图象的轮
廓 , 其侧 边选取 6 方 向控制 点 , 描绘 橘 子 的侧 面轮 在 个v 来 廓; 然后 将 此侧 边 绕v 轴旋 转 一周 , 间 隔取8 等 组控 制 点 。
3纹理 映射 .
纹理 映射合 成方 法都 可 以处 理表 面的细 节 。 由于 橘 子表 面纹 理 的粗糙度 小 ,选用 纹理 映射 方法 来进 行橘 子 表 面 的几何 纹理 的绘制 。 样做 主 要依据 以下几 点考虑 : 这 1与合成 方法 相 比, ) 时间和 空间开 销都 比较 节省 , 尤其 对 于包 含有 多少 个橘 子 的场 景 , 射方 法具有 明显 的优 势 ; 映 2 对于 橘 子表 面这 样 的粗 糙度 小 的 纹理 , ) 映射 方 法 的效 果与合成方法的效果相差不大;)映射方法虽然在绘制 3 质 量上 略有 降低 , 得 图形 稍显模 糊 , 使 但是 其绘 制 质量 能
计算机图形学_第十四章_真实感图形绘制
点表示黑色,其对角线点表示白色,对角线上各点含有等量的各种原色 ,表示辉度等级。坐标轴上的立方体顶点表示原色,而其余相对的顶点 为补色。在立方体范围内的每个彩色点,都可以用三个参数(R,G,B)表 示,值在0~1的范围内。
常见颜色模型
•CMY颜色模型
用青(Cyan)、品红(Magenta)和黄(Yellow)3种原色所定义 的一种彩色模型称为CMY模型。除了是白色而不是黑色位于坐标原点以 外,CMY的坐标空间与RGB的完全相同。 CMY颜色模型适合于硬拷贝设 备的彩色输出 。
简单光照模型
当光照射在一个物体表面上时,会出现3种情形。首先,光 可以通过物体表面向空间反射,产生反射光。其次,对于透明 体,光可以穿透该物体并从另一端射出,产生透射光。最后, 部分光将被物体表面吸收而转化为热。 不包括透射光的简单光照模型。 假设物体不透明,则物体表面呈现的颜色及其光强仅由表 面的反射光决定。通常,反射光被看成是三个分量的组合。这 三个分量分别为:
来定义。
•主波长是所见彩色光中占支配地位的光波长度。
•纯度是光谱纯度的量度,即彩色光中混有白色光的多少
•明度反映了光的明亮程度,即光的强度。
三色学说
1807年,杨(T.Young)和赫姆霍尔兹(H.L.F.von Helmholtz)根据红、绿、蓝三原色可以产生各种色调及灰 度的颜色混合规律,假设在人眼内有3种基本的颜色视觉
漫反射和Lambert模型
在实际使用时,对入射光强按距离平方衰减往往不能 很好地区分点光源在相距较近的景物表面上所产生的光 照效果。 为此,图形学中常采用经验模型来模拟点光源的距离 衰减效果。常用的模型有线性衰减模型,这时, Lambert漫反射模型可改写为:
Kd I I a K a +I p (L N ) d +k
8 真实感图形
void CMyView::WLineTo(float X, float Y, float Z,CDC*pDC)// 用三维 点坐标直接从当前点画线到一点的函数 { Project(X, Y, Z); // 将三维点作投影 XScreen = floor(0.5 + XProj * Scale +400); // 圆整(立体在 圆整( 屏幕上初始的X坐标位置 坐标位置) 屏幕上初始的 坐标位置 YScreen = floor(0.5 + 300 - YProj); // 圆整(立体在屏幕上初 圆整( 始的Y坐标位置 坐标位置) 始的 坐标位置) pDC->LineTo(XScreen, YScreen); // 画线到一点 }
void CMyView::Mydraw() { RedrawWindow(); ReadVertics(); ReadFaces(); // 绘出透视投影下的凸多面体图形 VisionPoint(); // 给出视点位置 DrawObject(); // 画出立体的图形 }
三.实验步骤: 实验步骤: 1.建立project; .建立 ; 2.选择欲创建的文档类型; .选择欲创建的文档类型; 3.根据真实感图形生成中的消隐技术,或光照技术,图 .根据真实感图形生成中的消隐技术,或光照技术, 形反走样技术,或阴影生成技术, 形反走样技术,或阴影生成技术,设计出一个具有真实感 图形的程序; 图形的程序; 4.编译,调试,运行,并检查是否得到预期结果; .编译,调试,运行,并检查是否得到预期结果; 5.按要求书写并提交试验报告. .按要求书写并提交试验报告.
void CMyView::NormalVector(int St1, int St2, int St3)// 此函数用表 面三个顶点调用求该表面的法矢 // St_i is the i_th point of a face. { float P1, P2, P3, Q1, Q2, Q3; // 求一个向量 P1 = St[St2][1] - St[St1][1]; P2 = St[St2][2] - St[St1][2]; P3 = St[St2][3] - St[St1][3]; // 求另一个向量 Q1 = St[St3][1] - St[St1][1]; Q2 = St[St3][2] - St[St1][2]; Q3 = St[St3][3] - St[St1][3]; //用向量积求法向量 用向量积求法向量 n1 = P2 * Q3 - Q2 * P3; n2 = P3 * Q1 - Q3 * P1; n3 = P1 * Q2 - Q1 * P2; }
第九章 使用MFC实现真实感图形绘制
第九章使用MFC实现真实感图形绘制真实感图形绘制是计算机图形学的一个重要组成部分。
它综合利用数学、物理学、计算机科学和其他学科知识在计算机图形设备上生成象彩色照片那样的真实感图形。
要用计算机图形设备绘制场景的真实感图形,就必须首先在计算机中建立该场景的模型,用这个模型来反映场景的特点和属性。
这一模型通常是由一批几何数据及数据之间的拓扑关系来表示的,这就是造型技术,它是真实感图形绘制技术的重要组成部分。
有了三维场景的模型,并给定了观察点和观察方向以后,就可以通过几何变换和投影变换在屏幕上显示该三维场景的二维图像。
为了使二维图像具有立体感,并尽可能逼真地显示出该物体在现实世界中被观察到的形象,就需要运用适当的光照模型,来模拟场景在现实世界中受到各种光源照射时的效果,这就是真实感图形的画面绘制技术,也就是真实感图形的生成技术。
用计算机在图形设备上生成连续色调的真实感图形大致可以分为以下四步:第一步,用数学方法建立所需三维场景的几何描述,并将它们输入至计算机。
这部分工作可由三维立体造型或曲面造型系统来完成。
场景的几何描述直接影响了图形的复杂性和图形绘制的计算耗费,因此选择合理的、有效的数据表示和输入手段是非常重要的。
第二步,将三维几何描述转换为二维投影图。
这可以通过对场景的投影变换来完成。
第三步,确定场景中的所有可见面,这需要使用隐藏面消除算法将被其他物体遮挡的不可见面消去。
第四步,计算场景中可见面的颜色,严格地说,就是根据基于光学物理的光照明模型计算可见面投射到观察者眼中的光亮度大小和色彩分量,并将它转换成适合图形设备的颜色值,从而确定投影画面上每一象素的颜色,最终生成图形。
前三步的相关知识在前面已经进行了介绍,本章将重点介绍如何通过MFC 编程的方式,利用光照模型计算场景中可见面的光亮度和颜色,并绘制最终的真实感图形。
实际上,现在OpenGL和DirectX等图形函数库提供了很多支持真实感图形绘制的函数,使用它们可以更轻松的完成真实感图形绘制。
计算机图形学 第五章 真实感图形 (1)
m
矢量积形式
I K a I a I i ( K d ( N , L) k s ( N , H ) )
n i 1
m
20
Phong模型
Phong模型的光照明效果(Utah Teapot)
21
Whitted整体光照明模型
局部光照明模型的局限
仅考虑从光源直接发出的光线对物体表面光亮度的 贡献 没有考虑光线在物体之间的相互反射和透射 可模拟现实世界中 景物表面之间的 镜面反射和透射 现象
镜面反射和规则透射示例
24
Whitted整体光照明模型
Whitted整体光照明模型
I I c k s I s kt I t
Ic:由光源直接照射在表面上引起的反射光亮度 Is:沿V的镜面反射方向r入射到表面上的环境光在表面上产生的 镜面反射光 It:沿V的规则透射方向t入射到表面上的环境光通过透射在表面 上产生的规则透射光 ks:表面的镜面反射率 kt:表面的透射率
8
Lambert漫反射模型
漫反射光是物体表面对入射光线朝各个方向的 均匀反射
大小只与入射光的光亮度和入射方向有关 与漫反射光的反射方向无关
光源 N
均匀反射的光线
9
Lambert漫反射模型
漫反射光亮度和光源入射角(入射光线和表面 法向量的夹角)的余弦成正比
I d K d I e cos
Whitted模型:整体光照明模型
22
Whitted整体光照明模型
假设从某一观察方向V所观察到的物体表面某点 P的光亮度的贡献来自于三个方面:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/12/13
华中理工大学计算机学院 陆枫 99-
12
7
10.1.4 光强衰减
一个常用的二次衰减函数可以表示为:
f(d)m1 i,nc0(c1d1c2d2)
2020/12/13
华中理工大学计算机学院 陆枫 99-
13
7
10.1.5 颜色
2020/12/13
华中理工大学计算机学院 陆枫 99-
15
7
10.2.2 Gouraud明暗处理
Gouraud明暗处理方法,又称为亮度插值明暗处理,它通 过对多边形顶点颜色进行线性插值来绘制其内部各点。
用Gouraud明暗处理来进行多边形绘制时需进行三个步骤: 1. 计算每个多边形顶点处的平均单位法矢量 2. 对每个顶点根据简单光照模型来计算其光强。
2020/12/13
华中理工大学计算机学院 陆枫 99-
21
7
10.5 模拟景物表面细节
颜色纹理:通过颜色色彩或明暗度的变化体现 出来的表面细节。 几何纹理:由于不规则的细小凹凸造成的。 颜色纹理取决于物体表面的光学属性,而几何 纹理由物体表面的微观几何形状决定。
2020/12/13
华中理工大学计算机学院 陆枫 99-
3. 在多边形表面上将顶点强度进行线性插值。
2020/12/13
华中理工大学计算机学院 陆枫 99-
16
7
10.2.3 Phong明暗处理
Phong明暗处理方法由PhongBuiTuong提出,又称为法矢 量插值明暗处理,它对多边形顶点的法矢量进行插值 以产生中间各点的法矢量。
Phong明暗处理的基本步骤是: 1. 计算每个多边形顶点处的平均单位法矢量。 2. 用双线性插值方法求得多边形内部各点的法矢量。 3. 最后按光照模型确定多边形内部各点的光强。
2020/12/13
华中理工大学计算机学院 陆枫 99-
2
7
真实感图形绘制 即根据假定的光照条件和景物外观因素,依据 一定的光照模型,计算可见面投射到观察者眼 中的光强度大小,并将它转换成适合图形设备 的颜色值,生成投影画面上每一个象素的光强 度,使观察者产生身临其境的感觉。
2020/12/13
华中理工大学计算机学院 陆枫 99-
第10章 真实感图形绘制
提出问题
• 真实感图形绘制: 通过综合利用数学、物理学、计算机以及心理学 等知识在计算机图形输出设备上绘制出能够以假 乱真的美丽景象。
2020/12/13
华中理工大学计算机学院 陆枫 99-
1
7
第10章 真实感图形绘制
用计算机生成三维场景的真实图形,需完成步骤: (1)在计算机中进行场景造型; (2)进行取景变换和透视变换; (3)进行消隐处理; (4)进行真实感图形绘制
2020/12/13
华中理工大学计算机学院 陆枫 99-
30
7
10.6.3 光线跟踪反走样
将光线跟踪算法与过采样方式结合起来,可归纳如下: 1. 对每一象素的角点计算光线跟踪的光强。 2. 比较象素四个角点的光强,确定要进行细分的象素。 3. 对细分后新增的角点计算光线跟踪的光强。然后,
重复2.和3.,直到各角点的光强比较接近为止。 4. 加权平均求出投影平面上各象素点的光强。
Ip(IpR ,IpG ,IpB )
IdR I pR KdR (L N ) IdG I pG KdG (L N ) IdB I pB KdB (L N )
有多个点光源:
n
Id Ip,iKd(Li N) i1
2020/12/13
华中理工大学计算机学院 陆枫 99-
10
7
10.1.3 镜面反射光
为产生彩色的场景,要完成如下两步: 一是选择一个合适的颜色模型; 二是为颜色的三个分量分别建立光照模型。
2020/12/13
华中理工大学计算机学院 陆枫 99-
14
7
10.2 基于简单光照模型的多边形绘制
10.2.1 恒定光强的多边形绘制
只用一种颜色绘制整个多边形:任取多边形上 一点,利用简单光照模型计算出它的颜色,该 颜色即是多边形的颜色。
纹理和表面变换
观察和投影变换
图10-16 纹理映射中纹理空间、物体空间和象素空间的变换
2020/12/13
华中理工大学计算机学院 陆枫 99-
24
7
纹理映射变换的逆变换
观察投影变换的逆变换
纹理模式
物体表面
图10-17 由象素空间向纹理空间的映射
象素区
2020/12/13
华中理工大学计算机学院 陆枫 99-
28
7
10.6.2 光线跟踪算法
y 投影平面
x
z
图 10-21 光 线 跟 踪 算 法
2020/12/13
华中理工大学计算机学院 陆枫 99-
29
7
B TB
RA A
TC
RB
C
RC
TA
A
RA
TA
B
RB TB C
RC TC
(a) 光线在景物中反射和折射
(b) 二叉光线跟踪树
图10-22 光线跟踪及光线跟踪树
由Lambert余弦定理可得点P处漫反射光的强度为:
IdIpKdco,s[0,2]
2020/12/13
华中理工大学计算机学院 陆枫 99-
8
7
点光源
N
L
P
图 10-3 漫 反 射
若L和N都已规格化为单位矢量,则:
Id IpKd(LN)
2020/12/13
华中理工大学计算机学院 陆枫 99-
9
7
彩色:
2020/12/13
华中理工大学计算机学院 陆枫 99-
17
7
10.3 透明处理
入射光
入射光
反射光 折射光
透明景物
图10-13 透明表面的光强包括反射光和折射光
2020/12/13
华中理工大学计算机学院 陆枫 99-
18
7
不透明景物 B
A
透明景物
z
P
x
图 10-14 简 单 透 明 的 处 理
2020/12/13
22
7
10.5.1 用多边形模拟表面细节
简单地模拟景物表面细节的方法是用多边 形,称为表面图案多边形,来模拟纹理的 结构和模式。
2020/12/13
华中理工大学计算机学院 陆枫 99-
23
7
10.5.2 纹理的定义和映射
纹理空间 (s,t)数组坐标
物体空间 (u,v)表面参数
象素空间 (x,y)象素坐标
2020/12/13
华中理工大学计算机学院 陆枫 99-
31
7
习题
2020/12/13
华中理工大学计算机学院 陆枫 99-
32
7
3
7
10.1.1 环境光
P
图 10-1 环 境 光 的 反 射
P点对环境光的反射强度为
Ie IaKa
2020/12/13
华中理工大学计算机学院 陆枫 99-
6
7
10.1.2 漫反射光
图10-2 点光源发射的光线路径
2020/12/13
华中理工大学计算机学院 陆枫 99-
7
7
点光源
N
L
P
图 10-3 漫 反 射
25
7
10.5.3 凹凸映射
1978年,Blinn提出了一种无需修改表面几何模 型,即能模拟表面凹凸不平效果的有效方法— —凹凸映射技术(Bump Mapping)。
2020/12/13
华中理工大学计算机学院 陆枫 99-
26
7
10.6 整体光照模型与光线跟踪
10.6.1 整体光照模型
能同时模拟光源和环境照明效果的光照模型称 为整体光照模型。整体光照模型的典型代表是 Whitted模型及辐射度模型。
2020/12/13
华中理工大学计算机学院 陆枫 99-
27
7
10.6.2 WhitRted光照模N型
V 视点
T
图 10-20 物 体 表 面 的 镜 面 反 射 和 透 射
Whitted光照模型: IIloc a K s lIsK tIt
2020/12/13
华中理工大学计算机学院 陆枫 99-
华中理工大学计算机学院 陆枫 99-
19
7
入射光 L
i
r
N i i
反射光 R
折射光 r
T
图 10-15 光 的 折 射
2020/12/13
华中理工大学计算机学院 陆枫 99-
20
7
10.4 产生阴影
从理论上来说,从视点以及从光源看过去都 是可见的面不会落在阴影中,只有那些从视 点看过去是可见的,而从光源看过去是不可 见的面,肯定落在阴影之内。
N 点光源
观察点
L
R
V
P
图 10-4 镜 面 反 射
镜面反射情况由Phong模型给出:
Is IpKscons
2020/12/13
华中理工大学计算机学院 陆枫 99-
11
7
若R和V已规格化为单位矢量,则:
Is IpKs(RV)n
从视点观察到物体上任一点P处的光强度I应为环境光 反射光强度Ie、漫反射光强度Id以及镜面反射光的光强 度Is的总和: