2011-05-11 68 views
0

我有一個虛擬的風景,可以在第一人稱中漫步。如果45度或更少,我想能夠爬上任何斜坡。據我所知,這涉及到將你當前的位置翻譯出x個單位,然後找出翻譯後的點與地面之間的距離。如果該距離是x單位或更多,則用戶可以走到那裏。如果不是,用戶不能。我不知道如何找到一個點與y軸負方向上最近點之間的距離。我已經在Java3D中編寫了這個程序,但是我不知道如何在OpenGL中對它進行編程。OpenGL找到一個點的距離

+3

這看起來像一個幾何問題而不是OpenGL – geofftnz 2011-05-11 01:40:58

回答

2

在OpenGL中咆哮這個問題是吠叫錯誤的樹:OpenGL的唯一目的是繪製漂亮的圖片到屏幕上。這不是一個數學庫!

根據您的要求,有幾種解決方案。這就是我如何解決這個問題:你計算正常陰影的法線會給你每個點的斜率。假設你的高度圖(=地形)在XY平面上,而你的重力矢量g = -Z,那麼正常的力terrain_normal(x,y) · g。正常的力量是,「推動」你的腳靠在地面上。沒有足夠的正常力量,沒有足夠的摩擦力將肌肉力量轉化爲垂直於地面的運動。如果您查看法向力公式,您可以看到gterrain_normal(x,y)之間的角度偏差越大,法向力越小。

因此,在您的程序中,您可以簡單地測試法向力是否超過某個閾值;正確的,你會將超強的摩擦力投射到地形上,並將其用作加速度矢量。

相關問題