LINUX.ORG.RU

Рисуем хорька в гексагональной графике

 , , ,


2

1

Прошло 3 недели с тех пор как я писал о создании конвертора гексагональной графики:

Гексогональные пиксели и детальная документация

И вот теперь уже готов примитивный редактор. В нём реализовано клавиатурное управление, единственный инструмент — перо, палитра, выбор цвета, редактор масок субпиксельной информации и синхронизации курсора с референсным изображением.

На скриншоте видно, как я начинал рисовать своего хорька. При этом для правого глаза уже добавлена субпиксельная информация, а для левого — ещё нет. Посмотреть, что получилось, и другие примеры гексагональной графики можно здесь.

Про главного героя фото. Хорёк у нас появился в сентябре. Снимок, собственно, тогда же и сделан. Сейчас он значительно подрос. Научился выбираться из клетки и теперь его в неё не загонишь. Зверёк очень шустрый, грызёт руки или ноги — до чего дотянется. В отличии от кошек его очень трудно выдворить, например, за дверь. Как только он приземляется на ноги, он практически без задержек устремляется назад в комнату и закрыть дверь не всегда успеваешь. Для тех, кто не в курсе. Есть выражение «спать как хорёк», так как же спит хорёк? Не всегда но иногда хорёк впадает в такой сон, что его не возможно разбудить. Он словно неживой. Его можно как угодно брать, перекладывать и творить с ним всё, что угодно, ему абсолютно по барабану.

Репозиторий проекта

Проект детально документирован. как и hexpict.

>>> Просмотр (1366x768, 622 Kb)

★★★★★

Проверено: cetjs2 ()

О детальной документации. Детальная документация задумывалась как альтернатива грамотному программированию без его недостатков. Она не требует каких-либо специальных инструментов. За время такого документирования выяснилось по-крайней мере одно преимущество:

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

Клавиши редактора:

Клавиши вокруг H (Y, U, J, N, B, G) — навигация.

H — заменить базовый цвет текущего пикселя на выбранный цвет в палитре

M — редактирование маски формы

V — редактирование дополнительного цвета

Q, A, O, P — изменение вида

W, S — изменение масштаба

C — изменение выбранного цвета в палитре

T — (пипетка) взять базовый цвет из выбранного пикселя и заменить текущий цвет в палитре.

X — сохранение

Z — выход

от 1 до = — выбор текущего цвета в палитре

от F1 до F12 — выбор редактируемого файла

unDEFER ★★★★★ ()
Последнее исправление: unDEFER (всего исправлений: 1 )

Прошло 3 недели с тех пор как я писал о создании конвертора гексогональной графики:

Кабзда 3 недели прошло. У меня в памяти что это было ну на прошлых выходных там. Прям не по себе как время то летит.

LINUX-ORG-RU ★★★★★ ()

Если именно срисовывать было бы удобно если холст или картинка накладывались друг на друга и одно из было с 50% прозрачностью (ну можно и регулировку добавить) так можно быстро обрисовать контуры и основные вещи затем убрать прозрачность и уже раскрасить полностью.

Для аутентичности квадраты заменить на гексагоны в палитре

LINUX-ORG-RU ★★★★★ ()
Ответ на: комментарий от LINUX-ORG-RU

Не, накладывание даже не так удобно как то, что реализовано.

А реализовано совмещение курсора с референсным изображением и «линза». Текущий пиксель подсвечивается и увеличивается (при желании, клавиша L отвечает за это желание).

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

unDEFER ★★★★★ ()
Ответ на: комментарий от dataman

Ну по-меньшей мере везде где дотянулся поправил.

unDEFER ★★★★★ ()
Ответ на: комментарий от unDEFER

Аааааа, ты по хорьку рисуешь, а не отдельно. Я не сразу понял. Тогда да.

LINUX-ORG-RU ★★★★★ ()
Ответ на: комментарий от LINUX-ORG-RU

Для аутентичности квадраты заменить на гексагоны в палитре

Насчёт аутентичности, до этого действительно не дошёл. Но зато у меня аутентичный диалог выбора цветов.

И вообще оказалось, что и клавиши на клавиатуре словно специально под такой редактор сделаны (это насчёт того, что клавиши вокруг H образуют шестиугольник).

unDEFER ★★★★★ ()

В детстве мечтал о гексагональной графике и никак не мог понять, почему её не сделали изначально гексагональной? Но и спустя тридцать с лишним лет, даже в виртуальной реальности, кругом одни квадратики. Майнкрафт их подери...

R_He_Po6oT ★★ ()
Ответ на: комментарий от R_He_Po6oT

Майнкрафт отстой, вот Worms 3D был прекрасным вополщением вокселей, не слишком квадратно

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от dataman

