Показать сообщение отдельно
Старый 28.11.2013, 01:57   #3
maewyn
AnyKey`щик
 
Регистрация: 13.11.2013
Сообщений: 9
Написано 2 полезных сообщений
(для 12 пользователей)
Ответ: Генерация и представление гексагональной решетки

Спасибо за ответ, так и сделал. Создаю меши в виде гексового поля. Программа теперь сама определяет на сколько мешей поделить карту, в зависимости от указанной длины и ширины карты(в гексах) и максимального количества гексов в одном меше, а также правильно стыкует соседние меши.
Сделал 2 способа наложения текстуры.
В первом случае используется алтас и для каждых 6 вершин гексов в меше задется uv(пока что тайлы гексов из атласа выбираются наугад). Получается много мешей, на которых одна и та же текстура атласа, но разные uv.
А во втором случае берется все тот же атлас и на его основе создается новая текстура(тоже тайлы наугад), которая накладывается на меш грубо говоря 1 в 1. Получается много мешей, каждый со своей уникальной текстурой.

Вопрос, какой из способов посоветуете оставить, или может есть лучшие варианты?
Пока склоняюсь ко второму, т.к. мне кажется миникарту будет делать проще. Но есть вопросы, какой максимальный размер генерируемой текстуры лучше выставить (пока 1024x1024) и какой оптимальный размер на ваш взгляд для одного тайла в атласе). Да и производительность лучше в первом случае.

Генерирую типы местности(трава, вода, песок и т. д.) для гексов и храню их в массиве. Далее исходя из типа местности выбираю из атласа нужный тайл местности или тайл перехода.
Большие трудности вызывает алгоритм для генерации типов местности, а вернее его отстутствие)) А еще большие - создание правильных переходов. Поделитесь, пожалуйста, опытом или статьями.

Интереснее всего узнать о построении береговой линии. В цивилизации 5 она очень красива, при этом, насколько я помню, карты там тоже генерируются.

Если делать анимацию воды, то всю воду стоит разнести в отдельные меши?
(Offline)
 
Ответить с цитированием