Добавил поддержку океанид - планет, почти целиком состоящих из воды, или имеющих глобальный океан глубиной несколько сотен км. Технически, это те же терры (землеподобные планеты с водой), только без материков. Также сделал ледяные полярные шапки более рельефными. Теоретически, если океанида достаточно холодная, её поверхность может замёрзнуть целиком, и планета превратится в подобие Европы - спутника Юпитера, покрытого льдом, под которым находится жидкий океан. С этой точки зрения ледяные спутники планет-гигантов (и вообще ледяные планеты) можно назвать "замёрзшими океанидами", или наоборот, океаниды можно называть "горячими ледяными планетами". Границей между этими двумя классами можно считать наличие открытой водной поверхности.
Вид типичной океаниды из космоса с облаками, без облаков, и вид с поверхности с границы полярной шапки (все изображения на этой странице имеют красноваты оттенок, т.к. получены в системах красных карликов):
Более интересные планеты - приливно синхронизованные со своим солнцем, т.е. всегда обращённые к солнцу одной стороной, как Луна к Земле (по-научному это называется спин-орбитальный резонанс 1:1). Такое возможно, если планета находится достаточно близко к солнцу, чтобы солнечные приливы смогли затормозить её вращение. Чаще всего это встречается в системах красных карликов, т.к. системы компактные, а светимость красного карлика низка, и планеты могут располагаться близко к нему и при этом оставаться довольно холодными.
На планете, приливно синхронизованной с солнцем, на одной стороне вечный день, а на другой вечная ночь. Если у планеты нет атмосферы, то летучие вещества с дневной стороны могут испариться и осесть на ночной слоем снега. Если атмосфера планеты очень разрежена, она также может целиком замёрзнуть на ночной стороне.
Гораздо интереснее климат планет с плотной атмосферой. Согласно моделям, в атмосфере возникает особая циркуляция - нагретый воздух в центре дневного полушария поднимается вверх, и движется в сторону ночного полушария, где остывает и опускается вниз, чтобы потом вернуться на дневное полушарие. В результате у поверхности постоянно дуют ураганные ветры в направлении "горячего полюса" планеты, а вокруг него образуется мощный вечный циклон. Если у планеты есть океаны, то они могут замёрзнуть на ночной стороне, но не до самого дна - этому будут препятствовать тёплые течения.
На планетах с очень плотной атмосферой климат будет другой. Плотная атмосфера эффективно переносит тепло, так что климат планеты будет сглажен, и почти не будет отличия между дневной стороной и ночной. Циркуляция атмосферы будет напоминать венерианскую суперротацию - вся атмосфера будет как бы обращаться вокруг планеты как единое целое, и гораздо быстрее периода вращения самой планеты.
Вид землеподобной планеты из космоса с облаками, без облаков, и вид с поверхности:
Океаниды тоже могут быть приливно-синхронизованы. Аналогичная серия скриншотов:
Лучше пусть генерируются текстуры параллакса для гор - чем реальная геометрия - тобишь теоретически уменьшение числа октав при генерации горной геометрии планеты ускорит отображение поверхности. Всё таки современные карты быстрее обрабатывают текстуры чем геометрию , я имею в виду не топовые - тем вообще ничего не страшно )) Очень грубо говоря -я уверен что в 10 раз быстрее отрендерится 50-ти полигонная пирамида с мультитекстурами чем реально сгенирированная гора с честной геометрией , так-же можно тонко подстроить лоды и отсечение невидимых полигонов что глаз не заметит, и например сэкономленные ресурсы вложить в "наполнение" окружающей среды "живых" планет, например генерация фрактальной растительности, рандомная с внешней точки зрения инопланетная жизнь в зависимости от того холодная или горячая планета, так-же технологическая эволюция от того - старая или молодая планета, ну и т.п.)) - если так будет для меня это будет лучшей игрой в истории ИГР. Конечно у вас очень сложная работа , столько всяких факторов которые нужно сделать в симуляторе которые я прочитал в TODO , я желаю вам удачи , если бы я был программистом то помог бы эх жаль я ненавидил математику в школе((
Геометрия и так генерируется через текстуры. Т.е. сначала генерируется текстура 256*256 потом по ней создаётся меш 33*33 (не один, а целое поддерево). Генерация долго идёт, да, но это из-за неоптимальности самого движка (чтобы сгенерировать детальный уровень, нужно сначла сгенерировать все вышележащие уровни). Уменьшение числа октав влияет на скорость генерации текстуры на какие-то доли процента (проверено). Рендер той геометрии, что получается, вроде достаточно быстрый, сотни fps, разве не так? "Текстуры параллакса" - это что вы имеете в виду? Перейти на отображение рельефа методом трассировки луча (ray casting - развитие parallax mapping)? Я думал над этим, и планирую в будущем сделать. Тогда вообще не нужны будут меши, детализация гор сразу будет с пиксельной точностью, да и производительность на топовом железе будет выше. А вот на среднем железе может вообще не пойти, так что такой движок будет как второй вариант.
@SpaceEngineer я просто написал в конфиге AnisotropyLevel 16 VideoMemorySize 512 VideoMemoryMaxPercent 75 VideoMemoryStartupDetect true VideoMemoryDynamicDetect false (после манипуляций выше почти перестало падать) TRMaxImpostors 13 TRSkyResolution 2.0 PlanetRingsSubdiv 20 PlanetDetailCraters 0.01 PlanetDetailTerra 0.002 PlanetMagnLimit 9.0 StarMagnLimit 7.0 GalaxyMagnLimit 7.6 Всё стало очень красиво но только для снятия скриншотов Наверно по этому фпс проседает до 9 когда на планете,а когда в космосе то в принципе нормально, а ещё есть подозрение что ресурсы не выгружаются из памяти или выгружаются но недостаточно быстро при подлёте к другой планете, У меня поверхность генерируется со скоростью рендера в 3D максе )) тоесть нужно оставить камеру на 2 минуты в одном положении и только тогда получится картинка а если изменить fov в этот момент то весь ландшафт исчезнет , а ещё отключение облаков удивительным образом сказывается на производительности!! А про "Текстуры параллакса" я имел в виду шейдер который создаёт иллюзию обьёма в зависимости от точки обзора, а поверхность плоская - тем самым экономя геометрию - вот пример http://wiki.polycount.com/ParallaxMap?action=AttachFile&do=get&target=oblivion_parallax_06B.jpg и с этим можно уже думать что сделать. Более того процедурные текстуры автоматически генерируют для себя такую текстуру с бесконечными уровнями детализации. Вообщем поверхность станет красивее в близи от камеры.
Лучше бы это всё обсуждать на форуме. Низкая производительность рендера скорее всего от слабого железа. Parallax occlusion экономит то геометрию, но требует мощной видеокарты, т.к. всё перекладывается на пиксельный шейдер. В будущем я планирую полностью перейти на трассировку луча (дальнейшее развитие параллакс маппинга) и deferred shading. Кстати, даже сейчас геометрия съедает в 20 раз меньше, чем текстуры, так что это копеечный выигрыш. Но по детализации - да, выигрыш будет, правда на мощном железе.
Вы что, собираетесь просто накладывать на сферу текстуру с параллаксом? Как же тогда вблизи рассматривать ландшафты, не проваливаясь сквозь полигон? Хотя в игре и так зачастую проваливаешься в полигон. Могу даже показать скриншот, если понадобится. Кстати, о воде - почему она такая некачественная (не видно ни волн, ни отражений, ничего; просто отражается свет на поверхности) или это только у меня так?
Это очень круто, даже не верится что есть такой движок и проект! Удивляюсь как вас ещё не наняли на работу в какой-нибудь Google maps. Срочно делайте игру - какой-нибудь космосим с возможностью исследовать планеты.
Благодарю за пробуждение!)) Ваша программа меняет мировоззрение. Когда смотришь на всё это, летаешь между звёздами и галактиками, суета меркнет перед вечностью и масштабностью Мира)