Страница 1 из 1

Нужна помощь в выборе способа генерации планеты из хексов!

СообщениеДобавлено: 13 дек 2018, 19:03
Od1Um
Добрый день, Коллеги.

Занимаюсь созданием проекта с генерацией планеты.
Ранее уже создавал темы с вопросами по данной тематике, но они были крайне общими и, соответственно, получил общие ответы. Ответы очень помогли встать на правильный путь и получить первые результаты, но вновь столкнулся с выбором. Хотелось бы получить ваше мнение и советы по данному вопросу.

Итак я генерирую планету. Генерация происходит путем деления базового икосаэдра. Выглядит это примерно так:
Изображение Изображение Изображение Изображение

В итоге у нас планета, созданная из относительно одинаковых треугольников. Исключая 12 вершин базового икосаэдра (так как из них можно сделать только пятиугольник), остальные треугольники можно объединить в хексы.

Теперь вопрос, который передо мной стоит. Что дальше?)

Как мне получить генерацию ландшафта? Т.е. поднять уровень земли, опустить, сделать спуск и т.д.

Вижу тут два глобальных варианта:
1. Продолжить работать с мешем, отделяя каждый хекс от соседей, а потом изменяя его.

Тут много математики и боюсь запутаться и не получить того, что хочется. Есть пару статей интересных, но пока мне сложно работать с такой математикой.
Плюс не знаю как быть с быстродействием. Может ли юнити отрисовывать только видимую часть планеты, если это все один большой меш?
На сколько будет реально изменять его в реальном времени, во время игры?

2. Создать в блендере модели, которые спавнить вместо хексов.
Здесь, я так понимаю, можно будет отрисовывать только те объекты, которые видит камера. По идее это правильно.
Пока не знаю как получить точные координаты полигонов, на которые спавнить модельку.
Плюс не возникнет ли проблема с кривизной планеты, ведь модель будет ровная, а планета имеет радиус. Следовательно все будет угловатым, так?

Резюмируя:

Пытаюсь придумать как генерировать ландшафт на планете. Какой базовый путь выбрать. Как создать холмы, реки, озера, горы, поля?
Буду рад советам, примерам и рекомендациям. Надеюсь все понятно изложил

Re: Нужна помощь в выборе способа генерации планеты из хексов!

СообщениеДобавлено: 14 дек 2018, 09:49
IDoNotExist
Od1Um писал(а):Тут много математики и боюсь запутаться и не получить того, что хочется.

Ты и так не получишь то что хочется, с первого раза, ни при каком подходе. Сделай как-нибудь сначала, а потом улучшай.

Od1Um писал(а):Плюс не знаю как быть с быстродействием.

Сначала сделай чтобы работало, а потом думай о быстродействии.

Od1Um писал(а):Может ли юнити отрисовывать только видимую часть планеты, если это все один большой меш?
На сколько будет реально изменять его в реальном времени, во время игры?

Если меш будет большой, лучше разбивать на отдельные части.

Od1Um писал(а):Пытаюсь придумать как генерировать ландшафт на планете. Какой базовый путь выбрать. Как создать холмы, реки, озера, горы, поля?

Если не знаешь как это создать именно на планете, то стоит начать с обычной плоскости.

Re: Нужна помощь в выборе способа генерации планеты из хексов!

СообщениеДобавлено: 14 дек 2018, 14:45
Od1Um
IDoNotExist писал(а):
Od1Um писал(а):Тут много математики и боюсь запутаться и не получить того, что хочется.

Ты и так не получишь то что хочется, с первого раза, ни при каком подходе. Сделай как-нибудь сначала, а потом улучшай.

Od1Um писал(а):Плюс не знаю как быть с быстродействием.

Сначала сделай чтобы работало, а потом думай о быстродействии.

Od1Um писал(а):Может ли юнити отрисовывать только видимую часть планеты, если это все один большой меш?
На сколько будет реально изменять его в реальном времени, во время игры?

