BilgGrafikleri

Download Report

Transcript BilgGrafikleri

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
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. Ö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.
• 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.