光照模型&表面渲染 - 图文

更新时间:2023-11-04 05:57:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

光照模型&表面渲染

摘要:光线照射到物体表面经过反射到达我们的眼睛经过一些复杂的物理过程,到达眼睛的光线的强弱、颜色受很多因素的影响:如对象表面属性,对象位置及其和其他物体的相对位置、光源情况,我们的视觉位置方向等等。为了产生明暗过渡自然的真实感图形,首先必须建立光照明模型,它描述了物体表面的颜色与其空间位置、朝向、物理属性(反射率、折射率)及与光源的关系。我们可以将这些影响因素设置成参数。通过这些参数,利用光照明模型,计算出对象表面的所有像素的颜色值,然后绘制算法具体计算对应屏幕上各像素的物体表面的颜色,并最终显示图形。

关键词:光照模型 多边形渲染 漫反射 镜面反射 中图分类法:TP391.41 文献标识码:A

Illumination Models & Surface-Rendering

Methods

Xu Yanyan

(Shandong Normal University Jinan, China)

Abstraction:After exposure to the surface light reaches our eyes after reflecting some complex physical processes, the intensity of light reaches the eye , the color is affected by many factor: the surface properties such as object, object and other objects location and relative position , the light source case, the direction of our position and so visual. Natural light and dark transition in order to produce realistic graphics, lighting must be established first model, which describes the color of the surface and its spatial location, orientation, physical properties (reflectivity, refractive index) and the relationship with light. We can set the parameters of these factors. With these parameters, the use of lighting model to calculate the surface of the object color values for all pixels, then draw specific calculation method of the pixels on the screen corresponding to the object surface colors, and eventually display graphics.

Keywords:illumination model ; polygon rendering ;diffuse reflection ; specular

reflection

1、引言

光源对于三维真实感图形来说非常重要,如果没有光源,所绘制的三维图形就无法显示清楚,即使模型再漂亮,没有光的照射就体现不出三维物体的质感和位置关系等,所做的大量的建模工作就无法体现。光照模型是指计算我们等看到的物体表面上的顶点的颜色值的方法,表面渲染算法是利用光照模型计算透视到我们视域的物体表面上所有的点的颜色值。因此,光照模型是生成真实感图形的基础,而光照模型与颜色是密不可分的,颜色的计算与场景中的光源有关。

2、光源

人所观察到的物体表面的反射光是由场景中的光源和其他物体表面的反射共同产生的,一个物体表面即使不直接暴露于光源之下,只要其周围的物体被光源照亮,它也可能被看见。即使是在一个不透明且不发光的物体表面所观察到的光线也是有某光源与其周围物体表面的反射光所共同组成的。

光源称为发光体,而发射面则称为反射光源。用光源来表示所有发出辐射能量的物体。 通常,发光物体可能即是光源又是反射体。光源有两类: (1)点光源

光线由光源出发向四周发散。和场景中的物体相比,光源小的多,而且光源离场景足够远时,可使用点光源模型。

(2)分布式光源

当光源和场景中的物体相比不够小,且距离场景较近的光照效果模拟时,使用分布式光源。它计算光源外表面各点共同产生的光照。光线投射至物体表面时,部分被反射,部分被吸收,物体表面的材质类型决定了反射光线的强弱,表面光滑反射较多的入射光,而暗表面则吸收较多的入射光。

图1 光源及光反射的类型

3、基本光照类型

3、1 漫反射

假定中的每个面上的漫反射是恒定不变的,与观察方向无关。用漫反射系数或者漫反射率

(事实上,

是关于物体颜色的函数,但当前假设它为常量)来设置入射光线中漫反

≤1)。设置

值可调整物体表面的反射属性,若

值接近1,则表

