SpaceEngine TODO - обновлено 11 июля 2016
|
|
SpaceEngineer | Дата: Пятница, 29.04.2011, 18:17 | Сообщение # 1 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| Это глобальный список TODO, в основном касается графической части движка. Зелёный - уже реализовано. Жёлтый - частично реализовано. Серый - сомнительно, то есть не ясно, будет ли это реализовано, и возможно ли вообще такое реализовать.
Вообще, т.к. SpaceEngine задумывался как максимально реалистичный космический симулятор, в нём планируется реализовать абсолютно всё, что известно о космосе (но, конечно, в рамках возможного для персонального компьютера).
SpaceEngine TODO
Движок
- Загрузка ресурсов в параллельном потоке
- Управление камерой и физикой (в т.ч. орбитальным движением тел) в параллельном потоке
- Локализация на другие языки
- Юникод шрифты
- Улучшение интерфейса и управления (панели управления, подскази, бинд клавиш и т.п.)
- Расширение возможностей планетария (созвездия - фигуры, границы и названия; астрономические координатные сетки, управление телескопом)
- Отображение названий объектов на поверхности планет (моря, горы, кратеры и т.п.)
- Галактическая карта, звёздная карта, карта планетной системы, карта планеты
- Запись полёта, её редактирование и сглаживание
- Скрипты для автопилота
- Встроенный редактор планет, галактик и т.п.
- В редакторе - импорт текстур, каталогов и моделей, экспорт процедурных текстур, каталогов и моделей (обмен контентом с Celestia и т.п.)
- Правильная автоэкспозиция, реальная яркость поверхностей планет и звёзд
- Антиалиасинг
- Shadow maps
- Deferred shading
- Physical based rendering
- Ambient occlusion
- Global illumination
- Экранный motion blur
- Карты окружения для освещения, отражений, преломлений
- Загрузка моделей с анимацией
- Звуковые эффекты, музыка
- Сеть
- Мультимониторная поддержка, настраиваемая "крючилка" для создания видеостены (в т.ч. fish eye проекция)
- Сетевая синхронизация рендеринга для распределённой видеостены
- 3D режимы (анаглиф, стереопары и т.д.)
- Виртуальная реальность (Oculus Rift, HTC Vive)
Галактики
- Правильный рендер пылевых спрайтов
Балдж (предрассчитанная текстура) + диск (спрайты)
Встроить в диск модели крупных туманностей
Адаптивная детализация модели
- Предыдущие 4 пункта заменяем на рендер трассировкой луча
- Правильный блендинг со звёздами
- Правильный блендинг с туманностями
- Реалистичные процедурные модели галактик всех типов
- Реалистичные модели реальных галактик (реконструкция 3D структуры по снимкам)
- Процедурное крупномасштабное распределение галактик (скопления, филаменты, стены, войды), замкнутая Вселенная или Вселенная с доменной структурой
- Модели неправильных и сталкивающихся галактик
- Анимация или моделирование вращения галактик (требуется суперкомпьютер?)
- Моделирование столкновения галактик (требуется суперкомпьютер?)
- Моделирование эволюции галактик (требуется суперкомпьютер?)
Туманности
- Правильный рендер пылевых спрайтов
Освещение от 4 звезд
Освещение от любого количества звёзд
Анимация волн освещения (световое эхо)
Анимация расширения оболочек сверхновой и планетарных туманностей
Адаптивная детализация
- Предыдущие 6 пунктов заменяем на рендер трассировкой луча
- Реалистичные процедурные модели туманностей всех типов
- Реалистичные модели реальных туманностей (реконструкция 3D структуры по снимкам)
- Правильный блендинг с галактикой
- Правильный блендинг со звёздами
- Моделирование эволюции диффузных туманностей, коллапс и образование звёздных скоплений (требуется суперкомпьютер?)
Звезды
- Бинарный формат каталога со встроенным octree
- Сохранение в бинарный каталог звёзд из текстового каталога (или отдельный каталог в кэше)
- Встраивание каталога в octree галактики
- Возможность динамической подгрузки с диска узлов octree (подготовка к выходу каталога GAIA 2 млрд. звезд)
- Правильные динамические lens flare
- Тройные и кратные системы
- Каталог двойных и кратных звёзд
- Сплюснутая форма быстро вращающихся звёзд, эффект "гравитационного потемнения"
- Приливные искажения формы, заполнение полости Роша (с учётом эллиптичности орбит)
- Анимация перетекания вещества, аккреционные диски и джеты
- Чёрные дыры с эффектом гравитационной линзы, чёрные дыры Керра
- Сверхмассивные чёрные дыры в ядрах галактик, моделирование или анимация движения ближайших звёзд, квазары
- Нейтронные звёзды и пульсары с анимацией луча
- Переменные звёзды, сверхновые
- Каталог переменных звёзд
- Анимация поверхности
- Протуберанцы, факелы
- Магнитная активность
- Моделирование эволюции звёзд
- Движение звёзд в галактике
- Блуждающие межгалактические звёзды
Планеты
- Улучшение детализации процедурных планет
- Процедурная детализация (refinement) реальных планет
- Локальная СК для лодов или всей планеты
- Улучшенное моделирование структуры планетной системы, учёт миграции планет, резонансов, высокой эллиптичности и наклонения орбит, парникового эффекта
- Сплюснутая форма быстро вращающихся планет
- Улучшение газовых гигантов
- Блуждающие планеты (планемо)
- Все известные/мыслимые классы планет, привязка к астрофизике, геологии и геохимии
- Новые классы поверхности (Европа, Тритон, и т.п.), привязка к астрофизике
- Моделирование тектоники плит (статичное)
- Линейные и радиальные структуры (реки, горные хребты, разломы, борозды, эскарпы, лучи кратеров)
- Разные типы ландшафта в разных местах
- Функция дисторсии карты высот (террасы, горизонтальный сдвиг)
- Отверстия в поверхности (пещеры, шахты)
- Проверка столкновений с поверхностью
- Самозатенение рельефа, ambient occlusion
- Терраморфинг
- Моделирование падений астероидов с освещением, взрывом и образование кратера
- Анимация метеоров и метеорных дождей
- Вулканы, анимация взрывов и облаков пепла
- Светящаяся лава, анимация течения и остывания
- Раскалённые планеты
- Огни городов
- Астероиды, кометы с хвостом (анимация или моделирование эволюции)
- Пояса астероидов и комет (анимация движения на GPU или N-body моделирование на GPU)
- Пылевые и астероидные кольца, анимация или моделирование движения
- Тени от спутников и др. планет на кольцах и наоборот; объемные тени внутри колец, самозатенение колец
- Освещение колец планетой и планеты кольцами
- Освещение планет шаровыми скоплениями, ядром галактики, туманностями, сверхновыми
- Анимация облаков, циклоны
- Моделирование 2D газодинамики атмосферы на GPU (требуется суперкомпьютер?)
- Тени от облаков
- 3D облака с реалистичным освещением и самозатенением, скаттерингом
- Разные типы облаков, многослойность
- "Лучи бога" от ландшафта и облаков в атмосфере
- Правильный конус тени затмения и тени колец в атмосфере
- Рефракция в атмосфере (вплоть до эффекта "вогнутого мира")
- Больше типов атмосфер, генерация моделей в рантайме, привязка к астрофизике
- Погодные явления (дождь, снег, туман, молнии с освещением, радуга)
- Сезонные изменения (снежный покров и полярные шапки, пылевые бури, испарение или замерзание морей и атмосферы)
- Климат и вид поверхности "лежащих на боку" планет и планет и планет, всегда повёрнутых одной стороной к солнцу
- 3D вода, анимация волн (с учетом погоды), моделирование приливов
- Преломления и отражения на водной поверхности
- Подводный мир
- Моделирование водной эрозии
- Разные типы гидросфер (вода, метан, лавовые моря и т.п.)
- Магнитная активность, полярные сияния с освещением
- Поверхностные детали (камни, растения, дороги, строения)
- Моделирование тектоники и эволюции планет (требуется суперкомпьютер?)
- Моделирование столкновения, приливного или искусственного разрушения планет, образование пояса астероидов и пылевого диска вокруг солнца, дальнейшая его эволюция (требуется суперкомпьютер?)
- Молодые планетные системы с протопланетным диском
- Моделирование формирования планетной системы (требуется суперкомпьютер?)
- Моделирование эволюции планетной системы при переходе солнца в стадию красного гиганта
- Моделирование разрушения планетной системы при взрыве сверхновой
Игра
- Загрузка моделей (корабли, здания и т.д.)
- Внутреннее устройство кораблей и зданий (indoor-движок)
- Физика (проверка столкновений, Ньютон, орбитальный полёт, реактивное движение, аэродинамика и гидродинамика)
- Разрушение кораблей и зданий, анимация взрывов, моделирование газодинамики взрыва на GPU
- Гигантские астроинженерные конструкции
- Процедурная жизнь
- Процедурные цивилизации
- Сетевая база данных (сервер)
- Игра по сети
- 42 (самый главный вопрос вселенной SpaceEngine - геймплей:))
|
|
| |
Digit1990 | Дата: Пятница, 06.05.2011, 10:55 | Сообщение # 2 |
Исследователь
Группа: Администраторы
Российская Федерация
Сообщений: 260
Награды: 0
Статус: Offline
| ...кстати, почему бы не сделать цветовые эффекты межзвездном при полете? Это будет в некотором роде фейк, но зато красиво... (изменяющийся цвет радиально от корабля, меняющийся в зависимости от его скорости - с резким скачком цвета при переходе к сверхсвету и обратно)
Per aspera ad Astra
|
|
| |
SpaceEngineer | Дата: Пятница, 06.05.2011, 18:16 | Сообщение # 3 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| Да не, как раз фишка в том, что при сверхсветовом полете нет никаких искажений поля зрения. Иначе можно всё просто заменить на привычную сине-белую трубу, в которой летит корабль. Не интересно. Хочется разглядывать проплывающие мимо звёзды и плавное изменение очертания Млечного пути. Строго говоря, при сверхсветовом полёте всё должно сжаться вточку впереди по курсу. Тоже не красиво. Эффект допплера плюс аберрация заметны при релятивиствких скоростях, но это ещё не сверхсвет.
|
|
| |
Digit1990 | Дата: Суббота, 07.05.2011, 18:04 | Сообщение # 4 |
Исследователь
Группа: Администраторы
Российская Федерация
Сообщений: 260
Награды: 0
Статус: Offline
| а только как красивость - ну и визуальное различие скоростей?
Per aspera ad Astra
|
|
| |
Crab | Дата: Суббота, 07.05.2011, 18:09 | Сообщение # 5 |
Первооткрыватель
Группа: Модераторы
Российская Федерация
Сообщений: 444
Награды: 1
Статус: Offline
| А Нептун случаем не ошибся в названии темы? Так будет выглядеть версия 10 или всё же 1
Windows 8 x64 Intel Core2 Duo CPU E7500 2.93GHz. 4 GB RAM. Nvidia GeForce 550Ti 1024mb.
|
|
| |
Siciliec | Дата: Воскресенье, 08.05.2011, 17:25 | Сообщение # 6 |
Космонавт
Группа: Пользователи
Украина
Сообщений: 47
Награды: 2
Статус: Offline
| Выделяйте красным или любым другим цветом то, что вы уже реализовали. Хочется следить за ходом работы.
Windows 7 x64 DualCore AMD Athlon 4850e, 2625 MHz ATI Radeon HD 3850, 1Gb 4Gb RAM DDR2
|
|
| |
SpaceEngineer | Дата: Воскресенье, 08.05.2011, 19:03 | Сообщение # 7 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| В этом списке только то, что еще не реализовано. Хотя можно и добавить то, что уже есть.
|
|
| |
Digit1990 | Дата: Вторник, 10.05.2011, 13:09 | Сообщение # 8 |
Исследователь
Группа: Администраторы
Российская Федерация
Сообщений: 260
Награды: 0
Статус: Offline
| Можно ли добавить к каждому пункту ориентировочную дату его реализации?
Per aspera ad Astra
|
|
| |
Digit1990 | Дата: Вторник, 10.05.2011, 13:17 | Сообщение # 9 |
Исследователь
Группа: Администраторы
Российская Федерация
Сообщений: 260
Награды: 0
Статус: Offline
| Неплохо бы промоделировать процессы жизни планет. (Лично я разделяю модель Владимира Ларина. О ней можно прочесть, например, в книге Никонова "Верхом на бомбе".)
Per aspera ad Astra
|
|
| |
SpaceEngineer | Дата: Вторник, 10.05.2011, 19:04 | Сообщение # 10 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| Quote (Digit1990) Можно ли добавить к каждому пункту ориентировочную дату его реализации? Я даже не знаю, что буду есть завтра на ужин, а ты просишь спланировать работу на годы вперёд:) Тем более это творческая работа, нельзя сказать заранее, сколько времени уйдёт на ту или иную систему. Quote (Digit1990) Неплохо бы промоделировать процессы жизни планет. (Лично я разделяю модель Владимира Ларина. О ней можно прочесть, например, в книге Никонова "Верхом на бомбе".) А если вкратце?
|
|
| |
Digit1990 | Дата: Вторник, 10.05.2011, 20:59 | Сообщение # 11 |
Исследователь
Группа: Администраторы
Российская Федерация
Сообщений: 260
Награды: 0
Статус: Offline
| Атомы разных элементов имеют разную склонность к ионизации. И потому одни атомы – с высокой склонностью к ионизации – задерживаются около протосолнца магнитным полем, а другие, у которых склонность к ионизации низкая, улетают свободно. Именно поэтому на периферии Солнечной системы крутятся гигантские газовые пузыри (Юпитер, Сатурн и пр.), а вблизи от Солнца – маленькие «металлические» планеты. Склонность химических элементов к ионизации называют потенциалом ионизации. И если взять табличку с потенциалами ионизации всех элементов таблицы Менделеева, то можно прикинуть, как именно прошла магнитная сепарация вещества, сколько, каких именно элементов и на каком расстоянии от Солнца зависло в разных зонах. Иными словами, из чего потом собрались Земля, Марс, Венера… Но для начала посмотрим, справедлива ли сама эта идея: действительно ли магнитное поле туманности сыграло решающую роль в сепарации химических элементов. Догадку эту легко проверить, поскольку кое-что о составе разных тел Солнечной системы мы знаем. Что же нам известно? 1. Нам очень хорошо известен состав Солнца. 2. Мы знаем, из чего сделана земная оболочка, до глубины примерно 150 км. Пробурилось человечество в глубь планеты пока только на 12 километров, но некоторые обломки пород с гораздо больших глубин у нас есть – их выдавило на поверхность разными геологическими процессами. Мы также знаем, из чего состоит поверхность Луны, поскольку оттуда космическими аппаратами и астронавтами доставлены пробы грунта. 3. Наконец, благодаря метеоритам нам известно, из чего сделан пояс астероидов, который находится за орбитой Марса. Итак, у нас есть три точки. Три зоны. Что ж, для начала неплохо. Откладываем на вертикальной оси относительную распространенность разных химических элементов, а на горизонтальной – их потенциалы ионизации. Все очень просто: для того, чтобы убедиться, что количество того или иного химического элемента зависит от его потенциала ионизации, нам нужно получить на графике линию, не параллельную горизонтальной оси. Посмотрите на графики (рис. 2-4) и убедитесь: распределение элементов в Солнечной системе действительно зависит от потенциала их ионизации. Лишь на одном графике линия параллельна горизонтальной оси – на графике «Земля – Луна». Так и должно быть: обе эти планеты сформировались в одной зоне (на одном расстоянии от Солнца), поэтому их состав совершенно одинаков. ...совершенно непонятно, почему Хойл, высказав свое предположение о влиянии магнитного поля небулы на эволюцию планетной системы, не сделал еще один очевидный шаг – не сопоставил распространенность разных элементов в Солнечной системе в зависимости от расстояния до светила. Вместо него эту нудную работу по скрупулезному сбору материалов и вычерчиванию графиков сделал Владимир Ларин. Результат его настолько поразил, что Ларин решил поделиться своим открытием с… С кем? С коллегами? Но коллеги его были геологами, их мало интересовал космос. Тогда с астрофизиками! Но если вспомнить догадку Хойла, которую доказал Ларин, то все сразу становится на свои места. У золота и платины высокий потенциал ионизации. От них трудно оторвать электрон, поэтому они дольше сохраняют электронейтральность. Соответственно, эти элементы может гораздо дальше протащить через прутья магнитных силовых линий. Их и протащило! Поэтому золота и платины в поясе астероидов (в метеоритах) больше, чем на Земле. Ну сами посудите, что общего у тяжелой, металлической и очень легкоплавкой ртути с углеродом – неметаллическим, легким и тугоплавким? Это ж просто химические антагонисты какие-то!.. Ан нет! Есть у них одно общее! И это общее – потенциал ионизации первого электрона. Именно поэтому такие непохожие друг на друга ртуть и углерод оказались вместе, рядышком – между Марсом и Юпитером. Аналогичная ситуация с серой, осмием, бериллием, иридием… Их в метеоритах полно. А чего в метеоритах мало? В метеоритах мало цезия, урана, рубидия, калия… Они легко ионизируются, легко тормозятся магнитным полем. Поэтому на Земле их больше, чем на Марсе. А на Меркурии их должно быть вообще немерено! Все, вроде, складывается… И, значит, теперь мы можем определить, из чего же на самом деле сделана Земля. Все данные для этого у нас есть. Потенциалы ионизации химических элементов известны. Состав первобытной туманности также знаем – он соответствует составу Солнца. Состав Солнца нам известен прекрасно, за четыре миллиарда лет горения он почти не изменился, разве что часть водорода выгорела и превратилась в гелий. Ну, еще малость лития и бериллия поизрасходовалось – на копейки буквально. А все остальное осталось в первозданной сохранности! Решение задачки – внизу, в таблице. ...водород, стронутый радиоактивным теплом, начал активно выделяться из гидридов. И полетел вверх. Пробки сорваны, шампанское забурлило, природа отмечала день рождения новой планеты, которая росла теперь не по дням, а по часам. Рост Земли показан на трех нижеследующих картинках, которые настолько самодостаточны, что потребуют лишь самых минимальных пояснений. Вверху слева – самая молодая, новорожденная планета, далее – постарше. На верхней правой картинке изображен поздний протерозой (примерно миллиард лет назад). Вверху слева – палеозой (500 миллионов лет назад). Внизу – мезозой (150 миллионов лет назад). Мы видим рост внешнего ядра (3) и металлосферы (2) за счет уменьшения металлогидридного ядра (4). Обратите внимание на движение водорода. При распаде гидридов водород утекает вверх не равномерно по всему объему планеты, а собираясь в струи, словно ручьи и малые речки, собирающиеся в большие реки. Почему это происходит? Потому что водород, как уже говорилось, выносит из зоны распада избыточное тепло. Чем толще водородный поток, тем больше он прогревает зону металлосферы, по которой течет. А с повышением температуры повышается скорость диффузии водорода, то есть увеличивается скорость потока. Медленно текущие тонкие ручейки стремятся к потокам более скоростным точно так же, как вода стремится стечь по более крутому склону, а не по пологому. И постепенно в металлосфере происходит интересная штука. Посмотрите на рисунок максимально раздувшейся Земли. Те зоны, по которым текут к поверхности планеты толстые полноводные водородные реки, становятся зонами пластичными, поскольку водород, как мы помним, повышает пластичность металла – вплоть до того, что он может становиться жидким. А свободные от водородных рек белые места на рисунке – это хрупкие места металлосферы. И значит, здесь она может трескаться при расширении планеты. Здесь и трескается. Вот аккурат посередине между водородными струями внизу возникает и начинает постепенно расти вверх трещина. И что дальше происходит, как вы думаете? Дальше в эту трещину начинает выдавливать пластичный наводороженный металл из «нагазированного» слоя, окружающего внешнее ядро. И когда этот металлический язык додавливает наконец до литосферы, на поверхности планеты начинаются геологические процессы. подробно здесь: Верхом на бомбе. Судьба планеты Земля и ее обитателей
Per aspera ad Astra
|
|
| |
SpaceEngineer | Дата: Вторник, 10.05.2011, 21:54 | Сообщение # 12 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| Странная теория... Откуда водород в ядре Земли? Дело ведь не только в потенциале ионизации, а ещё и в интенсивности ионизирующего излучения, степени ионизаци атомов (оторвать можно и два электрона, и три), массе атомов, плотности солнечного ветра. Как раз легкие и легко ионизирующиеся атомы (водород, гелий) уносит на переферию солнечной системы, а тяжелые нейтральные и почти нейтральные остаюются везде (железо, кремний). Водорода на Земле посчти нет, только тот, что связвн с кислородом (вода). Вообще, скрестить геологическое моделирование и процедурную генерацию - та ещё задачка. А пока я даже не представляю, как должна выглядеть функция от (x,y,z) для линейных структур - горных хребтов, каньонов, трещин, рек.
|
|
| |
Digit1990 | Дата: Вторник, 10.05.2011, 22:18 | Сообщение # 13 |
Исследователь
Группа: Администраторы
Российская Федерация
Сообщений: 260
Награды: 0
Статус: Offline
| Теория очень логичная - объясняет как "движение материков", так и образование нефти и пр. Очень рекомендую не пожалеть времени и прочесть (несмотря на некоторую попсовость изложения). Такой корифей, как Шкловский, ее поддержал. А водород... - смотри график и таблицу (это вообще основной элемент Вселенной).
Per aspera ad Astra
|
|
| |
Aerospacefag | Дата: Воскресенье, 22.05.2011, 20:46 | Сообщение # 14 |
Строитель Миров
Группа: Пользователи
Российская Федерация
Сообщений: 1019
Награды: 3
Статус: Offline
| Я предлагаю более простой и привычный способ реализации литосферы - с использованием современных теорий конвекции магмы. Что-то вроде мозаики из тектонических плит, которые, двигаясь относительно друг друга, создают разные формы рельефа - на более крупных планетах эти процессы активнее, на более мелких - поверхности быстрее остывает и тектонические процессы заканчиваются гораздо раньше. Видео: http://www.youtube.com/watch?v=p0dWF_3PYh4 Статья из недавнего Вокруг Света: http://www.vokrugsveta.ru/vs/article/431/ Еще кое-что на английском: http://www.lpi.usra.edu/science/kiefer/Research/convection.html http://www.lpi.usra.edu/science/kiefer/Research/mars.html http://serc.carleton.edu/NAGTWorkshops/deepearth/visualizations/mantle_conv.html
Win7 Intel Core i5-2310 2.9 Ghz 4 Gb DIMM DDR3 Asus GeForce GTX760, 2 Gb GDDR-5
|
|
| |
SpaceEngineer | Дата: Понедельник, 23.05.2011, 01:52 | Сообщение # 15 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| Это всё хорошо, но как это сделать на процедурных планетах? У функции генерации высоты вершины поверхности есть только одна величина на входе - координаты точки (x, y, z). У генератора цвета есть ещё высота и наклон (или нормаль), получается из предыдущей функции. Можно получить ещё какие угодно дифференциальные величины, но лучше не увлекаться, это всё жрёт производительность. Можно задать как параметр шейдера несколько единичных уникальных точек - например координаты центра циклона для генератора облаков. Но вот с материками или климатом как быть? Нельзя получить расстояние до ближайшего берега, непонятно как задавать горный хребет или разлом...
|
|
| |