В чем разница между спрайт-листом и текстурным атласом?


21

Мне интересно, в чем разница между листом спрайта и текстурным атласом?

Разве оба не одинаковы? В листе спрайтов у вас есть несколько спрайтов, а в текстурном атласе у вас также есть несколько спрайтов, так в чем же разница?

Ответы:


23

Лист спрайтов (часто относится к большому изображению) должен содержать кадры анимации конкретного 2-го персонажа или снаряда в игре. Вы можете почти думать об этом как о модели двумерного персонажа. Здесь хранятся все различные анимации, созданные для конкретного персонажа.

введите описание изображения здесь

Текстурный атлас (часто означает большое 2-мерное изображение) содержит много текстур . Вы можете думать о них как о двухмерных изображениях, «закрашенных» над трехмерными объектами или иным образом примененных к ним как часть шейдера, чтобы объяснить рендереру (части, которая преобразует трехмерные данные в двумерное изображение), как они отражают свет (карта нормалей) или если на их поверхности есть углубления, неровности или трещины (карта неровностей) или, возможно, что-то совсем другое, например непрозрачность, а что нет. Этот термин (текстурный атлас) будет часто использоваться в3dигровая среда. К любому 3d объекту (например, оружию, мусорному ведру) или персонажу может быть применена текстура. Особенно 3d-уровни могут потребовать нескольких различных текстур для различных стен и элементов в 3d-декорации. Все эти текстуры могут содержаться в доступном и эффективном виде в одном большом изображении, состоящем из множества квадратов (субрегионов), предназначенных для конкретной модели.

введите описание изображения здесь

Кроме того, может быть важно отметить, что текстурный атлас часто содержит скины персонажей (текстуры персонажей) и что фактическая анимация (с указанием очевидного) не сохраняется как двумерные изображения, поскольку анимация в таких случаях обычно основана на деформации меша с инструменты, такие как кости.


2
Таким образом, вы могли бы сказать, что SpriteSheets содержат 2D-символы, а TextureAtlases содержат TileSets?
user41816

3
tl; dr: Да, это абсолютно правильно. Sprites Sheetsчасто означают большой набор кадров анимации определенного персонажа или несколько персонажей в других случаях. Texture Atlasчасто означает большое изображение, которое содержит много вспомогательных изображений, которые являются текстурами; 2d tilesхорошо вписывается в textureкатегорию. Так что Tile Setэто очень специфический вид (или подкатегория) текстурного атласа. A texture Atlasможет также содержать skinsво многих случаях и, следовательно, не является Tile Setв общем случае.
wolfdawn

Гектометр Как только я увидел комментарии, я отозвал свой голос. Ваш ответ правильный, поскольку таблица спрайтов предназначена для 2D (т. Е. Спрайтов), а текстурный атлас чаще используется для 3D, т. Е. Фактических текстур, размещаемых на 3D-геометрии. Вот и все - никаких других классификаторов.
Инженер

@ArcaneEngineer Я не понимаю? Что вы указываете или предлагаете как улучшение ответа?
волчий рассвет

1
@ArcaneEngineer - Вы правы, абсолютно хороший момент, комментарий вводит в заблуждение и несколько неверен. Также термин «набор плиток» вводит в заблуждение, поскольку он может означать разные вещи для разных людей, если он не определен должным образом.
волчий рассвет

6

Технически видно, что это то же самое: это большое изображение, которое содержит меньшие изображения (спрайты).

3D vs 2d здесь не имеет значения, так как почти все движки 2d используют 3D-оборудование для рендеринга ....


2

Лист спрайта и текстурный атлас почти одинаковы. Оба файла представляют собой файлы растровых изображений (jpg, png и т. Д.), Которые содержат несколько небольших изображений, обычно в виде сетки, которые индексируются и отображаются с использованием программного обеспечения / игрового движка, который определяет местоположение отдельных изображений по их координатам. Оба они также упрощают управление ресурсами и снижают количество вызовов отрисовки, требуя только управления и загрузки одного файла.

Этот лист / атлас содержит как покадровую анимацию персонажа (обычно используемую в «листе спрайта»), так и изображения, которые будут выложены плиткой в ​​качестве текстуры для стен (или «текстурный атлас»):

Metroid

Разница, кажется, в том, как они обычно реализуются. Как утверждают другие ответы, спрайт-лист часто используется в 2D-играх для анимации или кнопок, в то время как изображения в текстурном атласе используются в качестве текстур для объектов сетки.

В то время как контекст и то, что отображается на изображениях, имеет значение, так же, как программа управляет изображениями и управляет ими. Файл изображения, используемый в игровом движке в качестве спрайт-листа, может воспроизводить отдельные изображения одно за другим для создания анимации. Но вы также можете использовать тот же файл изображения, что и текстурный атлас в том же движке, что и плитки на сетке, чтобы создать кирпичную стену.

Это означает, что существуют более конкретные различия в зависимости от того, как ваше программное обеспечение управляет этими двумя типами использования. Например, в Unity не так просто преобразовать изображение, примененное к GameObject, из листа спрайта в Texture2D, который затем можно применить к другому GameObject в качестве текстуры. Именно так я и попал на эту страницу через Google и решил добавить этот ответ. :-)


0

Я бы сказал, что текстурный атлас - это самый общий термин: вы можете создать спрайт-лист из текстурного атласа, но обычно не наоборот.

Ключевым отличительным допущением является способ сопоставления координат текстуры с геометрией: спрайт-листы предполагают прямоугольные подобласти, тогда как атласы текстуры могут отображаться на любую геометрическую поверхность.

Если все геометрические поверхности, отображенные из текстурного атласа, являются двухмерными квадратами, у вас есть спрайт-лист. Если вы меняете отображение с течением времени или покадрово, вы можете моделировать 2D анимацию персонажей.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.