Skip to content

Modern motorlar bitki örtüsü overdraw sorununu nasıl aşıyor

Cinevva CTO'su ve Kurucu Ortağı Oleg Sidorkin tarafından

Batan güneşin önünde üst üste dizilmiş yaprak kartlarından oluşan, yoğun overdraw'u çağrıştıran sık bir orman örtüsü

Bir orman, GPU'dan render etmesini isteyebileceğiniz en zorlu şeylerden biridir. Her yaprak, alfa maskesiyle kesilmiş dokulu bir dörtgendir. Her görüş ışını boyunca bu dörtgenlerden onlarcası üst üste biner. Rasterleştiricinin hangi fragment'lerin alfa testini geçeceğini önceden bilmesinin bir yolu yoktur; dolayısıyla opak sahneleri kurtaran standart early-Z optimizasyonu büyük ölçüde devre dışı kalır. Bunun sonucunda tek bir ekran pikseli, kare tamamlanmadan önce tam yaprak shader'ını 10 veya 15 kez çalıştırabilir. Bitki örtüsü overdraw'u budur ve son on yılda yayımlanan tüm açık dünya oyunlarında bir karenin en pahalı kısmıdır.

İyi haber şu ki bu, çözülmüş bir problemdir. Birinin tek bir numarayla sorunu ortadan kaldırması anlamında değil; yedi veya sekiz tekniğin bir araya gelerek yoğun bir ormandaki efektif overdraw'u 8-15 kattan 1-2 kata düşürmesi anlamında. Her modern motor bu teknikler bütününün bir sürümünü kullanır. Şimdi bunun neler içerdiğine, her parçanın neden var olduğuna ve her biri için temel kaynaklara bakalım.

1. Bitki örtüsü overdraw'u neden bu kadar maliyetli?

Tipik bir opak sahnede GPU, erken derinlik reddi uygular: piksel shader'ı daha çalışmadan donanım mevcut derinlik tamponunu kontrol eder ve zaten başka bir şeyin arkasında kalan fragment'leri atlar. Bunun maliyeti neredeyse yoktur ve yoğun geometrinin maliyetini makul düzeyde tutan şey de budur.

Alfa testli bitki örtüsü bunu bozar. Fragment shader'ın alfa dokusunu değerlendirmek ve maskeyle dışarıda bırakılan pikseller için discard (veya clip) çağırmak üzere gerçekten çalışması gerekir. Donanım, shader çalışana kadar bir fragment'in elenip elenmeyeceğini bilemez; bu nedenle çoğu GPU'da shader'ın herhangi bir yerinde discard kullanılması, ilgili draw call için early-Z'yi tamamen devre dışı bırakır. Tile tabanlı GPU'larda (mobil, M serisi, bazı konsollar) tüm kare için Hi-Z'yi ve derinlik sıkıştırmasını devre dışı bırakabilir. Piksel shader'ı, bir pikseli kaplayan her üçgen için bir kez çalışır ve bu değerlendirmelerin çoğu discard ile sonuçlanır.

Tek bir ekran pikselinin önüne 10 yaprak dörtgeni yerleştirdiğinizde yaprak shader'ı 10 kez çalışır. Bunu 4 milyon pikselle çarpınca maliyet korkunç hâle gelir. Marco Salvi'nin Early-Z Kullanmalı mı, Kullanmamalı mı? başlıklı yazısı, bunun donanım düzeyinde neden gerçekleştiğini en anlaşılır şekilde ele alan kaynaklardan biridir ve konuyu daha önce hiç düşünmediyseniz başlamak için doğru yerdir.

Üst üste binen on iki yaprak kartının içinden geçen tek bir ekran pikseli ışınının yandan görünümü; üst üste yığılan alfa testli fragment'leri göstermek için her kart vurgulanmış

2. Maskeli geometri için derinlik ön geçişi

Tek başına en büyük kazanımı sağlayan ve her modern motorun kullandığı teknik, bitki örtüsü çizimini iki geçişe ayırmaktır. İlk geçiş yalnızca derinlik yazar; alfa testini yapan, maskelenmiş pikselleri atan ve başka hiçbir şey yazmayan minimal bir shader kullanır. İkinci geçiş, derinlik testi "equal" olarak ve derinlik yazımı kapalı şekilde tam materyali render eder. Böylece her görünür piksel, arkasında kaç yaprak dörtgeni üst üste binmiş olursa olsun tam BRDF'yi tam olarak bir kez hesaplar.

