Csempézett renderelés - Tiled rendering
A csempézett renderelés az a folyamat, amelynek során a számítógépes grafikus képeket felosztják egy optikai térben lévő rendes rácsra , és a rács minden egyes részét vagy csempéjét külön -külön megjelenítik. Ennek a kialakításnak az az előnye, hogy a memória és a sávszélesség mennyisége csökken az azonnali módú renderelőrendszerekhez képest, amelyek egyszerre rajzolják le a teljes keretet. Emiatt a csempe-renderelő rendszerek különösen elterjedtek az alacsony fogyasztású kézi eszközök használatában. A csempézett renderelést néha "rendezés középső" architektúrának nevezik, mivel a geometria rendezését a grafikus folyamat közepén végzi, nem pedig a vége közelében.
Alapkoncepció
A megjelenítésre szánt 3D kép létrehozása több lépésből áll. Először a megjelenítendő objektumokat töltik be a memóriába az egyes modellekből . A rendszer ezután matematikai függvényeket alkalmaz, hogy a modelleket közös koordináta -rendszerré alakítsa, a világképet . Ebből a világnézetből sokszögek (jellemzően háromszögek) sora jön létre, amely megközelíti az eredeti modelleket egy adott nézőpontból, a kamerából nézve . Ezt követően a kompozitációs rendszer a háromszögek megjelenítésével és a külső textúrák alkalmazásával képet készít . A textúrák apró képek, amelyeket a háromszögekre festenek, hogy valósághű legyen. A kapott képet ezután különféle speciális effektekkel kombinálják, és egy keretpufferbe helyezik át , amelyet a videó hardver ezután szkennel, hogy elkészítse a megjelenített képet. Ez az alapvető koncepcionális elrendezés a kijelző csővezeték néven ismert .
E lépések mindegyike növeli a kapott kép tárolásához szükséges memória mennyiségét. Mire a csővezeték végére ér, a képek olyan nagyok, hogy a tipikus grafikus kártyák gyakran speciális, nagysebességű memóriát és nagyon gyors számítógépes buszt használnak, hogy biztosítsák a szükséges sávszélességet a kép be- és kihelyezéséhez. a csővezeték összetevői. Ez a fajta támogatás lehetséges dedikált grafikus kártyákon, de mivel az energia- és méretkeret korlátozott lesz, az elegendő sávszélesség biztosítása drága lesz a tervezés szempontjából.
A csempézett megjelenítők ezt a problémát úgy oldják meg, hogy a képet csempéknek nevezett részekre bontják, és mindegyiket külön -külön jelenítik meg. Ez csökkenti a közbenső lépések során szükséges memória mennyiségét és az adott időpontban áthelyezett adatok mennyiségét. Ehhez a rendszer hely szerint rendezi a geometriát alkotó háromszögeket, így gyorsan megtalálhatja, hogy mely háromszögek fedik át a csempe határait. Ezután csak azokat a háromszögeket tölti be a renderelési folyamatba, elvégzi a GPU különböző megjelenítési műveleteit , és elküldi az eredményt a keretpufferbe . Nagyon kicsi lapok használhatók, a 16 × 16 és 32 × 32 képpont népszerű csempeméret, ami miatt a belső szakaszokban szükséges memória és sávszélesség is kicsi. És mivel minden csempe független, természetesen alkalmas az egyszerű párhuzamosításra.
Egy tipikus csempézett renderelőben a geometriát először szitaterületté kell alakítani, és hozzá kell rendelni a képernyő-tér csempékhez. Ez némi tárolást igényel az egyes lapok geometriai listáihoz. A korai csempézett rendszerekben ezt a CPU hajtotta végre , de minden modern hardver tartalmaz hardvert, amely felgyorsítja ezt a lépést. A geometria listája elölről hátra is rendezhető, lehetővé téve a GPU számára a rejtett felület eltávolítását, hogy elkerülje a mások mögött rejtett képpontok feldolgozását, ezzel megspórolva a memória sávszélességét a szükségtelen textúra -kereséseknél.
A csempézett megközelítésnek két fő hátránya van. Az egyik az, hogy egyes háromszögeket többször is meg lehet rajzolni, ha több lapot fednek át. Ez azt jelenti, hogy a teljes megjelenítési idő hosszabb lenne, mint az azonnali módú renderelő rendszer. Lehetnek olyan problémák is, amikor a lapokat össze kell varrni a teljes kép érdekében, de ezt a problémát már régen megoldották. Nehezebb megoldani, hogy egyes képtechnikákat a keret egészére alkalmaznak, és ezeket nehéz végrehajtani csempézett renderelésben, ahol az az elképzelés, hogy nem kell a teljes kerettel dolgozni. Ezek a kompromisszumok jól ismertek, és csekély következményekkel járnak azoknál a rendszereknél, ahol az előnyök hasznosak; csempézett renderelő rendszerek széles körben megtalálhatók a kézi számítástechnikai eszközökben.
A csempés renderelést nem szabad összetéveszteni a csempézett/nemlineáris framebuffer címzési sémákkal, amelyek a szomszédos pixeleket a memóriában is szomszédossá teszik. Ezeket a címzési sémákat sokféle architektúra használja, nem csak csempézett renderelők.
Korai munka
A csempézett renderelés korai munkájának nagy részét a Pixel Planes 5 architektúra részeként végezték (1989).
A Pixel Planes 5 projekt validálta a csempézett megközelítést, és feltalált számos olyan technikát, amelyet ma már szabványosnak tekintenek a csempézett megjelenítőknél. Ez az a munka, amelyet a szakterület más lapjai a legszélesebb körben idéznek.
A csempézett megközelítés a szoftver -megjelenítés történetének elején is ismert volt. A Reyes renderelés megvalósításai gyakran „cserépvödrökre” osztják a képet.
Kereskedelmi termékek - Asztali és konzolos
Az asztali GPU -k fejlesztésének korai szakaszában több vállalat csempézett architektúrát fejlesztett ki. Idővel ezeket nagyrészt felváltották az azonnali módú GPU-k, gyors egyedi külső memóriarendszerekkel.
Ennek főbb példái a következők:
- PowerVR rendering építészet (1996): A raszterezőt állt 32 × 32 cserép amibe sokszögek arra raszterizálva az egész képet egyszerre több pixel párhuzamosan. A korai PC -verziókban a csempézést a CPU -n futó kijelző -illesztőprogramban végezték . A Dreamcast konzol alkalmazásában a csempézést egy hardverdarab végezte. Ez megkönnyítette a halasztott renderelést- csak a látható képpontok voltak textúrával leképezve , így takarékoskodtak az árnyékolással és a textúra sávszélességével .
- Microsoft Talisman (1996)
- Dreamcast (PowerVR lapkakészlettel) (1998)
- Gigapixeles GP-1 (1999)
- Intel Larrabee GPU (2009) (törölt)
- PS Vita (PowerVR lapkakészlettel) (2011)
- A Maxwell architektúrán és későbbi architektúrákon alapuló Nvidia GPU -k (2014)
- AMD GPU -k a Vega (GCN5) architektúrán és későbbi architektúrákon (2017)
- Intel Gen11 GPU és újabb architektúrák (2019)
Példák a nem csempézett architektúrákra, amelyek nagy chip-puffereket használnak:
- Xbox 360 (2005): a GPU beépített 10 MB -os eDRAM -ot tartalmaz ; ez nem elegendő ahhoz, hogy a rasztert egy teljes, 1280 × 720 képpontos képen tartsa, 4 × többpéldányos anti-aliasing funkcióval , így HD felbontásban történő futtatáskor csempézési megoldás kerül egymásra, és a 4 × MSAA engedélyezve van.
- Xbox One (2013): a GPU egy 32 MB -os eSRAM -ot tartalmaz , amely a kép egészének vagy egy részének tárolására használható. Ez nem csempézett architektúra, de elég rugalmas ahhoz, hogy a szoftverfejlesztők emulálni tudják a csempézett renderelést.
Kereskedelmi termékek - Beágyazott
A viszonylag alacsony külső memória sávszélesség és a szükséges szerkezeti memóriamennyiség miatt a csempézett renderelés a beágyazott GPU-k népszerű technológiája. A jelenlegi példák a következők:
Csempealapú azonnali módú megjelenítés (TBIM):
- ARM Mali sorozat.
- A Qualcomm Adreno (300 -as és újabb sorozatok is dinamikusan válthatnak azonnali/közvetlen módú megjelenítésre a FlexRender segítségével).
Csempe alapú halasztott renderelés (TBDR):
- Arm Mali sorozat.
- Imagination Technologies PowerVR 5/6/7 sorozat.
- Broadcom VideoCore IV sorozat.
- Apple szilikon GPU -k.
A Vivante mobil GPU -kat gyárt, amelyek szorosan összekapcsolt keretpuffer memóriával rendelkeznek (hasonlóan a fent leírt Xbox 360 GPU -hoz). Bár ezzel a képernyő egyes részei is megjeleníthetők, a renderelt régiók nagy mérete azt jelenti, hogy általában nem írják le őket csempealapú architektúra használatáról.