Welcome to U.A.C. [O.S.A.]
login / register 
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Новое небо для DOOM
   Список разделов - Местечко мапперов и моддеров - Новое небо для DOOMОтветить
АвторСообщение
Mikle
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 67 points
1223

Doom Rate: 1.95

Posts quality: +548
Ссылка на пост №1 Отправлено: 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
Next rank: Unavailable after 0 points
8389

Doom Rate: 2.08

Posts quality: +1986
Ссылка на пост №2 Отправлено: 10.01.24 21:31:37
Mikle
Посмотрел на дефолтных примерах - неплохо получается разнообразить небеса. Правда, пока не разобрался до конца с бегунками, вроде как при изменении диапазонов появляются новые возможности (новые бегунки внизу), но обычно небо при этом теряет однородность по цвету.
Правда, больше интересует другой вопрос - как сделать тайлящееся небо по фото (как по вертикали, так и по горизонтали). Каждый раз приходится вручную пробовать, и результат не всегда удачный. Если бы удалось этот процесс автоматизировать...

Рейтинг сообщения: +1, отметил(и): Michael63
1 7 2
Mikle
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 67 points
1223

Doom Rate: 1.95

Posts quality: +548
Ссылка на пост №3 Отправлено: 10.01.24 22:30:27
Shadowman пишет:
Правда, больше интересует другой вопрос - как сделать тайлящееся небо по фото (как по вертикали, так и по горизонтали). Каждый раз приходится вручную пробовать, и результат не всегда удачный. Если бы удалось этот процесс автоматизировать...

Этим вопросом занимаюсь тоже.
Shadowman пишет:
пока не разобрался до конца с бегунками, вроде как при изменении диапазонов появляются новые возможности (новые бегунки внизу)

Там смысл такой: диапазон яркостей от 0 до 255, в каждом бегунке он регулируется, сначала весь диапазон отдан первому бегунку, как только ты понижаешь его значение, весь остаток отдаётся следующему, это всё отражено в надписях. Для каждого бегунка задаётся свой участок палитры, активен (отражается в палитре) тот, у которого включен слева Option Button. Чтобы не было неоднородности, начало палитры второго должно по цвету быть близко к концу первого.

Рейтинг сообщения: +1, отметил(и): klerk
1 3
Michael63
Lieutenant Colonel
Next rank: - Colonel - after 182 points
3858

Doom Rate: 2

Posts quality: +843
Ссылка на пост №4 Отправлено: 10.01.24 22:47:26
Mikle пишет:
проскальзывала информация, что небо можно сделать 1024*256, тогда оно замкнётся без повторов по горизонтали и не понадобится тайлить по вертикали.

Это хорошо (а я почему-то такого не запомнил; интересно, где она проскальзывала). Я за это время не раз смотрел на реальное небо и немного грустил, что в нашем формате такое нельзя сделать. Но 1024*256 - это уже лучше, чем то, что мы делали. (Хотя делали 1024 на 128, но вот с вертикалью приходилось делать "костыли" руками, как это было в одной из моих карт).

Добавлено спустя 4 минуты 49 секунд:

Shadowman пишет:
Правда, больше интересует другой вопрос - как сделать тайлящееся небо по фото (как по вертикали, так и по горизонтали). Каждый раз приходится вручную пробовать, и результат не всегда удачный.

Как мне кажется, для более-менее реалистичности в идеале надо делать не одно фото, а панораму из хотя бы четырёх фото. А с одним фото придётся делать танцы с бубнами, хотя в некоторых частных случаях результат можно сделать неплохим.
1 1 2
BeeWen
Lieutenant Colonel
Next rank: Lieutenant Colonel after 182 pointsСупермодератор форума
3458

Doom Rate: 1.61

Posts quality: +860
Ссылка на пост №5 Отправлено: 10.01.24 23:15:25
Немного поэкспериментировал с цветовой гаммой в Дум-палитре.

