D-20260811-10|逐 Region 接觸耗散輪胎磨耗¶
背景與驅動力¶
舊 tire fatigue 只在 driveImpulseNs > 0 時,以車重與材質摩擦係數估算固定磨耗。這把磨耗綁在
「本幀仍需加速」而非真實接觸運動,造成極速巡航、無驅動滑行與下坡完全不耗胎;單一 part
材質與整體質量近似也會讓內部輪轂錯誤增加胎面壽命。
考慮過的選項¶
- 保留 drive impulse gate:與接觸物理分裂,極速與滑行的反直覺漏洞仍在,棄。
- 改用車速/輪速 gate,但保留固定每秒磨耗:能覆蓋滑行,仍無法區分正常滾動與側滑,棄。
- 以 canonical manifold 的 rolling/slip 耗散能量逐 collider region 記帳(採納)。
決定¶
- 每個 tire collider region 對 solid surface 的有效 manifold,依 canonical collider key 排序累加
Eroll=abs(rolling_impulse×rolling_speed)與Eslip=abs(tangential_impulse×tangential_slip_speed);Ewear=Eroll+K_TIRE_SLIP_WEAR_MULTIPLIER×Eslip。sensor、fluid、無接觸或低於MIN_TIRE_WEAR_SPEED_MPS的靜止數值雜訊不記帳。 - PhysicsManifest v7 對每個 tire convex proxy 必烘焙有限正值
wearCapacityJ=K_TIRE_WEAR_CAPACITY×regionVolumeM3×ultimateStrengthPa。只計該實際材質 region; 非 tire proxy 禁帶此分支,非正體積或 ultimate strength fail closed。 - runtime 逐 region 套用
fatigueDelta=thermalWear×Ewear/wearCapacityJ。熱倍率改為1+K_TIRE_THERMAL_WEAR_MAX×r²,初始K=2,故由環境溫至熱限平滑放大 1→3;這一項修訂 D-20260811-05 的線性 1→4 暫定曲線,但不改能量域熱模型。 - broken tire 停止磨耗;respawn 保留 fatigue,新回合的新 world 才重設。現有 provisional builtin GLB 只驗證 schema 與接線,最終 Editor 資產只校準三個 K 值,不改公式結構。
- 開發期直接升
open4wd_version、PhysicsManifest 與 builtin assets 基線至 v7,重烘 27 個 builtin, 不提供 v6 fallback 或 migration。
後果與影響¶
巡航、滑行與下坡會按普通 rolling dissipation 耗胎;空轉、側滑與鎖死拖行因 slip 倍率更傷胎, 載重與地表 rolling resistance 也自然進入同一條可測鏈。runtime 只增加有效 contact 數量級的固定 聚合,不重跑 mesh;manifest digest、rollback state 與共識常數仍完整覆蓋結果。