Files
osmWorkflow/.trellis/tasks/archive/2026-08/08-05-lowpoly-cars-assets/prd.md

54 lines
3.4 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 车辆资产
## Goal
将用户下载的 `011.+LowPoly_Cars_01_blend.blend` 拆分为可独立检查、可被后续
Cesium 车辆预览复用的低模车辆资产库;沿用 Shapespark 植物包的资产目录、清单与
浏览器预览体验。
## Confirmed Facts
- 源文件位于 `/Users/que01/Downloads/011.+LowPoly_Cars_01_blend.blend`,为 Blender
3.0、64 位小端格式,约 25 MB不应直接作为仓库产物引用。
- 当前 Blender 4.5.12 LTS 在沙箱中加载会崩溃;在沙箱外可稳定读取,故拆分和渲染应通过
沙箱外 Blender 调用完成。
- 源文件有 12 个可导出 Empty 根节点5 个普通车条目(其中 `car_a01``car_a02` 各有两份
同名变体、4 个卡车、3 个拖拉机;每项由 11 到 19 个 mesh 组成。
- 根节点保存了展示排布用的 `0.001` 缩放与 90°/180°旋转。拆分必须应用这些层级变换统一
比例、地面基线和车辆前进轴,不能将源文件世界坐标原样导出。
- 主体使用共享 `carmaterial`(含 base-color 图和 normal map拆分后应共用贴图不复制到
每一个车辆目录。
- 植物包位于 `assets/models/custom/shapespark_plants/`:每个资产拥有
`model.gltf``model.bin``preview.png`,共享贴图放 `textures/`,并以
`manifest.json``index.html` 提供机器与人工检查入口。
- 已完成的车辆连续路线系统读取预览车辆 glTF新资产库在验收前不得破坏该默认车辆或
现有路线播放。
## Requirements
1. 稳定读取源 `.blend`,记录其集合、对象、材质、几何指标、坐标朝向和许可/来源信息。
2. 按可独立使用的车辆变体拆分为 glTF 资产,保留正确比例、轮胎落地基线、前进朝向与
原始材质语义;共享贴图不得为每辆车重复复制。
3.`assets/models/custom/` 下创建与植物包一致的清晰目录、JSON manifest 与简洁的
HTML 图库预览;每辆车显示缩略图、三角面数、尺寸与材质信息。
4. 预览页必须可通过本地 HTTP 查看,不依赖主场景或 QGIS缩略图应能帮助比较车款、颜色
和比例。
5. 新库经过 Blender/glTF 结构检查;从普通车中固定选 3 个、从卡车中选前 3 个组成候选集,
Cesium 每次打开预览时从该 6 个模型随机选一辆作为巡航车辆。
## Acceptance Criteria
- [ ] 能稳定枚举源文件内的可导出车辆,并把每个产物与源对象/集合对应起来。
- [ ] 每个可用车辆有独立 `model.gltf`/二进制数据、预览图与 manifest 条目;预览图和 HTML
能正确加载。
- [ ] manifest 为每项记录稳定 ID、名称、来源、几何指标、尺寸、材质和相对路径。
- [ ] 人工查看图库可比较全部导出的车辆;没有重复贴图、明显错误的坐标轴或悬空/埋地车轮。
- [ ] 现有目标区域的 Cesium 巡航预览仍可生成和播放。
- [ ] 目标区域预览目录包含选定的 6 个车辆模型与一张共享贴图;页面刷新会从候选集随机选车。
## Out of Scope
- 不在本任务中制作车辆动画、转向轮、交通行为、LOD 或性能压缩策略。
- 不修改 QGIS 工程、道路生成或上一轮已经确认的车辆连续路线逻辑。
- 不引入车辆动画、逐车随机分配、性能压缩或车辆选择控件;本轮只在页面加载时随机确定一种车。