| Ana Sayfa | Eğitim CD | Eğitim Kitapları | Güncel Dersler | Donanım Haber | Duyuru | Forum | İletişim |

 

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

Hemen hepimizin bilgisayar almaya kalktığımızda ilk seçtğimiz parçalardan biri de ekran kartı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.


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ğunu görürsünüz. İşte bu noktlara görüntünün en küçük birimi olan piksel diyoruz. Her pikselin kendine ait renk ve yoğunluk bilgileri vardır. Daha genel bir tanımla piksel için ekranın bağımsız olarak kontrol edilebilir en küçük parçası olduğunu söyleyebiliriz. İşte bu piksellerden binlercesi bir 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 piksel cinsinden belirtilir (800x600,1024x768 gibi). Çözünürlük arttıkça görüntü birbirinden bağımsız olarak 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ük arttıkça ekrandaki kullanılabilir alan da artar. Windows ekranında çözünürlük ne olursa ekrandaki nesneleri oluşturan piksel sayısı değişmez. Çözünürlük arttıkça pikseller de küçüleceği için nesneler daha az yer kaplar ve masaüstündeki kullanılabilir alan çözünürlükle doğ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ük yüseldikçe kontrol edilmesi gereken piksel sayısı ve dolayısıyla da gerekli işlem gücü, ayrıca bu piksellerin bilgilerini tutmak için gerekli bellek miktarıyla onların transferi için gereken bellek bant genişliği artar. Bu yüzden de performans düşer. Kullanmak istediğiniz çözünürlüğü hem ekran kartınız desteklemeli, hem de monitörünüz fiziksel olarak gerekli sayıda pikseli ekranda oluşturabilmeli.

Renk Derinliği

Piksellerin kendilerine ait renklerinden bahsetmiştik, piksellerin alabileceği renkler kırmızı, yeşil ve maviden türetilir. İşte renk derinliği bu renklerin miktarını belirler. Renk derinliği ne kadar artarsa 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. Her bit 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.

İ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. Bu moda True Colour (Gerçek Renk) adı verilir. Fakat çoğu güncel ekran kartı görüntü belleğini kullanma 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. Renk kalitesinde 32 bite göre çok az fark olsa da piksel başına 4 yerine 2 byte (8 bit = 1 byte) hafıza gerekeceğ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 bir yöntemle bu 8 bit olabilecek en verimli şekilde kullanılarak renk kalitesi biraz arttırılır. Renk paletinin mantığı söyledir: Kullanılacak 256 renk gerçek renk modundaki 3 bytelık renklerden seçilir ve bu renklerden bir renk paleti oluşturulur. Her program ilgili paletteki 256 renkten istediğini seçip kullanabilir. Böylece örneğin kırmızı için iki, mavi ve yeşil için de üçer bit kullanılarak elde edilen renklerden daha canlı renkler elde edilebilir ve elimizdeki 8 bit en verimli ş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ın bir 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 daha düşüktü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ı yapmak için ekran kartının üzerine oturtulmuş bir CPU`dur dersek yanlış olmaz. Son zamanlarda grafik işlemcileri yapı ve karmaşıklık bakımından CPU`ları solladılar ve işlev bakımından da görüntü üzerine yoğunlaşmış bir CPU niteliğine kavuştular. CPU`ya neredeyse hiç yük bindirmeden üç boyutlu işlemcleri tek başlarına tamamlayabiliyorlar artık. Bu yüzden de güncel grafik işlemcileri GPU (Graphics Processing Unit - Grafik İşlemci Birimi) adıyla anılıyorlar.
  • Görüntü Belleği: Ekran kartının üzerinde bulunur ve görüntü hesaplamalarıyla ilgili veriler burada saklanır. Sisteminizdeki ana bellek gibi çalışır, yalnız burada bu belleğin muhattabı CPU değil görüntü işlemcisidir. Önceleri ekran kartlarının ayrı bellekleri yoktu fakat 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ırma algoritmalarıyla bu belleği ne kadar verimli kullanabildiği de önemlidir.
  • RAMDAC: Monitörlerdeki analog sinyallerden bahsetmiştik, işte RAMDAC (RAM Dijital-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 ve bunlar her saniye belirli bir sayıda görüntü belleğini tarayıp oradaki verileri analog sinyallere dönüştürürler. RAMDAC`in bu işlemi ne kadar hızlı yapabildiği ekran tazeleme hızını belirler. Bu hız Hz cinsinden belirtilir ve ekrandaki görüntünün saniyede kaç kere yenilendiğ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 Hz arası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ında detaylı olarak değineceğiz.
  • BIOS: Ekran kartlarının da birer BIOS'ları vardır. Burada ekran kartının çalışma parametreleri, temel sistem fontları kayıtlıdır. Ayrıca bu BIOS sistem açılırken ekran kartına ve onun belleğine de küçük bir test yapar.

