21.08.2021, 23:37
21.08.2021, 23:50
(21.08.2021 23:37)Berserker Wrote: [ -> ]Sandris, нет, редактор карт будет работать по-старому.Нет, портреты другие. Сейчас они пока не подойдут.
Png оригинальных или HD?
Подгоняю их под будущий планируемый мод и параллельно обратил внимание на редактор карт.
12.09.2021, 02:15
(12.09.2021 02:22)Berserker Wrote: [ -> ]Флаг 29 у отряда на поле боя говорит, что на отряде анимация жажды крови, а потому деф нужно отрисовывать с палитрой, смещённой к красному.
По смещению 1104 в структуре отряда лежит float (вещественное число) от 0 до 1.0, которое говорит, насколько нужно сдвинуть цвет каждого пикселя в цветовой модели HSV ближе к красному. 0 — ни на сколько, 0.8 — на 80%, 1.0 — полностью красный. Яркость и насыщенность тоже увеличиваются с увеличением значения поля. Если флаг установлен, то при отрисовке уже не проверяется флаг окаменения или клона. Потому при колдовстве жажды крови на клоне, клон временно рисуется без синих тонов.
Как раз занимался отрисовкой боевых дефов. Раскрашивать их в реальном времени даже современный процессор не потянет. Думал, как оптимизировать. В Г3 каждый раз копируют палитру, переводят каждый цвет в HSV, проводят манипуляции, переводят обратно в RGB — готово. 256 операций. А на картинке 200х200 операций уже 40000 + нужно успеть потом вывести картинку, даже ещё раз десять в секунду, до по 41 отряду.
(12.09.2021 03:08)Bes Wrote:хм, странно, почему разрабы решили таким путём пойти для подобного эффекта, когда у них была уже готовая схема с боевой анимацией.. лишь ещё одну картинку добавитьТак сделаны окаменение, клонирование, жажда крови.
Самый эффективный вариант. Операции над палитрой быстры.
И можно что хочешь делать: переливаться цветами, терять насыщенность, становиться конкретного оттенка.
А в PNG мы не имеем палитры. Вместо этого огромный массив пикселей. И нужны те же эффекты.
Придётся перехватить все вызовы перекраски палитры.
Идея такая: заранее для 65536 цветов считаю перекрашенные палитры по всему спектру цветов. Перехватываю функции перекраски палитры и запоминаю, какой палитрой рисовать (клон, стадия жажды крови, окаменение). При отрисовке PNG перевожу пиксель в 65536 цветов и беру для него готовый покрашенный цвет. Должно быть терпимо по скорости.
По памяти — 256 КБ * каждую из штук 10 стадией жажды крови + 1 на клон и 1 на окаменение
Короче -3 МБ памяти
Важно, чтобы эффекты на PNG-существах не выбивались из общей канвы.
12.09.2021, 17:17
Berserker, скидываю сюда некоторые комментарии исследования, уверен, не только мне это будет интересно прочитать (см. пост выше)
13.09.2021, 03:56
Текущий прогресс:

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

Проблема с тенями. При применении фильтра (клон, жажда крови, окаменение), портятся и пиксели тени. Может выделить для тени штуки 4 зарезервированных цвета, как в оригинале?
13.09.2021, 11:22
(13.09.2021 03:56)Berserker Wrote: [ -> ]Может выделить для тени штуки 4 зарезервированных цвета, как в оригинале?
И чем подобные тени в png потом сделать можно будет простым смертным? Софт для этого дела будет? Например, в тот же pcx спецсвета загоняются по-прежнему жуткими костылями с помощью def tool и какой-то матери, если так же через одно место будет и в png - вряд ли кому-то понравится такой геморрой.

13.09.2021, 15:05
XEPOMAHT, так в любом случае тени либо вручную делаются, либо какой-то программой. DefTool автоматически корректные тени делает?
13.09.2021, 16:10
(13.09.2021 15:05)Berserker Wrote: [ -> ]DefTool автоматически корректные тени делает?
DefTool подсовывает тень в нужный id палитры. А MMarhive конвертирует в pcx не меняя палитру, в итоге в спеццвета попадает что попало и в игре можно наблюдать разные графические глюки.

13.09.2021, 19:20
PNG это сильное упрощение для модинга. Как по мне, будет очень плохо, если существ придется все равно по старинке извращенно делать.
13.09.2021, 21:26
Elmore, png никто не отменяет. Можно вообще не использовать теней для быстрой вставки монстров. Но тени должны быть либо отдельным файлом, либо зарезервированными цветами, иначе невозможно применить фильтр к изображению. Условно говоря, при клонировании тени тоже станут синими, а при жажде крови — красными. Тени сливаются с существом в итоге. Давайте решать что-нибудь. Вижу два варианта:
1) Тень к каждому кадру рисуется или генерируется программно в отдельном png (затратнее по памяти и скорости раза в два).
2) Использовать 4 зарезервированных цвета под тени из розовых тонов.
1) Тень к каждому кадру рисуется или генерируется программно в отдельном png (затратнее по памяти и скорости раза в два).
2) Использовать 4 зарезервированных цвета под тени из розовых тонов.
13.09.2021, 22:59
что будет, если игровой кадр существа в png таки будет содержать, скажем, один из этих зарезервированных?
13.09.2021, 23:08
Такие пиксели будут рисовать отдельно, как тень. Например, чисто жёлтый уже зарезервирован под обводку монстра. А так будет 5 цветов специальных.
13.09.2021, 23:15
как по мне, игроку не будет удобен такой вариант, когда ему для своих кадров ещё и тени отдельным файлом тащить.
автоматический режим создания тени рано или поздно встанет на повестке дня, на фоне нивелирования проблемы недостатка ресурсов системы, и наверное уже некому будет этим заниматься в будущем.
сделай самогенерацию отдельного png для тени
автоматический режим создания тени рано или поздно встанет на повестке дня, на фоне нивелирования проблемы недостатка ресурсов системы, и наверное уже некому будет этим заниматься в будущем.
сделай самогенерацию отдельного png для тени
13.09.2021, 23:36
Bes, а с объектами на карте?
14.09.2021, 00:05
имхо с ними проще, они мельче и не с таким кол-вом, как правило, кадров... тут можно и руками поработать