
Pexlib
用于将UV 2D贴图渲染为png的库
Pexlib
一个用于 Hytale 的服务端渲染库,能够从 .blockymodel 文件生成等距 PNG 预览图。
功能概述
Pexlib 读取 Hytale 中 Assets.zip 的生物模型和纹理,将其渲染为等距 2D 图像,并通过简单的 API 供其他模组调用。它处理完整的流水线:模型解析、纹理提取、面 UV 映射(包括旋转和镜像)、深度排序和等距投影。
特性
- 解析
.blockymodelJSON 文件,支持完整的节点层级结构 - 提取每个面的纹理,包含 UV 偏移、旋转(
0/90/180/270)和镜像 - 处理负拉伸值(几何镜像配合正确的面交换)
- 等距投影,采用正面相机角度
- 从后向前深度排序,实现正确的遮挡效果
- 渲染缓存,避免重复工作
- 批量渲染
Assets.zip中的所有生物 - 通过
InputStreamAPI 支持自定义/模组中的.blockymodel文件
API 用法
// 按名称渲染生物
BufferedImage img = PexlibApi.renderCreature("Bear_Grizzly");
// 使用自定义选项(尺寸、缩放比例)
RenderOptions opts = RenderOptions.builder().width(256).height(256).scale(4.0).build();
BufferedImage img = PexlibApi.renderCreature("Wolf", opts);
// 缓存渲染(如果可用则返回缓存结果)
BufferedImage img = PexlibApi.getCachedRender("Rat", RenderOptions.defaults());
// 列出所有可用生物
List<String> creatures = PexlibApi.listCreatures();
// 渲染来自任何模组的自定义模型
BlockyModel model = PexlibApi.parseModel(inputStream);
BufferedImage img = PexlibApi.renderModel(model, texturePng, opts);
资源结构
Pexlib 从 Hytale 的资源系统中读取文件:
- 模型:
Common/NPC/{类别}/{生物名称}/Models/Model.blockymodel - 纹理:
Common/NPC/{类别}/{生物名称}/Models/Texture.png - 模型配置:
Server/Models/{类别}/{名称}.json
构建
./gradlew build
Shadow JAR 会自动部署到 %APPDATA%/Hytale/UserData/Mods/。
包名
dev.hytalemod.pexlib
作者
uwudwagon
还没有人评论,去客户端里说两句吧。
评论在新手盒子客户端中发表,这里同步展示。