Скрытый текст:










Рейтинг сообщения: +4, отметил(и): Mikle, Shadowman, Michael63, Dron12261
1 1 1
Shadowman
UAC General
Next rank: Unavailable after 0 points
8389

Doom Rate: 2.08

Posts quality: +1986
Ссылка на пост №6 Отправлено: 10.01.24 23:59:20
Michael63 пишет:
для более-менее реалистичности в идеале надо делать не одно фото, а панораму из хотя бы четырёх фото.

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

Рейтинг сообщения: +1, отметил(и): Michael63
1 7 2
Mikle
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 67 points
1223

Doom Rate: 1.95

Posts quality: +548
Ссылка на пост №7 Отправлено: 11.01.24 09:49:37
Michael63 пишет:
я почему-то такого не запомнил; интересно, где она проскальзывала

Обсуждалось Тут. Даже скриншот есть.
1 3
Michael63
Lieutenant Colonel
Next rank: - Colonel - after 182 points
3858

Doom Rate: 2

Posts quality: +843
Ссылка на пост №8 Отправлено: 18.01.24 14:52:52
Не знаю, как обстоят дела в разных портах, но вот в Гоззе это небо не тайлится (точнее, вроде бы там два раза отображается верхняя половина вместо полной картины). Для моей текущей задачи это особо не важно, но информирую.








К слову, одна из особенностей Гоззы (в некоторых случаях неприятная особенность) - некоторые небеса выглядят довольно сильно по-разному при разных способах рендеринга. Выше видно, ниже приведу ещё один пример. В одном случае нормально, во втором - дурацкие круги (причём с кругами это hardware accelerated). По идее, хорошо бы для неба сделать отдельный рендеринг. Но пока, видимо, нет.



1 1 2
Mikle
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 67 points
1223

Doom Rate: 1.95

Posts quality: +548
Ссылка на пост №9 Отправлено: 18.01.24 15:07:53
Michael63 пишет:
в Гоззе это небо не тайлится

То есть ты размер не менял, так и оставил 1024 на 256? Если так значит и для этого размера придётся предусмотреть вертикальный тайлинг. Но это не для всех небес подойдёт, только без горизонта.
1 3
Michael63
Lieutenant Colonel
Next rank: - Colonel - after 182 points
3858

Doom Rate: 2

Posts quality: +843
Ссылка на пост №10 Отправлено: 18.01.24 15:11:45
Mikle пишет:
так и оставил 1024 на 256?

Да.
1 1 2
Shadowman
UAC General
Next rank: Unavailable after 0 points
8389

Doom Rate: 2.08

Posts quality: +1986
Ссылка на пост №11 Отправлено: 18.01.24 19:34:18
Mikle пишет:
Если так значит и для этого размера придётся предусмотреть вертикальный тайлинг.

Тайлинг нужен в любом случае, независимо от размера картинки. Небо высотой 256 занимает просто большую площадь на экране, но если подняться на возвышенность, а на карте при этом сделана "линия горизонта", то высоты текстуры может оказаться недостаточной, чтобы покрыть всю обозреваемую площадь, и стык текстур будет заметен.

Рейтинг сообщения: +2, отметил(и): klerk, Michael63
1 7 2
Mikle
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 67 points
1223

Doom Rate: 1.95

Posts quality: +548
Ссылка на пост №12 Отправлено: 18.01.24 19:43:47
Shadowman пишет:
Тайлинг нужен в любом случае, независимо от размера картинки. Небо высотой 256 занимает просто большую площадь на экране, но если подняться на возвышенность, а на карте при этом сделана "линия горизонта", то высоты текстуры может оказаться недостаточной, чтобы покрыть всю обозреваемую площадь, и стык текстур будет заметен.

