Home Index Search Links About Us
[LinuxFocus Image]
[Navegation Bar]
  Duyumlar   Belgelikler   Kurulu�lar  ���tler  

OpenGL Nedir?

Yazar: Miguel Angel Sepúlveda

�eviri: Ay�a Nermin


[OpenGL logo]
Silicon Graphics
OpenGL specs
OpenGL SSS
3Dfx Etkile�imli

Bu yaz� OpenGL ve onun Linux'daki deste�i hakk�nda bir yaz� dizisi ba�latmaktad�r. Yaz�, uygulamalar�na y�ksek performansl� 2D ve 3D grafikler ekleme konusunda bilgi edinmek isteyen programc�lar i�in d���n�lm��t�r.

Hi� ku�kusuz, OpenGL , 2D ve 3D uygulamalar� geli�tirmede �st�n bir API end�strisi olup bilimsel, m�hendislik ve �zel etki geli�tirimlerinde ye�lenen bir platform olan �nl� SGI i� istasyonlar�n� yapan Silicon Graphics IRIS GL-kitapl���'na izleyicisi olabilece�i d���n�lmektedir. SGI, gelecek i�in kolay kullan�ml�, sezgiyle anla��labilen, ta��nabilir ve network uyumlu API yapmak i�in OpenGL'e deneyimleri ile destek olmu�tur. Ayn� zamanda SGI'� a��k sistemlerin �nemini farkettikleri i�in kredilendirebiliriz. Bir�ok yaz�l�m ve donan�m �reticisi geri planda OpenGL'in �zelliklilendirilmesinde rol alm��lard�r. Bu yakla��m nedeniyle, OpenGL uygulamalar�; ki�isel bilgisayarda windows95'den, g�rkemli linux sistemimize, UNIX i� istasyonlar�ndan, anayap� s�perbilgisayarlara, piyasada bulunan t�m platformlara kolayl�kla yerle�tirilebilmektedir. Mimari �nceleme Kurulu  de�i�iklikleri onaylayarak ya da geri �evirerek veya uygunluk testleri �ng�rerek OpenGL �zelliklilendirilmelerini denetim alt�nda tutmaktad�r.

SGI'�n eski IRIS GL-kitapl���n�n tersine, OpenGL taslak olarak platform ve i�letim sisteminden ba��ms�zd�r. Network'u alg�layabildi�i i�in OpenGL uygulamas�n� bir sunumcu ve �o�unlukla grafikleri g�r�nt�le�tiren bir istemciye ay�rmak m�mk�nd�r. OpenGL komutlar�n� network �zerinden sunumcu ve istemci aras�nda kullanmak i�in bir protokol vard�r. Sunumcu ile kullan�c�n�n ayn� t�r platformda �al��ma zorunlulu�u olmamas�n� sa�layan i�letim sistemi ba��ms�zl��� da b�y�k bir avantaj olarak g�z�kmektedir. �o�unlukla, sunumcu karma��k bir sim�lasyon �al��t�ran bir s�per bilgisayar ve istemci de grafik g�r�nt�lemeye tahsis edilmi� basit bir i� istasyonudur.

