暗箱 - 服务器端渲染

暗箱 - 服务器端渲染

将你的世界或服务器拍摄为地图物品,无需客户端模组!

Camera Obscura

Camera Obscura Icon

为你的世界/服务器拍照! 在服务器上使用时:无需客户端模组! 一切都通过光线投射在服务器端渲染。

需要 Polymer 库!

Comparison

物品:

该模组添加了一个相机物品,对客户端来说,它的外观和功能与普通望远镜一样, 但拥有自定义名称,并且会消耗地图物品或其他物品(如配置中所指定)。

该物品没有合成配方(目前还没有)

配置

配置文件将在首次启动时创建,位于 configs/camera-obscura.json

带有默认值的示例配置:

{
  "renderDistance": 128,
  "showSystemMessages": false,
  "renderEntities": false,
  "renderEntitiesAmount": 20,
  "fullbright": false,
  "fov": 70,
  "biomeBlend": 1,
  "cameraItem": "minecraft:spyglass",
  "cameraConsumesItem": true,
  "cameraConsumeItem": "minecraft:map",
  "commandPermissionLevel": 2
}

说明:

  • renderDistance:以方块为单位的渲染距离
  • showSystemMessages:当通过命令拍照时是否显示系统消息的标志,默认为 false
  • renderEntities:实验性实体渲染标志,默认为 false
  • renderEntitiesAmount:启用实体渲染时要渲染的实体数量,默认为 20
  • fullbright:是否忽略光照等级的标志,以最高光照等级渲染所有内容。默认为 false
  • fov:视场角,工作方式与原生客户端 FOV 相同,最小值为 30,最大值为 110(Quake Pro)。默认为 70
  • biomeBlend:生物群系混合值
  • cameraItem:用作相机物品模型/纹理的原版物品,默认为 minecraft:spyglass
  • cameraConsumesItem:是否消耗物品的标志,默认值为 true
  • cameraConsumeItem:使用相机物品时要消耗的物品。通过命令运行时不会消耗任何物品,默认为 minecraft:map
  • commandPermissionLevel:原版权限等级,默认值为 2

命令:

/camera-obscura

为运行该命令的玩家拍照,并将生成的地图物品给予该玩家


/camera-obscura <[Entity|Player]> <scale>

以源实体为视角拍照,并将生成的地图给予玩家, 可选择指定最高为 3 的缩放比例(3x3 地图)。


/camera-obscura save

为运行该命令的玩家拍照,并将其保存为 png 文件到 renders/<imagename>.png, 其中 imagename 为当前日期,格式为 yyyy-MM-dd HH:mm:ss.SSS


/camera-obscura save <Entity> <scale>

以源实体为视角拍照,并将生成的地图给予玩家, 可选择指定最高为 10 的缩放比例(1280px * 1280px)。

默认图像大小为 128px * 128px


/camera-obscura clear-cache

清除缓存(纹理、资源包模型和方块状态定义、缓存的渲染模型)

权限:

默认原版权限等级为 4,可通过 commandPermissionLevel 进行配置 对于 luckperms 等——这些应该不言自明:


camera-obscura.command camera-obscura.command.scale


camera-obscura.command.entity camera-obscura.command.entity.scale


camera-obscura.command.save camera-obscura.command.save.scale


camera-obscura.command.save.entity camera-obscura.command.save.entity.scale


camera-obscura.clear-cache


已知问题:

所有这些问题都会在将来某个时候修复

  • 实体渲染很慢,并且不支持所有实体
  • 液体是“块状的”
  • 生硬的光照
  • 末地折跃门和末地传送门方块是纯黑的(它们暂时使用黑色混凝土纹理)
  • 大于单个方块的模型在渲染时可能会被截断
  • 坐标达到数百万时渲染会出错

工作原理:

游戏资源从 Mojang 的服务器下载并读取,以使用光线追踪渲染世界。 渲染完成后,会创建一个带有该图像的地图物品,或将 png 保存到 renders 文件夹。


测试服务器

使用 1.20.5-1.21.1+ 客户端加入测试服务器

mc.tomalbrc.de:25565

来测试此模组以及我的其他模组 + 即将推出的、未发布的模组和功能!