我试图实现一个简单的水模拟,理论来自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) - 我对数学的掌握并不好!
感谢这么多的全面的答案:):
类似地,二重(相对于到z衍生物)可以通过
因此被描述 – fishfood