Если меш будет большой, лучше разбивать на отдельные части.

Od1Um писал(а):Пытаюсь придумать как генерировать ландшафт на планете. Какой базовый путь выбрать. Как создать холмы, реки, озера, горы, поля?

Если не знаешь как это создать именно на планете, то стоит начать с обычной плоскости.


Спасибо за ваш совет, IDoNotExist. К сожалению практической пользы для меня он не несет.
На мой взгляд форум - это место, где люди делятся опытом, чтобы сократить время на исследование проблемы.
Ваш совет, несомненно, ценен, но сейчас я ищу практические рекомендации от людей, которые сталкивались с такой задачей или подобной.

Re: Нужна помощь в выборе способа генерации планеты из хексов!

СообщениеДобавлено: 14 дек 2018, 15:40
IDoNotExist
Od1Um писал(а):На мой взгляд форум - это место, где люди делятся опытом, чтобы сократить время на исследование проблемы.

А в чем собственно проблема то? По моему проблема прежде всего заключается в тотальном непонимании концепций движка, чтобы её решить надо читать документацию, она в свободном доступе есть, в чем проблема, бери и читай. Ну либо задавай конкретные вопросы а не общие, на вопрос, в стиле:

Od1Um писал(а):Что дальше?)

Какой ответ ты ждёшь? Ну пиши код дальше, пробуй разные варианты.

Od1Um писал(а): но сейчас я ищу практические рекомендации от людей, которые сталкивались с такой задачей или подобной.

Ага, сейчас у них обед закончится и они понабигут. "Практические" вообще от слова практика, ну так практикуйся, кто мешает то?

Re: Нужна помощь в выборе способа генерации планеты из хексов!

СообщениеДобавлено: 14 дек 2018, 17:38
Od1Um
IDoNotExist писал(а):
Od1Um писал(а):На мой взгляд форум - это место, где люди делятся опытом, чтобы сократить время на исследование проблемы.

А в чем собственно проблема то? По моему проблема прежде всего заключается в тотальном непонимании концепций движка, чтобы её решить надо читать документацию, она в свободном доступе есть, в чем проблема, бери и читай. Ну либо задавай конкретные вопросы а не общие, на вопрос, в стиле:

Od1Um писал(а):Что дальше?)

Какой ответ ты ждёшь? Ну пиши код дальше, пробуй разные варианты.

Od1Um писал(а): но сейчас я ищу практические рекомендации от людей, которые сталкивались с такой задачей или подобной.

Ага, сейчас у них обед закончится и они понабигут. "Практические" вообще от слова практика, ну так практикуйся, кто мешает то?


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

IDoNotExist писал(а):А в чем собственно проблема то? По моему проблема прежде всего заключается в тотальном непонимании концепций движка, чтобы её решить надо читать документацию, она в свободном доступе есть, в чем проблема, бери и читай. Ну либо задавай конкретные вопросы а не общие, на вопрос, в стиле:

Проблема, как вы правильно заметили, в непонимании движка. Если вы знаете где и что почитать по моему вопросу - поделитесь ссылками или опытом. Фраза "читать документацию" ни о чем не говорит.
Если для вас мои вопросы звучат глупо и ответы на поверхности - так разжуйте мне.
У вас цель показать свою крутость с помощью общих фраз? Это как-то по детски.

IDoNotExist писал(а):Какой ответ ты ждёшь? Ну пиши код дальше, пробуй разные варианты.

Жду, что умные и адекватные люди помогут конкретными статьями, советами и опытом.

IDoNotExist писал(а):Ага, сейчас у них обед закончится и они понабигут. "Практические" вообще от слова практика, ну так практикуйся, кто мешает то?

Спасибо за разъяснение происхождения слова "практические" (к сожалению, в вашем стиле - весьма общее).
Практиковаться мне никто не мешает.

