D-20261022-02|車殼三角上限放寬至 12K¶
背景與驅動力¶
公版零件改由程序化生成器重做。車殼承擔整車外形輪廓,參考雛形的曲面雕塑感需要較密的曲面細分; 在 D-20260816-12 沿用的 8K triangle 單檔上限內,程序化車殼只能做出明顯多邊形化的外形。其他零件 (底盤、馬達、電池、輪胎、導輪、晶片、武器)在 8K 內已足夠。
8K 上限只屬於公版出貨預算(程式架構/builtin-assets.md 第 7 節),
由 main 的公版 GLB 守門 fail closed。UGC 零件不分類型,只受 PART_TRIANGLE_COUNT_MAX(100,000)
硬上限約束(程式參數/protocol.md 第 3 節);公版與 UGC 走同一條 finalizer、
Stage 3 validator 與 PhysicsManifest admission,車殼 12K 落在 UGC 同一套規則之內。
考慮過的選項¶
- 維持 8K,以法線貼圖補細節:公版是免點陣紋理的純色設計,加紋理會吃掉 112 KiB 單檔預算並改變 美術策略,否決。
- 所有零件一律放寬到 12K:其他類型沒有需求,徒增八車場景與 admission 推導成本,否決。
- 只放寬車殼到 12K,其他零件、單檔大小、場地與全套預算不變(採納)。
決定¶
- 公版車殼(
builtin:body-*)單檔視覺三角上限由 8,000 改為 12,000;其他公版零件維持 8,000、 公版場地維持 50,000。 - 單檔 112 KiB、必要時 256² 紋理、root extras 256 KiB 與全套 4 MiB 上限都不變;超過原 100 KiB 的 額度仍只供完整 PhysicsManifest,不得轉為視覺額度。12K 純色車殼經 Draco 壓縮的預估大小約 60–70 KiB,實際大小仍由 112 KiB 單檔守門 fail closed。
- 上限按零件類型查表,GLB 出貨守門與 authoring recipe 的減面目標共用同一份數字,recipe 目標不得 高於該類型上限。
- UGC 零件上限不變,仍為
PART_TRIANGLE_COUNT_MAX。
後果與影響¶
執行面成本只在視覺與烘焙推導上增加。碰撞體是 Stage 3 的凸包代理,數量與形狀不跟視覺三角數走;
破壞碎片是固定上限 VORONOI_FRAGMENT_COUNT_MAX 個的純視覺描述(種子與體素歸屬體積),不產生
額外碰撞體。PhysicsManifest 推導中與三角數線性相關的部分(碎片體積的 48×48 體素柱掃描、車殼
空力烘焙)每車只多一顆車殼的 4,000 triangle,屬烘焙與 admission 期成本,不進每幀模擬。
八車同場的最壞情況視覺三角數(canon 沒有明文的場景三角預算,以現行上限總和為基準):
| 情境 | 每車零件實例 | 放寬前 | 放寬後 | 增量 |
|---|---|---|---|---|
| 槽位滿載(底盤、車殼、馬達、電池、晶片、武器各 1,輪胎 4、導輪 6) | 16 | 1,074,000 | 1,106,000 | +32,000(+2.98%) |
| 公版 canonical 組裝(導輪 2) | 12 | 818,000 | 850,000 | +32,000(+3.91%) |
兩列都含一座公版場地的 50,000 visual triangle;子彈、武器內部驅動體與碎片的視覺網格不受本決策影響、 未列入。只看車輛 部分,增量為 +3.13%(滿載)與 +4.17%(canonical)。對照 UGC 天花板(八車每件 100,000、場地 visual 3,000,000,共 15,800,000),公版最壞情況放寬後約佔 7.0%。
修訂 D-20260816-12 中「8K triangle 不變」一句,僅限車殼;該決策的 112 KiB 與 metadata 專用額度
規則照舊。零件目前仍是 deferred-prelaunch,本決策不改交付狀態。