English Новый сайт

Расширенный поиск

[ Новые сообщения · Пользователи · Правила ]
Страница 1 из 41234»
Форум » SpaceEngine » Обратная связь и предложения » Повышение реалистичности процедурных планет (Повышение реалистичности процедурных планет)
Повышение реалистичности процедурных планет
a2pДата: Пятница, 02.12.2011, 12:04 | Сообщение # 1
Нет аватара
Наблюдатель
Группа: Пользователи
Российская Федерация
Сообщений: 10
Награды: 0
Статус: Offline
Предлагаю обсудить подходы к получению более реалистичных планет. В частности, распределение материков и океанов, горных областей и равнин, растительности.
Один из подходов - это математическое моделирование движения тектонических плит, но это практически сложно реализовать. Поэтому предлагаю более простой вариант - совместить процедурное моделирование поверхности и на основе текстур. Например, для планеты задается карта высот (глобально, с низкой степенью детализации), задается карта распределения влажности (глобально, с низкой степенью детализации), карта распределения среднегодовой температуры и задается карта векторов основного направления горных хребтов. На основе этих данных процедурно генерируется более детальный рельеф и генерируются текстуры с учетом высоты, влажности, температуры. Могу оказать посильную помощь в плане алгоритмизации данной идеи. Предлагаю также обсудить другие варианты.
DukeДата: Пятница, 02.12.2011, 19:12 | Сообщение # 2
Нет аватара
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
Может попробуешь перенести на с++ этот http://www-cs-students.stanford.edu/~amitp....eration проект? Если получится сделать достаточно быструю реализацию будет очень хорошо. Там есть ссылки на исходники реализаций на разных языках.

Сообщение отредактировал Duke - Пятница, 02.12.2011, 19:13
SpaceEngineerДата: Пятница, 02.12.2011, 19:55 | Сообщение # 3
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5544
Награды: 54
Статус: Offline
Вопрос, как генерировать эту глобальную карту. Процедурные мелкие детали это уже дело пятое. Для их отладки можно исользовать Землю - она как раз в детализации всего 300 иетров на пиксель.

a2pДата: Суббота, 03.12.2011, 07:31 | Сообщение # 4
Нет аватара
Наблюдатель
Группа: Пользователи
Российская Федерация
Сообщений: 10
Награды: 0
Статус: Offline
Quote (SpaceEngineer)
Вопрос, как генерировать эту глобальную карту.

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

Quote (SpaceEngineer)
Для их отладки можно исользовать Землю - она как раз в детализации всего 300 иетров на пиксель.

Это не совсем понял. Видел, что детализация рельефа у земли существенно больше судя по файлам bump, но все-равно там ведь не 300 метров на пиксель? Попутно вопрос: текстуры рельефа и поверхности могут иметь разное количество уровней детализации? Само количество уровней детализации чем нибудь ограничено?
SpaceEngineerДата: Суббота, 03.12.2011, 19:29 | Сообщение # 5
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5544
Награды: 54
Статус: Offline
А, ну да, в релизе текстуры Земли сильно порезаны, там всего километра 2 на пиксель. У меня они в поном разрешении (300 м), и весят 5 Гб. Движок поддерживает проихвольную детализацию в произвольных местах планеты, главное чтобы все промежуточные уровни тоже были. Например можно установить убер текстуры Москвы (я планировал научить утилиту cubemap рабоать с участками текстуры).

