Spherical Harmonics lighting
来源:互联网 发布:人大网络教育学生登录 编辑:程序博客网 时间:2024/04/26 21:05
http://www.research.scea.com/gdc2003/spherical-harmonic-lighting.pdf
这个blog只是接触到非常有限的SH的内容,因为里面很多数学的确看起来比较头疼,所以看到够用就停了,理解也比较直白和山寨。
GI讨论的问题,从某个角度看来,可以看作是空间一个点它受到的光照,这个光照来自周围360度,也就是个球面。
其中一个很大的问题就是怎么保存和表示这个360度的光照信息。
spherical harmonics lighting(后面简称为SH)就是解决这个问题。
1,投射理解:
SH要做的事情就是让这个表达简单而且使用方便,它有个性质非常牛就它的基函数是标准正交的(orthonormal)。
对于在标准正交基函数投射我们可以用vector投射在x,y,z轴上的投射来类似理解,一个vector可以用在x,y,z轴上投射的系数来表示,SphericalHarmonics是定义了一组标准正交基函数,一圈lighting信息在这个基函数上投射出一组系数,然后记录下来,就是表示好了。
2,基函数展开理解:
spherical harmonics也是类似傅立叶展开一样,是对一个函数用一组基函数展开的过程。
在需要的情况下,我们可以舍弃后面的项取前面的项来做一个近似,这一点也非常适合GI,因为我们并不要求对indirect lighting非常准确的表达。
3,系数求解:
因为它是标准正交的(orthonormal),所以求每一项的系数就变成对在整个球面做积分,积分的内容是这个方向的亮度乘以这个方向上的SH基函数的值,就可以得出系数了。
4,系数操作:
多个lighting信息要做相加的时候,就是把系数相加就可以了,参照向量加减法。
使用的时候,orthonormal也可以带来非常多的好处,类似lighting和transfer function的相乘积分可以转化成系数的点乘。。。
其他高杆的东东,还有一堆像旋转的,没心思看,用到了再看吧。
5,具体使用
有一种用法就是做3级展开,一共9个基函数展开,第一级就是一个常量,无视,其他几级的话可以用两个cubemap来表示,每个texel 的rgba都保存东西,刚好是其他几个基函数都可保存。
那么每个texel就保存这个方向上的每个基函数的值,我还有系数,就可以还原每个方向上的光照信息了。
- Spherical Harmonics lighting
- Spherical Harmonics Lighting
- Spherical Harmonics Lighting
- Spherical Harmonics Lighting in DirectX
- Spherical Harmonics Lighting代码实现(续)
- Spherical Harmonics Lighting的代码实现(基于OpenGL)
- SH (Spherical Harmonics) related papers
- Spherical harmonics 和 cubemap 的关系
- Spherical Harmonic Lighting(球谐光照)
- Spherical Harmonic Lighting(球谐光照)
- Spherical Harmonic Lighting(球谐光照)
- PRT(Precomputed Radiance Transfer)&球谐光照(Spherical Harmonic Lighting)
- PRT(Precomputed Radiance Transfer)&球谐光照(Spherical Harmonic Lighting)
- 简单理解spherical harmonic lighting(球谐光照)
- Lighting
- Spherical Mercator
- Spherical covariance Gaussians
- 球哈希Spherical Hashing
- JDBC For SQL Server 2005
- 了解Symbian[签名]及[证书]
- Jsp Servlet常用 Listener的分类
- 通过动态
- Linux驱动开发学习笔记
- Spherical Harmonics lighting
- Java标准类库中类型相互转化的方法
- 希望认识更多编程高手
- Linux 2.6字符设备驱动程序样例
- 约瑟夫环问题两种情况解答
- 基于WinCE的I2C驱动程序设计
- 《IAS(Internet验证服务) RADIUS实现无线网络验证》的补充和总结
- 在Insert语句中使用参数
- 送达方式