JOGL - Dasar-dasar Menggambar
OpenGL API telah menyediakan metode primitif untuk menggambar elemen grafis dasar seperti titik, titik, garis, dll. Dengan menggunakan metode ini, Anda dapat mengembangkan bentuk seperti segitiga, poligon, dan lingkaran. Baik dalam dimensi 2D maupun 3D. Bab ini mengajarkan Anda cara menggambar garis dasar menggunakan JOGL dalam program Java.
Menggambar Objek
Untuk mengakses program yang khusus untuk perangkat keras dan platform sistem operasi dan di mana perpustakaan ditulis dalam bahasa lain seperti C dan C ++ (aplikasi asli), Java menggunakan kerangka kerja pemrograman yang disebut Java Native Interface (JNI). JOGL menggunakan antarmuka ini secara internal untuk mengakses fungsi OpenGL seperti yang ditunjukkan pada diagram berikut.
Keempat metode GLEventListenerantarmuka memiliki kode (metode java JOGL) untuk memanggil fungsi OpenGL secara internal. Penamaan metode JOGL tersebut juga mirip dengan konvensi penamaan OpenGL. Jika nama fungsi di OpenGL adalahglBegin(), itu digunakan sebagai gl.glBegin().
Kapanpun gl.glBegin() metode java JOGL disebut, itu secara internal memanggil glBegin()metode OpenGL. Inilah alasan untuk menginstal file pustaka asli pada sistem pengguna pada saat menginstal JOGL.
Metode Display ()
Ini adalah metode penting yang menyimpan kode untuk mengembangkan grafik. Itu membutuhkanGLAutoDrawable objek antarmuka sebagai parameternya.
Itu display()Metode awalnya mendapat konteks OpenGL menggunakan objek antarmuka GL (GL mewarisi antarmuka GLBase yang berisi metode untuk menghasilkan semua objek konteks OpenGL). Karena tutorial ini tentang JOGL2, mari kita buat objek GL2.
Cuplikan kode berikut menunjukkan cara menghasilkan Objek GL2 -
//Generating GL object
GL gl = drawable.getGL();
GL gl = drawable.getGL();
//Using this Getting the Gl2 Object
//this can be written in a single line like
final GL2 gl = drawable.getGL().getGL2();
Menggunakan objek antarmuka GL2, seseorang dapat mengakses anggota antarmuka ini, yang pada gilirannya menyediakan akses ke fungsi OpenGL [1.0 ... 3.0].
Menggambar Garis
Antarmuka GL2 berisi daftar besar metode tetapi di sini tiga metode penting utama dibahas yaitu glBegin(), glVertex(), dan glEnd().
Sr.No. | Metode dan Deskripsi |
---|---|
1 | glBegin() Metode ini memulai proses menggambar garis. Dibutuhkan bilangan bulat string "GL_LINES" yang telah ditentukan sebagai parameter, yang diwarisi dari antarmuka GL. |
2 | glVertex3f()/glVertex2f() Metode ini membuat simpul dan kita harus melewatkan koordinat sebagai parameter 3f dan 2f, yang masing-masing menunjukkan koordinat titik mengambang 3 dimensi dan koordinat titik mengambang 2 dimensi. |
3 | glEnd() mengakhiri garis |
Di bawah ini diberikan adalah program untuk menggambar garis dasar menggunakan JOGL -
import javax.media.opengl.GL2;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCapabilities;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.GLProfile;
import javax.media.opengl.awt.GLCanvas;
import javax.swing.JFrame;
public class Line implements GLEventListener {
@Override
public void display(GLAutoDrawable drawable) {
final GL2 gl = drawable.getGL().getGL2();
gl.glBegin (GL2.GL_LINES);//static field
gl.glVertex3f(0.50f,-0.50f,0);
gl.glVertex3f(-0.50f,0.50f,0);
gl.glEnd();
}
@Override
public void dispose(GLAutoDrawable arg0) {
//method body
}
@Override
public void init(GLAutoDrawable arg0) {
// method body
}
public static void main(String[] args) {
//getting the capabilities object of GL2 profile
final GLProfile profile = GLProfile.get(GLProfile.GL2);
GLCapabilities capabilities = new GLCapabilities(profile);
// The canvas
final GLCanvas glcanvas = new GLCanvas(capabilities);
Line l = new Line();
glcanvas.addGLEventListener(l);
glcanvas.setSize(400, 400);
//creating frame
final JFrame frame = new JFrame ("straight Line");
//adding canvas to frame
frame.getContentPane().add(glcanvas);
frame.setSize(frame.getContentPane().getPreferredSize());
frame.setVisible(true);
}//end of main
}//end of classimport javax.media.opengl.GL2;