【视觉高级篇】23 # 如何模拟光照让3D场景更逼真?(上)
创始人
2024-03-23 18:35:21
0

说明

【跟月影学可视化】学习笔记。

光照效果简介

物体的光照效果是由光源、介质(物体的材质)和反射类型决定的,而反射类型又由物体的材质特点决定。

在 3D 光照模型中,根据不同的光源特点分为四种:

  • 环境光(Ambient Light):指物体所在的三维空间中天然的光,它充满整个空间,在每一处的光照强度都一样。
    • 特点1:在空间中均匀分布,在任何位置上环境光的颜色都相同
    • 特点2:环境光没有方向,与物体的材质有关
  • 平行光(Directional Light):平行光是朝着某个方向照射的光,能够照亮几何体的一部分表面,它属于有向光。
  • 点光源(Positional Light):指空间中某一点发出的光,与方向光不同的是,点光源不仅有方向属性,还有位置属性。
  • 聚光灯(Spot Light):与点光源相比,聚光灯增加了方向以及角度范围,只有在这个范围内,光线才能照到。

点光源跟平行光的示意图:
在这里插入图片描述

聚光灯示意图:

在这里插入图片描述

有向光在与物体发生作用的时候,根据物体的材质特性,会产生两种反射类型:

  • 漫反射(Diffuse reflection)
  • 镜面反射(Specular reflection)

漫反射示意图:
在这里插入图片描述
一个物体最终的光照效果,是漫反射、镜面反射以及环境光叠加在一起的效果,示意图如下:

在这里插入图片描述

如何给物体增加环境光效果?

环境光没有方向,物体表面反射环境光的效果,只和环境光本身以及材质的反射率有关。

物体在环境光中呈现的颜色的公式如下:(环境光的颜色为 L,材质对光的反射率为 R。)

在这里插入图片描述

下面实现给物体增加环境光效果:


如何给物体增加环境光效果

在这里插入图片描述

如何给物体增加平行光效果?

有向光的漫反射在各个方向上的反射光均匀分布,反射强度与光的射入方向与法线的夹角的余弦成正比。

下面实现给物体增加平行光效果:


如何给物体增加平行光效果

加了平行光线之后,我们可以感受到明显的阴暗变化,效果如下:

在这里插入图片描述

如何给物体添加点光源?

计算点光源的光照,要先根据光源位置和物体表面相对位置来确定方向,然后再和平行光一样,计算光的方向和物体表面法向的夹角。


如何给物体添加点光源

在这里插入图片描述

点光源的衰减

真实世界中,点光源的光照强度会随着空间的距离增加而衰减。我们需要模拟一个衰减系数出来。

衰减系数等于一个常量 d0d_0d0​​(通常为 1),除以衰减函数 P。衰减函数可以用一个二次多项式 P 来描述,公式如下:

  • A、B、C 为常量
  • z 是当前位置到点光源的距离

在这里插入图片描述

然后利用光线到点坐标的距离,用来计算衰减,实现如下:


点光源的衰减

衰减对比效果如下:光线强度随着距离衰减,可以右边较远的几何体几乎没有光照。

在这里插入图片描述

如何给物体添加聚光灯效果?

与点光源相比,聚光灯相对来说比较复杂,要用 5 个参数来描述:

  1. spotLightColor 聚光灯颜色
  2. spotLightPosition 聚光灯位置
  3. spotLightDecayFactor 聚光灯衰减系数
  4. spotLightDirection 聚光灯方向
  5. spotLightAngle 聚光灯角度

利用聚光灯方向和角度,就可以求法向量与光线方向夹角的余弦值,这个值可以判断坐标是否在夹角内,最终的光照效果就只会出现在光照的角度内。


如何给物体添加聚光灯效果

大致的效果如下:可以明显的感受到聚光灯的效果

在这里插入图片描述

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...