新星重构之雪

新星重构之雪

Nova Reimagined的辅助模组,提供按方块精确的生物群系雪检测和雪纹理变体支持。

工具

Nova Reimagined Snow

Nova Reimagined 的配套模组,提供精确的雪生物群系检测、雪纹理变体,以及由着色器发布的 DH 材质纹理,用于纹理驱动的远景地形。


功能简介

Nova Reimagined 包含一个由着色器驱动的积雪系统,会为积雪生物群系中的表面应用积雪外观。若没有此模组,着色器会使用 inSnowy——一个基于玩家位置的平滑值——这会导致积雪色调明显越过生物群系边界,渗入相邻的温暖生物群系。

Nova Reimagined Snow 通过构建一张生物群系积雪资格纹理来解决此问题,着色器会在精确的世界空间中对其采样。它还会解析资源包纹理,并将其发布在稳定的 ID 下供着色器使用。

与 Distant Horizons 一同使用时,该模组还可为受支持的 DH 地形材质发布资源包纹理,使着色器能够驱动纹理化的远景地形。

特性

  • 逐方块柱的生物群系积雪资格——精确的生物群系边界,无渗色
  • 自动调整资格纹理尺寸以匹配你的渲染距离
  • 在游戏过程中处理渲染距离变化,自动重新分配
  • 正确抑制下界和末地的积雪色调
  • 从当前启用的资源包中解析雪表面纹理
  • 从当前启用的资源包中解析 DH LOD 材质纹理
  • 为雪和 DH LOD 材质提供稳定的、面向着色器的纹理 ID
  • 优雅降级——没有此模组时着色器仍可使用 inSnowy 正常工作
  • 仅客户端——可在多人服务器上使用,无需服务器端模组

前置需求

  • Minecraft 1.21.x(Java 版)
  • Fabric Loader 0.16.5+
  • Fabric API
  • Iris Shaders 1.6+
  • 配套的 Nova Reimagined 着色器包

可选集成

  • Distant Horizons——启用 DH LOD 材质纹理
  • Season Cache——存在时,其服务器权威的逐区块积雪覆盖将驱动资格纹理,而非客户端生物群系采样器
  • Serene Seasons X Distant Horizons——当你的着色器配置使用 SSDH 季节元数据时,可选用于逐季节草地色调

安装

  1. 安装 Fabric Loader 和 Fabric API
  2. 安装 Iris Shaders
  3. 将 compsnow-<version>.jar 放入你的 mods/ 文件夹
  4. 安装配套的 Nova Reimagined 着色器包
  5. 在 Iris 设置中启用该着色器包
  6. 在着色器设置中启用相关的雪 / DH 材质特性

雪生物群系图

该模组发布两张用于精确雪生物群系资格的纹理:

  • compsnow:snow_biome_map
  • compsnow:snow_biome_meta

着色器在世界空间中对其进行采样,以判断某个表面是否应接受积雪处理。


配置纹理路径

配置文件会在首次启动时自动创建于 config/compsnow_snow_variants.json。更改会在重新加载资源包(F3+T)后生效——无需完全重启。

路径遵循标准的 Minecraft 资源标识符格式:

namespace:textures/path/to/texture.png

对于替换原版的资源包,命名空间通常是 minecraft,也可能是某个包特有的命名空间。路径相对于该包的 assets/ 根目录。


雪变体纹理

该模组最多解析 四个 雪表面纹理,并将其发布给着色器:

  • compsnow:snow_variant_0
  • compsnow:snow_variant_1
  • compsnow:snow_variant_2
  • compsnow:snow_variant_3

着色器会对世界位置进行哈希,以在地形上分配这四个变体之一。

模式

Auto (默认)
扫描你当前启用的资源包堆栈中的雪纹理,并自动填充四个槽位。任何未填充的槽位都会回退到原版 minecraft:textures/block/snow.png。

Manual_Override
你需明确指定填充四个槽位中每一个的纹理。任何留为 "" 的槽位都会回退到原版雪纹理。

配置中应填写的内容

设置 "mode": "Manual_Override",并用四条路径填充 "manualVariants"——每个槽位一条。着色器会为该位置的哈希桶使用对应槽位中的纹理,因此槽位顺序很重要。

如果你的资源包中雪纹理少于四个,请重复你已有的纹理以填满所有四个槽位。该模组不会自动传播雪变体——任何为空字符串或路径解析失败的槽位都会回退到原版雪纹理。