PS: Если вы не понимаете каких практических советов я жду, то вот вам пример:
Слово "понабигут" пишется через "е" - "понабегут". Проверочное слово - "бег".
Для проверки воспользуемся правилом:
Первое и самое элементарное, о чём вы должны вспомнить, это основное правило для проверки гласных, находящихся без ударения. Чтобы их проверить, необходимо подобрать такое однокоренное слово, в котором безударный гласный обретёт голос (ударение)

Ссылка на статью: https://imdiv.com/arts/view-Kak-nayti-p ... slovo.html
Пользуйтесь на здоровье, IDoNotExist.

Вот примерно таких советов "практических" советов я ждал, создавая тему.

Уважаемый, IDoNotExist, давайте больше не будем тратить время друг друга. Я уже понял вашу цель пребывания здесь. Прошу больше не засорять тему, так как я еще надеюсь на адекватные советы от знающих людей.

Re: Нужна помощь в выборе способа генерации планеты из хексов!

СообщениеДобавлено: 14 дек 2018, 19:17
IDoNotExist
Od1Um писал(а):я описал конкретную проблему и прошу помощи у людей, которые могут и хотят помочь.

Не правда, то что ты описал очень абстрактно, на самом деле могу ответить на все вопросы, но ответы будут такими же абстрактными и ничем тебе не помогут.

Od1Um писал(а):Проблема, как вы правильно заметили, в непонимании движка. Если вы знаете где и что почитать по моему вопросу - поделитесь ссылками или опытом. Фраза "читать документацию" ни о чем не говорит.

https://docs.unity3d.com/ru/current/Manual/class-Mesh.html
https://docs.unity3d.com/Manual/OptimizingGraphicsPerformance.html
https://docs.unity3d.com/Manual/LevelOfDetail.html
к примеру.

Od1Um писал(а):Если для вас мои вопросы звучат глупо и ответы на поверхности - так разжуйте мне.

Тут видишь как получается, палка о двух концах:
1) Либо я трачу своё время и разжовываю тебе вопросы;
2) Либо ты тратишь своё время, приводишь в порядок свои мысли и разжовываешь поток сознания в первом сообщении в конкретные вопросы;
Мне второй вариант более по душе, первый вариант не педагогичен, и принесёт тебе больше вреда чем пользы.

Od1Um писал(а):У вас цель показать свою крутость с помощью общих фраз? Это как-то по детски.

По дестки - это как раз практиковаться в словоблудии, нежели отрефлексировать и попытаться донести до людей адекватно свою мысль.

Od1Um писал(а):Я уже понял вашу цель пребывания здесь. Прошу больше не засорять тему, так как я еще надеюсь на адекватные советы от знающих людей.

Цель моего пребывания здесь - "дать удочку голодающему человеку а не накормить его рыбой". У многих людей на этом форуме та же позиция, можешь ждать до посинения, твоё право. Или можешь сделать то, что я описал выше и тебе с радостью ответят.

Re: Нужна помощь в выборе способа генерации планеты из хексов!

СообщениеДобавлено: 14 дек 2018, 19:59
Ziza
Ну если коротко и практично - берите алгоритм шума, например PerlinNoise или более интересный/продвинутый и генерируйте рельеф. Как генерировать рельеф на основе шумов статей чуть меньше чем дофига, в том числе и в русском сегменте, как минимум на плейне точно, скорее всего есть и на сфере/икосаэдре, если поискать. А все отличие от плейна у вас в том, что верх не Y, а текущая нормаль. Ну а с какими-нибудь наработками за советом вэлком :ymhug: Вы уж извините, а что на данном этапе вам можно еще посоветовать? Здесь IDoNotExist прав, сейчас у вас уж слишком все абстрактно, чтобы какие-то советы давать

Re: Нужна помощь в выборе способа генерации планеты из хексов!

СообщениеДобавлено: 14 дек 2018, 20:05
Od1Um
Понял.
Всем спасибо) Вернусь с наработками.

Re: Нужна помощь в выборе способа генерации планеты из хексов!

СообщениеДобавлено: 14 дек 2018, 20:58
DbIMok