Может. Тег я поправил, кстати. Другое дело, что задним числом редактировать старые темы — палка о двух концах. Подумаю.

hobbit ★★★★★ ()

Кстати. А не рассматриваешь варианты поворота всей этой сетки? На 90°, на 60°, на 120°? Там в каждом варианте вылезают свои проблемы с прямыми линиями и текстом. Я тоже рисовал когда-то гексагоны, фантазировал, тогда показалось, что поворот на 60° смотрится сбалансированнее. Но тогда и шрифты другие были.

R_He_Po6oT ★★ ()
Ответ на: комментарий от R_He_Po6oT

При 60° и 120° не должно же быть проблем по идее.

CrX ()
Ответ на: комментарий от R_He_Po6oT

Думал, но честно говоря если хочется реализовать субпиксели то как-то это слишком сложным становится…

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

unDEFER ★★★★★ ()

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

kirill_rrr ★★★★★ ()
Ответ на: комментарий от kirill_rrr

Ну почему? Векторная графика ведь не поддерживается на аппаратном уровне, но она популярна.

Примерно также может быть и с гексогональной графикой.

unDEFER ★★★★★ ()
Ответ на: комментарий от unDEFER

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

kirill_rrr ★★★★★ ()
Ответ на: комментарий от kirill_rrr

Мне в растре рисовать нравится. При правильно выбранном масштабе пиксель влево-вправо настолько существенен что задуманное по другому и не нарисуешь.

Но в обычном растре сильно не хватает линий в разных направлениях, а здесь они есть.

unDEFER ★★★★★ ()
Ответ на: комментарий от unDEFER

Тогда остается запилить робота, который будет создавать мозаики руководствуясь файлами из этой программы.

(унылые реализации были, с флиьтром на фотографии, а здесь - инструмент для художника)

token_polyak ★★★ ()
Ответ на: комментарий от kirill_rrr

Это и в театр можно не ходить, если телевизор есть, однако ж ходят.

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

unDEFER ★★★★★ ()
Ответ на: комментарий от R_He_Po6oT

12 линий? Ну одна линия видна здесь. Все 12 зарисовать я могу, но это по мне так скучный рисунок. Лучше посмотрите что это даёт. На примерах-портретах по ссылке в первоначальном сообщении все глаза и рты прорисованы с субпиксельной информацией, а волосы — без.

unDEFER ★★★★★ ()
Ответ на: комментарий от unDEFER

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

R_He_Po6oT ★★ ()
Ответ на: комментарий от R_He_Po6oT

и двигать спрайты неудобно и анимацию программировать неудобно

А я буду хитрить, выводить спрайты с точность в полгексагона по горизонтали. Это, конечно, не совсем честная гексагональная графика получится, но позволит выжать максимум из идеи. А раз железо позволяет, то почему бы и нет?

unDEFER ★★★★★ ()
Ответ на: комментарий от unDEFER

Эти не впечатлили. А там прямо из живой игры и можно сравнить, хоть и с артефактами. И главное - видно же, отличаются горизонтальные и вертикальные линии. Немного напоминает цветные режимы у старых компов, когда экран становился 160 точек в ширину и они превращались в кирпичики. Горизонтальные и вертикальные линии отличались.

R_He_Po6oT ★★ ()
Ответ на: комментарий от R_He_Po6oT

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

unDEFER ★★★★★ ()
Ответ на: комментарий от unDEFER

Нет, но ты уже пошёл на уступки, обходя проблему мощностями компа, это капитуляция!!! :)

А впечатлительность... Я же не на то как художественно нарисовано смотрел, а на принцип, на проблемы. Например на носу у девушки, очень бросается в глаза, не кругло, гексагональные грани прям. Хотя, всему свой масштаб, чтобы всё выглядело правильно. Диззи такого размера, что нет разницы, гексагональный он, квадратный, не увеличить, одно мыло. Но принцип всего этого, конечно, понятен. Но на Вестноте больше и лучше всё видно.

R_He_Po6oT ★★ ()
Ответ на: комментарий от R_He_Po6oT

Нет, но ты уже пошёл на уступки, обходя проблему мощностями компа, это капитуляция!!! :)

Можно не обходить и будет анимация скакать или искажаться, но кому это нужно?

Например на носу у девушки, очень бросается в глаза, не кругло, гексагональные грани прям.

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

Диззи такого размера, что нет разницы, гексагональный он, квадратный, не увеличить, одно мыло.

Почему? В моём редакторе увеличить можно. Я же не виноват, что браузеры h6p-формат не поддерживают. На текущем этапе, даже если отправлю патчи для поддержки браузерами разработчикам, ясен пень их никто не примет.

unDEFER ★★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.