![]() |
Конкурс! Сделаем новый HD Pack вместе! - Версия для печати +- Город Джунов (https://www.gipat.ru/forum) +-- Форум Обсуждение Проклятых Земель (https://www.gipat.ru/forum/forum-19.html) +--- Форум Новости (https://www.gipat.ru/forum/forum-15.html) +--- Темы: Конкурс! Сделаем новый HD Pack вместе! (/thread-3785.html) |
Конкурс! Сделаем новый HD Pack вместе! - MorgenS - 11.11.2019 В "День Проклятых Земель" мы объявили конкурс на разбор тайлов с интересными призами. Проделанная участниками работа поможет корректно определить, какие текстуры и с какими масками использовались для создания тайлов ландшафтра игры, а значит сделать новый HD Pack будет куда проще! Разработчики пробовали автоматизировать этот режим, перебирая все возможные варианты, но подобная процедура займет слишком много времени, и речь идет даже не о днях и не о месяцах. К сожалению, ручной вариант - самый быстрый. Поэтому нужна ваша помощь! Принять участие легко. Просто скачайте программу и начните разбирать тайлы. Подробно с условиями конкурса можно ознакомиться на сайте (ссылка). Если вы решите принять участие, можете оставлять свои ID в комментариях к новости на сайте или прямо в этой теме. Давайте сделаем новый HD Pack вместе! Конкурс! Сделаем новый HD Pack вместе! - Demoth - 11.11.2019 А вот тут https://vk.com/topic-99140_40722745 (ссылка доступна без регистрации насайте) можно посмотреть примеры сложных тайлов. Если будут сложности с разобором тайлов, спрашивайте в этой теме, обязательно ответим! На данный момент участниками конкурса и организаторами (не учавствуют в конкурсе, но учавствуют в разборе) разобрано около 30%. Конкурс! Сделаем новый HD Pack вместе! - KnightL - 14.11.2019 Какая-то у вас странная модель, по которой получаются тайлы. Некоторые из них явно были получены не так. Например, 1033, 1034, 1043, 1089 и т.д. содержат серые точки только внутри, а вокруг песок. К тому же, по-моему, ваша программа не умеет крутить составные части тайлов, а без этого не очень хорошо получится тайл 1000 и др. Вообще было бы логичней сгруппировать тайлы по аллодам или даже по локациям, это бы ускорило проверку одного тайла в несколько раз, потому что не нужно было бы перебрать те, которые 100% не подходят. Может быть для этой задачи бы больше подошёл не перебор, а какие-нибудь генетические алгоритмы или что-то подобное. Ради интереса, я написал небольшую программку на 700 строк на плюсах, которая, используя некоторые отсечения и предположения, пережёвывает в среднем один тайл за 6 минут. В ней есть небольшая проблема с тем, что она не может менять порядок масок и клеит их всегда в одинаковом порядке, но в принципе на более-менее нормальных тайлах она работает более-менее нормально. Всё равно очень сложные можно обработать вручную. Примеры результата работы программы и саму программу можно найти по ссылке отсюда . Я не определился, как лучше считать расстояние между пикселями, поэтому там две папки с результатами: results с суммой модулей разностей и resultsINF с максимумом модулей разности по каждому каналу. Вроде вторая немного лучше, и программа не пытается лепить воду вместо скал на 1004, 1005 , но с остальными нужно смотреть, что будет точнее. В скобках указано, на сколько приближение похоже на нужное. Я считаю его как 1-(сумма расстояний до тайла)/(сумма расстояний до полностью чёрной картинки), поэтому в файлах эти величины не согласуются. Исходники первой версии лежат в ZIP архиве вместе с вспомогательными файлами. Для сборки нужна libpng и какая-то библиотека для STL потоков (в линуксе это pthreads, в винде это что-то другое). В коде всё считается на 6 потоках, при желании можно менять. Exe дать не могу, потому что компилятор только в линуксе и есть. Если что, я в конкурсе участвовать не собираюсь, сделал это просто чтобы проверить, правда ли нереально написать более-менее быстрое решение. На моём компьютере, если собрать Release, то по идее всё бы обработалось за неделю непрерывного счёта. Но можно это время уменьшить, разделив тайлы на несколько компов. Конкурс! Сделаем новый HD Pack вместе! - AleksZh - 15.11.2019 Я графикой не занимаюсь и могу что-то недопонимать, но, имхо, основная проблема с тайлами в комбинаторном взрыве из-за количества масок и вариантов их поворота и наложения. В то же время в конкурсной программе с практикой становится очень легко выставлять правильные маски для тайла, а ручной перебор текстурок может затянуться (и вообще не особо приятен). Если принять маски известными, не тривиализируется ли подбор текстур для каждой из них? Как я вижу, должно быть просто выделить часть тайла по маске и простым перебором всех базовых тайлов и их поворотов выбрать наилучшее совпадение для каждой маски независимо от других составляющих тайла (любая вменяемая пиксельная метрика пойдёт, по идее). Edit: не прямо "просто", но должен быть регион не перекрываемый другими масками, по которому можно подобрать текстурку, разве нет? Если так, то я бы предложил давать юзеру выбрать маски и нажать кнопку "подобрать текстуры". Конкурс! Сделаем новый HD Pack вместе! - AleksZh - 08.12.2019 Выбирает, но часто приходится поправлять, а по-моему могло быть лучше (но это не особенно важно, в принципе). |