Aynı üçgenlere iki kez dokunulduğu için bu, iki kat iş gibi gelebilir. Ancak ön geçiş shader'ı o kadar ucuzdur ki (bir doku örneği, bir discard, bir derinlik yazımı), ana geçişteki tasarruf ek maliyeti fazlasıyla aşar. Yoğun bir ormanda ana geçiş, tam yaprak shader'ını piksel başına 10-15 kez çalıştırmak yerine tam olarak bir kez çalıştırır.

Unreal, Frostbite, Decima ile modern Rage ve Dunia dallarının tümü bunu yapar. Bu aynı zamanda maskeli materyallerin bu motorların hepsinde hâlâ yarı saydam materyallerden daha ucuz olmasının temel nedenidir.

Derinlemesine kaynaklar:

3. Agresif LOD'lar ve oktahedral imposter'lar

İkinci en büyük kazanım, gerekmediğinde yaprakları hiç çizmemektir. Bitki örtüsü varlıkları birkaç LOD kademesiyle gelir. En yakındaki kademe, ayrı yaprak kartları içeren tam mesh'tir. Orta mesafede yapraklar daha yoğun birleşik kartlara dönüştürülür (30 yapraktan oluşan bir küme, aynı silüete sahip tek bir dokulu karta dönüşür). Belirli bir mesafe eşiğinin ötesinde ağacın tamamı bir imposter'a dönüşür: ağacın birçok açıdan önceden render edilmiş görüntüleriyle dokulanan küçük bir geometri parçası.

Modern imposter biçimi oktahedral imposter'dır: oktahedral eşleme kullanılarak bir küre üzerindeki noktalardan yakalanan görüntü atlasıyla dokulanmış, 8 yüzlü bir geometri parçası. Çalışma zamanında shader, kamera yönüne göre önceden render edilmiş en yakın iki veya üç görünümü seçer ve bunlar arasında geçiş yapar. Sonuç, her açıdan 3B görünen ve düzgün gölgelendirme, normal map'ler, hatta rüzgâr animasyonu sunabilen, yalnızca birkaç üçgenden oluşan bir temsildir. Başlangıçta topluluk eklentisi olan ve artık Unreal'ın bir parçası hâline gelen Ryan Brucks uygulaması, bu konudaki temel referanstır. Microsoft Flight Simulator'ın milyarlarca ağaçtan oluşan ormanları, kamera yakını dışında esasen tamamen oktahedral imposter'lardan oluşur.

Daha büyük yapısal kazanım, imposter'ların uzaktan opak veya opaklığa yakın olmasıdır. 30 yapraklı birleşik kart, 30 dörtgen yerine tek bir maskeli dörtgendir. Tüm ağacı temsil eden imposter, binlerce yüz yerine yalnızca birkaç yüzden oluşur. Uzak alan overdraw'u neredeyse sıfıra iner.

Derinlemesine kaynaklar:

4. Küme ve GPU güdümlü ayıklama

Derinlik ön geçişi kullanılsa bile ön geçişin kendisi maliyetlidir: görünür veya görünür olma ihtimali bulunan her ağacın her üçgenine yine de dokunması gerekir. Modern motorlar, rasterleştiriciye ulaşmadan önce üçgen gruplarının tamamını atan GPU güdümlü küme ayıklama ile bu maliyeti azaltır.

İşlem hattı şu şekilde işler: her mesh önceden, sıkı bir sınırlayıcı kutuya ve normal konisine sahip 64 veya 128 üçgenlik kümelere ayrılır. Render sırasında bir compute shader örnek listesini dolaşır, her örneği görüş hacmi testinden geçirir, ardından görünür her örneğin tüm kümelerini görüş hacmi testinden geçirir ve son olarak hayatta kalan her kümeyi önceki karenin derinlik piramidine karşı Hi-Z örtülme testine tabi tutar. Bir tepenin veya başka bir ağacın arkasında kalan tüm ağaç dalları, herhangi bir vertex shader çalışmadan önce ayıklanır. Çıktı, doğrudan tek bir DrawIndirect çağrısına aktarılan kompakt bir "bu kümeleri çiz" argümanları listesidir.

