原谅我,如果我问类似的问题,但我得不到正确的答案,或者我可能无法理解如何实施它 我必须在相机前加载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. 我不知道如何实现这一点,或者它是否属实。 提前致谢
答案 0 :(得分:2)
如何使用相机DOF在相机前翻译HUD。
你认为太复杂了:OpenGL只绘制点,线和三角形。 OpenGL不维护3D场景!
要绘制HUD,只需在所需位置绘制即可。您这样做只需设置正确的投影和模型视图转换,将HUD放在屏幕的所需位置。如果您正在使用可编程管道(着色器),则可以设置相应的制服。如果使用固定功能管道,请设置新的HUD相应投影和模型视图矩阵,然后绘制HUD。