Сообщество - Карты
85 постов 1 729 подписчиков
166

Ответ на пост «Карибы [Высокое разрешение]» 

Ответ не совсем на пост, а на комментарий @madbad95:

Ответ на пост «Карибы [Высокое разрешение]» Карты, Рендер, Gamedev, Видео, Гифка, Ответ на пост, Длиннопост

Предыстория

Наигрался я в Medieval 2 Total War настолько, что захотелось большего размаха кампании. Во всех Total War есть проблема позднего этапа игры — становится скучно играть, когда твоя империя занимает половину карты и доминирует над всеми. Нет никакой интриги, дальнейший ход истории определяется исключительно игроком. Было бы круто видеть, что параллельно на другом конце света тоже происходит движуха, возникают и распадаются огромные империи без вмешательства игрока. Отсюда появилась идея сыграть на карте планетарного масштаба. Движок M2TW не позволяет делать моды с картой такого размера достаточной детализации(страны получаются слишком мелкими), поэтому я стал смотреть другие стратежки. И обнаружил, что почти все они играются на плоской карте.

Много лет в свободное время интересуюсь разработкой игр, и естественно напрашивается мысль "нет такой игры — сделай её сам". Так я стал экспериментировать со сферической игровой картой.


История


Сначала необходимо выбрать базовую геометрическую фигуру для разбиения до сферы. Лучше всего здесь подходит усеченный икосаэдр, т.к. на нём не будет ярко выраженных искажений, как бывает в случае с пирамидами, кубами, и прочими фигурами:

Ответ на пост «Карибы [Высокое разрешение]» Карты, Рендер, Gamedev, Видео, Гифка, Ответ на пост, Длиннопост

Картинка из проекта Procedural Planet Generation.


Далее сферу надо как-то текстурировать. Пошел по пути M2TW. Там есть карта в которой цветами обозначены различные типы поверхностей: красный для моря, зеленый для полей, черный для степей, серый для пустыни и тд.

Ответ на пост «Карибы [Высокое разрешение]» Карты, Рендер, Gamedev, Видео, Гифка, Ответ на пост, Длиннопост

Каждый цвет в игре покрывается своей текстурой.

Взял карту покрытий Земли с сайта NASA, текстурки вытянул из M2TW, натянул на сферу, добавил освещение и звёздный фон для красоты, и вот первый результат:

Ответ на пост «Карибы [Высокое разрешение]» Карты, Рендер, Gamedev, Видео, Гифка, Ответ на пост, Длиннопост


Горы плохо видно, надо их как-то выделить. Взял карту высот, и путем нехитрых манипуляций в GIMP получил текстуру, в которой затемнены неровности. Получился эффект наподобие SSAO:

Ответ на пост «Карибы [Высокое разрешение]» Карты, Рендер, Gamedev, Видео, Гифка, Ответ на пост, Длиннопост
Ответ на пост «Карибы [Высокое разрешение]» Карты, Рендер, Gamedev, Видео, Гифка, Ответ на пост, Длиннопост
Ответ на пост «Карибы [Высокое разрешение]» Карты, Рендер, Gamedev, Видео, Гифка, Ответ на пост, Длиннопост

Текстуры грузятся в самом высоком разрешении которое может переварить видеокарта — 16384х8192. Для снижения нагрузки сфера генерируется низкой детализации, а вблизи включается динамическая тесселяция:

Ответ на пост «Карибы [Высокое разрешение]» Карты, Рендер, Gamedev, Видео, Гифка, Ответ на пост, Длиннопост
Ответ на пост «Карибы [Высокое разрешение]» Карты, Рендер, Gamedev, Видео, Гифка, Ответ на пост, Длиннопост
Ответ на пост «Карибы [Высокое разрешение]» Карты, Рендер, Gamedev, Видео, Гифка, Ответ на пост, Длиннопост
Ответ на пост «Карибы [Высокое разрешение]» Карты, Рендер, Gamedev, Видео, Гифка, Ответ на пост, Длиннопост
Ответ на пост «Карибы [Высокое разрешение]» Карты, Рендер, Gamedev, Видео, Гифка, Ответ на пост, Длиннопост

На этом этапе обнаружилась проблема. Для достижения необходимого уровня детализации нужны текстуры огромного разрешения, каждая из них в памяти занимает 384мб, соответственно карта высот + карта покрытий + затенение съедают весь 1гб видеопамяти моего дохлого ноутбука.

Но ведь нам нет необходимости держать в памяти карты максимального разрешения. Нужно только то, что видно сейчас на экране. Значит, делим карты на куски и подгружаем только видимые из них. Это — принцип работы мегатекстур, вы могли видеть мегатекстуры в игре Rage(2011).

С мегатекстурами удалось достичь разрешения 65536х32768, с размером куска 256x256, 7 уровней детализации, всего 43690 кусков. И главное — можно вручную определять, сколько видеопамяти займет кэш текстур. 100мб хватило на всё.

