Merhaba Next.web.tr Misafiri! Forum Sitemize Hoşgeldin.

Sitemize üye olarak ayrıcalıklarımızdan yararlanabilirsiniz.

or Kayıt ol

Ekran Kartları Nasıl Çalışır?

Mehmetkarahanlı

0
Özel Üye
19 Haz 2016
8,533
146
63
17_b.jpg

Hemen hepimizin bilgisayar almaya kalktığımızda ilk seçtğimiz parçalardan biri de ekrankartıdır ama sadece işlemci, bellek ve sabit diske bakarak bilgisayar seçtiğimiz günlerinüzerinden o kadar da uzun yıllar geçmedi. Şimdi yeri geldiğinde bir bilgisayar parasıverebildiğimiz ekran kartlarına biraz yakından bakalım.


k636x.jpg

Standart bir ekran kartının görünüşü.Ekrandaki Görüntü Nasıl Oluşur?Monitörünüze yeteri kadar yakından bakarsanız görüntünün çok küçük noktalardan oluştuğunugörürsünüz. İşte bu noktlara görüntünün en küçük birimi olan piksel diyoruz. Her pikselinkendine ait renk ve yoğunluk bilgileri vardır. Daha genel bir tanımla piksel için ekranın bağımsızolarak kontrol edilebilir en küçük parçası olduğunu söyleyebiliriz. İşte bu piksellerden binlercesibir araya gelerek ekrandaki görüntüyü oluşturuyor.ÇözünürlükÇözünürlüğün görüntü kalitesini belirleyen en önemli faktör olduğunu söyleyebiliriz.Çözünürlük, ekrandaki görüntünün kaç pikselden oluşacağını belirler ve yatay ve dikey pikselcinsinden belirtilir (800x600,1024x768 gibi). Çözünürlük arttıkça görüntü birbirinden bağımsızolarak kontrol edilebilen daha çok pikselden oluşur ve görüntü kalitesi de yükselir.Windows 95 ile hayatımıza giren "scaleable screen objects" teknolojisi sayesinde çözünürlükarttıkça ekrandaki kullanılabilir alan da artar. Windows ekranında çözünürlük ne olursaekrandaki nesneleri oluşturan piksel sayısı değişmez. Çözünürlük arttıkça pikseller deküçüleceği için nesneler daha az yer kaplar ve masaüstündeki kullanılabilir alan çözünürlükledoğru orantılı olarak artar.Çözünürlük arttıkça yükselen görüntü kalitesinin de bir bedeli var tabi ki: Çözünürlükyüseldikçe kontrol edilmesi gereken piksel sayısı ve dolayısıyla da gerekli işlem gücü, ayrıca bupiksellerin bilgilerini tutmak için gerekli bellek miktarıyla onların transferi için gereken bellekbant genişliği artar. Bu yüzden de performans düşer. Kullanmak istediğiniz çözünürlüğü hemekran kartınız desteklemeli, hem de monitörünüz fiziksel olarak gerekli sayıda pikseli ekrandaoluşturabilmeli.Renk DerinliğiPiksellerin kendilerine ait renklerinden bahsetmiştik, piksellerin alabileceği renkler kırmızı, yeşilve maviden türetilir. İşte renk derinliği bu renklerin miktarını belirler. Renk derinliği ne kadarartarsa her pikselin alabileceği renk sayısı artar, renkler gerçeğe daha yakın olur.Renk derinliği bit cinsinden belirtilir, işlemcilerle ilgili yazımızda bitlere kısaca değinmiştik. Herbit 1 ve 0 olarak iki değer alabilir. 8 bit kullanıldığında bu bitlerden 28 = 256 kombinasyonüretilir. Aynı şekilde 8 bit renk derinliğinde de her piksel için 256 renk kullanılabilir.
 

Mehmetkarahanlı

