Войти
ПрограммированиеФорумГрафика

Принципы генерации ландшафтов на сферической поверхности (2 стр)

Страницы: 1 2 3 4 Следующая »
#15
23:13, 17 янв 2017

foxes
> не будет ни каких сжатий и растяжений
> разница только в масштабе по горизонтали
Для альтернативно одаренных, разница в масштабе = сжатие или растяжение.
С практической точки зрения будет видна разница в характере поверхности.

#16
3:12, 18 янв 2017

}:+()___ [Smile]
> Для альтернативно одаренных, разница в масштабе = сжатие или растяжение.
Сам ты альтернативно одаренный, разница в масштабе по параллелям компенсируется обратным масштабированием!
Найди тут разницу в сжатие или растяжение "характерную":

3d vs 2d | Принципы генерации ландшафтов на сферической поверхности
+ 2D noize merkator
+ 3D noize
#17
3:24, 18 янв 2017

foxes
2D справа - это билборд чтоль?

#18
3:31, 18 янв 2017

MrShoor
2D генератор по XY (широта, долгота) на сфере, со всех сторон круглая без магии и подвоха. Код прилагается.

#19
3:42, 18 янв 2017

foxes
> Найди тут разницу в сжатие или растяжение "характерную":
Так ты полюсом поверни, для начала. Еще у тебя разрывы видны, подозреваю, что из-за твоей "компенсации".
Я уж не говорю, что у тебя отстойный квадратно-гнездовой шум (на 3D, кстати, гораздо менее заметно).

#20
4:07, 18 янв 2017

}:+()___ [Smile]
> подозреваю, что из-за твоей "компенсации".
Нету там ни каких разрывов, нормали глючат из за тангета, и высоты.

+ 2D noise all view

}:+()___ [Smile]
> Так ты полюсом поверни, для начала.
И вообще - код под носом сам верти как вздумается.

#20
4:08, 18 янв 2017

Глючный пост

#21
10:39, 19 янв 2017

Делать простым шумом карту - это моветон. Она будет либо не играбельная, либо неинтересная. Лучше покопать в сторону алгоритмов terragen. В случае стратегии вообще не вижу смысла заморачиваться. Либо предполагается игра на каких-то мелких планетоидах-астероидах, где будет видно скругление рельефа, тогда видимо проще сферу случайным шумом помучить. Либо стратегия планетарного масштаба без управления отдельными юнитами, тогда над ландшафтом можно вообще не заморачиваться и делать нормальный бамп. А уж как натянуть текстуру на сферу я думаю разберётесь.

#22
11:07, 19 янв 2017

Мизраэль
Думаешь в terragen оно без шумов генерится?

#23
11:20, 19 янв 2017

Мизраэль
> А уж как натянуть текстуру на сферу я думаю разберётесь.
Вообще-то, тема как раз и сводится к проблеме натянуть текстуру на сферу.
Мизраэль
> Делать простым шумом карту - это моветон.
Кто сказал, что это должен быть сырой шум? Естественно, он должен быть с постобработкой.

#24
14:33, 19 янв 2017

Мизраэль
> вообще не вижу смысла заморачиваться
Возможно, Вы и правы, однако хочется до конца разобраться в теме. Игру делаю скорее как хобби, в свободное время, так что никуда не спешу.
Mikle
> Естественно, он должен быть с постобработкой.
Вообще, судя по тому, что я читал, достаточно пройтись по шуму еще раз шумом, чтобы получилась интересная карта (с выступами и пещерами). А какую постобработку подразумеваете Вы?

#25
14:44, 19 янв 2017

kasom
> А какую постобработку подразумеваете Вы?
Любую, на какую хватит фантазии. Вот три с половиной года назад я уже демонстрировал, на сколько улучшается ландшафт на шуме Перлина, если его просто возвести в квадрат:
http://www.gamedev.ru/code/forum/?id=179462#m6
Имитация эрозии тоже может быть всего лишь постобработкой исходного шума.

#26
15:14, 19 янв 2017

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

Приблизительно тот же эффект получится если к координатам шума добавить смещение полученное от самого шума - Distortion эффект.

+ Показать
#27
15:30, 19 янв 2017

Еще один вопрос есть, задам его здесь, дабы не засорять форум простыми вопросами. Допустим, я сгенерировал сферу, используя алгоритм кубической проекции. При генерации сферы я еще каким-нибудь шумом или суперпозицией шумов сразу же сгенерировал на ней ландшафт. Теперь если я загружу всю сферу, так сказать, as is, в видеопамять, это будет не очень круто, так как будет одинаковая детализация поверхности для разноудаленных участков, да к тому же будут обрабатываться невидимые области. Для решения первой проблемы есть LOD-алгоритмы, для решения второй - frustum culling. После некой обработки поисковой выдачи гугла, я пришел к выводу, что алгоритм CDLOD + frustum culling - то, что мне нужно. Ознакомившись с авторской реализацией и статьей, я так и не понял: на каком этапе я должен его применить в своем случае? На сколько я понял, алгоритм с ипользованием дерева квадрантов как бы размечает карту высот на LOD'ы и в соответствии с этой разметкой я должен генерировать с определенной детализацией. Значит ли это, что каждый раз мне нужно заново генерировать кусок сферы? То есть, сферу целиком и сразу мне вообще никогда не нужно создавать?
PS: кстати, насколько велики накладные расходы на выгрузку буфера вершин из оперативной памяти в видеопамять? Если я каждый раз буду создавать "хороший" буфер (полученный после CDLOD), а потом грузить его в видеопамять, не будут ли накладные расходы слишком велики? Возможно лучше будет один раз сгенерировать детализированную сферу, полностью загрузить ее в видеопамять, а уже потом как-нибудь работать с готовым буфером и искать LOD'ы?

#28
16:19, 19 янв 2017

Вот тут http://unity3d.ru/distribution/viewtopic.php?f=17&t=37940 один разработчик пытается решить вопросы примерно на вашу тему.

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры


Код выложен на github .

#29
19:20, 19 янв 2017

kasom
никакой тригонометрии, брать треугольник и пока размер/расстояние до наблюдателя > X делить каждую сторону на 2 (получая 4 треугольника)
среднюю точку нормировать по радиусу планеты и применять высоту

Страницы: 1 2 3 4 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.