OpenGL (Open Graphics Library) adalah spesifikasi standar yang mendefinisikan sebuah cross-bahasa, cross-platform API untuk menulis aplikasi yang menghasilkan komputer 2D dan 3D grafis. Antarmuka terdiri dari lebih dari 250 panggilan fungsi yang berbeda yang dapat digunakan untuk menggambar tiga dimensi yang kompleks adegan-adegan dari primitif sederhana. OpenGL dikembangkan oleh Silicon Graphics Inc (SGI) pada tahun 1992 [2] dan secara luas digunakan dalam CAD, virtual reality, visualisasi ilmiah, visualisasi informasi, dan simulasi penerbangan. Hal ini juga digunakan dalam video game, di mana bersaing dengan Direct3D on Microsoft Windows platform (lihat vs OpenGL Direct3D). OpenGL dikelola oleh sebuah teknologi nirlaba konsorsium yaitu Khronos Group.
OpenGL adalah suatu library grafis standard yang digunakan untuk keperluan-keperluan
pemrograman grafis. Selain OpenGL, library grafis yang banyak digunakan adalah DirectX.
OpenGL bersifat Open-Source, multi-platform dan multi-language. Saat ini semua bahasa pemrograman mendukung OpenGL. Dan OpenGL bisa bekerja dalam lingkungan Windows, Unix, SGI, Linux, freeBSD dll.
Untuk dapat membuat konsep windowing pada OpenGL, kita memerlukan tool tertentu.
Berikut adalah contoh gambar sederhana yang dibuat dengan visual studio c++ :
// garis.cpp : Defines the entry point for the console application.
//
#include “stdafx.h”
#include “glut.h”
void Draw() {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 0.0, 1.0);
glBegin(GL_LINES);
glVertex3f(0.2, 0.2, 0.0);
glVertex3f(0.2, 0.5, 0.0);
glVertex3f(0.2, 0.2, 0.0);
glVertex3f(0.8, 0.5, 0.0);
glVertex3f(0.2, 0.5, 0.0);
glVertex3f(0.8, 0.8, 0.0);
glVertex3f(0.8, 0.5, 0.0);
glVertex3f(0.8, 0.8, 0.0);
glEnd();
glFlush();
}
void Initialize() {
glClearColor(1.0, 1.0, 1.0, 1.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
int main(int iArgc, char** cppArgv) {
glutInit(&iArgc, cppArgv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(250, 250);
glutInitWindowPosition(200, 200);
glutCreateWindow(“Garis”);
Initialize();
glutDisplayFunc(Draw);
glutMainLoop();
return 0;
}