计算机图形学

第五章(1) 光照与着色

如何赋予物体“真实感”?

已经能“画”出茶壶的形状

Utah茶壶-线框模型
变换与投影

如何赋予它“灵魂”?

Utah茶壶-渲染模型
光照与材质

看图思考

光滑的红色台球
光滑的红色台球
粗糙的红色砖块
粗糙的红色砖块

在同样的灯光下,造成两个物体不同的视觉差异体现在哪里?

学习目标

  • 光照的基本概念
  • 光照模型
  • 真实感光照基本要素

着色

平面着色
法向量着色

材质观察者的位置物体表面的方向等属性决定了在光照条件下当前物体表面上每个点都会呈现不同的颜色,使得物体看起来更具真实感

着色(Shading),根据光照计算结果,为物体表面每一点指定颜色的过程

光照

光的散射

当光线入射到A,部分被吸收,部分被散射,散射光线入射到B,又发生部分被吸收,部分被散射,循环往复

光照(Lighting),即模拟光与物体表面相互作用的物理过程

光源

一般的光源由于需要计算所有从光源上所有点发出的光线,很难处理

光源位置
光源

点光源

位置,颜色信息

点光源

当点光源的距离位于无限远处,接近于平行光

平行光

聚光灯

光限制在一个区域中

聚光灯

环境光

  • 环境中所有位置的光强度均相同
  • 可用于模拟多个光源和反射表面的效果

光线和材质

  • 当光线照射到物体时,部分光线会被吸收,部分光线会被反射
  • 物体的颜色和亮度取决于其反射的光线量
    • 如,在白光照射下呈现红色的表面,是由于在物体表面红色分量光线被反射,而其它颜色被吸收所造成的。
  • 反射光线取决于物体表面的光滑度及物体表面的朝向

表面类型

  • 物体表面越平滑,反射光线越集中在镜面反射方向
  • 越粗糙的表面往各个方向散射的光线就越多
平滑表面
平滑表面
粗糙表面
粗糙表面
透射表面
透射表面

光照模型(Illumination Model)

光照模型(Illumination Model),用数学模型模拟光照计算的过程,便于用代码实现

光照模型
局部光照(Local Illumination)模型,光照来自光源,阴影是“黑”的
光照模型
全局光照(Global Illumination)模型,光线会在物体间反射,物体会被互相照亮

光照模型(Illumination Model)

光照模型对比

局部光照(Local Illumination)模型,只考虑光线从光源直接到物体表面的路径

光源→物体表面 → 眼睛

特点:计算快,适合大多数实时应用场景,如游戏,但忽略了物体之间的间接光照

全局光照(Global Illumination)模型,考虑从光源物体表面的所有可能的反射路径

光源→物体表面 → 物体表面 →... → 眼睛

特点:具有真实感效果,能产生软阴影、颜色溢出等视觉效果,但计算量巨大

光照模型(Illumination Model)

实现光照模型,包括局部模型全局模型

正确的光照着色需要进行全局计算,包括所有的物体对象和所有的光源

在流水线模型中,对每个面片独立着色,属于局部渲染

计算机图形学实现中,尤其是实时计算,需要的是“看起来正确”的结果,可以有很多技术模拟全局光照效果

局部光照模型(Local Illumination Model)

Phong模型,包括漫反射光照镜面光照环境光照

全局光照模型(Global Illumination Model)

主要有两种经典技术来实现全局光照:

光线追踪 (Ray Tracing)

光线追踪

从相机反向追踪光线路径。
擅长处理镜面反射、折射、精确阴影
属于相机空间的方法

辐射度 (Radiosity)

辐射度

计算表面之间的光能传递。
擅长处理漫反射间的颜色溢出、柔和光照
属于对象空间的方法

题目一 (单选题)

在开发一款追求高度真实感的室内场景渲染器时,设计师发现一个白色的墙壁旁边放置了一个红色的沙发,但在渲染结果中,墙壁上完全没有出现任何红色的光晕,导致场景看起来不够自然。这个问题最可能的原因是什么,应该采用哪种光照模型来解决?

  • A. 光源强度不足,应该增强场景中的主光源。
  • B. 观察者位置不正确,调整相机角度就能看到红色光晕。
  • C. 场景使用的是局部光照模型,它无法模拟光线在物体间的反弹。应改用全局光照模型来产生“颜色溢出”效果。
  • D. 沙发的材质设置错误,应该将其设置为半透明材质。

题目二 (单选题)

一位3D美术师正在制作一个游戏场景,其中包含一个光滑的金属盾牌和一个粗糙的木制宝箱。为了在渲染时正确表现它们不同的质感,除了基本的颜色贴图外,他还需要重点关注和调整光照模型中的哪个方面?

  • A. 仅调整光源的颜色和位置。
  • B. 调整两个物体的大小和形状。
  • C. 调整物体表面的反射特性,确保盾牌的光线反射更集中(镜面反射),而宝箱的光线反射更分散(漫反射)。
  • D. 增加场景中的光源数量,用更多的灯光去照亮它们。

题目三 (问答题)

在您的课程内容中,展示了从一个茶壶的“线框模型”到“渲染模型”的演变,并将其描述为赋予物体“灵魂”的过程。请结合课程中关于“着色(Shading)”的定义,解释为什么仅仅拥有正确的几何形状(如线框茶壶)不足以产生真实感?要实现从线框到逼真渲染的飞跃,还需要哪些关键信息?这个过程在计算机图形学中被称为什么?

答案解析:

  • 为什么几何形状不足够:
    一个线框模型只定义了物体的几何信息(顶点位置和连接关系),但没有包含任何光学信息。在现实世界中,我们能看到物体是因为光线与物体表面发生了复杂的相互作用。没有光,一切都是黑暗的。因此,一个没有光照和材质信息的模型,在计算机看来只是一堆空间坐标,无法形成逼真的图像。
  • 需要的关键信息:
    要实现逼真渲染,除了几何形状,至少还需要以下关键信息:
    • 光 (Light): 光源的位置、颜色、强度等。
    • 材质 (Material): 物体表面如何反射和吸收光(如颜色、光滑度、金属度)。
    • 观察者位置 (Observer's Position): 决定了我们从哪个角度看物体,影响高光和反射的位置。
    • 物体表面方向 (Surface Orientation): 通常用法向量(Normal)表示,决定了表面接收光照的强度,从而决定了明暗。
  • 过程名称:
    根据以上所有信息,计算出物体表面每一点最终应该呈现的颜色,并将其绘制出来的过程,在计算机图形学中被称为着色 (Shading)

课堂总结

  • 渲染的真实感源于光照与材质共同的作用,其中光照模型非常重要
  • 物体对象的表面特性决定物体在光照下的质感
  • 局部光照模型计算简单速度快,全局光照模型视觉效果更真实
  • Phong模型是局部光照模型,光线追踪和辐射度是两种主要的全局光照模型方法