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.


« OpenGL Nesne Seçimi (Object Picking)   |   Atıf ile Çağırma (Call by Reference) »



Yorumlar

Kullanıcı girişi yaparak ya da zorunlu olan * alanlarını doldurarak yorum yapabilirsiniz.

İsminiz *

Email adresiniz *

Web siteniz

Mesajınızı buraya yazabilirsiniz:

Bu Yazı Hakkında

Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'OpenGL İsim Dizisi' isimli yazı 06 Jan 2009 tarihinde, saat: 12:12 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 629 defa okunmuştur.

Benzer yazıları Bilgisayar Grafiği (Computer Graphics) kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.


Yazarın Kitabı

Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
Yapılan Son Yorumlar
Yakın Yazılar
Bağlantılar