yeni baslayanlar icin nagmeler – Opengl – Linux

Oncelikle Windows sevmedigimizden Ubuntu’muza asagidaki komutlarla opengl, GLU ve glut sdk lerini kuralim. Tabiki apt-get ile;
$sudo apt-get build-essentials
$sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev libglut3-dev

Onumuze cikan dependency sorularina evet herseyi kabul ediyorum felan seklinde cevaplar vereceksiniz ama tutup onemli dependency leri kaldirmayin, misal ubuntu desktop un bagimli oldugu biseyle cakisiyordur paketiniz, mazallah aksam aksam kriz gecirmeyin bilgisayar onunde, zaten bu tutorial i okuyorsaniz bisey bilmiyorsunuz demektir,  geri de alamazsiniz, mundar olur canim kurulum .

Kucuk Bir Baslangic

glClearColor(0.0, 0.0, 0.0, 0.0);  // Temizleme icin kullanilacak rengi set eder
glClear(GL_COLOR_BUFFER_BIT); // Onceden set edilmis temizleme rengiyle arguman olarak verilmis buffer i doldurur. Burada o sansli buffer renk bufferi oluyor.

Goruldugu gibi ilk once renk tanimlamasi yapiliyor, sonrasinda ise islem yapiliyor. OpenGl de isleyis boyledir.

Point, Line, Polygon Nedir ?

Muhakkak yukaridaki degimleri hatirliyorsunuzdur ama opengl de isler biraz daha farkli. Points yani turkcede noktalar opengl de vertex/kose denilen floating point setlerle ifade edilir. Line yani dogru sadece bir dogru parcasini ifade eder, iki ucu sonsuza giden dogruyu degil. Polygon ise basitce koseleri kendini saran dogru parcalarinin uc noktalari olan alana denir. Opengl de polygon lar icin bircok kisitlama vardir.

Basit bir program yazarsak eger ;

#include <GL/glut.h>
#include <stdlib.h>
void display(void)

{

/* Arka plani init fonksiyonunda set ettigimiz renkle doldur  */
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (1.0, 1.0, 1.0);
glBegin(GL_POLYGON);    // GL_POINTS, GL_LINES, GL_LINE_LOOP,  GL_TRIANGLE,  GL_TRIANGLE_LOOP gibi degerlerle farkli sekiller elde etmek mumkun

glVertex3f (0.35, 0.35, 0.0);
glVertex3f (0.85, 0.35, 0.0);
glVertex3f (0.85, 0.85, 0.0);
glVertex3f (0.35, 0.85, 0.0);

glEnd();
/* OpenGL rutinlerini beklemeden isleme koyar  */
glFlush ();

}

void init (void)

{

glClearColor (0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0,  0.0, 0.0);

}

int main(int argc, char** argv)
{

glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (300, 300);
glutInitWindowPosition (50, 100);
glutCreateWindow (“Cumleten Merhaba”);
init ();
glutDisplayFunc(display);
glutMainLoop();
return 0;

}


BU BLOG ICERIGINDE YAZILAN HICBIR SEY ICIN GARANTI VERMIYORUM. ANLAMAYANLAR ICIN COK GUZEL INGILIZCE MEALI ASAGIDADIR. SIKINTI DURUMUNDA BENIMLE ILETISIME GECMEYINIZ. MAKUS TALIHINIZE BOYUN EGINIZ.

HERE IS ABSOLUTELY NO WARRANTY FOR THIS TUTORIAL/BLOG/LIFE/. DO NOT THINK THAT I AM THE PERSON YOU WANT TO BE. I AM NOT SUCH A PERSON.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s