我正在研究一种方法来逼近 3d 体素图像表面的法线。
本文中建议的方法(我通过谷歌找到的唯一算法)似乎有效。论文中建议的方法是找到曲面变化最大的方向,使用一些程序在切平面上选择 2 个点,然后取叉积。文章作者 code 的一些Pascal 代码,用葡萄牙语注释,实现了这个方法。
但是,使用 f 的梯度(使用每个偏导数作为向量的一个分量)作为法线似乎效果很好;我在一个体素球体上沿着几个圆圈进行了测试,我得到的结果在大多数地方看起来都是正确的(有一些异常值偏离了大约 30 度)。这与论文中使用的方法有很大不同,但它仍然有效。我不明白的是为什么沿物体表面计算的 f = 1/dist 的梯度应该产生法线。
为什么这个程序有效?仅仅是球体测试过于特殊的事实吗?您能否提出一个更简单的方法,或解释其中任何一种方法?