第十章 真实感图形绘制 基本概念 简单光照模型 基于简单光照模型的多边形绘制.

Slides:



Advertisements
Similar presentations
第五节 函数的微分 一、微分的定义 二、微分的几何意义 三、基本初等函数的微分公式与微分运算 法则 四、微分形式不变性 五、微分在近似计算中的应用 六、小结.
Advertisements

2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
2.6 隐函数微分法 第二章 第二章 二、高阶导数 一、隐式定义的函数 三、可微函数的有理幂. 一、隐函数的导数 若由方程 可确定 y 是 x 的函数, 由 表示的函数, 称为显函数. 例如, 可确定显函数 可确定 y 是 x 的函数, 但此隐函数不能显化. 函数为隐函数. 则称此 隐函数求导方法.
2.5 函数的微分 一、问题的提出 二、微分的定义 三、可微的条件 四、微分的几何意义 五、微分的求法 六、小结.
全微分 教学目的:全微分的有关概念和意义 教学重点:全微分的计算和应用 教学难点:全微分应用于近似计算.
老人茶帶來的新時尚 9A2D0024 黃秀雯 9A2D0036 莊承憲 9A2D0041 蘇意婷 9A2D0045 盧家淑 9A2D0050 王宥棋 9A21C017 吳雅芝.
平面向量.
§3.4 空间直线的方程.
《解析几何》 -Chapter 3 §7 空间两直线的相关位置.
3.4 空间直线的方程.
2011年广西高考政治质量分析 广西师范大学附属外国语学校 蒋 楠.
知识回顾 1、通过仔细观察酒精灯的火焰,你可以发现火焰可以分为 、 、 。 外焰 内焰 焰心 外焰 2、温度最高的是 。
洋流(大规模的海水运动).
会计学 第九章 财务会计报告.
(一) 第一单元 (45分钟 100分).
第7章 计算机图形学与图形处理技术 计算机图形学(Computer Graphics)是利用计算机研究图形表示、生成、处理、显示的学科。
第四章 函数的积分学 第六节 微积分的基本公式 一、变上限定积分 二、微积分的基本公式.
计算机图形学 多媒体课件 洛阳理工学院计算机与信息工程系 Your Site Here.
第三节 格林公式及其应用(2) 一、曲线积分与路径无关的定义 二、曲线积分与路径无关的条件 三、二元函数的全微分的求积 四、小结.
2-7、函数的微分 教学要求 教学要点.
第十章 真实感图形绘制 基本概念 简单光照模型 基于简单光照模型的多边形绘制.
光学谐振腔的损耗.
第六章 三维真实感物体显示技术 虚拟现实(Virtual Reality,简称VR)技术是一种逼真的模拟人在自然环境中视觉、听觉、运动等行为的人机界面技术。其目的是:不仅能够在多维空间仿真建模,而且能够帮助人们获取知识和形成新的概念,Mark Green给出了一个简明的虚拟现实应用系统模型,如图6.1所示。
真实感图形 授课教师: 单位:.
Computer Graphics 计算机图形学基础 张 赐 Mail: CSDN博客地址:
强连通分量 无向图 1、任意两顶点连通称该图为连通图 2、否则将其中的极大连通子图称为连通分量 A D C B E 有向图
物体识别 3D建图 semantic mapping
走进编程 程序的顺序结构(二).
元素替换法 ——行列式按行(列)展开(推论)
绘制圆与多边形 椭圆形 绘制椭圆形的方法是 drawOval(x ,y , width , height), 绘制实心椭圆形的方法是
基于全方位视觉的多人体运动检测跟踪 利用全方位摄像机获取360˚ 的环境信息,在室内对多个人体目标进行实时运动检测。
纹理映射.
数学模型实验课(三) 插值与三维图形.
双曲线的简单几何性质 杏坛中学 高二数学备课组.
28.1 锐角三角函数(2) ——余弦、正切.
第8章 静电场 图为1930年E.O.劳伦斯制成的世界上第一台回旋加速器.
2.1.2 空间中直线与直线 之间的位置关系.
第三章 辐射 学习单元2 太阳辐射.
《2015考试说明》新增考点:“江苏省地级市名称”简析
图片与视频数字化. 图片与视频数字化 图片分类 根据图片的构成元素来分 位图: 由像素组成,计算机按顺序存储每个像素点 的颜色信息的保存方式获得的图片。 位图放大后会模糊失真,存储空间相对较大。 矢量图: 由图元组成,通过数学公式计算获得的图片。 放大后不会失真,占用空间小。
专题作业.
第二十二章 曲面积分 §1 第一型曲面积分 §2 第二型曲面积分 §3 高斯公式与斯托克斯公式.
2.3等腰三角形的性质定理 1.
乘法公式 (1) 乘法分配律 (2) 和的平方公式 (3) 差的平方公式 (4) 平方差公式.
第五节 对坐标的曲面积分 一、 对坐标的曲面积分的概念与性质 二、对坐标的曲面积分的计算法 三、两类曲面积分的联系.
作业 P152 习题 复习:P 预习:P /5/2.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
3.1.2 空间向量的数量积运算 1.了解空间向量夹角的概念及表示方法. 2.掌握空间向量数量积的计算方法及应用.
北师大版《数学》五年级上册 组合图形面积.
北师大版《数学》五年级上册 组合图形面积.
_13简单的GDI绘图操作 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
学习任务三 偏导数 结合一元函数的导数学习二元函数的偏导数是非常有用的. 要求了解二元函数的偏导数的定义, 掌握二元函数偏导数的计算.
O x y i j O x y i j a A(x, y) y x 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算.
一元二次不等式解法(1).
《工程制图基础》 第五讲 投影变换.
静定结构位移计算 ——应用 主讲教师:戴萍.
例题2-15讲解 主讲人 束美其.
分数再认识三 真假带分数的练习课.
平行四边形的性质 鄢陵县彭店一中 赵二歌.
§2-2 点的投影 一、点在一个投影面上的投影 二、点在三投影面体系中的投影 三、空间二点的相对位置 四、重影点 五、例题 例1 例2 例3
图片与视频数字化. 图片与视频数字化 图片分类 根据图片的构成元素来分 位图: 由像素组成,计算机按顺序存储每个像素点 的颜色信息的保存方式获得的图片。 位图放大后会模糊失真,存储空间相对较大。 矢量图: 由图元组成,通过数学公式计算获得的图片。 放大后不会失真,占用空间小。
基于列存储的RDF数据管理 朱敏
光照模型 计算机科学与技术系.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
位似.
纹理映射.
香港城市大学 导师: 布礼文教授( Dr. L M Po ) 学生: 徐叙远 ( Xu Xuyuan )
最小生成树 最优二叉树.
第三章 图形的平移与旋转.
3.3.2 两点间的距离 山东省临沂第一中学.
Presentation transcript:

