serve 在 stdin/stdout 上使用 newline-delimited JSON,不监听网络端口。它适合由受信任的上层服务、批处理工具或自动化管线作为子进程启动。
启动 worker
--threads:请求未指定threads时使用的默认线程数;最多 256--cache:缓存的 scene/mesh 条数上限--cache-bytes:缓存预算(估算字节);0使用可用内存的一半。超出预算时按最旧优先淘汰,单个超大条目仍允许单独保留。由supervise启动时,若未显式指定,supervisor 会按每个 worker 的内存上限派生并传入该值--greedy-mesh:合并同材质、同光照的共面单位面;默认关闭--force-limits:提高资源上限;只应对可信输入使用--ignore-block-entity-nbt:跳过容器 NBT
hello,之后才接受 job。
请求示例
input.path和outputDir必须是绝对路径- 输入必须是普通文件
input.hash可选,是调用方声明的 SHA-256 身份;命中缓存时 worker 信任该值并不再读取文件,未命中时才重新计算并校验supervise会把为路由计算出的 hash 注入请求,因此经 supervisor 的重复输入也能走免读缓存路径views为空时默认[45],最多 64 个角度;有完整 mesh 时多视角并行渲染- 输出文件为
{id}.png或{id}-{yaw}.png;调用方必须保证id和outputDir在并发任务中唯一,重复id或重复视角会覆盖同一路径 - 完整字段、结果和错误码见 引擎协议 v3
Supervisor
supervise 管理 worker 池、队列、超时和内存上限:
安全边界
serve 和 supervise 只应被可信调用方使用。输入路径、输出目录和资源包路径由调用方控制;不要把 stdio 服务直接暴露给不可信网络客户端。