EcoSДата: Пятница, 30.12.2011, 20:45 | Сообщение # 6
Нет аватара
Наблюдатель
Группа: Новички
Российская Федерация
Сообщений: 3
Награды: 0
Статус: Offline
Если я правильно понял глобальная карта и прочие необходимые для реалистичности вещи, типа эрозии не используется из за невозможности достаточно быстро сгенерировать такую глобальную карту высот,кроме того такая карта видимо много будет весить? Но почему бы этот недостаток, раз уж его пока невозможно устранить не замаскировать под элемент геймплея.Например сделать так.Пусть в точке старта игрок ищет подходящую планету (например с океанами) исключительно при помощи корабельного или подключившись допустим к орбитальному телескопу.Обнаруженные телескопом планеты не нужно прорисовывать подробно,может быть даже обойтись одними числовыми параметрами планет.Тогда при старте к выбранной планете,будет запускатся расчет глобальной карты высот с эрозией и может быть какими то дополнительными параметрами,например маски для распределения растений если планета подходящая.Пока все это дело расчитывается, можно развлекать игрока возможностью похождений внутри корабля а ля масс эффект.Затраты времени на расчет новой планеты заставят более серьезно подходить к её выбору при помощи телескопов.
Проблему с большим весом карты высот, можно решить примерно также как в outerre,то есть расчитывать компромиссный между детальностью и весом карты вариант а мелкие детали генерировать уже на лету при подходе к поверхности.
SpaceEngineerДата: Пятница, 30.12.2011, 21:44 | Сообщение # 7
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5544
Награды: 54
Статус: Offline
Глобальная карта вообще не нужна, планеты и без неё нормально выглядят.
С мелкомасштабной эрозией проблем на самом деле нет, надо просто её реализовать на GPU: http://dg8.ru/
Честную крупномасштабную эрозию (реки) пока получить не удастся - нужны очень долгие рассчёты, причём только в том районе, где будет игрок. В масштабе всей планеты рассчитать эрозию невозможно - просто не хватит памяти для текстур, такой рассчёт займёт дни, да и не нужно это - зачем считать то, что игрок никогда не увидит.
Так что подход с предварительным рассчётом не подойдёт.


EcoSДата: Пятница, 30.12.2011, 22:10 | Сообщение # 8
Нет аватара
Наблюдатель
Группа: Новички
Российская Федерация
Сообщений: 3
Награды: 0
Статус: Offline
Ну хорошо.Но все таки не надо торопится.Для более менее внятной крупномасштабной детализации вполне хватит карты примерно 4096 *4096 расчет эрозии на ней к примеру в GeoControl2 займет в зависимости от вида эрозии от 1 до 10 мин.

P.S http://dg8.ru/ Скриншоты конечно бесподобны,надо будет глянуть демку.
SpaceEngineerДата: Суббота, 31.12.2011, 03:06 | Сообщение # 9
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5544
Награды: 54
Статус: Offline
На карте 4096*4096 эрозия не даст никакого результата. При таком разрешении один пиксель покрывает площадь 10*10 км на планете земного размера. Заметный эффект появляется на в 10 раз меньшем масштабе, а для более-менее правдоподобного результата надо ещё в 10 раз мельче масштаб (а детализация всё ещё будет низкой - 100 метров на пиксель!).

EcoSДата: Суббота, 31.12.2011, 17:30 | Сообщение # 10
Нет аватара
Наблюдатель
Группа: Новички
Российская Федерация
Сообщений: 3
Награды: 0
Статус: Offline
Конечно высокую детализацию с такой картой не получишь,но это и не обязательно,глобальная карта должна задать общее распределение горных цепей и долин,как на физической карте мира http://planetolog.ru/map-world-big.php?id=PHY&scheme=1
Дополнительные детали можно генерить на лету используя глобальную карту для задания коэффициентов высот при генерации дополнительных деталей.Тоесть например в горных районах,высоты выдаваемые при генераторации дополнительных деталей нужно будет умножать на некоторую величину.
На видео http://www.cajomi.de/Forum/showthread.php?t=522 показывается как водная сегментация формирует из кучи хаоса изображающего гору более менее похожую на реальную.Видно что получаются скалистые цепи и сглаженные участки,если такую гору раскатать в планету должны получится горные цепи и долины и см начало smile

Всех с новым годом!Успехов!
BalogДата: Четверг, 19.01.2012, 21:15 | Сообщение # 11
Исследователь
Группа: Пользователи
Украина
Сообщений: 211
Награды: 0
Статус: Offline
Да, было бы очень желательно иметь несколько алгоритмов для объектов одного класса (например для гор на терре). А то сейчас куда не полети - горы в принципе одинаковы, только цвет разный.
Не хватает вулканических гор, можно было бы иногда и на терры добавлять крупный ударный кратер, и хорошо если все таки будет эрозия.
Облака сейчас выглядят как-то примитивно, нет объема, многослойности.


Сообщение отредактировал Balog - Пятница, 20.01.2012, 03:09
AerospacefagДата: Суббота, 21.01.2012, 16:05 | Сообщение # 12
Строитель Миров
Группа: Пользователи
Российская Федерация
Сообщений: 1019
Награды: 3
Статус: Offline
SpaceEngineer, а ты не мог бы сделать несколько типов облаков? В земной атмосфере основной слой образуется на высоте в несколько километров, но над ним есть и более разреженные слои, в которых бывают облака другого типа, так же как и, например, в разреженных атмосферах.

Например, типы атмосфер:
1. Перистые(практически не видны из космоса).
2. Слоистые и перистые.
3. Сплошной слой слоистых облаков для тяжелых атмосфер.

Вот тут есть подробная классификация и основные типы: http://ru.wikipedia.org/wiki/Облака
Или вот еще http://ru.wikipedia.org/wiki/Серебристые_облака в мезосфере, где давление составляет лишь десятки паскалей(< 0,1% атм), а температура ненадолго заметно возрастает.


Так же было бы неплохо указывать параметры атмосферы при полете сквозь нее - давление, температуру, состав. Формулы и графики можно взять достаточно простые и аппроксимированные, все равно никто не будет к ним придираться по-настоящему.
Прикрепления: 2065313.jpg(99Kb)


Win7
Intel Core i5-2310 2.9 Ghz
4 Gb DIMM DDR3
Asus GeForce GTX760, 2 Gb GDDR-5


Сообщение отредактировал Aerospacefag - Суббота, 21.01.2012, 16:07
SpaceEngineerДата: Суббота, 21.01.2012, 16:15 | Сообщение # 13
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5544
Награды: 54
Статус: Offline
Облака даже в таком простом исполнении как сейчас - очень тормозные. Сравни сколько fps вблизи терры с облаками и вблизи газового гиганта. Всё из-за атмосферы, она - самый тяжёлый эффект. Я планирую сильно упростоить её, чтобы поднять fps.

AerospacefagДата: Суббота, 21.01.2012, 17:29 | Сообщение # 14
Строитель Миров
Группа: Пользователи
Российская Федерация
Сообщений: 1019
Награды: 3
Статус: Offline
Совсем уж упрощать, конечно, не стоит, можно сильно потерять в качестве. Лучше найти способ их оптимизировать, а не переть напролом. Планеты отлично и без тормозов смотрятся из космоса а большая часть проблем начинается при полете около поверхности.
И вообще я имел в виду вариативность в параметрах - одинаковые или похожие типы облачных слоев быстро приедаются.

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

Я, например, видел землеподобный мир, вращающийся вокруг газового гиганта с наклонением почти в 90 градусов. Там почти везде пол-года день и пол-года ночь. Интересно, какой там температурный режим?


Win7
Intel Core i5-2310 2.9 Ghz
4 Gb DIMM DDR3
Asus GeForce GTX760, 2 Gb GDDR-5


Сообщение отредактировал Aerospacefag - Суббота, 21.01.2012, 17:56
BalogДата: Воскресенье, 22.01.2012, 17:23 | Сообщение # 15
Исследователь
Группа: Пользователи
Украина
Сообщений: 211
Награды: 0
Статус: Offline
Не хватает также таких структур как столовые горы, каньоны. Хотя может это эрозия, но по моему эрозия это уже постпроцесс сглаживания имеющегося рельефа.
Ну и соответственно реки, фьорды...

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

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


Сообщение отредактировал Balog - Воскресенье, 22.01.2012, 17:27
Форум » SpaceEngine » Обратная связь и предложения » Повышение реалистичности процедурных планет (Повышение реалистичности процедурных планет)
Страница 1 из 41234»
Поиск:

>