0
Özel Üye
19 Haz 2016
8,533
146
63
İnsan gözünü aldatıp ekrandaki görüntüyü gerçek gibi göstermek için kullanılan üç rengin de(kırmızı, yeşil ve mavi) 256`şar tonu gereklidir, bu da renk başına 8 bitten 24 bit yapar. Bumoda True Colour (Gerçek Renk) adı verilir. Fakat çoğu güncel ekran kartı görüntü belleğinikullanma yöntemleri yüzünden pikselleri bu modda göstermek için 32 bite ihtiyaç duyarlar.Kalan 8 bit alpha kanalı (piksellerin saydamlık bilgisini tutar) için kullanılır.High Colour (16 bit) modunda ise yeşil için altı ve maviyle kırmızı için de beşer bit kullanılır.Yeşil için 64, maviyle kırmızı için de renk başına 32 farklı yoğunluk vardır bu modda. Renkkalitesinde 32 bite göre çok az fark olsa da piksel başına 4 yerine 2 byte (8 bit = 1 byte) hafızagerekeceğinden 32 bite göre performans avantajı sağlar.256 renk (8 bit) modu ilk duyuşta size renk fakiri izlenimi verebilir fakat renk paleti denen biryöntemle bu 8 bit olabilecek en verimli şekilde kullanılarak renk kalitesi biraz arttırılır. Renkpaletinin mantığı söyledir: Kullanılacak 256 renk gerçek renk modundaki 3 bytelık renklerdenseçilir ve bu renklerden bir renk paleti oluşturulur. Her program ilgili paletteki 256 renktenistediğini seçip kullanabilir. Böylece örneğin kırmızı için iki, mavi ve yeşil için de üçer bitkullanılarak elde edilen renklerden daha canlı renkler elde edilebilir ve elimizdeki 8 bit enverimli şekilde kullanılmış olur.En çok kullanılan üç renk modunu tanıdık, peki ekran kartımız üretemediği renklere ne yapıyor?Sistemimizin 256 renge ayarlı olduğunu fakat 16 bitlik bir resim dosyası açtığımızı varsayalım.Bu durumda hazırdaki renklerin değişik kombinasyonları kullanılarak üretilemeyen renge yakınbir renk oluşturulur ve bu renk üretilmesi gereken rengin yerine gösterilir. Buna dithering denir.Tabi ki dithering yöntemiyle elde edilmiş bir resmin kalitesi orjinal resme göre göre çok dahadüşüktür.Görüntü ArayüzleriÖnceleri ekrandaki piksellerin adreslenmesi için bir standart olmadığından üreticiler deprogramcılar da (dolayısıyla son kullanıcılar da) sorun yaşıyorlardı. Bu sorunu çözmek içinüreticiler VESA (Video Electronics Standarts Association) adında video protokollerinistandartlaştırmayı amaçlayan bir konsorsiyum oluşturdular. VGA ile beraber geriye uyumlulukda sağlanarak çözünürlük sürekli arttı. VGA öncesindekiler de dahil standartlara kısaca bir gözatalım:• MDA (Hercules): Monochrome Display Adapter, 1981 yılındaki ilk IBM PC`deki ekrankartı. Ekranda yerleri önceden belirlenmiş olan 256 özel karakteri gösterebilyordusadece. 80 kolona 25 satırlık bir ekranda gösterebildiği yazı karakterlerinin boyutları daönceden belirlenmişti ve grafik görüntülemek mümkün değildi. IBM, bu kartlara ekstraslot masrafından kurtulmak için bir de yazıcı bağlantı noktası eklemişti.• CGA: Bu arayüzde ekran kartları RGB monitörlerle çalışıp ekranı piksel piksel kontroledebiliyorlardı. 320x240 çözünürlüğündeki bir ekranda 16 renk üretilebiliyor fakat aynıanda bunlardan sadece 4 tanesi kullanılabiliyordu. 640x200`lük bir yüksek çözünürlükmodu vardır ama bu modda sadece 2 renk gösterilebiliyordu. Görüntü kalitesi kötü olsabile en azından grafik çizilebiliyordu. Zaman zaman piksellerin gidip gelmesi ve ekrandarastgele noktalar oluşmasına rağmen bu standart çok uzun bir süre kullanıldı.• EGA: CGA`dan birkaç yıl sonra sırada Enhanced Graphics Adapter vardı. CGA ile VGAarasındaki bu kartlar 1984`ten IBM`in ilk PS/2 sistemlerini ürettiği 1987`ye kadarkullanıldı. EGA monitörle kullanıldığında üretilen 64 renkten aynı anda 16 tanesikullanılabiliyordu. Yüksek çözünürlük ve monochrome modları da vardı ,ayrıca eski CGAve monochrome monitörlerle de uyumluydu. Bu kartlardaki bir yenilik de bellekgenişletme kartlarıydı. 64K bellekle satılan bu kartları bellek genişletme kartıyla128K`ya upgrade etmek mümkündü. Ek olarak satılan IBM bellek kitiyle bir 128K dahaeklemek de mümkündü. Sonraları bu kartlar standart olarak 256K bellekle üretilmeyebaşlandı.• PGA: IBM`in 1984`te piyasaya sürdüğü Professional Graphics Array adını hitap ettiğipazardan alıyordu. 5000 dolara satılıyor ve entegre 8088 işlemcisiyle mühendislikugulamarıyla diğer alanlardaki bilimsel çalışmalar için 640x480 çözünürlükte 256 renktesaniyede 60 kare hızla 3 boyutlu animasyonları çalıştırabiliyordu. Fiyatı yayılmasınıengelledi ve fazla kullanılamadan piyasadan kalktı.• MCGA: 1987`de piyasaya sürülen MultiColor Graphics Array standardındaki ekran
 

Mehmetkarahanlı

0
Özel Üye
19 Haz 2016
8,533
146
63
kartları teknolojide büyük bir sıçrama yaparak VGA ve SVGA`ya kadar gelen bir gelişimibaşlattı. IBM`in Model 25 ve Model 30 PS/2 PC`lerinde anakarta entegre haldegeliyordu. Uygun bir IBM monitörle kullanıldığında bütün CGA modlarını dadestekliyordu fakat TTL yerine analog sinyallerle çalıştığından daha önceki standartlarlauyumlu değildi. TTL (Transistor – to –Transistor Logic) mantığında voltaj seviyesine göretransistörler açılıp kapanır ve sadece 1 ve 0 değerleri oluşur bunu sonucunda. Analogsinyallerdeyse bu kısıtlama yoktur. Analog sinyalleşmenin de sağladığı avantajla MCGAarayüzüyle 256 renk üretilebiliyordu. Bu arayüzle beraber 9 pinlik monitörbağlantısından halen kullanılmakta olan 15 pinlik bağlantıya geçildi.• 8514/A: IBM`in MCA veriyoluyla kullanmak için ortaya attığı bu arayüz zamanlayüksek tazeleme hızlarına çıktı. VGA ile aynı monitörü kullanmasına rağmen VGA`danfarklı çalışıyordu. Bilgisayar ekran kartına ne yapması gerektiğini söylüyordu ama amaekran kartı onu nasıl yapacağını kendisi ayarlıyordu. Örneğin ekrana bir çemberçizileceği zaman VGA`daki gibi işlemci görüntüyü piksel piksel hesaplayıp ekran kartınayollamıyordu. Bunun yerine ekran kartına çember çizileceğini söylüyordu ve ekran kartıda çemberi çizmek için piksel hesaplarını kendisi yapabiliyordu. Bu yüksek seviyelikomutlar standart VGA ile komutlarından çok farklıydı. Bu standart çıktığı zamanın dahailerisindeydi ve VGA`dan daha kaliteli görüntü sonuyordu ama fazla destek bulamadığıiçin yayılma imkanı bulamadan piyasan kalktı. IBM üretimi durdurup aynı daha dahafazla renk gösterebilen XGA üzerine yoğunlaştı. XGA 1990`da piyasaya çıktıktan sınraMicroChannelplatformları için standart oldu.• VGA: 2 Nisan 1987`de, MCGA ve 8514/A ile aynı günde IBM tarafından tanıtılan VideoGraphics Array aradan sıyrılarak masaüstü için standart olmayı başardı. IBM yenibilgisayarlarında bu chipleri anakarta entegre ederken eski bilgisayarlarda dakullanılabilmeleri için 8 bitlik bir arayüzle anakarta bağlanabilen bir ayrı bir kart halindede geliştirdi. IBM üretimi durdurduktan sonra bile değişik firmalar üretime devam ettiler.VGA ile 262144 renklik bir paletten seçilen 256 renk aynı anda kullanılabiliyordu.640x480`lik standart çözünürlükte aynı anda 16 renk gösterilebiliyordu. Ayrıca 64 renkgri tonlama ile siyah beyaz monitörlerde renk siğmilasyonu yapabiliyordu.• SVGA: Super VGA ilk SVGA kartlardan güncel kartlara kadar çok fazla kartı kapsayangeniş bir standart. SVGA ile birlikte ekran kartları için aygıt sürücüsü kavramı ortayaçıktı. Kartların yanında verilen sürücülerle ilşetim sistemleri kartların tüm özelliklerinikullanabiliyorlardı. SVGA ile milyonlarca renk değişik çözünürlüklerde gösterilebiliyorfakat bunun sınırları karta ve üreticiye bağlı. SVGA değişik şirketler tarafından kullanılanortak bir kavram olduğundan başlarda eski standartlar gibi çok katı sınırları yoktu.Bunun üzerine VESA bir SVGA standardı belirledi. VESA BIOS Extension adında standartbir arayüz belirlendi ve bu sayede programcılar her kart için ayrı kod yazmazahmetinden kurtuldular. Üreticiler bu arayüzü benimsemek istemediler ve başlardakartların yanında verilen ve her boot işleminden sonra çalıştırılan bir programlakartlarını bu BIOS uzantılarıyla uyumlu hale getirdiler fakat sonunda bunu kartlarınBIOS`larına entegre ettiler. SVGA ile 800x600 çözünürlüğe çıkıldı.
 

