计算机图形学光照模型与面绘制算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

光照模型 (光强的计算)
应用在
应用在
表面绘制
(每个点的光强计算)
全局光照效果
光线跟踪方法 辐射度方法
八、多边形(表面)绘制算法
恒定强度表面绘制(平面绘制)
一个多边形对应一个光强度 适合于情况:
多面体 光源足够远 N.L 及衰减函数为常数 视点也足够远 V.R (N.H) 为常数
Gouraud明暗处理 Phong明暗处理
辐射度模型下的光照计算
将场景表面分割为许多小多边形,设定“表面闭包” 计算形状因子(半立方体代替半球体) 列出闭包内所有表面的辐射度方程
联立求解(E,F,ρ都已知,求B)(Fkk=0,k=1,2…n)
计算(续)
(1)计算形状因子Fij; (2)求解方程组,得出各面片的辐射度Bi; (3)计算面片各顶点的亮度; (4)观察投影变换; (5)用线性插值法计算各象素点的亮度;
辐射度模型:利用辐射能在物体表面之间的转 移和能量守恒定律的漫反射模型。
物空间——计算表面亮度,与视点等无关
辐射度B 【瓦特/米2】 :单位时间内、单位面 积上离开表面的光能量。
强度I【瓦特/(米2·球面度)】:特定方向上 单位立体角内的辐射度
表面点发出的总辐射能=表面点为中心 的半球上所有方向辐射能的总和
从交点出发再反向跟踪从属光线:反射和折射。
满足以下条件之一时,停止跟踪:
该光线不和任一表面相交
该光线与一个光源相交且该 光源不是反射面
达到数据存储极限
跟踪结果:
生成二叉光线跟踪树
投影 参考 点 Pprp
投影平面上的 象素网格
二叉光线跟踪树
(1)求交计算 (2)光照效果计算
(2A)像素光强 (2B)聚焦效果
ρ:雾气的正密度 ρ越大,雾气越稠 密,表面越柔和
五、阴影
视点置于光源位置,不可见的表面即为阴影 计算出来的阴影可以当作表面图案存储
六、光强度显示
(0.0-1.0)系统分配的有限强度等级
人对声音、光强的感觉按对数等级变化 均匀的强度等级:相邻强度之比相同
Gamma校正
显示设备亮度变化非线性, 象素光强值线性变化 视频查找表调整线性象素值
辐射度Bk 入射能量Hk
n
Bk Ek k B jFjk j 1
表面1
B1F1k
表面2
B 2 F2k
表面j
B jFjk
表面K
n
Hk B jFjk j 1
幅射度公式
n
Bk Ek k B jFjk j 1
Bk 第k个面的幅射度。 Ek 单位时间、单位面积上从第k个面直接发出的能量。
参数 和 取决于显示设备属性 V为电子枪电压,I为显示强度
现状: 电压=0.5 时,强度=0.2 电压=0.8 时,强度=0.5 电压=1 时,强度=1
问题: 。。。。。。 所需像素强度=0.5,应该使用多大电压? 所需像素强度=1,应该使用多大电压?











规范化的电子枪电压
强度
2个强度等级
对每次计算——一部分是光源直接照射表面点产生 的光照效果(基本光照模型);另一部分是从属光 (由周围物体反射折射得到)照射表面点产生。
即:每次计算采用整体光照模型公式I=Il +Ig
Il —根据基本光照模型计算 Ig =KRIR+KTIT
考虑了反射系数KR,折射系数KT 这些‘系数’均为和表面材质有关的常数
辐射度B :单位面积上离开表面的光通量。
单位:瓦特/米2
光强度:特定方向上单位立体角放出的光辐射度
单位:cd(坎德拉) 或者 瓦特/(米2·球面度)
光源
光的颜色 光的来源 发光特性
白色光 彩色光 单色光
等能量的各种波长可见光的组合
发光光源 反射光源 点光源
方向光源 扩展光源
无穷远光源
光源(续)
Il1
IR2 Il5 KR4 IR5
Il 2
IT1 Il2 KR2 IR2
I Il1 KR1 IR1 KT1 IT1
采用了光线跟踪计算,显示了由 物体表面生成的全局反射和透射 光效果。
一个茶壶的光线反射,其反射参数设置为模拟磨光的铝表 面,采用Monte-Carlo光线跟踪法绘制而成
L
(1)环境光+点光源
KaIa+ KdIL(N.L) Idiff= KaIa
N.L>0 N.L0
K调a节环环境境光光漫的反最射终系光数照(效为果每)一表面指定,用来 Kd 表面漫反射系数 Ia 环境光强度 IL 点光源L的光强度
ka与kd值介于0到1.0之间的球面在暗灰色环境 光与一个白色点光源照射下产生的漫反射
连续色调图象 至少32个强度等级
4个强度等级 8个强度等级
七、半色调处理(halftoning)
基本思想:显示设备提供的光强等级数目较少时,将 多个象素单元组合起来表示一种强度值。
2级系统 2x2象素网格 5种强度等级
2级系统 3x3象素网格
10种强度等级
报纸、书刊上的 半色调照片,用 不同尺寸的黑点 (白点)表示色 调
Ka 环境光漫反射系数 Kd 表面漫反射系数 Ia 环境光强度 IL 光源L的强度 Ks 镜面反射系数 ns 镜面反射参数 N 表面法线单位矢量 L 指向光源方向单位矢量 H 理想镜面反射方向单位矢

