¿Cuál es la diferencia entre una hoja de sprites y un atlas de texturas?

21

Me pregunto cuál es la diferencia entre una hoja de sprites y un atlas de texturas.

¿No son los dos iguales? En una hoja de sprites tienes algunos Sprites y en un atlas de texturas también tienes algunos sprites, entonces, ¿cuál es la diferencia?

usuario41816
fuente

Respuestas:

23

Se supone que una hoja de sprites (a menudo se refiere a una imagen grande que) contiene los cuadros de animación de un personaje o proyectil 2D específico en un juego. Casi puedes pensar en él como el modelo de un personaje 2D. Almacena todas las animaciones creadas para un personaje específico.

ingrese la descripción de la imagen aquí

Un atlas de texturas (a menudo se entiende que significa una imagen 2D grande que) contiene muchas texturas . Puede pensar en ellas como imágenes en 2D "pintadas" sobre objetos en 3D o de otra manera aplicadas a ellas como parte de un sombreador para explicar al renderizador (la parte que convierte los datos en 3D en una imagen en 2D) cómo reflejan la luz (mapa normal) o si hay surcos, protuberancias o grietas en su superficie (mapa de protuberancias) o posiblemente algo completamente distinto, como la opacidad y demás. Este término (atlas de textura) a menudo se usará en un3dentorno de juego Cualquier objeto 3D (por ejemplo, un arma, un bote de basura) o un personaje puede tener una textura aplicada. Especialmente los niveles 3D pueden requerir múltiples texturas diferentes para varios muros y elementos en el escenario 3D. Todas estas texturas pueden estar contenidas de manera accesible y efectiva en una sola imagen grande compuesta de muchos cuadrados (subregiones) dedicados a un modelo específico.

ingrese la descripción de la imagen aquí

Además, puede ser importante tener en cuenta que un atlas de texturas a menudo contiene máscaras de caracteres (texturas de caracteres) y que la animación real (indicando lo obvio) no se almacena como imágenes en 2D, ya que la animación en estos casos generalmente se basa en la deformación de la malla con herramientas como huesos.

Wolfdawn
fuente
2
Entonces, ¿podría decir que las SpriteSheets contienen Charactes 2D y TextureAtlases contienen TileSets?
user41816
3
TL; DR: Sí, eso es absolutamente correcto. Sprites Sheetsa menudo significan un gran conjunto de cuadros de animación de personajes específicos o caracteres múltiples en otros casos. Texture Atlasa menudo significa una imagen grande que contiene muchas subimágenes que son texturas; 2d tilesencajan bien en la texturecategoría. Entonces, a Tile Setes un tipo muy específico (o una subcategoría) de atlas de texturas. A texture Atlastambién puede contener skinsen muchos casos y, por lo tanto, no es un Tile Seten el caso general.
wolfdawn
Hm. Tan pronto como vi los comentarios, retiré mi voto a favor. Su respuesta es correcta en la medida en que una hoja de sprites es para 2D (es decir, sprites) y un atlas de texturas se usa más comúnmente para 3D, es decir, texturas reales colocadas en geometrías 3D. Eso es todo, no hay otros calificadores.
Ingeniero
@ArcaneEngineer No entiendo? ¿Qué estás señalando o sugiriendo como una mejora a la respuesta?
wolfdawn
1
@ArcaneEngineer: tienes razón, un punto absolutamente bueno, el comentario es engañoso y algo incorrecto. Además, el término conjunto de mosaicos es engañoso porque puede significar cosas diferentes para diferentes personas si no se define adecuadamente.
Wolfdawn
6

Técnicamente visto, es lo mismo: es una imagen grande que contiene imágenes más pequeñas (sprites).

El 3D vs 2D no hace una diferencia aquí ya que casi todos los motores de juegos 2D usan hardware 3D para renderizar ...

usuario41821
fuente
2

Una hoja de sprites y un atlas de texturas son casi iguales. Ambos son archivos de imagen de mapa de bits (jpg, png, etc.) que contienen múltiples imágenes más pequeñas, generalmente en una cuadrícula, que se indexan y se muestran utilizando un motor de software / juego que localiza las imágenes individuales por sus coordenadas. Ambos también sirven para simplificar la administración de recursos y reducir las llamadas de extracción al solo requerir la administración y carga de un solo archivo.

Esta hoja / atlas tiene animaciones cuadro por cuadro del personaje (típicamente usado en una "hoja de sprite"), así como imágenes que se colocarán en mosaico como textura para las paredes (también conocido como "atlas de textura"):

metroid

La diferencia, al parecer, es cómo se implementan típicamente. Como dicen otras respuestas, una hoja de sprites a menudo se usa en juegos 2D para animaciones o botones, mientras que las imágenes en un atlas de texturas se usan como texturas para objetos de malla.

Si bien el contexto y lo que se muestra en las imágenes es importante, también lo hace la forma en que el programa gestiona y manipula las imágenes. Un archivo de imagen utilizado como una hoja de sprite en un motor de juego podría reproducir las imágenes individuales una tras otra para crear una animación. Pero también podría usar el mismo archivo de imagen como un atlas de textura en el mismo motor que los mosaicos en una malla para crear una pared de ladrillos.

Esto significa que hay distinciones más específicas según la forma en que su software gestione estos dos tipos de usos. En Unity, por ejemplo, no es tan fácil convertir una imagen aplicada a un GameObject de una hoja de sprite a un Texture2D que luego puede aplicarse a un GameObject diferente como una textura. Así es como llegué a esta página a través de Google y decidí agregar esta respuesta. :-)

ow3n
fuente
0

Yo diría que el atlas de texturas es el término más general: puede construir una hoja de sprite a partir de un atlas de texturas, pero generalmente no al revés.

El supuesto distintivo clave es la forma en que las coordenadas de textura se asignan a la geometría: las hojas de sprites asumen subregiones rectangulares, mientras que los atlas de textura se pueden asignar a cualquier superficie geométrica.

Si todas las superficies geométricas mapeadas del atlas de texturas son quads 2D, tiene una hoja de sprite. Si cambia la asignación con el tiempo, o cuadro por cuadro, puede simular la animación de personajes en 2D.

glopes
fuente