Mehmetkarahanlı

0
Özel Üye
19 Haz 2016
8,533
146
63
SVGA'dan sonra IBM XGA ile 1024x768 çözünürlüğe geçerken sonraki basamak olan1280x1024`e de bir VESA standardı olan SXGA ile geçildi. Sonra da UXGA ile de 1600x1200çöznürlüğe geçildi. Çözünürlükteki 4:3 oranı sadece SXGA ile bozuldu, bu standartta oran5:4`tür.En Temel Bileşenleriyle Bir Ekran KartıBir ekran kartı temel olarak 3 bileşenden oluşur: Grafik işlemcisi, bellek ve RAMDAC.• Grafik İşlemcisi: Güncel kartlar için grafik işlemcisi görüntü hesaplamalarını yapmakiçin ekran kartının üzerine oturtulmuş bir CPU`dur dersek yanlış olmaz. Son zamanlardagrafik işlemcileri yapı ve karmaşıklık bakımından CPU`ları solladılar ve işlev bakımındanda görüntü üzerine yoğunlaşmış bir CPU niteliğine kavuştular. CPU`ya neredeyse hiç yükbindirmeden üç boyutlu işlemcleri tek başlarına tamamlayabiliyorlar artık. Bu yüzden degüncel grafik işlemcileri GPU (Graphics Processing Unit - Grafik İşlemci Birimi) adıylaanılıyorlar.• Görüntü Belleği: Ekran kartının üzerinde bulunur ve görüntü hesaplamalarıyla ilgiliveriler burada saklanır. Sisteminizdeki ana bellek gibi çalışır, yalnız burada bu belleğinmuhattabı CPU değil görüntü işlemcisidir. Önceleri ekran kartlarının ayrı bellekleri yoktufakat görüntü işlemcileri hızlanıp geliştikçe ekran kartları sistemden yavaş yavaşbağımsızlıklarını ilan etmeye başladılar. Bellek miktarı kadar ekran kartının sıkıştırmaalgoritmalarıyla bu belleği ne kadar verimli kullanabildiği de önemlidir
 

Mehmetkarahanlı

0
Özel Üye
19 Haz 2016
8,533
146
63
to-Analog Converter) görüntü belleğindeki verileri analog RGB (Red Green Blue,monitörde renklerin bu üç renkten türetildiğini yazmıştık) sinyallerine çevirerek monitörçıkışına verir. Monitörde kullanılan üç ana renk için de birer RAMDAC ünitesi vardır vebunlar her saniye belirli bir sayıda görüntü belleğini tarayıp oradaki verileri analogsinyallere dönüştürürler. RAMDAC`in bu işlemi ne kadar hızlı yapabildiği ekran tazelemehızını belirler. Bu hız Hz cinsinden belirtilir ve ekrandaki görüntünün saniyede kaç kereyenilendiğini gösterir. Örneğin monitörünüz 60 Hz`te çalışıyorsa gördüğünüz görüntüsaniyede 60 kere yenilenir. Ekran tazeleme hızını mümkün olduğu kadar 85 Hz`in altınaçekmemenizi öneririm, daha düşük tazeleme hızları göz sağlığınız için zararlı olabilir.Tabi bu gözünüzün ne kadar hassas olduğuna da bağlı, bazı gözler 75 ve 85 Hzarasındaki farkı hissedemezken bazıları ilk bakışta bunu anlayabilir. RAMDAC`in iç yapısıve özellikleri hangi çözünürlükte ne kadar rengin gösterilebileceğini de belirler.LCD ekranlar yapıları gereği dijtal olduklarından RAMDAC`ten değil de direk görüntübelleğinden görüntü bilgisini alıp kullanabilirler. Bunun için DVI (Digital Video Interface)adında özel bir bağlantı kullanırlar. Bu konuya ileride "Monitörler Nasıl Çalışır?" yazısındadetaylı olarak değineceğiz.• BIOS: Ekran kartlarının da birer BIOS'ları vardır. Burada ekran kartının çalışmaparametreleri, temel sistem fontları kayıtlıdır. Ayrıca bu BIOS sistem açılırken ekrankartına ve onun belleğine de küçük bir test yapar.3. Boyuta Geçiyoruz...Bazılarımız 3B uygulamalar için ekran kartlarına tomarla para döküyoruz. 3B bir görüntü 3temel adımda oluşturulur:1. Sanal bir 3B ortam yaratılır2. Ekranda bu ortamın hangi bölümünün gösterileceğine karar verilir.3. Görüntüyü mümkün olduğu kadar gerçeğe yakın gösterebilmek için her pikselin nasılgörüneceği belirlenir.Sanal bir 3B ortamı o sadece o ortamın bir resmi belirleyemez. Gerçek dünyadan küçük parçayıalarak konuyu açalım. Elimizi ve onun altında duran bir masayı düşünelim, bu bizim 3Bortamımız olsun. Elimizle dokunduğumuzda masanın sert olduğunu anlayabiliriz. Masayaelimizle vurduğumuz zaman da masa kırlımaz ya da elimiz masanın içinden geçemez. Buortamın ne kadar çok resmine bakarsak bakalım masanın sertliğini ve elimize vereceği tepkiyisadece o resimlerle anlayamayız. Sanal 3B ortamlar da böyledir. Bu ortamlardaki nesnelersentetiktir, bütün özellikleri onlara yazılım yoluyla verilir. Programcılar sanal bir 3B dünyatasarlarken büyük bir özenle bütün bu detaylara dikkat ederler ve bu işler için özel araçlarkullanırlar.Belirli bir zamanda oluşturulan bu 3B dünyanın ancak belirli bir bölümü ekranda gösterilir.Ekrandaki görüntü dünyanın nasıl tanımlandığına, sizin nereye gitmek istediğinize ve nereyebaktığınıza göre değişir. Hangi yöne hareket ederseniz edin etrafınızdaki sanal dünya o anbulunduğunuz pozisyonu ve nereye baktığınızı değerlendirerek ekranda ne görmenizgerektiğine karar verir. Bu farklı sahneler de kendi içlerinde tutarlı olmalıdır,örneğin bir nesneona baktığınız her açıdan ve uzaklıktan aynı yükseklikteymiş hissi vermelidir. 3. adımageçmeden önce sabit bir görüntünün nasıl oluşturulduğuna bakıp sonra da bir 3B görüntününnasıl hareket kazandığına bakacağız.Şekiller3B nesneler ilk başta wireframe denen bir yapı ile oluşturulurlar. Şeklin iskeleti dediyebilceğimiz bu tel örgü en basit haliyle nesnenin şeklini belirler. Wireframe denen bu yapıiçin bir yüzey tanımlanması şarttır.
 

Mehmetkarahanlı

0
Özel Üye
19 Haz 2016
8,533
146
63
Yüzey KaplamalarıSanal bir 3B ortamda nesneleri elleme şansımız olmadığından onların hakkında sadece onlarabakarak fikir edinebiliriz. Bu yüzden sanal 3B ortamlarda nesnelerin dış görünüşleri çokönemlidir. Dış görünüşü şunlar belirler:• Renk: Nesnenin rengi.• Kaplama: Tel örgünün üzerine yapılan kaplamayla nesnenin yüzeyi düz, çizgili veyagirintili çıkıntılı görünebilir.• Yansıma: Nesneye etkiyen ışığa ve etrafındaki diğer nesnelere göre cismin üzerindeyansımalar oluşturulur.Bir nesneyi gerçek gibi göstermek için bu üç özellik de dengeli bir biçimde nesnenin değişikyüzeylerine uygulanmalıdır. Örneğin bir 3B ortamda bir klavyeyle bir masa ışığı aynı orandayansıtmaz. Bu üç parametreyi değiştirerek nesnelere sert veya yumuşak hissi verilebilir.
 

Mehmetkarahanlı

0
Özel Üye
19 Haz 2016
8,533
146
63
Lighting (Işıklandırma)Karanlık bir odaya girdiğimizde ışığı açarız ve ışık kaynağından her yöne doğru yayılan ışıksayesinde odadaki bütün nesnelerin görüntüsü değişir. Bu ışığın odaya nasıl yayıldığınıdüşünmeyiz ama 3B grafiklerle uğraşanlar bunu düşünmek zorundalar. Tel örgüleri kaplayankaplamalar (texturelar) bir yerden aydınlatılmalıdırlar. Ray tracing denilen bir yöntemle ışıkışınlarının alacağı yol çizilir ve bu ışınlar çarptıkları nesnelerden farklı yoğunluk ve açılarlayansır. Çoklu ışık kaynaklarını düşündüğünüzde bu hesaplamar oldukça karışık bir hal alabilir.Işıklandırma cisme ağırlık ve katılık etkisi veririken en çok kullanılan iki efektte önemli roloynar: Shading ve gölgeler. Shading, bir nesne üzerindeki parlayan ışığın bir tarafında diğertarafından daha güçlü olmasıdır. Ancak shading sayesinde bir top yuvarlak veya buruşmuş birbattaniye yumuşak görünebilir. Parlaklıktaki bu fark nesnelere derinlik, uzunluk ve genişlikkazandırır.Işıklandırma, nesneye sadece derinlik katmakla kalmayıp onu üzerindebulunduğu yüzeye de bağıyor.Katı nesneler üzerlerinden ışık parladığında gölgeler yaratırlar. Gözlerimiz gerçek nesnelerigörmeye alışık olduğundan ekranda gölge gördüğümüz zaman matematiksel olarak üretilmişşekillere değil de bir pencereden gerçek bir dünyaya bakıyormuş gibi hissederiz.PerspektifPerspektif kulağa biraz teknik gelebilir ama günlük yaşamımızda çok sık gördüğümüz biretkidir. Bir yolun kenarında durup ufuk çizgisine doğru baktığınızda yolun iki kenarı dabirleşiyormuş gibi görünür. Yol kenarında ağaçlar varsa da bu ağaçlar birleşme noktasınayaklaştıkça da daha küçük görünür. Nesnelerin bir noktada birleşiyormuş gibi görünmesinisağlayan bu efekt perspektiftir. Değişik çeşitleri vardır fakat 3B çizimlerde genelde tek noktalıperspektif kullanılır.
 

Mehmetkarahanlı

0
Özel Üye
19 Haz 2016
8,533
146
63
Şekildeki eller ayrı duruyor fakat çoğu sahnede nesneler birbirlerinin önünde dururlar vebirbirlerini kısmen kapatırlar. Bu durumda bunların büyüklüklerinin hesaplanması dışındahangisinin önde olduğu da bilinmelidir. Bunun için Z Buffering denilen teknik kullanılır. Z bufferaher poligon için bir sayı atanır ve bu sayı o poligona sahip nesnenin sahnenin ön tarafınayakınlığını belirler. Öneğin 16 bitlik bir Z bufferekrana en yakın poligon için -32768 ve en uzakpoligon için de 32767 değerlerini atar.Gerçekte bir nesnenin arkasındaki diğer nesneleri göremediğimiz için ne görüyor olmamızgerektiğini düşünmeyiz. Sanal 3B ortamlarda da bu sıkça olur ve çok düz bi mantıkla çözülür.Nesneler yaratıldıkça x ve y ekseninde aynı değere sahip olanlarının Z bufferdaki değerlerikarşılaştırılır ve en düşük Z değerine sahip nesne tamamen görüntülenir. Daha yüksek Zdeğerindekilerinse tamamı görüntülenen nesneyle kesişen bölgeleri görüntülenmez. Nesnelertamamen oluşturulmadan önce Z değerleri belirlendiği için görünmeyecek bölgeler tamamenhesaplanmaz ve bu da performansı arttırır.Derinlik (Depth of Field)Yol ve ağaçlar örneğimizi hatırlayalım ve o örnekte oluşabilecek başka bir ilginç olayıdüşünelim. Yakınınızdaki bir ağaca bakarsanız uzaktaki ağaçların netliklerini kaybettiklerinigörürsünüz.Filmlerde ve bilgisayar ortamında sık kullanılan bu efekt iki amaca hizmet eder. İlki sahnedekiderinlik hissini güçlendirmektir. İkincisi ise dikkatinizi bir nesneye çekmektir.Anti-aliasingBu teknik de gözü aldatarak görüntünün doğal görünmesini amaçlar. Dijital görüntü sistemleriaşağıya ve yukarıya doğru düz çizgiler çizmekte son derece başarılıdırlar fakat iş eğrilere veçapraz çizgileri çizmeye gelince basamak efekti oluşur ve çizgilerin kenarları yumuşak değil dedaha çok bir merdiven gibi gözükür. İşte bu nokada devreye anti-aliasing girer ve çizgininkenarlarındaki piksellere onlara yakın gir tonlardaki renklerle shading uygulayarak kenarlarıbiraz bulanıklaştırır. Bu sayede basamak efekti ortadan kaybolmuş gibi gözükür. Anti-aliasingdedoğru pikselelleri çin doğru renkleri seçmek de başka bir karmaşık işlemdir ve sisteme oldukçayük bindirir.
Görüntüleri Hareketlendirme ZamanıDurağan 3B sahnelerin nasıl yaratıldığını gördükten sonra bunların nasıl hareket kazandığınıöğrenebiliriz. Şu ana kadar anlattığımız işlemlerin hiçbiri donanımı yaratılan bu durağangörütülere hareket kazandırmaktan daha fazla zorlayamaz. Üçgenlerden ve poligonlardanolşuan tel örgülerimizi hareket ettirmek için ekrandaki her piksel saniyede belirli sayıdahesaplama yapılmalıdır.Yüksek çöznürlük denince aklımıza en az 1024x768 gelir, daha düşük çözünürlükleri adamyerine koymayız pek. Bu çözünürlükte 786.432 adet piksel kulllanır, her piksel için 32 bit renkkullanıldığında 25.165.824 bit sadece durağan görüntü için gereklidir. Görüntünün 60 FPS hızdaçalışması için her saniye 1.509.949.440 bit veri aktarılmalıdır ve bu sadece görüntüyü ekranayansıtmak için yeterlidir. Bunun yanında bilgisayar görüntü içeriğini, renkleri, şekilleri, ışıklarıve diğer efektleri de hesaplamak zorundadır. Bütün bunlar görüntü işlemcilerinin çok hızlıgelişmesine sebep oluyor çünkü CPU`nun alabileceği her türlü yardıma ihtiyacı var.Transform (Dönüşüm) İşlemleriDurağan görüntüler dönüşüm denen matematiksel bir işlem sonucunda hareket kazanırlar.Bakış açımızı her değiştirdiğmizde bir dönüşüm olur. Bir arabanın bize yaklaştıkça daha büyükgörünmesi gibi, büyüklüğün her değişiminde bir dönüşüm olur. Bir 3B oyunun her karesindekullanılan dönüşüm işlemine matematiksel olarak şu şekildedirönüşümde ilk etapta sanal dünyamızı tanımlayan önemli değişkenler kullanılır:• X = 758 – baktığımız sana dünyanın yüksekliği• Y = 1024 – bu sanal dünyanın genişliği• Z = 2 – bu da sanal dünyamızın derinliği• Sx - sanal dünyaya baktığımız pencerenin yüksekliği• Sy – pencerenin genişliği• Sz = hangi nesnelerin diğerleinin önünde göründüğünü belirten derinlik dğeişkeni
• D = .75 – gözümüzle sanal dünyamıza açılan pencere arasındaki uzaklıkÖncelikle sanal 3B dünyamıza açılan pencerelerimizin genişliği hesaplanıraha sonra perspektif dönüşümü yapılır, bu aşamada yeni değişkenler de işin içine girer:Sonunda (X, Y, Z, 1.0) noktası aşağıdaki işlemcler sonucunda (X', Y', Z', W') noktasınadönüşür:Görüntü ekrana yansıtılmadan önce son bir dönüşüm daha yapılmalıdır, bu kadarı bile buişlemin karmaşıklığı hakkında size fikir vermiştir. Üstelik bütün bu işlemler tek bir vektör, yanibasit bir çizgi için. Aynı işlemlerin görüntüyü olşturan bütün nesnelere saniyede 60 kereuygulandığını düşünün...Ekran Kartları Bu İşlemlere Ne kadar Yardım Edebiliyor?Önceleri ekran kartları sadece işlemciden gelen sinyalleri monitörün anlayabileceği şekleçeviriyorlardı ve bundan başka bir görevleri yoktu. Görüntü kalitesi yükseldikçe ve işlemcininsırtına binen diğer yükler de arttıkça bu yöntem zamanla geçerliliğini yitirdi.Gördüğümüz gibi öncelikle üçgenlerden ve poligonlardan tel örgü denilen iskelet oluşturuluyorve bu yapı 2 boyutlu bir ekranda gösterilmek için dönüşüme uğruyor. Dönüşen nesnelerkaplanıp aydınlatılıyor ve sonunda da monitöre aktarılıyor. GeForce öncesi TNT 2 ve Vodoo 3gibi ekran kartları dönüşüm işleminden sonra devreye girip kalan işlemleri CPU'nun üzerinden
 

