из куба сферу

Speed Tree : Terrain & Trees.

Re: из куба сферу

Сообщение Cyrix 11 окт 2018, 10:33

Cr0c писал(а):noiseOffset - это сид (seed, зерно) для генерации псевдорандомного шума


А есть ли способ прикрутить к этому скрипту карту высот из файла bmp?
Cyrix
UNIт
 
Сообщения: 116
Зарегистрирован: 16 сен 2009, 11:32

Re: из куба сферу

Сообщение Paul Siberdt 11 окт 2018, 14:00

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

noiseOffset - это не seed в его ключевом понимании, это тупо отступ по осям от нуля, В нуле Перлин зеркальный по всем направлениям, что совсем не красиво. Но да, работает, как рукожопый seed. :)
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: из куба сферу

Сообщение IDoNotExist 11 окт 2018, 14:16

Paul Siberdt писал(а):Нууууу... а вы создаете карту высот на плоскости и хотите безболезненно прикрутить к сфере?

Для этого как раз и нужен дутый куб. Еще его удобнее ЛОДить по квадрадереву.
Еще вот что у себя в закладках нашел https://habr.com/post/335588/

Cyrix писал(а):Я вчитывался, как сделать рельеф из карты высот на ПЛОСКОСТИ.

Ну так создай такую плоскость, а потом спроецируй её на сферу, вот у тебя и получилась одна грань дутого куба.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: из куба сферу

Сообщение Paul Siberdt 11 окт 2018, 14:42

Мне представляется стремным занятием подгонка карт высот для каждой грани куба, я бы все эти штуки делал до Юнити, и, в конце концов, снимал бы готовую дисплейсмент дату со сферы. Она и весить будет много меньше карт высот, чисто пиксель на вертекс... хотя, это разговор про процедурно генерируемые сферы.

В своем старом танчике я в Майке скульптил руками астероиды, а потом сохранял в мисиписечные карты высот, типа таких:

Изображение.
Изображение

Все, конечно, зависит от необходимого конечного результата, кто знает, чем там занят топикстартер, VR-симулятором прилунения или мобильной аркадкой про сбор монеток среди астероидного поля.
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: из куба сферу

Сообщение IDoNotExist 11 окт 2018, 14:59

Paul Siberdt писал(а):Мне представляется стремным занятием подгонка карт высот для каждой грани куба, я бы все эти штуки делал до Юнити,

Я когда то давно именно так и делал, брал готовую карту высот марса/земли в сферических координатах, преобразовывал координаты, и нарезал на 6 кубических, ничего сложного тут нет (это скорее муторно, особенно писать парсеры .raw файлов). А разрешение карт высот как собственно и размер, можно настроить под свои нужды во время нарезки.

Paul Siberdt писал(а):кто знает, чем там занят топикстартер

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

Re: из куба сферу

Сообщение Paul Siberdt 11 окт 2018, 15:27

Кстати, еще всплывет вопрос освещения и, следовательно, выставления правильных нормалей крайним и угловым вертексам вздутых и отдисплейченных граней куба. Если своевременно не научиться создавать процедурные сетки, тут можно сильно застрять с правкой артефактов. :)
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: из куба сферу

Сообщение IDoNotExist 11 окт 2018, 15:41

Paul Siberdt писал(а):Кстати, еще всплывет вопрос освещения и, следовательно, выставления правильных нормалей крайним и угловым вертексам вздутых и отдисплейченных граней куба.

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

Re: из куба сферу

Сообщение Paul Siberdt 11 окт 2018, 16:15

IDoNotExist писал(а):Не только нормалей но еще и тангентов по хорошему...

Там еще бамп был? Мои соболезнования. :)

Я месяца как три назад забил на освещение и начал другим заниматься, благо есть, чем. Но время "Ч" близится. :D
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: из куба сферу

Сообщение Cyrix 11 окт 2018, 16:23

