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


Автор: Egnech 31.10.2007, 01:56
Всем привет! Есть огромное желание научиться кодить OpenGL'ные приложения на Яве. Но ощущается острая нехватка нужного количества информации. В основном всё что я находил идет под С++, что как я понимаю неподходит в данном случае. Но ведь люди как-то учатся! =) Поэтому прошу подсказать какие-то книги или уроки по этому делу.
Заранее спасибо!
ЗЫ. Еще было бы прикольно еслибы кто-то поконсультировал по аське... хотя это наверно из степени фантастики  smile 

Автор: Goganchic 31.10.2007, 09:08
Egnech, а со скорость рабты проблем не будет?

Вот что я нашел по этому вопросу:
http://www.codenet.ru/webmast/java/opengl.php
http://www.javaworld.com/javaworld/jw-05-1999/jw-05-media.html
https://jogl.dev.java.net/

Добавлено через 6 минут и 47 секунд
А еще неплохо было бы научиться юзать поиск форума smile
http://forum.vingrad.ru/forum/topic-161042/kw-opengl-java-jogl.html

Автор: LSD 31.10.2007, 12:42
Поищи книгу - Pro Java 6 3D Game Development, Java 3D, JOGL, JInput, and JOAL APIs - Andrew Davison.

Автор: Egnech 31.10.2007, 13:20
Goganchic, а что вы подразумеваете под проблемами со скоростью работы?

Добавлено через 2 минуты и 21 секунду
Забыл сказать, в приложениях хочю использовать jogl (он вроде самый быстрый на данный момент?)

Автор: hydrant 31.10.2007, 13:25
Привет!

Рекомендую начать с LWJGL - http://lwjgl.org/demos.php

По сути это просто враппер для нативных библиотек без навороченного фремворка, который в начале может только помешать.

Главный минус - практически полность отсутствующая документация, но т.к. LWJGL является просто обёрткой opnegl библиотек, то можно пользоваться литературой непосредственно для opengl, вот, например - http://www.opengl.org.ru/books/open_gl/

Автор: Egnech 31.10.2007, 13:29
LSD, она на английском.. это конечно не самая  большая проблема. Но для новичка это будет сложно я думаю..

Добавлено через 14 минут и 49 секунд
hydrant, спасибо за ссылку на инфу по OpenGL.

Автор: mantracoder 31.10.2007, 14:06
Есть готовый движок:  http://jmonkeyengine.com/

Автор: Egnech 1.11.2007, 19:12
Готовый движок - неинтерестно =) Темболее все равно, что бы на нем что-то написать нада знать OpenGL. 

Автор: LSD 2.11.2007, 18:01
По поводу производительности, на JOGL написан http://bytonic.de/html/jake2.html.

Автор: Hidrag 6.11.2007, 12:14
Статик довольно внятно все расписал, научись пользоваться поиском!
http://forum.vingrad.ru/forum/topic-161042/kw-opengl-java-jogl.html

Автор: Egnech 7.11.2007, 00:02
LSD, я думаю Ку2 это не предел не для JOGL'a ни для JAVA'ы. 
Hidrag, эту статью я прочитал когда ещё только задумался о том, что порабы OpenGL выучить. Там только расказывается о существующих технологиях.

Автор: Egnech 8.11.2007, 00:53
Всем привет!
Вопросс возник, почемуто неработает gl.glcolor3d (); Какие бы параметры не задавал, цвет фигуры(серый) неменяется. Что я нетак делаю.
Вот пример кода:

Код

package Metods;    
import com.sun.opengl.util.GLUT;    
import java.util.Date;
import javax.media.opengl.GL;    
import javax.media.opengl.GLAutoDrawable;    
import javax.media.opengl.GLEventListener;    
import javax.media.opengl.glu.GLU;    

public class Renderer implements GLEventListener {    
    public static int time=1;    
    public Renderer() {    
    }    
    public void init(GLAutoDrawable drawable) {    
        GL gl = drawable.getGL();    
        GLU glu = new GLU();    
        gl.glClearColor(1f, 1f, 1f, 0f);    
        gl.glClearDepth(1f);    
        gl.glDepthFunc(GL.GL_LESS);    
        gl.glEnable(GL.GL_DEPTH_TEST);    
        gl.glShadeModel(GL.GL_SMOOTH);    
        gl.glMatrixMode(GL.GL_PROJECTION);    
        gl.glLoadIdentity();    
        glu.gluPerspective(45f, 4f/3f, 0.1f, 100f);    
        gl.glMatrixMode(GL.GL_MODELVIEW);
        gl.glEnable(GL.GL_LIGHTING);    
        gl.glEnable(GL.GL_LIGHT0);    
        gl.glLightfv(GL.GL_LIGHT0, GL.GL_DIFFUSE, new float[]{1f, 1f, 1f, 0f}, 0);    
        gl.glLightfv(GL.GL_LIGHT0, GL.GL_POSITION, new float[]{1f, 1f, 1f, 1f}, 1);// исправлено, подробности в обсуждении статьи    
        
  }    
    public void display(GLAutoDrawable drawable) {    
        GL gl = drawable.getGL();
        
        GLUT glut = new GLUT();    
        gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);    
        gl.glLoadIdentity();
        //time ++;
        gl.glTranslated (0,0,-5);
        gl.glColor3d (0.75,0.75,0);
        glut.glutSolidTeapot(1);
        
    }    
    public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) {    
    }    
    public void displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged) {    
    }    
     
}


PS. Это пример Статика, эксперементирую на нем=)

Автор: $tatic 8.11.2007, 15:17
Egnech, glColor3d не будет работать, поскольку включено освещение (GL_LIGHTING). В этом случае необходимо устанавливать параметры материала (glMaterial...).

Автор: Egnech 9.11.2007, 12:01
$tatic, спасибо! 

Автор: Egnech 10.11.2007, 16:39
Чета всеравно не получается. Перед отрисовкой объекта, вставляю gl.glMaterialf (20,20,20f); (значения произвольные), и ничего неменяется.  smile 

Автор: Hidrag 10.11.2007, 17:32
Это уже вопрос по OpenGl имеет смысл его задать в соответствующем разделе, Java тут непричем smile

Автор: Egnech 10.11.2007, 22:37
В как мне добавить в мое OpenGL"ное окошко компоненты Swing, собранные с NetBeans"овском дизайнере?

Автор: AxNe0 13.1.2008, 16:12
Что значит OpenGL'ное окошко? ;)

Автор: Egnech 14.1.2008, 03:08
Я имел ввиду frame =)

Автор: AxNe0 14.1.2008, 13:22
не думаю, что смешивание awt и swing в одном окне - хорошая идея. В основе их работы лежат разные принципы, поэтому могут возникнуть проблемы с отрисовкой и скоростью работы. Почему бы не использовать "чистый" awt?

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