簡體   English   中英

第三人稱攝影機背后的數學

[英]Math behind a 3rd person camera

我已經嘗試了一段時間,但似乎找不到關於第三人稱相機的任何信息。 我只想制作一個簡單的第三人稱相機,但是因為我處於3D模式,所以很難。 到目前為止,我可以在1架飛機上拍攝相機,但是之后就搞砸了。 如果有人知道libgdx,我會將libgdx與ModelInstances一起使用。

我不需要您將代碼交給我,我只需要有關如何用我所擁有的信息將其寫出來的幫助。 我知道物體在xy和z上的速度,在xyz上的旋轉以及在xy z上的位置。 我可以使相機看着物體,所以無論物體的朝向如何,我要做的就是將其放在物體的上方和下方。 任何鏈接或解釋都將不勝感激:)


解:
Xoppa在評論中發布了指向他的chaseCam的鏈接,該鏈接擴展了透視凸輪,這太神奇了。 由於這不是一個答案,因此我可以將其標記為已接受,但是它滿足了我的需要。 這是鏈接chaseCamera.java的答案,所有內容都歸功於Xoppa,這使得查找起來更加容易。

更新玩家的位置后,我會在每個幀上執行以下操作:

camera.up.set(0,1,0); //Not sure if this is necessary. 
                      //Making sure up is always up after 
                      //last frame's lookAt() call.
camera.postion.set(player.position)
    .add(-UNITS_BACK, UNITS_UP, 0)
    .rotate(Vector3.UP, player.angle);
camera.lookAt(player.position);
camera.update();

其中player.angle是玩家從X軸面向逆時針的度數。

那是一個簡單的起點。 您可能希望通過限制攝像機的移動速度或對該目標位置和方向進行二次內插運動來平滑運動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM