Hoşgeldiniz: OyunYapimi.org
 
Ara
Konular
  Üye Olun!    
Ana Menü
 Ana Sayfa
 Anketler
 Dosyalar
 Dökümanlar
 Forum
 Haber Arşivi
 WWW Linkleri
 Üye Listesi

Forumlar
Forumlarda Arama
 
[ Ara ]
Son yazilanlar

free ebooks - 2004-05-16 14:47 free ebooks...
oyun yazmak için - 2004-05-15 11:13 oyun yazmak için...
Sinus dalgası - 2004-05-14 19:21 Sinus dalgası...
Demosu yakında... - 2004-05-06 15:11 Demosu yakında......
Depth Test - 2004-05-03 20:55 Depth Test...
forum mesajlarini duzenlemek - 2004-05-03 19:34 forum mesajlarini ...
Başka Programlara Erişmek - 2004-05-03 17:44 Başka Programlara ...
Güzel bir e-book bağlantısı.. - 2004-05-03 16:06 Güzel bir e-book b...
Okyanus Dalgasi - 2004-05-03 16:00 Okyanus Dalgasi...
3d Shoot em up - 2004-05-03 15:57 3d Shoot em up...
Esnek Güç - 2004-05-03 13:32 Esnek Güç...
UltimateGameProgramming.com - 2004-05-03 12:29 UltimateGameProgra...
Function Pointer Nedir ne ise yarar - 2004-05-03 01:35 Function Pointer N...


Konu Disi


LAMER - 2004-05-10 01:58 LAMER...
anasafa yok forum var - 2004-05-08 16:01 anasafa yok forum ...
Anasayfa Kapali  Fakat.. - 2004-05-06 15:05 Anasayfa Kapali F...
Texture Arşivi - 2004-05-03 01:39 Texture Arşivi...
Yeni Kitap: Elektronik Hobi - 2004-05-03 00:29 Yeni Kitap: Elektr...
3DTURK - 2004-05-02 23:27 3DTURK...
Online Oyun - 2004-05-02 19:27 Online Oyun...


Splatt Forum

Displaylist Kullanımı

(292 kelime)
(452 okuma)   Yazdırılabilir Sayfa




Displaylist Kullanımı:

Displaylist 'ler uygulamalarımızda bize hızlı işlem yapma olanağı kazandıran oldukça yararlı yapılardır. Basit olarak: bir dizi OpenGL komutunu çalıştırılmak üzere bir displaylist içine toplarsınız ve o listeyi oluşturursunuz. Daha sonra bu displaylist 'i uygulama komutunu her verdiğiniz zaman yaptığınız tüm işlemler hızlı bir biçimde OpenGL sistemi tarafından uygulanır.

Displaylist 'leri kullanmanın şüphesiz en büyük getirisi bize hız kazandırmalarıdır. Örneğin bir dizi OpenGL işlemini (çizim, transformasyon, durum değişimi vb.) devamlı olarak uygulamanız gerektiği durumlarda displaylist 'ler içerisinde bu uygulamayı yaparsanız bu komutların daha hızlı biçimde gerçekleştirildiğini görürsünüz. Çünkü her görüntü oluşturma işlemi sırasında poligon çizimleri ile ilgili emirler ve durum değişikliği komutları OpenGL sisteminde görüntü oluşturma döngüsü içerisinde en baştan işlenmek zorunda olacaktı. Displaylist içerisinde bu komutları verdiğiniz zaman ise, OpenGL sistemi gerekli optimizasyonları yapar ve displaylist 'i uygulama komutu geldiğinde içindeki yönergeleri daha hızlı bir biçimde işler.

Şimdi basit bir örnek ile diplaylist kullanımını görelim. İlk olarak OpenGL sisteminden oluşturacağımız displaylist için kullanacağımız bir tanıtıcı numara (id) istiyoruz.

int id;
id = glGenLists(1);


OpenGL sistemi içerisinde birçok displaylist tanımlayabilirsiniz. Her displaylist diğerinden bir sayı ile ayrılır. Yukarıdaki fonksiyon sistemden böyle bir numara almamızı sağlar. Şimdi ise bu numarayı kullanarak diplaylist oluşturma komutunu verelim:

glNewList(id,GL_COMPILE);

İlk parametre biraz önce aldığımız id değeridir. İkinci parametre ise diplaylist 'in türünü belirtmekte kullanılır. Bu parametre neredeyse tüm pratik kullanımlarda GL_COMPILE şeklinde olmalıdır. Artık sırada displaylist içine istediğimiz OpenGL komutlarını girmeye geldi. Bu komutlar diplaylist çağırıldığı zaman otomatik olarak uygulanacaktır. Biz örneğimizde kırmızı bir üçgen çizdirelim:

glColor3f(1,0,0);
glBegin(GL_TRIANGLES);
        glVertex3f(-0.5,-0.5,0.0);
        glVertex3f(0.5,0.0,0.0);
        glVertex3f(0.0,0.5,0.0);
glEnd();

Son olarak ise diplaylist 'i sona erdiren komutu kullanmalıyız.

glEndList();

Artık displaylist 'imiz oluşturulmuş ve kullanılmaya hazır haldedir. Şimdi programlarınızda bir üçgen çizdirmek istediğiniz herhangi bir yerde glCallList(id); diyerek diplaylist 'i uygulayabilir ve kırmızı üçgeninizi çizdirebilirsiniz. GLUT programlarınızda renderScene() yordamı bu çağırımı yapmanız gereken yerdir.

glCallList(id);

Displaylist 'ler OpenGL uygulamalarınızı daha hızlı hale getirmek için kullanabileceğiniz en basit ve kullanımı kolay yöntemlerden biridir. Özellikle bir seri çizim işlemini birçok defa uygulamanız gerektiği durumlarda diplaylist 'leri kullanmanızı şiddetle tavsiye ederim.

Deniz Aydınoğlu :: 2002 ::
  

[ Geri Dön: OpenGL | Dökümanlar İndeksi ]





Web site Engine's code is Copyright © 2002 by PHP-Nuke. All Rights Reserved. PHP-Nuke is Free Software released under the GNU/GPL license.