如何在Opengl中始终在相机前保留一些东西(HUD)

时间:2015-09-28 13:06:03

标签: opengl camera

原谅我,如果我问类似的问题,但我得不到正确的答案,或者我可能无法理解如何实施它 我必须在相机前加载HUD我有相机DOF(x,y,z,apha,beta,gamma)我只有这个信息。如何使用相机DOF在相机前翻译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. 我不知道如何实现这一点,或者它是否属实。 提前致谢

1 个答案:

答案 0 :(得分:2)

  

如何使用相机DOF在相机前翻译HUD。

你认为太复杂了:OpenGL只绘制点,线和三角形。 OpenGL不维护3D场景!

要绘制HUD,只需在所需位置绘制即可。您这样做只需设置正确的投影和模型视图转换,将HUD放在屏幕的所需位置。如果您正在使用可编程管道(着色器),则可以设置相应的制服。如果使用固定功能管道,请设置新的HUD相应投影和模型视图矩阵,然后绘制HUD。