《真实感光照效果免费幻灯片.ppt》由会员分享,可在线阅读,更多相关《真实感光照效果免费幻灯片.ppt(85页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、真真实感光照效果免感光照效果免费第1页,共85页,编辑于2022年,星期二2Global IlluminationExtends the Local Illumination Model to include:Extends the Local Illumination Model to include:Reflection(one object in another)Reflection(one object in another)Refraction(SnellRefraction(Snell s Law)s Law)Transparency(better model)Transparen
2、cy(better model)Shadows(at point,check each light source)Shadows(at point,check each light source)Antialiasing(usually means supersampling)Antialiasing(usually means supersampling)第2页,共85页,编辑于2022年,星期二3Wireframe view of a test scene.Orthographic view from above第3页,共85页,编辑于2022年,星期二4Locally illuminat
3、ed test scene.Ambient term only第4页,共85页,编辑于2022年,星期二5Locally illuminated test scene.Phong shading.Ambient and Diffuse terms only第5页,共85页,编辑于2022年,星期二6Locally illuminated test scene.Phong shading.Ambient,diffuse andSpecular terms.Notes:Highlight on wall from light is in the wrong place第6页,共85页,编辑于202
4、2年,星期二7Comparison.FlatGouraudPhongCoarser mesh第7页,共85页,编辑于2022年,星期二8Use Local illumination.No.No.In our test scene,we canIn our test scene,we can t represent:t represent:MirrorMirrorChrome teapot.Chrome teapot.Shiny floorShiny floorShadowsShadows with local illumination.with local illumination.第8页,共
5、85页,编辑于2022年,星期二9Test Scene.High quality rendering of test scene.Note:Mirror and chrome teapot.Shadows on floor.Shiny floor.第9页,共85页,编辑于2022年,星期二10Global illumination.Two methods:Two methods:View dependent methods.View dependent methods.Calculate the view from the camera with global Calculate the vi
6、ew from the camera with global illumination.illumination.Recursive ray-tracing.Recursive ray-tracing.View independent methods.View independent methods.Solve lighting for the entire scene.Solve lighting for the entire scene.Radiosity solution.Radiosity solution.第10页,共85页,编辑于2022年,星期二11View dependent
7、methods.Loop round the pixelsLoop round the pixels.Good for lighting effects which have a strong Good for lighting effects which have a strong dependence on view location:dependence on view location:Specular highlights.Specular highlights.Reflections from curved surfaces.Reflections from curved surf
8、aces.Only a small number of objects need to be considered at Only a small number of objects need to be considered at the same time.the same time.Poor when many objects need to be considered Poor when many objects need to be considered E.g diffuse interactions (eg.colour bleeding).E.g diffuse interac
9、tions (eg.colour bleeding).第11页,共85页,编辑于2022年,星期二12View independent methods.Loop round the sceneLoop round the scene Good when many(all)objects need to be considered at Good when many(all)objects need to be considered at same time.same time.Diffuse inter-reflections.Diffuse inter-reflections.Poor wh
10、en shading has strong dependence on view Poor when shading has strong dependence on view location.location.Specular reflection.Specular reflection.第12页,共85页,编辑于2022年,星期二真实感图形建模与绘制真实感图形建模与绘制视相关绘制方法视相关绘制方法 第13页,共85页,编辑于2022年,星期二14Ray-Tracing:Why Use It?Simulate rays of lightSimulate rays of light Prod
11、uces natural lighting effectsProduces natural lighting effects Ray-tracing easier to implementRay-tracing easier to implement第14页,共85页,编辑于2022年,星期二Fall 201115Ray-Tracing:Why Use It?Simulate rays of lightSimulate rays of lightProduces natural lighting effectsProduces natural lighting effectsReflectio
12、n Reflection 第15页,共85页,编辑于2022年,星期二Fall 201116Ray-Tracing:Why Use It?Refraction,causticsRefraction,caustics第16页,共85页,编辑于2022年,星期二Fall 201117Ray-Tracing:Why Use It?Simulate rays of lightSimulate rays of lightProduces natural lighting effectsProduces natural lighting effectsSoft shadowsSoft shadows第17
13、页,共85页,编辑于2022年,星期二Fall 201118Ray-Tracing:Why Use It?Simulate rays of lightSimulate rays of lightProduces natural lighting effectsProduces natural lighting effectsdepth of field,motion blurdepth of field,motion blur第18页,共85页,编辑于2022年,星期二19Whitted 模型模型特点:特点:整体光照模型的典型代表;整体光照模型的典型代表;与光线跟踪技术密不可分;与光线跟踪技术
14、密不可分;考虑了光源在物体表面的直接照射产生的光亮度,同时还考虑了环境光在镜考虑了光源在物体表面的直接照射产生的光亮度,同时还考虑了环境光在镜面反射方向和规则透射方向对被照射点产生的光能贡献;面反射方向和规则透射方向对被照射点产生的光能贡献;其他方向的环境光对照射点的影响仍用一常数泛光项来模拟。其他方向的环境光对照射点的影响仍用一常数泛光项来模拟。第19页,共85页,编辑于2022年,星期二20Whitted 模型模型计算方法:计算方法:Whitted模型采用递归跟踪的方法来求解Ir,ItIr:来自环境光的反射光亮度;kr:入射点的镜面反射系数It:来自环境光的透射光亮度;kt:入射点的透射系
15、数第20页,共85页,编辑于2022年,星期二21Ray Tracing标准标准Ray TracingRay Tracing算法算法 假设假设:光线是一根没有大小的直线,即数学意义上的直线;光线是一根没有大小的直线,即数学意义上的直线;物体表面是完全光滑的,光在表面的反射遵循镜面反射物体表面是完全光滑的,光在表面的反射遵循镜面反射和规则透射的规律。和规则透射的规律。这两个假设使得光线跟踪算法生成的图形中含有轮廓清这两个假设使得光线跟踪算法生成的图形中含有轮廓清楚的多重反射效果楚的多重反射效果第21页,共85页,编辑于2022年,星期二22Ray Tracing 由于从光源发出的光线有无穷条,直
16、接从光源出发对光由于从光源发出的光线有无穷条,直接从光源出发对光线进行跟踪非常困难;线进行跟踪非常困难;第22页,共85页,编辑于2022年,星期二23Ray Tracing 实际上,从光源发出的光线只有少数经由场景中物体实际上,从光源发出的光线只有少数经由场景中物体表面之间的反射和透射后到达观察者的眼中;表面之间的反射和透射后到达观察者的眼中;标准光线跟踪算法采用逆向跟踪技术来完成整个绘制过程标准光线跟踪算法采用逆向跟踪技术来完成整个绘制过程第23页,共85页,编辑于2022年,星期二24Ray Tracing算法思路:算法思路:1.1.从视点出发,通过图像平面上每个像素中心向场景中发出一条
17、光线;从视点出发,通过图像平面上每个像素中心向场景中发出一条光线;2.2.判断:若光线与场景中物体无相交,则光线将射出画面,跟踪结束;否则,判断:若光线与场景中物体无相交,则光线将射出画面,跟踪结束;否则,光线与物体相交;光线与物体相交;3.3.光线在离视点最近的景物表面交点出的走向有三种可能:光线在离视点最近的景物表面交点出的走向有三种可能:当前交点所在的景物表面为理想漫反射面,跟踪结束;当前交点所在的景物表面为理想漫反射面,跟踪结束;当前所在的景物表面为理想镜面,光线沿其镜面反射方向继续跟踪;当前所在的景物表面为理想镜面,光线沿其镜面反射方向继续跟踪;当前交点所在的景物表面为规则透面,光线
18、沿其规则透射方向继续跟踪。当前交点所在的景物表面为规则透面,光线沿其规则透射方向继续跟踪。上述步骤是一个递归过程。上述步骤是一个递归过程。第24页,共85页,编辑于2022年,星期二25Ray Tracing继续跟踪以下三条光线:继续跟踪以下三条光线:Towards Light Source(s):shadow rays.Towards Light Source(s):shadow rays.L L (shadow(shadow feelers)feelers)In the reflection direction:reflection rays,In the reflection direc
19、tion:reflection rays,R R In a direction dictated by SnellIn a direction dictated by Snell s Law:transmitted s Law:transmitted rays,rays,T T 第25页,共85页,编辑于2022年,星期二Fall 201126The Ray TreeR2R1R3L2L1L3N1N2N3T1T3Ni surface normalRi reflected rayLi shadow rayTi transmitted(refracted)rayEyeL1T3R3L3L2T1R1R2
20、EyeComplexity?第26页,共85页,编辑于2022年,星期二27Recursive ray tree.1.1.Reflection and Transmission Rays spawn other rays.Reflection and Transmission Rays spawn other rays.2.2.The complete set of rays is called a The complete set of rays is called a Ray Tree.Ray Tree.ViewpointLight Source ray determines colour
21、 of current object.第27页,共85页,编辑于2022年,星期二28Test Scene.Ray tree depth 1.Note only ambient shade on mirror and teapot第28页,共85页,编辑于2022年,星期二29Test Scene.Ray tree depth 2.Note only ambient shade on reflection of mirror and teapot.第29页,共85页,编辑于2022年,星期二30Test Scene.Ray tree depth 3.Note only ambient shad
22、e on reflection of mirror in teapot.第30页,共85页,编辑于2022年,星期二31Test Scene.Ray tree depth 4.Note ambient shade on reflection of teapot in reflection of mirror in teapot.第31页,共85页,编辑于2022年,星期二32Test Scene.Ray tree depth 5.第32页,共85页,编辑于2022年,星期二33Test Scene.Ray tree depth 6.第33页,共85页,编辑于2022年,星期二34Test Sc
23、ene.Ray tree depth 7.第34页,共85页,编辑于2022年,星期二35When to stop?Need to know when to stop the recursion.Need to know when to stop the recursion.Can define a fixed depth.Can define a fixed depth.Hall introduced Hall introduced adaptive tree depth control.adaptive tree depth control.Calculate maximum contri
24、bution of a ray to a pixels Calculate maximum contribution of a ray to a pixels final value.final value.Multiply contribution of rayMultiply contribution of ray s ancestors down the tree.s ancestors down the tree.Stop when below some threshold,perhaps stack Stop when below some threshold,perhaps sta
25、ck overflow.overflow.第35页,共85页,编辑于2022年,星期二36Adaptive tree depth control.Viewpoint0.30.2第36页,共85页,编辑于2022年,星期二37Adaptive tree depth control.Viewpoint0.3*0.20.2*0.20.30.2第37页,共85页,编辑于2022年,星期二38标准光线跟踪算法标准光线跟踪算法TraceRay(VECTOR Start,VECTOR Direction,int Depth,COLOR Color)TraceRay(VECTOR Start,VECTOR D
26、irection,int Depth,COLOR Color)VECTOR IntersectionPoint,ReflectedDirection,TransmittedDirection;VECTOR IntersectionPoint,ReflectedDirection,TransmittedDirection;COLOR LocalColor,ReflectedColor,TransmittedColor;COLOR LocalColor,ReflectedColor,TransmittedColor;If(DepthMAXDEPTH)Color=black;If(DepthMAXD
27、EPTH)Color=black;Else Else 取取StartStart为起点,方向为为起点,方向为DirectionDirection的光线的光线S S为跟踪光线,用它与场景中的为跟踪光线,用它与场景中的景物进景物进行求交测试;行求交测试;if(if(无交无交)Color=BackgroundColor;)Color=BackgroundColor;elseelse 计算离起始点计算离起始点StartStart最近的交点最近的交点IntersectionPoint;IntersectionPoint;Shade(IntersectionObject,IntersectionPoint,
28、LocalColor);Shade(IntersectionObject,IntersectionPoint,LocalColor);确定确定IntersectionPointIntersectionPoint所在表面镜面反射系数所在表面镜面反射系数ks,ks,透射系数透射系数ktkt;if if(IntersectionPoint(IntersectionPoint所在的表面为镜面所在的表面为镜面)计算跟踪光线计算跟踪光线S S在在IntersectionPointIntersectionPoint处的反射光线方向处的反射光线方向ReflectedDirection;ReflectedDir
29、ection;TraceRay(ntersectionPoint,ReflectedDirection,TraceRay(ntersectionPoint,ReflectedDirection,Depth+1,ReflectedColor);Depth+1,ReflectedColor);第38页,共85页,编辑于2022年,星期二39标准光线跟踪算法标准光线跟踪算法if(IntersectionPointif(IntersectionPoint所在的表面为透明面所在的表面为透明面)计算跟踪光线计算跟踪光线S S在在IntersectionPointIntersectionPoint处的规则透
30、射光线处的规则透射光线方向方向TransmittedDirection;TransmittedDirection;TraceRay(IntersectionPoint,TransmittedDirection,TraceRay(IntersectionPoint,TransmittedDirection,Depth+1,TransmittedColor);Depth+1,TransmittedColor);Color=LoaclColor+ks*ReflectedColor+kt*TransmittedColor;Color=LoaclColor+ks*ReflectedColor+kt*Tr
31、ansmittedColor;第39页,共85页,编辑于2022年,星期二40标准光线跟踪算法标准光线跟踪算法用局部光照模型计算交点用局部光照模型计算交点IntersectionPointIntersectionPoint处的局部光亮度处的局部光亮度LocalColorLocalColorShade(OBJECT IntersectionObject,VECTOR IntersecctionPoint,COLOR LocalColor)Shade(OBJECT IntersectionObject,VECTOR IntersecctionPoint,COLOR LocalColor)确定确定I
32、ntersectionObjectIntersectionObject在在IntersectionPointIntersectionPoint处的单位法向量处的单位法向量N N,漫反射系数,漫反射系数kd,kd,镜面反射系数镜面反射系数ksks,环境反射系数,环境反射系数ka;ka;LocalColor=ka*Ia;LocalColor=ka*Ia;For(For(每一个点光源每一个点光源PointLight)PointLight)计算入射光线单位向量计算入射光线单位向量L L和虚拟镜面单位法向量和虚拟镜面单位法向量H;H;由由PhongPhong模型计算光源模型计算光源PointLightP
33、ointLight在在IntersectionPointIntersectionPoint处的漫反射和镜面处的漫反射和镜面反射光反射光亮度;亮度;LocalColor+=(ILocalColor+=(Ipointlightpointlight*(kd*(N.L)+ks*(N.H)*(kd*(N.L)+ks*(N.H)n n););第40页,共85页,编辑于2022年,星期二41光线跟踪几何光线跟踪几何1.1.反射光线方向与折射光线方向的确定反射光线方向与折射光线方向的确定2.2.光线与景物表面的求交方法光线与景物表面的求交方法 光线与球面的交光线与球面的交 光线与多边形的交光线与多边形的交 光
34、线与长方体的交光线与长方体的交 光线与三角形的交光线与三角形的交 光线与二次曲面的交光线与二次曲面的交 光线与一般柱面的交光线与一般柱面的交 光线与旋转面的交光线与旋转面的交 光线与代数曲面的交光线与代数曲面的交 光线与光线与metaballmetaball曲面的交曲面的交 光线与参数曲面的交光线与参数曲面的交第41页,共85页,编辑于2022年,星期二42Local illumination vs.Global In both an object hit by a ray,if lit by a light source,is In both an object hit by a ray,i
35、f lit by a light source,is illuminated by a local illumination model,i.e with illuminated by a local illumination model,i.e with specular,diffuse&ambient terms.specular,diffuse&ambient terms.Global:a reflected ray,Global:a reflected ray,and a transmission ray(if and a transmission ray(if appropriate
36、)are also cast into the scene.appropriate)are also cast into the scene.第42页,共85页,编辑于2022年,星期二43光线跟踪算法的几种演化光线跟踪算法的几种演化1.1.光束跟踪算法光束跟踪算法针对标准光线跟踪算法的计算开销大的问题而提针对标准光线跟踪算法的计算开销大的问题而提出的。出的。2.Monte-carlo ray tracing&2.Monte-carlo ray tracing&圆锥跟踪算法圆锥跟踪算法针对标准光线跟踪算法的边界、阴影尖锐的问题而提针对标准光线跟踪算法的边界、阴影尖锐的问题而提出的。出的。3.3
37、.分布式光线跟踪算法分布式光线跟踪算法针对圆锥跟踪算法求交计算复杂的问题而出的。针对圆锥跟踪算法求交计算复杂的问题而出的。第43页,共85页,编辑于2022年,星期二44光束跟踪算法光束跟踪算法1.1.性质:性质:在光线跟踪过程中,相邻光线在光能传播过程中往往具有大致相同的路径。这一性质启示在光线跟踪过程中,相邻光线在光能传播过程中往往具有大致相同的路径。这一性质启示我们,相邻光线之间具有空间连贯性(我们,相邻光线之间具有空间连贯性(CoherenceCoherence)。)。HeckbertHeckbert和和hanrahanhanrahan通过光束跟踪通过光束跟踪利用光线之间的连贯性,有效
38、提高光线跟踪算法的效率。利用光线之间的连贯性,有效提高光线跟踪算法的效率。2.2.假设:假设:考虑到经曲面反射或折射后,相邻光线会向四周散射或聚结,从而改变相邻光考虑到经曲面反射或折射后,相邻光线会向四周散射或聚结,从而改变相邻光线在空间传播的连贯性,线在空间传播的连贯性,HeckbertHeckbert等将场景限制为多边形场景。等将场景限制为多边形场景。3.3.关键点:关键点:如何定义光束(包括确定反射光束和折射光束),使得计算光束和景物的交简单方如何定义光束(包括确定反射光束和折射光束),使得计算光束和景物的交简单方便。便。第44页,共85页,编辑于2022年,星期二45光束跟踪算法光束跟
39、踪算法光束的定义:光束的定义:1.1.从视点出发的初始光束投向整个屏幕,形成一个视域四从视点出发的初始光束投向整个屏幕,形成一个视域四棱锥;棱锥;2.2.采用棱锥不易计算光束和物体的交;采用棱锥不易计算光束和物体的交;3.3.对场景中物体进行变换,投影后,把棱锥已经变成一个对场景中物体进行变换,投影后,把棱锥已经变成一个柱体,视点柱体,视点V V被变换到被变换到Z Z轴的无穷远处;轴的无穷远处;VxyzV第45页,共85页,编辑于2022年,星期二46光束跟踪算法光束跟踪算法光束的定义(续):光束的定义(续):4.4.初始情况:初始光束的光束坐标为屏幕坐标,初始光束初始情况:初始光束的光束坐标
40、为屏幕坐标,初始光束节点包含了屏幕上可见的所有多边形。节点包含了屏幕上可见的所有多边形。5.5.通常情况下,光束定义:在光束坐标系通常情况下,光束定义:在光束坐标系xyxy平面上的多边平面上的多边形(光束多边形)沿形(光束多边形)沿z z轴平扫形成的柱体。轴平扫形成的柱体。注意:注意:光束坐标系为每一光束的局部坐标系。光束坐标系为每一光束的局部坐标系。zXy平面第46页,共85页,编辑于2022年,星期二47光束跟踪算法光束跟踪算法与光线跟踪算法相比较:与光线跟踪算法相比较:1.1.树状结构树状结构光线跟踪光线跟踪光线树光线树光束跟踪光束跟踪光束树光束树2.2.树状结构中的边树状结构中的边光线
41、跟踪光线跟踪光线光线光束跟踪光束跟踪光束光束3.3.树状结构中的节点树状结构中的节点光线跟踪光线跟踪光线与物体表面相交的一点光线与物体表面相交的一点光束跟踪光束跟踪光束与物体表面相交的多边形集合光束与物体表面相交的多边形集合第47页,共85页,编辑于2022年,星期二48光束跟踪算法光束跟踪算法流程:流程:Step1:Step1:为了跟踪初始光束入射到镜面多边形上所产生的反射为了跟踪初始光束入射到镜面多边形上所产生的反射光束,将景物变换到反射光束的局部坐标系中,反射光光束,将景物变换到反射光束的局部坐标系中,反射光局部坐标系局部坐标系z z轴与反射光束前进方向一致;轴与反射光束前进方向一致;S
42、tep2:Step2:所有景物按新的所有景物按新的z z值排序;值排序;Step3:Step3:取镜面多边形在反射光束局部坐标系取镜面多边形在反射光束局部坐标系xyxy坐标平面上的坐标平面上的投影为反射光束多边形,并将它与投影为反射光束多边形,并将它与z z值排序表上第一个景值排序表上第一个景物多边形在该物多边形在该xyxy平面内作二维布尔运算;平面内作二维布尔运算;第48页,共85页,编辑于2022年,星期二49光束跟踪算法光束跟踪算法流程流程(续续):Step4:Step4:如果存在交集,则求得的交映射到该多边形上,作为如果存在交集,则求得的交映射到该多边形上,作为反射光束将照射到的一个多
43、边形区域记入反射光束的数反射光束将照射到的一个多边形区域记入反射光束的数据结构中,并在反射光束中减去交区域,然后与景物多据结构中,并在反射光束中减去交区域,然后与景物多边形表中的第二个多边形在边形表中的第二个多边形在xyxy平面上投影求交;平面上投影求交;Step5:Step5:重复上述过程,直到反射光束多边形被完全覆盖,或重复上述过程,直到反射光束多边形被完全覆盖,或所有景物多边形处理完毕;所有景物多边形处理完毕;在上述步骤进行的同时,还要跟踪折射光束,需要将在上述步骤进行的同时,还要跟踪折射光束,需要将景物变换到折射光束所定义的局部坐标系中,就可以执景物变换到折射光束所定义的局部坐标系中,
44、就可以执行上述类似的操作。行上述类似的操作。第49页,共85页,编辑于2022年,星期二50光束跟踪算法光束跟踪算法数据结构数据结构多边形信息左光束树(多边形表指针)右光束树(多边形表指针)初始入射光束光束多边形光束相交多边形表反射光束折射光束第50页,共85页,编辑于2022年,星期二51Monte-Carlo Ray Tracing&圆锥跟踪算法圆锥跟踪算法传统光线跟踪的问题和原因传统光线跟踪的问题和原因 由于假设是一根理想直线,景物表面为理想镜面,因此所产生的图形由于假设是一根理想直线,景物表面为理想镜面,因此所产生的图形具有尖锐的反射边界和阴影边界,对景物表面的点采样导致图像走样。具有
45、尖锐的反射边界和阴影边界,对景物表面的点采样导致图像走样。在现实中,景物表面并不总是完全光滑的,其镜面反射通常是模糊的。在现实中,景物表面并不总是完全光滑的,其镜面反射通常是模糊的。过采样过采样 Oversampling is a process where instead of sampling a single value,Oversampling is a process where instead of sampling a single value,multiple samples are taken and averaged together.multiple samples ar
46、e taken and averaged together.The location of where the sample is taken is varied slightly so that The location of where the sample is taken is varied slightly so that the resulting average is an approximation of a finite area covered by the resulting average is an approximation of a finite area cov
47、ered by the samples.This is called an anti-aliasing method.the samples.This is called an anti-aliasing method.uses oversampling to reduce aliasing artifacts.uses oversampling to reduce aliasing artifacts.第51页,共85页,编辑于2022年,星期二52Monte-Carlo Ray Tracing&圆锥跟踪算法圆锥跟踪算法改善方法1 1 在传统光线跟踪算法中,在每一交点处,根据表面的光滑在传统
48、光线跟踪算法中,在每一交点处,根据表面的光滑性,产生一系列扰动反射光线,然后跟踪每一个光线,综合性,产生一系列扰动反射光线,然后跟踪每一个光线,综合其所得的光亮度,最后得到前面所述交点的亮度。其所得的光亮度,最后得到前面所述交点的亮度。Monte-Carlo Ray Tracing。改善方法改善方法2 2 采用圆锥光束取代每一条像素光线,来模拟表面模糊反射采用圆锥光束取代每一条像素光线,来模拟表面模糊反射和半影效果,有效克服了图形走样现象。和半影效果,有效克服了图形走样现象。第52页,共85页,编辑于2022年,星期二53Monte-Carlo Ray TracingRay TracingCa
49、st a ray from the eye through each pixel Trace secondary rays(light,reflection,refraction)第53页,共85页,编辑于2022年,星期二54Monte-Carlo Ray TracingCast a ray from the eye through each pixelCast random rays from the visible point Accumulate radiance contribution第54页,共85页,编辑于2022年,星期二55Cast a ray from the eye t
50、hrough each pixelCast random rays from the visible point RecurseMonte-Carlo Ray Tracing第55页,共85页,编辑于2022年,星期二56Systematically sample primary lightMonte-Carlo Ray Tracing第56页,共85页,编辑于2022年,星期二57Take reflectance into accountMultiply incoming radiance by BRDF valueMonte-Carlo Ray Tracing第57页,共85页,编辑于20