射部分的百分比(0≤

明反射光接近入射光强度;若值接近0,则表示物体表面吸收大部分入射光。对仅暴露在

环境光的物体表面,可用下列公式表示面上某点处的漫反射光强度:

Idiff= kd Ia

从表面上任意点所发散的光线均可由朗伯余弦定律计算出来。入射光与该点所在物体表面法向量的夹角为

(入射角),每个面积为dA的平面单位所发散出的光线与cos

成正

比,但光强度仅决定于垂直于方向的单位投影面经上的光能dAcos。也就是说,漫反

射光强与入射光强以及入射角的余弦成正比,这个定律也成为朗伯反射体。朗伯反射体的光强度在所有观察方向上都相同。

图2 朗伯余弦定律

即使一个理想的漫反射在所有方向上具有等量的反射光线,但面片的光亮度还取决于它与光源的相对朝向。

一个与入射光方向垂直的面片同一个与入射光方向成斜角的面片相比,其光亮度要大得多。如果入射光与平面法向量间的夹角(入射角)为θ,则垂直于光线方向的面片的投影面积和cosθ成正比,即光照程度的大小(或穿过投影平面光的入射光束的数目)决定于cosθ。若在某点入射光垂直于表面,则该点被完全照射;当光线与表面法向量之间的角度变大时,该点的光亮度将降低。

图3 不同类型的光照模型 在有光源照射的情况下,漫反射和物体表面与入射光 的夹角有关,因为表面相对于入射光线倾斜越大,则单位面积接受的入射光越小, 假设光源发出的光强为Il,对象表面的漫反射率为k⊿,入射光与对象表面法线夹角为θ,那么对象对于光源的光产生的漫反射:

Il,diff= kdIl cos θ

——漫反射光光强,它是光波长的函数,假定为常量; ——点光源发出的入射光最强; ——漫反射常量(0≤

≤1),它取决于表面材料;

θ——入射光与表面法向n之间的夹角,当β≥π/2时,光源位于物体后面。

图4 漫反射示意图

如果用单位向量N表示表面的法线,用L表示表面顶点指向点光源的单位向量,则 cos θ=L·N Il,diff= kdIl L·N

可将环境光与点光源所产生的光强度计算合并,得到一个完整的漫反射表达式。另外,许多图形软件包引入环境光反射系数K以修改每个表面的环境光强度,以便用该参数来调节场景的光照效果。

假设对于环境光对象表面的漫反射率为ka,综合考虑环境光和点光源,表面的漫反射为: Idiff= kaIa +kdIl( L·N)

其中

都决定于物体表面材质的属性,其值介于01之间。

3.2镜面反射

图5 从左至右kd依次为0,0.2,0.5,0.8,1 当观察光照下的光滑物体表面时,接近镜面反射角的一个汇聚区域内入射光的全部或绝大部分称为反射光,因而在某个观察方面看到高光或强光,这个现象称为镜面反射。

图6 镜面反射角度等于入射角

上图中表示的是在光照物体表面的某点处的镜面反射方向,镜面反射角等于入射角。向量R表示理想镜面反射方向的单位矢量;向量L表示指向点光源的单位矢量;向量V为指向视点的单位矢量;φ是观察方向与镜面反射方向R之间的夹角。

对理想反射体,入射光仅在镜面反射方向有反射,此时,仅当V与R重合时才能观察到反射光线(φ=0)。

非理想反射体系统的镜面反射方向分布在矢量R周围的有限范围内,光滑表面的镜面反射范围较小,二粗糙物体表面则有较大范围。

图7 用参数ns来表示镜面反射(阴影区域)

4、phone模型

假设N为表面顶点的单位法线,设单位法线R为理想的镜面反射方向,L为指向点光源单位法线,V为该点指向视点的单位法线,在理想状态下,只有当角b=0时反射光才能到达眼睛。

图8 理想状态

但是在现实中,并不都是理想的镜面反射,当视线方向和反射方向不重合时,眼睛也能感受到部分反射光。较光滑的表面,当眼睛能感受到反射光时,夹角b的范围较小,而对于较暗淡的表面b的范围较大。

图9 显示了不同光泽度产生的高光区域。引入参数ns来确定高光的区域范围。

ns

进入视点的高光反射量与 cos b成正比。ns较大时,表示光泽度高,则高光区域小,反之,高光区域较大。

图10 ns的取值对高光区域的影响

镜面反射的phong模型可表示为

ns

Ispec=W(a)Il cos b Il为入射光强度 或者:

ns

Ispec=ksIl ( V·R) Il为入射光强度, ks为镜面反射系数。

ns

由于L+R=(2N·L)N所以R= (2N·L)N-L所以Ispec=ksIl ( V·((2N·L)N-L))

图11 Phong模型示意图

5、多边形渲染算法

5、1 Gouraud着色方法

Gouraud着色方法又称为颜色插值着色方法,是通过对多边形顶点颜色进行线性插值来获得其内部各点颜色的。由于顶点被相邻多边形共享,所以相邻多边形在边界附近的颜色过渡就比较光滑。

Gouraud着色方法并不是孤立地处理单个多边形,而是将构成一个物体表面的所有多边形(多边形网格)作为一个整体来处理。对于对变形网格中的每一个多边形,Gouraud着色处理分为四个步骤:

(1)计算多边形的单位法矢量。 (2)计算多边形顶点的单位法矢量。 (3)利用光照模型计算顶点的颜色。

(4)在扫描线消隐算法中,对多边形顶点颜色进行双线性插值,获得多边形内部(扫描线上位于多边形内)各点的颜色。

图12 双线性插值方法如图所示

假定待绘制的三角形的投影为P1P2P3,其顶点坐标为(xi,yi),i=1,2,3。一条扫描线与三角形的两条边分别交于A(xA,yA)和B(xB,yB)两点。P(xA,yB)是AB上的一点(y= yB= yB)。A点的颜色IA由P1P2的颜色I1、I2线性插值得到;B点的颜色IB由P1P3的颜色I1、I3线性插值得到;而P点的颜色IP由A、B的颜色IA、IB线性插值得到:

IA=[(yA-y2)/(y1-y2)]I1+[(y1-yA)/(y1-y2)]I2 IB=[(yB-y3)/(y1-y3)]I1+[(y1-yB)/(y1-y3)]I3 IP=[(xB-x)/(xB-xA)]IA+[(x-xA)/( xB-xA)]IB

采用增量方法可以加快上述过程的计算速度:

(1)当扫描线y递增一个单位变成y+1时,IA、IB的增量分别为ΔIA、ΔIB,得到

IA,y+1=IA,y+ΔIA IB,y+1=IB,y+ΔIB

其中

ΔIA=[1/(y1-y2)](I1-I2) ΔIA=[1/(y1-y3)](I1-I3)

(2)当x递增一个单位(P点沿扫描线右移一个单位)时,IP的增量为ΔIP,得到:

IP,x+1=IP,x+ΔIP

其中,Δ

IP=[1/(xB-xA)](IB-IA)。

图13 用Gouraud着色方法生成的球体的光照效果图。

5、2 Phong着色方法

与Gouraud着色方法不同,Phong着色通过对多边形顶点的法矢量进行插值,获得其内部各点的法矢量,所以也称为法向插值着色方法。用该方法绘制多边形的步骤如下:

(1)计算多边形的单位法矢量 (2)计算多边形顶点的单位法矢量

(3)在扫描线消隐算法中,对多边形顶点的法矢量进行双线性插值,计算出多边形内部(扫描线上位于多边形内)各点的法矢量。

(4)利用光照模型计算每一点的颜色。 在Phong着色方法中,需要为多边形上的每一点计算一次光照模型,因此计算量远大于Gouraud着色方法。但用Phong着色方法绘制的图形更加真实,特别是在以下两个场合效果更加明显(考虑要绘制一个三角形)。

(1)如果镜面反射系数n较大,三角形的顶点α(R与V的夹角)很小,而另外两个顶点的α很大,则光照模型计算的结果是左下角顶点的亮度非常大(高光点),另外两个顶点的亮度小。若采用Gouraud方法绘制,由于它是对顶点的亮度进行插值,会导致高光区域不正常地扩散成很大一块区域。而根据n的意义,当n较大时,高光区域实际应该集中,这样是不符合实际情况的。采用Phong着色方法绘制的结果更符合实际情况。

(2)当实际的高光区域位于三角形的中间时,采用Phong着色方法能产生正确的结果,若采用Gouraud方法,由于按照光照模型计算出来的三个顶点处的亮度都较小,线性插值的结果是三角形中间不会产生高光区域。

本文来源:https://www.bwwdw.com/article/p5w2.html

Top