第十章 真实感图形绘制 基本概念 简单光照模型 基于简单光照模型的多边形绘制

基本概念 真实感图形绘制:通过综合利用数学、物理学、计算机以及心理学等知识在计算机图形输出设备上绘制出能够以假乱真的美丽景象。 光强(度):描述物体表面朝某方向辐射光的颜色,它既能表示光能大小又能表示其色彩组成的物理量。

基本概念 光照模型(Illumination model),也称明暗模型,主要用于物体表面某点处的光强度计算。 简单的光照模型 复杂的光照模型

基本概念 真实感图形绘制过程 根据假定的光照条件和景物外观因素,依据一定的光照模型,计算可见面投射到观察者眼中的光强度大小,并将它转换成适合图形设备的颜色值,生成投影画面上每一个象素的光强度,使观察者产生身临其境的感觉。

基本概念 真实感图形绘制步骤 在计算机中进行场景造型; 进行取景变换和透视变换; 进行消隐处理; 进行真实感图形绘制。

10.1 简单光照模型 简单光照模型 环境光 漫反射光 镜面反射光 光强衰减 颜色处理

简单光照模型 简单光照模型中只考虑反射光的作用。 反射光由环境光、漫反射光和镜面反射光三部分组成。

环境光(Background Light) 特点:照射在物体上的光来自周围各个方向,又均匀地向各个方向反射。 P点对环境光的反射强度为 图1 环境光的反射

漫反射光(Diffuse Reflection) 一个粗糙的、无光泽的表面呈现为漫反射。 特点:光源来自一个方向,反射光均匀地射向各个方向。 由Lambert余弦定理可 得点P处漫反射光的强度为: 图2 漫反射

漫反射光(Diffuse Reflection) 若L和N都已规格化为单位矢量,则有 图2 漫反射

漫反射光(Diffuse Reflection) 对于彩色 对于多个漫反射光源

镜面反射光 镜面反射遵循反射定律,入射光和反射光分别位于表面法矢的两侧。 如果观察者正好处在P点的镜面反射方向上,就会看到一个比周围 亮得多的高光点。 图3 镜面反射

