# TripoSR 纹理烘焙教程

比较TripoSR默认网格颜色与--bake-texture的纹理图集导出，把OBJ、MTL、PNG一起重载。重点是颜色表示和交换文件，而非再写一次单图建模入门。

## 执行范围

已执行：Blender 5.2.1原创几何、真实相机渲染、UV展开、CPU手工材质烘焙、GLB/OBJ导出重载；本题附带离线检查。未执行：目标项目模型下载/推理、Gradio运行、生成纹理/深度/视频mask。reference、geometry-reference、original命名文件都是原创输入或手工参考，绝非模型结果。官方图片只在网页按来源引用。

## 步骤

### 1. 先检查参考网格与烘焙图集的身份

包内reference-colored.glb是原创手工材质，reference-textured.obj/MTL/PNG来自Blender真实UV展开与CPU烘焙。它们帮助练习重载，不是TripoSR运行结果。

### 2. 理解默认顶点色与纹理烘焙的区别

TripoSR官方run.py在默认路径导出网格颜色，开启--bake-texture后为网格展开UV并烘焙图集。不要把任意PNG放在OBJ旁就宣称模型已经生成UV关联。

### 3. 先固定输入与默认基线

用front.png在官方环境输出一个独立default目录，保留默认网格与原始输入。输入前景比例、模型和提取分辨率固定，避免把两次不同参数的形状变化误认为烘焙改变了颜色。

### 4. 只为第二次导出开启真实烘焙参数

第二次显式传--bake-texture、--texture-resolution 512和--model-save-format obj。512是本题低成本检查规格，不是画质推荐；运行需要额外依赖，未实际执行时不预填纹理成功结果。

### 5. 把OBJ、MTL和纹理作为一组保存

打开导出的OBJ与MTL，检查mtllib、usemtl及map_Kd实际关联，逐一确认相对文件路径。官方版本的伴随文件需按实际输出读取，不假设所有版本都用了相同MTL名字。

### 6. 在新场景重载并检查UV对应

把真实输出导入空白Blender场景，查看UV和正背面颜色；暂时移动texture.png观察缺图现象，再恢复原目录验证。练习包viewer可分别加载本包手工GLB和带MTL的OBJ，显示实际状态。

### 7. 打包完整伴随文件并记录边界

把实际OBJ、MTL、PNG和运行记录放入同一输出目录，再从另一目录重载检查。包内有真实手工烘焙参考和重载证据，目标TripoSR推理与神经纹理烘焙尚未运行。

## 命令

```bash
# 在官方TripoSR环境中，输入参数保持一致
python /path/to/TripoSR/run.py front.png --output-dir actual-default --model-save-format obj
python /path/to/TripoSR/run.py front.png --output-dir actual-baked --model-save-format obj --bake-texture --texture-resolution 512
# 检查本包手工参考的伴随文件与重载记录
python3 verify.py
```

## 参考文件

- 以“本题实际文件”列表为准：original-toy.png或front.png/views为Blender原创输入。
- 若本包含reference-colored.glb：它是手工材质参考。
- 若本包含reference-textured.obj/MTL/PNG：它们是Blender真实UV/烘焙交换文件。
- 若本包含geometry-reference-depth.npy/PLY：它们是原创场景已知几何，非深度模型预测。
- runtime.json：目标模型初始not-executed。
- verification.json / blender-reload.json：文件及重载证据，不是模型生成证据。

## 官方依据

https://github.com/VAST-AI-Research/TripoSR
https://github.com/VAST-AI-Research/TripoSR/blob/main/run.py

## 本题实际文件

- `back.png`
- `blender-reload.json`
- `cameras.json`
- `clay-back.png`
- `clay-front.png`
- `commands.md`
- `exchange-reload.json`
- `front.png`
- `helper-checks.json`
- `left.png`
- `original-toy.png`
- `reference-camera-scene.glb`
- `reference-clay.glb`
- `reference-colored.glb`
- `reference-texture.png`
- `reference-textured.glb`
- `reference-textured.mtl`
- `reference-textured.obj`
- `reference-vertexcolor.glb`
- `review.csv`
- `runtime.json`
- `verify.py`
- `viewer.html`
- `viewer.js`
- `views/view-00.png`
- `views/view-01.png`
- `views/view-02.png`
- `views/view-03.png`
- `views/view-04.png`
- `views/view-05.png`

模型命令仅供在你准备好的官方环境执行；from_pretrained类入口首次运行可能拉取大权重，本轮没有执行。
