BOLUM 2: Gelismis ozellikler ve goruntu iyilestirme
Bu yazinin amaci, grafik karti dosyasinin ilk bolumunde anlattigim temel fiziksel ozelliklere ek olarak goruntu iyilestirmede kullanilan ozelliklerin bazilarini ve 3D dunyasinda kullanilan bazi terimleri ozetlemektir. Her terimi ozetleyemeyecegim icin en cok karsilasilan terimlere deginiyorum.
Hepinizin bildigi gibi dunumuz ekran kartlari 2D ve 3D ozellikleri bir arada bulunduran bir alt-sistemdir. 3D dunyasi ilk olarak 1980’lerin ortasinda gelismeye baslamis olsa da bizim gibi son kullanicilarin bu devrimle tanismasi 1996 yilinda oldu. Silicon Graphics firmasindan ayrilan iki muhendis 3dfx adli firmayi kurdular ve 3D dunyasini ilk olarak son kullaniciya actilar. Bir 3D sahnenin yaratilmasi icin bir API’ye, yani Application program Interface’e ihtiyac vardir. Bir rutin, program seti tplulugu olan bu arayuz yardimiyla bir 3D sahne tasarlanabilir.
Gunumuzde 2 buyuk API bulunmaktadir: Microsoft Direct3D ve OpenGL. Piyasada 3. baska bir API de yaygin olarak kullanilmaktaydi ve bu API’yi eskiden beri 3D dunyasini takip eden kullanicilar bilecektir: GLIDE. Glide, 3dfx tarafindan OpenGL baz alinilarak gelistirilmis bir API idi ancak 2000 yilinin sonunda 3dfx’in tum haklarinin nVidia tarafindan satin alinmasi ile piyasadan silindi.
Bizim yaygin olarak kullandigimiz 3D programlar olan oyunlar, gunumuzde geri kalan 2 yaygin Api ile programlanip olusturulmaktadir. Microsoft’un Direct3D’si su anda son kullanicilar tarafindan en cok kullanilan API olmasina ragmen, OpenGL, acik kaynak kodlu bir yazilim olmasi ve profesyonel alanda Direct3D’den cok daha fazla programlanabilir ve genisletilebilri olmasi acisindan daha fazla ragmet gormektedir.
Direct3D, Microsoft’un Windows95’e gecis yapmasi ile kullanilmaya baslanan bir uygulamadir. DOS ortaminda oynanan oyunlarin terk edilmesi ve 3D’nin duyurulmasi ile Microsoft grafik yongasi ureticileri ile ortaklasa calisarak D3D standartlarini surekli guncelledi ve gerekli gelistirmeleri yapti. Su anda kullanmakta oldugumuz DirectX’in 9. surumu Direct3D’nin gelmis oldugu en son noktayi belirlemektedir.
OpenGL ise son kullanicidan cok profesyonel CAD/CAM ve 3D cizim uygulamalarinin ureticilerinin dogrultusunda gelismis daha farkli bir API’dir. Ancak OpenGL bizim gibi son kullanicilarin da kullandigi bazi oyunlarda onemli rol oynamistir. İd Softtware’in Quake2, Quake3, Doom3 gibi oyunlari bu API’yi kullanarak gelistirilmis ve oldukca da basarili olmuslardir.
3D dunyasinda su anda sikca duydugumuz bir terim bulunmaktadir: Shader. API’lerin gelisim sureclerinde eklenen bu ozellik bir cesit vektorel golgelendirme algoritmasidir. Pixel ve Vertex olarak iki farkli shader bulunmaktadir ve pixel shader adindan da anlasilacagi gibi belirli pixellerin belli bir kod ya da kodlar zinciri vasitasiyla golgelendirerek daha gercekci 3D sahnelerin yaratilmasini saglar. Vertex Shader ise daha cok islenmemis bir 3D sahnedeki objelerin birbirlerine olan baglarini ve hareketlerinin daha onceden yazilmis bir kod yardimi ile kontrol edilmesini saglar. Pixel Shader efektlerini bir ornek olarak su yuzyinde yansima efektleri verilebilir. Vertex shader efektleri ise goz ile gorulebilecek bir sey olmasa da, ornegin bir cesit ruzgarin 3D sahnedeki objelerin hareketi uzerine etkisi olarak orneklenebilir.
Baska sikca duyulan bir ozellik de mapping’dir. Bump, parralax, displacement, mip-map gibi cesitli metodlar kullanilarak yapilan bu uygulama, doku kapli bir yueyin eblirli noktalarinda glgelendirme efekti vermeye yarar. Ornegin bir tas duvarin onunde yanan bir atesin olusturacagi golgelerin nasil ve ne yonde olusacagi konusunda mapping kodlari gorevi ustlenir. Bump mapping belli bir yer degistirme ya da kabartma olmadan sanal olarak cikinti ve girintileri olustururken, displacement mapping, doku kapi yuzeylerin seklini de degistirerek daha gercekci efekler olusturabilir.
Anisotropic Filtering. Bir cogumuz bu terimi duyuyoruz ama cogumuz ne ise yaradigini bilmiyor. Adindan da anlasilacagi gibi bir cesit filtreleme yontemidir bu. 3D sahnelerde baki acisi kuculdugunde yuzeyler daha flu gozukur ve netlik azalir. Bunun sebei ise daha az alanda daha fazla detay gostermek zorunda kalan API’nin zorlanmasidir. Fakat bir cesit sonradan filtreleme olan Anisotropic Filtering (AF) bu cesit bir durumda dokulari netlestirerek goruntu kalitesini iyilestirir. Bu is GPU tarafindan yapildigi icin, performans kaybi kacinilmazdir. Buna bir ornek verecek olursak, FPS tarzi bir oyunda bulundugunuz zemine bakabilirsiniz. Belli bir mesafeden sonra yer kaplamasinin netligini yapbettigini goreceksiniz. AF acildigi zaman tekrarlama seviyesine gore (1x----16x) doku netligi artacaktir.
Full Scene Anti-Aliasing. Bu terim bize 1999 yilinda 3dfx tarafindan duyuruldu. Belki de 3D tarihindeki en onemli gelismelerden biri olan Anti-Aliasing (AA), merdiven efekti olarak adlandirilan 3D sahnelerdeki objelerin cigilerini yumusatma ve daha kaliteli goruntuler elde etmek icin kullanilan bir yontemdir. 3D sahnelerde bir cizgi yaratmak icin tek bir yol vardir. Sadece dikdortgen sekilli yatay ve dikey olarak pikseller bir araya getirilebildiginden, egri ya da acili bir cizgi lusturuldugunda bu cizgi bir merdiven basamagi gibi tirtikli gorunur. AA ise bu efekti yok etmek icin her pixelin etrafindaki pixelleri, ortadaki pixelin rengine gore farkli tonlarda renklendirir ve/veya kendi ekseni etrafinda cevirir. Pixel kombinasyonalrina gore (2x-8x) kalite arttirilabilir, ama ekran kartinin performansini ldukca dusuren bir uygulamadir. Hem hafiza bant genisliginden hem de doldurma hizindan feragat etmek gerekir.
Simdilik bu kadar, aklima gelen daha detayli bilgiler olursa bu dokumani guncelleyecegim. Benden ayrilmayin.




