新闻详情

新闻详情

首页 / 资讯中心 / 详情

如何把现实城市搬进 Minecraft:Arnis 地理数据转世界流水线深度解析

发布时间:2026/9/9 14:14:28来源:尧图网络
如何把现实城市搬进 Minecraft:Arnis 地理数据转世界流水线深度解析
如何把现实城市搬进 MinecraftArnis 地理数据转世界流水线深度解析【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnisArnis 是一个地理数据转 Minecraft 世界的转换引擎读取 OpenStreetMap 矢量与数字高程数据逐方块输出 Java 版、基岩版或 LuantiMinetest世界。引擎用 Rust 编写附带 Tauri 桌面图形界面也支持纯命令行模式。本文拆解它的坐标转换、元素处理流水线以及大区域生成背后的工程取舍。从椭球到方块网格需要补上的三层差距输入数据有两种形态OpenStreetMap 矢量对象道路是 way建筑是闭合多边形各带一组键值标签和高程瓦片提供地表高度。但方块世界只认一件事(x, y, z) 处放什么方块。中间隔着三层差距。一是坐标系。经纬度在椭球面上方块坐标在平面网格上一度在不同纬度对应的米数不同。二是语义。highwayresidential标签要变成有宽度、有材质的路建筑多边形要拉伸成带墙和屋顶的立体。三是规模按 1 格对应 1 米计算10×10 km 的区域就有 10⁸ 量级的列整世界一次性放内存对普通机器不可行。Arnis 的做法是逐层解决坐标模块管映射元素流水线管语义世界编辑器管写入。坐标转换一个转换器里的两种投影整套坐标系集中在src/coordinate_system/核心是transformation.rs里的CoordTransformer输入是地理边界框与比例尺每米对应几格输出是世界边界框和逐点转换能力。内部有两条投影路径。Local 模式做线性插值用半正矢公式算出边界框的米数长宽乘比例尺再按点在框内的相对位置线性插值。速度快小区域误差可控。WebMercator 模式改用球面墨卡托投影以边界框中心为原点保证 x 随东向增大、z 随北向减小大区域和高纬度下形变明显更小。世界边界框不是简单拉伸角点算出来的WebMercator 模式把四个角都投影后取轴对齐包络保证框内任意点都不会落到世界范围之外。图形界面里用户在地图上画一个矩形框选区域就是靠这个模块换算出对应的方块范围。元素流水线与世界写入输入、处理、输出主流程在main.rs取数、解析、分派、写入。取数阶段用std::thread::scope并行跑三个任务——OpenStreetMap 查询、Overture 建筑数据、高程与地表覆盖——总耗时取决于最慢的一个而不是三者之和。解析阶段把原始 XML 变成带优先级的处理元素基础类要素比如道路先于建筑处理。分派阶段在src/element_processing/按要素类型一个文件一个职责buildings.rs做拉伸与立面highways.rs做中心线与宽度参数化water_areas.rs、natural.rs分别管水体和植被。每个模块只负责自己那类元素→方块的实现。写入阶段在src/world_editor/。common.rs维护 region、chunk、section 三层组织的世界数据结构java.rs、bedrock.rs、luanti.rs各自序列化成对应格式。版本间方块差异靠映射表解决bedrock_block_map.rs与luanti_block_map.rs分别把 Java 方块名翻译成基岩版和 Luanti 的名字后者派生自 MC2MT 项目LGPL文件头保留了署名。开发者也可以完全不用图形界面。克隆仓库git clone https://gitcode.com/GitHub_Trending/ar/arnis编译后直接指定经纬度框生成cargo run --release -- --output-dir存档路径 --bboxmin_lat,min_lng,max_lat,max_lng大区域生成的工程细节分块并行。src/tile.rs把世界切成 512×512 的瓦片——正好一个 Minecraft region且按 region 边界对齐——每块四周再留 64 格光晕避免跨界元素被裁掉。每块有自己的WorldEditor实例处理完按严格边界合并回主世界线程之间互不冲突。泛洪填充预计算。多边形填充是热点。src/floodfill_cache.rs先把所有填充并行算完、结果缓存主循环只做取用。缓存用位图存坐标每列 1 bit相比 HashSet 每条目约 24 字节内存省约 200 倍超大的闭合环直接放弃填充防止单个森林多边形把内存吃光。确定性与流式写盘。并行带来一个麻烦同一元素可能在不同瓦片里被处理多次随机值必须跨次一致。src/deterministic_rng.rs用元素的 OSM ID 给 ChaCha8Rng 播种同一元素无论在哪、按什么顺序处理拿到的随机颜色与样式都相同。同时WorldEditor支持流式写盘region 序列化后交给后台线程落盘、从内存中移除峰值内存取决于驻留 region 数而不是世界总大小。再配合 mimalloc 分配器和 90% CPU 上限的线程池这些是普通桌面机也能完成中等规模城市生成的原因。适用边界与展望项目对自身规模边界说得比较直白生成开始时若换算面积超过 250 平方公里会打印警告——耗时与内存都会上一个量级大查询还会给公共 OpenStreetMap 与高程服务带来真实负载。合理用法是先小区域验证效果再逐步扩大。功能完整度因平台而异物品框招牌路牌、象形图标、海报只写入 Java 版世界基岩版与 Luanti 输出的装饰细节更少--mode提供完整生成、仅对象平地面、纯地形三档便于单独测试地形或做对比。演进方向可以从代码结构推断元素流水线已按类型拆分新增一类要素就是新增一个模块文件投影抽象在 trait 后面接入新投影不难。真要覆盖更大范围路径是分布式生成或浏览器端服务——作者已推出对应的云端生成产品——而不是压榨单进程。对想把真实地理→方块世界这件事做扎实的开发者Arnis 给了一份可以通读的实现参考问题切分干净取舍写进代码注释没有玄学。【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnis创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

