Chapter3.VisualAppearanceChapter3.VisualAppearance视觉外观视觉外观金小刚金小刚Email:Email:jin@cad.zju.edu.cnjin@cad.zju.edu.cn浙江大学浙江大学CAD&CGCAD&CG国家重点实验室国家重点实验室简介简介“Lightmakesright”-AndrewGlassner当绘制三维物体时,模型应不仅从从几何上看正确,而且应具有真实的视觉外观实现方法:通过给表面设置材料、应用光源、加纹理、用雾、透明、反走样、合成等技术光源(光源(LightSourcesLightSources))人为何可以看见物体?光子从物体表面发出或反射到达观察者的眼睛。这些光子可以来自光源或其它物体。这里主要讨论三类光源:(1).方向(平行)光源directionallights(2).点光源pointlights(3).聚光灯spotlights发散角方向光:放在离物体无穷远的地方。例子:太阳光点光源和聚光灯都称为位置光源,因为它们都有一个位置。点光源可看成发射光子的点。聚光灯参数:方向矢量sdir、发散角scut、Spotexponentsexp(控制光从中心向周围的衰减)一个长方形网格(100×100×2个三角形),受平行光,点光源和聚光灯照射的光照效果光源参数:亮度和颜色一个光源可进一步细分为:ambient,diffuse,specularintensityNotationDescriptionsambAmbientintensitycolorsdiffDiffuseintensitycolorsspecSpecularintensitycolorsposLightSourceposition在现实世界中,光源会随距离的平方衰减在实时绘制中,光源通常不随距离衰减。这样做的原因:(1).容易控制(不必担心距离效应)(2).计算速度快材质(材质(MaterialMaterial))在实时绘制系统中,材质包含的参数:ambient,diffuse,specular,shininess(会聚指数),andemissive物体的颜色最终由下面的参数决定:材质参数、照射表面的光源参数、光照模型NotationDescriptionmambAmbientmaterialcolormdiffDiffusematerialcolormspecSpecularmaterialcolormshiShininessparametermemiEmissivematerialcolor材质符号表示材质符号表示第一排:Ambient变化的影响;第二排:Diffuse变化的影响第三排:Specular变化的影响;第四排:Shininess变化的影响材质参数对外观的影响材质参数对外观的影响LightingandShadingLightingandShadingLighting:用来指定材质、光源和物体几何之间的相互作用。Shading:是指执行光亮度计算并决定象素颜色的过程。三种Shading类型:Flat,Gouraud,Phong对应于按每个多边形、顶点、象素计算光亮度FlatShading:为每个三角形计算一颜色,整个三角形以该颜色填充。GouraudShading:先计算三角形每个顶点的光亮度,然后在三角形上插值光亮度PhongShading:对于每个象素,根据多边形顶点的法向插值计算得到象素的法向,然后用该法向计算光亮度FlatShadingGouraudShadingPhongShadingFlatShading的优点:简单、快速、可看清曲面蕴涵的小面片。缺点:绘制的曲面看起来不光滑GouraudShading:绘制的曲面较光滑、快速(基本上与FlatShading一样快),绝大多数图形硬件支持。GouraudShadingGouraudShading的缺点的缺点绘制效果与物体的层次细节密切相关218288个三角形256102416384个三角形GouraudShading的其它缺点:丢失高光、丢失聚光灯效果、Mach带效应。部分解决方法:采用带有光照效果的纹理PhongShading可以避免上述缺陷,但算法复杂、计算量大。商用的大部分图形卡不支持。在GouraudShading中,如果把三角形剖分成比象素还小,则GouraudShading可取得和PhongShading一样的绘制效果。但需较大的速度代价。因而该思想很少在实时绘制系统实施。顶点的照明采用光照模型(LightingModel)计算。在实时绘制中,所有的光照模型都非常相似,主要分成三部分:ambient,diffuse,specularambientdiffusespecularresult实时绘制的光照模型通常不完全基于物理理论,但容易控制且结果基本可以接收。大部分图形加速卡采用类似的光照明模型。Vertex和PixelShading支持程序员把自己的shader写入硬件。DiffuseComponentDiffuseComponent基于Lambert定律:对于理想的漫反射表面,其反射光由表面法向n和光矢量l的余弦决定:coslndiffi几何解释llφ...