跳轉到

D-20261021-02|滾輪被包覆內件維持凸 hull

2026-10-26 關聯追補:本檔否決的「移除被包覆內件的 collider」已由 D-20261026-01 依成本與行為 量測改為採納(被外圈完整包覆的內件只承載質量、質量性質精確併入 hinge body),凸 hull 退回規則 仍是其前置判定。後果段「公版 tire-01~03 與 roller-01~03 各只 1 個 proxy」已過時:現行公版胎 為 2 個 proxy、導輪為 4 個。

背景與驅動力

D-20261020-02 讓 tire/roller 部件的每個判圓 proxy 都烘入 cylinder shape。多件同軸的輪類部件(胎皮包輪轂、滾輪外圈包軸承座與內襯)因此連內件 也成為圓柱 collider:內件被外圈包覆、接觸不到外界,卻仍參與 broadphase 與圓柱窄相。v2 資產樹 下八車彎道 step 比 cylinder 基線再升約 81%–99%(issue 001037,單一重播樣本、未定因),被包覆 的圓柱是其中可直接消除的部分。

考慮過的選項

  • 移除被包覆內件的 collider:改變部件內的質量份額、材質與磨耗記帳對映,違反「內件保留碰撞、 collider 一顆不少」,棄。
  • runtime 判斷包覆關係:違反 admission 信任模型(runtime 不得解析幾何重算),棄。
  • 烘焙期只比半徑、讓最大者保留 shape:同軸上下兩段等未被包覆的較小判圓件也會失去圓柱, 外露的滾動面被多邊形化,棄。
  • 烘焙期以幾何包覆判定,只讓被包覆的內件退回已烘好的凸 hull 點(採納)。

決定

  • 同一 tire/roller 部件內,判圓 proxy A 被包覆=存在另一個判圓 proxy B 滿足:B 的 shape.radiusM 大於 A;兩者同軸(兩軸單位向量外積長度 ≤ 1e-6,反向軸視為同軸;A 中心到 B 軸線 的距離 ≤ 10 µm);A 的軸向區間(中心沿軸投影 ± halfHeightM)落在 B 的軸向區間內(端點容差 10 µm)。被包覆者移除 shape,退回判圓分支本來就已烘好的 pointsM 凸 hull,不重算支撐點。
  • 未被包覆的較小判圓件(同軸上下兩段、軸向外露、偏軸或斜軸)保留 shape;半徑並列者互不包覆、 皆保留。非圓 proxy、只有單一判圓件的部件不受影響;collider 數量、材質、質量份額與 wearCapacityJ 不變。
  • 判定全程以確定性 f64 的加減乘除與平方根計算,屬 manifest 推導的一部分,跨 peer 一致。

後果與影響

  • 公版 tire-01~03 與 roller-01~03 各只 1 個 proxy,shape 無變化,manifest 只隨 D-20261021-01 同批重烘。研究 fixture 的 heavy 胎轂與 heavy 滾輪軸承座、內襯在只比半徑的舊判定下移除 shape;改為包覆判定後是否仍移除取決於 各件的軸向區間,未重新量測。
  • 001037 其餘成本歸因(滾輪圓柱對牆接觸與 fitted 半徑改變堆疊軌跡,或旋轉圓柱接觸本身較貴) 仍未定;本決策只移除確定接觸不到外界的圓柱。