修:draw-ui / oil-motion 原被当子模块指针收录 ⇒ 改为正常文件入库(两份内容原先对别人是空的)
一、问题(本轮实测)
`draw-ui` 与 `oil-motion` 目录里**各自带一个内嵌 `.git`** ⇒ 上一次提交把它们记成了 **gitlink(子模块指针)**
⇒ 仓库里只存了一个不属于任何远端的 commit id,**别人克隆下来这两份是空的** ✗(`git status` 显示 ` m draw-ui` / ` m oil-motion` = 子模块内容有改动)。
二、处置(可回退)
· 把两处的 `.git` **挪走**(⛔ 不是删除)⇒ `归档/内嵌git-20261008/{draw-ui,oil-motion}.git`;
· `git rm --cached` 掉那两个 gitlink,再 `git add` 两个目录 ⇒ **按正常文件入库**(内容才真的进仓库)。
三、副作用(如实记)
挪走 `.git` 后,这两个技能**不能再原地 `git pull` 取上游更新**(要更新得重新拉一份覆盖);
如需恢复其本地仓库,把 `归档/内嵌git-20261008/` 里的 `.git` 挪回原处即可。
This commit is contained in:
1 parent
e03465c398
commit
237a09a5b0
161 files changed
+19429
-2
No files matched your search
@@ -0,0 +1,70 @@
|
||||
# 帧策略与图集压缩
|
||||
|
||||
本文件是 `frame_policy` 和图集清晰度预算的唯一事实源。先验收动作母版,再决定是否插帧;插帧不是默认正确答案。
|
||||
|
||||
## 选择帧策略
|
||||
|
||||
使用 `native`:
|
||||
|
||||
- 源帧率已经满足最终正常播放;
|
||||
- 原始节奏、停顿或逐帧绘制感属于视觉设计;
|
||||
- 插帧会产生重影、双轮廓、线稿扭曲或结构错误。
|
||||
|
||||
使用 `interpolate`:
|
||||
|
||||
- scrub 的参数采样明显不足;
|
||||
- 目标播放速度下原始帧率可见跳步;
|
||||
- 插帧结果通过自动比较和人工接触表验收。
|
||||
|
||||
把决定写入 Motion Brief:
|
||||
|
||||
```yaml
|
||||
frame_policy: native | interpolate
|
||||
target_fps: <native 使用源帧率;interpolate 必须高于源帧率>
|
||||
```
|
||||
|
||||
## 插帧流程
|
||||
|
||||
只有 `frame_policy=interpolate` 时执行:
|
||||
|
||||
```bash
|
||||
python3 "$OIL_MOTION/scripts/optimize_motion.py" interpolate \
|
||||
"$SOURCE_VIDEO" "$OUTPUT_DIRECTORY" \
|
||||
--fps "$TARGET_FPS" \
|
||||
--key "$KEY_MODE"
|
||||
```
|
||||
|
||||
同时检查原始与插帧接触表。新增重影、双轮廓、边缘撕裂、部件穿插、结构扭曲、亮度闪帧或中心突变时,插帧失败;改用合格的原始帧,或重新生成母版,不得把插帧伪影带入编译。
|
||||
|
||||
`frame_policy=native` 仍需输出原始帧接触表和分析报告,只是不生成虚构中间帧。视频路线由 `compile_scroll_video.py --frame-policy` 统一执行对应分支;图集路线的原始帧提取见 [alpha-atlas.md](alpha-atlas.md)。
|
||||
|
||||
## 裁剪与拼接
|
||||
|
||||
- 裁剪只删除确实无变化的重复区,不改变已验收动作的终点。
|
||||
- 每次裁剪或拼接后,重新检查所有新产生的相邻帧。
|
||||
- 不能删除一段缓慢变化,再把远处最终帧直接接回;需要保留到终点的连续采样。
|
||||
- 时间轴锚点和 `hold` 必须从最终保留帧重新生成。
|
||||
|
||||
## 图集压缩
|
||||
|
||||
只有预算选择 `alpha-atlas` 时执行:
|
||||
|
||||
```bash
|
||||
python3 "$OIL_MOTION/scripts/optimize_motion.py" atlas "$FINAL_FRAMES" \
|
||||
--output "$OUTPUT_ATLAS" \
|
||||
--target-mb "$TARGET_MIB" \
|
||||
--display "$DISPLAY_SIZE" \
|
||||
--dpr "$TARGET_DPR" \
|
||||
--cell-width "$CELL_WIDTH" \
|
||||
--cell-height "$CELL_HEIGHT" \
|
||||
--columns "$COLUMNS"
|
||||
```
|
||||
|
||||
工具先按“最大 CSS 尺寸 × DPR”计算最低单帧像素,再在不低于该尺寸的前提下搜索压缩质量。`clarityMet` 必须为 `true`;`targetMet=false` 时回到 [delivery-selection.md](delivery-selection.md) 重新预算,不继续降低清晰度。
|
||||
|
||||
## 验收
|
||||
|
||||
- `native`:接触表、相邻帧分析和最终播放均通过。
|
||||
- `interpolate`:原始与插帧接触表均通过,且插帧没有新增结构或边缘缺陷。
|
||||
- 最大显示尺寸和目标 DPR 未确认前,不执行最终压缩。
|
||||
- 文件体积、解码内存和纹理尺寸同时满足目标设备预算。
|
||||
Reference in new issue
Block a user