个人成长必读5份资料:从阅读到睡眠的底层能力提升指南 2026/9/9 14:53:40

个人成长必读5份资料:从阅读到睡眠的底层能力提升指南

我一直觉得,成长路上有些东西是真的可以“开外挂”的——不是那种一夜暴富或三天速成的忽悠,而是当你踩过足够多的坑、绕了足够远的路之后,回头发现:如果早一点拿到这几份资料,那些苦熬的夜晚、那些无效的努力、那些因…

阅读更多 →
杭州智能燃气灶维修服务,欧米到家检测电子控制模块和自动保护系统故障 2026/9/9 14:53:40

杭州智能燃气灶维修服务,欧米到家检测电子控制模块和自动保护系统故障

文章简介燃气灶作为家庭厨房每天使用频率较高的设备,长期受到油污、高温、频繁点火影响,容易出现打不着火、点火困难、火焰异常、自动熄火、火力变小、旋钮失灵、燃烧不充分等问题。燃气灶虽然结构相比大型家电简单,但涉及燃气供应、点火装置…

阅读更多 →
2026年Linux游戏发行版实测:驱动、Proton与适用人群全解析 2026/9/9 14:53:40

2026年Linux游戏发行版实测:驱动、Proton与适用人群全解析

提到 Linux 游戏发行版,很多人第一反应还是“折腾”“兼容性差”“打不了反作弊游戏”。前几年我的态度也差不多:Linux 当主力写代码没问题,真要玩游戏,还是老老实实回到 Windows。但这两年情况变化比想象中快得多——Steam Deck …

阅读更多 →
2026马鞍山化工产品成分分析检测排名 TOP5 CMA 资质提供含量检测、纯度检测、元素分析 联系方式推荐 2026/9/9 14:53:40

2026马鞍山化工产品成分分析检测排名 TOP5 CMA 资质提供含量检测、纯度检测、元素分析 联系方式推荐

在众多本地成分分析检测机构中,马鞍山精研成分分析技术有限公司综合实力拔群出众,其余四家机构同样各具千秋。这五家机构深耕各类材料成分分析、配方检测行业,全部持有CMA、CNAS资质并在当地市场监督管理局完成官方备案,全品类成分…

阅读更多 →
2026吕梁化工产品成分分析检测排名 TOP5 CMA 资质提供含量检测、纯度检测、元素分析 联系方式推荐 2026/9/9 14:53:40

2026吕梁化工产品成分分析检测排名 TOP5 CMA 资质提供含量检测、纯度检测、元素分析 联系方式推荐

吕梁当地成分分析检测机构鳞次栉比,资质水平却鱼龙混杂。化工企业、新材料厂商、日化生产工厂、橡塑制造业以及食品医药企业的研发质检部门,极易筛选到无正规资质的检测机构,其出具的成分分析报告不具备法律效力,无法通过市场监管…

阅读更多 →
Linux 高级路由 —— 筑梦之路 2026/9/9 14:50:39

Linux 高级路由 —— 筑梦之路

Linux 高级路由详解 本文将基于您提供的 Linux 高级路由极简教程 文章,深入探讨 Linux 高级路由的概念、配置方法以及应用场景。 一、什么是 Linux 高级路由? Linux 高级路由是指利用 Linux 内核提供的强大网络功能,实现超越传统路由表和默认…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