跳轉到

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,本決策不改交付狀態。