[Space Engine] Дайджест новостей: модели астероидов, ландшафтный движок, PBR рендеринг
Jan 05, 2018 20:21
Я с осени не делал посты по новостям Space Engine, ибо их было мало и все по одной теме. Под Новый Год Владимир Романюк (aka SpaceEngineer) разродился и выдал аж 4 новости за несколько дней. Последние месяцы главный разработчик продолжал заниматься апгрейдом ландшафтного движка, PBR-рендерингом, интерфейсом, связью с общественностью, сражениями с хейтерами, подготовкой к запуску в Steam. HarbingerDawn, волонтер из команды SpaceEngine, игрался с настройкой генерации планетных систем, атмосфер, планетных колец, внешнего облика газовых гигантов. Duke экспериментирует с PBR, доводкой нового шейдера туманностей и сверхновых. Из-за обилия изменений невышедшую версию 0.9.8.1 переименовали в 0.9.9.0.
В 0.9.9.0 обещают: 1. Допилить новый интерфейс. Доделать главное меню, сделать сохранение/загрузку игровых сессий режима с кораблями, сделать 3D анимацию планеты на фоне меню, вместо простой текстуры. 2. Туториалы. Будет несколько глав, переведенные на несколько языков. 3. Ландшафтный движок, текстурирование планет, система пресетов и редактор для них. 4. Процедурная обработка известных планет Солнечной системы (УРА!) 5. Симуляция эволюции планет для создания более реалистичных морей и атмосфер. Подводный лед высокого давления. Отбрасывание планет с нереалистичными данными, которые возникали из-за саморазгоняющегося парникового эффекта. 6. Чарты звездных систем как в Elite. 7. Инструмент для записи пути камеры. Можно будет снимать клевые заскриптованные ролики, а не только лишь нарезки на ютубе. 8. Новая система классификации планет на основе их объемного состава, разработанная Романюком. 9. Улучшенная поддержка VR, поддержка шлемов Oculus CV1 и HTC Vive. 10. Реализация реальных эфемерид планет и лун Солнечной системы при помощи матмоделей: JPL (DE-xxx), VSOP87, MARS1.0, L1.2 TASS1.7, GUST86. Их можно будет выбирать в настройках(?). По крайней мере некоторые из них дополняют друг друга. 11. Множественные улучшения и фиксы графического движка. Доработка управления: при приземлении на тело, камера привязывается к ней и ведет себя "по-шутерному". Дежурное обновление каталога известных тел, добавление новых каталогов. Может еще чего-то забыл. 12. Выход планетария в Steam. Кораблей для полетов пока не будет, либо они будут включаться отдельно (DLC, либо через консоль - еще не решено).
Чарты звездных систем как в Elite
В 0.9.9.1+ обещают: 1. Новый рендер туманностей. Самая интересная фишка не успевает, ее оставили на следующую версию. 2. Переменные звезды, анимация сверхновых (!) 3. PBR рендеринг 4. Волюметрические 3D облака 5. 3D вода 6. ???
Материал, созданный из трёх разных текстур: мелкие камешки + большие булыжники, модулированные текстурой скалы. Смешивание мелкой и большой текстур сделано на основе их карт высот
Наверное, на анимации лучше видны этапы текстурирования
Устранение сильно бросающегося в глаза тайлинга (повторяемости узора) методом 3 от Inigo Quilez. В каждом пикселе текстура сэмплится всего два раза, в сдвинутых относительно друг друга координатах, затем результат смешивается. Сдвиг координат происходит в областях, похожих на узор древесины
Редактирование пресетов материалов/биомов
Ландшафт в SE рисуется с помощью quadtree (квадродерева). Чтобы покрыть сферу, и для удобства работы с текстурами, используется т.н. “кубсфера” - куб, каждая грань которого это quadtree, “надутый” в сферу простым преобразованием координат вершин
Река, вид вблизи
В горных местностях реки формируют живописные каньоны
Тектонические разломы по типу Долин Маринера на Марсе
При наблюдении с орбиты, для текстурирования используются образцы спутниковых и аэрофотоснимков реальных планет. Выглядит уже довольно многообещающе, хотя гребни и овраги это пока только текстура, не реальный рельеф (наложение сэмплов карт высот - следующая задача). Обратите внимание на паттерн, похожий на эрозию - это текстура-образец сделана по снимкам Земли
Ещё ближе - обратите внимание на паттерн, похожий на верхушки деревьев. Это текстура также сделана на основе снимков Земли, но меньшего масштаба
На поверхности - обратите внимание, как смешиваются несколько разных материалов травы
Самое интересное в этой системе - то, что она работает «из коробки» на реальных планетах - на Земле, Луне, Марсе. Надо просто создать для них файл конфигурации биомов (есть возможность назначить уникальный файл для каждой реальной планеты) и создать несколько уникальных файлы конфигурации материалов. Поэтому на уровне поверхности реальные планеты теперь выглядят великолепно. У них пока что не достаёт детализации на средних масштабах - это цель для следующих экспериментов (процедурная обработка реальных карт высот).
Под капотом ландшафтного движка. Включен отладочный оверлей, показывающий границы узлов octree. Разные цвета соответствуют узлам разных уровней, а белые вспышки указывают узлы, которые генерируют текстуры в данный момент.
Зеркальное отражение на обшивке космического челнока. К PBR отношения не имеет, отражения пока без учёта физических характеристик поверхности
Duke экспериментирует с PBR (physically-based rendering) - физическим методом рендеринга, в сочетании с IBL (image-based lighting) - освещением на основе карт окружения. Чтобы интегрировать это в SE, была добавлена поддержка PBR текстур для кораблей, возможность указать, требует ли материал карту окружения, и дополнительный проход фильтрации созданной карты окружения (специальное размытие, необходимое для PBR и IBL). Таким образом, модели кораблей теперь освещаются своим реальным окружением, а характеристики их поверхности (отражательная способность и рассеивающие свойства) задаются текстурами попиксельно. Набор текстур включает:
Карты альбедо, нормалей и эмиссии - как и до этого в SE, это текстуры, которые определяют цвет поверхности, нормали и цвет свечения. Карты шероховатости и металличности теперь заменяют карту бликов (specular). Обе - текстуры в градациях серого. Первая определяет гладкость поверхности: менее грубые поверхности похожи на зеркало, а более грубые выглядят матовыми. Вторая - это переключение между металлами и диэлектриками, поскольку эти два класса материалов взаимодействуют со светом по-разному. Карта затенения окружения (ambient occlusion) - это текстура в градациях серого, которая задаёт небольшие тени в углах и различных углублениях модели. Пока что карты шероховатости, металличности и AO объединены в единую RGB текстуру, но в будущем можно будет задавать любые комбинации (например, поместить карту металличности в альфа-канал карты альбедо, а шероховатости - в альфа-канал карты нормалей).
Тестовые скриншоты пока не выглядят на 100% правильными, но это только начало. Стандартный тест PBR - массив шариков с постепенно изменяющейся металличностью (сверху вниз) и шероховатостью (слева направо):
На самом деле это не космический корабль, а модель шлема
[OVERVIEW] OVERVIEW - это 30-минутное приложение для виртуальной реальности, созданное французской компанией Orbital Views, основанное на движке SpaceEngine. Оно состоит из шести глав, рассказывающих о Земле и других планетах, Солнечной системе, Млечном пути и его месте во Вселенной. VR - лучшая технология, дающая пользователю ощущение масштабов Вселенной. Тщательно подобранная глубина стереоэффекта позволяет ощущать относительный размер и расстояние между объектами. Вы можете почувствовать себя гигантом, смотрящим на модель Солнечной системы шириной 1 метр, или впечатлиться огромными размерами Юпитера по сравнению с Землей.
Это первый раз, когда SpaceEngine используется другой компанией для создания игры! Новые скрипты сценариев - важнейшая система, которая сделала это возможным. И, конечно же, поддержка VR, которая сейчас намного более продвинута, чем в 2013 году, когда я начал внедрять VR с Oculus Rift DK1. SE теперь поддерживает Oculus Rift CV1 и HTC Vive. Кстати, именно Orbital Views пожертвовали мне HTC Vive практически сразу после выпуска 0.980. Новая система скриптов разрабатывалась параллельно с началом работать над OVERVIEW, в режиме запрос-реализация-отзыв, поэтому моё с ними сотрудничество началось более года назад.
OVERVIEW уже отправлена на рассмотрение в Vive Port, и мы работаем над отправкой его в Oculus Store и Steam. Для Oculus Store требуется дополнительная работа в SE, что может занять несколько недель. Выпуск на всех площадках, вероятно, будет в начале 2018 года.
Работа над OVERVIEW - одна из причин того, почему релиз версии 0.990 настолько задерживается, но оно того стоит! Пожалуйста, будьте терпеливы, 2018 год обещает быть очень успешным для SpaceEngine!
[3D модели астероидов] Новая возможность создания статичных (неуправляемых) кораблей, космических станций и планетарных баз реализована фейковыми “спутниками” с кастомными 3D моделями. Они используют кеплеровские орбиты, как обычные планеты или луны, или фиксированное положение относительно родительского тела, но рендерятся моделью корабля вместо сферы с адаптивной сеткой рельефа. Но этот же механизм можно использовать для рендеринга астероидов с пользовательской 3D-моделью вместо кубических карт высот, обычно необходимых для создания планетного тела. В этом случае объект отображается в интерфейсе SE как типичный астероид или карликовая луна, но его модель заменяется моделью “корабля”.
Комета 67P / Чурюмова-Герасименко. Модель не очень качественная и без текстур
Оумуамуа в момент максимального сближения к Землёй. Модель - та же самая, что и в пресс-релизе ESO. Она была любезно предоставлена её автором Luis Calçada. У этой модели очень много полигонов и отсутствуют текстуры
Орбита и положение Оумуамуа на 28 декабря 2017. Зацените гиперболическую траекторию