Вот читаю, что все функции 1 в 1 похожи с с++, брал примеры - не работают. Нашел примеры именно по JOGL но в офф документации, не видать даже таких функций - не понимаю. Вот например кусочек кода - нарисовать треугольник
| Код | public void display(GLAutoDrawable drawable) { // Write triangle. GL gl = drawable.getGL(); gl.glColor3f(0.9f, 0.5f, 0.2f); gl.glBegin(GL.GL_TRIANGLE_FAN); gl.glVertex3f(-20, -20, 0); gl.glVertex3f(+20, -20, 0); gl.glVertex3f(0, 20, 0); gl.glEnd(); }
|
смотрел здесь http://www.land-of-kain.de/docs/jogl/
Так в офф документации даже нету таких функций, не понимаю. :( gl не знает ни glColor3f ни glBegin и так д..
Как это понимать?
И что значат GL,GLU,GLUT - не могу найти где все четко описано.
Подскажите пож нормальную статью для начинающих.
Версия JOGL jogl-2.0-b17-20101214-windows-amd64
Добавлено через 11 минут и 22 секунды Ничего не понимаю, - этот пример работает.
Может проблема с импортом? Как понимать GL, GL2, GL4 и так д.. Это версии? Как ими пользоваться?
| Код | import javax.media.opengl.GL2; import javax.media.opengl.GLAutoDrawable; import javax.media.opengl.GLEventListener; import javax.media.opengl.glu.GLU; class Renderer implements GLEventListener { private GLU glu = new GLU(); public void display(GLAutoDrawable gLDrawable) { final GL2 gl = gLDrawable.getGL().getGL2(); gl.glClear(GL2.GL_COLOR_BUFFER_BIT | GL2.GL_DEPTH_BUFFER_BIT); gl.glLoadIdentity(); gl.glTranslatef(-1.5f, 0.0f, -6.0f); gl.glBegin(GL2.GL_TRIANGLES); gl.glVertex3f(0.0f, 1.0f, 0.0f); gl.glVertex3f(-1.0f, -1.0f, 0.0f); gl.glVertex3f(1.0f, -1.0f, 0.0f); gl.glEnd(); gl.glTranslatef(3.0f, 0.0f, 0.0f); gl.glBegin(GL2.GL_QUADS); gl.glVertex3f(-1.0f, 1.0f, 0.0f); gl.glVertex3f(1.0f, 1.0f, 0.0f); gl.glVertex3f(1.0f, -1.0f, 0.0f); gl.glVertex3f(-1.0f, -1.0f, 0.0f); gl.glEnd(); gl.glFlush(); } public void displayChanged(GLAutoDrawable gLDrawable, boolean modeChanged, boolean deviceChanged) { System.out.println("displayChanged called"); } public void init(GLAutoDrawable gLDrawable) { System.out.println("init() called"); GL2 gl = gLDrawable.getGL().getGL2(); gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); gl.glShadeModel(GL2.GL_FLAT); } public void reshape(GLAutoDrawable gLDrawable, int x, int y, int width, int height) { System.out.println("reshape() called: x = "+x+", y = "+y+", width = "+width+", height = "+height); final GL2 gl = gLDrawable.getGL().getGL2(); if (height <= 0) // avoid a divide by zero error! { height = 1; } final float h = (float) width / (float) height; gl.glViewport(0, 0, width, height); gl.glMatrixMode(GL2.GL_PROJECTION); gl.glLoadIdentity(); glu.gluPerspective(45.0f, h, 1.0, 20.0); gl.glMatrixMode(GL2.GL_MODELVIEW); gl.glLoadIdentity(); } public void dispose(GLAutoDrawable arg0) { System.out.println("dispose() called"); } }
|
|