【发布时间】:2021-01-03 14:26:41
【问题描述】:
我正在尝试在 LWJGL 3 中将 3d 矢量转换为 2d 矢量。 目标是在 3d 世界中移动时在 2d 屏幕上呈现名称标签。
这是我在 LWJGL 2 上使用的:
public static Vector2d to2D(double x, double y, double z) {
FloatBuffer screenCoords = BufferUtils.createFloatBuffer(3);
IntBuffer viewport = BufferUtils.createIntBuffer(16);
FloatBuffer modelView = BufferUtils.createFloatBuffer(16);
FloatBuffer projection = BufferUtils.createFloatBuffer(16);
GL11.glGetFloat(GL11.GL_MODELVIEW_MATRIX, modelView);
GL11.glGetFloat(GL11.GL_PROJECTION_MATRIX, projection);
GL11.glGetInteger(GL11.GL_VIEWPORT, viewport);
boolean result = GLU.gluProject((float) x, (float) y, (float) z, modelView, projection, viewport, screenCoords);
if (result) {
return new Vector2d(screenCoords.get(0), Display.getHeight() - screenCoords.get(1));
}
return null;
}
在 LWJGL 2 中,使用 GLU.gluProject() 是可行的,现在已删除,在新的 LWJGL 版本中是否有任何替代方案?
【问题讨论】: