2015-09-28 24 views
0

請原諒我,如果我提問類似的問題,但我沒有得到正確的答案,或者可能是我無法理解如何實現它 我有在相機前加載HUD我有相機DOF(x,y,z,apha,beta,gamma)我只有這個信息。我如何使用相機自由度來轉換相機前面的HUD。如何在Opengl中始終保持相機前面的東西(HUD)

 float x = eye[ 0 ].X()+ 0.465; 
     float y = eye[ 0 ].Y()+ 1.0; //bringing in front of camera 
    float z = eye[ 0 ].Z()- 0.08; 

我加入了幾個幻數到X,Z(上述線),然後HUD是直接在屏幕上,但如果移動相機的HUD中消失了,因爲這些神奇的數字僅是相機位置。我想知道解決的辦法

我的一個朋友告訴我,以下

訂閱攝像機旋轉到HUD_DOF_All所以HUD旋轉面對鏡頭廣場上。

然後在SetInstancePosition中使用eyePos + eyeDir * M 我不知道如何實現,或者它是否屬實。 在此先感謝

+0

HUD是3D對象,我加載了它的2D二維拼寫對象 – Hareem

回答

2

如何使用相機自由度來平移相機前面的平視顯示器。

你在想太複雜:OpenGL只是繪製點,線和三角形。 OpenGL不維護3D場景!

要繪製HUD,只需將其繪製在所需位置即可。您只需設置正確的投影和模型視圖轉換,即可將HUD置於屏幕的所需位置。如果您使用可編程管線(着色器),則可以設置適當的制服。如果您使用固定功能管道,請設置新的HUD適當的投影和模型視圖矩陣,然後繪製HUD。

相關問題