Webdominant | Paylaşmak özgürlüktür. - 3D Hakkında !
3D Hakkında Dünden Günümüze
Günümüzde güncelliğini tamamen yitirmiş olsa da, 1997 yılından kalma bu yazı, DarkHardware sitesinin ilk yazısı olduğu için, nostaljik bir değer taşıyor. Ülkemizde dergilerin bile 3D hızlandırıcı kavramından habersiz oldukları bir dönemde yazılmış bu yazıyı, yazıldığı dönemin yetersiz şartlarını ve editörün acemiliğini de göz önünde bulundurarak okumanızı dileriz.
Şu günlerde bütün dünyada 3D kart fırtınası esiyor. Hatta sadece 3D kart ile çalışan bir iki yeni oyun bile çıktı. Ama her zamanki gibi bu fırtanadan ülkemize bir iki esinti bile düşmüyor. Ülkemizde bulabileceğiniz tek 3D kart olan 3Dfx işlemcili Diamond Monster 3D kartının Türkiye dağıtıcısı olan firmalar bile sattıkları bu ürünün ne işe yaradığını bilmiyorlar, "Windows hızlandırıcı, grafik hızlandırıcı" gibi abuk sabuk tanımlamalarla satıyorlar ürünlerini...
Bu yazıda sizlere kısaca 3D kartlarını ve kullanıcılar tarafından çok az bilinen Direct 3D ve OpenGL olgularını anlatmaya çalışacağım, kendi bildiğim kadarıyla. Amacım bu konuda ülkemizdeki bilgi açığını bir parça olsun kapatmak. İleride bu sayfayı genişletip komple bir PC grafik donanımı sayfası haline getirebilirim. İlk fırsatta yapmak istediğim bazı ekran görüntüleri ve benchmark sonuçları eklemek.Önerilerinizi bekliyorum.
Yazıyı daha çok sıradan kullanıcıları hedefleyerek yazdım. Dolayısıyla, konuların fazla teknik detayına inmiyorum. Ayrıca, bahsedilen ürünlerin $250'den aşağı olmasına dikkat ettim. Burada bahsedeceğim ürünlerle, binlerce dolarlık profesyonel ekran kartı sistemlerini karşılaştırmanın bir alemi yok. Burada bahsedilen ürünler, sizin, benim satın alma gücüm dahilinde olan ürünlerdir.
Bu yazıyı okumadan önce, isterseniz yazıda isimleri çok geçecek olan, yaygın 3D fonksiyonlarının bir kaçını inceleyelim. Bu fonksiyonları kısaca tanımak için tıklayınız
Donanımdan 3D. Lüks değil, gereklilik...
3D bilgisayar grafiklerinin sonsuz kullanım alanı olduğunu hepiniz biliyorsunuz. Tabii ki bu grafikleri oluşturup, ekrana yansıtmanın, hele bunu gerçek zamanlı olarak yapmanın ne kadar büyük bir işlemci gücü istediğini de biliyorsunuz. Şu anda satın alabileceğiniz en güçlü işlemci bir P2 300, ama bu işlemci bile hareketli bir oyunun saniyede 50 kare gibi bir hızla akmasını sağlayamayacaktır. Bu durumda tek çare 3D hesaplamaların yükünü CPU'dan alıp, başka bir donanım sistemine yüklemek. Aslında donanım yolu ile 3D hızlandırma eskiden beri var olan bir sistem. Ama ilk kez bu yıl, Microsoft'un DirectX sistemine Direct3D alt sistemini dahil etmesiyle donanımdan 3D kullanıcılara yaklaştı. S3'ün uzun süredir beklenen Virge işlemcisi çıktı ve insanlar $100 altında donanım yolu ile 3D sahibi oldular. Oldular ama nasıl?
S3 Virge ile 3D mi? Almayayım, kalsın...
S3 firması, herkesin dört gözle beklediği Virge işlemcisini çıkarttığında, herkesin umudu $100 altında bir fiyata donanımdan 3D hızlandırma elde etmekti. Virge çıktı, işlemci ucuzdu ve 2D işlemlerde gerçekten iyiydi. Kısa sürede Trio64 serisinin yerini aldı. Ama 3D işine gelince...
Virge 3D konusunda dökülüyordu. Hem 3D hesaplamalarda delirtici ölçüde yavaştı, hem de bir 3D uygulamada gerekecek fonksiyonlarin sadece üç-beş tanesine sahipti. Her şeyden önemlisi, oyunlar için vazgeçilmez olan texture transparency (yüzey kaplamalarının şeffaflığı) ve alpha blending (iki şeffaf renk üst üst gelince, yeni bir renk ortaya çıkması) fonksiyonlarını desteklemiyordu. S3 firmalara parayı basıp, bazı popüler oyunların S3 Virge sürümlerini yaptırdı, bu sürümler gayet başarılıydı. Ama yavaşlık ve bahsettiğim iki eksiklik yüzünden Direct3D altında Virge işe yaramıyordu.
Bu olayı kendiniz denemek isterseniz, Internet'den Microsoft Monster Truck Madness oyununun deneme sürümünü çekin. Sanırım MS'in sitesinde vardır. Oyunu açın, 640x480 çözünürlükte ve Graphics menüsünden 3D hızlandırmayı kapatarak oynayın. F4 tuşuna basıp oyunu tam ekran yapmayı unutmayın. Bu durumda, P200 bir makinede yaklaşık saniyede 15 kare civari bir hız elde edeceksiniz..
Şimdi "Graphics" menüsünde 3D hızlandırmayı açın. Oyuna dönün, F4 ile tam ekran yapın (yoksa hardware 3D çalışmaz). Evet, gördüğünüz gibi ekran hafifçe karardı, texturelar da oldukça yumuşadı.Şu anda oyun Direct3D alt sistemini kullanarak, Virge kartınızın üç boyut özelliklerinden yararlanıyor. Ama oyun korkunç yavaşladı. Saniyede 9-10 kare civarı bir hız elde ediyor olmalısınız. Yani 3D hızlandırma oyunu hızlandırmadı, yavaşlattı!
Aslında Monster Truck Madness bir istisna. Bir çok Direct3D oyun sisteminizde Virge varsa, "bu kart benim aradığım fonksiyonların çoğunu desteklemliyor" deyip donanımdan 3D kullanmayı reddeiyor. Artık PC grafik sistemlerine meraklı hiç kimse Virge serisini 3D hızlandırıcı olarak nitelemiyor. Gerçi sonradan çıkan Virge DX ve GX modelleri ile S3 işlemcinin performansını yükseltmeye çalıştı ama bu da işe yaramadı. Ama Virge kartlar 2D işlemlerde oldukça başarılı. Size tavsiyem, sisteminize bir ekran kartı alacaksanız, hiç düşünmeden gidin bir Virge işlemcili kart alın. Ama bu kartı 2D hızlandırıcı bir kart olarak düşünün, satıcının yapacağı "3D hızlandırıcı bu ağbi" muhabbetine de hiç mi hiç kulak asmayın.
Matrox...Akıllıca bir seçim mi?
İyi ekran kartı deyince hemen akla Matrox'un üretiği kartlar geliyor. Doğru, Matrox Millenium 2D hızlandırmada hala rakipsiz. Ama ilanlara bakıp da, "yaw bu kartın 3D özelliği de varmış" demeyin. Millenium pek bir 3D fonksiyona sahip degil, hatta texture mapping bile desteklemiyor. Mystique ise hem 2D konusunda sıradan bir performansa sahip, hem de 3D konusunda işe yarayacak bir şey sunmuyor. Virge gibi bu işlemcide de eksik fonksiyonlar var. Eğer gerçekten yüksek 2D performansı istiyorsanız, Millenium alın, ama 3D düşünüyorsanız biraz daha bekleyin.
Virge'den geçtik, Voodoo'da karar kıldık...
Peki ne satın alacağız? Piyasada şu anda öyle bir 3D karmaşası var ki. Var olan ürünleri genel olarak iki gruba ayırabiliriz:
- Sadece 3D işlemciler
- 2D ve 3D işlemciler
Her iki sistemin de kendine göre avantajları ve dezavantajları var. Sadece 3D işlemciler genelde ayrı bir kart olarak satılıyor ve bir ara kablo ile var olan 2D ekran kartınıza bağlanıyor. Bu sistemin avantajlarını ve dez avantajlarını şöyle sıralayabilirim:
Var olan 2D karttan yararlanma. Gerektiğinde sadece 2D ya da 3D kartı değiştirebilme. Sadece tam ekran çalışabilme.
Hem 2D, hem 3D işlemcilerin yavaşlık ve uyumsuzluk problemlerine son. Sadece 3D için optimize edilmiş mimari. İşgal edilen ilave bir PCI yuvası
Kendine ait bellek sayesinde, ekran kartı belleğini 2D işlemci ile paylaşma zorunluluğuna son. Dolayısıyla, daha çok Z-Buffer ve texture belleği. 2D kart ya da başa bir komponent ile uyumsuzluk çıkma olasılığı (ki bu ihtimal hayli yüksek)
Bu sisteme sahip kartlar şu anda piyasada başı çekiyor. Bu kartların hemen hemen tümünün kullandığı işlemci ise 3Dfx firmasının Voodoo Graphics isimli chipseti. Voodoo inanılmaz yüksek bir 3D performansı sunuyor, üstelik bir 3D uygulamanın bekleyeceği her fonksiyona da sahip. Uzun bir süre rakipsiz kalan Voodoo bütün dünyada peynir ekmek gibi sattı. Hala da satmaya devam ediyor. Diamond Monster 3D, Orchid Righteous 3D ve Cardex 3D Dragon bu chipseti kullanan üç kart. Fiyatları 150-200 dolar arası değişiyor ve her birinin 4 Mb belleği var. Fazla teknik detaya girmiyorum, teknik detayları ve rakamları daha sonra ekleyeceğim. Bu kartları alıyorsunuz, sisteminize takıyorsunuz ve var olan 2D kartınıza bir ara kablo ile bağlıyorsunuz. Bu kablo "feature connector" değil, arkadan bağlanılan bir pass-through kablosu. Win95 kartı "multimedia device" olarak görüyor ve kuruyor.
Kartı kurdunuz. Şimdi yapabileceğiniz iki şey var. Sevdiğiniz bir 3D oyunun Internet'den 3Dfx'e özel patchini çeker, oyunu bu patch ile yamalar ve yeni kartınızı denersiniz.Elde edeceğiniz performans ve görüntü kalitesi artışı göz kamaştırıcı olacaktır. 320x200x256 renk ile zar zor çalışan Tomb Raider oyunun 640x480x64k renk ile çalıştığını bir düşünün!
İkinci ihtimal, Direct3D kullanan bir oyunu denemek. Yine Monster Truck'i kurun, ve yine Hardware 3D seçeneğini seçin. Nasıl, bu sefer bambaşka değil mi? Demin 9-10 kare yakalayan P200 sistem şimdi saniyede en az 25 kare yakalamaya başlayacaktır. Hemen her oyunun ya 3Dfx, ya da Direct3D için patchi ciktigi günümüzde uzun bir süre oyunsuz kalmazsınız. Hadi iyi oyunlar.
3Dfx derken, bahsetmem gereken bir şey daha var. 3Dfx'in Voodoo Rush işlemcisi. Bu işlemci 2D işlemci ile aynı kart üzerinde çalışıyor. Yani bir ekran kartı alıyorsunuz, üzerinde bir 2D işlemci ve Voodoo Rush var. Bu sayede uyumsuzluk sıfıra inmiş durumda, üstelik sadece bir tek PCI yuvası işgal ediliyor ve pencere içinde Direct3D kullanma imkanı var. "Vallahi çöpsüz üzüm" dediğinizi duyuyorum ama öyle değil. Neden bilmiyorum ama 3Dfx firması piyasadan Voodoo Rush işlemcili kartları topluyor, yerine ücretsiz olarak Voodoo Graphics işlemcili kartlar veriyor. Niye bilmiyorum, ama tek mantıklı açıklama Voodoo Rush chipinde firmanın farkettiği ciddi bir arıza olması.
Voodoo'dan başka seçenek yok mu?
Var. Söylediğim gibi, bir de hem 2D, hem 3D işini tek işlemciyle halleden sistemler var. Üstelik bu konuda seçeneğiniz daha çok. Hemen akla gelen işlemciler:
#9 Revolution(tm) 3D
ATI XPERT( at )Play
3Dlabs PERMEDIA® 2
Ve bu liste her geçen gün uzuyor. Arada çok dikkat çekici ürünler var. Her ürünün kendine göre bir avantajı var. Mesela kimsenin hakkında bir şey bilmediği Pyramid3D, inanılmaz bir 3D rendering kalitesine sahip. Adamlar dünyanın en iyi demo gruplarından Future Crew ile birlikte hazırlamışlar 3D hesaplama algoritmalarını, haliyle mükemmel bir ürün çıkmış. Ama işlemcinin diğer özellikleri ile ilgili hiç bir bilgi yok. Tek bilinen, hızlı, ama çok çok hızlı olduğu.
Bu işlemcilerin avantaj-dezavantaj tablosu şöyle:
Sadece tek kart ile hem 2D-hem 3D. Maliyet oldukça düşük. Bu sistemlerin en büyük sorunu: DOS ve 2D performansları çok düşük. Hatta bazı kartlar VGA uyumlu değil, DOS altında doğru dürüst çalışmıyorlar.
Uyumsuzluk problemi yok. Bağlantı kablosu sorunları yok. Driver sorunları yok. Ekran kartı belleği hem 2D, hem Z-Buffer hem de texture belleği olarak kullanılıyor, bu durumda en az 6 Mb gerekli.Oysa çoğu ürün sadece 4 Mb içeriyor.
Sadece tek bir PCI yuvası kullanılıyor. S3 bu alanda zayıf kalınca, piyasada büyük bir karışıklık doğdu. Herkes kendi standartını koymaya çalışıyor. Şu anda alacağınız canavar gibi karta, iki gün sonra bütün yazılım üreticileri sırt çevirebiliyor. Voodoo gibi oturmuş değiller.
Bu ürünlerden üç tanesinin üstünde durmak gerekiyor. Birincisi 3Dlabs'ın Parmedia 2 işlemcisi. 3D performansı inanılmaz, üstelik tam OpenGL desteği vererek profesyonellerin ilgisini çekiyor. Ama 2D işlemlerde oldukça zayıf. 3D animasyon ile ilgileniyor, ya da sadece Windows altında Direct3D oyunları oynuyorsanız düşünmeden alın, ama diğer konularda verimli bir seçim olmayacaktur.
İkinci dikkate değer ürün Renditon Verite.Yeni V2200 ve V2100 işlemcileri ile iyi bir çıkış yaptı firma. İşlemcilerin 3D performansı ve özellikleri iyi, 2D konusunda da idare eder oldukları söyleniyor. Yeni çıkan Diamond Stealth II, Verite V2100 işlemcisini kullanıyor ve uygun bir fiyatı var, mantıklı bir seçim olabilir. Yalnız Verite serisinin V2200 işlemcisinin gerçekten dikkate değer bir performans sağladığını, küçük (ve ucuz) kardeş V2100'ün pek de hızlı olmadığını söylemeliyim.
Üçüncü işlemci benim en çok ilgimi çeken ürün, Riva 128. SGS-Thomson ve NVIDIA firmalarının ortak ürünü. Yukarıda saydığım işlemciler içinde 3D performansı Voodoo'ya yetişen tek işlemci bu. SGS-Thomson askeri uçuş simulatorleri dizayn eden dev bir kuruluş. NVIDIA ise daha önce 3D hızlandırıcı piyasasına girmeye çalışmış ve sonuç fiyasko olmuştu (Şu milletin elinde kalan, hiç bir işe yaramaz Diamond 3D Edge kartları var ya. İşte onlar NVIDIA kullanıyordu). Aslında NVIDIA'nın işlemcisi teknik olarak çok üstündü, üçgenlerle değil, eğrilerle çalışan bir mimarisi vardı ve özellikle texture kaplamada harikaydı. Ama uyumsuzluğu ve yazılım desteği gelmemesi, bir de üstüne rezalet 2D performansı gelince Diamond 3D Edge projesi herkes için, ama en çok da kartı satın alanlar için hüsran oldu.
NVIDIA şimdi Riva 128 ile oldukça güçlü dönüyor. Düşük 2D performansı sorunu, 32 bit çalışan bir VGA çekirdeği ile çözülmüş. 3D performansı Voodoo'ya eşdeğer, hatta üstün. Direct3D ve OpenGL sayesinde uyumsuzluk sorunu halledilmiş durumda. Tek gözüken sorun, yetersiz bellek, ve performansın CPU'ya bağımlı olması. Özelikle yetersiz bellek can sıkıcı bir sorun. Mesela Diamond'un Riva işlemci kullanan Viper V330 kartı sadece 4Mb bellek içeriyor. İşin içine Z-buffer ve texture belleği girince, 4Mb kesinlikle yeterli bir rakam değil. Bilmiyorum bu sorunu nasıl çözecekler, bu sorun olmasa Riva 128 gerçekten en akılcı seçim olacaktır. Şu anda Diamond Viper V330 ve Asustek 3Dxplorer bu işlemciyi kullanan iki kart. Yakında Riva işlemcili kartlar artacaktır.
Bende hem Virge, hem Voodoo var... Yazılım hangisini kullanacak?
Bu çok kafaya takılan bir soru. Olayı kısaca açıklayayım, bu arada Direct3D olgusuna da kenardan bir giriş yapmış oluruz.
Direct3D, sizin 3D donanımınız ile kullandığınız uygulama arasında bir katman, ikisinin anlaşmasını sağlayan bir arayüz. Hardware Absorbation Layer (HAL) deniyor buna. Siz 3D kartınızı takıyorsunuz, sürücüleri yüklüyorsunuz, daha sonra da DirectX'i yüklüyorsunuz. Sonra da Direct3D destekli bir oyun yüklediniz diyelim. Bu durumda, oyun DirectX sistemine "Bana şu ve şu fonksiyonlar lazım, sende neler var?" diye soruyor. Ekran kartınız DirectX'e sahip olduğu yetenekleri anlatıyor. 3D kartınız da sahip olduğu fonksiyonları DirectX'e anlatıyor. DirectX bu verileri değerlendirip, oyunun istediği yetenekler 3D donanımınızda varsa, bunu oyuna bildiriyor. Bundan sonra da oyun 3D hesaplamalar için Direct3D yolu ile sizin 3D donanımınızı kullanıyor, donanımınızın kapasitesi ölçüsünde, hızlı ve kesintisiz bir oyun oynama imkanına kavuşuyorsunuz.Yani kartınızın, işlemcinizin markası önemli değil, yeter ki gerekli 3D fonksiyonlari eksiksiz ve hızlı olarak var olsun.
Eğer oyunun istedği yetenekler 3D donanımınızda yoksa, iki seçenek var. Çoğu oyun, software emulation moduna geçip, 3D donanımın yapması gereken şeyleri CPU'ya yaptırıyor. Oyunu yine oynayabiliyorsunuz, ama oldukça yavaşlamış olarak. Yeni gelen bazı oyunlar ise software emulation kullanmıyor ve aradığı fonksiyonlar donanımda yoksa çalışmıyor. Bu şekilde çalışıp, mutlaka 3D hardware isteyen oyunlar yaygınlaşarak geliyor, haberiniz olsun.
Şimdi..Sisteminizde hem bir S3 Virge gibi kısmi 3D sağlayan, hem de Voodoo gibi tam 3D desteği veren iki kart birden var diyelim. Bu durumda, DirectX kartlardan gelen verileri değerlendirip, en yetenekli karta veriyor oyunu çalıştırma işini. Mesela bu örnek verdiğim ikilide, Voodoo'nun fonksiyonları Virge'den kat kat fazla olduğu için, DirectX her zaman Direct3D işini Voodoo'ya atıyor.
Direct3D olayını kısaca açıkladım. Gördüğünüz gibi, Direct3D sayesinda aldığınız 3D kart ne marka olursa olsun, kartın 3D fonksiyonlarını kullanıyorsunuz ve donanımdan hızlandırılmış 3D oyunlar oynayabiliyorsunuz. Aslında benzer bir çözümü, profesyonel platformda yılladır sağlayan bir sistem daha var. OpenGL.
OpenGL Direct3D'ye az çok benzeyen, ama ondan daha üstün bir sistem. Uzun vadede Direct3D'yi ortadan kaldıracağı söyleniyor. Profesyonel uygulamalardan OpenGL'e korkunç bir destek var. Tek kusuru, donanımdan OpenGL'in oldukça pahalı olması. Parmedia işlemcili, tam OpenGL desteği veren bir kartı şu anda $300'den aşağı alabilmeniz mümkün değil. Bu nedenle de şu anda oyun üreticilerinden OpenGL'e pek bir destek yok. Sadece Quake için OpenGL desteği veren GLQuake var, o kadar. Ama OpenGL sistemler ucuzladıkça oyunlardan aldıkları destek de artacaktır.
Yazılım ile OpenGL.Ciddiye almaya değer mi?
Değmez. Piyasada 25-35 dolara satılan kartlar var, OpenGL destekli diye. Satıcıyı biraz sıkıştırın, OpenGL'in ne olduğu konusunda bile pek bir fikri olmadığını göreceksiniz. 35$'a OpenGL diye bir şey yok arkadaşlar, keşke olsaydı da hepimiz bu mükemmel sistemi kullanabilseydik. Bu kartlar yazılım yolu ile OpenGL desteği veriyor. Microsoft'un sitesinde OpenGL 1.1 kütüphanesi var. Gidin bu dosyayı çekin, içinden çıkan iki tane DLL dosyasını system dizinine atın, olur en kalitesiz ekran kartınız bile OpenGL destekli. Ama yazılım ile OpenGL bu. Olması gerektiğinden yaklaşık 10-15 kat yavaş bir OpenGL desteği. Hiç ama hiç bir işe yaramaz. Sadece bazı VRML browserlarda, bir de Lightwave 3D'de birazcık iş görüyor, o kadar. En çok işe yaradığı konu, OSR2'nin içinden çıkan OpenGL destekli ekran koruyucuları çalıştırması.
Yukarda saydığım ürünlerin OpenGL desteğine gelince, durum biraz karışık. Üreticiler her zaman doğruyu söylemiyor, yazılım ile OpenGL desteğini hardware'den destekmiş gibi göstermeye çalışıyorlar. Saydığım ürünlerden tam OpenGL desteği veren tek ürün Parmedia işlemcili olanlar, bir de Pyramid3D. Diğerleri farklı yazılım-donanım kombinasyonları ile OpenGL sağlıyor. 3Dfx firması Voodoo için tam OpenGL desteği verecek sürücüleri yazdığını söylüyor ama henüz ortada bir şey yok.
Evet. Şimdilik bu kadar. Sanıyorum ki kafanız daha da karıştı. Ben de aynı durumdayım. Piyasa öyle belirsiz ki, kimin ne yaptığı belli değil, her gün yeni bir işlemci çıkıyor. Mantıklı hareket, sanıyorum biraz sabredip, fırtınanın geçmesini beklemek. En azından yılbaşına kadar beklemek akıllıca olabilir. Benim kişisel seçimim, hızlı bir 2D kart ile, bu karta bağlanmış bir 3Dfx Voodoo işlemcili kart olacak gibi. Ama Riva 128'de fena gözükmüyor. Karar vermek imkansız gibi. Hadi size kolay gelsin.