Alla fine della giornata, gli sprite e le trame sono solo immagini - blocchi di dati a colori raster (anche se a volte spingiamo un po 'i limiti per inserire dati non immagine). La distinzione è in gran parte nel modo in cui li usiamo.
Di solito chiamiamo un'immagine (o una parte di un'immagine che contiene molti pezzi separati) uno "sprite" se il suo scopo di rendering previsto deve essere disegnato direttamente sulla griglia 2D dello schermo, senza distorsione prospettica. Quindi ciò che vedi nel gioco in esecuzione è fondamentalmente quello che vedi nel file di immagine stesso (a parte la colorazione del colore / scambio di palette / effetti di trasparenza). Questo vale per le tessere di sfondo e i personaggi / oggetti interattivi nei giochi 2D, le carte "cartelloni" come particelle e gli stili più vecchi di rendering di alberi e arbusti, e anche per gli elementi e le icone dell'interfaccia utente nei giochi 3D.
Al contrario, se stiamo usando un'immagine per fornire dettagli di superficie per i poligoni di un oggetto 3D che potrebbero essere disegnati in prospettiva, di solito chiamiamo quell'immagine una "trama". Quel nome è stato trasferito ad altri usi dei dati delle immagini per modulare il rendering di qualcos'altro, anche se non riguardano più la trama nel senso che potresti sentire con la punta delle dita - cose come riflessi, mappe di distorsione, sovrapposizioni, maschere o qualsiasi l'uso generale di immagini che non pensiamo di nominare in modo più specifico tende a essere raggruppato sotto "trama" nella nostra nomenclatura libera.
Ciò rende i confini tra i due fuzzy e non particolarmente severi. Se ho un'immagine contenente una sequenza di pennacchi di fuoco e fumo da utilizzare nel disegno di particelle di cartellone per un effetto di esplosione, potrei chiamare intercambiabile uno "spriteheet" o una "trama di flipbook". O se ho un'immagine di un set di tessere comprendente tutte le tessere di sfondo per un gioco 2D, oggi potrei chiamarlo "atlante delle trame", per analogia con le trame dell'atlante sviluppate per i giochi 3D, anche se i suoi dati e l'uso nel mio gioco 2D sono indistinguibili da quello che qualcun altro chiamerebbe un foglio di calcolo. Se ho un rettangolo di geometria il cui scopo è presentare una singola immagine sullo schermo, potrei chiamarlo "quad testurizzato" o "sprite" a seconda di ciò che voglio sottolineare sul suo uso.
(Nota qui in questo ultimo esempio che "sprite" sta sia per il segmento di immagine di origine nelle nostre risorse di gioco, sia per l'istanza di un'entità di gioco renderizzata che utilizza questo segmento di immagine - un altro modo in cui usiamo questa terminologia in modo un po 'incoerente)
Alcuni motori e librerie codificano questa distinzione nel rendere l'intento nella propria nomenclatura. Ad esempio, in Unity puoi scegliere di importare una risorsa immagine come "Sprite" - questo abilita una serie extra di opzioni che sono comunemente desiderate per le immagini dell'interfaccia utente o le risorse di gioco 2D, come lo splicing e l'imballaggio dello spritesheet, e la possibilità di fare riferimento parti dell'immagine come entità discrete nella scena e nella configurazione degli oggetti. In questi casi "Sprite" spesso significa "un'immagine (trama) più metadati " - ma è ancora resa uguale alle normali trame sotto il cofano. L'imballaggio extra è una comodità, quindi non è necessario eseguire la micromanage di offset UV e simili ovunque desideriamo utilizzare l'immagine;