Qual é a diferença entre uma folha de sprite e um atlas de textura?

21

Gostaria de saber qual é a diferença entre uma folha de sprite e um atlas de textura?

Não são os mesmos? Em uma folha de sprite, você tem alguns sprites e, em um atlas de textura, também tem alguns sprites, então qual é a diferença?

user41816
fonte

Respostas:

23

Uma folha de sprites (geralmente refere-se a uma imagem grande que) deve conter os quadros de animação de um personagem 2D ou projétil específico de um jogo. Você quase pode pensar nisso como o modelo de um personagem 2D. Ele armazena todas as várias animações criadas para um personagem específico.

insira a descrição da imagem aqui

Um atlas de textura (geralmente é usado para significar uma imagem 2D grande) que contém muitas texturas . Você pode pensar nelas como imagens 2D "pintadas" sobre objetos 3D ou aplicadas a elas como parte de um shader para explicar ao renderizador (a parte que converte dados 3D em uma imagem 2D) como elas refletem a luz (mapa normal) ou se houver sulcos, solavancos ou rachaduras em sua superfície (mapa de solavancos) ou possivelmente algo como opacidade ou não. Este termo (atlas de textura) será frequentemente usado3dambiente de jogo. Qualquer objeto 3d (por exemplo, uma arma, uma lata de lixo) ou personagem pode ter uma textura aplicada a ele. Especialmente os níveis 3D podem exigir várias texturas diferentes para várias paredes e elementos no cenário 3D. Todas essas texturas podem ser contidas de maneira acessível e eficaz em uma única imagem grande composta de muitos quadrados (sub-regiões) dedicados a um modelo específico.

insira a descrição da imagem aqui

Além disso, pode ser importante observar que um atlas de textura geralmente contém capas de caracteres (texturas de caracteres) e que a animação real (afirmando o óbvio) não é armazenada como imagens em 2d, pois a animação nesses casos geralmente se baseia na deformação da malha com ferramentas como ossos.

wolfdawn
fonte
2
Então, você poderia dizer que SpriteSheets contém gráficos 2D e TextureAtlases contém TileSets?
user41816
3
tl; dr: Sim, isso é absolutamente correto. Sprites Sheetsgeralmente significa um grande conjunto de quadros de animação de alguns personagens específicos ou vários caracteres em outros casos. Texture Atlasgeralmente significa uma imagem grande que contém muitas sub-imagens que são texturas; 2d tilesse encaixam bem na texturecategoria. Portanto, a Tile Seté um tipo muito específico (ou uma subcategoria) de atlas de textura. A texture Atlastambém pode conter skinsem muitos casos e, portanto, não é uma Tile Setno caso geral.
wolfdawn
Hum. Assim que vi os comentários, retirei meu voto positivo. Sua resposta está correta na medida em que uma planilha de sprites é para 2D (ou seja, sprites) e um atlas de textura é mais tipicamente usado para 3D - ou seja, texturas reais colocadas em geometrias 3D. Isso é tudo - sem outros qualificadores.
Engenheiro de
@ArcaneEngineer Eu não entendo? O que você está apontando ou sugerindo como uma melhoria na resposta?
Lobo
1
@ ArcaneEngineer - Você está certo, absolutamente bom ponto, o comentário é enganoso e um pouco incorreto. Além disso, o termo conjunto de blocos é enganoso, pois pode significar coisas diferentes para pessoas diferentes, se não for definido adequadamente.
wolfdawn
6

Tecnicamente visto, é o mesmo: é uma imagem grande que contém imagens menores (sprites).

O 3d vs 2d não faz diferença aqui, já que quase todos os mecanismos de jogos 2D usam hardware 3D para renderizar ....

user41821
fonte
2

Uma folha de sprite e um atlas de textura são quase os mesmos. Ambos são arquivos de imagem de bitmap (jpg, png, etc.) que contêm várias imagens menores, geralmente em uma grade, que são indexadas e exibidas usando o mecanismo de software / jogo que localiza as imagens individuais por suas coordenadas. Eles também servem para simplificar o gerenciamento de recursos e reduzir as chamadas de extração, exigindo apenas o gerenciamento e o carregamento de um único arquivo.

Esta folha / atlas possui animações quadro a quadro do personagem (normalmente usadas em uma "folha de sprite"), bem como imagens que serão lado a lado como textura para as paredes (também conhecido como "atlas de textura"):

metroid

A diferença, ao que parece, é como eles geralmente são implementados. Como outras respostas indicam, uma folha de sprite é frequentemente usada em jogos 2D para animações ou botões, enquanto as imagens em um atlas de textura são usadas como texturas para objetos de malha.

Embora o contexto e o que é exibido nas imagens sejam importantes, o mesmo ocorre com a maneira como o programa gerencia e manipula as imagens. Um arquivo de imagem usado como uma planilha de sprite em um mecanismo de jogo pode reproduzir as imagens individuais uma após a outra para criar uma animação. Mas você também pode usar o mesmo arquivo de imagem que um atlas de textura no mesmo mecanismo de blocos em uma malha para criar uma parede de tijolos.

Isso significa que existem distinções mais específicas, dependendo de como o seu software gerencia esses dois tipos de uso. No Unity, por exemplo, não é tão fácil converter uma imagem aplicada a um GameObject de uma planilha de sprite em uma Texture2D que pode ser aplicada a um GameObject diferente como uma textura. Foi assim que cheguei a esta página pelo Google e decidi adicionar esta resposta. :-)

ow3n
fonte
0

Eu diria que atlas de textura é o termo mais geral: você pode criar uma folha de sprite a partir de um atlas de textura, mas geralmente não o contrário.

A principal suposição distintiva é a maneira como as coordenadas da textura são mapeadas para a geometria: as folhas de sprite assumem sub-regiões retangulares, enquanto os atlas de textura podem ser mapeados para qualquer superfície geométrica.

Se todas as superfícies geométricas mapeadas a partir do atlas de textura forem quads 2D, você terá uma folha de sprite. Se você alterar o mapeamento ao longo do tempo ou quadro a quadro, poderá simular a animação de caracteres 2D.

glopes
fonte