《真实感图形学PPT课件》由会员分享,可在线阅读,更多相关《真实感图形学PPT课件(189页珍藏版)》请在金锄头文库上搜索。
1、第第4章章真实感图形学真实感图形学 真实感图形学研究什么? 早期,计算机的速度,使人们满足于线框图 1967年, Wylie开始了用计算机生成真实感 图形的探索。 21世纪,图形无所不在!内容内容颜色视觉颜色视觉简单光照明模型简单光照明模型局部光照明模型光透射模型纹理及纹理映射整体光照明模型实时真实感图形学技术41 颜色视觉颜色视觉分析以下的基本现象:为什么计算R、G、B三个分量就可以使人有颜色的视觉感觉?基本概念基本概念颜色是外来的光刺激作用于人的视觉器官而产生的主观感觉,影响的因素有:物体本身光源周围环境观察者的视觉系统颜色的特性颜色的特性颜色的三个视觉特性(心理学度量)色调(Hue) 一
2、种颜色区别于其他颜色的 因素,如:红、绿、蓝饱和度(Saturation) 颜色的纯度亮度(Lightness) 光给人的刺激的强度对应的颜色物理特性对应的颜色物理特性主波长(Dominant Wavelength) 产生颜色光的波长,对应于视觉感知的色调纯度(Purity) 对应于饱和度明度(Luminance) 对应于光的亮度颜色纺锤体颜色纺锤体颜色三特性的空间表示垂直轴线表示白黑亮度变化水平圆周上的不同角度点代表了不同色调的颜色从圆心向圆周过渡表示同一色调下饱和度的提高平面圆形上的色调和饱和度不同,而亮度相同光的物理知识光的物理知识光是人的视觉系统能够感知到的电磁波波长在400nm到70
3、0nm之间 (1nm=10-9m)光可以由它的光谱能量分布 来表示各种波长的能量大致相等,为白光各波长的能量分布不均匀,为彩色光包含一种波长的能量,其他波长都为零,是单色光光谱能量分布定义颜色十分麻烦光谱与颜色的对应关系是多对一两种光的光谱分布不同而颜色相同的现象称为“异谱同色”必须采用其他的定义颜色的方法,使光本身与颜色一一对应三色学说三色学说颜色视觉及真实感图形学的生理基础,颜色科学中最基本、最重要的理论颜色具有恒常性,颜色之间的对比效应能使人区分不同颜色颜色具有混合性,牛顿在十七世纪后期用棱镜把太阳光分散成光谱上的颜色光带,证明白光由很多颜色光混合而成十九世纪初Yaung提出某种波长的光
4、可以通过三种不同波长的光混合而复现出来的假说红(R)、绿(G)、蓝(B)三原色把三种原色按照不同的比例混合就能准确的复现其他任何波长的光三原色等量混合产生白光 Maxwell用旋转圆盘证实了Yaung 假设。1862年,Helmhotz在上面的基础上提出颜色视觉机制学说,即三色学说,也称为三刺激理论用三种原色能够产生各种颜色的三色原理是当今颜色科学中最重要的原理和学说近代三色学说视网膜中存在着三种椎体细胞,对光刺激的兴奋程度不同,分别感受红、绿、蓝光。作用与颜色混合相同黄光刺激眼睛的例子三色学说是真实感图形学中RGB颜色模型提出的理论基础CIE色度图色度图三色学说原理说明任何一种颜色可以用红、
5、绿、蓝三原色按照不同比例混合来得到。还有如何使三原色按某唯一比例混合复现给定颜色的问题。颜色匹配混合光与给定光的颜色相同CIE国际照明委员会选取的标准红、绿、蓝三种光 (700, 546, 435.8)CIE-RGB系统系统光的颜色匹配式子:权值r、g、b为颜色匹配中所需要的R、G、B三色光的相对量1931年,CIE给出等能标准三原色匹配任意颜色的光谱三刺激值曲线CIE-XYZ系统系统CIE-RGB曲线一部分三刺激值是负数,表明只能在给定光上叠加曲线中负值对应的原色,去匹配另两种原色的混合计算不便,不易理解1931年CIE-XYZ系统,利用三种假想的标准原色X、Y、Z,使颜色匹配三刺激值都是正
6、值:任何颜色都能由标准三原色混合匹配(三刺激值是正的)色度图色度图复现颜色的三原色比例值是否唯一?三刺激空间用三原色的单位向量定义三维颜色空间颜色刺激表示为三刺激空间中以原点为起点的向量,向量的方向代表颜色三刺激空间色度平面色度图在三刺激空间上取通过(R)、(G)、(B)坐标轴单位向量的截面,截面的方程为(R)(G)(B)1。该截面与三个坐标平面的交线构成一个等边三角形,称为色度图颜色刺激向量与色度图有且仅有唯一交点,色度图可以唯一的表示三刺激空间中的所有颜色值色度图上每一个点代表不同的颜色,对于三刺激空间中坐标为X、Y、Z的颜色刺激向量Q,它与色度图交点的坐标(x,y,z)即三刺激值也被称为
7、色度值CIE色度图色度图CIE色度图色度图投影到XY平面上马蹄形区域的边界和内部代表了所有可见光的色度值边界弯曲部分代表了光谱在某种纯度为百分之百的色光色度图与三刺激值是描述颜色的标准精确方法,应用较复杂CIE色度图Z=1-X-Y二维表示常用颜色模型常用颜色模型颜色模型是指某个三维颜色空间中的一个可见光子集,包含某个颜色域的所有颜色颜色模型的用途是在某个颜色域内方便地指定颜色RGB颜色模型颜色模型通常使用于彩色光栅图形显示设备中真实感图形学中的主要的颜色模型采用三维直角坐标系RGB立方体红、绿、蓝原色混合在一起可以产生复合色三原色混合效果CMY颜色模型以红、绿、蓝的补色青、品红、黄为原色构成的
8、颜色模型常用于从白光中滤去某种颜色,又被称为减性原色系统,在白色中减去某种颜色来定义一种颜色用于印刷行业中印刷硬拷贝设备的颜色处理在白纸面上涂黄色和品红色,纸面上将呈现红色白光被吸收了蓝光和绿光,只能反射红光RGB颜色模型与CMY颜色模型都是面向硬件模型HSV颜色模型颜色模型HSV颜色模型是面向用户的对应圆柱坐标系的圆锥形子集圆锥的顶面对应于V=1色彩H由绕V轴的旋转角给定饱和度S取值从0到1,由圆心向圆周过渡画家配色方法画家配色方法HSV模型对应画家的配色的方法在一种纯色中加入白色以改变色浓,加入黑色以改变色深。同时加入不同比例的白色,黑色即可得到不同色调的颜色RGB模型与模型与HSV模型联
9、系模型联系RGB立方体从白色顶点沿着主对角线向原点方向投影,可以得到一个正六边形,该六边形是HSV圆锥顶面的一个真子集RGB空间的主对角线,对应于HSV空间的V轴42 简单光照明模型简单光照明模型模拟物体表面的光照明物理现象的数学模型光照明模型简单光照明模型只考虑光源对物体的直接光照早期发展早期发展1967年,Wylie等人第一次在显示物体时加进光照效果,认为光强与距离成反比。1970年,Bouknight提出第一个光反射模型:Lambert漫反射环境光1971年,Gouraud提出漫反射模型加插值的思想1975年,Phong提出图形学中第一个有影响的光照明模型相关物理知识相关物理知识光的传播
10、反射定律:入射角等于反射角,而且反射光线、入射光线与法向量在同一平面上折射定律折射定律折射定律:折射线在入射线与法线构成的平面上,折射角与入射角满足能量关系能量关系在光的反射和折射现象中的能量分布:下标为i,d,s,t,v的能量项分别表示为入射光强,漫反射光强,镜面反射光强,透射光强,吸收光强能量是守恒的光的度量光的度量立体角:面元ds向点光源P所张的立体角为点发光强度单位时间内通过面元ds的光能量为光通量dF点发光强度为某个方向上单位立体角的内的光通量Phong光照明模型光照明模型简单光照明模型模拟物体表面对光的反射作用光源为点光源反射作用分为镜面反射(Specular Reflection
11、)漫反射(Diffuse Reflection)物体间作用用环境光(Ambient Light)表示Phong模型几何模型几何Phong模型的表示模型的表示理想漫反射漫反射光均匀向各方向传播,与视点无关由Lambert余弦定律,漫反射光强为 是与物体有关的漫反射系数,漫反射系数 有三个分量 ,分别代表RGB三原色的漫反射系数,通过调整它们来设定物体的颜色镜面反射光镜面反射光对一般的光滑表面,反射光集中在一个范围内,且由反射定律决定的反射方向光强最大镜面反射光强可表示为 是与物体有关的镜面反射系数,n为反射指数,反映物体表面的光泽程度,数目越大物体表面越光滑反射方向计算镜面反射光将会在反射方向附
12、近形成很亮的光斑,称为高光现象镜面反射光产生的高光区域只反映光源的颜色镜面反射系数 是一个与物体的颜色无关的参数环境光环境光环境光是指光源间接对物体的影响光在物体和环境之间多次反射,最终达到平衡同一环境下的环境光光强分布均匀近似表示: 为物体对环境光的反射系数Phong光照明模型光照明模型Phong光照明模型的综合表述:由物体表面上一点P反射到视点的光强I I为环境光的反射光强 、理想漫反射光强 、和镜面反射光 的总和。Phong模型的实现模型的实现对物体表面上的每个点P,均需计算光线的反射方向。为了减少计算量,假设:光源在无穷远处,L为常向量视点在无穷远处,V为常向量(HN)近似(RV),H
13、为L与V的平分向量对所有的点总共只需计算一次H的值,节省了计算时间Phong光照明模型的RGB颜色模型形式:Phong光照明模型的光照明模型的不足不足Phong光照明模型是真实感图形学中提出的第一个有影响的光照明模型经验模型,Phong模型存在不足:显示出的物体象塑料,无质感变化没有考虑物体间相互反射光镜面反射颜色与材质无关镜面反射大入射角失真现象Phong模型示例模型示例_1理想漫反射环境光+境面反射+=Phong模型示例模型示例_2 增量式光照明模型增量式光照明模型Phong模型光强计算公式是物体表面法向量的函数多边形内部的象素颜色相同不同法向的多边形邻接处有光强突变及马赫带效应保证多边形
14、之间的颜色光滑过渡增量式光照明模型基本思想基本思想在每个多边形顶点处计算光照明强度或参数,然后在各个多边形内部进行双线性插值,得到多边形光滑均匀颜色分布两个主要算法双线性光强插值、Gouraud明暗处理双线性法向插值、Phong明暗处理Gouraud双线性光强插值双线性光强插值Gouraud于1971年提出,又被称为Gouraud明暗处理计算多边形各顶点的光强,再用双线性插值,求出多边形内部各点的光强算法描述算法描述算法步骤的基本描述:计算多边形顶点的平均法向用简单光照明模型计算顶点的平均光强插值计算离散多边形边上的各点光强插值计算多边形内域中各点的光强。与某个顶点相邻的所有多边形的法向平均值
15、近似作为该顶点的近似法向量顶点A相邻的多边形有k个,它的法向量计算为:计算出的平均法向一般与该多边形物体近似曲面的切平面比较接近顶点法向计算顶点法向计算顶点平均光强计算顶点平均光强计算用Phong光照明模型及平均法向量计算在顶点A处的光强Gouraud提出明暗处理方法时,Phong模型还没有出现,采用:光强插值光强插值双线性光强插值由顶点的光强插值计算各边的光强,然后由各边的光强插值计算出多边形内部点的光强增量算法增量算法扫描线由j变成j+1,新扫描线上边点光强:扫描线内部,横坐标由i增为i+1,扫描线上象素点的光强:Phong双线性法向插值双线性法向插值双线性光强插值解决了相邻多边形之间的颜
16、色突变问题,镜面反射效果不太理想,相邻多边形的边界处的马赫带效应不能完全消除改进Phong提出双线性法向插值,以时间为代价,引入镜面反射,解决高光问题算法特点算法特点保留双线性插值,对多边形边上的点和内域各点,采用增量法。对顶点的法向量进行插值,而原顶点的法向量,仍用相邻多边形的法向作平均由插值得到法向,来计算多边形每个象素的光强度假定光源与视点均在无穷远处,光强只是法向量的函数。法向插值方法法向插值方法方法与光强插值类似,其中的光强项用法向量项来代替。基本公式:增量插值计算也类似,用法向代替光强增量式光照明模型评价增量式光照明模型评价双线性光强插值能有效的显示漫反射曲面,计算量小双线性法向插
17、值可以产生正确的高光区域,但是计算量要大的多增量式光照明模型的不足物体边缘轮廓是折线段而非光滑曲线等间距扫描线会产生不均匀效果插值结果决定于插值方向增量式模型示例增量式模型示例牛的三角网格模型 用简单光照明模型显示 用增量式光照明模型显示阴影的生成阴影的生成点光源产生的阴影。光源作为观察点,用传统隐藏面消除算法可求得阴影区域阴影多边形算法1978年,Atherton等人提出第一次用隐藏面消除技术来生成阴影相对光源可见的多边形被称为阴影多边形区分阴影多边形,阴影区域域减少显示光强阴影域多面体算法阴影域多面体算法光源照射不到的物体后面形成的三维多面体阴影区域为阴影域阴影域是一个以被光照面为顶面,表
18、面的边界与光源所张的平面系列为侧面的一个半开三维区域物体的阴影域被视空间四棱椎裁剪得到的三维阴影域变成封闭多面体,为阴影域多面体包含于阴影多面体内的物体表面是阴影区域物体与阴影多面体三维布尔交求阴影区域,涉及大量的复杂三维布尔运算,算法的计算复杂度是相当可观Crow于1977年提出基于扫描线隐藏面消除算法来生成阴影,可以有效的判定一个物体表面是否包含在阴影域多面体之内。在传统算法基础上稍加改动即可,应用广泛其他方法其他方法整体光照明模型如光线跟踪算法和辐射度算法都可以很好的处理阴影的生成问题,将在后面讨论4局部光照明模型局部光照明模型从光电学知识和物体微平面假设出发,介绍镜面反射与物体材质有关
19、的局部光照明模型前前 言言仅处理光源直接照射物体表面的光照明模型称为局部光照明模型可以处理物体之间光照的相互作用的模型称为整体光照明模型简单光照明模型,经验模型,不足之处镜面反射项与物体表面的材质无关本节介绍复杂、普遍的局部光照明模型理论基础理论基础光的电磁理论自然光反射率系数的Fresnel公式 是入射角,折射率分别为 和 ,那么 满足这样的一个式子:反射率与折射率有关.又由于折射率是入射光的波长的函数,是波长的函数微平面理论微平面理论简单光照明模型假定物体表面是理想光滑的,微观情况下,物体表面粗糙不平局部光照明模型中希望反映物体表面的粗糙程度粗糙物体表面由无数微小理想镜面组成这些平面朝向各
20、异,随机分布对于每一个微平面,只有在它的反射方向上才有反射光,理想镜面反射微平面示意微平面示意微平面是理想镜面,反射率可用Fresnel公式计算,而粗糙表面的反射率与表面的粗糙度有关实际物体反射率:D为微平面法向的分布函数G为由于微平面的相互遮挡或屏蔽而使光产生的衰减因子反射率的计算反射率的计算微平面法向分布函数微平面法向分布函数Torrance和Sparrow采用Gauss分布函数模拟法向分布:k为常系数a为微平面的法向与平均法向的夹角,即m为微平面斜率的均方根,表示表面的粗糙程度也可采用Berkmann分布函数模拟微平面的法向分布:微平面法向的分布函数D表示微平面的法向与平均法向的夹角为
21、的微平面占整个微平面的比例;m越小,表面越光滑在简单光照明模型中,也可看作一种微平面法向分布函数衰减因子衰减因子衰减因子G在局部光照明模型中也可以反映物体表面的粗糙程度衰减因子是由于微平面的相互遮挡或屏蔽而产生的微平面相互遮挡的光衰减因子G,有三种情况:光路没有遮挡, G1部分反射光被遮挡部分入射光被遮挡实际的应用中,把上述三种情况衰减因子G的最小值作为该微平面的衰减因子局部光照明模型Cook和Torrance于1981年提出 表示物体对入射光的反射率系数反射光的光强单位时间内单位面积上的入射光能量入射光能量 ,可用入射光的光强 和单位面积向光源所张的立体角 表示为:于是有反射光光强:反射率系
22、数可表示为漫反射率与镜面反射率的代数和 漫反射与镜面反射系数物体表面的漫反射率 受入射光波长的影响;物体表面的镜面反射率局部光照明模型表示 物体表面反射光强 表示环境光的影响最后一项是考虑了物体表面性质后的反射光强度量,是该局部光照明模型的复杂性与普遍性所在简单与局部模型比较简单与局部模型比较 简单光照明模型(Phong) 局部光照明模型局部模型的优点局部模型的优点相对于简单光照明模型而言基于入射光能量导出的光辐射模型反映表面的粗糙度对反射光强的影响高光颜色与材料的物理性质有关改进入射角很大时的失真现象考虑了物体材质的影响,可以模拟磨光的金属光泽44 纹理及纹理映射纹理及纹理映射 解决计算机生
23、成真实感图象缺乏现实物体表面细节的问题纹理的概述纹理的概述用简单光照明模型生成真实感图象,由于表面过于光滑单调,反而显得不真实现实物体表面有各种表面细节纹理木材表面的木纹建筑物墙壁上的装饰图案桔子皮表面的皱纹示例示例纹理 模型模型 映射映射 纹理纹理纹理是物体表面的细小结构纹理类型颜色纹理,二维纹理,物体表面花纹、图案三维纹理,木材纹理几何纹理,基于物体表面的微观几何形状法向扰动纹理映射纹理映射纹理映射是把纹理图象值映射到三维物体的表面的技术纹理映射的问题改变物体的属性,可以产生纹理的效果,对简单光照明模型而言改变漫反射系数来改变物体的颜色改变物体表面的法向量纹理定义方法:图象纹理:将二维纹理
24、图案映射到三维物体表面,绘制物体表面上一点时,采用相应的纹理图案中相应点的颜色值。函数纹理:用数学函数定义简单的二维纹理图案,如方格地毯。或用数学函数定义随机高度场,生成表面粗糙纹理即几何纹理进行纹理映射建立纹理与三维物体之间的对应关系扰动法向量原始模型原始模型 二维纹理二维纹理 几何纹理几何纹理 综合综合 三维纹理三维纹理纹理空间纹理空间纹理定义在单位正方形区域 之上,称为纹理空间纹理函数是定义在此空间上的函数纹理空间也可用其他方法定义用参数曲面的参数域作为纹理空间 2D用辅助平面、圆柱、球定义纹理空间 2D用三维直角坐标作为纹理空间 3D二维纹理域的映射二维纹理域的映射纹理映射中最常见的纹
25、理一个二维纹理的函数表示 纹理图象映射方法映射方法建立物体空间坐标(x,y,z)和纹理空间坐标(u,v)之间的对应关系对物体表面进行参数化,反求出物体表面的参数后,根据(u,v)得到该处的纹理值,并用此值取代光照明模型中的相应项,实现纹理映射圆柱面映射圆柱面的参数方程圆柱面上一点(x,y,z)的参数即纹理坐标球面映射球面参数方程球面上一点(x,y,z)的参数即纹理坐标映射方式映射方式三维纹理域的映射三维纹理域的映射二维纹理域,三维图形场景物体,二维纹理映射是一种非线性映射纹理变形不能保证纹理连续性三维物体每一个点(x,y,z)均有一个纹理值t(x,y,z),那么物体空间就可以映射到一个三维纹理
26、空间上了三维纹理域映射三维纹理映射三维纹理映射纹理空间定义在三维空间上,与物体空间是同维的把场景中的物体变换到纹理空间的局部坐标系中去通过物体空间坐标(x,y,z)来计算纹理坐标(u,v,w)几何纹理几何纹理几何纹理方法对物体表面几何性质作微小扰动,产生凹凸不平的细节效果,给物体表面图象加上一个粗糙的外观物体表面上的每一个点P(u,v),都沿该点处的法向量方向位移F(u,v)个单位长度,新表面位置:通过对两个偏导数求叉积得到F相对很小,忽略不计,有新表面法向量计算新表面法向量计算几何纹理实现几何纹理实现扰动后的法向量单位化,用于计算曲面的明暗度,产生凹凸不平的几何纹理F的偏导数的计算,可以用中
27、心差分实现几何纹理函数定义可以用统一的图案纹理记录图案中较暗的颜色对应较小F值,较亮的颜色对应较大F值,把各象素的值一个二维数组记录下来,就是几何纹理统一表示纹理映射例子纹理映射例子地板与墙都是经过二维图象纹理映射后的平面从微软考题说起 将一张图象映到一张平面上 A B建立一个映射关系F:A B方法1:用F将A上的每个象素映射到B上。方法2:对B上的每个象素反求A上的对应象素,将其属性映射到B上。45 光透射模型光透射模型光线与透明或半透明表面相交会产生反射与折射,折射光穿过物体形成透射光。光透射模型的研究光透射模型的研究早期简单透射现象的模拟1980年,Whitted光透射模型,首次考虑了光
28、线的折射现象1983年,在Whitted的基础上,Hall光透射模型,考虑了漫透射和规则透射光透明效果的简单模拟透明效果的简单模拟不考虑透明体对光的折射以及透明物体本身的厚度颜色调和法光通过物体表面不改变方向光强计算:t是物体的透明度,在0,1之间前后两物体光强可由简单光照明模型计算可用隐藏面消除算法实现,模拟平玻璃的透明效果Whitted光透射模型光透射模型在简单光照明模型的基础上加上透射一项,得到Whitted光透射模型 为折射方向光强, 为透射系数,是01之间的常数如果该透明体又是一个镜面反射体,加上反射光一项,得到较完整的Whitted光透射模型: 为镜面反射方向的入射光强度; 为镜面
29、反射系数,为01之间的一个常数 Whitted光透射模型的折射方向和镜面反射方向都是相对于视线而言的,是使视线在折射方向和反射方向的入射光的方向,而且方向与光转播的方向相反在简单光照明模型的情况下,折射光强和镜面反射光强是折射方向上和反射方向上的环境光的光强 反射、折射方向计算反射、折射方向计算已知视线方向V,求其反射方向S与折射方向T光学几何原理视线V的反射方向SN是表面的法向方向折射方向折射方向V,N,T均为单位向量 是视点所在空间的介质折射率, 为物体的折射率折射定律:Whitted:视线V的折射方向T其中 ,Heckbert的折射方向计算方法更简单其中计算出的结果T为单位向量Hall光
30、透射模型光透射模型在Whitted光透射模型基础上推广而来可以处理规则透射高光,以及理想的漫透射理想漫透射透明体的粗糙表面对透射光的作用表现为漫透射,透射光的光强在各个方向均相等 为物体的漫透射系数规则透射高光半透明的物体,视点在透射方向附近也能见到部分透射光。在折射方向周围形成高光域高光光强计算 为物体的透明系数,n为反映物体表面光泽的常数减少计算量的假设光源在无穷远处,L方向为常量视点在无穷远处,V方向为常量用 代替 为虚拟理想透射面法向该法向使视线为光线的折射方向使用使用Hall模型模型注意点视点与光源透明体两侧,才能透过透明体看到透射高光不考虑光线射入透明体时的折射折射的全反射临界角现
31、象:光线从高密介质射向低密介质、入射角大于临界角时,不再发生折射,只有内部反射临界角:的求解的求解 为当视线为光线折射方向时的面法向 简化、单位化:符号由折射率确定 时,取正号,否则取负号简单光反射透射模型简单光反射透射模型综合简单光照明模型,Whitted光透射模型和Hall光透射模型:是本章前面几节的总结46 整体光照明模型整体光照明模型模拟复杂逼真的光照明现象在本章中主要介绍光线跟踪算法光线跟踪算法研究光线跟踪算法研究真实感图形学中的主要算法之一1968年Apple A给出光线跟踪算法的描述1979年Kay和Greenberg的研究考虑了光的折射1980年Whitted提出了第一个整体光
32、照明Whitted模型,并给出一般性光线跟踪算法的范例光线跟踪的基本原理光线跟踪的基本原理光线在物体之间的传播方式由光源发出的光到达物体表面后,产生反射和折射。由光源发出的光称为直接光,物体对直接光的反射或折射称为直接反射和直接折射,相对的,把物体表面间对光的反射和折射称为间接光,间接反射,间接折射光线跟踪算法基础最基本的光线跟踪算法是跟踪镜面反射和折射。从光源发出的光遇到物体的表面,发生反射和折射,光就改变方向,沿着反射方向和折射方向继续前进,直到遇到新的物体光源发出光线,经反射与折射,只有很少部分可以进入人的眼睛实际光线跟踪方向与光传播的方向相反视线跟踪-由视点与象素(x,y)发出一根射线
33、,与第一个物体相交后,在其反射与折射方向上进行跟踪四种光线定义四种光线定义在光线跟踪算法中,有如下的四种光线视线是由视点与象素(x,y)发出的射线阴影测试线是物体表面上点与光源的连线反射光线,视线反射方向光线折射光线,视线折射方向光线光强计算光强计算光线V与物体表面交与点P时,光在点P对光线V方向的贡献分为三部分由光源产生的直接的光线照射光强,是交点出处的局部光强反射方向上由其他物体引起的间接光照光强,由 计算, 通过对反射光线的递归跟踪得到折射方向上由其他物体引起的间接光照光强,由 计算, 通过对折射光线的递归跟踪得到把上述三部分光强相加,就是该条光线V在P点处的总的光强光线跟踪算法光线跟踪
34、算法 光线跟踪算法实际上是光照明物理过程的近似逆过程光线跟踪基本过程可以跟踪物体间的镜面反射光线和规则透射,模拟了理想表面的光的传播终止条件终止条件实际的算法进行过程中,不可能进行无穷的光线跟踪算法应用意义上的终止条件该光线未碰到任何物体该光线碰到了背景光线在经过许多次反射和折射以后,就会产生衰减,光线对于视点的光强贡献很小光线反射或折射次数即跟踪深度大于一定值算法伪码表示算法伪码表示从视点出发,对于视屏上的每一个象素点,从视点作一条到该象素点的射线,调用下面的算法函数就可以确定这个象素点的颜色RayTracingRayTracing(start, direction, weight, col
35、or)ifif ( weight MinWeight )color = black;elseelse计算光线与所有物体的交点中离start最近的点;ifif ( 没有交点 ) color = black;elseelse = 在交点处用局部光照模型计算出的光强;计算反射方向 R;RayTracing(最近的交点, R, weight* , );计算折射方向 T;RayTracing(最近的交点, T, weight* , );color = + + ;光线与物体求交光线与物体求交对于反射光线与折射光线的方向计算问题Whitted光透射模型中的计算方法光线跟踪算法中需要用到大量的求交运算,因而求
36、交运算的效率对于整个算法的效率影响很大光线与物体的求交时光线跟踪算法的核心光线与球的求交光线与球的求交球是光线跟踪算法中最常用的体素很容易进行光线与球的相交判断,球又常常用来作为复杂物体的包围盒 为光线的起点坐标, 为光线的方向,已经单位化。 为球心坐标,R为球的半径求交前提条件代数解法代数解法由起点发出的光线参数方程球面的隐式方程:代入合并有:解方程有 ,光线与球无交 ,光线与球相切,t=B/2 ,光线与球有两个交点t0,交点无效t代入光线参数方程,可求得交点坐标交点的坐标交点处的法向量代数法求交点和法向量总共需要17次加减运算、17次乘法运算、1次开方运算和3次比较操作几何解法几何解法几何
37、法求交示意基本步骤基本步骤计算光线起点到球心的距离平方 光线的起点在球内,光线与球有且仅有一个交点 光线的起点在球外,光线与球有两个交点或一个切点或没有交点计算光线起点到光线离球心最近点A距离当光线的起点在球外,若 ,则球在光线的背面,光线与球无交点计算半弦长的平方,来判定交点的个数 ,光线与球无交 ,光线与球相切 ,光线与球有两个交点计算光线起点到光线与球交点的距离来计算交点的位置t代入光线的参数方程,可以得到交点的位置交点的坐标交点处的球面法向几何法求交点和法向总共需要16次加减运算、13次乘法运算、1次开方运算和3次比较操作比代数法少1次加减运算和4次乘法运算光线与多边形求交光线与多边形
38、求交光线与多边形求交分为两步计算多边形所在的平面与光线的交点判断所得的交点是否在多边形内部直线平面求交方法参见前面的章节光线与二次曲面求交光线与二次曲面求交光线与一般表示形式的二次曲面的求交方法二次曲面方程的一般形式表示矩阵形式把光线的参数方程代入二次曲面的一般形式有解出t,有t为实数,将t代入光线参数方程可得交点坐标交点处的法向量光线跟踪算法的加速光线跟踪算法的加速基本的光线跟踪算法,每一条射线都要和所有的物体求交,处理地效率很低光线跟踪加速技术是实现光线跟踪算法的重要组成部分包括:提高求交速度、减少求交次数、减少光线条数、采用广义光线和采用并行算法等自适应深度控制自适应深度控制对复杂的场景
39、,没有必要跟踪光线到很深的深度,应根据光线所穿过的区域的性质来改变跟踪深度,来自适应的控制深度前面给出的光线跟踪算法的源代码就是可以做到自适应的控制深度的。包围盒及层次结构包围盒及层次结构包围盒技术是加速光线跟踪的基本方法之一,由Clark于1976年提出1980年,Rubin和Whitted将它引进到光线跟踪算法之中,加速光线与景物的求交测试基本思想基本思想用一些形状简单的包围盒将复杂景物包围起来,求交的光线首先跟包围盒进行求交测试,若相交,则光线再与景物求交,否则光线与景物必无交利用形状简单的包围盒与光线求交的速度较快来提高算法的效率层次结构层次结构包围盒技术的一个重要改进是引进层次结构根
40、据景物的分布情况,将相距较近的景物组成一组局部场景,相邻各组又组成更大的组整个景物空间组织成树状的层次结构求交测试方法测试光线首先进入该层次的根节点,并从根节点开始,从上向下与各相关节点的包围盒进行求交测试。若一节点的包围盒与光线有交,则光线将递归地与其子节点进行求交测试,否则,该节点的所有景物均与光线无交,该节点的子树无需作求交测试平行平面层次包围盒技术平行平面层次包围盒技术1986年,Kay和Kajiya提出通常采用的长方体具有包裹景物不紧的特点根据景物的实际形状选取n组不同方向的平行平面包裹一个景物或一组景物来作为层次包围盒三维三维DDA算法算法光线跟踪算法效率不高的主要要原因是光线求交
41、的盲目性将景物空间剖分为网格,利用空间连惯性,加速光线跟踪三维DDA算法1986年,Fujimoto等提出一个基于空间均匀网格剖分技术的快速光线跟踪算法景物空间均匀分割成为一系列均匀的3维网格,建立辅助数据结构SEADS 确定后的SEADS结构中每一个网格可用三元组(i,j,k)精确定位,均设立其所含景物面片的指针光线跟踪的光线只须依次与其所经过的空间网格中所含景物面片进行求交测试将直线光栅化的DDA算法推广到三维,来加速光线跟踪,称为光线的三维网格跨越算法光线的方向向量 ,主轴方向就是 。算法先将光线垂直投影到交于主轴的两个坐标平面上,然后对两投影线分别执行二维DDA算法算法广泛的应用于各种
42、商业动画软件中空间八叉树剖分技术空间八叉树剖分技术空间非均匀网格剖分算法将含有整个场景的空间立方体按三个方向中剖面分割成八个子立方体网格,组织成一棵八叉树,若某一子立方体网格中所含景物面片数大于给定的阈值,则为该子立方体作进一步的剖分,直到面片数目小于阈值利用空间连贯性加速光线跟踪八叉树的最大深度表示空间分割所达到的层次,称为空间分辨率八叉树的深度为N,八叉树终结节点的编码 , ,i在0.N之间,F为异于0,17的符号由八叉树结点编码方式很容易找到空间任一点所在的空间网格单元八叉树剖分性质八叉树剖分性质 为一空间点,坐标为整数,其二进制表示为: , , , 性质A: P所在单位立方体网格编码为
43、性质性质BP位于一编码 为的空间网格内,则该空间网格的前左下角坐标为:其中0的个数都为Ni个光线跟踪过程光线跟踪过程先利用性质A求光线起点 所在单位立方体网格的八叉树编码Q位于立方体边界上的起点要根据光线前进方向R判别光线是否已射出场景。若光线已射出场景,则算法结束Q的空间线性八叉树结点表查找结果查找是否成功的布尔量T未获匹配位数B设Q为 ,那么在八叉树中含结点 时,T取真值未获匹配位数B定义为八叉树终结点表中与Q获得最大程度匹配结点其编码尾部不匹配的位数。上面的B为NiT决定当前立方体是否包含景物面片,而Q和B确定当前立方体的空间位置和大小T取真值,用光线和该立方体中所含三角形面片求交,若有交,则返回最近交点,算法结束,否则取T为假,继续向前搜索T为假的两种情况查找结果使T取假,包含起点且不包含任何景物面片的最大空间网格为 ,其中F的个数为B-1求交失败T为假,应跨过当前立方体网格新的网格前左下角坐标由性质B确定跨越一空间网格后,先求出当前空间网格上的出口点坐标,重置光线起点光线和六个面求交预先计算光线在各坐标平面上投影线的截距和斜率,快速求解以新出发点重复跟踪过程,直至光线射出场景或求到交点为止