你拥有的纹理数 如何填充四个槽位
1 在全部四个槽位中重复它
2 交替:[A, B, A, B]
3 重复其一:[A, B, C, A]
4 正常填充:[A, B, C, D]

两个雪纹理的示例:

{
  "mode": "Manual_Override",
  "manualVariants": [
    "minecraft:textures/block/nature/snow/snow_1.png",
    "minecraft:textures/block/nature/snow/snow_2.png",
    "minecraft:textures/block/nature/snow/snow_2.png",
    "minecraft:textures/block/nature/snow/snow_1.png"
  ]
}

Distant Horizons LOD 材质纹理

与 Distant Horizons 一同使用时,该模组会为受支持的 DH 地形材质发布资源包纹理。

发布的 DH LOD 纹理 ID

草地变体(8 个槽位):

  • compsnow:dh_lod_grass_0 至 compsnow:dh_lod_grass_7

单一材质纹理:

  • compsnow:dh_lod_snow
  • compsnow:dh_lod_dirt
  • compsnow:dh_lod_stone
  • compsnow:dh_lod_deepslate
  • compsnow:dh_lod_sand

着色器如何处理它们

着色器仅会在 DH 地形路径上使用这些纹理。由于 DH LOD 地形不提供正常的方块面 UV,着色器使用投影 / 世界空间采样,而非精确的原版方块映射。

草地使用投影纹理,最多支持 8 个变体;选择由稳定的世界空间噪声场驱动。雪、泥土、石头、深板岩和沙子使用它们各自解析出的纹理。着色器仍以纹理为驱动,但如果搭配 SSDH 季节元数据,仍支持可选的季节性草地色调。

配置 DH LOD 纹理

config/compsnow_snow_variants.json 中的 dhLodTextures 部分控制这些槽位。

单槽位材质(snow、dirt、stone、deepslate、sand)各接受一条路径。如果路径为空或解析失败,则会使用一张中性的白色 1×1 像素纹理替代(着色器实际上会忽略该槽位)。

草地变体最多接受八条路径。与雪变体不同,该模组会自动传播 所有成功解析的草地路径,填充全部八个着色器槽位。你只需列出你实际拥有的纹理——该模组会通过取模回绕来填充剩余槽位。

你拥有的纹理数 在 grassVariants 中填写什么 结果
1 ["path_to_A.png"] A 填满全部 8 个槽位
2 ["path_to_A.png", "path_to_B.png"] A, B, A, B, A, B, A, B
4 四条路径 每条重复两次
8 八条路径 按配置使用

如果配置的草地路径全部解析失败,所有八个槽位都会回退到一张中性的 1×1 白色纹理。

四个草地纹理的示例:

{
  "dhLodTextures": {
    "enabled": true,
    "grassVariants": [
      "minecraft:textures/block/nature/grass/gt_1.png",
      "minecraft:textures/block/nature/grass/gt_2.png",
      "minecraft:textures/block/nature/grass/gt_3.png",
      "minecraft:textures/block/nature/grass/gt_4.png"
    ],
    "snow":      "minecraft:textures/block/nature/snow/snow_1.png",
    "dirt":      "minecraft:textures/block/soils/dirt/dirt.png",
    "stone":     "minecraft:textures/block/stone/stone_top_1.png",
    "deepslate": "minecraft:textures/block/stone/deepslate/top.png",
    "sand":      "minecraft:textures/block/soils/sand/sand.png"
  }
}

兼容性

环境 状态
单人游戏 是
多人游戏(无服务器模组) 是——仅客户端
Distant Horizons 是——支持 DH 地形纹理
Season Cache 是——存在时使用服务器权威的积雪覆盖
Serene Seasons + SSDH 是——可选的季节性草地色调
无模组的着色器包 是——积雪逻辑回退到 inSnowy
Forge / NeoForge 否——仅限 Fabric
OptiFine 否——仅限 Iris

备注

  • DH 材质纹理改善的是 视觉一致性,而非 LOD 地形上精确的原版方块 UV 映射。
  • 当搭配 SSDH 可选的 ssdh:season_meta 纹理时,季节性草地色调由着色器处理。
  • 该模组完全为 客户端 模组。

许可证

MIT——见 LICENSE


鸣谢

  • ItsThatNova——模组作者及着色器修改
    GitHub: https://github.com/ItsThatNova
  • EminGT——Complementary Reimagined 着色器包,Nova Reimagined 构建于其基础之上