← Назад к ресурсам

Nova Reimagined Snow

A companion mod for Nova Reimagined that provides accurate per-block biome snow detection and snow texture variant support.

Modrinth utility

Описание

# Nova Reimagined Snow **A companion mod for Nova Reimagined that provides accurate snow-biome detection, snow texture variants, and shader-published DH material textures for texture-led distant terrain.** --- ## What it does Nova Reimagined includes a shader-driven snow system that applies a snow appearance to surfaces in snowy biomes. Without this mod, the shader uses `inSnowy` - a player-position-based smoothed value - which causes snow tinting to visibly bleed across biome borders into adjacent warm biomes. Nova Reimagined Snow solves that by building a biome snow eligibility texture that the shader samples in exact world space. It also resolves resource-pack textures and publishes them under stable IDs for the shader to use. When used alongside Distant Horizons, the mod can also publish resource-pack textures for supported DH terrain materials so the shader can drive texture-led distant terrain. ### Features - Per-block-column biome snow eligibility - exact biome boundaries, no bleed - Automatically sizes the eligibility texture to match your render distance - Handles render distance changes mid-session with automatic reallocation - Correctly suppresses snow tinting in the Nether and End - Resolves snow surface textures from active resource packs - Resolves DH LOD material textures from active resource packs - Stable shader-facing texture IDs for snow and DH LOD materials - Graceful fallback - shader still works without the mod using `inSnowy` - Client-side only - works on multiplayer servers with no server-side mod required --- ## Requirements - Minecraft 1.21.x (Java Edition) - Fabric Loader 0.16.5+ - Fabric API - Iris Shaders 1.6+ - The companion Nova Reimagined shader pack ### Optional integrations - **Distant Horizons** - enables DH LOD material texturing - **Season Cache** - when present, its server-authoritative per-chunk snow coverage drives the eligibility texture instead of the client-side biome sampler - **Serene Seasons X Distant Horizons** - optional for per-season grass tinting when your shader setup uses SSDH season metadata --- ## Installation 1. Install Fabric Loader and Fabric API 2. Install Iris Shaders 3. Place `compsnow-.jar` in your `mods/` folder 4. Install the companion Nova Reimagined shader pack 5. Enable the shader pack in Iris settings 6. Enable the relevant snow / DH material features in shader settings --- ## Snow Biome Map The mod publishes two textures for exact snow-biome eligibility: - `compsnow:snow_biome_map` - `compsnow:snow_biome_meta` The shader samples these in world space to determine whether a surface should receive snow treatment. --- ## Configuring Texture Paths The config file is created automatically at `config/compsnow_snow_variants.json` on first launch. Changes take effect after reloading resource packs (`F3+T`) - a full restart is not required. Paths follow the standard Minecraft resource identifier format: ``` namespace:textures/path/to/texture.png ``` The namespace is usually `minecraft` for vanilla-replacing resource packs, or a pack-specific namespace. The path is relative to the `assets/` root of the pack. --- ## Snow Variant Textures The mod resolves up to **four** snow surface textures and publishes them to the shader as: - `compsnow:snow_variant_0` - `compsnow:snow_variant_1` - `compsnow:snow_variant_2` - `compsnow:snow_variant_3` The shader hashes world position to assign one of the four variants across terrain. ### Modes **Auto** *(default)* Scans your active resource pack stack for snow textures and fills the four slots automatically. Any unfilled slots fall back to vanilla `minecraft:textures/block/snow.png`. **Manual_Override** You specify exactly which texture fills each of the four slots. Any slot left as `""` falls back to vanilla snow. ### What to put in the config Set `"mode": "Manual_Override"` and fill `"manualVariants"` with four paths — one per slot. The shader uses whichever texture is in each slot for that position's hash bucket, so slot order matters. **If your resource pack has fewer than four snow textures**, repeat the textures you do have to fill all four slots. The mod does not auto-propagate snow variants — any slot with an empty string or a path that fails to resolve falls back to vanilla snow instead. | Textures you have | How to fill the four slots | |---|---| | 1 | Repeat it in all four slots | | 2 | Alternate: `[A, B, A, B]` | | 3 | Repeat one: `[A, B, C, A]` | | 4 | Fill normally: `[A, B, C, D]` | Example with two snow textures: ```json { "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 Material Textures When used with Distant Horizons, the mod publishes resource-pack textures for supported DH terrain materials. ### Published DH LOD texture IDs Grass variants (8 slots): - `compsnow:dh_lod_grass_0` through `compsnow:dh_lod_grass_7` Single material textures: - `compsnow:dh_lod_snow` - `compsnow:dh_lod_dirt` - `compsnow:dh_lod_stone` - `compsnow:dh_lod_deepslate` - `compsnow:dh_lod_sand` ### What the shader does with them The shader uses these textures on the DH terrain path only. Because DH LOD terrain does not provide normal block-face UVs, the shader uses projected / world-space sampling rather than exact vanilla block mapping. Grass uses projected texturing with up to 8 variants; selection is driven by a stable world-space noise field. Snow, dirt, stone, deepslate, and sand use their corresponding resolved textures. The shader remains texture-led but still supports optional seasonal grass tinting if paired with SSDH season metadata. ### Configuring DH LOD textures The `dhLodTextures` section of `config/compsnow_snow_variants.json` controls these slots. **Single-slot materials** (`snow`, `dirt`, `stone`, `deepslate`, `sand`) each take one path. If a path is empty or fails to resolve, a neutral white 1×1 pixel is used instead (the shader effectively ignores the slot). **Grass variants** take up to eight paths. Unlike snow variants, **the mod automatically propagates** whichever grass paths successfully resolve across all eight shader slots. You only need to list the textures you actually have — the mod wraps them via modulo to fill the remaining slots. | Textures you have | What to put in `grassVariants` | Result | |---|---|---| | 1 | `["path_to_A.png"]` | A fills all 8 slots | | 2 | `["path_to_A.png", "path_to_B.png"]` | A, B, A, B, A, B, A, B | | 4 | Four paths | Each repeated twice | | 8 | Eight paths | Used as configured | If none of the configured grass paths resolve successfully, all eight slots fall back to a neutral 1×1 white texture. Example with four grass textures: ```json { "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" } } ``` --- ## Compatibility | Environment | Status | |---|---| | Singleplayer | Yes | | Multiplayer (no server mod) | Yes - client-side only | | Distant Horizons | Yes - DH terrain texturing supported | | Season Cache | Yes - server-authoritative snow coverage when present | | Serene Seasons + SSDH | Yes - optional seasonal grass tinting | | Shader pack without mod | Yes - falls back to `inSnowy` for snow logic | | Forge / NeoForge | No - Fabric only | | OptiFine | No - Iris only | --- ## Notes - DH material texturing improves **visual parity**, not exact vanilla block UV mapping on LOD terrain. - Seasonal grass tinting is handled by the shader when paired with SSDH's optional `ssdh:season_meta` texture. - This mod is entirely **client-side**. --- ## License MIT - see [LICENSE](LICENSE) --- ## Credits - **ItsThatNova** - mod author and shader modifications GitHub: [https://github.com/ItsThatNova](https://github.com/ItsThatNova) - **EminGT** - Complementary Reimagined shader pack, the base on which Nova Reimagined is built