10.000 ağaçlık bir ormanın saniyeler yerine milisaniyeler içinde render edilmesini sağlayan şey budur. Ubisoft'un Assassin's Creed Unity sunumu bu işlem hattını üretimde kullanılan biçimiyle tanıttı (üçgenlerin %20-40'ı, gölge üçgenlerinin %30-80'i ayıklanıyor ve önceki nesle göre ekranda 10 kat daha fazla örnek gösteriliyor); Wihlidal'ın Frostbite sunumuysa bunu daha ileri taşıdı. UE5 Nanite bu gelişim çizgisinin görünür son noktasıdır: piksel düzeyine kadar küme ayıklama.

Derinlemesine kaynaklar:

5. Önden arkaya örnek ve küme sıralama

Ön geçiş görevini yerine getirmeye başladığında sıralama önem kazanır. Ön geçiş derinlik yazar, ancak yalnızca alfa testini geçen fragment'ler için. Önce ormanın arkasını, en son da önünü çizerseniz öndeki her fragment arkadaki bir fragment'in üzerine yazılır ve ön geçiş shader'ı arkadakiler için yine çalışır. Önden arkaya doğru çizerseniz birbirini izleyen her çizim, derinlik tamponunun daha büyük bir bölümünü daha küçük değerlerle doldurur; böylece Hi-Z, arkadaki fragment'lerin giderek daha fazlasını shader çalışmadan önce reddeder.

