我正在尝试使用GPU Gems 1 第 1 章中的理论来实现一个简单的水模拟。
如果你想象一个 3D 平面(在 xz 平面上是平的,y 表示任意点的高度),高度场函数为:
其中: 波长 (w):世界空间中波之间的波峰到波峰的距离。
振幅(A):从水面到波峰的高度。
速度(S):波峰每秒向前移动的距离。
方向(D):垂直于波前行进的水平矢量。
这很容易实现。
请注意 GPUGems 中的文章使用 z 方向作为高度,但这不是图形的标准(通常,x 是宽度,y 是高度,z 是深度)。所以我将参考 xz 方向,意思是平面/水平平面方向。
因此,在计算了任何给定点的高度 (y) 值后,我需要计算该点的双切线和切线向量,以便可以计算出照明方程所需的法线向量。
双切线和切线向量是 x 和 z 方向的偏导数(y 是高度场值)。
所以我的问题是,我怎样才能在 x 和 z 方向上对高度场函数进行偏导数?
文章说x方向的偏导数由下式给出
我理解从这个视频中获取偏导数的概念:,但我不知道如何对我的高度场函数进行偏导数。
有人可以解释一下吗(比如我 5 岁)-我对数学的掌握不是很好!