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::
|