Yazan : Şadi Evren ŞEKER

OpenGL programlaması sırasında ekrandaki bir nesnenin seçilmesi mümkündür. Bu seçme işlemi sırasında sanki ekranda verilen bir (x,y) koordinatından (ekran 2 boyutlu olduğu için görüntüler 3 boyutluda olsa sonuçları 2 boyutludur (detayı için izdüşüm (projection) konusunu okuyunuz) dolayısıyla sadece x ve y koordinatlarından) ekranda bir ışın fırlatılmış gibi, ışının geçtiği bütün nesnelerin isimlerini almaya yarar.

Dolayısıyla ekrandaki seçilen x,y koordinatında görüntülen bütün nesnelerin isimlerini alan bir isim yığını (stack) openGL’de tanımlıdır. Bu yığının sıfırlanması ve ilk değerini alması aşağıdaki şekilde mümkündür:

glInitNames();
glPushName(0);

glPushMatrix();   // Görüntünün değişmemesi 
// için çizime başlanmadan önceki dönüşümler 
// kaydediliyor 

// ilk neseneye 1 ismi veriliyor ve ilk 
// nesne ekrana çiziliyor
    glLoadName(1);
    ilkNesneyiCiz();
// ikinci nesne benzer şekilde çiziliyor
    glLoadName(2);
    ikinciNesneCiz();
// son nesneyi ciz
    glLoadName(3);
    ucuncuNesneCiz();
// goruntu donusumune geri donuyoruz
glPopMatrix ();

Yukarıda yorumlanmış olarak verilen kodu kullanarak çizim yapmanız ve çizilen nesnelerin isimlerini yığına (stack) koymanız mümkündür.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir