第9章:存储与回溯 — 世界持久化格式设计
Diff 存储只保存修改过的 Chunk,未涉足区域靠地形算法重建。二进制文件头 + 版本号 + zstd 压缩,最快 20ms 保存整个世界。
Diff 存储只保存修改过的 Chunk,未涉足区域靠地形算法重建。二进制文件头 + 版本号 + zstd 压缩,最快 20ms 保存整个世界。
8.1 控件定制:QSS + 自绘做出体素风格的按钮和方块选择轮。8.2 场景集成:UI 嵌在 3D 视口之上,处理焦点和快捷键冲突。超越原版的光圈放置指示器。
顶点 AO 是体素引擎画质的灵魂。实现基于相邻方块存在与否的顶点暗度计算,在着色器中混合三重光照。
两阶段算法:AABB 粗筛 Chunk → DDA 精筛方块。附带高亮指引和方块破坏交互,让体素引擎「真的像游戏了」。
不只要给你 Perlin Noise 的公式,更要让你理解噪声为什么能生成地形。附带 QSlider 实时参数调节器。
QThreadPool + QRunnable + 信号槽 = 安全的多线程 Chunk 加载。附带一个真实的 Mesh 未生成完就渲染的 Bug 复盘。
从 std::vector 到 PackedArray,三种数据结构的一镜到底对比实验。用帧率数据说话,告诉你为什么内存访问模式比算法更重要。
封装 Mesh 资源管理类,让 VAO 自动回收。引入纹理图集避免纹理切换,提前做好面剔除优化。
体素引擎项目文件多、依赖杂,新手最容易死在环境配置上。这一章不写任何 OpenGL,只把地基打牢。