Так... тема проекта такова: Планета, на ней одна вода и больше ничего, кроме двух островов, которые находятся на значительном расстоянии друг от друга. Острова не маленькие. На каждом острове - по аэродрому! Беда в том, что острова процедурные, да и вода тоже (волны там, всё-такое..., но только вблизи острова, а дальше, в необозримой части, вода низкополигонная). Сами острова не могут быть плоскими - они должны быть изогнутыми по сфере (планете) плюс собственные неровности из карты высот. Почему не рандомные - объясняю: Аэродром - плоская полянка относительно острова, на карте высот надо будет нарисовать одноцветную площадь, чтобы полянка была ровная. С острова надо будет перебираться на другой остров за ресурсами. Два раза в игровую неделю будет прилетать самолёт и забирать игроков в рейс на другой остров и обратно, но билет платный. Погода на планете бывает не очень, самолёт может не долететь... если повезёт, то окажешься в воде, но плавать в ней до прибытия спасателей - не просто... ну и т.д. и т.п...
Как мне сделать остров, который будет менять свои полигоны и вершины на более мелкие и частые (и текстурировать их) только вблизи камеры игрока, но при этом чтобы плоскость самого острова была параллельно сфере (чтобы остров был изогнут по сфере) ?
Я сделал высокополигонную рандомную сферу, но FPS - 5...8! Это кошмар! Всё-таки надо как-то делать процедурную генерацию. Но кааак???
Cyrix
UNIт
 
Сообщения: 116
Зарегистрирован: 16 сен 2009, 11:32

Re: из куба сферу

Сообщение Paul Siberdt 11 окт 2018, 16:39

Ок, вообще тогда нет проблем. Создаем регулярную сетку, что вписывает остров, гнем ее по радиусу водяной планеты, дисплейсим плоской картой высот и ориентируем в нужное место. Повторяем то же самое для второго острова.

Процедурная генерация все так же сожрет фпс, сама генерация не означает создание прогрессивмеша. Прогрессивмеш - это отдельная надстройка над процедурным террейном. Для применения прогрессивмеша на острове, вам его (остров) надо разбить на отдельные квадраты (объекты, сабмеши или логические куски одного меша - не суть), как это сделано во многих террейн-генераторах (включая Юневский), и управлять плотностью сетки каждого квадрата в отдельности при помощи анализа а-ля "насколько значимы детали квадрата в текущем вьюпорте". Естесственно, надо разбираться, писать код, тестить, дебажить и много читать примеров и разборов в интернете.

Если у вас проблема с водной поверхностью - отследите, с какой высоты какая часть планеты становится видима, на каком расстоянии можно отключить эффекты волн и уменьшить сетку вдвое, втрое, в 32 раза и тому подобное. Возможно, в какие-то моменты вообще планету можно заменить сегментом или даже плоскостью.
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: из куба сферу

Сообщение Cyrix 12 окт 2018, 11:25

А каким образом можно согнуть плоскость по радиусу в Unity? Вот например создал я остров в 3DS MAX-е, он не гнутый, а ровный, экспортировал в FBX, получил объект в Unity, у этого объекта есть меш. Как мне перебрать циклом все вершины этого меша и изменить их высоту относительно радиуса планеты? Может в Unity есть какой-то инструмент для этого?
Cyrix
UNIт
 
Сообщения: 116
Зарегистрирован: 16 сен 2009, 11:32

Re: из куба сферу

Сообщение IDoNotExist 12 окт 2018, 12:29

Cyrix писал(а):Как мне перебрать циклом все вершины этого меша

foreach(Vector3 vert in mesh.vertices)

Cyrix писал(а):и изменить их высоту относительно радиуса планеты?

координата вершины минус центр планеты, нормализовать и умножить на радиус планеты.

Cyrix писал(а):Может в Unity есть какой-то инструмент для этого?

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

Re: из куба сферу

Сообщение Cyrix 12 окт 2018, 13:53

Cyrix писал(а):Да, есть он находится рядом с кнопкой "Сделать Готовую Игру"


Весьма информативно
Cyrix
UNIт
 
Сообщения: 116
Зарегистрирован: 16 сен 2009, 11:32

Re: из куба сферу

Сообщение Paul Siberdt 12 окт 2018, 16:49

А каким образом можно согнуть плоскость по радиусу в Unity? Вот например создал я остров в 3DS MAX-е, он не гнутый, а ровный...

В том и дело, что гнуть надо плоскость, а не остров. Из острова в Макее вам надо посчитать карту высот и применять в Юнити на гнутую сферу, смешая вертексы по нормалям согласно значению пикселя на карте. Таким образом, вы на одну и ту же плоскость можете навешивать разные карты высот. Если плоскость создавать процедурно, вам не потребуется нигде хранить меш острова, только карту высот.

Как гнуть плоскость?... ну, если не заморачиваться с индексами, то тупо определяя центр плоскости и поворачивая позицию каждого вертекса согласно его направлению и удалению от центра на угол под нужный радиус планеты.
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: из куба сферу

Сообщение Paul Siberdt 12 окт 2018, 16:58

Может быть, вам просто подойдет геометрический шейдер, что трансформирует скринспейс? Тут вообще про планеты не надо париться.

Curved World
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Пред.След.

Вернуться в Земля и деревья.

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

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