
Список изменений
v0.2.0: Preview Renderer Overhaul + 1.21.7 Support
Axion v0.2.0 significantly improves the block preview rendering pipeline across all tools — fixing transparency artefacts, reducing stutter, and raising preview limits for larger selections. The mod and Paper plugin now also support Minecraft 1.21.7.
Highlights
- New: Minecraft 1.21.7 support: Axion mod and Paper plugin now build and run on 1.21.7
- Fixed inner face bleeding: Ghost block previews no longer show interior faces through transparency
- Fixed repeat boundary artefacts: Stacked repeat previews render as a clean solid shell with no seams between layers
- Improved performance: Fold result caching eliminates main-thread stutter when changing stack direction or count
- Improved cache efficiency: Preview mesh cache no longer rebuilds when only tint color or alpha changes
- Larger previews: Ghost block and outline limits raised 4× to support bigger selections before the preview disappears
- Cleaner outlines: Large non-sparse selections show a single aggregate bounding box instead of scattered per-origin boxes
Fixed: Inner Face Bleeding
Ghost block previews used PreviewBlockRenderView for face culling, which falls back to real-world block data for positions outside the clipboard. This caused interior block faces to be rendered as exposed (the world has no blocks there yet), bleeding through the transparent ghost overlay.
Fixed by switching to TemplateBlockRenderView which returns AIR for any position not in the preview clipboard. With checkSides = true restored, faces between adjacent preview blocks are now correctly identified as interior and culled. Applied to both GhostBlockPreviewRenderer and PreviewShellBlockRenderer.
Fixed: Repeat Boundary Seams
When rendering stacked repeats, each origin's blocks were previously tested for face culling only against their own origin's statesByPosition map. Faces at the boundary between two adjacent repeats (e.g. the top layer of repeat 1 touching the bottom layer of repeat 2) had no cross-origin neighbour data and were rendered as exposed.
Fixed by populating statesByPosition across all origins at once before tessellating, so every block correctly sees its neighbours regardless of which repeat origin they belong to.
Improved: Preview Mesh Cache
- Cache key: Removed
color,alpha, andscalefrom the cache key. These are applied at draw time byTintedAlphaVertexConsumerand have no effect on mesh geometry — their inclusion was causing unnecessary cache misses on every tint or alpha change. - Shell template cache: Replaced the unbounded
WeakHashMapinPreviewMeshTessellatorwith a bounded LRU cache (capacity 16) for predictable memory usage.
Improved: Fold Result Cache
Added an LRU cache (capacity 8) in RegionRepeatPlacementService for folded clipboard computations, keyed by clipboard content hash, source region, step vector, repeat count, and placement mode. Previously, changing stack direction or scrolling repeat count would recompute the full fold on the main thread every frame, causing visible stutter on larger clipboards.
Improved: Preview Visibility Limits
Ghost block and outline limits have been raised to keep previews visible on larger selections:
| Limit | Before | After |
|---|---|---|
MAX_GHOST_BLOCKS | 16 384 | 65 536 |
MAX_TEXTURED_GHOST_BLOCKS | 8 192 | 32 768 |
MAX_RENDERED_BLOCKS (shell renderer) | 8 192 | 32 768 |
MAX_REGION_QUADS (outline renderer) | 4 096 | 16 384 |
Improved: Aggregate Outline
Large non-sparse selections now fall back to a single aggregate bounding box outline (via PulsingCuboidRenderer) instead of rendering one box per origin. This removes the converging diagonal line artefact visible on multi-repeat stack previews.
Ghost origin rendering always shows at least one origin and fills up to the maxOriginsFor budget, ensuring the preview never goes completely blank when the selection is within a renderable size.
New: Minecraft 1.21.7 Support
The Axion Fabric mod and AxionPaper plugin now support Minecraft 1.21.7. The Fabric dedicated server module remains 1.21.11-only.
Supported versions as of v0.2.0: 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11
Notes
- All preview improvements apply across Stack, Smear, Clone, and Move tools — any tool that uses
BlockPreviewPipelinebenefits automatically - The fold cache is keyed on clipboard content hash; clearing the clipboard will naturally evict the cache entry
- Preview limits can be tuned further in
GhostBlockPreviewRendererandPreviewShellBlockRendererif performance on very large selections becomes a concern