Bilgisayar Grafikleri OPENGL
Kurulum glut32.lib -> …/Microsoft Visual Studio/VC/lib glut.h -> …/VC/include/GL #include <GL/gl.h> #include <GL/glu.h> #include <GL/glut.h> glut32.dll -> …/Windows/System32
Grafik Yazılımları OpenGL VRML Java2D, Java3D
Sağ el, kartezyen koordinat sistemi Koordinat Gösterimi Sağ el, kartezyen koordinat sistemi
Sol el, kartezyen koordinat sistemi
GLU (OpenGL Utility) GLUT(OpenGL Utility Toolkit)
GLUT GLUT ilk kullanıma hazır hale getirilir. glutInit (&argc, argv); Önceden belirlenen bir başlık adı ile ekran üzerinde bir görüntü penceresi oluşturulur. glutCreateWindow (“hello”); Görüntü-penceresinin ne içereceği belirtilir. glutDisplayFunc (display); Tüm görüntü pencereleri aktif olur. Pencere süreci tamamlanır. glutMainLoop();
Görüntü-penceresinin konum ve ebatları glutInitWindowPosition(); Görüntü penceresinin boy ve yüksekliği (pixel cinsinden) glutInitWindowSize();
Görüntü penceresi için ara bellek kullanımı, renk modeli seçimi glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); Görüntü penceresi için RGB renk değerleri ve zemin rengi glClearColor (1.0,1.0,1.0,0.0); Var olan zemin rengini silmek glClear (GL_COLOR_BUFFER_BIT); Sahne içinde görüntülenecek olan nesnelerin renkleri glColor3f (1.0, 0.0, 0.0); OpenGL ‘e oluşan resmin görüntü penceresi üzerine olan izdüşümü glMatrixMode (GL_PROJECTION); gluOrtho2D (0.0,200.0,0.0,150.0);
Görüntü-penceresi içinde yer alacak olan nesneyi oluşturmak Görüntü-penceresi içinde yer alacak olan nesneyi oluşturmak. Örneğin bir doğru parçası: glBegin (GL_LINES); glVertex2i (180, 15); glVertex2i (10, 145); glEnd (); ….Tüm çalıştırılmayan OpenGL komutlarının çalıştırılması sağlanır. glFlush();
glBegin(); GL_POINTS Verilen noktaları nokta olarak çizer. GL_LINES Verilen noktaları doğrularla birleştirir. GL_POLYGON Verilen noktaları doğrularla birleştirir ve oluşan şeklin içini renklendirir. GL_QUADS Verilen dört noktadan içi boyanmış dörtgen oluşturur. GL_TRIANGLES Verilen üç noktadan içi boyanmış üçgen oluşturur. GL_TRIANGLE_STRIP Şu noktalar glBegin ve glEnd arasında çizdirilmiş olsun: p0, p1, p2, p3, p4, p5. p0, p1 ve p2'den bir üçgen oluşturulur ve sonraki her nokta için önceki iki nokta birleştirilerek bir üçgen daha oluşturulur. Yani p3 ile p1 ve p2 birleştirilir. Daha sonra p4 ile p3 ve p2, ... vs. GL_QUAD_STRIP GL_TRIANGLE_STRIP gibi çalışır, ama bu sefer verilen iki noktayı önceki iki nokta ile birleştirerek bir dörtgen oluşturur. GL_TRIANGLE_FAN p0, p1, p2, p3, p4, p5 verilmiş olsun. p0, p1 ve p2 üçgeni çizilir. Daha sonra p4 için p0 ve p3 birleştirilerek yeni üçgen elde edilir. p5 ile p4 ve p0 birleştirilir, ...vs.
glLineStipple(deger,hex); Cisimleri bulunduğu duruma göre aktif veya pasif duruma getirmek için kullanılır. glEnable(); glDisable(); Kesik çizgi; glLineStipple(deger,hex);
Dönüşümler glScalef(float x,float y,float z); Ölçekleme yapılır. Eğer girilen değerler 1'den küçükse nesneler küçültülür, 1'den büyükse nesneler büyütülür. glLoadIdentity (); Yapılmış tüm dönüşümlerin geri alınmasını sağlar (resetlenir), cisimden istenen görüntü alınır. glTranslatef(float x,float y,float z); Cismi sahnenin herhangi bir yerine taşımak için kullanılır.