Mehmetkarahanlı

0
Özel Üye
19 Haz 2016
8,533
146
63
CPU`yu bir miktar rahatlatıyorlardı.GeForce ile hayatımıza GPU kavramı girdi. T&L (Transform & Lighting) destekli bu kartlardönüşüm ve ışıklandırma işlemlerini de CPU`nun üzerinden alarak sistemi önemli ölçüderahatlattılar. Bu iki işlemde aynı hesaplamalar üst üste defalarca yapıldığından bunlardonanımsal hızlandırma için çok uygundu. Her iki işlemde de kayar nokta hesaplarıyapıldığından bunlar CPU`nun üzerinde çok ağır bir yük oluşturuyorlardı. Bu sayede CPU dabaşka işlere yoğunlaşabilecekti (yapay zeka gibi).AGPVLB, ISA, PCI erken sonunda ekran kartlarının da işlemciyle direk haberleşmek içinkullanabilecekleri yüksek bant genişliğine sahip slotları oldu. PCI 2.1 spesifikasynlarıylabelirlenen AGP, PCI gibi 33 değil daha yüksek bant genişliği için 66 MHz`te çalışır.AGP de tıkpkı PCI gibi 32 bit genişliğindedir ama 66 MHz`te çalıştığı için en en düşük hızmodunda bile 254.3 MB/s bant genişliğine sahiptir. Bunun dışında kendine özel birsinyalleşmeye 2X, 4X ve 8X hızlarında bu bant genişliği 2`ye, 4`e ve 8`e katlanır. Bu slotunbaşka bir avantaji da PCI veriyolundaki gibi bant genişliğinin paylaşılmaması, AGP`nin bütünbantgenişliği ekran kartına aittir.Bu değerler kulağa hoş gelebilir ama uygulamalarda CPU, ekran kartı dışında pekçok parçayadaha ulaşmak zorundadır. AGP bantgenişliği yüksek olsa bile pratikte değişik AGP modlarıarasında sistemdeki diğer darboğazlar yüzünden beklenilen performans farkı olmaz çoğuzaman.AGP, pipeliningi(İş bölümü) de desteklediği için sistem kaynaklarını daha verimli kullanabilir,pipeliningin ne olduğunu merak edenler İşlemcilerle ilgili yazımıza göz atabilirler. AGP'nin birdiğeravantajı da ana belleği görüntü belleğiyle paylaşabilmesidir. Bu sayede çok yüksekmiktarda görüntü belleğine ihtiyaç duyulmadan gerektiğinde ana bellek görüntü belleği olarakkullanılabilir.API KavramıEkran kartları büyük bir hızla gelişiyor ve hemen her kartın farklı özellikleri var. Programcılarında her kart için ayrı kod yazmaları mümkün olmadığına göre bütün kartların ve yazılımınanlaşabileceği ortak bir platforma ihtiyaç var.İşte bu boşluğu API (Application Programming Interface, Uygulama Programlama Arayüzü)dolduruyor. API, uygulamalarla onları çalıştıran donanımın anlaşmasını sağlıyor. Programlarkodlarını direk donanıma aktarmadan standart biçimde API`ye aktarıyorlar. Ekran kartınınsürücü yazılımı da API`den aldığı bu standart kodları kartın kullanabilceği şekle çevirip kartaulaştırıyor. Oyunlarda en sık kullanılan iki API OpenGL ve Direct3D`dir.OpenGL1992`de Unix tabanlı X terminaller için genel bir CAD ve 3B API`si olarak Silicon Graphics`inIrisGL kütüphanesinden türettiği OpenGL önceleri sadece iş uygulamalarıyla kıstılanmıştı(mekanik tasarım ve bilimsel analiz gibi). 1996`da Windows versiyonunun geliştirlimesindensonra oyun yapımcıları tarafından çok tutuldu ve halen yaygın olarak kullanılıyor.OpenGL gelişmiş pekçok tekniği destekler, texture mapping (yüzeyleri bir grafik dosyasıylakaplamaya yarar), antialiasing, saydamlık, sis, ışıklandırma, smooth shading (bir yüzeydenyansıyan ışık yüzey boyunca farklı etkilerde bulunsa bile shading yapılabilmesini sağlar),motion blur (hareket eden görüntü arkasında iz bırakır) ve modelling transformation(nesnelerin sanal uzaydaki büyüklüklerini, yer ve perspektiflerini değiştirmeye yarar) gibi.Özellikleri bakımından Direct3D`ye benzese de 3B bir sahnenin basit elemanları ve bunlarauygulanacak efekler üzerinde çok etkili bir kontrol sağlar.OpenGL, donanım tarafından iki seviyede desteklenebilir. ICD (installable client drivers)ışıklandırma, dönüşüm ve rasterizationı (bakış açımıdaki pikselleri tanımayı sağlayan biralgoritma) desteklerken MCD (mini client drivers) sadece rasterization desteği vardır
 
Üst