B�t�n bunlardan ba�ka OpenGL veriyollula�t�r�lm��, y�ksek performansl� grafik g�r�nt�le�tirme kitapl��� olmakla birlikte OpenGL'in enbasit�gelerini donan�m d�zeyinde devreyesokan grafik h�zland�r�c� kartlar ve �zelyap�l� 3D kartlar� da vard�r. Yak�n zamana kadar bu geli�mi� grafik kartlar� �ok pahal�yd� ve sadece SGI i� istasyonlar� ile di�er UNIX i� istasyonlar� i�in olanlar� bulunmaktayd�. Her�ey �ok �abuk de�i�iyor! Silicon Graphics'in c�mert lisanslar�na ve s�r�c� geli�tirme programlar�na te�ekk�rler.B�ylece ki�isel bilgisayar kullan�c�lar� i�in �ok daha fazla OpenGL donan�m� g�rece�iz. Linux kullan�c�lar� bu f�rsattan ho�nut olabilirler. Evet 3Dfx Interactive ad�nda bir firma bir seri 3D grafik kart� ve Kayar Kitapl�k Linux ��letim sistemine destek sunmaktalar. Bu yaz� dizisinde Philip Ross ( 3Dfx Grafik Katlar� bizim i�imizde kullanaca��m�z 3Dfx grafik kartlar�n� ayr�nt�lar�yla anlatmaktad�r. Bu, Linux pazar�n�n burada kal�c� oldu�unu anlayan baz� donan�m �reticilerinde b�y�k bir tutum de�i�ikli�ine neden olmu�tur. Linux taraftarlar� bu t�r at�l�mlara destek olmal�lar ya da bunlar� �zendirmelidirler.

OpenGL'in donan�mdan ba��ms�z olmas�n� sa�lamak i�in; kullan�c� girdisini sa�lamak i�in kullan�lan komutlar ile pencere i�lemleri i�in kullan�lan komutlar devre d��� b�rak�lm��t�r. Bu OpenGL kullan�m� i�in b�y�k bir k�s�t gibi g�r�nebilir. Fakat ilerde g�rece�imiz (Bak�n�z GLUT Programlama Serisi), gibi OpenGL'i pencere i�lemlerini ve kullan�c� giri�leriyle ilgilenecek di�er esnek program kitapl�klar�yla birle�tirmek m�mk�nd�r. Ayr�ca, OpenGL zor modellemeler (molek�ller, u�aklar, evler, ku�lar vb) i�in hi�bir komut bulundurmaz. OpenGL'de sadece �ok basit geometrik cisimler bulunur (nokta, do�ru ve �okgenler). Program geli�tiren ki�i modellerini bu birka� basit cisimi kullanarak olu�turmal�d�r. Daha karma��k modelleri yapmaya olanak sa�layan OpenGL'le ili�kili kitapl�klar da bulunmakta olup herhangibir kullan�c� bu kitapl�klar� kendi modellerini yaratmak i�in kullanabilir.

OpenGL ile ilgili bu yaz� dizilerimizde OpenGL i�in en yayg�nbilinen C aray�z�n� kullanaca��z. Bununla birlikte okuyucu ba�lay�c�lar�n di�er diller : FORTRAN, C++, Ada ve Java i�in de kullan��l� oldu�unu bilmelidir. Dizimizin sonraki yaz�lar�nda, okuyucu OpenGL i�in C aray�z�ne al��t�ktan sonra, Open-Inventor'dan : OpenGL'e C++ kitapl���ndan bir uzant�'dan s�zedece�iz.

A�a��daki yaz� fazla ayr�nt�s�na girmeden OpenGL'in yerine getirdi�i baz� �zellikleri anlatmaktad�r.

  • Geometrik Enbasit�geler Nesnelerin matematiksel tan�mlamalar�n� yapmam�z� sa�lar. �imdiki basit enbasit�geler: noktalar, do�rular, �okgenler,�ekiller ve . bitmap'lerdir;
  • Renk Kodlamas� RGBA (K�rm�z�-Ye�il-Mavi-Alpha) 'da ya da renk katalo�unda .  modunda .
  • G�zdenge�irme ve Modelleme nesneleri 3 Boyutlu ortamda d�zenlemeye kameram�z� uzayda dola�t�r�p, g�zdenge�irilecek resim i�in istenilen noktay� se�meye izin verir.  ;
  • Doku D�n��t�r�m� modelimizdeki �okgenlere ger�ek g�r�n��l� y�zeyler g�r�nt�leyerek modelimize ger�ek�ilik katar. 
  • Malzeme Ayd�nlatma t�m 3 boyutlu grafiklerin vazge�ilmez bir par�as�d�r. OpenGL maddenin �zelliklerini veren her noktan�n rengini ve odadaki ���k kayna��n� hesaplayan komutlar sa�lar. 
  • �ift Tamponlama animasyonlarda olu�an titremeyi gidermeye yard�m eder. Animasyonda birbirini izleyen her bir �er�eve ayr� bir bellek tamponunda olu�turulur. Ve sadece �er�evenin g�r�nt�lenmesi tamamland���nda ekranda g�r�lebilir.  
  • Anti-aliasing bilgisayar ekran�nda �izilmi� do�rular�n u�lar�nda olu�an �entikleri azalt�r. �entik u�lu do�rular genellikle d���k ��z�n�rl�kte �izildiklerinde olu�ular. Anti-aliasing, mimari zig-zag lar� azaltmak i�in rengi ve do�rular�n yak�n�ndaki pixellerin yo�unlu�unu de�i�tirir.  
  • Gouraud g�lgelemesi3 boyutlu cisme d�zg�n bir g�lgeleme uygulamak i�in kullan�lan bir y�ntemdir ve cismin y�zeyleri boyunca ince renk farklar� sa�lar.  
  • Z-buffering �� boyutlu cismin Z koordinat�n�n izini tutar. Z-buffer'�  'nin; g�zlemcinin cisminin yakla��k izini s�rer. Z-Buferring ayn� zamanda sakl� y�zeyin yerinin de�i�tirilmesimde �nemlidir.  
  • Sis, duman ve pus gibi Atmosfer Etkileri bilgisayarda �ekillerin daha ger�ek�i olmas�n� sa�lar. Atmosfer etkileri olmaks�z�n �ekiller bazen �ok sert hatl� ve ger�ek d��� g�z�k�r. Sis terimi ger�ekten pusu, nemi, duman�, kirlili�i ya da �ekillere bir derinlik katarak basit�e hava etkilerini taklit eden bir algoritmay� tan�mlar. 
  • Alfa Birle�tirimi, �er�eve tamponunda depolanm�� pikselle renk birle�tirimine izin vererek, RGBA kodunun Alfa de�erini (da��t�ilm�� malzeme de�eri) kullan�r. �rne�in, k�rm�z� bir kutu �n�nde ge�irgen a��k mavi bir pencerenin �izimini d���nelim. Alfa birle�tirimi pencere nesnesinin ge�irgenli�ini �ylesine �enze�tirir ki cam i�inden g�r�nen kutu bir �ingene mavisi tonuyla g�z�k�r. 
  • �ince Metal D�zlemler ekran�n baz� b�l�mlerine �izim k�s�tlamas� getirir. 
  • G�r�nt� Listeleri �izim komutlar�n�n daha sonraki bi g�r�nt�le�tirme i�in depolanmas�na olanak sa�lar. Uygun bi�imde kullan�ld���nda, g�r�nt� listeleri g�r�nt�le�tirme performans�n� b�y�k oranda y�kseltebilir. 
  • �okterimlisel Hesaplay�c�lar d�zg�n olmayan oransal B-spline'lara destek vermeyi sa�larlar. Bu, arada �ok say�da noktan�n kullan�m�na gereksinim duyurmaks�z�n birka� referans noktas� �zerinden d�zg�n e�riler �izilebilmesine olanak sa�lar. 
  • Geribesleme, Se�im ve Gerial�m �zellikleri kullan�c�ya ekran �zerinde �izilmi� bir nesnenin gerial�m� ya da ekran �zerinde bir b�lgenin se�imi i�in olanak sa�lar. Geribesleme modu g�r�nt�le�tirme hesaplamalar�n�n geli�tirici taraf�ndan elde edilebilmesine olanak sa�lar. 
  • Raster enbasit�geleri (bitmap'ler and piksel dikd�rtgenleri) 
  • Piksel ��lemleri 
  • D�n���mler: d�nme, �l�ekleme, �telemelers, 3 Boyutta perspektifler, etc. 

S�zetti�imiz gibi, OpenGL'i ger�ekten ta��nabilir ve platformdan ba��ms�z yapabilmek i�in pencereleme sistemi ile aray�zle�en t�m komutlar�n, s�zgelimi: pencere a�ma, pencere kapama, pencere �l�ekleme, pnecere yenidenbi�imlendirme, imle� konumunun okunmas�; ve ayn� zamanda verigiri� ayg�tlar�yla aray�uzle�en t�m komutlar�n (s�zgelimi klavyeden bilgi giri�i) kurban edilmesi gerekmekteydi. Bu etkinliklerin t�m� y�ksek derecede i�letim sistemine ba�l�d�r. K�keninde, GL-kitapl��� pencere ve �evrebirim etkile�imlerinde kendi komutlar�na sahipti. Ancak, bunlar IRIX'e (SGI i�letim sistemi) �zg� bulunmaktayd�. Kendi platformunu bilmek ve pencere etkile�imlerini �zg�n platformunda ger�ekle�tirmek OpenGL geli�tiricisine kalm�� bir konudur.

SGI'dan J. Kilgard taraf�ndan olu�turulan ve bu sorun �zerinde i�levi olan bir ek kitapl�k bulunmaktad�r. Mark, eski AUX kitapl���n�n (AUX kitapl���n�n ne oldu�unu umusamay�n, onu unutun!) yerine ge�ebilecek bir GL elayg�ttak�m� kitapl��� yazd�. GLUT kitapl��� �crtsiz olarak elde edilebilmektedir.  OpenGL gibi GLUT'nun da, ikitabanl� s�r�mleri yan�s�ra Linux i�in kaynak kodlar�n� bulabilmeniz m�mk�nd�r. GLUT kitapl��� platform'dan ba��ms�z olup pencereleme ve �evrebirimler i�in ortak bir yap� sunar. Dolay�s�yla, bir OpenGL uygulamas� bir grafik canland�r�m i�in bir pencere a�mak istedi�inde, tabandaki pencere sistemini egemenli�ine alacak bi�imde GLUT komut tak�m�n� kullan�ir. GLUT, bir anlamda, eldeki pencereleme sisteminin (X11, windows, Motif, vs..) pis ayr�nt�lar�n� geli�tiriciden saklayarak onun eldeki i�e yani OpenGL koduna yo�unla�mas�na olanak sa�lar. GLUT di�er bir g�zel avantaj� da kodunuzun platformdan ba��ms�z olmas�n� sa�lamas�d�r. Ki�isel olarak, GLUT ve OpenGL kullanan protein ve jel benze�tirimleri yazm�� olup herhangi bir problem olmaks�z�n ve de bir tek makine ba��ml� sat�r i�ermeksizin Linux-Intel, Linux-Alpha, ya da Windows 95'te derleyip �al��t�rm�� bulunmaktay�m. ( Zaman zaman windows 95 kulland���m� itiraf etmekteyim ;-)  OpenGL uygulamalar� yazmak isteyen herkese GLUT'u bir pencere i�leyicisi olarak kullanmalar�n� kuvvetle sal�k veririm.

GLUT kullan�m�n�n OpenGL'i ��renmek kadar �nemli oldu�unun bilincinde olarak, bu andaki OpenGL hakk�ndaki Linux Focus serisinde, ad�m ad�m GLUT kullan�m�n� ve �evrebirim ayg�tlar�n�n rahat�a i�lenebilmesinin anlat�m�n� i�eren birka� yaz� da sunulacakt�r.

Bu k�sa giri�i kaparken "Evrenin Ustalar�ndan" bir di�erini, Linux i�in Mesa adl� bir OpenGL benzeri kitapl��� d�zenle ve sab�rla geli�tiren Brian Paul'dan s�zetmeden ge�emeyiz. Bu an i�in Mesa yaln�zca yaz�l�msal g�r�nt�le�tirme yapmaktad�r. Yani, t�m g�r�nt�le�tirme g�revleri CPU'ya aksi halde 3 Boyutlu yetenekleri olan donan�ma kalm�� bir konudur. Ama, Mesa i�eriden devreye sokulabilen olanaklarla h�zland�r�lm�� donan�mlar i�in s�r�c� yaz�m�na olanak sa�layabilmektedir. Bu an i�in, yaln�zca Mondello, S3 Virge (sadece Win95), GLINT, ve Voodoo 3Dfx yongatak�mlar� i�in s�r�c�ler bulunmaktad�r. David Bucciarelli taraf�ndan yaz�lan Voodoo s�r�c�s� sayesinde Mesa, pahal� SGI istasyonlar� d�zeyinde performansa ula�abilmektedir. Dolay�s�yla, y�ksek performansl� 3Boyut-h�zland�r�lm�� grafikle ilgilenmek istiyorsan�z gidip bir 3Dfx kart alabilirsiniz.

Sonu�ta,benim Alpha-PC (21164 550MHz 164MRam Linux 2.0.32)'im �zerindeki deneyimimden s�zetmeden ge�emeyece�im. Yazmakta oldu�um bir jel benze�tirim program� i�in Mesa kitapl���n� kullanmaktay�m. Bu ana kadar Alfa sistemleri i�in Glide kitapl���n�n piyasaya s�r�lmemesinden dolay� (L�TFEN �ABUK OLUN!!!) sisteminde Mesa kitapl��� i�in destek bulunmamaktad�r. Neyse, Phil Ross ve ben k�sa bir s�re �nce onun Pentium PC + 3Dfx'inin ve benim Alpha PC + Matrox Millennium kart�n�n performanslar�n� kar��la�t�rd�k. Benim jel canland�r�m�m�n benim PC'imde onunkindeki kadar d�zg�n �al��t���n� g�rmek olduk�a s�rpriz oldu. OpenGL demo programlar� benim PC'imde daha da iyi (ku�kusuz doku kullanmayanlardan s�zetmekteyim) �al��maktayd�. Di�er bir deyi�le OpenGL i�in donan�m deste�inin eksikli�i Alfa CPU'nun ac�mas�z g�c� taraf�ndan dengelenmekteydi. �� hakk�nda bir fikir verebilmek i�in, jel canland�r�m�n�n her �er�evesinde onbinlerce k�re ve silindir ve de ayd�nlatma hesaplamalar�na gereksinim oldu�undan s�zedilebilir.PC �zerinde, hesaplamalar�n zavall� Intel CPU'su i�in �ok fazla olmas�ndan dolay�, bu kadar �ok say�da monomer g�remedik. �te yandan, Alfa'da bu t�r sorun g�zlenmedi. Alfa PC'mi bir 3Dfx kart� ve Mesa i�in donan�m deste�i ile donat�lm�� olarak g�rmeyi bekleyemem.

Daha �ok Bilgi ��in::

© 1998 Miguel Angel Sepulveda
Bu sanal y�renin bak�m� Miguel A Sepulveda taraf�ndan yap�lmaktad�r..