И будет две линии горизонта? Да и как ты представляешь себе плавный переход от низа текстуры (грунт, лес, город) к её верху (облака, звёзды)?
Нет. Просто текстуры с горизонтом нужно применять только на таких картах, где нет легально доступных мест, откуда виден шов.
1 3
Michael63
Lieutenant Colonel
Next rank: - Colonel - after 182 points
3858

Doom Rate: 2

Posts quality: +843
Ссылка на пост №13 Отправлено: 18.01.24 21:25:16
Mikle пишет:
Да и как ты представляешь себе плавный переход от низа текстуры (грунт, лес, город) к её верху (облака, звёзды)?
Нет. Просто текстуры с горизонтом нужно применять только на таких картах, где нет легально доступных мест, откуда виден шов.

По первым сообщениям в этой теме я подумал, что можно создать текстуру для скайбокса с линией горизонта посередине. И будет нормально видна как верхняя, так и нижняя часть. Иначе как понимать фразу "и не понадобится тайлить по вертикали"? Но нет; видимо, не в околованильных портах (для них тайлить можно только руками в некоторых частных случаях).
1 1 2
Mikle
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 67 points
1223

Doom Rate: 1.95

Posts quality: +548
Ссылка на пост №14 Отправлено: 18.01.24 22:26:01
Michael63 пишет:
По первым сообщениям в этой теме я подумал, что можно создать текстуру для скайбокса с линией горизонта посередине.

Можно, в чём проблема?
Вопрос в другом - раз даже при высоте 256 на некоторых рендерах размера текстуры не хватает, и мы видим повтор, значит на картах с такими местами нельзя использовать текстуры с горизонтом, ведь на повторной части тоже будет горизонт, второй. А, кроме того, такую текстуру не получится затайлить, ведь что такое тайлинг? Это плавный переход между верхней и приставленной к ней нижней частями текстуры, а плавный переход между небом и грунтом невозможен.
1 3
Michael63
Lieutenant Colonel
Next rank: - Colonel - after 182 points
3858

Doom Rate: 2

Posts quality: +843
Ссылка на пост №15 Отправлено: 18.01.24 22:43:34
Mikle пишет:
Можно, в чём проблема?

Как раз в том, что околованильные порты, похоже, не умеют в нормальный скайбокс с верхней и нижней частями. Они делают две копии одной картинки, и одну копию помещают сверху, а другую снизу. Когда ты написал "не понадобится тайлить по вертикали", я подумал, что кто-то решил эту проблему, добавив в порты возможность делать в скайбоксе одну большую картинку, где линия горизонта будет посередине. Но нет.
1 1 2
Mikle
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 67 points
1223

Doom Rate: 1.95

Posts quality: +548
Ссылка на пост №16 Отправлено: 18.01.24 22:52:59
Michael63 пишет:
Они делают две копии одной картинки, и одну копию помещают сверху, а другую снизу.

Это при высоте текстуры 128. Получается, что нужно делать высоту не 2*128=256, а 3*128=384? Можешь проверить? Просто взять любую текстуру с такой высотой и подставить на небо. Если сработает, я без проблем переделаю программу на такую высоту.
И, кстати, я уже почти закончил другую программу, которая автоматически делает из фотографий те самые ЧБ заготовки для раскраски.
1 3
Michael63
Lieutenant Colonel
Next rank: - Colonel - after 182 points
3858

Doom Rate: 2

Posts quality: +843
Ссылка на пост №17 Отправлено: 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 =
Next rank: - 2nd Lieutenant - after 67 points
1223

Doom Rate: 1.95

Posts quality: +548
Ссылка на пост №18 Отправлено: 21.01.24 10:19:27
Добавил прототип программы для автоматизированного создания ЧБ картинок для предыдущей программы из фотографий.
Ссылка в первом сообщении.

Рейтинг сообщения: +3, отметил(и): klerk, Michael63, SilverMiner
1 3
Страница 1 из 1Перейти наверх
   Список разделов - Местечко мапперов и моддеров - Новое небо для DOOM