球谐函数的概念与应用:可视化理解傅里叶级数

傅里叶级数

在谈及球谐函数时,从傅里叶级数开始理解,会有非常好的体验。从球谐函数的定义出发:球面函数可以分解为无限个球谐函数的累加。阶数越高,逼近的效果越好。而傅里叶级数的定义是,任意的周期函数都可以由简单震荡的无限叠加获得。当然,我们在实际计算机中都是用有限个数去逼近。

我们直接引入傅里叶级数的公式:

其中是 每一项的系数。是我们想要逼近的函数。当我们用趋于无限的正弦波叠加去逼近一个周期函数时,其过程如下图所示:

引入欧拉公式:

该复指数可以让我们更清晰的观察傅里叶级数在二维图形中的逼近效果。复指数随时间t的变化如下图所示:

如果我们取许多的复指数。它们有系数,该系数表示了圆的半径,指数的n表示了旋转的频率。

利用傅里叶级数重构函数:

为我们重构的函数。当N趋于∞时,。使用其所有的复指数向量来重构的二维图案如下图所示:

因此可以将函数分解成足够多的复指数项,利用它们的向量和来重现该函数。n的个数越多,重现的函数越准确。那么我们如何获得每个项的系数呢?

我们可以发现上图的有常数项。该项为一个定点,表示了函数的重心,如下图:

重心可由下述公式计算:

从计算,这给了我们计算别的系数的灵感,比如我们要计算

由于复指数在[0,1]区间内的积分始终为0,所以我们可以获得:

我们就有了最初的傅里叶级数的计算系数的公式(也正是傅里叶变换):

这里我们能从原函数获取系数,n的个数越多,用系数重构的原函数就越准确。则是我们的输入函数(文中的图形可以使用多组分段函数构成),最后我们观察不同的系数个数和重建的效果:

看到这里,我们球谐函数的作用就显而易见了,利用球面原始函数,可以用低阶去模拟环境光以及ao的效果,高阶则可以用来模拟镜面反射等高精度效果。更详细的讲解可以看一下3blue1brown的视频。

球谐函数的概念与应用:可视化理解傅里叶级数相关推荐

  1. 关于球谐函数一些初步的理解

    这个问题困扰我应该有段时间了,从在北京上课接触球谐函数一直到现在都没有真真正正的了解,很是汗颜.有时候我自己都不知道自己想要问的是什么问题,想向身边的人请教,可是我都不知道自己要去问一些什么问题,所以 ...

  2. 【GAMES-202实时渲染】3、预计算环境光照(球谐函数(SH)、IBL、Split Sum、环境光阴影计算(PRT))

    Lec5~7 1 环境光贴图着色计算(不考虑阴影) 1.1 Image-Based Lighting(IBL) 1.2 The Split Sum 2 环境光贴图计算(考虑阴影) 2.1 球谐函数(S ...

  3. 可视化理解四元数,愿你不再掉头发

    点击"计算机视觉life"关注,置顶更快接收消息! 本文阅读时间约8分钟 四元数的可视化 四元数被广泛应用在计算机图形学领域,游戏引擎Unity也是用四元数在后端计算旋转.数学上, ...

  4. Spherical Harmonics(球谐函数)与PRT

    关于求解系数Ci 投影:由于一个函数 f(w) 可以由一系列基函数和系数的线性组合表示,那么怎么确定基函数前面的系数,这就需要通过投影操作: 函数F(X)通过对应的基函数B(i)进行投影操作,从而求出 ...

  5. SIGIR阿里论文 | 可视化理解深度神经网络CTR预估模型

    小叽导读:尽管业界对于图像处理和自然语言处理领域,在算法可解释性方向上已经取得了一些进展,但对于电商与广告领域,目前还是空白.另一方面,深度学习技术已经开始被大规模应用到广告业务中.广告是很多互联网现 ...

  6. 用径向函数和球谐函数计算氢原子能级并验证维里定理

    用分离变量法把波函数 分离成径向部分和角度部分 径向函数Rnl为 球谐函数Ylm为 由此计算氢原子n=1,2,3时的能级 其中z是核电荷数代入1.a0是波尔半径,用原子单位表示代入1, 拉普拉斯算符为 ...

  7. BlockChain:BlockChain周边概念详解+个人理解

    BlockChain:BlockChain周边概念详解+个人理解 目录 1.拜占庭将军问题 2.共识机制 1.区块链的共识机制目前有以下几种 PoW PoS DPoS 其他共识机制 1.拜占庭将军问题 ...

  8. 新概念0810:我理解的经济内循环

    新概念0810:我理解的经济内循环 这个词是最近的高频词汇,中央反复提倡的一种经济模式,以内循环为主外循环为辅的经济模式.同时也在拜读达利欧的<债务危机>一书,发现打造内循环为主外循环为辅 ...

  9. scipy球谐函数与电子云层

    文章目录 球谐函数 电子云层 球谐函数 球谐函数是非常著名的氢原子解与角度相关的一部分,被定义为 Y n m ( θ , ϕ ) = 2 n + 1 4 π ( n − m ) ! ( n + m ) ...

最新文章

  1. 微型计算机技术 第三章,微型计算机技术第三章部分答案概要.docx
  2. AutoFac使用方法总结:Part III
  3. BZOJ1452 [JSOI2009]Count 树状数组
  4. 使用Kubeadm创建k8s集群之部署规划(三十一)
  5. 史上最全的分词算法与工具介绍
  6. Page_PreInit在网页传值的应用
  7. Java方法02 递归
  8. 个人Androidstudio快捷键及常用设置配置
  9. MyBatis多参数传递之混合方式——MyBatis学习笔记之十五
  10. mysql 目录位置_更改MySQL数据库目录位置
  11. java OOP及相关基础知识汇总(转)
  12. Untiy相机实现游戏透视效果
  13. 北京大学计算机系在线编程题库,北京大学acm试题题库及解答 完整版
  14. 小米路由器怎么设置无盘服务器,小米路由器怎么设置?
  15. 硅谷的长生不老产业:炼金术 2.0,满足 CEO 们“拿钱换命”的欲望
  16. HTML导航条和翻页栏
  17. 相见恨晚 linux下的c++filt 命令
  18. 地理必修一三大类岩石_中图版高中地理(必修一)知识归纳——第二章
  19. 通过笔记本设置wifi共享
  20. WEB 1.HTML

热门文章

  1. mybatis萌新基础
  2. is not a function_libcxx 的 std::function 源码分析
  3. 西铁院云计算机室与应用,关于开展“云桌面应用”技术服务的通知
  4. linux tomcat启动nohup,linux下tomcat添加服务
  5. php mkdir 无效,PHP mkdir()无写权限的问题解决方法
  6. mac安装python3.8_mac安装pwntools(python3.8)解决多数问题
  7. wxpython bind自定义_wxpython 支持python语法高亮的自定义文本框控件的代码
  8. 没有规则可制作目标modules_Modules简介
  9. java 可变参数_90.Java可变参数
  10. 2能不用cuda_农村建房的新方法,只需要一块地,2天就建好房子,不用还能搬走...