Флейм
GameDev.ru / Флейм / Форум / Движок к стратежке [смена сезонов] (4 стр)

Движок к стратежке [смена сезонов] (4 стр)

Поделиться

Страницы: 1 2 3 4

clcПостоялецwww17 сен. 201715:31#45
не, минусы это - статичный мир, повышенная нагрузка на артовиков, соответствующий тулпак
Джек АллигаторПостоялецwww17 сен. 201718:37#46
Panzerschrek[CN]
> А зачем тебе целых 16к? Для мегатекстуры как раз больших аппаратных текстур не
> нужно.
clc
> не, минусы это - статичный мир, повышенная нагрузка на артовиков,
> соответствующий тулпак
Дабы не было противоречий, объясню что у меня сейчас есть и что мне надо.

Основная цель - сделать аналог стратегической карты из Medieval II Total War, но не на плоскости, а на сфере.
Масштаб - соответствующий.

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

Потому сфера делается из икосаэдра. Для удобства, развертка икосаэдра не традиционная, а димаксион - чтобы земная поверхность не разрывалась на стыках.
Правда, полностью неразрывно не получилось - Япония пострадала :D

Берется икосаэдр, предварительно тесселируется на ЦПУ(иначе деталлизации не хватает). Затем ещё раз тесселируется на ГПУ по карте высот.
Карта высот и карта покрытий сгенерированы из текстур Земли NASA.
В результате имеем следующие текстуры:

+ Показать

+ будет карта нормалей, возможно ещё что-нибудь в будущем появится.
1. Карта покрытий - цвет определяет тип поверхности тайла
2. Карта высот
3. предрассчитанная ambient occlusion для рельефности, которая генерируется из карты высот

Достаточная деталлизация планеты достигается как раз при 16К.
Размеры текстур соответствующие - сотни мегабайт на каждую.
А это ещё без каких-либо юнитов, городов и пр. - только поверхность планеты.
1гб памяти на видеокарте не хватает.
Технология мегатекстуры видятся мне решением проблемы.

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

Ещё скриншоты:

+ Показать

Тесселяция:

+ Показать

Правка: 17 сен. 2017 18:54

Джек АллигаторПостоялецwww10 ноя. 201723:34#47
Делая аналог стратегической карты Medieval II Total War, максимум смог выжать такое с текстурами M2TW:
+ Показать

и такое со своими текстурами:

+ Показать

Мегафича, ради которой хотел записать видео - изменение времени года.
Изначально планировалось сделать через ту же карту покрытий.
Но в какой-то момент мне надоело всё это мыло и было решено поэкспериментировать со спутниковыми снимками NASA.
Благо у них имеются снимки высокого разрешения на каждый месяц 2004 года.
Предварительный тест показал отличный результат - появились такие детали, которые никакой картой покрытий создать не удалось бы. Всякие заболоченные местности, яркие берега карибского бассеина и тд.
Оптимизировал генератор мегатекстур - теперь вместо четырех часов рассчет одной мегатекстуры занимает 8 минут, а вместо 2.4гб размер всего лишь 700мб.
Это позволило нагенерить по мегатекстуре на каждый месяц.
Идея заключается в плавном переходе с текстуры одного месяца к текстуре другого.

Но сам переход мне совсем не понравился. Потому даже не довел до финала(осталось убрать моргание при смене месяца) и решил вернуться к первоначальному варианту M2TW по одной простой причине.
Не так я себе представлял зиму. Появление и таяние снега - будто слайдшоу смотришь. Выглядит как подсветка земли белым цветом.

Жаль не додумался поискать подобные видео ранее - с теми же текстурами подобное уже делали до меня. Без морганий мой вариант выглядел бы точно так же:

Теперь буду пробовать чисто процедурный вариант смены сезонов.
Вот примерно что ожидаю получить в итоге(гифка с просторов интернета):

+ Показать

Страницы: 1 2 3 4

/ Форум / Флейм / ПроЭкты

2001—2017 © GameDev.ru — Разработка игр