
|
|
Temel 3D Grafik Teknolojileri - 1
Hazırlayan : Ege İyioğlu 3D Grafiğe girizgah Malumunuz
günümüzde artık çoğu oyun 3 boyutlu dünyalarda geçiyor,
mesela bir Quake olsun bir Counter Strike olsun bunlar eski, paralax
scrolling kullanan, bir ekran üzerinde sağa sola yukarı ve aşağı
gidebilen bir kahramanı yönettiğiniz, klasik shoot'em up tarzı
oyunlardan oldukça farklılar. Artık günümüz oyunlarında bir odada
dolaşırken önümüze çıkan sandalyenin etrafından dolanıyor ve
sandalyenin çivisinin elbisemizi yırtmasına şahit olabiliyoruz, bu
esnada tepedeki havalandırma deliğinden içeri süzülen ışık
huzmesinin bir an için gözümüzü kamaştırması da cabası. İşte tüm
bu gerçekçi efekt ve detaylar, işbu yazımızda anlatılacak olan temel
3D grafik teknolojileri kullanılarak oluşturuluyor. Veri Otobüsü
(Data bus) Bir
anakart aldığımızda eğer on-board bir grafik çipi yoksa, bir de
ekstradan grafik kartı almamız gerekiyor. Eskiden ISA da kullanılırdı
ama artık modern kartlar ya PCI ya da AGP formatında geliyor ve bu port
vasıtasıyla anakart hem grafik kartına çalışması için elektrik
veriyor, hem de veri iletişimini sağlıyor. Bu "veri" dediğimiz
şey ekranda çizilmesi istenen görüntüye göre büyük farklılık gösterebiliyor.
Eğer software iniz basit bir excel tablosu ise, grafik kartında işlenen
ve bus vasıtasıyla gidip gelen veriler oldukça küçük olabilir, amma
velakin yüksek çözünürlükte quake oynuyorsanız milyonlarca işlem,
kaplama, geometrik şekil ve bunların işlenmesi için gereken komutlar
bu bus tan geçmek zorundadır. Bus'tan
saniyede ne kadar veri geçeceği, yani bant genişliği, o
bus'ın türüne bağlı olarak değişiyor. Daha eski olan PCI slotları
33Mhz de çalışırlar, 133MB / saniye lik bir veri iletişimine
izin verirler. İlk duyduğunuzda "daha ne yetmez mi?"
diyebilirsiniz ama size söyleyeyim çoğu durumda yetmez, zira özellikle
oyun programları artık grafik kartına çok fazla işlem yaptırmakta ve
ziyadesiyle fazla bandwidth istemektedir. Bu ihtiyaca cevaben ortaya
çıkan AGP (hızlandırılmış grafik portu) slot, 66 Mhz de
çalışır. AGP nin 1x , 2x , 4x gibi çeşitli versiyonları vardır.
Bunlar sırasıyla 266Mb/s , 534Mb/s , 1066Mb/s veri transferine olanak sağlarlar. Şimdi
düşününce sainyede 1GB veri transferi düşününce biraz abartı
gelebilir ama yeni oyunlar ve yeni grafik kartlar çıktıkça bu değer
bile yetersiz kalmaya başlıyor, netekim yakında 8x
standardı ve bu standardı destekleyen grafik kartları ve anakartlar
piyasaya çıkacak. Buradan bir kere daha anlıyoruz ki 3D grafik
uygulamaları gerçekçi 3D ortamlar yatarmak için çok fazla
bandwidth e ihtiyaç duyuyorlar. AGP modları: AGP nin
PCI'a göre avantajı sadece bandwidth ile bitmiyor, bazı özel mode lar
sayesinde PCI'ın ulaşamayacağı performans değerlerini elde
edebiliyorlar. Bunlardan birisi DIME, Direkt Hafıza Erişimi türünden
bir tercüme yapabiliriz. Normal grafik kartları bir görüntüde
ihtiyaç duyulan texture ları (kaplamalar) kartın hafızası yetmediği
zaman sistem hafızasında da saklayabiliyorlar, ve bir frame oluşturulması
gerektiğinde gerekli tecture ı sistem hafizasından lokal hafızaya,
oradan da işlemciye alıp görüntüyü oluşturuyorlar, böylece bir
grafik kartının kullanabileceği hafıza sistem hafızasıyla ya da
mainboard unuzun AGP aperture size isimli ayarında belirtilen değerle sınırlı
oluyor, ama veriyi önce sistem hafızasından lokale oradan da işlemciye getirip
işlemek bir hayli zaman kaybettirip performansı düşürüyor. AGP texturing
kullanıldığında grafik kartı sistem hafızasına direkt erişim
imkanına kavuşuyor ve gerekli bilgileri sistem hafızasından okuduğu
gibi işleyebiliyor bu da tabii ki belirgin bir performans artışını
beraberinde getiriyor. Amma velakin aradaki bus ın yetersiz kaldığı
durumlarda bu da performans açısından bazı olumsuzluklara sebep
oluyor, mesela oyunda yeni bir bölüme geçtiğinizde bir yavaşlama bir
duraklama oluyor ya da oyun frame atlamaya başlıyor.. Yukarıda ifade
ettiğim AGP 8x modu yaygınlaştığında bu olumsuzluğun ortadan
kalkması ve AGP texturing in 3D uygulamalarını büyük ölçüde hızlandırması
mümkün.. Evet
AGP 'nin özelliklerini açıklamaya devam edelim. Bunlardan
biri Sideband Addressing: Kenardan Adresleme Veriyolu diye çevirebiliriz:
Normal durumlarda grafik kartı ile CPU arasında tek şeritli bir yol
vardır, veri ya CPU dan grafik kartına, ya da grafik kartından CPU ya
gider. Ama eğer grafik kartına doğru veri akarken CPU ya bir
komut göndermek gerekirse, bu veri akışını kesip, CPU ya komutu gönderip
veri akışına kaldığı yerden devam etmek gerekir ki takdir edersiniz
bu da performansı düşürecektir. İşte Sideband Addressing olayında işin
içinde CPU ya komut göndermek için bir veriyolu daha oluyor ve
komutlar bu yol kullanılarak her istendiğinde iletilebiliyor ve
performans kayıpları önleniyor. Son olarak Fast Writes diye bir özelliğimiz var, bu olmayan kartlarda cpu grafik kartının işlemcisine birşeyler göndermek istediğinde önce bunları sistem belleğine yazıyor, grafik kartı da kendisine gönderilen verileri sistem belleğine erişip işliyor, bu da zaman ve hız kaybına sebebiyet veriyor. Fast Write kullanabilen kartlarda ise CPU sistem hafızasını kullanmadan direkt olarak grafik kartının işlemcisine erişebilme yeteneği kazanıyor, bu sayede veri akışı daha çabuk gerçekleşebiliyor. Dikkatinizi çekeyim bu Fast Writes teknolojisi şimdilik sadece NVidia tarafından kullanılıyor. Bu yazı dizisine devam edeceğiz ve T&L , Anti-Aliasing gibi konulara birlikte değineceğiz. Şu anda sadece bir başlangıç yaptık. Ege
İyioğlu
|
|