镜面反射光 镜面反射情况由Phong模型给出: 若R和V已规格化为单 位矢量,则: 图3 镜面反射

物体表面光强计算 从视点观察到物体上任一点P处的光强度I应为环境光反射光强度Ie、漫反射光强度Id以及镜面反射光的光强度Is的总和:

光强衰减 光在传播的过程中,其能量会发生衰减。光照模型中必须考虑光强衰减,否则会影响生成图形的真实效果。 光强的衰减可以采用常数衰减、一次函数衰减和二次函数衰减等。

光强衰减 常用的二次衰减函数

颜色 选择颜色模型(color model) 面向硬件的颜色模型:RGB、CYM 面向视觉感知的颜色模型:HSI 为颜色分量指定光照模型

颜色 以RGB颜色模型为例 环境光强度: 入射光强度: 环境光反射系数: 漫反射系数: 镜面反射系数:

颜色 光强计算公式:

10.2 基于简单光照模型的多边形绘制 恒定光强 Gouraud明暗处理 Phong明暗处理

恒定光强 只用一种颜色绘制整个多边形 光源在无穷远处,则多边形上所有点的L·N为常数,衰减函数也是一个常数。 视点在无穷远处,则多边形上所有点的V·R为常数。 多边形是景物表面的精确表示,即不是一个含曲线面景物的近似表示。

Gouraud明暗处理 Gouraud明暗处理方法,又称为亮度插值明暗处理,它通过对多边形顶点颜色进行线性插值来绘制其内部各点,其步骤为: 计算每个多边形顶点处的平均单位法矢量; 对每个顶点根据简单光照模型来计算其光强; 在多边形表面上将顶点强度进行线性插值。

Gouraud明暗处理 双线性插值方法 图4 Gouraud 明暗处理的双线性插值

Phong明暗处理 Phong明暗处理方法,又称为法矢量插值明暗处理,它对多边形顶点的法矢量进行插值以产生中间各点的法矢量,其步骤为: 计算每个多边形顶点处的平均单位法矢量; 用双线性插值方法求得多边形内部各点的法矢量。 最后按光照模型确定多边形内部各点的光强。

Phong明暗处理 矢量双线性插值方法 图5 Phong明暗处理的矢量双线性插值

10.3 透明处理 图6 透明表面的光强包括反射光和折射光

透明处理 图7 简单的透明处理

透明处理 图8 光的折射

10.4 产生阴影 阴影是由于物体截断了光线而产生的,所以如果光源位于物体一侧的话,阴影总是位于物体的另一侧,也就是与光源相反的一侧。 从理论上来说,从视点以及从光源看过去都是可见的面不会落在阴影中,只有那些从视点看过去是可见的,而从光源看过去是不可见的面,肯定落在阴影之内。

产生阴影 产生具有阴影的图形绘制算法 将视点移到光源位置,用多边形区域排序消隐算法,将多边形分成两大类:向光多边形和背光多边形。 将视点移到原来的观察位置,对向光多边形和背光多边形进行消隐,并选用一种光照模型计算多边形的亮度,就可得到有阴影效果的图形。

10.5 模拟景物表面细节 颜色纹理:通过颜色色彩或明暗度的变化体现出来的表面细节。 几何纹理:由于不规则的细小凹凸造成的。 颜色纹理取决于物体表面的光学属性,而几何纹理由物体表面的微观几何形状决定。

10.5 模拟景物表面细节 用多边形模拟表面细节 纹理的定义和映射 凹凸映射

多边形模拟表面细节 简单地模拟景物表面细节的方法是用多边形,称为表面图案多边形,来模拟纹理的结构和模式。 处理时,首先根据待生成的颜色纹理构造表面图案多边形,然后将表面图案多边形覆盖到物体的表面上。

纹理映射和定义 生成颜色纹理的一般方法,是预先定义纹理模式,然后建立物体表面的点与纹理模式的点之间的对应。当物体表面的可见点确定之后,以纹理模式的对应点参与光照模型进行计算,就可把纹理模式附到物体表面上。这种方法称为纹理映射(Texture Mapping)。

纹理映射和定义 图9 纹理映射中纹理空间、物体空间和像素空间的变换

纹理映射和定义 图10 由像素空间向纹理空间的映射

凹凸映射 1978年,Blinn提出了一种无需修改表面几何模型,即能模拟表面凹凸不平效果的有效方法——凹凸映射技术(Bump Mapping)。

