Skip to content

Extreme 1.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 08 Aug 08:44

release: 1.0.0 — vanilla-parity lighting, world-gen relight, stained glass

Product version moves to plain semver starting at 1.0.0. This is a version
bump only: the client still targets Minecraft Java 1.8.9 / protocol 47, and
the extension API contract stays at 0.3.0 (manifest.rs NATIVE_API_VERSION),
so mods declaring api = "^0.3" are unaffected.

Rendering fixes in this release:

  • Shading was applied in linear space. The atlas is sampled as Rgba8UnormSrgb
    and the swapchain re-encodes, but the vertex colour (biome tint x face shade
    x AO) and the lightmap were multiplied in linear anyway, effectively raising
    every multiplier to ~1/2.2 — the 1.0/0.8/0.6/0.5 face-shade ladder rendered
    as 1.0/0.90/0.79/0.73 and the darkest AO corner as 0.67 instead of 0.40.
    The combined multiplier is now sRGB-decoded once before it scales the linear
    texel, as ui.wgsl already did. Sky/horizon/sunset constants are converted at
    the same boundary. This also fixes grass top vs side disagreeing.
  • Distance fog defaulted off, leaving a hard edge at the render boundary.
  • Brightness defaulted to 0.5; vanilla's slider defaults to 0.0 ("Moody").
  • Generated single-player worlds never ran a sky-light flood — only the
    per-column vertical cast — so ground under a tree canopy sat at sky 0 where
    vanilla has ~13. World::light_generated_column adds bounded sky and block
    light floods, seeded from the new column plus its neighbours' border strip
    so the cost is O(column), not O(loaded world). Measured +0.21 ms/column.
    Generator-placed emitters are now seeded too.
  • Stained glass rendered as a multiply colour filter that ignored the texel
    alpha and folded the face shade into the filter: red glass darkened the view
    behind it to ~0.23 vs vanilla ~0.47, black glass was effectively opaque, and
    the pane vanished against a dark background. The translucent layer now uses
    vanilla SRC_ALPHA/ONE_MINUS_SRC_ALPHA, matching the greedy path. Water, ice,
    portal and slime share the layer and change with it. The per-block alpha
    overrides in blocks.json are removed — vanilla carries translucency entirely
    in the texture alpha, so they double-applied.
  • East-west pane arms sampled the empty columns of glass_pane_top_* (opaque
    only in columns 7-8) because vanilla's "y": 90 blockstate rotation was not
    reproduced; the mesher now does it.
  • Fast graphics wrote fully transparent texels as solid black (REPLACE drops
    alpha); those pipelines alpha-test now.

Verified: 463 tests pass, clippy clean (no new warnings). The rendering
changes have NOT been verified against a real rendered frame.

Co-Authored-By: Claude noreply@anthropic.com