Как SNES обрабатывали палитры нескольких спрайтов?

(предполагается, что все графики хранятся в формате 4 бит /с)

Я понимаю, что SNES имеет 256 цветовую палитру, разделенную на 16 палитр (каждая с 16 цветами), а 8 из них представляют собой палитры, которые можно использовать с помощью спрайтов. Каждый спрайт имеет число, представляющее, какую из этих 8 палитр он использует. Мой вопрос: как и , когда - это цвета этих 8 палитр, которые обычно устанавливаются.

Записывает ли SNES палитру спрайта в одну из этих 8 палитр, когда она отображается? Если бы это означало, что одновременно можно было отображать только 8 спрайтов, а два спрайта, использующие одни и те же цвета, не разделяли бы палитру, которая была бы пустой тратой памяти.

5 голосов | спросил user3124047 25 FriEurope/Moscow2015-12-25T21:39:51+03:00Europe/Moscow12bEurope/MoscowFri, 25 Dec 2015 21:39:51 +0300 2015, 21:39:51

1 ответ


14

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

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

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

Разработчик игры SNES не будет настолько расточительным, чтобы присвоить каждому спрайту свой собственный индекс 8-цветной палитры (кроме возможно для основного символа). Несколько спрайтов будут использовать один и тот же индекс палитры. У вас разные индексы палитры для разных спрайтов, но много спрайтов придется делиться. Это означает, что палитра должна удовлетворять потребности нескольких спрайтов.


Палитра устанавливается с помощью ... игры, устанавливающей палитру. Это не ракетостроение.

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

После того, как все это было прибито, они просто выполнили свою работу, сделав каждый спрайт работой с цветами палитры, которые они разработали. Опять же, это, вероятно, связано со многими итерациями.

Инструменты, которые они использовали для создания этих изображений, не были такими программами, как Photoshop. Осмотрите сцену взлома Super Mario World на примерах тех видов искусства, которые они будут использовать для создания спрайтов. Этими инструментами являются заданные палитры для работы, и вы создаете свое изображение только из этих цветов.

Источником палитры не было программное обеспечение для обработки изображений; он был специально разработан разработчиками.

Для SNES данные изображения и данные палитры живут в разных местах. Изображения, как правило, живут в больших блоках данных в ПЗУ. Палитры, как правило, жестко закодированы или иначе живут в таблицах в совершенно разных местах в ПЗУ. Связь между ними - просто хорошо образованное совпадение.

Возьмите Super Mario World, например. Спрайт - это игровая конструкция, прикрепленная к уровню. Но изображения, используемые этими спрайтами, зависят от определенных цветов, находящихся в определенных индексах палитры. Как это происходит? Точно и только потому, что этот уровень просто так происходит , чтобы поместить туда эти цвета. То есть на каждом уровне есть настройка, для которой используются палитры (палитра палитр). И если уровень загружает правильную палитру для спрайтов, которые использует этот уровень, тогда все выглядит нормально.

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

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

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

ответил Nicol Bolas 25 FriEurope/Moscow2015-12-25T21:54:57+03:00Europe/Moscow12bEurope/MoscowFri, 25 Dec 2015 21:54:57 +0300 2015, 21:54:57

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132