(a) (b) (c) 场景的(d线) 框图;
环境光,不同表面颜色
单个点光源,(ks=0)环境光和漫反射; 单点光源,环境光、漫反射和镜面反射
递归过程
从叶结点开始 由底向上遍历二叉树 在树的每一个结点处,
递归地调用整体光照模 型公式(每上升一层, 光强部分衰减) 累计光强度贡献直到二 叉树根结点。
IR4 Ilight
IT 3 Ilight
Il 4
IR3 Il4 KR4 IR4
Il 5
Il 3
IR5 Ilight
Fra Baidu bibliotek
IR1 Il3 KR3 IR3 KT3 IT3
表面光发射
例子:吸顶灯,招牌
点光源+光锥 用扩展光源逼近:点光源网格 更强的真实感:辐射度模型
简单的计算:加入发射项Isurfemission
点光源 辐射强度衰减
强度衰减
无穷远光源 点光源与表面距离为dl
方向光源 角强度衰减
光源不是方向光源 对象位于投射圆锥外
其它
al :衰减指数
Vobj
真实感成像(前提首先是建立几何模型、透视投影、消除隐藏面)
表面特性的精确表示 场景中光照效果的物理描述:反射、透明度、纹理、阴影
光的度量
光源一般会向不同方向以不同强度发出光通量——
光通量:光能,单位时间传递的辐射能总量
单位:瓦特(焦耳/秒) 或者 流明 lm
要获得场景中表面上的光照效果——
(1)光线与物体表面的求交计算
由光线方程和表面方程联立解出交点
光线方程:
(s:P0和P的距离)
光线和球面求交
光线和多面体求交
s
提高效率?
P
求交例:光线和球面/多面体
直接求交
根的正负性判断 用较小s代入
得到交点
包围球测试 找到前向面 各个前向面:求交,内外测试 找到最近交点
光线跟踪反走样
过采样
一个象素是一个正方形 有多束光线穿过同一个象素 每束光线穿过子象素角点或中心
像素的最终光强=各束光线强度的平均值
适应性采样
四角不同或遇小物体时将象素细分
分布式光线跟踪
按照参数随机分布每个子象素上的光线位置
圆锥跟踪算法
确定锥形光束下,对象覆盖象素区域的百分比
十、辐射度光照模型
一、基本光照模型
各表面为理想漫反射体:假设入射光在各个方向 以相同强度发散而与观察位置无关
环境光引起的全局漫反射 点光源引起的漫反射 点光源引起的镜面反射 多个点光源引起的反射 表面光发射 辐射强度衰减 角强度衰减
环境光
特点
场景的一般亮度 对所有表面的统一照明 反射强度依赖于表面材质属性
课程内容进展
综述 ‘图形学’和‘图形系统’
建模 观察 显示
曲线曲面 实体造型 观察流水线 裁剪 可见面判别 光照 面绘制
其它 UI 动画 ……
坐标系统 基本图元 几何变换
第九讲 光照模型与面绘制算法
基本概念
光照模型 Illumination Model 计算表面上点的光强度的模型(方法)
表面绘制算法 Surface Rendering 对场景中所有表面的投影位置的象素点,根据光照模 型计算光强度的过程
结合光线跟踪和辐射度方法生成场景
注意:L,N,R,V 均为单位向量
H:L和V间的半角向量
给定的光源和视点,H是观察方 向上产生最大镜面反射(最大亮 度)的表面朝向
简化的Phong模型: 用NH替代 VR
对于非平面, 具有更高效率
(2)phong照明模型 (与漫反射合并)
环境光,单个点光源的漫反射+镜面反射 环境光,多个点光源的漫反射+镜面反射
环境光全局漫反射计算 Iambdiff=KdIa 0 Kd 1
每个表面设定漫反射系数Kd 环境光强度Ia
点光源漫反射
特点:
光线照射到物体表面后,向各个方向均匀发出
点光源漫反射计算 IL,diff=KdILcos=KdIL(N.L)
IL 光源强度 Kd 表面的漫反射系数 入射光与表面法线夹角 N
Gouraud明暗处理: 强度插值
由共享顶点的面的法向量平均值求顶点法向量 计算顶点光强度 多边形表面上将强度线性插值
缺点:高光处理不好,会有马赫带效应(多边形交界处, 光强的一阶导数不连续,从而得到过亮或过暗条纹)
平面绘制
Gouraud明暗处理
Phong明暗处理:法向量插值
求顶点法向量 法向量在表面上插值 每点计算强度 更精确 但是计算量大
影响物体的方式
背景光 (环境光)
镜面反射
反射光
漫反射 点光源发射光
背景光+反射光
漫反射
镜面反射
本章主要内容
一、基本光照模型 二、RGB颜色 三、基本透明模型 四、雾气 五、阴影 六、光强度显示
七、半色调处理 八、表面绘制(明暗) 九、光线跟踪 十、辐射度光照模型 纹理映射 OpenGL实现光照和表 面绘制
三、基本透明模型
折射
简化的透明模型计算方法 I=(1-Kt)Iref1+KtItrans
Kt 透明系数,Iref1反射强度,Itrans 透射强度
深度排序、修改的深度缓存算法、A缓存算法
四、雾气
fatmo(d):雾气衰减函数 Iobj:对象表面光强度 Iatmo:模拟雾气光强度(也可同时考虑颜色) d:观察位置到对象的距离
Vlight
O
(3)考虑表面发射项和强度衰减
其它
对象后面的光源
对象后面的光源 其它
光照模型 (光强的计算)
颜色 透明度 其它效果
强度等级的划分 强度的显示
二、RGB颜色
为Ka,Kd,Ks各自定义RGB分量,例如 以蓝色为例,点光源漫反射计算修改为:
漫反射和镜面反射颜色向量(K为单值常数) 漫反射颜色向量 镜面反射颜色向量 以蓝色为例,点光源漫反射计算修改为:
球面 多面体
反射光方向 折射光方向
求交效率的提高方法
物体包围球排除法
单个对象包围球 多个对象(或包围球)的包围球
空间分割方法
逐次将空间分割为若干子立方体 直至每个子立方体包含的物体表面或面片数目小于预定值 八叉树是一种均匀分割的选择
(2A)每个像素光强值计算
光线跟踪本质上是个递归算法,每个象素的光强度 必须综合各级递归计算的结果才能获得。
点光源镜面反射
注意:L,N,R,V
均为单位向量
特点
镜面反射角=入射角
在镜面反射角的一个会聚区域内入射光的全部或大部分成为反射光
光亮表面,大ns
Phong镜面反射模型
黯淡表面,小ns
ns:镜面反射参数 Ks:恒定的镜面反射系数(本来应该和材质、透明度、入射光角度、颜
色等有关)
Ks
ns
对于不同的镜面参数值计算单个点光源 场景中球面的镜面反射效果
九、光线跟踪方法(ray tracing)
正向效果:光源(环境光)发出无数光线, 在可以直接到达的表面上产生反射、折射; 反/折射光进一步到达其它表面……直到部 分光线最终到达投影平面上的像素位置。
逆向模拟
以像素为起点
像空间
光线跟踪流程
跟踪象素光线:对每一象素,反向跟踪由它到场景的光线 (Pprp到像素中心连线),求出与第一个物体的交点。
ρk 第k个面的反射因子(与漫反射系数相关),表示入 射光中被反射回环境的部分。
Fjk 形状因子,定义为从第j个面出发的幅射能中可以到 达第k个面的部分。当所有的面都是具有理想漫反射性质
时,形状因子是纯几何量,仅与形状、大小、位置、以
及朝向有关。
投射到k表面的能量 Fjk = 离开j表面的总能量
相关文档
最新文档