Ekran kartı nasıl çalışır?

Grafiklerin nasıl oluşturulduğu, daha doğrusu ekran kartının nasıl çalıştığı birçok kullanıcı için bir sırdır. Ancak GPU, ekranda görebileceğiniz grafikleri oluşturmak için burada açıklayacağımız bir dizi adımı takip ediyor. Onları öğrenmek ister misiniz, hadi devam edelim.

Öncelikle grafik kartı veya GPU tarafından oluşturulan grafiklerin çalışması için bazı temel bileşenlerin neler olduğunu bilmeniz gerekiyor.

  • Graphics API‘si yazılım geliştiricilerin grafik kartı (GPU) ile etkileşime girmesine ve uygulamalarda ve oyunlarda grafikler, görüntüler ve animasyonlar oluşturmasına olanak tanıyan bir dizi işlev ve protokoldür. Grafik API’lerinin bazı örnekleri OpenGL, Vulkan ve DirectX 3D’dir.
  • Graphics Engine (veya oyun motoru), uygulamalarda ve oyunlardaki görüntüleri, grafikleri ve sahneleri işlemek ve işlemek için grafik API’sini kullanan bir yazılımdır. Tanınmış motorların bazı örnekleri Source, Unity 3D, RockStar Advanced Engine, CryEngine, Unreal Engine, DOOM Engine, Godot vb.’dir.
  • Ekran kartı sürücüsü, işletim sistemi ile ekran kartı arasında aracı görevi gören bir yazılım/ürün yazılımıdır.

Bu öğeler sayesinde bir grafik uygulaması GPU’ya bir dizi komut göndererek bunların işlenmesini ve uygun grafiklerin görüntülenmesini sağlayabilir.

Grafik kartı görüntüleri oluşturmak için nasıl çalışır?

Ekranda grafik çizmek için komutların gönderildiği andan, çerçevenin çerçeve arabelleğine ulaşıp ekranda veya monitörde görülene kadar bilmeniz gereken bir dizi temel adım gerçekleşir. Ve olay şu ki, işletim sisteminin, programların veya video oyunlarının, videoların vb. görebildiğiniz tüm arayüz grafikleri doku, renk, ışık, geometrik verilerden vb. başka bir şey değildir. Tüm bunlar, saniyede düzinelerce kare (FPS) görüntülemek için GPU tarafından saniyenin kesirleri kadar bir sürede işlenir. Ve tüm bunlar en basit şekilde başlıyor…

CPU, yazılım (uygulamalar, API’ler ve sürücüler) aracılığıyla grafik API’si aracılığıyla komutları veya nesneleri kullanacak ve bunları işlenmek üzere GPU’ya gönderecektir. Görüntü köşeleri GPU’ya gönderildiğinde ve görüntülenmeye hazır olduğunda, grafik API’si 6 aşamadan oluşan “Rendering Pipeline” adı verilen sürecin yönetiminden sorumlu olacaktır:

  1. Vertex Başına İşlem: Bu, görüntünün köşelerinin GPU üzerinde bir gölgeleme ünitesi olan Vertex Shader tarafından işlendiği sürecin ilk aşamasıdır. Bu hesaplama birimi tamsayı ve kayan noktalı sayılarla matematiksel işlemleri gerçekleştirir. Her köşe bir dönüşüm matrisi ile çarpılır, bu da 3 boyutlu koordinat sisteminden projektif koordinat sistemine geçişle sonuçlanır ve bu daha sonraki işlemler için gereklidir.
  2. İlkel Montaj: Gölgelendirici ünitesi bir görüntü oluşturmak için gerekli üç köşe koordinatını oluşturduktan sonra, bu köşelerin belirli bir sıraya göre bağlanmasından oluşan ilkellerin montajına geçer.
  3. İlkel İşleme: Oluşturulan ilkel işlemin bir sonraki aşamasına geçmeden önce, kırpma işlemi gerçekleştirilmelidir. Bu, oluşturulan bir görüntünün ekrandan daha büyük olabileceği, ancak yalnızca “Görüntüleme Hacmi” olarak bilinen ekranda görünür alan içinde olanın görüntüleneceği anlamına gelir. Kırpma işlemi sırasında görünür alanın dışındaki her şey kırpılır ve işlemin bir sonraki aşaması için göz ardı edilir.
  4. Rasterleştirme: Görüntünün son çerçevesini oluşturmak için piksellere ihtiyaç duyulduğundan, daha önce yapılan her şey doğrudan ekranda görüntülenemez. Bu piksellerin oluşturulduğu yer rasterleştirme aşamasındadır. Bu aşamada yalnızca kırpma aşamasını geçen parçalar işlenerek nihai görüntünün oluşturulmasında kullanılacak ayrı piksellere dönüştürülecektir.
  5. Fragment İşleme: Bu noktada bir önceki aşamayı geçmiş olan fragmentler başka bir aşamaya geçer ve burada ek bir shader tarafından tekrar işlenir. Bu gölgelendiriciye Fragment Shader denir ve parçanın piksellerine renk ve doku uygulamaktan sorumludur. Fragment Shader, esasen, sahnenin özelliklerine göre uygun renk ve dokuları uygulayarak tek tek piksellerin son görüntüde nasıl görüneceğini belirlemekten sorumludur.
  6. Parça Başına İşlem: Bu aşamada önceden renklendirilmiş ve dokulandırılmış parça pikselleri çerçeve arabelleğine gönderilir. Bu arabellekte pikseller, ekranda görüntülenecek son görüntü olacak olan Varsayılan Çerçeve Arabelleği olarak gruplandırılır.

Son olarak oluşturulan çerçeve ekrana bağlanan GPU’nun çıkışı üzerinden iletilecek ve görüntünün ekranda görüntülenmesi sağlanacak. FPS (Saniyedeki Kare Sayısı) olarak da bilinen kare yenileme hızı, hem GPU’nun hem de ekranın kapasitesine bağlı olacaktır. Bu yeteneklere bağlı olarak kareler az ya da çok hızlı güncellenecektir ve bu da ekranda görüntülenen animasyonun veya görsel içeriğin akıcılığını ve düzgünlüğünü belirleyecektir.

Pikseller ekran matrisine veya panele eşlenecek, pikseller kapatılacak, açılacak veya nihayet üçgeni ve dokusunu görüntülemek için gereken renge geçiş yapılacak…