跳到正文

Zeolite

作者:GitHuan

Unseen level of Display Entity optimization

收藏

截图

介绍

中文介绍正在准备中,下面暂时显示原文。

⚡ Zeolite ⚡

Unseen level of Display Entity optimization

⚠️ Early Alpha — this project is at an early stage of development, bugs may be frequent for now!

Optimization showcase

🚀 Optimizations 🚀

# Optimization What it does FPS win
1 UBO instancing (dynamic tier) One draw renders every display of a model via instanced UBO records 58 → 1323 (~23×)
2 Static tier baking Stable displays bake into combined buffers, one draw per material, zero per-frame CPU ~0 CPU/frame at 10000 displays
3 GPU animation texture Keyframe lerps evaluate on the GPU, no per-frame CPU work 26 → 625 (~24×)
4 Animation loop lock-on Repeating cycles become self-running GPU loop programs 0 uploads while locked
5 Coalesced uploads + stream ring Dirty ranges merge and stream through a persistent-mapped ring 491 → 625 (+27%)
6 Content-based resync filter Deep compare stops identical server resyncs from forcing rebakes 0 false rebakes
7 Mesh capture cache + canonical head model Each state bakes once; all heads share one skull mesh 24 → 1712 (~71×)
8 Head skin atlas All skins live in one atlas, so heads stay a single draw Enables #7 / #14
9 Glint canonicalization Glint renders as a second layer, not a second model 39 → 1549 (~40×)
10 Text glyph instancing Glyphs are compact instanced records in per-bucket UBOs 20 → 116 (~6×)
11 Instanced shadows Ground shadows pool into a few instanced draws 49 600 pieces, no extra draws
12 Two-level culling CPU frustum per draw group + per-instance GPU cull Draws → 0 when looking away
13 Origin-relative coordinates Positions stored relative to a rebased render origin Float precision at far coords
14 Shaded static pipelines (Iris) Batches re-bake into the pack’s own gbuffer programs 19 → 280 (~15×)
15 Resident rebake under pack Animating batches rewrite in place instead of demoting Stays 1 draw under packs
16 Promotion budget + light bands Promotion caps and distance-staggered light refresh No hitch frames

🌈 Shader Support 🌈

Zeolite stays batched under Sodium + Iris — shaded static pipelines (#14) and resident rebake (#15) keep displays in a few draws even with a pack active.

Making this possible comes with some FPS costs:

Cost Why Impact
Sodium + Iris installed (shaders OFF) The mods wrap the render pipeline even with no pack active — this is their own overhead, not Zeolite’s ~20–30% FPS
Shader pack active The pack’s gbuffer/shadow programs are inherently expensive; the shaded static tier recovers most of it 19 → 280 (~15×) with Zeolite

Small visual regressions are possible on batched displays under shader packs:

Visual regression showcase

📦 Supported Versions 📦

Version Status
1.21.11 ✅ Supported
26.1 🚧 Possible in near future
26.2 ❌ Unlikely due to Vulkan

🛠️ Modloader Support 🛠️

Modloader Status
Fabric ✅ Supported
NeoForge ❌ Won’t be supported

💬 Community & Support 💬

If you have questions or suggestions, tell us about them on our Discord server!

🐛 Found a bug? Report it on the Issue Tracker!

常见问题

Zeolite 支持哪些 Minecraft 版本?

Zeolite 支持 Minecraft Java 版 1.21.11,可用的加载器:Fabric。下载时注意选择和你游戏版本一致的文件。

Zeolite 怎么安装?

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

评论

登录后评论和评分

GitHuan 的其他作品

查看全部 →