第 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 Offset | Size | Type | Field |
|---|---|---|---|
| 0 | 2 | uint16 | meshVersion,必须为 1 |
| 2 | 2 | uint16 | headerSize,必须为 48 |
| 4 | 4 | int32 | chunkId |
| 8 | 4 | uint32 | polygonCount |
| 12 | 4 | uint32 | polygonSize,必须为 16 |
| 16 | 32 | uint8[32] | sourceHash |
Polygon Record 与 MSH0 Face Record 具有相同布局:axis、paletteIndex、plane、u、v、width、height、flags、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 一样可重建,不能作为资产真值。