DirectX11学习笔记(4)光照与材质的相互作用

一、学习目标

1.了解光照与材质之间的相互作用。
2.了解局部照明和全局照明之间的区别。

二、光照所产生的效果

下图展示了光照和阴影在表现物体的立体感和体积感时起到的重要作用。左边的球体 没有灯照射,看上去就像是一个扁平的 2D 圆;而右边的球体有灯照射,看上去很立体。实 际上,我们的视觉能力完全取决于光照及光照与材质之间的相互作用,所以,许多超写实场 景的渲染工作都是通过精确的物理光照模形(lighting model)来实现的。
图1.1

其中 (a)没有灯照明的球体看上去就像是一个 2D 圆,而(b)有灯照明的球体看上去很立体。

当然,一般来讲,越精确的光照模型,花费的计算时间就越长;我们必须在真实感和速 度之间寻求平衡。例如,电影中的 3D 特效场景可以做得非常复杂,可以使用更为写实的光照模型,因为电影中的帧是预渲染的(pre-rendered),电影制作者可以花费数小时甚至数日 的时间来渲染一帧。而游戏是实时渲染应用程序,它至少要以每秒 30 帧的速度渲染场景。

三、材质与光的反射(光照模型)

当使用光照时,我们不再直接指定顶点颜色;而是指定材质和灯光,然后使用光照方程, 根据灯光与材质的相互作用计算顶点颜色。这样可以产生非常逼真的物体颜色(再次比较上图中 a 和 b 球体)。

材质是决定光照如何与物体表面相互作用的属性。例如,表面反射的灯光颜 色、吸收的灯光颜色、反射率、透明度和光泽度都是构成表面材质的参数。(在本章中, 我们主要讲解的是表面反射的灯光颜色、吸收的灯光颜色和光泽度。)

在我们的光照模型中,光源可以发射各种强度的红、绿、蓝光;通过一方式,我们可以模拟很多灯光颜色。当光线从光源发出照射到一个物体上时,一部分光线会被物体吸收,另 一部分线会被反射回来(对于透明物体,比如玻璃,还会有一部分光线会从物体中间穿过, 不过在这里我们先不用考虑透明度的问题)。反射会沿着它的新路径传播,可能会照射在其 他物体上,其中一部分线会被物体吸收,另一部分线会再次反射。在光线的能量完全耗尽之 前,它会照射到许多物体。很可能会有一部分线最终传入人的眼睛(参见下图),触碰到视 网膜上的视感细胞(称为视锥细胞和视杆细胞)。
在这里插入图片描述
图 (a)连续射入的白色光线,当光线照射到圆柱体(b)上时,一部分光线会被圆柱体吸收, 另一部分光线分散传向眼睛和球体。当圆柱体的反射光照射到球体(c)上时,一部分光线会被球体吸收,另一部分光线会再次反射,传入眼睛(d),眼睛收到入射线,看到物体。

四,局部光照模型和全局光照模型

局部光照型(local illumination model):在局部光照模型中,每个物体的光照都是相互独立的,所有的光线都 是从光源直接照射到物体上(即,本来应该被场景中其他物体阻隔的线,仍然会照射到后面 的物体上)。如图所示
在这里插入图片描述
全局光照模型(global illumination model):与局部光照模型相反,如果墙壁挡住了如果墙壁挡住了从灯泡射出的光线,那么球体就应该位于墙壁的阴 影之中。全局照明模型(global illumination model)不仅会考虑光源对物体的直接 照明,也会考虑场景中的其他物体反射造成的间接照明。它之所以被称为全局照明模型,就是因为它在照亮一个物体的同时,也会考虑到整个场景中的其他因素。对于实时游戏来讲, 全局照明模型占用的系统资源量过大(虽然它可以渲染出接近于照片的超写实场景)。目前, 实时全局照明(real-time global illumination)的实现方法还处于探索阶段。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值