Sprite (datorgrafik)

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 17 oktober 2021; kontroller kräver 4 redigeringar .

Sprite ( engelska  sprite  - " fairy , elf ") - ett grafiskt objekt i datorgrafik .

Oftast en bitmapp som kan visas på skärmen [1] . Att titta på en sprite i 3D-rymden från fel vinkel bryter illusionen. Det vill säga, det är lättast att uppfatta en sprite som en projektion av någon volymetrisk kropp som rör sig i rymden så att skillnaden är omärklig.

Ursprunget till termen

Ordet "sprite" myntades på 1970-talet av en Texas Instruments -anställd : deras nya TMS9918-chip kunde visa små bilder över en stationär bakgrund i hårdvara [2] .

Sprites i 2D

Inledningsvis förstod man sprites som små ritningar som visades på skärmen med hjälp av hårdvaruacceleration . På vissa maskiner ( MSX 1, NES ) resulterade programritning i vissa begränsningar , men hårdvarusprites hade inte denna begränsning. Därefter, med en ökning av kraften hos den centrala processorn , övergavs hårdvarusprites och konceptet "sprite" spred sig till alla tvådimensionella karaktärer. I synnerhet i videospelen Super Mario och Heroes of Might and Magic är all grafik sprites, animerad genom att iterera genom bilder från sprite-atlasen.

Hårdvaruaccelererade sprites återvände i mitten av 1990-talet , när utvecklingen av multimedia och den explosiva ökningen av upplösning och färgdjup krävde en specialiserad processor i grafikkortet. Det var då som DirectDraw kom ut som ett omslag över en 2D hårdvaruaccelerator . DirectX 8 introducerade ett gemensamt API för 2D- och 3D-grafik, och i moderna sprite-spel renderas 2D-sprites på exakt samma sätt som 3D-sprites - som en texturerad rektangel .

En spriteatlas är en bitmapp som organiserar sprites i en uppsättning animerade storyboards, eller andra uppsättningar sprites. Det ändamålsenliga med applikationen är att minska antalet filer och använda sprite-batch i renderingsprocessen : en bild överförs till grafikkortet, en uppsättning koordinater på vilka den måste " renderas " och "stenciler" som skär individuella sprites från atlasen. Som ett resultat "renderar" tvådimensionell grafik mycket snabbare än enstaka överföringar av enstaka sprites till grafikkortet med indikering av renderingskoordinater. För ytterligare komprimering och minska mängden outnyttjat utrymme kan atlasen kombinera bilder inte i ett rutnät, utan i den mest täta komprimerade formen, så att om du beskriver en rektangel runt varje sprite kommer några av rektanglarna att skära varandra. Det här formatet kräver ytterligare information om de hörn som kan beskriva varje sprite utan att korsa andra, och ökar applikationens laddningstid, men minskar minnet.

CSS sprites

CSS låter dig använda sprite-atlaser i sig. Flera bilder finns i en grafisk fil. Vidare, för att dekomponera den i flera bilder, tillämpas bildstorleksgränsen på storleken på en sprite i atlasen, och bakgrundspositionen för atlasen förskjuts med ett värde som är en multipel av bildhöjden. Således kan en fil tillhandahålla ikoner för hela webbplatsen.

CSS-sprites sparar trafik och snabbar upp laddningen - webbläsaren kommer att behöva begära färre filer.

Sprites i 3D

Första generationens motorer

I tidiga 3D-spel som Wolfenstein 3D ( 1992 ), Doom ( 1993 ) och Build Engine -baserade spel ( Duke Nukem 3D , Shadow Warrior , Exhumed, Redneck Rampage ) representerades karaktärer som 2D-ritningar som ändrade storlek beroende på hur långt de är från spelaren.

3D-acceleratorer

3D-acceleratorer använder följande teknik: ett objekt ritas som ett plan med en textur överlagd med transparenta områden. Denna teknik används i tre fall.

Optimering

Sprites kan användas för att optimera grafikkärnan när rendering av en detaljerad 3D-modell är för dyrt och kan leda till en kraftig minskning av renderingshastigheten. Dessa är:

  • Objekt som finns i scenen i stort antal och som, eftersom de är 3D, skulle ha ett stort antal ansikten och skulle ha en mycket stark inverkan på prestandan - till exempel extramaterial i bakgrunden, rök, gräs, etc.
  • Avlägsna föremål, som dras nära av polygonala modeller , förvandlas till sprites of varying detail (LOD) när de kommer längre bort.
Specialeffekter

Vissa specialeffekter , som eld, görs med sprites, eftersom polygonal eld ser dåligt ut. Jämför till exempel explosioner i Quake 2 och Unreal Tournament .

För större plausibilitet för bilden används ett stort antal relativt små sprites (det så kallade partikelsystemet ).

Livefilmer

Ibland används sprites för att lägga till ett livefoto eller en video till spelet . Till exempel:

  • Levande skådespelare, till exempel i realMyst .
  • Kontrollspakar i simulatorer av flygplan, tåg etc., fotograferade i en riktig cockpit.

Det är värt att notera att i vissa sprite-spel, som Rise of the Triad , fotograferades sprites från skådespelare snarare än modeller, leksaker eller teckningar.

Utseendet på shaders tar delvis bort behovet av livefotografering - många nyanser av en fotobild kan redan förmedlas av polygonala modeller i realtid.

Terminologi

  • Billboard  - en sprite som ständigt är vänd mot kameran (liknande skyltar på motorvägar, som är vända i den mest gynnsamma vinkeln).
  • Impostor  är en sprite som ersätter en 3D-modell på långt avstånd.

Spraya i FPS shooters

I spel av det här slaget är "Spray" namnet på mönstret när man skjuter från olika typer av vapen, enligt vilket spelarna lär sig att kontrollera rekylen och förbättra skyttet.

Se även

Anteckningar

  1. sprite definition - Ordbok - MSN Encarta (nedlänk) . Tillträdesdatum: 11 januari 2008. Arkiverad från originalet den 25 maj 2009. 
  2. Karl Guttag-konferens om Delphi TI Net - Google Groups . Hämtad 3 september 2012. Arkiverad från originalet 2 augusti 2013.

Länkar