Вход

Регистрация

Восстановление доступа

Sodium Core Shader Support

Sodium Core Shader Support

|

linusdev

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

Мод Sodium Core Shader Support для Minecraft 1.21.11

Sodium Core Shader Support — это мод, который позволяет ресурспакам использовать собственные шейдеры вместо стандартных шейдеров Sodium. Это решение решает проблему совместимости: теперь создатели ресурспаков могут создавать свои шейдеры, а пользователи могут активировать их так же просто, как и обычные текстуры. Мод работает на стороне клиента и поддерживает загрузчики Fabric и NeoForge для версий Minecraft 1.21.2 и новее. Он не делает каждый ванильный ресурспак совместимым с Sodium — для работы ресурспак должен быть явно помечен как поддерживающий Sodium Core Shader Support.

Как работает замена шейдеров

Основная функция мода — предоставление возможности ресурспакам заменять встроенные шейдеры Sodium. В ванильной версии Minecraft ресурспаки могут заменять базовые шейдеры (core shaders), и этот мод реализует аналогичную логику для оптимизированного движка Sodium. Важно понимать, что наличие мода не означает автоматическую совместимость всех ресурспаков. Ресурспак будет работать только если его автор явно указал поддержку Sodium Core Shader Support. Если вы используете совместимый ресурспак, его установка и активация проходят без дополнительных настроек, как и в обычном случае.

Ограничения совместимости

При загрузке ресурспаков Sodium может выводить сообщение в правом верхнем углу: The following resource packs are incompatible with Sodium. Это предупреждение появляется даже для совместимых ресурспаков и является ожидаемым поведением системы. Его можно игнорировать. Мод не устраняет несовместимость на уровне кода шейдеров — он лишь предоставляет механизм для их замены, если автор ресурспака подготовил файлы для Sodium.

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

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

  • Energy Shaders [Java]
  • Night Vision Shaders [Java]
  • Re-Shaded (версии 1.3 и новее)

Структура файлов шейдеров Sodium

При разработке или создании собственных шейдеров важно понимать, что файлы шейдеров в Sodium отличаются от ванильных. Ванильные шейдеры обычно находятся в assets/minecraft/shaders, тогда как Sodium использует свою структуру в assets/sodium/shaders. Ключевые файлы включают:

  • clouds.fsh и clouds.vsh — для облаков;
  • block_layer_opaque.fsh и block_layer_opaque.vsh — для непрозрачных блоков и сущностей (аналог terrain.fsh в ваниле);
  • fog.glsl — для тумана;
  • chunk_material.glsl, chunk_matrices.glsl, chunk_vertex.glsl — для оптимизации чанков.

Изменять файлы чанков (chunk_material, chunk_matrices, chunk_vertex) не рекомендуется, если вы не уверены в их работе. Основное внимание следует уделять файлам block_layer_opaque.

Доступные константы и униформы

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

  • RENDER_PASS_SOLID — для сплошных блоков;
  • RENDER_PASS_CUTOUT — для блоков с вырезами (листья, трава, стекло);
  • RENDER_PASS_TRANSLUCENT — для полупрозрачных блоков (вода, мед, слизь).

Также начиная с версии мода 1.4.0 доступен униформ u_GameTime (время игры), а с версии 1.5.0 — u_SunAngle (угол солнца в радианах). Эти параметры можно использовать в коде шейдера следующим образом:
`glsl
#ifdef RENDER_PASS_SOLID
// логика для сплошных блоков
#endif

uniform float u_GameTime;
uniform float u_SunAngle;
`

Макрос SODIUM_CORE_SHADER_SUPPORT присутствует во всех шейдерах начиная с Minecraft 1.21.2 и версии мода 1.3.8.

Настройка совместимости версий

Разработчики Sodium могут изменять внутреннюю структуру шейдеров в любой момент. Чтобы предупредить пользователей о совместимости, в ресурспаке должен быть файл versions.json. Он размещается в директории assets/sodiumcoreshadersupport внутри архива ресурспака. Файл содержит карту поддерживаемых версий Minecraft и соответствующих им версий Sodium. Например:
`json
{
"supported-versions": {
"1.21": ["0.5.11+mc1.21"],
"1.21.1": ["0.5.11+mc1.21"]
}
}
`

Если версия Minecraft или Sodium не указана в этом файле, ресурспак можно активировать, но с предупреждением. Если файл отсутствует или содержит ошибки, также будет выдано предупреждение.

Импорт файлов и отключение куллинга

Файлы шейдеров Sodium должны находиться в директории assets/sodium/shaders. Однако можно использовать директиву #import для включения файлов из ванильной папки assets/minecraft/shaders. Это позволяет создавать кастомные логику шейдеров, импортируя общие части из ванильных файлов. Пример использования:
`glsl
#import assets/minecraft/shaders/include/test.glsl
`

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

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

Разработка мода получила вклад от сообщества. Особая благодарность автору MR-CHOO за добавление униформы SunAngle и опции отключения отсечения геометрии (frustum и backface culling).

Связанные материалы

Автор: linusdev · Лицензия: Apache-2.0

L

linusdev

1 проект

|

0 скачиваний

Войдите, чтобы поставить оценку и оставить отзыв.

Отзывов пока нет — будьте первым!
Канал Файл Игра Модлоадер Язык Скачиваний Загружен
Релиз sodiumcoreshadersupport-1.5.0-mc26.1.2-sodium0.9.0beta.1-1.5.0.jar 47.2 KB 26.1.2, 26.1.1, 26.1 Fabric 0 17.06.2026
Релиз sodiumcoreshadersupport-1.5.0-mc1.21.11-sodium0.8.12-1.5.0.jar 48.6 KB 1.21.11 Fabric 0 20.05.2026
Релиз sodiumcoreshadersupport-1.5.0-mc26.1.2-sodium0.8.12-1.5.0.jar 47.2 KB 26.1.2, 26.1.1, 26.1 Fabric 0 20.05.2026
Релиз sodiumcoreshadersupport-1.4.3-mc1.21.8-sodium0.7.3-fabric.jar 47 KB 1.21.8, 1.21.7, 1.21.6 Fabric 0 13.11.2025
Релиз sodiumcoreshadersupport-1.4.3-mc1.21.8-sodium0.7.3-neoforge.jar 45.6 KB 1.21.8 NeoForge 0 13.11.2025
Релиз sodiumcoreshadersupport-1.4.0-mc1.21.4-sodium0.6.13-fabric.jar 46.5 KB 1.21.4 Fabric 0 04.10.2025
Релиз sodiumcoreshadersupport-1.4.0-mc1.21.4-sodium0.6.13-neoforge.jar 45.2 KB 1.21.4 NeoForge 0 04.10.2025
Релиз sodiumcoreshadersupport-1.4.0-mc1.21.9-sodium0.7.0-fabric.jar 47.6 KB 1.21.9 Fabric 0 03.10.2025
Релиз sodiumcoreshadersupport-1.3.8-mc1.21.5-sodium0.6.13-fabric.jar 45 KB 1.21.5 Fabric 0 06.08.2025
Релиз sodiumcoreshadersupport-1.3.8-mc1.21.5-sodium0.6.13-neoforge.jar 43.6 KB 1.21.5 NeoForge 0 06.08.2025
Релиз sodiumcoreshadersupport-1.3.6-mc1.21.7-sodium0.6.13-neoforge.jar 41.6 KB 1.21.7 NeoForge 0 01.07.2025
Релиз sodiumcoreshadersupport-1.3.5-mc1.21.6-sodium0.6.13-neoforge.jar 41.6 KB 1.21.6 NeoForge 0 17.06.2025
S Sodium Необязательная