= 创作分享 =
百科杂谈
最后才发现这玩意不是模组
北葵

最后才发现这玩意不是模组

北葵 于 2021-9-21 14:43 ( 3年前 ) [复制链接] [只看楼主] [打印]
926 0
本帖最后由 QQ酱39045 于 2021-9-21 14:45 编辑

晕菜,白写  
https://github.com/spoutn1k/mcmap
那就先放这里吧  最底下有图片。


mcmap是一个允许你创建Minecraft保存文件的等距渲染的工具。
这个项目正在大力开发中,但与较新版本的Minecraft兼容。



[h1=使用]

基本调用

/mcmap <options> path/to/<your save>(你的保存)

标准的保存路径在操作系统之间是不同的。



在Linux上,它是$HOME/.minecraft/saves。

在macOS上,在~/Library/Application\ Support/minecraft/saves下。

在Windows上,标准路径是%AppData%\.minecraft\saves。如果在Windows上使用Ubuntu,访问保存文件夹的路径是如下。/mnt/c/<Your user>/AppData/Roaming/.minecraft/saves。

现在支持原生Windows。预编译的二进制文件可以从发布页面下载。目前,该程序只能在Linux/Macos或Windows上分别通过终端/Powershell使用。



一个实验性的GUI可用于Windows,可在此下载。



[h2选项]

名称        介绍
-from X Z        设置方块的坐标,以开始渲染
-to X Z        设置渲染结束时的坐标
-center X Z        设置圆形渲染的中心点
-radius VAL        设置圆形渲染的半径
-min/max VAL        渲染块的最小/最大Y指数(高度)
-file NAME        设置输出文件名为'NAME';默认为./output.png
-colors NAME        将自定义颜色文件设为 "NAME"
-nw -ne -se -sw        控制哪个方向会指向顶角;默认是西北方向
-marker x z color        在红、绿、蓝或白的颜色的x z处画一个标记;最多可以使用256次
-nowater        不渲染水
-nobeacons        不呈现信标光束
-shading        遮蔽切换遮蔽(根据高度提高块的亮度)
-lighting        照明切换照明(根据光照情况使区块变亮)
-nether        渲染地狱
-end        渲染末地
-dim[ension] [namespace:]id        根据命名的维度ID渲染一个尺寸
-mb VAL        一次性使用的最大内存(默认为3.5G,如果你有足够的内存,可以增加大型地图的内存)
-tile VAL        以指定大小的区块渲染地形(默认为1024)
-padding        最终图像周围的填充物,单位是像素(默认为5)
-h[elp]        显示一个选项摘要
-v[erbose]        切换调试模式
-dumpcolors        转储一个包含所有定义颜色的json文件
注意:目前你需要同时使用-from和-to或者-center和-radius来定义边界。



提示:

mcmap将使用你的计算机的所有线程分批渲染地形。不幸的是,当这些批次合并的时候,会产生一些人工制品:在合并的地方出现线条。

使用更大的-tile值来限制批处理的数量,从而限制人工制品的产生。这受到可用内存的限制,因为一次性渲染整个地图可能需要10G以上的内存。

使用较低的-tile值来提高性能。256和512tiles是非常有效的。



[h2=颜色文件格式]

mcmap支持改变方块的颜色。要做到这一点,通过编辑mcmap -dumpcolors的输出来准备一个自定义的颜色文件,并使用-colors参数将其作为一个参数传递。



接受的格式是一个json文件,有一个特定的结构。根部包含一个要修改的方块ID的列表,带有命名空间的前缀,如namespace:block。

例子:

"namespace:block": #rrggbbaa (或 #rrggbb)
简单的方块

要为一个简单的、有规律的方块定义颜色,请在一个JSON文件中提供一个条目。颜色的格式是一个十六进制的颜色代码。如果没有指定Alpha,则假定它是不透明的。



[h2=复杂的方块]

为了有些方块能以特定方式绘制时更美观。你需要指定一个方块以不同的方式绘制,这时你必须提供一个包含以下字段的json结构。

"namespace:block": {
    "type":     <BlockType>,
    "color":    "#rrggbbaa",
    "accent":   "#rrggbbaa" (可选)
}
复杂的区块

有些区块在以特定方式绘制时更美观。要指定一个块必须以不同的方式绘制,你必须提供一个包含以下字段的json结构。

可用的可用方块类型有:

名称        外表        突出支持
Full        默认情况下。全方块。        否
Hide        不完全渲染方块。        否
Clear        这个方块是为大量的透明块而优化的,例如玻璃和水。方块的顶部不会被渲染,在将方块混合在一起时,会有一个平滑的表面。        否
Thin        只给下面的方块的顶部着色。用于雪、铁轨、压力板。        否
Slab        半方块。        否
Stair        渲染一个阶梯方块。        否
Rod        一个更细的方块,用于栅栏和墙壁。        否
Wire        地面上的小点,用于绊脚石和红石。        否
Head        较小的方块,也用于锅、腌菜和蘑菇。        否
Plant        用在各种情况下,渲染成叶子一样的方块。        否
UnderwaterPlant        与植物相同,但空气是水色的。用于海草和海带。        否
Fire        类火。用于火。        否
Beam        内部区块类型,用于标记和信标光束。        否
Torch        三个像素组成一条垂直线,最上面的像素用重点颜色渲染。        是
Ore        有颜色脉络的方块。脉络用重点颜色渲染。        是
Grown        上面有不同层的方块状物。如草、尼罗河等。顶层用重点色渲染。        是
Log        定向方块,尽可能地渲染原木/柱子。柱子的中心被渲染成重点颜色。用于原木、柱子、玄武岩。        是
Lamp        条件方块,用于渲染红石灯。如果被点亮,则用重点色渲染。        是
注意:根据积水方块的状态,默认情况下,积水方块将在水中而不是在空气中呈现。然而,海草和海带被硬编码为在水下,它们的方块状状态不会反映这一点,所以它们必须被定义为水下植物。

[h1=编译]

mcmap依赖于PNG和zlib库。开发时使用gcc 10版本,可以用gcc 8或更高版本或clang 10或更高版本进行编译。配置是用CMake完成的。

可详见Github。

[h1=故障处理]

编译失败

检查g++ -- 版本。支持的版本至少是8.0.0。如果你的版本不是最新的,用你的软件包管理器安装一个较新的版本。你可以使用g++-Y来访问新版本,Y是版本号。使用CXX=g++-Y make进行编译。



编译失败,有可能是OMP的问题

试着用OPENMP=NOTHXM8 make进行编译。这将禁用底层线程代码,所以性能可能会下降。



输出有海洋中的线条。

这是由合并算法造成的。试着用-tile选项增加tile的大小,或者改变水方块的颜色,使用全方块类型,使其不那么明显。

2.png (144.21 KB, 下载次数: 326)

2.png
发表于 2021-9-21 14:43:50 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

回复 | 举报

该帖共收到 0 条回复!
百科目前不允许匿名发帖哦~ 请先 [ 登陆 ][ 注册 ] 吧~

本版积分规则

发新帖
  • 回复
  • 点评
  • 评分

[ MC百科(mcmod.cn) 除另有声明,所有开放公共编辑的内容均使用 BY-NC-SA 3.0 协议 ]

Minecraft百科CC协议
快速回复 返回顶部 返回列表