Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Пролейте пож свет на несколько вещей о JOGL?


Автор: Killer_13 15.10.2011, 11:57
Вот читаю, что все функции 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");
    }
}

Автор: Domain 24.11.2011, 22:44
По первому вопросу тут http://download.java.net/media/jogl/jogl-2.x-docs/javax/media/opengl/package-summary.html


По второму : http://www.rsdn.ru/article/opengl/ogltut2.xml

Автор: Amp 25.11.2011, 12:56
Цитата(Killer_13 @  15.10.2011,  11:57 Найти цитируемый пост)
И что значат GL,GLU,GLUT - не могу найти где все четко описано.

GL - это интерфейс, который реализует поддержку OpenGL, контекста и расширений соответствующих версий. 
GLU позволяет получить доступ к функциям одноименной библиотеки. Библиотека носит утилитарный характер, поэтому вполне можно обходиться без нее.
GLUT обеспечивает доступ к другой, опять же утилитарной библиотеке GLUT. Выкинуты функции связанные с созданием и управлением окнами, т.к. это не нужно. Оставлены функции типа отрисовки чайника.

Цитата(Killer_13 @  15.10.2011,  11:57 Найти цитируемый пост)
Как понимать GL, GL2, GL4 и так д.. Это версии? Как ими пользоваться?

Интерфейсы, реализующие функционал указанных версий OpenGL. Как пользоваться - написано в примерах и документации. GL2 на первых порах хватит за глаза.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)