欢迎来到天天文库
浏览记录
ID:43530780
大小:1.08 MB
页数:68页
时间:2019-10-10
《真实感图形的绘制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第11章真实感图形的绘制1本章目标掌握真实感图形绘制的主要内容光照、纹理、阴影等重点掌握光照方程、基本纹理映射及多边形绘制学会使用OpenGL的相关函数2第11章真实感图形的绘制简单光照模型多边形绘制方法纹理映射阴影311.1简单光照模型光作用反射透射(透明物体)被物体吸收转化为热能假设物体不透明,即没有透射光光种类环境光、漫反射光和镜面反射光只有反射光和透射光决定物体的颜色411.1简单光照模型11.1.1环境光(Ambientlight)在物体和周围环境之间多次反射后,最终达到平衡时的一种光,又称为背景光光强(度):空间上分布均匀,即任何位置和方向光强度一样,亮度值记为I
2、a反射系数:与物体表面性质有关,决定物体表面呈现的亮度,记为Ka光照模型方程Ie=KaIaIe为物体表面呈现的亮度Ka=0.4Ka=0.8511.1简单光照模型11.1.2漫反射(DiffuseReflection)点光源:向周围所有方向发射等强度的光漫反射光是由物体表面的粗糙不平引起的,它均匀地向各个方向传播,与视点无关漫反射光在空间均匀分布,反射光强I与入射光的入射角θ的余弦成正比,即:其中,Kd是漫反射系数(0~1之间的常数),与物体表面性质有关;Ip是入射光(光源)的光强;θ是入射光的入射角,即入射光与物体表面法向量之间的夹角611.1简单光照模型向量表示的计算设物体
3、表面在照射点P处的单位法向量为N,P到点光源的单位向量为L,则上式可表达为如下的向量形式:如果有多个光源,则可以把各个光源的漫反射光照效果进行叠加:711.1简单光照模型环境光与漫反射光结合方程:例子:811.1简单光照模型11.1.3镜面反射光和冯(Phong)反射模型高光(highlight):光滑物体表面在点光源的照射下形成一块特别亮的区域镜面反射(SpecularReflection)物体表面对入射光的反射遵循反射定律(1)反射光与入射光位于表面法向两侧(2)理想反射面而言:入射角=反射角观察者在反射方向上看到反射光最强911.1简单光照模型Phong模型(非理想反射
4、面)计算公式:Ks是物体表面镜面反射系数,它与入射角和波长有关;α是视线与反射方向的夹角;n为镜面高光系数,用来模拟镜面反射光在空间中的汇聚程度,它是一个反映物体表面光泽度的常数;近似地描述了镜面反射光的空间分布。1011.1简单光照模型简化Phong模型SSHβL,N,R都是单位向量1111.1简单光照模型镜面参数n的影响效果n=15n=5n=1n常规取值5-201211.1简单光照模型局部光照方程结合环境光、漫反射光及镜面反射光当光源与视点无穷远时,对表面上任意一点而言,L和V固定不变,H只需计算一次Hβ1311.1简单光照模型11.1.4光的衰减光在传播过程中,能量会衰
5、减传播过程光源到物体表面的传播,使入射光强度变弱物体表面到人眼的传播,使人接受到物体表面的反射光强度减弱光到物体表面的衰减考虑衰减的方程1411.1简单光照模型物体表面到人眼过程中的衰减深度暗示技术(DepthCueing)使据视点远的点比近的点暗一些亮度计算前参考面n=Nf;后参考面n=Nb(规范化视见体内)分别赋比例因子Sf和Sb(Sf>Sb)给点物体上的一点的深度N0,比例因子S01511.1简单光照模型亮度计算光照方程计算出的I按比例S0与熔合亮度Idc混合若Sf=1,Sb=0,Idc=0时(1)当物体位于前参考面前,I’=I(2)当物体位于后参考面后,I’=0(3)
6、N0在Nb和Nf间时,I’=S0I,亮度部分衰减1611.1简单光照模型13.1.5产生颜色前面的光照模型仅用于白光,只能产生灰度彩色模型计算选择合适模型(如RGB、HSV等)为颜色的三个分量分别建立光照方程RGB模型光源的颜色[IpR,IpG,IpB],环境光的颜色[IaR,IaG,IaB]表面反射系数(1)环境反射:[KaR,KaG,KaB](2)漫反射:[KdR,KdG,KdB](3)镜面反射:[KsR,KsG,KsB]1711.1简单光照模型彩色光照方程(模型)1811.1简单光照模型11.1.6多个光源如果场景中有m个光源,那么物体上任一点的亮度应该为m个光源的贡献
7、之和在RGB彩色模型中,λ分别为R、G和B。注意:Iλ可能会超出系统允许的最大亮度值,处理方法(1)截去超出部分,设置为最大值(2)首先计算出所有亮度值,再进行变换(如缩放变换)使其落在系统规定范围之内1911.1简单光照模型11.1.7OpneGL光照函数(1)OpenGL光组成在OpenGL简单光照模型中的几种光分为:环境光(AmbientLight)、漫射光(DiffuseLight)、镜面光(SpecularLight)。(2)创建光源(LightSource)voidglLight{if}[v
此文档下载收益归作者所有