计算机图形学---简单光照明模型知识汇总
本文整理自西安交通大学软件学院祝继华老师的计算机图形学课件,请勿转载
文章目录
- 基础概念
- 光源
- 材质
- Phong光照明模型
- Phong模型中的几何量示意图
- 理想漫反射
- 镜面反射
- 环境光
- 评价
- 增量式光照明模型
- Gouraud双线性光强插值
- 算法步骤的基本描述
- 顶点的计算
- 顶点平均光强计算
- 双线性光强插值
- 增量算法
- 评价
- Phong双线性法向插值
- 特点
- 两种模型对比
基础概念
光源
发光体即为光源
- 发射光源:反射表面
- 通常在一个不透明且不发光的物体表面所观察到的光线是其反射光,由光源与其他物体表面的反射光所共同产生。
- 光源向四周所辐射光的光谱分布
- 漫反射:投射在粗糙表面上的光向各个方向反射的现象。物体颜色实际上是入射光线被漫反射后所表现出来的颜色;
- 镜面反射:一束平行光射到平面镜上,反射光是平行的 。
- 空间的光亮度分布
- 图形学:光源通常朝空间各个方向发射的光强是相同的
材质
- 材质的颜色是由它所反射的光的波长决定;
- 如果光线被投射到一个不透明的物体表面,则部分光线被反射,部分被吸收:
- 物体表面的材质类型决定了反射光的强弱;
- 表面光滑较亮的材质将反射较多的入射光,比较暗的表面则吸收较多的入射光。
- 对于一个半透明的物体表面,部分入射光会被反射,部分则被折射。
光照射到物体表面,可能被吸收、反射和透射
- 被吸收的部分转化为热;
- 反射、透射光进入人的视觉系统。
光照明模型:模拟物体表面的光照明物理现象的数学模型
简单光照明模型:
- 只考虑光源对物体的直接光照;
- 景物表面常被假定为不透明,且具有均匀反射率;
- 能表现由光源直接照射在漫射表面上形成的连续明暗色调,镜面上的高光以及由于景物互相遮挡而形成的阴影等
Phong光照明模型
光照到物体表面时,物体对光会发生反射、透射、吸收、衍射、折射和干涉
简单光照明模型模拟物体表面对光的反射作用。
- 光源为点光源;
- 反射作用分为:镜面反射和漫反射;
- 物体间作用用环境光(Ambient Light)表示;
- 典型:Phong光照明模型
Phong模型中的几何量示意图
理想漫反射
当光源来自一个方向时,由于物体表面粗糙不平,导致反射光均匀向各方向传播,而与视点无关
镜面反射
理想镜面:反射光集中在一个方向并遵循反射定律。
光滑表面:反射光集中在一个范围内,且由反射定律决定的反射方向光强最大。对于同一点,不同位置观察到的镜面反射光强不同。
- 镜面反射光将会在反射方向附近形成很亮的光斑,称为高光现象
- 镜面反射光产生的高光区域只反映光源的颜色;
- 镜面反射系数 是一个与物体的颜色无关的参数;
- 只能通过改变物体的漫反射系数来控制物体的颜色
环境光
光源间接对物体施加的明暗影响,是在物体和环境之间多次反射,最终达到平衡时的一种光
同一环境下的环境光光强均匀分布,即在任一方向上的分布相同
Phong光照明模型:由物体表面上一点P反射到视点的光强III为环境光的反射光强IeI_eIe、理想漫反射光强IsI_sIs和镜面反射光TdT_dTd的总和
评价
- Phong光照明模型:真实感图形学中提出的第一个有影响的光照明模型,生成图像的真实度已达到可以接受的程度。
- 由于是经验模型,Phong模型存在不足:
- 显示出的物体象塑料,无质感变化;
- 环境光是常量,没有考虑物体间相互反射光;
- 镜面反射颜色是光源颜色,与材质无关;
- 镜面反射的计算在入射角很大时会产生失真现象
增量式光照明模型
用多边形表示的物体
- 每个多边形由于法向一致,多边形内部颜色相同;
- 不同法向的多边形邻接处光强突变且有马赫带效应
增量式光照明模型:
- 在每个多边形顶点处计算光照明强度或参数,然后在各个多边形内部进行双线性插值,得到多边形光滑均匀颜色分布;
- 保证多边形之间的颜色光滑过渡。
两个主要算法
- 双线性法向插值:Phong明暗处理
- 双线性光强插值:Gouraud明暗处理
Gouraud双线性光强插值
思想:计算多边形各顶点的光强,再用双线性插值,求出多边形内部各点的光强。
算法步骤的基本描述
- 计算多边形顶点的平均法向;
- 用简单光照明模型计算顶点的平均光强;
- 插值计算离散多边形边上的各点光强;
- 插值计算多边形内域中各点的光强
顶点的计算
与某个顶点相邻的所有多边形的法向平均值近似作为该顶点的近似法向量;
顶点A相邻的多边形有k个,它的法向量计算为:
计算出的平均法向一般与该多边形物体近似曲面的切平面比较接近
顶点平均光强计算
用Phong光照明模型及平均法向量计算在顶点A处的光强
双线性光强插值
线性插值与扫描线算法相互结合,用增量算法实现各点光强的计算
由顶点的光强插值计算各边的光强,然后由各边的光强插值计算出多边形内部点的光强
增量算法
评价
- 计算速度比以往的简单光照明模型有了很大的提高,解决了相邻多边形之间的颜色突变问题,产生的真实感图象颜色过渡均匀,图形显得非常光滑;
- 由于采用光强插值,镜面反射效果不太理想,而且相邻多边形的边界处的马赫带效应不能完全消除
Phong双线性法向插值
以时间为代价,可以部分解决上述的弊病;
将镜面反射引进到明暗处理中,解决了高光问题
特点
- 保留双线性插值,对多边形边上的点和内域各点,采用增量法
- 对顶点的法向量进行插值,而原顶点的法向量,仍用相邻多边形的法向作平均
- 由插值得到法向,来计算多边形每个象素的光强度
- 假定光源与视点均在无穷远处,光强只是法向量的函数
方法与光强插值类似,其中的光强项用法向量项来代替。基本公式
增量插值计算也类似,用法向代替光强
两种模型对比
两类模型的特点:
- 光强插值能有效的显示漫反射曲面,计算量小;
- 法向插值可产生正确的高光区域,但计算量大。
增量式光照明模型的不足:
- 此模型得到的物体边缘轮廓是折线段而非光滑曲线;
- 由于透视原因,等间距扫描线会产生不均匀效果;
- 插值结果决定于插值方向
计算机图形学---简单光照明模型知识汇总相关推荐
- CG实验5 简单光照明模型
1.实验目的和要求 目的:了解简单光照明模型的基本原理,掌握简单光照明模型的计算方法: 要求:读懂WebGL光照示范代码,实现简单物体的光照效果. 2. 实验过程 (1) 示范代码为立方体在一束平行光 ...
- 计算机公共基础知识论文,计算机等级考试二级公共基础知识汇总.doc
计算机等级考试二级公共基础知识汇总.doc 计算机等级考试二级公共基础知识 第1章 数据结构与算法 1.1 算法 1.1.1 算法的基本概念 算法是指对解题方案的准确而完整的描述.简单地说,就是解决问 ...
- 计算机图形学基础:颜色模型、图像基本知识、Phong光照模型
主要内容: 图形学中的一些重要概念 色彩视觉 图像和像素 三角网格模型 光照模型与明暗处理 视点变换和视点方向 色彩视觉 什么是色彩? 色彩是对不同波长的光的能量的感知: 不同波长的电磁波(elect ...
- 计算机图形学+简单算法实现,《计算机图形学》课程设计-简单几何体的消隐算法实现.doc...
PAGE PAGE 18 PAGE 18 课程名称:<计算机图形学> 论文题目:简单几何体的消隐算法实现 教学部: 年 级: 班 级: 学 号: 姓 名: 简单几何体的消隐算法实现 摘 要 ...
- 计算机图形学中的常用模型
今天在网上搜了一下图形学里面比较常用的模型,觉得挺有意思,把它们收集起来,总结一下. 1.Lena/Lenna 这个模型是一个美女,名字叫Lena,是1972年11月<Playboy>(国 ...
- 计算机图形学用到哪些概率知识,图形学所需的数学知识
图形学所需的数学知识 "学习计算机图形学需要多少的数学?"这是初学者最经常问的问题.答案取决于你想在计算机图形学领域钻研多深.如果仅仅使用周围唾手可得的图形软件,你不需要知道多少数 ...
- 计算机图形学孔令德基础知识,计算机图形学基础教程孔令德答案
计算机图形学基础教程孔令德答案 [篇一:大学计算机图形学课程设] 息科学与工程学院课程设计任务书 题目: 小组成员:巴春华.焦国栋 成员学号:专业班级:计算机科学与技术.2009级本2班课程: 计算机 ...
- 计算机图形学孔令德基础知识,欢迎访问 孔令德计算机图形学精品资源共享课课程网站...
孔令德 博士,教授.山西省教学名师.山西省模范教师.太原市尖草坪区第三.四届政协委员.山西省计算机学会常务理事. 一.教学成果: (1)主持山西省精品资源共享课"C++程序设计"和 ...
- 全国计算机一级考试 最新版理论知识汇总
一. 基础知识 1. 下列存储器中,存取速度最快的是( ).B A. CD-ROM B. 内存 C. 软盘 D. 硬盘 2. 在微机中,1MB准确等于( ).B A. 1024×1024个字 B. 1 ...
- 推荐系统之:CTR预估模型知识汇总!
猜你喜欢 0.2021年10月热门报告盘点:<2021年轻人性生活报告>稳居榜首! 1.基于知识图谱的推荐系统总结 2.内容推荐策略产品经理的方法与实践 3.京东推荐算法精排技术实践 4. ...
最新文章
- Python是不是被严重高估了(转载)
- JSON简介以及用法汇总
- 事物(Jdbc) 例子
- 倒计时2天!AI大咖云集、30场技术公开课,还有乐队... 年度最有意思的AI开发者活动来了!...
- Hibernate3的配置参数汇总
- mysql游标嵌入式_Oracle与MySQL内嵌游标的使用示例
- unzip 分包_建筑总包企业计量分包成本时,未取得相应分包发票,增值税如何处理?...
- 29.类加载机制、类加载过程、加载、验证、准备、解析、初始化、总结
- 怎么清理文件缓存文件云服务器,服务器运行内存怎么清理缓存
- mysql-3 检索数据(1)
- 计算机桌面壁纸怎样拉伸,win10桌面壁纸怎么拉伸?手把手教你拉伸win10桌面壁纸的方法...
- js中引用类型赋值(拷贝)问题
- 符号三角形问题 java_算法java实现--回溯法--符号三角形问题
- 回归分析的五个基本假设
- 实战讲解网关接口统一认证SpringCloudGateway(图+文)
- 互联网夜高峰,无人应答
- 关于google smtp邮件发送
- C语言strlen()函数:返回字符串的长度
- *2-3 OJ 1164 导弹拦截之升级版
- VMware虚拟机网络连接的3种方式