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.