Örnek sorular
Game Rendering PipelineZorluk 1
Bir oyun karesinin sahne verisinden bitmiş bir piksele giden aşamalarını en iyi hangi sıra tanımlar?
- aPiksel gölgeleme, geometri gönderimi, sahne dolaşımı, rasterizasyon
- bSahne/geometri gönderimi, dönüşüm, rasterizasyon, piksel işleme✓
- cRasterizasyon, sahne yükleme, geometri ayıklama, doku yükleme
- dPiksel işleme, sahne dolaşımı, geometri gruplama, dönüşüm
Açıklama:Kavramsal render pipeline, sahne/geometri verisinden başlar, ekran uzayına dönüşümden geçer, rasterizasyon şekilleri aday piksellere çevirir ve son olarak piksel başına işlem nihai rengi belirler. Diğer sıralamalarda girdisi henüz oluşmamış bir aşama daha önce gelir.
Game Rendering PipelineZorluk 1
Render pipeline'da rasterizasyon aşaması temelde ne yapar?
- aDiskteki doku verisini belleğe yükler
- bHangi nesnelerin kamera görüş hacminin içinde olduğuna karar verir
- cHer nesne için nihai aydınlatma denklemini hesaplar
- dGeometrik şekilleri aday ekran piksellerine çevirir✓
Açıklama:Rasterizasyon, zaten ekran uzayına dönüştürülmüş geometrik ilkelleri alır ve hangi pikselleri kapladıklarını belirleyip sonraki aşamaların gölgeleyeceği fragment'ları üretir. Doku yükleme, görünürlük kararı ve tam aydınlatma ayrı konulardır.
Game Rendering PipelineZorluk 2
Render pipeline nesneleri rasterize etmeden önce neden dönüştürür, ham sahne koordinatlarını doğrudan rasterize etmez?
- aRasterizasyon ekran-uzayı koordinatlarıyla çalışır, bu yüzden şekiller önce dönüştürülmelidir✓
- bÇünkü dönüşüm, nesnenin dokusunu belleğe yükleyen adımdır
- cÇünkü rasterizasyon aksi halde karede yalnızca bir üçgen işleyebilir
- dÇünkü pipeline nesneleri her zaman oluşturulma sırasına göre render eder ve dönüşüm bu sırayı zorunlu kılar
Açıklama:Rasterizasyonun bir şeklin 2D ekran ızgarasında nereye düştüğünü bilmesi gerekir; bu da dünya-uzayı geometrisinin önce görüş ve projeksiyon dönüşümleriyle ekran uzayına çevrilmesini gerektirir. Doku yükleme ve oluşturulma sırası bu gereklilikle ilgisizdir.
Game Rendering PipelineZorluk 1
Kavramsal düzeyde bir draw call (çizim çağrısı) nedir?
- aOyunun saniyede kaç kare çalıştığını hesaplayan bir fonksiyon
- bOyuncunun giriş cihazından kamerayı hareket ettirmek için gönderilen bir istek
- cBelirli ayarlarla geometri çizmesi için render donanımına verilen bir komut✓
- dDisk'ten seviye verisini yükleyen bir arka plan iş parçacığı
Açıklama:Draw call, render donanımına 'bu geometriyi şimdi, şu anki yapılandırmayla çiz' diyen komuttur. Kare hızı ölçümü, girdi işleme ya da disk akışı ile ilgisi yoktur; bunlar ayrı sistemlerdir.
Game Rendering PipelineZorluk 2
Kare başına çok sayıda draw call vermek neden pahalı kabul edilir?
- aÇünkü her draw call çizdiği geometriyi sonradan kalıcı olarak siler
- bÇünkü draw call'lar tasarım gereği saniyede yalnızca bir kez verilebilir
- cDraw call ek yükü, sayı arttıkça çizimin ötesine birikir✓
- dÇünkü her draw call çalışırken oyun simülasyonu duraklatılmak zorundadır
Açıklama:Asıl çizim işinin ötesinde, her draw call durum kurulumu ve komut gönderimi için sabit bir ek yük taşır. Binlerce küçük draw call olduğunda, geometri basit olsa bile bu çağrı-başına ek yük toplam kare maliyetine hakim olabilir.
Game Rendering PipelineZorluk 2
Bir sahnede 5.000 küçük obje her biri kendi ayrı draw call'u olarak gönderiliyor ve toplam poligon sayısı mütevazı olsa bile kare hızı düşük. En olası kavramsal sebep nedir?
- aGPU aynı anda 5.000'den fazla poligonu bellekte tutamaz
- bYüksek draw call sayısı, kareyi domine eden ek yük yaratıyor✓
- cSahnede kameranın işleyemeyeceği kadar çok ışık kaynağı var
- dObjeler çok fazla giriş kontrolcüsü bağlaması kullanıyor
Açıklama:Düşük poligon sayısına rağmen binlerce ayrı draw call ile düşük kare hızı, klasik draw-call ek yükü belirtisidir: maliyet geometrik karmaşıklıkta değil, gönderim sayısındadır. Bellek kapasitesi, ışık sayısı ve giriş bağlamaları ilgisiz belirtilerdir.