Таким образом, если смотреть с максимального отдаления на всю планету целиком, используется два куска с общим разрешением 512х256, при приближении камеры брались куски более высокого разрешения.

Ответ на пост «Карибы [Высокое разрешение]» Карты, Рендер, Gamedev, Видео, Гифка, Ответ на пост, Длиннопост


Текстуры из M2TW выглядят колхозно. Взял спутниковые снимки NASA и нарезал текстуры с них:

Ответ на пост «Карибы [Высокое разрешение]» Карты, Рендер, Gamedev, Видео, Гифка, Ответ на пост, Длиннопост
Ответ на пост «Карибы [Высокое разрешение]» Карты, Рендер, Gamedev, Видео, Гифка, Ответ на пост, Длиннопост


А не взять ли просто спутниковые снимки? С одной стороны, визуально это будет лучший результат который вообще можно представить. С другой, я делаю не просто визуализацию Земли, а игру, здесь нужна возможность динамически менять текстуры в зависимости от игрового процесса: смена сезонов, опустынивание полей и тд. У NASA есть спутниковые снимки Земли на каждый месяц, а значит есть возможность сделать хотя бы смену сезонов. Собственно, ради этого видео и писался весь пост:

0с — обзор планеты целиком
20с — как работает динамическая тесселяция
30с — скорость подгрузки новых кусков мегатекстуры
1мин — смена сезонов
1мин45сек — как работает мегатекстура. разрешение всех квадратов одинаковое.

Результат эксперимента меня не устроил, потому как изменение климата происходит скачкообразно. Грубо говоря, у нас есть по одному дню с каждого месяца и происходит скачок состояния сразу на месяц вперед. А хотелось вот такого:

Ответ на пост «Карибы [Высокое разрешение]» Карты, Рендер, Gamedev, Видео, Гифка, Ответ на пост, Длиннопост

Гифка из проекта earthgen.

Проект был отложен в долгий ящик, прошло уже почти три года, но посты @WhiteBlackGoose провоцируют вернуться и попытаться сделать что-нибудь подобное, с тенями, годным освещением и качественным ландшафтом.

Показать полностью 14 1
126

Рельефная карта Казахстана [9216x6144]

Привет! По просьбе пикабушников выкладываю Казахстан

Рельефная карта Казахстана [9216x6144] Карты, Интересное, Казахстан, Художественная карта, Длиннопост

9216x6144


А еще такая версия (тут проекция скушала ширину страны)

Рельефная карта Казахстана [9216x6144] Карты, Интересное, Казахстан, Художественная карта, Длиннопост

9216x6144


И наконец без линии

Рельефная карта Казахстана [9216x6144] Карты, Интересное, Казахстан, Художественная карта, Длиннопост

9216x6144


Ваши комментарии тоже учел, картинка стала более контрастной и яркой. Спасибо, что следите за моими постами!


Далее опубликую Океанию, континентальные США. (Россия тоже будет, но над ней надо думать).

Показать полностью 1
165

Карибы [Высокое разрешение]

Привет! На этот раз один регион в двух исполнениях. Сначала - такое же исполнение как и Индии:

Карибы [Высокое разрешение] Карты, Интересное, Художественная карта, Рендер, Карибы

9216x6144


А еще я раздобыл карту глубин, поэтому теперь еще и дно видно:

Карибы [Высокое разрешение] Карты, Интересное, Художественная карта, Рендер, Карибы

8192x6144


Я все еще экспериментирую с форматами (потому что новичок), так что критике буду рад. Следующий пост, наверное, будет с континентальными США. И да, Россию я тоже хочу сделать, но пока думаю как. Надеюсь, вам интересно следить за моими постами!

712

Рельефная карта Индии [4096x4096]

Рельефная карта Индии [4096x4096] Карты, Интересное, Художественная карта, Индия

4096x4096


Как видите, добавлена текстура воды.


Вообще, Европа готова. Но строгому читателю она может не понравиться, так что я еще поработаю над ней.


А еще я сделал Океанию и некоторые другие регионы, скоро опубликую и их.

57

Необычные карты

Карта с Великобританией в центре:

Необычные карты Reddit, Карты, Карта мира, Интересное, Необычное

Источник: https://www.reddit.com/r/MapPorn/comments/gr7mrw/the_earth_b...

Карта с Новой Зеландией в центре:

Необычные карты Reddit, Карты, Карта мира, Интересное, Необычное

Источник: https://www.reddit.com/r/MapPorn/comments/gqzk1h/the_earth_b...


Бонус:
Карта с Новой Зеландией посередине, но без Новой Зеландии

Необычные карты Reddit, Карты, Карта мира, Интересное, Необычное

Источник: https://www.reddit.com/r/MapPorn/comments/gr65gw/this_map_ce...

Показать полностью 1
Мои подписки
Подписывайтесь на интересные вам теги, сообщества,
пользователей — и читайте персональное «Свежее».
Чтобы добавить подписку, нужно авторизоваться.
Отличная работа, все прочитано!