Добрый день, Коллеги.
Занимаюсь созданием проекта с генерацией планеты.
Ранее уже создавал темы с вопросами по данной тематике, но они были крайне общими и, соответственно, получил общие ответы. Ответы очень помогли встать на правильный путь и получить первые результаты, но вновь столкнулся с выбором. Хотелось бы получить ваше мнение и советы по данному вопросу.
Итак я генерирую планету. Генерация происходит путем деления базового икосаэдра. Выглядит это примерно так:
В итоге у нас планета, созданная из относительно одинаковых треугольников. Исключая 12 вершин базового икосаэдра (так как из них можно сделать только пятиугольник), остальные треугольники можно объединить в хексы.
Теперь вопрос, который передо мной стоит. Что дальше?)
Как мне получить генерацию ландшафта? Т.е. поднять уровень земли, опустить, сделать спуск и т.д.
Вижу тут два глобальных варианта:
1. Продолжить работать с мешем, отделяя каждый хекс от соседей, а потом изменяя его.
Тут много математики и боюсь запутаться и не получить того, что хочется. Есть пару статей интересных, но пока мне сложно работать с такой математикой.
Плюс не знаю как быть с быстродействием. Может ли юнити отрисовывать только видимую часть планеты, если это все один большой меш?
На сколько будет реально изменять его в реальном времени, во время игры?
2. Создать в блендере модели, которые спавнить вместо хексов.
Здесь, я так понимаю, можно будет отрисовывать только те объекты, которые видит камера. По идее это правильно.
Пока не знаю как получить точные координаты полигонов, на которые спавнить модельку.
Плюс не возникнет ли проблема с кривизной планеты, ведь модель будет ровная, а планета имеет радиус. Следовательно все будет угловатым, так?
Резюмируя:
Пытаюсь придумать как генерировать ландшафт на планете. Какой базовый путь выбрать. Как создать холмы, реки, озера, горы, поля?
Буду рад советам, примерам и рекомендациям. Надеюсь все понятно изложил