跳到正文

Sodium Core Shader Support

作者:linusdev

使资源包能够替换钠的光影,类似于资源包能够替换原版核心光影。

收藏

介绍

介绍由机器翻译自 Modrinth 原页面,仅供参考。

钠核心光影支持

Modrinth 下载量
CurseForge 下载量
许可证
环境:客户端
Discord

[!IMPORTANT]

此模组不再进行任何更新。自 Sodium 0.9.0 和 Minecraft 26.2 起,Sodium 允许

无需此模组即可更换 Sodium 光影!如果某个资源包无法在 Sodium 上运行,这意味着

该资源包必须更新到对应的 Sodium 0.9.x 版本。

目前没有将此模组更新到更旧的 Sodium/Minecraft 版本(例如 1.21.x)的计划。

允许资源包替换 Sodium 的光影,类似于资源包能够替换原版核心光影。
如果你喜欢我的模组,欢迎通过请我喝咖啡来支持开发:

ko-fi

用户文档

Sodium 核心光影支持允许资源包使用自定义光影替换 Sodium 的核心光影。这并不意味着
此模组能让所有原版资源包在 Sodium 上运行。只有明确声明
兼容 Sodium 核心光影支持的资源包才能正常运行。

如果你使用的是受支持的资源包,只需像启用其他资源包一样启用它即可。

资源包不兼容

在重新加载资源并列出当前启用的核心
光影后,Sodium 可能会在右上角显示消息 The following resource packs are incompatible with Sodium。
即使资源包支持 Sodium 核心光影并且能够正常运行,此消息也始终会出现,可以忽略。

资源包列表

以下是一些能够在 Sodium 上运行的资源包。如果你自己制作了资源包,欢迎
在我的 GitHub 上提交 issue,将其添加到此列表中!

  • [Energy Shaders \[Java\]](https://modrinth.com/shader/energy-shaders-java)
  • [Night Vision Shaders \[Java\]](https://modrinth.com/shader/night-vision-shaders)
  • Re-Shaded(需要 Re-Shaded 1.3 或更高版本)

光影开发者文档

请务必理解,你的原版光影不能直接复制到 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 用于所有方块和方块实体。原版 Minecraft 中与之对应的是 terrain.fsh
和 terrain.vsh(在较旧版本的 Minecraft 中,对应的是 rendertype_solid、rendertype_cutout、rendertype_cutout_mipped 等)。

此外,sodium 核心光影支持还会在 sodium 光影的 block_layer_opaque.fsh
和 block_layer_opaque.vsh 中,为某些地形类型添加一些定义:

  • RENDER_PASS_SOLID:实心方块
  • RENDER_PASS_CUTOUT:树叶、草、玻璃等方块
  • RENDER_PASS_TRANSLUCENT:具有实际透明度的方块,例如水、蜂蜜、史莱姆等

此外,所有光影中都会存在 SODIUM_CORE_SHADER_SUPPORT 定义(mc >= 1.21.2 且版本 >= 1.3.8)。
这些定义可以像这样使用:

#ifdef RENDER_PASS_SOLID
    // special shading for solid stuff
#endif

GameTime Uniform

从 Sodium Core Shader Support 1.4.0 版本开始,u_GameTime uniform 将存在于 block_layer_opaque.fsh
和 block_layer_opaque.vsh 中。它的用法与原版 GameTime uniform 相同。请使用以下内容将其添加到你的光影中:

uniform float u_GameTime;

SunAngle Uniform

从 Sodium Core Shader Support 1.5.0 版本开始,u_SunAngle uniform 也将存在于 block_layer_opaque.fsh
和 block_layer_opaque.vsh 中。它会以弧度返回环境属性中的太阳角度。请使用以下内容将其添加到你的光影中:

uniform float u_SunAngle;

如何指定支持哪些 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" ]
  }
}

在上面的示例中,资源包声明其兼容 Minecraft 1.21 和 1.21.1 中的钠 0.5.11。
下面是抽象描述:

更具体地说,versions.json 必须包含一个键为 supported-versions 的 question 对象。
supported-versions 的值必须是一个映射,将不同的 Minecraft 版本映射到允许使用的钠版本数组。
SodiumCoreShaderSupport 模组会检查已安装的钠版本是否包含在已安装 Minecraft 版本对应的数组中。

  • 如果 Minecraft 和/或钠的版本不在 supported-versions 中,整合包仍可在显示警告消息的情况下激活。
  • 如果用户未安装钠,整合包仍可激活。
  • 如果不存在 versions.json,整合包仍可在显示警告消息的情况下激活。
  • 如果 versions.json 格式错误,整合包仍可在显示警告消息的情况下激活。

导入

钠光影必须位于 assets/sodium/shaders 目录中。但你可以使用 #import 指令从
assets/minecraft/shaders 导入文件。以下代码会包含
文件 assets/minecraft/shaders/include/test.glsl:

#import <minecraft:include/test.glsl>

通过这种方式,你可以创建自定义的 glsl 文件,并在光影中使用 #import 导入它们(包括核心光影和钠光影)。
这些文件应包含你的主要光影“逻辑”。你可以在这里找到一个通过这种方式,同时兼容原版和钠的示例光影包。

禁用剔除

从 1.5.0 版本开始,可以通过 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,以及添加了禁用视锥体剔除和背面剔除的选项!

常见问题

Sodium Core Shader Support 支持哪些 Minecraft 版本?

Sodium Core Shader Support 支持 Minecraft Java 版 1.20.4–26.1.2,共 18 个版本,可用的加载器:Fabric / NeoForge。下载时注意选择和你游戏版本一致的文件。

Sodium Core Shader Support 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:仅客户端。

评论

登录后评论和评分

linusdev 的其他作品

查看全部 →