我正在制作一个原型游戏,玩家沿着一系列移动元球的等值面行走。我已经实现了沿着向前和向上矢量的球体行走。为了将它扩展到元球,我需要能够查询任意点到最近表面的方向以及到最近表面的距离,以便在我将他移动到前方之后将玩家捕捉回到表面向量。我可以通过对所有向量进行加权平均来计算方向,但是如何获得距离呢?
我正在使用1 /(x * x + y * y + z * z)函数,我的元球的等值面为1,但我会欣赏任何概括,以便我可以对其他形状使用相同的方法。
答案 0 :(得分:0)
一般情况下,你只需派出你的函数来获得表面上的法线。 Blackpawn有一个很好的解释如何使用您的特定情况here。
一旦你恢复正常,沿着它的方向移动,直到你击中等值面(这是通用的“根”发现)。