Автор | Сообщение |
Mikle = Warrant Officer =
| 1223 |
Doom Rate: 1.95 Posts quality: +548 |
Отправлено: 10.01.24 19:43:51 | | | По мере работы над комьюнити мегавадом проскальзывала информация, что небо можно сделать 1024*256, тогда оно замкнётся без повторов по горизонтали и не понадобится тайлить по вертикали. Не давала покоя мне эта мысль, начал делать утилитку для создания такого неба. Не знаю, будет полноценный релиз, или нет, но поэкспериментировать интересно, чем и занимаюсь. Просто адаптация картинки в нужную палитру с помощью того же Фотошопа даёт неудовлетворительный результат, решил сделать по другому.
Замысел такой - сначала из фотографий создаётся ЧБ картинка (пока с помощью сторонних программ), потом уже утилитой проецируем различные диапазоны яркости изображения на различные участки DOOM палитры. Вроде даже интересные результаты получаются:
Можно попробовать самому с помощью утилиты: Скачать
Config - это карта проекции ЧБ градации на палитру, я сделал 4 демонстрационных варианта, можете создавать и сохранять свои варианты (потом переименовывать User.cfg, если хотите добавить вариант в список).
Так же я сделал 2 варианта исходной картинки, можете добавлять свои варианты, это должен быть PNG в градациях серого, с размером 1024*256 и расширением "*.1024.png".
Чекбоксы "Inv" - это инверсия направления проецирования, то есть негатив данного фрагмента палитры. В DOOM палитре градиенты сделаны с обратным порядком (от светлого к тёмному), поэтому инверсия по умолчанию включена.
ЛКМ на палитре устанавливает начало диапазона, ПКМ - конец.
Зацените креатив.
Добавлено 21.01.2024:
Добавил прототип программы для автоматизированного создания ЧБ картинок для предыдущей программы из фотографий. Автоматический тайлинг по горизонтали: Скачать |
Рейтинг сообщения: +13, отметил(и): Shadowman, Lainos, klerk, BeeWen, Slavius [B0S], RastaManGames, Chaingunner, Mud, Michael63, JSO x, SilverMiner, camper, Дмитрий С. |
|
1 |
3 |
|
|
| |
Shadowman UAC General
| 8389 |
Doom Rate: 2.08 Posts quality: +1986 |
Отправлено: 10.01.24 21:31:37 | | | Mikle
Посмотрел на дефолтных примерах - неплохо получается разнообразить небеса. Правда, пока не разобрался до конца с бегунками, вроде как при изменении диапазонов появляются новые возможности (новые бегунки внизу), но обычно небо при этом теряет однородность по цвету.
Правда, больше интересует другой вопрос - как сделать тайлящееся небо по фото (как по вертикали, так и по горизонтали). Каждый раз приходится вручную пробовать, и результат не всегда удачный. Если бы удалось этот процесс автоматизировать... |
|
|
1 |
7 |
2 |
|
|
| |
Mikle = Warrant Officer =
| 1223 |
Doom Rate: 1.95 Posts quality: +548 |
Отправлено: 10.01.24 22:30:27 | | | Shadowman пишет: | Правда, больше интересует другой вопрос - как сделать тайлящееся небо по фото (как по вертикали, так и по горизонтали). Каждый раз приходится вручную пробовать, и результат не всегда удачный. Если бы удалось этот процесс автоматизировать... |
Этим вопросом занимаюсь тоже.
Shadowman пишет: | пока не разобрался до конца с бегунками, вроде как при изменении диапазонов появляются новые возможности (новые бегунки внизу) |
Там смысл такой: диапазон яркостей от 0 до 255, в каждом бегунке он регулируется, сначала весь диапазон отдан первому бегунку, как только ты понижаешь его значение, весь остаток отдаётся следующему, это всё отражено в надписях. Для каждого бегунка задаётся свой участок палитры, активен (отражается в палитре) тот, у которого включен слева Option Button. Чтобы не было неоднородности, начало палитры второго должно по цвету быть близко к концу первого. |
Рейтинг сообщения: +1, отметил(и): klerk |
|
1 |
3 |
|
|
| |
Michael63 Lieutenant Colonel
| 3858 |
Doom Rate: 2 Posts quality: +843 |
Отправлено: 10.01.24 22:47:26 | | | Mikle пишет: | проскальзывала информация, что небо можно сделать 1024*256, тогда оно замкнётся без повторов по горизонтали и не понадобится тайлить по вертикали. |
Это хорошо (а я почему-то такого не запомнил; интересно, где она проскальзывала). Я за это время не раз смотрел на реальное небо и немного грустил, что в нашем формате такое нельзя сделать. Но 1024*256 - это уже лучше, чем то, что мы делали. (Хотя делали 1024 на 128, но вот с вертикалью приходилось делать "костыли" руками, как это было в одной из моих карт).
Добавлено спустя 4 минуты 49 секунд:
Shadowman пишет: | Правда, больше интересует другой вопрос - как сделать тайлящееся небо по фото (как по вертикали, так и по горизонтали). Каждый раз приходится вручную пробовать, и результат не всегда удачный. |
Как мне кажется, для более-менее реалистичности в идеале надо делать не одно фото, а панораму из хотя бы четырёх фото. А с одним фото придётся делать танцы с бубнами, хотя в некоторых частных случаях результат можно сделать неплохим. | |
|
1 |
1 |
2 |
|
|
| |
BeeWen Lieutenant Colonel
| | 3458 |
Doom Rate: 1.61 Posts quality: +860 |
Отправлено: 10.01.24 23:15:25 | | | Немного поэкспериментировал с цветовой гаммой в Дум-палитре.
|
|
|
1 |
1 |
1 |
|
|
| |
Shadowman UAC General
| 8389 |
Doom Rate: 2.08 Posts quality: +1986 |
Отправлено: 10.01.24 23:59:20 | | | Michael63 пишет: | для более-менее реалистичности в идеале надо делать не одно фото, а панораму из хотя бы четырёх фото. |
Не обязательно с 4 сторон, достаточно отметить, где границы неба на первом фото и сфотографировать кусок неба дальше от этих границ. И так повторить раза четыре. А уже потом в редакторе состыковывать края (главное, чтоб реальное небо состыковывалось, а то если с одной стороны солнце, а с другой - грозовая туча, то не получится цикличности нормальной).
Плохо то, что реальные фото требуют хайрез-текстур, т.е. это для гздум-портов скорее. Для классики там цвета безбожно исказятся, т.к. дум не умеет нормальный голубой цвет и его оттенки передавать. |
|
|
1 |
7 |
2 |
|
|
| |
Mikle = Warrant Officer =
| 1223 |
Doom Rate: 1.95 Posts quality: +548 |
Отправлено: 11.01.24 09:49:37 | | | Michael63 пишет: | я почему-то такого не запомнил; интересно, где она проскальзывала |
Обсуждалось Тут. Даже скриншот есть. | |
|
1 |
3 |
|
|
| |
Michael63 Lieutenant Colonel
| 3858 |
Doom Rate: 2 Posts quality: +843 |
Отправлено: 18.01.24 14:52:52 | | | Не знаю, как обстоят дела в разных портах, но вот в Гоззе это небо не тайлится (точнее, вроде бы там два раза отображается верхняя половина вместо полной картины). Для моей текущей задачи это особо не важно, но информирую.
К слову, одна из особенностей Гоззы (в некоторых случаях неприятная особенность) - некоторые небеса выглядят довольно сильно по-разному при разных способах рендеринга. Выше видно, ниже приведу ещё один пример. В одном случае нормально, во втором - дурацкие круги (причём с кругами это hardware accelerated). По идее, хорошо бы для неба сделать отдельный рендеринг. Но пока, видимо, нет.
| |
|
1 |
1 |
2 |
|
|
| |
Mikle = Warrant Officer =
| 1223 |
Doom Rate: 1.95 Posts quality: +548 |
Отправлено: 18.01.24 15:07:53 | | | Michael63 пишет: | в Гоззе это небо не тайлится |
То есть ты размер не менял, так и оставил 1024 на 256? Если так значит и для этого размера придётся предусмотреть вертикальный тайлинг. Но это не для всех небес подойдёт, только без горизонта. | |
|
1 |
3 |
|
|
| |
Michael63 Lieutenant Colonel
| 3858 |
Doom Rate: 2 Posts quality: +843 |
Отправлено: 18.01.24 15:11:45 | | | Mikle пишет: | так и оставил 1024 на 256? |
Да. | |
|
1 |
1 |
2 |
|
|
| |
Shadowman UAC General
| 8389 |
Doom Rate: 2.08 Posts quality: +1986 |
Отправлено: 18.01.24 19:34:18 | | | Mikle пишет: | Если так значит и для этого размера придётся предусмотреть вертикальный тайлинг. |
Тайлинг нужен в любом случае, независимо от размера картинки. Небо высотой 256 занимает просто большую площадь на экране, но если подняться на возвышенность, а на карте при этом сделана "линия горизонта", то высоты текстуры может оказаться недостаточной, чтобы покрыть всю обозреваемую площадь, и стык текстур будет заметен. |
|
|
1 |
7 |
2 |
|
|
| |
Mikle = Warrant Officer =
| 1223 |
Doom Rate: 1.95 Posts quality: +548 |
Отправлено: 18.01.24 19:43:47 | | | Shadowman пишет: | Тайлинг нужен в любом случае, независимо от размера картинки. Небо высотой 256 занимает просто большую площадь на экране, но если подняться на возвышенность, а на карте при этом сделана "линия горизонта", то высоты текстуры может оказаться недостаточной, чтобы покрыть всю обозреваемую площадь, и стык текстур будет заметен. |
И будет две линии горизонта? Да и как ты представляешь себе плавный переход от низа текстуры (грунт, лес, город) к её верху (облака, звёзды)?
Нет. Просто текстуры с горизонтом нужно применять только на таких картах, где нет легально доступных мест, откуда виден шов. | |
|
1 |
3 |
|
|
| |
Michael63 Lieutenant Colonel
| 3858 |
Doom Rate: 2 Posts quality: +843 |
Отправлено: 18.01.24 21:25:16 | | | Mikle пишет: | Да и как ты представляешь себе плавный переход от низа текстуры (грунт, лес, город) к её верху (облака, звёзды)?
Нет. Просто текстуры с горизонтом нужно применять только на таких картах, где нет легально доступных мест, откуда виден шов. |
По первым сообщениям в этой теме я подумал, что можно создать текстуру для скайбокса с линией горизонта посередине. И будет нормально видна как верхняя, так и нижняя часть. Иначе как понимать фразу "и не понадобится тайлить по вертикали"? Но нет; видимо, не в околованильных портах (для них тайлить можно только руками в некоторых частных случаях). | |
|
1 |
1 |
2 |
|
|
| |
Mikle = Warrant Officer =
| 1223 |
Doom Rate: 1.95 Posts quality: +548 |
Отправлено: 18.01.24 22:26:01 | | | Michael63 пишет: | По первым сообщениям в этой теме я подумал, что можно создать текстуру для скайбокса с линией горизонта посередине. |
Можно, в чём проблема?
Вопрос в другом - раз даже при высоте 256 на некоторых рендерах размера текстуры не хватает, и мы видим повтор, значит на картах с такими местами нельзя использовать текстуры с горизонтом, ведь на повторной части тоже будет горизонт, второй. А, кроме того, такую текстуру не получится затайлить, ведь что такое тайлинг? Это плавный переход между верхней и приставленной к ней нижней частями текстуры, а плавный переход между небом и грунтом невозможен. | |
|
1 |
3 |
|
|
| |
Michael63 Lieutenant Colonel
| 3858 |
Doom Rate: 2 Posts quality: +843 |
Отправлено: 18.01.24 22:43:34 | | | Mikle пишет: | Можно, в чём проблема? |
Как раз в том, что околованильные порты, похоже, не умеют в нормальный скайбокс с верхней и нижней частями. Они делают две копии одной картинки, и одну копию помещают сверху, а другую снизу. Когда ты написал "не понадобится тайлить по вертикали", я подумал, что кто-то решил эту проблему, добавив в порты возможность делать в скайбоксе одну большую картинку, где линия горизонта будет посередине. Но нет. | |
|
1 |
1 |
2 |
|
|
| |
Mikle = Warrant Officer =
| 1223 |
Doom Rate: 1.95 Posts quality: +548 |
Отправлено: 18.01.24 22:52:59 | | | Michael63 пишет: | Они делают две копии одной картинки, и одну копию помещают сверху, а другую снизу. |
Это при высоте текстуры 128. Получается, что нужно делать высоту не 2*128=256, а 3*128=384? Можешь проверить? Просто взять любую текстуру с такой высотой и подставить на небо. Если сработает, я без проблем переделаю программу на такую высоту.
И, кстати, я уже почти закончил другую программу, которая автоматически делает из фотографий те самые ЧБ заготовки для раскраски. | |
|
1 |
3 |
|
|
| |
Michael63 Lieutenant Colonel
| 3858 |
Doom Rate: 2 Posts quality: +843 |
Отправлено: 19.01.24 00:20:52 | | | Mikle пишет: | Получается, что нужно делать высоту не 2*128=256, а 3*128=384? Можешь проверить? |
Сейчас не проверял, но раньше, когда делал свою "Ностальгию", я довольно долго ковырялся с небом, в том числе пробовал разного размера. Не ручаюсь, но, насколько я понял, околованильный рендеринг в ZDoom и GZDoom всегда даёт две отдельные копии картинки в верхней и нижней части. То есть, разработчики просто не предусматривали, что игрок будет смотреть в нижнюю полусферу. В GZDoom можно сделать панорамное небо (в частности, из 6 картинок, 4 стороны по горизонтали + верх и низ), но эта вещь в Гоззе требует OpenGL hardware renderer и принципиально не ванильная.
Так что, насколько я понимаю, увы, но сделать нормальный обзор неба по вертикали от низа до верха (от надира до зенита) в околованильных портах нельзя. Точнее, можно лишь в частных случаях - картинки, где низ сшивается с верхом (как сделал Чейнганнер для моей Мап 09). | |
|
1 |
1 |
2 |
|
|
| |
Mikle = Warrant Officer =
| 1223 |
Doom Rate: 1.95 Posts quality: +548 |
Отправлено: 21.01.24 10:19:27 | | | Добавил прототип программы для автоматизированного создания ЧБ картинок для предыдущей программы из фотографий.
Ссылка в первом сообщении. |
|
|
1 |
3 |
|
|
| |