当前位置: 首页 > news >正文

TA学习之路——2.4 图形传统光照模型详解

1.光照模型

1.1 初识光照模型

光照模型(illumination model)。也称为明暗模型,用于计算物体某点处的光强(颜色值)。从算法理论基础而言,光照模型分为两类:一种是基于物理理论的,另一种是基于经验模型的。

基于物理理论的光照模型(PBR):偏重于使用物理的度量和统计方法,效果非常真实,但是计算复杂,实现起来也较为困难。

经验模型(Lambert、Billing-phone):是对光照的一种模拟,通过实践总结出简化的方法,简化了真实的光照计算,并且能达到很不错的效果。
在这里插入图片描述

1.2 为什么需要光照模型?

现实世界的光照是极其复杂的,而且会受到诸多因素的影响,有限的计算能力无法完全模拟。使用简化的光照模型对现实的情况进行近似,使得计算处理起来会更容易,并且令效果更符合需求。这些光照模型就是基于我们对光的物理特性的理解。

1.3 光照模型的发展

在这里插入图片描述

2.局部光照模型的定义

局部光照模型只关心直接光照部分,即直接从光源发出并照射到物体表面并反射至摄像头的光线。

局部光照模型:
在这里插入图片描述
全局光照模型:
在这里插入图片描述

3.局部光照模型的组成

局部光照模型满足叠加原理,可以基本将光线分为四个部分
1.漫反射
2.高光反射
3.环境光
4.自发光

3.1 漫反射

3.1.1 什么是漫反射?

在光照模型的定义中,当光线从光源照射到模型表面时,光线均匀被反射到各个方向,这种现象就是漫反射在漫反射的过程中,光线发生了发生了吸收和散射,而因此改变颜色和方向。

3.1.2 如何计算?

漫反射光照符合Lambert定律,反射光强与法线和光源方向之间的夹角的余弦值成正比
在这里插入图片描述

3.1.3 Lambert余弦定律

理论基础
在光学中通常使用辐射度来量化光。
其中光源每秒发出的能量为辐射通量 P P P
单位面积接受的光量为辐射通量密度(辐照度) P / A P/A P/A
当光源垂直照射的单位面积的辐照度为 E 1 = P / A E_1=P/A E1=P/A
将光束以某个角度照射到更大的平面上的辐射度为 E 2 = P / A 2 E_2 = P/A_2 E2=P/A2
可以认为 A 1 A_1 A1 A 2 A_2 A2的关系是
c o s θ = A 1 A 2 cos\theta = \frac {A_1}{A_2} cosθ=A2A1
E 2 = P A 2 = P A 1 c o s θ = E 1 c o s θ = E 1 d o t ( n , t ) E_2 = \frac {P}{A_2}=\frac {P}{A_1}cos\theta=E_1cos\theta = E_1dot(n,t) E2=A2P=A1Pcosθ=E1cosθ=E1

相关文章:

  • Python 使用一等函数实现设计模式(案例分析:重构“策略”模式)
  • JAVA设计模式——(九)工厂模式
  • 牛客周赛 Round 91
  • MQTT - Android MQTT 编码实战(MQTT 客户端创建、MQTT 客户端事件、MQTT 客户端连接配置、MQTT 客户端主题)
  • 算法设计:回溯法的基础原理与应用
  • 【Linux系统】systemV共享内存
  • 【Java学习】动态代理有哪些形式?
  • Rust 的 Web 世界:actix_web 轻松接收 JSON 请求体
  • 第一讲 | 算法复杂度
  • 1.4 点云数据获取方式——结构光相机
  • Reactor框架介绍
  • 嵌入式音视频实时通话EasyRTC打造设备安装与调试的高效远程解决方案
  • AWS创建多块盘并创建RAID0以及后增加空间
  • (02)Redis 的订阅发布Pub/Sub
  • 基于C#窗体+GDI+绘图实现分形树
  • 华锐视点历经十八年沉淀所形成的产品特性
  • Electron-vite中ELECTRON_RENDERER_URL环境变量如何被设置的
  • java 加入本地lib jar处理方案
  • 如何创建并使用极狐GitLab 议题模板?
  • HarmonyOS运动开发:如何监听用户运动步数数据
  • 中国人保一季度业绩“分化”:财险净利增超92%,寿险增收不增利
  • 【社论】人工智能,年轻的事业
  • 助力企业高质量出海,上海静安发放服务包、服务券
  • 我的科学观|张峥:AI快速迭代,我们更需学会如何与科技共处
  • 一张老照片里蕴含的上海文脉
  • 文化体验+商业消费+服务创新,上海搭建入境旅游新模式