Sodium Core Shader Support avatar

Sodium Core Shader Support [1.21.6] [1.20.6]

Sodium Core Shader Support

Позволяет ресурспакам заменять шейдеры Sodium своими собственными, аналогично тому, как ресурспаки могут заменять базовые шейдеры vanilla.

Документация для пользователей

Sodium Core Shader Support позволяет ресурспакам заменять базовые шейдеры Sodium своими собственными. Это не означает, что данный мод заставит работать любой vanilla ресурспак на Sodium. Ресурспаки будут работать только в том случае, если они явно указывают совместимость с Sodium Core Shader Support.

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

Некорректный ресурспак

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

Список ресурспаков

Небольшой список ресурспаков, работающих с Sodium. Если вы создали собственный ресурспак, создайте issue на GitHub для добавления в список!

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

Важно понимать, что ваши vanilla шейдеры нельзя просто скопировать в шейдеры 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 используется для всех блоков и block entity. В vanilla Minecraft эквивалентом являются terrain.fsh и terrain.vsh (в старых версиях — rendertype_solid, rendertype_cutout, rendertype_cutout_mipped, …).

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

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

Их можно использовать следующим образом:

#ifdef RENDER_PASS_SOLID
    // специальное затенение для сплошных объектов
#endif

Указание поддерживаемых версий Sodium

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

{
  "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 должен содержать объект JSON с ключом supported-versions. Значение supported-versions должно быть картой, сопоставляющей версии Minecraft с массивом допустимых версий Sodium. Мод SodiumCoreShaderSupport проверит, установлена ли версия 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). Эти файлы должны содержать основную «логику» шейдера. Пример шейдерпака, работающего с этим подходом как на vanilla, так и на Sodium, можно найти здесь.

Требуемые зависимости

Sodium avatarSodiumJellySquid

Скачать Sodium Core Shader Support

 
Тип Скачать Версия Загрузчик Обновлено Размер
Release1.3.3-sodium0.6.12-fabric-1.21.51.21.5Fabric27 марта 202542,9 КБ
Release1.3.3-sodium0.6.12-neoforge-1.21.51.21.5NeoForge27 марта 202541,6 КБ
Release1.3.2-sodium0.6.11-neoforge-1.21.51.21.5NeoForge25 марта 202541,6 КБ
Release1.3.2-sodium0.6.11-fabric-1.21.51.21.5Fabric25 марта 202542,9 КБ
Release1.3.1-sodium0.6.9-fabric-1.21.11.21.1Fabric12 марта 202542,9 КБ
Release1.3.1-sodium0.6.9-neoforge-1.21.11.21.1NeoForge12 марта 202541,6 КБ
Release1.3.1-sodium0.6.9-fabric-1.21.31.21.2+1 Fabric12 марта 202542,9 КБ
Release1.3.1-sodium0.6.9-neoforge-1.21.31.21.3NeoForge12 марта 202541,6 КБ
Release1.3.1-sodium0.6.10-fabric-1.21.41.21.4Fabric12 марта 202542,9 КБ
Release1.3.1-sodium0.6.10-neoforge-1.21.41.21.4NeoForge12 марта 202541,6 КБ
Пожалуйста авторизуйтесь, чтобы оставить свой комментарий.