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

Общие вопросы о Unity3D

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

Сообщение Od1Um 13 дек 2018, 19:03

Добрый день, Коллеги.

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

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

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

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

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

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

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

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

Резюмируя:

Пытаюсь придумать как генерировать ландшафт на планете. Какой базовый путь выбрать. Как создать холмы, реки, озера, горы, поля?
Буду рад советам, примерам и рекомендациям. Надеюсь все понятно изложил
Od1Um
UNец
 
Сообщения: 41
Зарегистрирован: 22 мар 2017, 17:54

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

Сообщение IDoNotExist 14 дек 2018, 09:49

Od1Um писал(а):Тут много математики и боюсь запутаться и не получить того, что хочется.

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

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

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

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

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

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

Если не знаешь как это создать именно на планете, то стоит начать с обычной плоскости.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

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

Сообщение Od1Um 14 дек 2018, 14:45

IDoNotExist писал(а):
Od1Um писал(а):Тут много математики и боюсь запутаться и не получить того, что хочется.

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

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

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

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

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

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

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


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

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

Сообщение IDoNotExist 14 дек 2018, 15:40

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

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

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

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

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

Ага, сейчас у них обед закончится и они понабигут. "Практические" вообще от слова практика, ну так практикуйся, кто мешает то?
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

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

Сообщение Od1Um 14 дек 2018, 17:38

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

Уважаемый, IDoNotExist, давайте больше не будем тратить время друг друга. Я уже понял вашу цель пребывания здесь. Прошу больше не засорять тему, так как я еще надеюсь на адекватные советы от знающих людей.
Od1Um
UNец
 
Сообщения: 41
Зарегистрирован: 22 мар 2017, 17:54

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

Сообщение IDoNotExist 14 дек 2018, 19:17

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 писал(а):Я уже понял вашу цель пребывания здесь. Прошу больше не засорять тему, так как я еще надеюсь на адекватные советы от знающих людей.

Цель моего пребывания здесь - "дать удочку голодающему человеку а не накормить его рыбой". У многих людей на этом форуме та же позиция, можешь ждать до посинения, твоё право. Или можешь сделать то, что я описал выше и тебе с радостью ответят.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

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

Сообщение Ziza 14 дек 2018, 19:59

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

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

Сообщение Od1Um 14 дек 2018, 20:05

Понял.
Всем спасибо) Вернусь с наработками.
Od1Um
UNец
 
Сообщения: 41
Зарегистрирован: 22 мар 2017, 17:54

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

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

правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17