10.6 整体光照模型与光线跟踪 整体光照模型 Whitted光照模型 光线跟踪算法

整体光照模型 一个完整的光照明模型应该包括由光源和环境引起的漫反射分量、镜面反射分量、规则透射分量以及漫透射分量等。 仅考虑由光源引起的漫反射分量和镜面反射分量,而环境反射分量则简单地用一常数来代替,这类光照模型称为局部光照模型。 能同时模拟光源和环境照明效果的光照模型称为整体光照模型。

Whitted光照模型 Whitted在简单光照模型中增加了环境镜面反射光和环境规则透射光,以模拟周围环境的光投射在景物表面上产生的理想镜面反射和规则透射现象。 图11 物体表面的镜面反射和投射

光线跟踪算法 光线跟踪(Ray Tracing)方法基于几何光学的原理,通过模拟光的传播路径来确定反射、折射和阴影等。 图12 光线跟踪算法

光线跟踪算法步骤 从视点出发,确定穿过每个像素中心的光线路径,然后,沿这束光线累计光强,并将最终值赋给相应像素。 对于每一像素光线,对场景中的所有物体表面进行测试以确定其是否与该光线相交,并计算出交点的深度,深度最大(z值)的交点即为该像素对应的可见点。然后,继续考察通过该可见点的从属光线(Secondary Rays)。

光线跟踪算法步骤 对每条从属光线重复过程:与场景中的所有物体求交。然后递归地在沿从属光线方向最近的物体表面上生成下一折射和反射光线。当由每个像素出发的光线在场景中被反射和折射时,逐个将相交物体表面加入到一个二叉光线跟踪树中。当树中的一束光线到达预定的最大深度或到达某光源时,就停止跟踪。

光线跟踪算法步骤 图13 光线跟踪及光线跟踪树

光线跟踪算法步骤 可以从光线跟踪树的叶结点开始,累计光强贡献以确定某像素处的光强大小。树中每个结点的光强由树中的子结点处继承而来,但光强大小随距离而衰减。像素光强是光线树根结点处的衰减光强的总和。

光线跟踪反走样 将光线跟踪算法与过采样方式结合起来,可归纳如下: (1)对每一像素的角点计算光线跟踪的光强。 (2)比较像素4个角点的光强,确定要进行细分的像素。 (3)对细分后新增的角点计算光线跟踪的光强。然后,重复(2)和(3),直到各角点的光强比较接近为止。 (4)加权平均求出投影平面上各像素点的光强。

10.7 OpenGL中的光照处理 点光源 全局光照 表面材质 透明处理

点光源 在OpenGL场景描述中可以包含多个点光源,光源的各种属性设置使用下面的函数指定。 void glLight{if} (GLenum light, GLenum pname, TYPE param); void glLight{if}v (GLenum light, GLenum pname, TYPE *param);

点光源 pname取值 默认值 含义 GL_AMBIENT (0.0, 0.0, 0.0, 1.0) 光源中环境光分量 GL_DIFFUSE (1.0, 1.0, 1.0, 1.0) 或(0.0, 0.0, 0.0, 1.0) 光源中漫反射光分量 GL_SPECULAR 光源中镜面光分量 GL_POSITION (0.0, 0.0, 1.0, 0.0) 光源的坐标位置 GL_SPOT_DIRECTION (0.0, 0.0, -1.0) 光源聚光灯方向矢量 GL_SPOT_EXPONENT (0.0) 聚光指数 GL_SPOT_CUTOFF 180.0 聚光截止角 GL_CONSTANT_ATTENUATION 1.0 固定衰减因子 GL_LINEAR_ATTENUATION 0.0 线性衰减因子 GL_QUADRATIC_ATTENUATION 二次衰减因子

点光源 点光源的颜色 点光源的位置和类型 聚光灯 光强度衰减

glEnable(GL_LIGHTING); 点光源 在OpenGL中,必须明确启用或禁用光照。默认情况下,不启用光照,此时使用当前颜色绘制图形,不进行法线矢量、光源、光照模型、材质属性的相关的计算。要启用光照,可以使用函数: glEnable(GL_LIGHTING); 指定了光源的参数后,需要使用函数启用light指定的光源: glEnable(light);

