Вышел пятый снапшот версии 26.3 - Minecraft Snapshot 26.3-snapshot-5. Как и предыдущие тестовые сборки, этот снапшот содержит преимущественно технические доработки и исправления ошибок. В этом обновлении разработчики обновили версии датапака и ресурспака, внесли изменения в генерацию склок-пятен, переработали систему компиляции шейдеров и исправили множество багов, накопившихся с предыдущих версий.
Технические изменения
В снапшоте 26.3-snapshot-5 обновлены версии форматов датапаков и ресурспаков:
- Версия датапака теперь - 112.0.
- Версия ресурспака - 93.0.
В датапаке версии 112.0 изменен codec для списков и тегов элементов. Теперь стало возможным смешивать встроенные значения и прямые ссылки в одном списке. Например, модификаторы предметов теперь можно указывать как [{type:set_count, ...}, "minecraft:some_modifier"]. Это упрощает написание пользовательских функций и датапаков, так как разработчики больше не ограничены строгим форматом.
Изменения в генерации мира
В генерации мира затронута одна структура - склок-пятно (minecraft:sculk_patch). Из описания sculk_patch удалены два поля: extra_rare_growths и catalyst_chance. Ранее эти поля управляли появлением редких ростков склока и шансом появления катализатора склока. Разработчики, вероятно, сочли эту механику излишней или планируют переработать её в будущих версиях. Таким образом, теперь склок-пятна генерируются без этих параметров, что может упростить их поведение.
Изменения в работе шейдеров и рендеринга
Ресурспак версии 93.0 принёс несколько значительных изменений в системе шейдеров и пост-эффектов, связанных с Order-independent Transparency (OIT).
Переименование define
Макрос B3D_IS_ZERO_TO_ONE переименован в RENDERPEARL_IS_ZERO_TO_ONE. Это может затронуть пользовательские шейдеры, которые использовали старый макрос - их необходимо обновить.
Компиляция шейдеров
- Шейдеры теперь компилируются с помощью ShaderC при использовании OpenGL, так же как и при Vulkan. Это унифицирует процесс компиляции.
- Включения шейдеров теперь обрабатываются ShaderC с помощью директивы
#includeвместо#moj_import. Это стандартный подход, облегчающий поддержку. - Входные и выходные переменные шейдеров должны явно указывать location в исходном коде. Имена вершинных входов по-прежнему должны соответствовать ожидаемым именам, но выходы вершинного шейдера теперь сопоставляются с входами фрагментного шейдера исключительно по location, имя игнорируется.
- Добавлен новый макрос
RENDERPEARL_INSTANCE_INDEX_INCLUDES_BASE_INSTANCE- булево значение, указывающее, следует лиgl_InstanceIndexсемантике Vulkan или OpenGL (gl_InstanceID).
Примечание разработчиков: В предыдущих версиях с OpenGL для вершинных входов нельзя было указывать location. Совместимость можно сохранить, указывая location только при определённом макросе "VULKAN".
Примечание разработчиков: Раньше выходы вершинного шейдера и входы фрагментного сопоставлялись по имени. Совместимость можно сохранить, продолжая использовать одинаковые имена.
Эти изменения направлены на унификацию работы с шейдерами под разными графическими API (OpenGL и Vulkan) и улучшение переносимости пользовательских шейдеров.