Lighting (Işıklandırma)

Karanlık bir odaya girdiğimizde ışığı açarız ve ışık kaynağından her yöne doğru yayılan ışık sayesinde 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 kaplayan kaplamalar (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çılarla yansı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 rol oynar: Shading ve gölgeler. Shading, bir nesne üzerindeki parlayan ışığın bir tarafında diğer tarafından daha güçlü olmasıdır. Ancak shading sayesinde bir top yuvarlak veya buruşmuş bir battaniye yumuşak görünebilir. Parlaklıktaki bu fark nesnelere derinlik, uzunluk ve genişlik kazandırır.

 


Işıklandırma, nesneye sadece derinlik katmakla kalmayıp onu üzerinde bulunduğu yüzeye de bağıyor.

Katı nesneler üzerlerinden ışık parladığında gölgeler yaratırlar. Gözlerimiz gerçek nesneleri gö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.

 

Perspektif

Perspektif kulağa biraz teknik gelebilir ama günlük yaşamımızda çok sık gördüğümüz bir etkidir. Bir yolun kenarında durup ufuk çizgisine doğru baktığınızda yolun iki kenarı da birleşiyormuş gibi görünür. Yol kenarında ağaçlar varsa da bu ağaçlar birleşme noktasına yaklaştıkça da daha küçük görünür. Nesnelerin bir noktada birleşiyormuş gibi görünmesini sağlayan bu efekt perspektiftir. Değişik çeşitleri vardır fakat 3B çizimlerde genelde tek noktalı perspektif kullanılır.


 

Şekildeki eller ayrı duruyor fakat çoğu sahnede nesneler birbirlerinin önünde dururlar ve birbirlerini kısmen kapatırlar. Bu durumda bunların büyüklüklerinin hesaplanması dışında hangisinin önde olduğu da bilinmelidir. Bunun için Z Buffering denilen teknik kullanılır. Z buffera her poligon için bir sayı atanır ve bu sayı o poligona sahip nesnenin sahnenin ön tarafına yakınlığını belirler. Öneğin 16 bitlik bir Z bufferekrana en yakın poligon için -32768 ve en uzak poligon 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ız gerektiğ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ğerleri karşılaştırılır ve en düşük Z değerine sahip nesne tamamen görüntülenir. Daha yüksek Z değerindekilerinse tamamı görüntülenen nesneyle kesişen bölgeleri görüntülenmez. Nesneler tamamen oluşturulmadan önce Z değerleri belirlendiği için görünmeyecek bölgeler tamamen hesaplanmaz 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 kaybettiklerini görürsünüz.

Filmlerde ve bilgisayar ortamında sık kullanılan bu efekt iki amaca hizmet eder. İlki sahnedeki derinlik hissini güçlendirmektir. İkincisi ise dikkatinizi bir nesneye çekmektir.


 

Anti-aliasing

Bu teknik de gözü aldatarak görüntünün doğal görünmesini amaçlar. Dijital görüntü sistemleri aş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 de daha çok bir merdiven gibi gözükür. İşte bu nokada devreye anti-aliasing girer ve çizginin kenarları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-aliasingde doğru pikselelleri çin doğru renkleri seçmek de başka bir karmaşık işlemdir ve sisteme oldukça yük bindirir.


Sadece düz çizgilerdeki pikseller kullanıldığında basamak efekti oluşur.
 

Kenarlardaki piksellerin etrafındakiler de kullanılarak basamak efekti azaltılır.

Copyright©2007 Bilgisayardershanesi.COM