Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Обработка чанков в майнкрафте

Dmitry Alexeev Ученик (175), закрыт 3 года назад
Что за обработка чанков? Есть потоковая, по событию, блокирующая. Для чего она нужна? Зачем ее придумали? Как она работает? Скажите плиз
Лучший ответ
АІ (Александръ Івановъ) Просветленный (41363) 3 года назад
При размещении и ломании блоков, а также при загрузке новых видимых чанков игра должна обновлять 3D-модель местности, которая видна игроку.
Эта настройка отвечает за алгоритм, используемый игрой в процессе пре-рендеринга для "компиляции" в единую 3D-модель местности блоков в чанках, изначально существующих лишь в виде строчек данных. Сгенерированная модель впоследствии передаётся графическому процессору для визуализации (создания картинки).

В 1.18 таких алгоритма 3:

• Потоковый
Алгоритм использует асинхронное построение 3D-модели в нескольких потоках, чтобы ускорить процесс обработки. Из-за того, что алгоритм параллельно (одновременно отдельно друг от друга) в разных потоках обрабатывает разные данные, вычисления могут выполняться с разной скоростью. Результат вычислений в одном потоке отправляется на ГП немедленно, не дожидаясь завершения остальных (они откладываются на следующий кадр), из-за чего модель местности может создаваться не полностью, приводя к визуальным дырам на месте некоторых чанков, однако устраняется проблема долгого ожидания завершения обработки всех обновлений. Визуальные дыры – кратковременный эффект, так как рано или поздно модель всё же будет сгенерирована и отрисована. Особенно это заметно при быстрой загрузке чанков.
Это самый быстрый алгоритм из предоставленных.
Примерно такой же используется в моде Sodium ещё со времён 1.16.1 (и dev-сборок на 1.15), но там он не вызывает визуальных багов.

• По событию
Каждый новый размещённый или сломанный блок приводит к необходимости перестроения модели местности. Если предыдущий алгоритм позволял не дожидаться завершения процесса построения модели, этот вариант будет ожидать завершения обновления всех размещённых игроком блоков, однако изменение блоков вдали будет второстепенным, как в предыдущем варианте. Именно отложенные обновления дальних блоков и могут приводить к визуальным дырам.

• Блокирующий
Правильнее было бы перевести как "принудительный". Этот алгоритм идентичен тому, что использовался игрой ранее (до снапшота 21w37a). Он не использует многопоточность для ускорения процесса (по крайней мере, раньше не использовал точно) и не отправляет модель местности на рендеринг до тех пор, пока не будет сформирована вся модель. Это довольно медленный алгоритм, однако самый бесшовный, который не вызывает визуальных багов.

Исходя из вышеперечисленного – юзайте Sodium и не парьтесь над проблемами оптимизации.
Остальные ответы
Глеб Шаповалов Ученик (161) 3 года назад
Чё непонятно? Генерируются чанки и погружаются текстуры
Похожие вопросы