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