您的位置:首页 > 编程语言

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因子。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: