« PlayStation 2'nin Mimarisi (index)

PlayStation 2'nin Mimarisi

Chapter 5: Grafikler


İçindekiler

  1. Mimari ve Tasarım
    1. Ön İşleme
    2. Pikselleştirme (Rasterisation)
    3. Doku Kaplama
    4. Testler
    5. Son İşleme (Post-Processing)
  2. Daha fazla Son İşleme
  3. İyileştirilmiş Modellemeler
  4. Video Çıkışı

Emotion Engine tarafından yapılan tüm bu işler göz önüne alındığında, geriye bir şey kaldı mı? İşte kalan son adım: Görüntüleme!

Image
Final Fantasy X (2001).

Tam da bu iş için özelleştirilmiş, basit fakat hızlı bir çip mevcuttur: Grafik Sentezleyici (Graphics Synthesizer) ya da 'GS' ve bu ~147.46 MHz'de çalışıyor. Görüntü işlemenin tümünü kendi içinde halledebilmek için 4 MB DRAM'i gömülü olarak içerir. Böylece, ana hafızaya erişim ihtiyacı ortadan kalkar. Gömülü RAM (eDRAM), ihtiyaç duyulan veri türüne göre farklı veri yollarıyla bağlanmıştır.

GS, bu sitede daha önce ele anınan diğer grafik sistemlerinden daha az özelliğe sahiptir. Buna rağmen, yaptığı işte oldukça hızlıdır.

Mimari ve Tasarım

Bu GPU, sadece rasterizasyon yapar ve bu da... Pikselleri oluşturma, dokuları kaplama (texture mapping), ışık ve diğer diğer bazı efektleri uygulamadır. Bu demek oluyor ki vertex dönüşümleri yapamaz (bunlar VPU'larca üstlenilir). Ayrıca bu, sabit işlevli bir boru hattıdır yani hayal gücünüze kalmış ince ayarlar çekilemez ya da gölgelendiriciler (shader) yoktur, sâbit bir gölgelendirme modeline saplanmış durumdasınız (bu model örn. Gouraud Shading'dir).

Image
Grafik Sentezleyici'nin boru hattı dizaynı

Oldukça basit görünüyor, değil mi? Öyleyse, daha derinlere dalıp her bir aşamada neler döndüğüne bakalım.

Ön İşleme

Image
Ön İşleme aşaması.

Emotion Engine, Grafik Sentezleyiciyi, gömülü DRAM'ini gerekli malzemelerle (Texture bitmap'ler ve 'CLUT' olarak da bilinen Colour Lookup Table'lar ile) doldurarak tezelden başlatır, GS'yi onun işlemci kayıtlarına değerler atayarak yapılandırır ve son olarak GS'ye ekranın belirli konumlarına temel şekilleri (noktalar, çizgiler, üçgenler, sprite'lar, vb.) çizmesi talimatını veren çizim komutlarını (Görüntü Listeleri) gönderir.

Ayrıca, GS, ileriki hesaplamalarda gerekecek olan bazı değerleri de ön işler. En kayda değer olanı, çizimler sırasında interpolasyon için kullanılacak olan Digital Differential Algorithm (Sayısal Türev Alma Algoritması) değeridir.

Pikselleştirme (Rasterisation)

Image
Pikselleştirme (rasterisation) aşaması.

Önceden hesaplanmış olan verileri kullanarak, işleyici (renderlayıcı), temel şekilleri (çizgi, üçgen vb.) kullanarak pikselleri oluşturur. Bu birim eş zamanlı olarak 8 piksel (dokularla) ya da 16 piksel (dokular olmadan) oluşturabilir. Her piksel girdisi, aşağıda sıralanan hesaplanmış özellikleri içerir:

Ayrıca çerçeve dışında kalan çokgenleri kesip atmak için Scissoring Testleri de gerçekleştirir (X, Y değerlerini baz alır) ve bazı piksel özellikleri daha ileriki kontroller için 'Piksel Testi' aşamasına intikal eder. Ayrıca, Işıklandırma da (İng. Lightning) mevcut iki seçenekle gerçekleşir: Gouraud ve Flat (yani Düz).

Paket, 'Doku Kaplama' (Texture Mapping) motoruna taşınır, ancak her özellik, ilgili iş için özelleştirilmiş bir 'alt motor' tarafından işlenir ve bu, farklı özelliklerin paralel olarak işlenmesine imkân verir.

Doku Kaplama

Image
Doku kaplama aşaması

Bu aşama, her seferde 16'ya kadar pikseli işleyebilen geniş bir Piksel Birimi tarafından gerçekleştirilir, burada dokular çokgenlerin üstüne kaplanır (bunlar artık pikseldirler). Dahası, sis ve kenar yumuşatma (anti-aliasing) efektleri de burada uygulanır.

Doku haritaları, DRAM'in Doku Arabelleği olarak adlandırılan bir bölümünden getirilirler, kaldı ki bölümle de Doku Sayfa Arabelleği denilen ayrı bir yer sayesinde bağlantı kurulur ve bu, dokular için bir önbellekleme mekanizması görevinde gibi görünüyor. Ayrıca CLUT'lar da bu sayfa sistemiyle haritalanır. Her iki eleman da 512-bit veri yolu kullanılarak taşınıp alınır.

Piksel Birimi, temel şekiller üzerine dokuları giydirirken perspektif düzeltme gerçekleştirir (önceki kosoldaki affine mapping yaklaşımına göre fevkalâde bir iyileştirme). Dahası, bilineer ve trilineer filtreleme de gerçekleştirebilir ki bunlardan ikincisi, mipmap'lenmiş dokularla beraber kullanılır.

Testler

Image
Piksel Testi aşaması

Burada, belli pikseller, eğer birtakım gereksinimleri karşılamazlarsa atılırlar. Konusu açılmışken, bu işlem için aşağıdaki testler uygulanır:

Son İşleme (Post-Processing)

Image
Son İşleme aşaması.

Son aşamada yeni piksellerimize yerel DRAM'de bulunan önceki çerçeve arabelleği (frame-buffer) kullanılarak bazı efektler uygulanabilir:

Son olarak, yeni çerçeve arabelleği (yani ekrana gidecek çıktı), güncellenen yeni Z-buffer ile birlikte, 1024-bit veri yolu üzerinden hafızaya yazılır.

Daha fazla Son İşleme

GS'nin içinde, Programlanabilir CRT Kontrolcüsü ya da 'PCRTC' dedilen, ayrılmış bir bileşen bulunur ve bu, hafızadaki çerçeve arabelleğini, Video çıkışına gönderir ki televizyon ekranında görebilin. Ama hepsi bu da değil: Ayrıyeten, Birleştirme Devresi adlı özel bir blok içerir ki bu iki farklı çerçeve arabelleğini Alpha kaynaştırma yapabilir (Eğer oyun, yenisini şekillendirmek için önceki çerçeveyi tekrar kullanmak istiyorsa kullanışlıdır). Oluşturulan çerçeve, video sinyalleri yoluyla çıktı olarak verilebilir ve/veya hafızaya geri yazılabilir.

İyileştirilmiş Modellemeler

Bahsettiğimiz bütün şeyler, beraberinde, hâlihazırda meşhur karakterler yenilenirken daha iyi dizaynlar getirecektir. Şimdi şu 'Öncesi & Sonrası'na bir bakın:

3D model 3D model 3D model
Etkileşimli model modern sürümde kullanılabilir
PS1'deki Crash Bandicoot (1996).
732 üçgene sahip.

3D model 3D model 3D model
Etkileşimli model modern sürümde kullanılabilir
Crash Bandicoot: The Wrath of Cortex (2001).
2226 üçgene sahip.

Bunlar da yeni oyun serilerinden karakterler, tepeden tırnağa yüksek detay seviyeleriyle modellenmişler:

3D model 3D model 3D model
Etkileşimli model modern sürümde kullanılabilir
Kingdom Hearts (2002).
2744 üçgene sahip.

3D model 3D model 3D model
Etkileşimli model modern sürümde kullanılabilir
Dragon Quest VIII (2004).
2700 üçgene sahip.

Bahse değer Dragon Quest gibi oyunlar, Cel Shading denilen (daha önce bahsettiğim bir tabir), özgü bir ışıklandırma modeli uyguladılar, ancak önceki makalelerde açıkladıklarımda bundan sorumlu olan GPU idi. PS2'de ise, gerekli renk hesaplamaları muhtemelen Emotion Engine tarafından yapılıyor, çünkü GS, diğer GPU'lar kadar esnetilebilir değil.

Video Çıkışı

Dah önce belirttiğimiz gibi PCRTC, çerçeve arabelleğini video sinyalleri aracılığıyla gönderir. Arayüz, çeşitli formatlar yoluyla video sinyalini yayınlayabilir (herhangi bir grafik bölgesinden Televizyonlar üzerinde çalışabilmesi için) :

. - Pazarda 576p kullanan oyun yoktur. Bazıları progressive modu desteklese de 480p modda destekler. - NTSC: 640x464 pikselde 60 Hz'e kadar, progressive (480p) ya da interlaced (480i) olarak destekler.

. - VESA: 1280x1024 piksele kadar. - DTV: Progressive modda 768x480 ya da interlaced modda 768x960 gibi sayıca muazzam büyüklükte piksele çıkabilir.

Image
Konsolun arkadan görünümünün sağ kısmı . A/C yuvası, Dijital ses yuvası ve AV Çoklu Çıkışı görülebiliyor.

Seçilebilecek birçok mod var ancak 2000'lerin başlarında gerçekleşen format benimsemeleriyle hespi gözden düşüyor ve seçenekler sadece PAL ve NTSC'ye kadar daralıyor. Ayrıca, PAL her ne kadar NTSC'den daha yüksek çözünürlük sunsa da, NTSC oyunlarının bazı Avrupa versiyonlarında, kullanılmayan piksel satırlarını maskelemek için letterboxing'e sığınılmış ve 50 Hz sınırına uymak için ekran yenileme hızı yavaşlatılmış (ben bunlara 'kötü port' diyorum!) (ÇN: Dolayısıyla görüntü küçülüp, oyun yavaşlıyor).

Video çıkış yuvası (Multi A/V) çok kullanışlıdır. RGB, Komponent (Component), S-Video ve kompozit (composite) sinyali taşır. Yani bütün önemli sinyaller, tescilli adaptörler ya da dâhilî modifikasyonlar gerektirmeden burada bulunuyor.


Previous: 4. Yardımcı İşlemciler (Co CPU'lar)

Next: 6. Ses


Rodrigo Copetti © 2026 RSS Feed

Modern baskıya geçin

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