OpenGL全局光照 在OpenGL中,下面的函数用于指定全局光照 void glLightMode{if} (GLenum pname,TYPE param); void glLightMode{if}v (GLenum pname,TYPE *param); pname取值 默认值 含义 GL_LIGHT_MODEL_AMBIENT (0.2, 0.2, 0.2, 1.0) 整个场景的环境光成分 GL_LIGHT_MODEL_LOCAL_VIEWER GL_FALSE 如何计算镜面反射角 GL_LIGHT_MODEL_TWO_SIDE 单面光照还是双面光照 GL_LIGHT_MODEL_COLOR_CONTROL GL_SINGLE_COLOR 镜面反射颜色是否独立于环境颜色、散射颜色

OpenGL材质属性 在OpenGL中,下面的函数用于指定材质属性 void glMaterial{if} (GLenum face, GLenum pname, TYPE param); void glMaterial{if}v (GLenum face, GLenum pname, TYPE *param); pname取值 默认值 含义 GL_AMBIENT (0.2, 0.2, 0.2, 1.0) 材质对环境光的反射系数 GL_DIFFUSE (0.8, 0.8, 0.8, 1.0) 材质对漫射光的反射系数 GL_AMBIENT_AND_DIFFUSE 材质对环境光和漫射光的反射系数 GL_SPECULAR (0.0, 0.0, 0.0, 1.0) 材质对镜面光的反射系统 GL_SHININESS 0.0 镜面反射指数 GL_EMISSION (0.0, 0.0, 0.1, 1.0) 材质的发射光颜色 GL_COLOR_INDEXS (0, 1, 1) 环境颜色索引、漫反射颜色索引和镜面反射颜色索引

OpenGL材质属性 OpenGL提供颜色材质模式: glEnable(GL_COLOR_MATERIAL); void glColorMaterial (GLenum face, GLenum mode); 颜色材质模式中,可以通过glColor函数来指定物体表面的颜色,而相应的材质属性将通过颜色值和光源的RGB值计算出来。

透明处理 OpenGL中使用混合实现透明处理。 混合操作是指将输入对象(源)的颜色值与当前存储在帧缓存中的像素(目标)颜色值合并的过程。

透明处理 开启混合操作 指定计算源因子和目标因子的计算方式 glEnable(GL_BLEND); void glBlendFunc(GLenum srcfactor, GLenum destfactor);

透明处理 常量 RGB混合因子 alpha混合因子 GL _ZERO (0, 0, 0) GL_ONE (1, 1, 1) 1 GL_ONE (1, 1, 1) 1 GL_SRC_COLOR (Rs, Gs, Bs) As GL_ONE_MINUS_SRC_COLOR (1, 1, 1)- (Rs, Gs, Bs) 1-As GL_DST_COLOR (Rd, Gd, Bd) Ad GL_ONE_MINUS_DST_COLOR (1, 1, 1)- (Rd, Gd, Bd) 1-Ad GL _SRC_ALPHA (As, As, As) GL_ONE_MINUS_SRC_ALPHA (1, 1, 1)- (As, As, As) GL_DST_ALPHA (Ad, Ad, Ad) GL_ONE_MINUS_DST_ALPHA (1, 1, 1)- (Ad, Ad, Ad) GL_CONSTANT_COLOR (Rc, Gc, Bc) Ac GL_ONE_MINUS_CONSTANT_COLOR (1, 1, 1)- (Rc, Gc, Bc) 1-Ac GL_CONSTANT_ALPHA (Ac, Ac, Ac) GL_ONE_MINUS_CONSTANT_ALPHA (1, 1, 1)- (Ac, Ac, Ac) GL_SRC_ALPHA_SATURATE (f, f, f); f=min(As, 1-Ad)

透明处理 进行混合计算 假定计算出的源和目标混合因子分别为(Sr,Sg,Sb,Sa)和(Dr,Dg,Db,Da),并且分别使用下标s和d区分表示源和目标的RGBA值,则混合后的RGBA值如下: (RsSr+ RdDr,GsSg+Gd Dg,BsSb +BdDb,AsSa +AdDa)

10.8 OpenGL中的纹理映射 void glTexImage1D(GLenum target, GLint level, GLint components, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *texels); void glTexImage2D(GLenum target, GLint level, GLint components, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *texels); void glTexImage3D(GLenum target, GLint level, GLint components, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *texels);

纹理映射 启用纹理 glEnable(GL_TEXTURE_1D); glEnable(GL_TEXTURE_2D);

纹理映射 在启用纹理之后,需要建立物体表面上的点与纹理空间的对应关系。 在绘制基本图元时,在glVertex函数调用之间调用glTexCoord函数明确指定当前顶点所对应的纹理坐标。 让OpenGL自动生成纹理坐标。