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.
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.

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ı

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

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:
- Doğrudan mod: CPU her FIFO girişini gerekli tüm niteliklerle (konum, normal, renk, doku koordinatı veya matris indeksi) yayınlar. Veriler zaten önbelleğe alınmışsa kullanışlıdır.
- Dolaylı mod: FIFO girişi, öznitelik bilgisinin RAM'de nerede bulunduğunu belirten bir dizin değeri içerir, bu nedenle tepe biriminin bunu kendi başına araması gerekir. Bu veriler bir dizi olarak yapılandırılmıştır, bu nedenle VU'nun bu dizide gezinmesi için her tepe noktası girişinin dizinin nerede başladığını (base pointer), her girişin ne kadar uzun olduğunu (stride) ve tepe noktasının hangi konumda olduğunu (index) belirtmesi gerekir.
İ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

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:
- Dört paralel Piksel birimi ('piksel boru hatları' olarak da adlandırılır): İlkellerimizi rasterleştirir (piksellere dönüştürür). Dört ünitenin mevcut olması, her döngüde 2x2 piksele kadar dağıtım yapılmasını sağlar.
- Her Piksel biriminin sonunda bir Doku eşleme birimi (toplamda dört tane): Bunlar birlikte her döngüde ilkellerimiz (artık yalnızca pikseller) için sekiz adede kadar doku işler.
- Ayrıca, kendini aynı önceliğin üzerine birden fazla doku katmanını birleştirmek için döndürebilir, bu özellik Mutli-Texturing olarak adlandırılır ve detaylı dokular, environment mapping (yansımalar) ve bump mapping gibi durumlarda kullanılabilir.
- Son olarak, birim ayrıca bir erken z-tamponu, mipmapping (bunun yerine küçültülmüş bir doku işleme) sağlar, detay seviyesine göre) ve anizotropik filtreleme (eğimli dokularla daha fazla detay sağlayan önceki filtrelere göre memnuniyet verici bir gelişme).
- Texture Environment unit veya 'TEV': Çok güçlü ve programlanabilir 16 aşamalı renk karıştırıcı. Temel olarak çoklu texelleri (aydınlatma, dokular ve sabitler) birleştirerek çokgenlerimiz üzerinde uygulanacak muazzam miktarda doku efekti elde eder.
- Ünite dört texel alarak çalışır ve bunlar daha sonra talep edilen işleme göre işlenir. Daha sonra, elde edilen texelleri yeni girdi olarak besleyebilir, böylece bir sonraki aşamada/döngüde ünite önceki sonuç üzerinde farklı bir işlem gerçekleştirebilir. Bu 'döngü' 15 iterasyona kadar sürebilir.
- Her aşamada seçilebilecek 2^4 işlem vardır ve sonucun bir sonraki aşamada yeniden işlenebileceği düşünüldüğünde, ~5.64 × 10^511 olası permütasyon vardır!
- Programcılar TEV'i çalışma zamanında kurarlar (yani her an değişebilir) ve bu çok önemlidir çünkü birçok orijinal malzeme ve efekte kapı açar.
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
Render işleminin son aşaması, sahnemize isteğe bağlı ancak yararlı bazı dokunuşlar uygulamayı içerir:
- Sis: Sisli bir ortamı etkili bir şekilde simüle etmek için TEV'deki son rengi sis sabit rengiyle karıştırır.
- Z-karşılaştırma bir geç aşama Z-tamponlama. Motor, Z-buffer hesaplamaları için 2 MB gömülü 1T-SRAM kullanacaktır.
- Blending: Geçerli karenin renklerini önceki kare arabelleği ile birleştirir.
- Dithering: Çerçevenin üzerinde titreme uygular.
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.

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

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.

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

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.

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:
- Bunlardan biri Analog A/V olarak adlandırılmış ve aslında eski Multi Out özelliğidir. Bu en popüler olanıdır.
- Bu konsolun PAL sürümü S-Video taşımaz ve NTSC sürümü RGB sağlamaz (bummer!).
- Dijital A/V adı verilen bir diğeri ise ses ve görüntüyü dijital olarak gönderir (günümüzde HDMI'a benzer şekilde ancak tamamen farklı bir protokol kullanıyor!).
- Nintendo bu sokete bağlanan bir komponent kablo seti çıkardı. Aynı fiş, dijital sinyali YPbPr'ye (optimum kalite) dönüştürmek için bir video DAC ve kodlayıcı içeriyordu.
- Kablo ekstra bir aksesuar olarak satılıyordu ve şimdi bir tür kalıntı olarak kabul ediliyor!


