Döşemeli oluşturma - Tiled rendering
Karo oluşturma , bir alt bölümlere ayırma işlemidir bilgisayar grafik düzenli görüntüyü ızgara olarak , optik alan ve ızgara, ya da her bir bölüm oluşturma karo ayrı ayrı. Bu tasarımın avantajı , tüm çerçeveyi bir kerede çeken anlık mod oluşturma sistemlerine kıyasla bellek ve bant genişliği miktarının azalmasıdır . Bu, karo işleme sistemlerini özellikle düşük güçte taşınabilir cihaz kullanımı için yaygın hale getirdi . Döşenmiş işleme bazen "orta sırala" mimarisi olarak bilinir, çünkü geometrinin sıralamasını grafik ardışık düzeninin sonuna yakın yerine ortasında gerçekleştirir .
Temel kavram
Görüntülemek için bir 3D görüntü oluşturmak, bir dizi adımdan oluşur. İlk olarak, görüntülenecek nesneler ayrı modellerden belleğe yüklenir . Sistem daha sonra modelleri ortak bir koordinat sistemine, dünya görüşüne dönüştürmek için matematiksel fonksiyonları uygular . Bu dünya görüşünden, belirli bir bakış açısından, kameradan görüldüğü gibi orijinal modellere yaklaşan bir dizi çokgen (tipik olarak üçgenler) oluşturulur . Ardından, bir birleştirme sistemi, üçgenleri oluşturarak ve dokuları dışa uygulayarak bir görüntü üretir . Dokular, gerçekçilik yaratmak için üçgenlerin üzerine boyanmış küçük görüntülerdir. Ortaya çıkan görüntü daha sonra çeşitli özel efektlerle birleştirilir ve görüntülenen görüntüyü oluşturmak için video donanımının tarayacağı bir çerçeve arabelleğine taşınır . Bu temel kavramsal düzen, görüntü ardışık düzeni olarak bilinir .
Bu adımların her biri, elde edilen görüntüyü tutmak için gereken bellek miktarını artırır. Boru hattının sonuna ulaştığında, görüntüler o kadar büyüktür ki, tipik grafik kartı tasarımları , görüntüyü çeşitli alt bölümlere taşımak için gerekli bant genişliğini sağlamak için genellikle özel yüksek hızlı bellek ve çok hızlı bir bilgisayar veriyolu kullanır. boru hattının bileşenleri. Bu tür bir destek, özel grafik kartlarında mümkündür, ancak güç ve boyut bütçeleri daha sınırlı hale geldikçe, yeterli bant genişliği sağlamak tasarım açısından pahalı hale gelir.
Döşemeli oluşturucular, görüntüyü döşeme olarak bilinen bölümlere ayırarak ve her birini ayrı olarak işleyerek bu sorunu giderir. Bu, ara adımlar sırasında ihtiyaç duyulan bellek miktarını ve herhangi bir zamanda taşınan veri miktarını azaltır. Bunu yapmak için sistem, geometriyi oluşturan üçgenleri konuma göre sıralayarak, karo sınırlarıyla hangi üçgenlerin örtüştüğünü hızlı bir şekilde bulmayı sağlar. Ardından, yalnızca bu üçgenleri işleme hattına yükler, GPU'da çeşitli oluşturma işlemlerini gerçekleştirir ve sonucu çerçeve arabelleğine gönderir . Çok küçük döşemeler kullanılabilir, 16×16 ve 32×32 piksel popüler döşeme boyutlarıdır, bu da dahili aşamalarda gereken bellek ve bant genişliği miktarını da azaltır. Ve her karo bağımsız olduğundan, doğal olarak basit paralelleştirmeye uygundur.
Tipik bir döşemeli oluşturucuda, geometri önce ekran alanına dönüştürülmeli ve ekran alanı döşemelerine atanmalıdır. Bu, her döşeme için geometri listeleri için bir miktar depolama gerektirir. Erken döşenen sistemlerde bu, CPU tarafından gerçekleştirildi , ancak tüm modern donanımlar bu adımı hızlandırmak için donanım içerir. Geometri listesi ayrıca önden arkaya sıralanabilir, bu da GPU'nun diğerlerinin arkasına gizlenmiş pikselleri işlemekten kaçınmak için gizli yüzey kaldırmayı kullanmasına izin vererek gereksiz doku aramaları için bellek bant genişliğinden tasarruf sağlar.
Döşemeli yaklaşımın iki ana dezavantajı vardır. Birincisi, birkaç karonun üst üste binmesi durumunda bazı üçgenlerin birkaç kez çizilebilmesidir. Bu, toplam oluşturma süresinin bir anlık mod oluşturma sisteminden daha yüksek olacağı anlamına gelir. Tam bir görüntü elde etmek için karoların birbirine dikilmesi gerektiğinde de olası sorunlar vardır, ancak bu sorun uzun zaman önce çözülmüştür. Çözülmesi daha zor olan, bazı görüntü tekniklerinin çerçeveye bir bütün olarak uygulanmasıdır ve bunların, tüm çerçeveyle çalışmak zorunda kalmamak için kiremitli bir işlemede uygulanması zordur. Bu ödünleşimler iyi bilinmektedir ve avantajların yararlı olduğu sistemler için önemsiz sonuçlar doğurur; kiremitli işleme sistemleri, elde taşınan bilgi işlem cihazlarında yaygın olarak bulunur.
Döşemeli oluşturma , bitişik pikselleri bellekte bitişik yapan döşemeli/doğrusal olmayan çerçeve arabelleği adresleme şemalarıyla karıştırılmamalıdır . Bu adresleme şemaları, yalnızca kiremitli oluşturucular değil, çok çeşitli mimariler tarafından kullanılır.
Erken iş
Döşemeli işlemeyle ilgili ilk çalışmaların çoğu, Pixel Planes 5 mimarisinin (1989) bir parçası olarak yapıldı.
Pixel Planes 5 projesi, döşemeli yaklaşımı doğruladı ve artık döşemeli oluşturucular için standart olarak görülen birçok tekniği icat etti. Bu alandaki diğer makaleler tarafından en çok alıntı yapılan çalışmadır.
Döşeme yaklaşımı, yazılım oluşturma tarihinin başlarında da biliniyordu. Uygulamaları Reyes render genellikle "kiremit kova" haline görüntüyü bölün.
Ticari ürünler – Masaüstü ve konsol
Masaüstü GPU'ların geliştirilmesinin başlarında, birkaç şirket kiremitli mimariler geliştirdi. Zamanla, bunların yerini büyük ölçüde hızlı özel harici bellek sistemlerine sahip anlık mod GPU'ları aldı.
Bunun başlıca örnekleri şunlardır:
- PowerVR oluşturma mimarisi (1996): taramasına olan bir 32 x 32 karonun oluşan çokgenler edildi rasterized birden boyunca görüntü boyunca piksel paralel olarak. Erken PC sürümlerinde, CPU üzerinde çalışan ekran sürücüsünde döşeme yapıldı . Dreamcast konsolunun uygulamasında döşeme işlemi bir donanım parçası ile gerçekleştirilmiştir. Bu, ertelenmiş işlemeyi kolaylaştırdı— yalnızca görünür pikseller doku eşlendi , gölgeleme hesaplamaları ve doku bant genişliği tasarrufu sağlandı .
- Microsoft Tılsım (1996)
- Dreamcast (PowerVR yonga seti tarafından desteklenmektedir) (1998)
- Gigapiksel GP-1 (1999)
- Intel Larrabee GPU (2009) (iptal edildi)
- PS Vita (PowerVR yonga seti tarafından desteklenmektedir) (2011)
- Maxwell mimarisine ve sonraki mimarilere dayalı Nvidia GPU'lar (2014)
- Vega (GCN5) mimarisine ve sonraki mimarilere (2017) dayalı AMD GPU'lar
- Intel Gen11 GPU ve sonraki mimariler (2019)
Yonga üzerinde büyük arabellekler kullanan döşenmemiş mimarilere örnekler:
- Xbox 360 (2005): GPU , yerleşik bir 10 MB eDRAM içerir ; bu, 4× çok örnekli kenar yumuşatma ile 1280×720 görüntünün tamamı için taramayı tutmak için yeterli değildir , bu nedenle HD çözünürlüklerde çalışırken ve 4× MSAA etkinleştirildiğinde bir döşeme çözümü üst üste bindirilir.
- Xbox One (2013): GPU , bir görüntünün tamamını veya bir kısmını tutmak için kullanılabilen yerleşik bir 32 MB eSRAM içerir . Döşemeli bir mimari değildir, ancak yazılım geliştiricilerin döşemeli işlemeyi taklit edebilecek kadar esnektir.
Ticari ürünler – Gömülü
Nispeten düşük harici bellek bant genişliği ve gereken küçük miktarda çip üstü bellek nedeniyle, döşemeli işleme, gömülü GPU'lar için popüler bir teknolojidir. Mevcut örnekler şunları içerir:
Kutucuk tabanlı anında mod oluşturma (TBIM):
- ARM Mali serisi.
- Qualcomm Adreno (300 serisi ve daha yenisi, FlexRender aracılığıyla dinamik olarak anında/doğrudan mod oluşturmaya da geçebilir).
Kutucuk tabanlı ertelenmiş oluşturma (TBDR):
- Kol Mali serisi.
- Hayal Gücü Teknolojileri PowerVR 5/6/7 serisi.
- Broadcom VideoCore IV serisi.
- Apple silikon GPU'ları.
Vivante , sıkıca bağlanmış çerçeve arabelleğine sahip mobil GPU'lar üretir (yukarıda açıklanan Xbox 360 GPU'ya benzer). Bu, ekranın bölümlerini oluşturmak için kullanılabilse de, oluşturulan bölgelerin büyük boyutu, genellikle döşeme tabanlı bir mimari kullanılarak tanımlanmadıkları anlamına gelir.