OpenGL找到到点的距离

| 我有一个虚拟的环境,能够以第一人称视角走动。我希望能够在45度以下的任何坡度上行走。据我所知,这涉及将当前位置转换为x单位,然后找到平移点与地面之间的距离。如果该距离等于或大于x单位,则用户可以走到那里。如果不是,则用户不能。我不知道如何找到负y方向上一个点与最近点之间的距离。我已经在Java3D中对此进行了编程,但是我不知道如何在OpenGL中进行编程。     
已邀请:
在OpenGL上解决这个问题是在树错了头:OpenGL的唯一目的是在屏幕上绘制漂亮的图片。它不是数学库! 根据您的要求,有几种解决方案。这就是我要解决的问题:为适当的阴影计算的法线会为您提供每个点的斜率。假设您的高度图(=地形)在XY平面中,并且重力矢量为
g = -Z
,那么法向力为
terrain_normal(x,y) · g
。法向力是将脚“推”到地面上的力。没有足够的法向力,就没有足够的摩擦力将您的肌肉力传递到垂直于地面的运动中。如果看法向力公式,您会发现
g
terrain_normal(x,y)
之间的角度偏差越大,法向力越小。 因此,在您的程序中,您可以简单地测试法向力是否超过某个阈值。正确地,您可以将施加的摩擦力投射到地形上,并将其用作加速度矢量。     
如果只有正则三角形的hightmap,则可以使用重心坐标从给定的(X,Y)位置插入Z值。     

要回复问题请先登录注册