Adopt Shapespark vegetation assets

This commit is contained in:
2026-08-03 17:10:17 +08:00
parent cd9cde0127
commit dbb5705d8e
135 changed files with 9401 additions and 737 deletions

View File

@@ -105,26 +105,44 @@ catalog.MATERIALS 声明「是什么」 纯 Python无 bpy
不管源文件把原点放在哪(`tree.py:301-303`
`assemble()` 返回种植数量,**0 表示模型缺失或 style 未知**,调用方据此回退到程序化
`tree.py:277-279`
树。
### 材质在本地重建,不沿用源文件
### Shapespark 是当前模型树样式
`tree.py:12-16`:两个 vendored 模型的材质都不能直接用。apple 的贴图 57% 是透明的
(那是叶片卡),没有 alpha-clip 设置的话整个树冠会渲染成一块。
当前唯一模型树 style 是 `shapespark`,资产来自
`assets/models/custom/shapespark_plants/tree-*/model.gltf`。该目录是从
Shapespark low-poly plants kit 拆分出的单植物 glTF/bin贴图共享在
`assets/models/custom/shapespark_plants/textures/`
**vendored 资产的材质一律重建**,不要 `append` 源文件的材质。
`tree.py` 加载 12 个 tree 变体,每个变体 import 一次、bake 成共享 mesh datablock
OSM 树实例只 link 这些 mesh。变体选择必须确定性当前用 stable instance index 经过
golden-turn 序列选变体:
### 已删除的第三种 style 有记录
```python
variant = variants[int(((index * GOLDEN_TURN) % 1.0) * len(variants))]
```
拆分 glTF 会让 Blender 生成 `branch-01.001``branch-01.002` 这类重复材质名;
`tree.py` 必须按 base name 去重材质槽,否则 `export_cesium.py` 会为同一张贴图重复
bake Cesium 材质。
### 已删除的模型树 style 有记录
`tree.py:18-25` 记着 `polyhaven` style 被删的原因LOD1 对象不是整棵树,是给几何节点
散布用的树枝和叶簇,直接种出来是一地树枝,连同 78MB 资产一起删了)。
`apple``fattree` style 已在 Shapespark 方案被用户接受后删除apple 需要强抠图、
法线和 Cesium 曝光补偿,远近观感不如 Shapespark 稳定fattree 视觉风格不匹配。
对应资产目录 `assets/models/speedtree/apple_low/``assets/models/lyrog/fattree/`
也已删除。
**这类"试过、不行、为什么"的记录要保留。** 删掉它,下一个人会重新引入同一个资产。
## 灌木边缘实例有性能预算
`generate_scene.py` 的 scrub 不是只有贴地面:`natural=scrub` 会先生成
`Scrub_<way_id>` 地面覆盖,再沿边界实例化 `assets/models/custom/bush/bush.glb`
`Scrub_<way_id>` 地面覆盖,再沿边界实例化
`assets/models/custom/shapespark_plants/bush-03/model.gltf`
`add_scrub_edge_bushes()`),并在大 scrub 面内部稀疏补树。
这些 bush 是共享 mesh 的多 node 实例。共享 mesh 能压 GLB 体积,但 Cesium 近景 Follow
@@ -137,15 +155,15 @@ SCRUB_BUSH_SPACING = 1.8
SCRUB_BUSH_LIMIT_PER_PATCH = 60
```
在 nantaizi 上约 `266` 个 bush nodesscrub 地面覆盖仍保留。当前默认资产仍是
`assets/models/custom/bush/bush.glb``assets/models/custom/bush_low/bush_low.glb`
曾作为低模实验验证过:几何从 `63,762` vertices / `67,536` indices 降到
`4,044` / `4,050`,但用户实测视觉效果不理想,**不要直接把它设为默认**
在 nantaizi 上约 `266` 个 bush nodesscrub 地面覆盖仍保留。旧高模 bush 和
rejected `bush_low` 资产已删除:前者太重,后者几何从
`63,762` vertices / `67,536` indices 降到
`4,044` / `4,050`,但用户实测视觉效果不理想,不能作为默认方向
不要只为了“更满”把间距调回 1m 以下;那是在把预览流畅度换成近景装饰密度。若确实
需要更密的灌木,先做一个视觉可接受的低模 bush或做显式 LOD / instancing 方案,再
跑 nantaizi 的 Blender/Cesium/preview 验证。注意:`bush_low` 的文件仍有 `5.79 MB`
因为 6 张纹理没有同步压缩;继续压 GLB 总体体积应考虑纹理尺寸/KTX2而不是只减面。
跑 nantaizi 的 Blender/Cesium/preview 验证。继续压 GLB 总体体积应考虑贴图尺寸/KTX2
而不是只减面。
---