gpt4 book ai didi

c++ - opengl过剩使hud

转载 作者:太空宇宙 更新时间:2023-11-04 15:47:39 24 4
gpt4 key购买 nike

我正在创建一个 3d 小行星游戏,您可以在其中驾驶宇宙飞船穿过一些小行星。当我单击小行星时,我会摧毁它,我希望在小行星被摧毁之前添加一个 HUD,就像您在科幻电影中看到的那样目标锁定之类的东西。所以选择小行星,为平视显示器设置动画,摧毁小行星。实现这一目标的最佳方法是什么?我应该简单地创建一些平面并仅在需要时使它们可见,还是有另一种方法,例如当您创建文本并设置新投影以在主窗口上渲染文本时。

最佳答案

哇,哇,你在这里同时解决了几个问题。

首先,您必须确定小行星在屏幕上的位置(可能还有边界)。您可以通过在小行星的重心位置上模仿顶点变换管道来做到这一点。通常的方法是

 p_clip = Projection · (Modelview · p)
p_ndc = p_ndc / p_ndc.w

绘制 HUD 叠加层需要消除新的误解。如果您遵循了其中一个常见的糟糕教程,那么您将在窗口 reshape 功能中找到投影矩阵设置。那不是它所属的地方。

如果将整个视口(viewport)和投影设置放入绘图函数中,事情就会变得显而易见。您可以根据需要随时设置和重置视口(viewport)和投影。所以首先使用您通常的投影和视口(viewport)设置绘制场景。 然后您清除深度缓冲区并切换到适合渲染叠加层的投影。

关于c++ - opengl过剩使hud,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14005957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com