Files
osmWorkflow/.trellis/tasks/08-05-lowpoly-cars-assets/design.md

55 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 设计LowPoly Cars 资产库
## 边界与目录
本任务独立于区域构建和 Cesium 预览。新增目录
`assets/models/custom/lowpoly_cars/`,其内部结构与 Shapespark 植物包一致:
```text
lowpoly_cars/
manifest.json
index.html
textures/
<vehicle-id>/model.gltf
<vehicle-id>/model.bin
<vehicle-id>/preview.png
```
`.blend` 保留在用户 Downloads不复制入仓库`manifest.json` 保存源文件名与根对象名,
以便可追溯而不引入二进制源文件。
## 拆分与规范化
新 Blender 工具以 Empty 根节点和其全部后代 mesh 作为一辆车。根节点名是稳定初始 ID
`car_a01_002``truck_a01_001` 等。名称重复的车辆保留全部条目,不依据几何统计猜测合并。
导出前把每辆车的根节点变换 bake 到其后代网格,再把局部原点置于车辆的水平中心和最低接地点。
规范化的预览坐标为 X 前进、Y 向上、Z 横向;若源根节点的朝向不符合它,工具按对象族显式
变换并由渲染缩略图复核。不能依赖源文件中用于陈列的全局坐标、`0.001` 缩放或 90°/180°旋转。
保留同一辆车的 mesh 分件与材质槽,避免为图库的便利合并导致窗、轮胎等材质丢失。图像依赖
集中复制到 `textures/`glTF 以相对路径引用,重复车款不能复制同一张贴图。
## 产物与预览
工具为每辆车导出 glTF/bin使用隔离的三点布光、地面阴影与固定透视相机输出
`preview.png``index.html` 只消费 manifest响应式显示缩略图、ID、类别、三角面数、尺寸和
材质;它不依赖 Cesium、Node 打包或区域输出,通过 HTTP 直接查看。
`manifest.json` 的每项至少包含 `id``name``category``sourceRoot``model``bin`
`preview`,以及 `metrics.vertices``metrics.triangles``metrics.dimensions`
`metrics.materials``category``car``truck``tractor`
## 风险与回退
Blender 的沙箱内加载会崩溃,因此导出、渲染和检查仅通过受批准的沙箱外 Blender 调用。若
某一根节点导出失败工具记录错误并继续其余资产manifest 只收录有效产物,失败根节点写入
报告。删除 `lowpoly_cars/` 不影响任何当前构建阶段或 Cesium 巡航。
## Cesium 候选集
候选集固定为 `car_a01_002``car_a02_002``car_a03_001`,以及按稳定 ID 排序的前三辆
卡车 `truck_a01_001``truck_a02_001``truck_a03_001`。预览构建把这六个 glTF/bin 与一张
共享 512px 贴图复制到区域输出目录并改写其 image URI浏览器页面加载时从文件名列表随机选
一项,所有巡航实体在本页使用相同模型。这样构建产物保持确定,随机性只属于用户可见的会话。