Sodium Core Shader Support avatar

Sodium Core Shader Support [1.21.10] [1.20.6]

Sodium Core Shader Support

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 core шейдеры, и его можно игнорировать.

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

Это небольшой список ресурспаков, которые работают на 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 для конкретной версии sodium, скачайте файл .jar этой версии и извлеките его как архив .zip. Внутри извлеченного архива вы найдете папку assets, содержащую упомянутую выше структуру каталогов.

block_layer_opaque

block_layer_opaque используется для всех блоков и block entities. Эквивалент в vanilla Minecraft — это terrain.fsh и terrain.vsh (в более старых версиях Minecraft эквивалентом являются rendertype_solid, rendertype_cutout, rendertype_cutout_mipped, …).

Кроме того, sodium core shader support добавляет несколько определений в шейдеры sodium block_layer_opaque.fsh и block_layer_opaque.vsh для некоторых типов terrain:

  • RENDER_PASS_SOLID: Сплошные блоки (Solid Blocks)
  • RENDER_PASS_CUTOUT: Блоки, такие как листья, трава, стекло, …
  • RENDER_PASS_TRANSLUCENT: Блоки с фактической прозрачностью, например, вода, мед, слизь, …

Кроме того, определение SODIUM_CORE_SHADER_SUPPORT будет присутствовать во всех шейдерах (mc >= 1.21.2 и version >= 1.3.8). Эти определения можно использовать следующим образом:

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

Uniform u_GameTime

Начиная с версии Sodium Core Shader Support 1.4.0, uniform u_GameTime будет присутствовать в block_layer_opaque.fsh и block_layer_opaque.vsh. Его можно использовать так же, как и vanilla uniform GameTime. Добавьте его в свои шейдеры с помощью:

uniform float u_GameTime;

Как указать, какие версии 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 должен содержать объект с ключом supported-versions. Значение supported-versions должно быть картой, которая сопоставляет разные версии minecraft с массивом разрешенных версий sodium. Мод SodiumCoreShaderSupport проверит, содержится ли установленная версия sodium в массиве для установленной версии minecraft.

  • Если версия minecraft и/или sodium не указана в supported-versions, пакет может быть активирован с предупреждающим сообщением.
  • Если у пользователя не установлен sodium, пакет может быть активирован.
  • Если versions.json отсутствует, пакет может быть активирован с предупреждающим сообщением.
  • Если versions.json имеет неправильный формат, пакет может быть активирован с предупреждающим сообщением.

Импорты

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

#import 

С помощью этого приема вы можете создавать собственные glsl файлы, которые можно #import в ваших шейдерах (как в основных шейдерах, так и в шейдерах sodium). Эти файлы должны содержать основную «логику» вашего шейдера. Пример шейдерпака, который работает с этим приемом как на vanilla, так и на sodium, можно найти здесь.

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

Sodium avatarSodiumJellySquid

Скачать Sodium Core Shader Support

 
Тип Скачать Версия Загрузчик Обновлено Размер
Release1.4.3-sodium0.7.3-fabric-1.21.81.21.6+2 Fabric13 ноября 202547 КБ
Release1.4.3-sodium0.7.3-neoforge-1.21.81.21.8NeoForge13 ноября 202545,6 КБ
Release1.4.3-sodium0.7.3-fabric-1.21.101.21.10Fabric13 ноября 202547,4 КБ
Release1.4.2-sodium0.7.2-fabric-1.21.81.21.6+2 Fabric10 октября 202546,6 КБ
Release1.4.2-sodium0.7.2-neoforge-1.21.81.21.8NeoForge10 октября 202545,2 КБ
Release1.4.2-sodium0.7.2-fabric-1.21.101.21.10Fabric10 октября 202547,6 КБ
Release1.4.1-sodium0.7.0-fabric-1.21.101.21.10Fabric7 октября 202547,6 КБ
Release1.4.0-sodium0.7.0-fabric-1.21.81.21.6+2 Fabric3 октября 202546,6 КБ
Release1.4.0-sodium0.7.0-neoforge-1.21.81.21.8NeoForge3 октября 202545,2 КБ
Release1.3.9-sodium0.7.0-fabric-1.21.81.21.6+2 Fabric3 октября 202545 КБ
Пожалуйста авторизуйтесь, чтобы оставить свой комментарий.