Kakelutförande - Tiled rendering

Kaklad återgivning är processen att dela upp en datorgrafikbild med ett vanligt rutnät i optiskt utrymme och göra varje del av rutnätet eller kakel separat. Fördelen med denna design är att mängden minne och bandbredd reduceras jämfört med omedelbara lägesåtergivningssystem som ritar hela ramen på en gång. Detta har gjort kakel konverteringssystem särskilt vanligt för låg effekt handdator användning. Kaklad återgivning är ibland känd som en "sortera mitten" -arkitektur, eftersom den utför sorteringen av geometrin i mitten av grafikledningen istället för nära slutet.

Grundläggande koncept

Att skapa en 3D -bild för visning består av en serie steg. Först laddas objekten som ska visas i minnet från enskilda modeller . Systemet tillämpar sedan matematiska funktioner för att omvandla modellerna till ett gemensamt koordinatsystem, världsbilden . Från denna världsbild skapas en rad polygoner (vanligtvis trianglar) som närmar sig originalmodellerna sett från en viss synvinkel, kameran . Därefter producerar ett kompositeringssystem en bild genom att återge trianglarna och applicera texturer på utsidan. Texturer är små bilder som målas på trianglarna för att skapa realism. Den resulterande bilden kombineras sedan med olika specialeffekter och flyttas till en rambuffert , vilken videohårdvara sedan skannar för att producera den visade bilden. Denna grundläggande konceptuella layout kallas display pipeline .

Var och en av dessa steg ökar mängden minne som behövs för att hålla den resulterande bilden. När det når slutet av rörledningen är bilderna så stora att typiska grafikkortsdesigner ofta använder specialiserat höghastighetsminne och en mycket snabb datorbuss för att ge den bandbredd som krävs för att flytta bilden in och ut ur de olika sub- komponenter i rörledningen. Denna typ av support är möjlig på dedikerade grafikkort, men i takt med att budgetar för effekt och storlek blir mer begränsade, blir det tillräckligt dyrt i design när det gäller tillräckligt med bandbredd.

Kaklade renderare tar itu med detta problem genom att dela upp bilden i sektioner som kallas brickor och göra var och en separat. Detta minskar mängden minne som behövs under de mellanliggande stegen, och mängden data som flyttas vid varje given tidpunkt. För att göra detta sorterar systemet trianglarna som utgör geometrin efter plats, så att de snabbt kan hitta vilka trianglar som överlappar kakelgränserna. Den laddar sedan bara de trianglarna i återgivningsrörledningen, utför de olika återgivningsoperationerna i GPU: n och skickar resultatet till rambufferten . Mycket små brickor kan användas, 16 × 16 och 32 × 32 pixlar är populära kakelstorlekar, vilket gör att mängden minne och bandbredd som krävs i de interna stadierna också är liten. Och eftersom varje kakel är oberoende, lämpar den sig naturligtvis till enkel parallellisering.

I en typisk kaklad renderare måste geometri först omvandlas till skärmutrymme och tilldelas skärmutrymme. Detta kräver lite lagring för listorna över geometri för varje kakel. I tidigt kaklade system utfördes detta av CPU: n , men all modern hårdvara innehåller hårdvara för att påskynda detta steg. Listan över geometri kan också sorteras fram och tillbaka, så att GPU: n kan använda borttagning av dold yta för att undvika bearbetning av pixlar som är dolda bakom andra, vilket sparar på minnesbandbredd för onödiga texturuppslag.

Det finns två huvudsakliga nackdelar med den kaklade metoden. En är att vissa trianglar kan ritas flera gånger om de överlappar flera brickor. Det betyder att den totala återgivningstiden skulle vara högre än ett renderingssystem i omedelbart läge. Det finns också möjliga problem när brickorna måste sys ihop för att göra en fullständig bild, men detta problem löstes för länge sedan. Svårare att lösa är att vissa bildtekniker tillämpas på ramen som helhet, och dessa är svåra att implementera i en kaklad återgivning där tanken är att slippa arbeta med hela ramen. Dessa avvägningar är välkända och av mindre betydelse för system där fördelarna är användbara; kaklade renderingssystem finns i stor utsträckning i handhållna beräkningsenheter.

Kakad återgivning ska inte förväxlas med kaklade/olinjära frambuffer -adresseringsscheman, som gör att intilliggande pixlar också ligger intill varandra i minnet. Dessa adresseringsscheman används av en mängd olika arkitekturer, inte bara kaklade renderare.

Tidigt arbete

Mycket av det tidiga arbetet med kakelregering gjordes som en del av Pixel Planes 5 -arkitekturen (1989).

Pixel Planes 5 -projektet validerade det kaklade tillvägagångssättet och uppfann många tekniker som nu ses som standard för kaklade renderare. Det är det arbete som citeras mest av andra tidningar inom området.

Det kaklade tillvägagångssättet var också känt tidigt i programvaruåtergivningens historia. Implementeringar av Reyes -rendering delar ofta bilden i "kakelhinkar".

Kommersiella produkter - Skrivbord och konsol

Tidigt i utvecklingen av stationära GPU: er utvecklade flera företag kaklade arkitekturer. Med tiden ersattes dessa till stor del av GPU: er i omedelbart läge med snabba anpassade externa minnessystem.

Viktiga exempel på detta är:

Exempel på kaklade arkitekturer som använder stora on-chip-buffertar är:

  • Xbox 360 (2005): GPU: n innehåller en inbyggd 10  MB eDRAM ; detta är inte tillräckligt för att hålla rastern för en hel bild på 1280 × 720 med 4 × anti-aliasing , så att en kakelösning överlagras när den körs i HD-upplösningar och 4 × MSAA är aktiverat.
  • Xbox One (2013): GPU: n innehåller en inbäddad 32  MB eSRAM , som kan användas för att hålla hela eller delar av en bild. Det är inte en kaklad arkitektur, men är tillräckligt flexibel för att mjukvaruutvecklare kan efterlikna kaklade renderingar.

Kommersiella produkter - Inbäddade

På grund av den relativt låga externa minnesbandbredden och den blygsamma mängd on-chip-minne som krävs, är kaklad återgivning en populär teknik för inbäddade GPU: er. Aktuella exempel inkluderar:

Kakelbaserad direktlägesåtergivning (TBIM):

  • ARM Mali -serien.
  • Qualcomm Adreno (serie 300 och nyare kan också dynamiskt växla till omedelbar/direktlägesåtergivning via FlexRender).

Kakelbaserad uppskjuten återgivning (TBDR):

Vivante producerar mobila GPU: er som har tätt kopplat rambuffertminne (liknande Xbox 360 GPU som beskrivs ovan). Även om detta kan användas för att återge delar av skärmen, betyder den stora storleken på de återgivna regionerna att de vanligtvis inte beskrivs som att använda en kakelbaserad arkitektur.

Se även

Referenser