▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/Sodium Core Shader Support
Sodium Core Shader Support

Sodium Core Shader Support

Мод, который позволяет ресурспакам заменять шейдеры Sodium, как в ванильном Майнкрафт. Нужен для совместимости шейдеров с Sodium на Fabric.

Оцените первым
736.5K
317

Sodium Core Shader Support

Sodium Core Shader Support - это небольшой, но крайне полезный мод для Майнкрафт на Fabric. Он решает одну конкретную проблему: позволяет ресурспакам (текстурпакам) заменять шейдеры Sodium, точно так же, как они могут заменять ванильные шейдеры в обычном Майнкрафт.

По сути, это прослойка, которая открывает доступ к внутренним шейдерам Sodium для ресурспаков. Без этого мода, даже если у вас есть крутой ресурспак с кастомными шейдерами, он просто не сработает на Sodium. А с ним - всё как по маслу.

Для пользователей

Sodium Core Shader Support даёт возможность ресурспакам подменять шейдеры Sodium своими собственными. Но это не значит, что любой ванильный ресурспак вдруг заработает на Sodium. Ресурспак должен быть явно совместим с этим модом - обычно об этом пишут в описании.

Если вы используете поддерживаемый ресурспак, просто активируйте его как обычно - через меню ресурспаков в игре. Никаких дополнительных телодвижений не нужно.

Несовместимость с ресурспаками

Sodium может показывать сообщение The following resource packs are incompatible with Sodium в правом верхнем углу после перезагрузки ресурсов. Это нормально. Сообщение будет появляться всегда, даже если ресурспак поддерживает Sodium Core Shader Support. Просто игнорируйте его.

Список совместимых ресурспаков

Вот несколько ресурспаков, которые уже работают с Sodium Core Shader Support:

Если вы создали свой ресурспак и хотите добавить его в этот список - откройте issue на GitHub.

Для разработчиков шейдеров

Важно понимать: ваши ванильные шейдеры нельзя просто скопировать в Sodium. У Sodium своя структура шейдеров для блоков и облаков:

- assets/sodium/shaders/
   | - clouds.fsh
   | - clouds.vsh
   | - blocks/
        | - block_layer_opaque.fsh
        | - block_layer_opaque.vsh
   | - include/
        | - fog.glsl 
        | - chunk_material.glsl
        | - chunk_matrices.glsl
        | - chunk_vertex.glsl

Если вы не собираетесь менять облака Sodium, то block_layer_opaque - это то, с чем вы будете работать чаще всего. Файлы chunk_material.glsl, chunk_matrices.glsl и chunk_vertex.glsl лучше не трогать без необходимости.

Как получить исходники шейдеров Sodium

Чтобы достать исходный код шейдеров для конкретной версии Sodium, скачайте .jar файл этой версии и распакуйте его как обычный .zip архив. Внутри найдёте папку assets с нужной структурой.

block_layer_opaque

Шейдер block_layer_opaque используется для всех блоков и сущностей-блоков. В ванильном Майнкрафт аналог - terrain.fsh и terrain.vsh (в старых версиях это были rendertype_solid, rendertype_cutout, rendertype_cutout_mipped и т.д.).

Sodium Core Shader Support добавляет несколько defines в шейдеры block_layer_opaque.fsh и block_layer_opaque.vsh для разных типов блоков:

  • RENDER_PASS_SOLID: Твёрдые блоки
  • RENDER_PASS_CUTOUT: Блоки вроде листьев, травы, стекла...
  • RENDER_PASS_TRANSLUCENT: Блоки с реальной прозрачностью, например вода, мёд, слизь...

Также, начиная с версии 1.3.8 для Minecraft 1.21.2+, во всех шейдерах будет присутствовать define SODIUM_CORE_SHADER_SUPPORT. Использовать их можно так:

#ifdef RENDER_PASS_SOLID
    // особый шейдинг для твёрдых блоков
#endif

Uniform GameTime

Начиная с версии 1.4.0, в block_layer_opaque.fsh и block_layer_opaque.vsh доступен uniform u_GameTime. Работает как ванильный GameTime uniform. Добавляется в шейдер так:

uniform float u_GameTime;

Uniform SunAngle

Начиная с версии 1.5.0, в тех же шейдерах появился uniform u_SunAngle. Возвращает угол солнца из атрибутов окружения в радианах. Используется так:

uniform float u_SunAngle;

Как указать поддерживаемые версии Sodium

Разработчики Sodium могут менять свои внутренние шейдеры без предупреждения. Поэтому важно указать, с какими версиями Sodium и Minecraft совместим ваш пак. Для этого создайте файл versions.json в папке assets/sodiumcoreshadersupport внутри вашего ресурспака. Пример содержимого:

{
  "supported-versions": {
    "1.21": [ "0.5.11+mc1.21" ],
    "1.21.1": [ "0.5.11+mc1.21" ]
  }
}

В этом примере пак заявляет совместимость с Sodium 0.5.11 на Minecraft 1.21 и 1.21.1. Более формально: versions.json должен содержать объект с ключом supported-versions. Значение - карта, где ключи - версии Minecraft, а значения - массивы разрешённых версий Sodium. Мод проверяет, есть ли установленная версия Sodium в массиве для текущей версии Minecraft.

  • Если версия Minecraft или Sodium не указана в supported-versions, пак можно активировать с предупреждением.
  • Если у пользователя нет Sodium, пак можно активировать.
  • Если файл versions.json отсутствует, пак можно активировать с предупреждением.
  • Если файл versions.json повреждён, пак можно активировать с предупреждением.

Импорты

Шейдеры Sodium должны лежать в папке assets/sodium/shaders. Но вы можете импортировать файлы из assets/minecraft/shaders с помощью директивы #import. Например, следующий код подключит файл assets/minecraft/shaders/include/test.glsl:

#import <minecraft:include/test.glsl>

Этот трюк позволяет создавать свои glsl-файлы с основной логикой шейдера и импортировать их как в ванильные шейдеры, так и в шейдеры Sodium.

Отключение culling'а (отсечения)

Начиная с версии 1.5.0, можно отключить frustum и backface culling в Sodium через versions.json. Это полезно для шейдеров, которым нужна геометрия за пределами экрана или которые трансформируют вид в block.vsh (например, для теней или альтернативного вида от лица игрока).

{
  "supported-versions": { "1.21.11": ["0.8.7+mc1.21.11"] },
  "disable-frustum-culling": true,
  "disable-backface-culling": true
}

Благодарности

Спасибо MR-CHOO за добавление SunAngle Uniform и опции отключения frustum и backface culling.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

26.1.x1.21.x1.20.x

Платформы

Поддерживаемые окружения

Клиент

Зависимости

Ссылки


Создатели

Детали

Лицензия:
Опубликован:2 года назад
Обновлён:3 недели назад
Главная