Upload
pauline-franklin
View
224
Download
0
Embed Size (px)
DESCRIPTION
What is Jogl It is a wrapper graphics library that allows OpenGL to be used in Java. Some online demos: – https://jogl-demos.dev.java.net/https://jogl-demos.dev.java.net/ worldbuilder/
Citation preview
Introduce Jogl
Outline• What is Jogl• Jogl coding template• Create a GLPanel• Draw a 2D object on GLPanel• Draw texts on GLPanel• Draw a 3D object on GLPanel
What is Jogl• It is a wrapper graphics library that allows
OpenGL to be used in Java.• Some online demos:
– https://jogl-demos.dev.java.net/
http://www.codededge.com/elflightengine/tools/worldbuilder/ http://bytonic.de/html/screenshots_0.html
Jogl coding templateJFarme
GLPanel
+ GLEventListener
init()display()reshape()displayChanged()
Your drawing functions, used in display()
drawA2DBall()drawA3DSphere()drawText()
Create a GLPanelpublic class JOGL3DBasics { JOGLDemo() { GLJPanel panel = getGLJPanel(); panel.addGLEventListener(new MyGLEventListener()); JFrame frame = new JFrame(); frame.getContentPane().add(panel); }
class MyGLEventListener { void init() {…} void display() {…} void reshape() [] {…} void displayChanged() {…} }
public static void main() { // create a JOGL3DBasics object }} // end of class
Draw a 2D objectvoid draw2DObject(GL gl) { gl.glColor3f(1, 0, 0); gl.glRecti(-SIZE / 2, -SIZE / 2, SIZE / 2, SIZE / 2);}
void display(GLAutoDrawable drawable) { GL gl = drawable.getGL(); gl.glClear(GL.GL_COLOR_BUFFER_BIT); // clean panel draw2DObject(gl);}
Draw textsCreate a TextRenderer object, called renderer.
void drawTexture(GLAutoDrawable drawable) { renderer.beginRendering(drawable.getWidth(), drawable.getHeight()); renderer.setColor(1.0f, 0.1f, 0.8f, 0.8f); renderer.draw("Jogl Demo for CPSC 332", 80, 60); renderer.endRendering();}
Draw a 3D objectCreate a TextRenderer object, called renderer.
void drawTexture(GLAutoDrawable drawable) { renderer.beginRendering(drawable.getWidth(), drawable.getHeight()); renderer.setColor(1.0f, 0.1f, 0.8f, 0.8f); renderer.draw("Jogl Demo for CPSC 332", 80, 60); renderer.endRendering();}
Put them all together
Animate them
Questions?