虽然还在测试版不过看有人在跑图所以还是先发上来好了

voxelmap算是比较流行的小地图mod了以及另外一件事是journeymap咕得跟鹅叔一样,每次使用时会在本地留下缓存(而不是像journeymap一样直接保留图片);因此写了一个工具把缓存文件渲染成图片;
其实voxelmap自带实时渲染功能,在voxelmap.properties中加入项Output Images:true即可,不过代价是fps降到1
voxelmap缓存 指存放在.minecraft\mods\mamiyaotaru\voxelmap\cache\<server>\<world>\<dimension>下的一系列文件,文件名均为<x>,<z>.zip
例如这样的
example.jpg

项目地址

github

使用方法

  1. 下载release 要求:win10,64位系统;其他的可能得自己编译然后把resource文件放在可执行文件旁边
    有时候会提示缺少vcruntime140.dll emmm这个……可能从别的啥软件(比如Firefox)里面找一个放在相同文件夹下

  2. 命令行启动软件(cmd.exe或powershell)

    voxelmap_cache_renderer.exe render -i <input_dir> -o <output_dir> [--env_lit <env_light>] [--gamma <gamma>] [-t <thread>]
    
    -i, --input_dir <input_dir>      voxelmap缓存所在文件夹
    -o, --output_dir <output_dir>    存放输出图片的文件夹
    --env_lit <env_light>        环境光照,值在0-15;默认为15(白天);如果是渲染晚上的环境光照为4
    --gamma <gamma>         gamma矫正,默认为1.0 (一般不需要改)
    -t, --thread <thread>        使用线程数,默认为1

    例如,渲染毛线v3的缓存(位置在F:\Game\Minecraft\.minecraft\versions\fabric-loader-0.7.8+build.184-1.15.2\mods\mamiyaotaru\voxelmap\cache\play.craft.moe\overworld)到F:\Game\Minecraft\Output;使用8个线程

    voxelmap_cache_renderer.exe render -i F:\Game\Minecraft\.minecraft\versions\fabric-loader-0.7.8+build.184-1.15.2\mods\mamiyaotaru\voxelmap\cache\play.craft.moe\overworld -o F:\Game\Minecraft\Output -t 8

    如果想渲染上面的缓存为夜景:

    voxelmap_cache_renderer.exe render -i F:\Game\Minecraft\.minecraft\versions\fabric-loader-0.7.8+build.184-1.15.2\mods\mamiyaotaru\voxelmap\cache\play.craft.moe\overworld -o F:\Game\Minecraft\Output --env_lit 4 -t 8
5 天 后

新增对1.16的voxelmap支持

编译方法

0.
设置代理:设置环境变量HTTP_PROXY=http://127.0.0.1:XXXXHTTPS_PROXY=http://127.0.0.1:XXXX

1.
下载并安装Rust

2.
获取源码

3.
编译:
命令行进入到源码主文件夹
编译指令:
cargo build --release (不带服务器)

cargo build --release --features "service" (带服务器)
完成后可执行文件在target/release/

4.
下载一个win10-release并用编译好的可执行文件替代里面的exe

@SilentDepth

呃,我生成了 map tiles,然后这些 tiles 要怎么用呢?

    lilydjwg

    拿 来 看 (

    (比如做聚落规划的时候可以拿一些tile拼起来在上面画线,这个图是1block:1pixel的)

    emmm其实这个项目是毛线非官方地图2项目的一个工具
    这个工具里面有个子命令tile 可以生成非官方地图所用的<zoom>/<x>,<z>.png格式(leaflet格式)的地图数据集合
    然鹅当它完成的时候非官方地图已经咕了(
    小道消息称鹅叔v4将恢复非官方地图项目

      DWCarrot 坐标系不会搞,现在只能显示一部分世界 QAQ。这样还要改哪里呢?

      	L.tileLayer('tiles/{z}/{x},{y}.png', {
                  crs: L.CRS.Simple,
                  noWrap: true,
                  minZoom: 1,
                  maxZoom: 6,
                  zoomOffset: -1,
                  tileSize: 256,
      	}).addTo(mymap);

        lilydjwg
        emmm我忘记了(
        翻了下老代码当时我好像是自己建坐标系的
        但是我现在自己看不懂了(并不怎么写前端)

        let crs = L.extend({}, L.CRS.Simple, {
        			projection: L.Projection.LonLat,
        			transformation: new L.Transformation(1, 0, 1, 0),
        			scale: function (zoom) {
        				return Math.pow(2, zoom);
        			},
        			zoom: function (scale) {
        				return Math.log(scale) / Math.LN2;
        			},
        			distance: function (latlng1, latlng2) {
        				let dx = latlng2.lng - latlng1.lng;
        				let dy = latlng2.lat - latlng1.lat;
        				return Math.sqrt(dx * dx + dy * dy);
        			},
        			infinite: true
        		})

        其他的……调一调minZoom maxZoom zoomOffset ?
        大概可以问问@jsw 或者加地图组的tg群?

          6 个月 后

          Mark一下,预备做一个拓展,试图实现可实时更新的在线大地图(挖坑),本来还发愁写图片渲染好麻烦,有了你这个工具应该会轻松不少。
          感谢


          居然是Rust写的,Rust厨狂喜,感动落泪ing......

          NyaaCat Community 维护团队

          Powered by Flarum, Operating with ❤