Spherical Harmonics Lighting的代码实现(基于OpenGL)
2015-08-23 23:48
411 查看
1、二维空间的勒让德多项式
勒让德多项式定义在[-1,1]范围内,其递归式是
下面这个函数的参数是给定的x,给定的l和m,其中l必须是正整数,而且m在[-l,l]范围内。
下面是利用勒让德多项式进行绘制
2、三维空间的Spherical Harmonics
在三维空间下绘制SH基函数,使用的是球坐标。
下面将会引进几个函数
绘制SH的函数传递theta和phi值循环调用evaluateSH(),计算返回值,之后使用四边形绘制网格。
3、使用SH基函数重构复合函数
我们已经创建了SH的基函数,现在要使用它们来重构一个给定的复合函数(也就是求出因子c),这个复合函数将会被用来描述光线在半球上的分布。
下面将会引进两个函数。
接下来还要定义一些数据结构。首先定义一个结构SHVector3d,容纳向量或顶点的笛卡尔坐标;同样定义一个结构,容纳分层取样(stratified sampling)的信息,即单位球坐标,样品的三维坐标,和SH因子。
1、二维空间的勒让德多项式
勒让德多项式定义在[-1,1]范围内,其递归式是
下面这个函数的参数是给定的x,给定的l和m,其中l必须是正整数,而且m在[-l,l]范围内。
在三维空间下绘制SH基函数,使用的是球坐标。
下面将会引进几个函数
3、使用SH基函数重构复合函数
我们已经创建了SH的基函数,现在要使用它们来重构一个给定的复合函数(也就是求出因子c),这个复合函数将会被用来描述光线在半球上的分布。
下面将会引进两个函数。
相关文章推荐
- eclipse for windows8 下载与安装
- ASP.NET基础题(1-10)
- QT pro 文件跨平台的 include 和lib 配置
- Python windows 平台下安装BeautifulSoup
- Python 参数知识(变量前加星号的意义)
- Ubuntu 14.04 下安装使用Python rq模块
- python中将string转码为ASCII格式
- asp.net mvc3 的数据验证(一)
- Laravel5.1.4教程1--安装使用
- 《Java疯狂讲义》中关联、组合和聚合的谬误
- Python:AttributeError: 问题
- jpython LookupError: unknown encoding 'ms936' 问题解决
- 编写高质量代码改善C#程序的157个建议——建议143:方法抽象级别应在同一层次
- 用VC进行COM编程所必须掌握的理论知识
- C语言插入排序
- java新手笔记27 监听器类
- C# String.Format字符串中包含"{" "}"时需注意的问题
- php中的转义字符
- 类基础
- java新手笔记26 Frame