Bu nedenle neredeyse tüm modern motorlar ön geçişi başlatmadan önce bitki örtüsü örneklerini kameraya olan mesafelerine göre sıralar. Sıralama ucuzdur (GPU'da radix sort ile birkaç yüz bin örnek) ve ön geçişin kendisini, kendi yükünü azaltan bir işleme dönüştürür. Küme düzeyindeki ayıklama da aynı nedenle meshlet ayrıntı düzeyinde sıralama yapar. Derinlik ön geçişi ile önden arkaya sıralama, tek başlarına iyi ama birlikte harika olan teknik çiftlerindendir.

Derinlemesine kaynaklar:

6. Dither uygulanmış LOD geçişleri ve hash'lenmiş alfa

Diğer büyük tuzak ise soldurmadır. İki LOD arasında geçiş yapmanın veya kamera yaklaşırken bir örneği görünür ya da görünmez hâle getirmenin basit yolu alfa harmanlamadır. Ancak harmanlanmış geometri derinlik tamponuna yazamaz; bu da soldurulan her ağacı yavaş yarı saydamlık yoluna sokar ve ön geçişi bozar. Çözüm, geometriyi maskeli yolda tutmak ve soldurmayı alfa testinin içinde gerçekleştirmektir.

İki ana teknik vardır:

  • Dither uygulanmış LOD geçişleri, 4x4 veya 8x8 Bayer deseni (ya da ekran uzayında bir blue-noise dokusu) örnekler ve bunu piksel başına kesme eşiği değiştiricisi olarak kullanır. %50 geçişteki bir ağacın dama tahtası desenindeki pikselleri hayatta kalır; eksik pikseller bir sonraki LOD'un tamamlayıcı dama tahtası deseniyle doldurulur. TAA, dama tahtası desenini iki veya üç kare içinde yumuşak bir geçişe dönüştürür. Ucuz ve kararlıdır; motordaki diğer her şeyle uyumlu biçimde harmanlanır.
  • Hash'lenmiş alfa testi (Wyman & McGuire, I3D 2017), sabit 0,5 alfa eşiğini [0,1) aralığında piksel başına hash'lenmiş bir eşikle değiştirir. Normalde tamamen kaybolacak uzak alfa geometrisi (mipmap uygulanmış alfa 0,5'in altına düştüğü için), hayatta kalan piksellerden oluşan kararlı bir dağılımı korur. Temizleme işini yine TAA yapar.

Her iki teknik de bitki örtüsünü, derinlik ön geçişinin çalıştığı opak/maskeli yolda tutar; böylece yalnızca bir şeyi soldurmak için yarı saydam render işleminin tüm maliyetini ödemezsiniz. Alpha to coverage, aynı fikrin MSAA döneminden kalma akrabasıdır: alfayı alt piksel kapsam maskesine dönüştürür ve maskeli yoldan çıkmadan kısmi saydamlık sağlar. Ancak A2C yalnızca MSAA ile gerçek anlamda parlar ve çoğu modern deferred renderer artık MSAA kullanmaz.

Derinlemesine kaynaklar:

7. Maskeli piksellerde gölgelendirme maliyetini azaltmak

Kusursuz bir ön geçiş ve kusursuz ayıklama kullansanız bile görünür her bitki örtüsü pikselini yine de bir kez gölgelendirmeniz gerekir. Motorlar bu maliyeti de azaltır:

  • Daha ucuz BRDF. Bitki örtüsü mattır ve tam bir Cook-Torrance speküler yoluna pek ihtiyaç duymaz. Sarılmış Lambert dağılımlı difüz aydınlatma ile tek satırlık bir speküler yaklaşım fazlasıyla yeterlidir.
  • Daha düşük frekanslı normal haritaları. Yapraklar zaten görsel açıdan karmaşıktır. 256x256 bir normal haritası, tipik izleme mesafelerinde 1024x1024 olanla aynı görünür ve bant genişliğinden tasarruf sağlar.
  • Paralaks, anizotropi ve vernik katmanı yok. PBR özellikleri yapraklar için devre dışı bırakılır.
  • Tam yüzey altı saçılımı yerine iki taraflı ince geçirgenlik. Yapraklar arkadan gelen ışığı geçirir, ancak bunu arkadan aydınlatmaya yönelik tek bir nokta çarpımıyla taklit edebilirsiniz.
  • Bazı motorlarda yarı çözünürlüklü gölgelendirme. Bitki örtüsü 1/4 veya 1/2 piksel hızında gölgelendirilip üst ölçeklenir. TAA'nın stokastik gürültüsü yeniden örneklemeyi gizler.
  • Maskeli malzemelerde ayrıntı dokularını ve çıkartmaları varsayılan olarak atlama.

Bunların her biri tek başına küçük bir kazanımdır. Birlikte kullanıldıklarında maskeli bitki örtüsü gölgelendiricileri, eşdeğer opak malzemeden 2-3 kat daha hızlı çalışabilir.

Ayrıntılı kaynaklar:

8. Maskeli malzemeler için görünürlük tamponları ve Nanite

Aşırı çizime verilebilecek en temiz yanıt, gölgelendirmeyi rasterleştirmeden tamamen ayırmaktır. Görünürlük tamponu, geometriyi ince bir tampona rasterleştirir (piksel başına yalnızca üçgen kimliği ve örnek kimliği), ardından görünürlük tamponunu okuyup her pikseli tam olarak bir kez gölgelendiren ertelenmiş bir geçişte tam malzemeyi çalıştırır. Tasarım gereği gölgelendirme aşamasında aşırı çizim yoktur. Burns ve Hunt'ın 2013 tarihli makalesi bu yaklaşımı tanıttı; UE 5.5 itibarıyla maskeli bitki örtüsünü de destekleyen UE5 Nanite ise bunun üretim kalitesindeki uygulamasıdır.

Nanite'ın farkı, bunu küme düzeyinde sanallaştırılmış geometriyle yapmasıdır; böylece rasterleştiricinin kendisi alt piksel boyutundaki üçgenler için bir yazılım yolu üzerinde çalışır ve aşırı çizimi sınırlı tutar. Nanite'taki maskeli malzemeler "programlanabilir rasterleştirme" özelliğine ihtiyaç duyar: alfa testi görünürlük tamponu geçişi sırasında çalışır, ancak malzeme gölgelendirmesi ertelenmiş çözümleme aşamasında görünür piksel başına yine yalnızca bir kez yapılır. Sonuç olarak, bir zamanlar maskeli malzemelerde yavaşlığıyla bilinen çok yoğun Nanite bitki örtüsü artık opak malzemelerle rekabet edebilir, hatta onlardan daha ucuz olabilir; çünkü gölgelendirme sırasındaki aşırı çizim sıfırdır. Bunun bir ödünleşimi vardır: Maskeli yol programlanabilir rasterleştirme maliyeti eklediğinden, düşük poligonlu maskeli kartlardan oluşan ağaçları korumak yerine yüksek poligonlu opak ağaç geometrisini Nanite üzerinden geçirmek çoğu zaman daha iyidir.

Ayrıntılı kaynaklar:

9. Bitki örtüsü için ayrı gölge temsilleri

Alfa testi uygulanan bitki örtüsüne yönelik gölge haritaları, geniş basamaklardan sonra herhangi bir açık dünya karesindeki en pahalı ikinci gölge problemidir. Her basamak kendi derinlik ön geçişine ihtiyaç duyar, her ön geçiş alfa testini çalıştırır ve maliyet 4 basamak ile düzinelerce ışık frustumu boyunca hızla birikir. Bu nedenle çoğu motor, bitki örtüsü gölgelerini bitki örtüsü rengini işlediği şekilde işlemez.

Yaygın alternatifler:

  • Örgü mesafe alanı gölgeleri (UE Lumen, özel motorlar). Her örgü, önceden hesaplanmış bir işaretli mesafe alanına sahiptir. SDF içinden yapılan kısa bir koni izleme, alfa testi uygulanan örgüye hiç dokunmadan yumuşak bir gölge üretir. Bu yöntem özellikle ağaçlar için uygundur; çünkü SDF, taç silüetini tek bir katı kütle olarak yakalar ve yaprak başına ayrıntıları yok sayar.
  • Bitki örtüsü için daha düşük çözünürlüklü basamaklar. Bitki örtüsü gölgeleri yarı çözünürlüklü bir dilime yazılır ve kenar duyarlı filtrelemeyle üst örneklenir. Gölgeler zaten yumuşak olduğundan göz çözünürlük düşüşünü fark etmez.
  • MSAA ile alfadan kapsama gölge haritaları. Gölge yolunda hâlâ MSAA bulunan motorlarda A2C, tam alfa testi maliyeti olmadan yumuşak kenarlı bitki örtüsü gölgeleri sağlar.
  • Gövde ve büyük dallar için kapsül gölgeleri, taç için mesafe alanı ve yalnızca en yakın basamakta tam alfa testi. Farklı mesafeler için farklı temsiller kullanılır ve bunlar aydınlatma geçişinde harmanlanır.
  • WPO devre dışı bırakma mesafesi. Rüzgâr güdümlü World Position Offset, önbelleğe alınmış gölge verilerinin kareler boyunca geçerli kalması için belirli bir eşiğin ötesinde kapatılır. UE'nin Virtual Shadow Maps sistemi buna yoğun biçimde dayanır.

Ayrıntılı kaynaklar:

10. Rüzgâr, animasyon ve gölge önbelleğe alma

Bununla ilişkili incelikli bir problem daha vardır: Bitki örtüsünün çoğu hareket eder. Rüzgâr güdümlü tepe noktası animasyonu (UE'de World Position Offset, Frostbite ve Decima'daki eşdeğerleri), bitki örtüsü geometrisinin kareden kareye sabit kalmaması anlamına gelir; bu da gölge önbelleğe alma ve yeniden projeksiyonu bozar. Modern motorlar bununla iki şekilde mücadele eder:

  • WPO'yu mesafeye göre sınırlandırma. Belirli bir eşiğin ötesinde rüzgâr animasyonunun genliği yumuşak biçimde sıfıra iner. Göz zaten bu kadar uzaktaki sallanmayı göremez ve gölge önbellekleri geçerliliğini korur.
  • Rüzgârı küme sınırlarına dahil etme. Küme sınırlayıcı kutuları, maksimum WPO ofseti kadar genişletilir; böylece her karede yeniden yükleme yapmadan ayıklama tutucu kalır.
  • Örnek başına faz ofsetleri. Birbirinin aynısı ağaçlar, rüzgâr fazını kaydırmak için örnek başına rastgele bir tohum kullanır. Böylece orman, ağaç başına benzersiz animasyon maliyeti olmadan hep birlikte aynı ritimde sallanmaz.

Bu, teknik listelerinde görünmeyen ancak uygulamada 3 ms'lik bir orman ile 9 ms'lik bir orman arasındaki farkı yaratan türden bir ayrıntıdır.

Ayrıntılı kaynaklar:

11. Birleşik matematik

Bu tekniklerin hiçbiri tek başına kusursuz bir çözüm değildir. İlginç olan, bunları üst üste kullandığınızda ne olduğudur:

  • Yoğun bir orman sahnesindeki basit bir maskeli bitki örtüsü geçişi, 8-15 kat etkin aşırı çizim ölçer. Görünür her piksel, yaprak gölgelendiricisini 8 ila 15 kez çalıştırır.
  • Bir derinlik ön geçişi eklendiğinde ana geçiş yaklaşık 1 kat aşırı çizime iner, ancak ön geçişin kendisi hâlâ her şeye dokunur.
  • Önden arkaya sıralama eklendiğinde ön geçiş kendi içeriğini ayıklamaya başlar.
  • Küme düzeyinde GPU ayıklama eklendiğinde ön geçiş yalnızca görünür olma ihtimali bulunan öğelere dokunur.
  • LOD zincirleri ve sahte görünümler eklendiğinde, 30 metrenin ötesindeki görünür dörtgen sayısı bir büyüklük mertebesi azalır.
  • Görünürlük tamponu / Nanite yolu eklendiğinde gölgelendirme aşaması, yoğun örtüşmede bile gerçekten piksel başına bir kez çalışır.
  • Mesafe alanı gölgeleri eklendiğinde gölge maliyeti artık alfa testiyle birlikte ölçeklenmez.

Yukarıda bağlantısı verilen sunumlarda tekrarlanan temel sonuç şudur: Etkin aşırı çizim 8-15 kattan 1-2 kata iner ve yoğun bir orman sahnesindeki toplam bitki örtüsü kare maliyeti 4-6 kat azalır. Modern açık dünya oyunlarının tüketici donanımlarında ormanları 60+ fps hızında işleyebilmesinin tüm nedeni budur.

Bitki örtüsü işleme hattını üst üste dizilmiş beş aşama olarak gösteren diyagram: GPU ayıklama, sıralanmış ön geçiş, eşit derinlikli maskeli renk geçişi, görünürlük tamponu gölgelendirmesi ve ayrı mesafe alanı gölge yolu

12. Bunun tarayıcı için anlamı

Bu yığının büyük bölümü WebGPU'ya kolayca uyarlanabilir. Açık dünya tarayıcı motorunda GPU güdümlü ayıklama, dolaylı yürütme, Hi-Z örtülme ve önden arkaya sıralanmış ön geçişleri zaten kullanıma sunduk. Maskeli geometriye yönelik derinlik ön geçişi oldukça basittir: WebGPU, erken Z ile ilgili aynı sınırlamalarla birlikte derinlik eşitliği testini ve parça gölgelendiricilerinde discard kullanımını destekler. Oktahedral sahte görünümler doğrudan uyarlanabilir; gereken matematik yalnızca küreden oktahedrona açılım ve atlas indekslemesidir.

Daha zor olanlar modern tekniklerdir. WebGPU'da bir görünürlük tamponu, bir işleme hedefine 32 bitlik üçgen kimliği yazmayı ve malzemeleri tam ekran bir hesaplama geçişinde çözümlemeyi gerektirir; yapı taşları mevcuttur, ancak bunların düzenlenmesi zahmetlidir. Örgü mesafe alanı gölgeleri varlık başına bir 3B doku ve kısa bir koni izleme ister; bunların ikisi de WebGPU'nun kapasitesi dahilindedir. Karma tabanlı alfa ve titreşimli LOD'ların her biri yalnızca bir gölgelendirici işlevi gerektirir.

Tarayıcı tabanlı bitki örtüsü için izlenecek yol, bu yığındaki diğer her şeyle aynıdır: Önce ucuz ve sağlam parçaları (ön geçiş, sıralanmış örnekler, LOD'lar, sahte görünümler, karma tabanlı alfa) kullanıma sunup ağır mekanizmaları (görünürlük tamponu, örgü SDF gölgeleri) bunların üzerine eklemek. Tarayıcı donanımlarının alt sınırı nihayet yeterince yükseldi; dolayısıyla bir WebGPU ormanının konsoldaki gibi görünmemesi ve çalışmaması için mimari bir neden yok. Yalnızca mühendislik kaynaklı nedenler var ve biz de en çok bu tür nedenleri seviyoruz.

Yığının tamamı için ek okumalar

Tüm bunları bir araya getiren tek bir kaynak istiyorsanız SIGGRAPH'ın "Oyunlarda Gerçek Zamanlı İşlemedeki Gelişmeler" arşivinde (advances.realtimerendering.com), 2014'e kadar uzanan standart bitki örtüsü ve GPU güdümlü işleme sunumları bulunur. Adrian Courrèges'in GPU profil çıkarma makaleleri, burada ele alınan her geçişi üretimdeki sırasıyla gösteren GTA V ve Horizon Zero Dawn karelerinin tek tek incelemelerini içerir. Özellikle alfa testi matematiği için Chris Wyman'ın araştırma sayfasında referans gölgelendiricilerle birlikte karma tabanlı alfa ve stokastik şeffaflık makaleleri yer alır. Ayrıca Real-Time Rendering, 4. baskı kitabının şeffaflık, örnekleme ve derinlik işleme hakkındaki bölümleri hâlâ temel başlangıç noktasıdır.