« GameCube'un Mimarisi (index)

GameCube'un Mimarisi

Chapter 4: Grafikler


İçindekiler

  1. Mimari ve Tasarım
    1. Veritabanı
    2. Geometri
    3. Doku
    4. Render
  2. İnteraktif karşılaştırma
    1. Yükseltme
    2. Güncelleme
  3. Yaratıcılık
  4. Video çıkış sistemi
  5. Bağlantılar

Bu, bu konsolun en kritik bölümlerinden biridir, temelde GameCube'ü bir GameCube yapar.

Bu konsolun GPU'sunun geçmişi bazı ilginç bağlantılara sahiptir: N64'ün SoC'sinin (the RCP) yöneticisi Wei Yen, daha sonra ArtX'i kurdu ve yeni nesil çiplerini geliştirmek için Nintendo ile bir sözleşme imzaladı: Flipper.

Image
Super Mario Sunshine (2002).

Bir önceki iterasyona göre pek çok ilerleme kaydedildi, örneğin alt sistem ciddi şekilde basitleştirilerek tek (ama güçlü) bir çekirdeğe indirgendi.

Geliştirme süreci sırasında ArtX, ATI tarafından satın alındı ve bu şirket de altı yıl sonra AMD'ye satıldı. Bu nedenle, kasanın ön tarafında damgalanmış bir ATI etiketi görürsünüz.

Mimari ve Tasarım

Flipper birden fazla hizmeti işleyen karmaşık bir bloktur , bu yüzden şimdilik grafik bileşenine odaklanalım (geometrimizi hayata geçirmekten sorumlu olduğu için). Bu alanı GPU veya Grafik Motoru olarak adlandıracağız ve eğer N64 makalesini okuduysanız, sadece bileşenin kutudan çıktıktan sonra çalışır hale geldiğini bilmenizi isteriz, bu yüzden programcıların çalışmasını sağlamak için kod enjekte etme endişesi olmayacak. Bununla birlikte, özelleştirilebilir bazı ilginç parçalar olacaktır.

Image
Flipper'ın GPU'sunun boru hattı tasarımı.

Her zaman olduğu gibi, ekrana bir kare çizmek için verilerimiz GPU'nun boru hattından pompalanacaktır. Veri, dört aşamada gruplandırabileceğimiz birçok farklı bileşenden geçer:

Veritabanı

Image
Veritabanı aşama diyagramları.

CPU ve GPU, ana RAM'de sabit uzunlukta bir FIFO tamponu kullanarak birbirleriyle iletişim kurar; bu, CPU'nun GPU'nun okuyacağı (ve sonunda görüntüleyeceği) çizim komutlarını yazacağı ayrılmış bir bölümdür, bu işlevsellik CPU ve GPU tarafından yerel olarak desteklenir.

Ayrıca, CPU ve GPU'nun aynı anda aynı FIFO'ya işaret etmesi gerekmez, bu nedenle GPU ilkini okurken CPU ayrı bir tane doldurabilir . Bu, boşta çalışmayı önler.

Geometrimizi oluşturmak için tek tek komutlar vermek karmaşık sahnelerde çok sıkıcı olabilir, bu nedenle resmi kütüphaneler, oyunun varlıklarından gerekli Görüntüleme Listelerini (önceden derlenmiş set FIFO komutları) oluşturan araçlar içeriyordu, bu yığının yalnızca GPU'nun bunları etkili bir şekilde görüntülemesine izin vermek için RAM'e kopyalanması gerekiyor.

GPU, FIFO'dan komutları almakla görevli bir komut işlemcisi içerir.

Geometri

Image
Dolaylı mod kullanılarak Vertex aşama diyagramı.

Burada ilkeller istenen manzaraya göre şekle dönüştürülür ve pikselleştirme (rasterisation) için hazırlanır. Motor bunu gerçekleştirmek için özel bir Vertex ünitesi veya 'VU' kullanır.

FIFO aracılığıyla verilen ilkelleri işlemek için iki vertex modu mevcuttur:

İlkel öğeler yüklendikten sonra dönüştürülebilir, kırpılabilir, ışıklandırılabilir (her bir tepe noktası Gouraud Gölgelendirme amaçları için enterpole edilebilen bir RGB değerine sahip olacaktır) ve son olarak projelendirilebilir.

Doku

Image
Varsayılan kurulum kullanılarak doku aşaması diyagramı.

Şimdi sıra modellerimize doku ve efektler uygulamaya geldi ve bunun için GPU, piksellerimizi işleyecek birden fazla birim içeriyor. Şimdi, bu çok sofistike (ancak oldukça karmaşık) bir prosedürdür, bu nedenle takip etmekte zorlanırsanız, bunu pikselleri işleyen büyük bir montaj hattı olarak düşünün. Bununla birlikte, üç grup ünite mevcuttur:

Tüm bunlar, önbellek ve Scratchpad belleğine (hızlı RAM) bölünebilen 1 MB Doku belleği (1T-SRAM tipi) ile desteklenir. SRTC (S3 Texture Compression) dokuları için gerçek zamanlı donanım dekompresyonu da mevcut tek megabyte belleğe daha fazla doku sığdırmak için kullanılabilir.

Render

Image
Render aşaması diyagramı.

Render işleminin son aşaması, sahnemize isteğe bağlı ancak yararlı bazı dokunuşlar uygulamayı içerir:

Ortaya çıkan çerçeve son olarak gömülü 1T-SRAM'deki çerçeve arabelleğine yazılır, ancak bu hala Flipper'ın içinde kilitlidir (alan 'Embedded Frame Buffer' (Gömülü Çerçeve Arabelleği) veya 'EFB' olarak adlandırılır, ancak z-buffer'ı da içerir). Bu nedenle, TV'mizde görüntülemek için, External Frame-Buffer veya 'XFB'ye kopyalamamız gerekir; bu da Video Interface veya 'VI' ile alınabilir. Ayrıca kopyalama işlemi Antialiasing (bloklu kenarları azaltır), Deflicker (parlaklıktaki ani değişiklikleri yumuşatır), RGB'den YUV'ye dönüştürme (bellekte daha az yer kaplayan benzer bir format) ve Y-scaling (kareyi dikey olarak ölçeklendirir) gibi efektler uygulayabilir.

XFB alanının CPU tarafından da manipüle edilebildiğini belirtmek gerekir; bu, daha önce işlenmiş bitmap'leri son işlenmiş karemizle birleştirmesini sağlar; veya bazı oyunların EFB'ye sığamayan çok renkli zengin kareler işlemesi gerektiğinde, bunlar parçalar halinde işlenir ve daha sonra CPU tarafından birleştirilir (her zaman VI ile senkronize kalır).

İnteraktif karşılaştırma

Tüm bunları bir perspektife oturtmanın zamanı geldi, programcıların bu konsolun yeni grafik özelliklerinden yararlanmak için önceki oyunlarının tasarımlarını nasıl geliştirdiklerine bir göz atın. Örneklerin interaktif olduğunu unutmayın!

Yükseltme

Önceki nesilde poligon sayısı nedeniyle küçültülmek zorunda kalan ünlü Mario modeli bu nesil için tamamen yeniden tasarlandı, modelin düz yüzeylerden detaylı kollara nasıl evrildiğine yakından bakın.

3D model 3D model 3D model
Etkileşimli model modern sürümde kullanılabilir
Super Smash Bros (1999) N64.
320 üçgen.

3D model 3D model 3D model
Etkileşimli model modern sürümde kullanılabilir
GC için Super Smash Bros. Melee (2001).
4,718 üçgen.

Sadece iki yıl içinde ne kadar çok ayrıntı kazanıldığı gerçekten etkileyici, değil mi?

Güncelleme

Bu durumda, Sonic Team zaten kendi benzersiz konsolları için bir Sonic modeli tasarlamıştı, ancak oyunlarını GameCube'e taşıdıktan sonra modellerine daha fazla poligon ekleyebildiklerini ve daha iyi ayrıntılar elde ettiklerini gördüler.

3D model 3D model 3D model
Etkileşimli model modern sürümde kullanılabilir
DC için Sonic Adventure (1999).
1,001 üçgen.

3D model 3D model 3D model
Etkileşimli model modern sürümde kullanılabilir
DC için Sonic DX (2003).
1,993 üçgen.

Yaratıcılık

Bu boru hattının iç işleyişinden de görebileceğiniz gibi, grafik teknolojisi, programcıların artık işleme sürecinin belirli işlevlerini kontrol edebilecekleri noktaya kadar gelişmektedir.

Image
The Legend of Zelda: The Wind Waker (2003).

Aynı dönemde, PC grafik kartları sabit işlevli boru hatlarını shader çekirdekleri (piksellerin nasıl çalıştırılacağını tanımlayan küçük programları çalıştıran birimler) lehine bir kenara bırakmaya başlıyordu. Flipper hala sabit işlevli bir GPU içeriyor, ancak TEV birimi gibi bileşenleri dahil ederek Nintendo'nun kendi gölgelendirici benzeri çözümünü sağladığı iddia edilebilir.

Sanırım bu yeni yeteneği kullanan oyunların en iyi örneklerinden biri, dokularının karikatürümsü görünmesini sağlamak için Cel shading olarak bilinen benzersiz bir renk/ışıklandırma tekniği uygulayan The Legend of Zelda: Wind Waker'dır.

Video çıkış sistemi

Video sinyali, 16,7 milyon renge (24 bit derinlik) kadar 640x480 piksele kadar (veya PAL'de 768×576 piksel) çözünürlük sunar. Ayrıca, sistem sinyalini ilerleme modunda (daha net bir görüntüye sahip, ancak o dönemde her TV bunu desteklemiyor olabilir) yayınlayabiliyordu.

XFB birden fazla boyuta sahip olabilir, bu nedenle uyumluluk nedenleriyle Video arayüzü, XFB'yi bölgeye göre TV ekranına sığacak şekilde yeniden örnekleyerek kareyi görüntülemek için elinden geleni yapacaktır.

Bağlantılar

Konsolda bir değil, iki video çıkış konektörü bulunuyordu:

Image
A/V Bağlantıları arkada.


Previous: 3. İşlemci (CPU)

Next: 5. Ses


Rodrigo Copetti © 2026 RSS Feed

Modern baskıya geçin

Ana sayfa · Yazılar · Destek · Yazar hakkında · Web sitesini hakkında