一个专注音视频领域问答的小圈子

光照可以说是整个计算机图形学里面最重要的部分了,当展现物体时如何模拟真实世界中的光照环境,这往往是很复杂的。

由于光是可以散射的,一个物体不仅仅可以接收来自直接光源的照射,还可以接收来自周围环境的散射光,而在渲染时,要计算周围环境的散射光就无疑加大了计算量,因为周围环境远比光源复杂多了。

下面就是一张很逼真的光照渲染实例:

如果说这是用手机拍的照片,可能我都分不出来哪里有问题,而计算机模拟真实感渲染就是追求这一目标吧。

下面是一张缺少周围环境光的渲染实例:

可以很明显地看到下图很多地方都是黑色,而在现实世界中就不会一片黑,

要实现图一那样真实感的渲染,还是有不少东西要学的,尤其是数学方面,很多公式的推导和计算都是凝聚了学术界大佬心血的。

当然,学习也是一个由浅入深的过程。

学习光照,可以先从局部光照开始入手,然后再进入到全局光照,局部光照和全局光照都可以算是光照模型中的一种。

局部光照

局部光照是一种比较简单的光照模型,它仅处理直接照射到物体表面的光照,不处理周围光照的光照。

因此,局部光照要相对简单一些,只要算光源对物体的影响就好了,而且它是一种经验模型,和实际的物理现象是不对的。

局部光照又可以分为以下几种模型:

  • Lambert 漫反射模型
  • Phong 光照模型
  • Blinn-Phong 光照模型

简单总结就是 Lambert 模型是处理漫反射的,Phong 模型是在前者基础上加上镜面反射处理的,而 Blinn-Phong 模型又是在前者基础上做了计算优化。

后面会一个一个过这几个计算模型,并且在这几个模型上拓展了很多渲染方面的技巧内容。

全局光照

全局光照就复杂多了,常常听到的光线追踪就是实现全局光照的一种方法。

全局光照模型不同于局部光照经验模型,它是基于光学物理原理的,会考虑到光在现实世界中的反射、散射、透射等,另外还有光的辐射度,能量衰减等物理现象。

由于全局光照的计算量巨大,实时渲染的难度就很大,但这也是未来的发展方向了。

全局光照主要有如下的实现方向:

  • 光学追踪
  • 路径追踪
  • 光子映射
  • 辐射度
  • 球谐光照

每个方向都是一块难啃的骨头了,后面再深入到这块的学习吧,先把局部光照的基础打好。

小结

光照模型分为局部光照和全局光照。局部光照的发展比较稳定了,光照模型就是 Lambert 和 Phong 等,而全局光照还在随着硬件升级不断发展前进中。

参考

  1. https://zhuanlan.zhihu.com/p/49474631

知识星球

一个专注音视频领域问答的小圈子

公众号音视频开发进阶对应的知识星球,一个编程开发领域的专业圈子,贩卖知识和技巧!

※ 入群须知:了解该星球能提供的价值和帮助,在提问时务必阐述好背景,附带相关的信息。

iOS 用户可以加我微信 ezglumes 邀请你进星球,有疑问也可以加我微信咨询。

※ 星球内容:

基础教程:

在知识星球连载的干货教程,可以在专栏中找到,随着时间的推移,教程也会越来越多:

- 音视频基础概念
- WebRTC 入门教程及源码实践
- 播放器教程及源码实践
- OpenGL 和特效开发教程
- Vulkan 入门教程

部分内容可以在博客 https://glumes.com 中检索到,后面会在星球里持续更新.

干货分享:

涵盖了移动开发和音视频工程领域的绝大部分,从项目实战角度出发,提升能力,包括但不限于以下领域:

- Android/iOS 移动开发
- Camera 开发
- 短视频编辑 SDK 项目实践
- 在线直播和推流
- WebRTC 开发
- 播放器基础和提高
- OpenGL 图像渲染及特效开发
- C++ 基础和提高
- FFmpeg 使用和分析
- 干货资源和书籍分享

不止于技术方面的,各种 IT 新闻、茶余饭后、生活趣事也欢迎大家分享!!!

技术答疑解惑:

针对上述基础教程和干货分享的答疑,另外还有音视频和 IT 开发中的各种交流讨论。

- 基础知识点答疑
- 工业项目实践答疑
- 问题排查思路分析

一个 BUG 排查很久,不如来星球里提个问题,效率提升百倍。

求职和面试辅导:

一站式职场服务,每份工作都值得用心对待!!!

- 面试题和面试经验分享
- 简历修改和模拟面试
- 大厂内推和信息同步
- 职场经验分享
- 职业规划和发展分析

※ 星主和合伙人介绍

星主是公众号音视频开发进阶的作者,也是网站 https://glumes.com 的作者,曾参与过抖音、剪映等头部音视频 APP 底层 SDK 的开发。

合伙人也是在头条、快手从事音视频架构师的职位,具有多年的音视频开发经验,能力圈覆盖了音视频的绝大多数领域,资深音视频从业人员为你保驾护航。

微信公众号

扫描下面的二维码关注我的微信公众号《音视频开发进阶》,推送更多精彩内容!

添加我的微信 ezglumes 拉你入音视频与图形图像技术群一起交流学习~

wechat-account-qrcode

原创文章,转载请注明来源:    Unity Shader 光照基础内容