D-20260830-01|可編輯 GLB 保存作者倍率血緣¶
背景與驅動力¶
整體相對倍率已採匯入結果為 1、從 p 到 q 只套 q / p,但倍率只存在記憶體。
可編輯 GLB 移除 canonical marker 後重新匯入會被當成一般外部來源,再做來源單位換算與
provisional fit;作者無法由匯出檔回到相同尺寸基線,也可能讓已正確的最終幾何被二次縮放。
考慮過的選項¶
- 只保存原始 mesh 與倍率 transform:通用檢視器與外部 DCC 不一定套用相同語意,否決。
- 把作者倍率寫入 canonical schema:作者工作狀態不是 runtime/鏈上物理真相,否決。
- 可編輯檔保留已烘焙最終幾何,另帶非 canonical 的 editor provenance(採納)。
決定¶
- 可編輯 GLB 的 mesh/node transform 直接呈現最終正確尺寸;通用檢視器不需理解 Open4WD。
- 預設 scene extras 另寫
open4wd_editor,固定包含版本、normalized_meters=true與正值author_scale_factor。此欄位只表示目前幾何相對原作者基線的倍率,不是第二份幾何。 - 重新匯入合法 provenance 時,跳過來源單位換算與 provisional fit,只把
author_scale_factor還原到 UI;不得再次乘進幾何。之後從p改q仍只套q / p, 包含q=1回到作者基線。 - 保留欄位存在但格式、版本或倍率不合法時封閉式拒絕,不降級成一般未標記來源。
- canonical finalizer 以權威 root extras 整組替換,因此
open4wd_editor不進本機測試、鏈上 或 runtime 成品;從既有 canonical 資產另行下載可編輯檔時作者倍率以1起算。 - 一般零件 mesh 與 mount 不使用節點 scale gizmo;零件尺寸只由整體相對倍率控制。節點 scale 只保留給 Checkpoint、KillZone 與具有明確尺寸語意的場地 entity。
後果與影響¶
匯出後關機、再匯入可編輯 GLB 會重現相同最終尺寸與倍率欄位;外部工具仍只需處理標準 GLB 幾何。canonical bytes、CID、PhysicsManifest 與鏈上格式不增加作者工作欄位。