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