本来这篇我是要讲Games202环境光照的第二部分的,但是看了视频,emmm...我真的蚌埠住了,全程都比较懵逼,直到最后总结阶段才反应过来,究其原因主要是对SH的陌生。
其实SH这个话题也不是第一次见,之前在unity shader中考虑场景中非重要性光源就有介绍,那么今天我就要好好啃一下这个话题,作为继续往下学习的基础。
有关球谐函数有很多标准的定义,但是过于官方的语言或许有利于你了解全貌,但我还是倾向于向初学者展示一个感性的认识:
球谐函数:一组表示球面的基函数
作用:累加系数X基函数模拟出原函数(表示球面的函数)
上边的公式看上去是一头雾水的,什么是基函数,什么是原函数,什么是系数?这应该就是问题的所在。
1.从笛卡尔出发
所有人都应该指导3维笛卡尔坐标系(x,y,z),按照向量的理解方式就有三个基函数(基底):
那么空间中任意一个点P(x,y,z)都可以表示为:
看看上式,就是原函数,k就是系数,x,y,z就是基函数,这个应该说没有人会有疑问,那么回到SH。
2.SH使用逻辑
现在,是一个球面函数,表示由