2
我目前转换的三维坐标的对象,以二维坐标,然后绘制在他们2D文本(目前,对象名):如何停止3D转换为2D坐标,在另一侧创建“鬼”坐标?
public static int[] getScreenCoords(double x, double y, double z) {
FloatBuffer screenCoords = BufferUtils.createFloatBuffer(4);
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 int[] { (int) screenCoords.get(0), (int) screenCoords.get(1)};
}
return null;
}
这正常工作。名称成功放置在对象上方。
的问题是,如果我看上去在相反的方向,我看到的另一面“幽灵”的名字:
我怎样才能阻止这个问题?有什么方法可以检测到我是否正在远离它们而不渲染它们?
@BeyelerStudios谢谢你,你的建议是正确的,它解决了这个问题。只是我期待的优雅解决方案! – Joehot200