OpenGL İsim Dizisi

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.

LEAVE A RESPONSE

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir