Metron v0.1.0-dev.14
Список изменений
0.1.0-dev.14
Новое 9
-
Дальний ландшафт (Distant Horizons)
За обычной дальностью прорисовки мир больше не обрывается стеной тумана: на горизонте рисуется упрощённый рельеф. По умолчанию дальность LOD —32чанка, качество — «Баланс (2-4x)»; оба параметра можно сменить в паузе (Esc→ «Настройки» → «Графика»). -
Слайдер «Дальность LOD (Distant Horizons)»
В «Настройки» → «Графика» добавлен слайдер с шагамиВыкл,24 chunks,32 chunks,48 chunks,64 chunks. ЗначениеВыклполностью отключает дальний горизонт; выбранное значение пишется вsettings.ronи поднимается при следующем запуске. -
Кнопка «Качество LOD»
Рядом со слайдером — переключатель пресетов:Быстрое (4x),Баланс (2-4x),Высокое (2x). «Быстрое» рисует весь дальний пояс с шагом 4 блока (грубее, дешевле), «Высокое» — с шагом 2 блока на всей LOD-дистанции, «Баланс» — шаг 2 в переходной зоне и шаг 4 у самого горизонта. -
Только поверхность на дальних чанках
За пределами обычной дальности прорисовки генерируется и рисуется один вертикальный слой поверхности, без подземных пещер и пустого неба. Дальний горизонт почти не расходует память, но издалека вы не увидите пещеры и глубокие разрезы — они появятся, когда чанк войдёт в обычную дальность. -
Удержание дальнего горизонта при выгрузке
Подземные секции за кругом прорисовки выгружаются, а поверхностные LOD-меши остаются до выбранной «Дальности LOD». При развороте и коротких отходах от базы дальний рельеф не пропадает целиком и не строится заново с нуля. -
Туман подстраивается под LOD
Если LOD включён и дальше обычной прорисовки, горизонтный туман (пункт «Туман» в той же вкладке) растягивается до LOD-дистанции: дальние чанки плавно растворяются в небе, без резкого обреза геометрии. В глубоких пещерах туман по-прежнему отключается, чтобы швы не серели. -
Подробный фреймтайм по F3+F
Пока открыт оверлейF3, зажмитеF3и нажмитеF— переключится подробный режим. В списке комбинаций F3 появилась строкаFrametime [F3+F]: ON / OFF. Само по себеF3(без второй клавиши) по-прежнему только показывает или прячет весь оверлей. -
Пункт «Фреймтайм (F3+F)» в настройках
Тот же переключатель есть в «Настройки» → «Графика»; он синхронизирован сF3+Fи сохраняется вsettings.ron. По умолчанию подробный режим выключен. -
Развёрнутая строка FPS в F3
В обычном режиме оверлей показывает короткоеFPS: 144. С включённым фреймтаймом — две строки видаFPS: 144 (avg)иFrametime: 6.9 ms (min: 5.8, max: 8.9, 1% low: 122 fps): среднее за последнюю секунду, разброс кадра и «1% low» (насколько проседают самые тяжёлые кадры).
Исправления 14
-
Дырка от удара в том же кадре
Сломанный блок больше не висит на экране несколько кадров (раньше мог оставаться секундами). Клетка сразу прячется шейдером, а настоящий меш чанка пересобирается в фоне и подменяет «дыру», когда готов. -
Копание без фриза на клике
В момент удара игра больше не пересобирает и не заливает на видеокарту весь чанк целиком. Раньше один удар давал заметный стоп кадра (~110–140 мс); теперь на клике только скрытие блока, без тяжёлой синхронной пересборки. -
Дырка больше не ждёт секундами в очереди
Результат копания обрабатывается раньше подгрузки новых чанков на горизонте. Соседние чанки и подсветка границ больше не «выталкивают» готовую дырку из очереди, поэтому земля не остаётся целой, пока вокруг догружается ландшафт. -
Блоки не мерцают и не возвращаются при быстрой добыче
Можно ломать подряд: уже разбитые клетки не всплывают обратно, когда игра догоняет пересборку меша. Одновременно в скрытом состоянии может быть до 32 клеток (раньше хватало четырёх — при серийном копании старые дырки вытеснялись и блоки «оживали»). -
Новые удары не снимают чужие дырки
Когда доезжает меш «со старого» удара, игра снимает скрытие только с тех блоков, которые реально вырезаны из этой пересборки. Клетки, разбитые уже после старта этой задачи, остаются дырками. -
Быстрое копание не выбрасывает готовые меши
Промежуточные пересборки того же места применяются по мере готовности, а не отбрасываются из‑за следующих ударов. Слоты скрытых блоков освобождаются сразу, и очередь не копится вхолостую. -
Пустой чанк после зачистки исчезает
Если вы выкопали все блоки секции (куб 16×16×16), старая геометрия и временные «заплатки» дырок снимаются, а не висят пустым каркасом в воздухе. -
Нет сквозного x-ray на секунды после удара
Раньше шейдер вырезал не только сломанный блок, но и новые грани соседей — несколько секунд можно было смотреть сквозь землю, пока не приедет пересборка. Теперь грани соседа, которые смотрят в дырку, остаются на месте. -
Стенки дырки сразу закрывают просвет
В кадр удара подставляются тонкие грани соседних блоков (до 6 штук), чтобы в отверстие не было видно небо и дальние пещеры. Эти заплатки снимаются вместе со скрытием блока, когда чанк применил новый меш. -
Удар не теряется, если чанк ещё пересобирается
Если вы бьёте по секции, которая уже в работе, запрос на новую дырку больше не пропадает. Следующая пересборка встанет в очередь и доедет. -
Падение FPS до нуля при массовой подгрузке
Раньше при дальности 16–24 чанка мир не успевал выгружать старое: накапливалось больше 15 000 секций и 21 000 сущностей, отсечение камеры захлёбывалось, кадр падал до 0–15. Радиус выгрузки сужен, по высоте лишние слои снимаются; активных сущностей секций обычно около 2 000–2 800, и FPS больше не обнуляется на ровном месте. -
Вертикальная выгрузка лишних слоёв
Небо над головой и глубокий камень вдали больше не висят вечно. Дальше обычной прорисовки остаётся в основном поверхность горизонта, а не вся колонна мира. -
Честный FPS в оверлее F3
Счётчик больше не скачет хаотично от кадра к кадру. Среднее считается по скользящему окну примерно в 1 секунду (число кадров / время окна), а не по короткому буферу движка и мгновенному1 / dt. -
Цифры FPS не мельтешат
Текст в оверлее обновляется примерно 3 раза в секунду (каждые0.33с), поэтому глаза не цепляются за дрожащие единицы.
Улучшения 20
-
Плавная подмена меша после удара
Когда пересборка чанка готова и набор слоёв тот же (непрозрачный / детали / вода), геометрия перезаписывается на месте, без полного снятия и спавна чанка. После копания меньше вспышек и микрофризов, чем при полной пересоздании куска мира. -
Трава и вода не пересобирают весь чанк
Если изменились только растительность или вода, непрозрачный слой патчится на месте. Распространение травы и рябь воды меньше дёргают картинку. -
Один чанк пересборки за кадр
Готовые меши после правок мира применяются по одному за кадр (раньше до шести). Кадр ровнее, даже если вы копаете или рядом растёт трава. -
Подгрузка мира не бьёт по кадру удара
В тот же кадр, когда вы ломаете блок, игра не заливает на видеокарту свежие стрим-чанки. Дырка всё равно применяется, как только воркер её собрал; горизонт подождёт следующий кадр. -
Короткий «отдых» стрима после удара
Сразу после копания подгрузка дальних чанков чуть придерживается, чтобы видеокарта не получила и дырку, и пачку новых ландшафтов в одном кадре. Копаете — картинка приоритетнее догрузки горизонта. -
Свет после копания догоняет дырку
Солнечный свет пересчитывается вместе с фоновой пересборкой того же чанка. Тени и пятна солнца в раскопе обновляются, а не зависают «как было до удара», потому что очередь освещения больше не выкидывается в пользу соседних чанков. -
Трава не мешает копать
Случайные тики травы и кактусов пропускаются после тяжёлого кадра (дольше ~28мс), если очередь пересборки уже большая или мир только что получил удар. За один тик в очередь уходит не больше 4 секций с такой симуляцией — копание не зарастает очередью «трава обновилась». -
Клиентский тик 20 раз в секунду
Фиксированное обновление мира на клиенте совпало с сервером (20Гц), а не с прежними ~64 тиками движка. В одиночной игре трава, кактусы и печи больше не «крутятся» втрое быстрее сервера и не раздувают очередь перерисовки чанков. -
Симуляция блоков только вокруг игрока
В одиночной игре случайные тики идут в сетке ±8 секций по XZ и ±4 по высоте (примерно ±128 блоков по горизонтали и ±64 по вертикали), а не по всем загруженным чанкам. Трава увядает и расползается, кактусы растут — рядом с вами; дальняя загруженная местность не живёт сама по себе и не отнимает кадры. -
Меньше копирования текстурных карт каждый кадр
Атлас блоков, CTM-склейка соседних текстур и таблица свечения больше не клонируются целиком на каждый кадр стриминга. Подгрузка и пересборка чанков дешевле — ровнее FPS при полёте и копании, особенно с ресурс-паками. -
Фоновые потоки не душат игру
И генерация, и пересборка чанков берут примерно половину ядер процессора (от 3 до 8 потоков), а за кадр планируется не больше 4 новых задач генерации. Главный поток успевает рисовать кадр, а не ждёт, пока все ядра заняты вокселями. -
Генерация паузится, пока идёт копание
Если после удара стрим на паузе, очередь пересборки раздулась или воркеры уже заняты, новые секции не стартуют пачкой «8 генераций + 8 пересборок». Во время добычи горизонт может догонять чуть медленнее — зато удары не превращаются в фриз. -
Мягче бюджет заливки чанков на кадр
За кадр на экран попадает до 4 секций (до 6, если очередь большая), с лимитом времени и вершин, чтобы драйвер видеокарты не спотыкался на гигантском меше. Полёт в новую местность даёт меньше пиков и зависаний кадра. -
Быстрее шум ландшафта
Расчёт 2D/3D-шума высот и биомов переиспользует хеш сида и считает нормализацию умножением, а не делением на каждой точке. Новые миры и незнакомые чанки появляются заметно быстрее, с меньшими просадками при первом заходе в область. -
Глубокий бедрок без поблочного обхода
Секции ниже примерно Y = −64 сразу заполняются бедроком целиком. Спуск в нижние слои и первая генерация дна мира не перебирают каждый блок. -
Бедрок не проверяется на поверхности
В обычных поверхностных секциях игра больше не гоняет проверку «не бедрок ли это» на миллионах клеток. Верхний мир генерируется быстрее при той же картинке. -
Деревья, кактусы и декорации без повторного шума
Высота и биом колонки берутся из кэша, а не считаются заново на каждый цветок, валун, колодец или упавшее бревно. Поверхность зарастает быстрее при той же раскладке декораций. -
Редкие деревья отсекаются до тяжёлого соседа
Сначала проверяется случайный отбор кандидата, и только потом считаются биомы соседей в радиусе 5×5. Леса и равнины генерируются быстрее без изменения плотности посадки. -
Цвет травы и листвы из кэша биома
Оттенок травы и листвы на чанке берётся из уже посчитанных биомов колонки, а не из сотен повторных проходов климата. Меши поверхности собираются быстрее, меньше пауза, когда чанк впервые появляется. -
Высоты неба для меша из кэша колонки
Открытое небо и соседние колонки для освещения/окклюзии больше не пересчитывают высоту поверхности десятками вызовов шума на каждую секцию. Подгрузка видимого рельефа дешевле при том же силуэте гор.
Важно 3
-
LOD включён с завода
Если вы не трогали графику, дальний горизонт уже работает (32чанка, «Баланс»). Чтобы вернуть жёсткую границу обычной прорисовки, поставьте «Дальность LOD» вВыкл. -
Дальний пояс — схематичный
За кругом обычной прорисовки нет воды, детальных моделей и пещер: это силуэт суши. Океан, деревья «как вблизи» и подземелья появятся, когда вы подойдёте на дистанцию прорисовки. -
Симуляция мира — одиночная игра и рядом с вами
Трава, земля и кактусы тикают только в одиночной сессии и только в окрестности игрока. Печи в SP тоже идут в ритме 20 тиков в секунду, как на сервере.
Игра и обновления ставятся через Metron Launcher — на сайте только история изменений. Рецепты этой версии >