簡體   English   中英

攝像機外部對象OpenGL

[英]Object outside camera OpenGL

我正在使用帶有gluPerspective和gluLookAt的透視圖,我有一個對象的x,y世界坐標。 如何確定對象是否在可視區域之外? 請注意,相機始終在移動。

首先要做的事情是:OpenGL沒有相機。 它只是轉換頂點周圍。 而且gluLookAt只是對物體進行變換,這與物體思維相機的運動相反。

Robert Massaioli在第一篇評論中已經給出了解決方案:在OpenGL中,透視變換用平截頭體來描述( gluPerpective只計算平截頭體參數並將這些參數傳遞給glFrustum )。 因此,通過確定對象的平截頭體剔除,即如果它們被剔除,您可以確定它們是否仍然可見。

當你說他們離開相機時你的意思是他們偏離了兩側,因為你正在尋找一個固定的距離? ..或者你的意思是他們只是消失了。

如果是第一種情況(在鏡頭的兩側),您應該能夠根據當前的透視設置計算出需要移動相機的x,y平面的距離。

如果是后一種情況,您可能只需要增加最大Z深度以阻止它們被剔除。

[編輯1]gluPerspective調用中,您可以設置視角和寬高比。 您應該知道飛機的距離以及從中心點到汽車的距離,這樣您就可以獲得所需的所有信息。 剩下的只是一個小三角函數來計算出可見的和不可見的。

[編輯2]我找到了另一個非常有用的教程 ,它描述了你想做的截頭剔除的各種方法。

暫無
暫無

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

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