跳到主要内容

第 11 章:PMSH 区段

Directory Tag: PMSH · 作用范围: Chunk 级 · 必须性: 可选 · Directory Codec: RAW8

PMSH(Polygon Mesh)是比 VBUF 更接近通用网格交换语义的派生缓存。它保留矩形面而非三角形 Buffer,适合导出、碰撞近似、调试和非 GPU 专用的几何处理。

11.1 Payload Layout

Header 固定 48 字节,随后为 16 字节 Polygon Record:

Header OffsetSizeTypeField
02uint16meshVersion,必须为 1
22uint16headerSize,必须为 48
44int32chunkId
84uint32polygonCount
124uint32polygonSize,必须为 16
1632uint8[32]sourceHash

Polygon Record 与 MSH0 Face Record 具有相同布局:axispaletteIndexplaneuvwidthheightflags、8 字节保留字段。其坐标解释、范围和索引要求与第 9 章完全一致。

11.2 语义与差异

MSH0 关注编辑器局部重建,可含编辑实现专用的面计划策略;PMSH 关注跨工具的规范化矩形面集合。VFP 1.3 中两者使用同一记录布局,但 PMSH 必须按 axis、plane、paletteIndex、v、u 的规范顺序存储,且不应保留编辑器私有标记。

每条记录可以无损三角化为两个三角形,顶点坐标由 axis、plane、u、v、width 和 height 确定。导出器可将 PMSH 变为 OBJ、GLB 或引擎网格,但该导出物不再是 VFP 权威数据。

11.3 验证与失效

PMSH 必须关联当前 Source Hash。验证器必须检查 Header、记录长度、Chunk ID、索引、坐标边界、保留字段和规范排序;可选完整校验可从 VOX0 重建矩形面并比较。PMSH 无效时只能被丢弃或重建。


本章总结

PMSH 提供一种标准化的矩形面缓存,便于通用几何流程;它与 MSH0 一样可重建,不能作为资产真值。