Как добавить 2D GUI в 3D в Jogl? - PullRequest
       12

Как добавить 2D GUI в 3D в Jogl?

0 голосов
/ 28 апреля 2019

Я создаю трехмерный мир с Jogl и хочу добавить 2D Gui для телепортации камеры в выбранное положение.

Я попытался вызвать GlLoadIdentity для сброса перевода, затем я использовал Vertex2f, но ничегошоу.Когда я удаляю GLLoadIdentity, в мире всплывает Gui.Я заметил, что это потому, что минимальное расстояние должно быть больше 1. Есть ли другой способ сделать это?

Часть функции отображения:

gl.glClear(GL2.GL_COLOR_BUFFER_BIT | GL2.GL_DEPTH_BUFFER_BIT);
gl.glLoadIdentity();

GL2 gl = drawable.getGL().getGL2();
gl.glRotatef(pitch, 0, 1, 0);
gl.glRotatef(yaw, (float)Math.cos(Math.toRadians(pitch)), 0, (float)Math.sin(Math.toRadians(pitch)));
gl.glTranslatef(x, y, z);
gl.glBegin(GL2.GL_QUADS);

gl.glColor3f(0.2f, 0.8f, 0.2f);

gl.glVertex3f(100, -10, 100);
gl.glVertex3f(100, -10, -100);
gl.glVertex3f(-100, -10, -100);
gl.glVertex3f(-100, -10, 100);

gl.glColor3f(0.0f, 0.0f, 0.0f);

gl.glVertex3f(100, -9.9f, 30);
gl.glVertex3f(100, -9.9f, -30);
gl.glVertex3f(-100, -9.9f, -30);
gl.glVertex3f(-100, -9.9f, 30);

gl.glEnd();

gl.flush();//<==This thing does nothing

gl.glLoadIdentity();//<== It make the gui invisible and the gui float 
                    //in the world when deleted

gl.glColor3f(1f, 1f, 1f);
gl.glBegin(GL2.GL_QUADS);
gl.glVertex2f(0f, 0f);
gl.glVertex2f(0f, 1f);
gl.glVertex2f(1f, 1f);
gl.glVertex2f(1f, 0f);
gl.glEnd();

Gui невидим, но когда яудалить glLoadIdentity (), всплывающее окно в мире

...