# 问界 M9 Ultimate · 3D 交互展台

基于 Three.js 0.180.0 的独立展台演示，参考 2026 款问界 M9 Ultimate 领世加长版。

## 运行

在解压后的目录运行 `python -m http.server 8080`，然后使用现代浏览器访问 `http://localhost:8080`。需要 WebGL 2。不要直接双击 HTML，ES 模块需要 HTTP 服务。

所有运行依赖已随项目提供，无需 npm 安装或连接 CDN。

## 本次外形重建

依据公开实车照片独立重做车身曲面与前后包围、引擎盖隆起、弧形窗框和立柱。灯组与车头曲面贴合，增加分层透镜、矩阵灯、菱形格栅和带真实孔洞的封闭式轮毂。仍属于照片参考重建，并非付费模型的复刻文件。

## 功能

- 四门独立开合；点击模型车门也可操作。
- 四窗同步升降，玻璃进入门板，跟随门铰链运动。
- 整体上掀尾门，可见货厢与座舱。
- 概念天窗滑开、遮阳帘、星空天幕、座舱氛围灯。
- 四种配色、两种影棚照明、外部视角与驾驶席/二排视角。
- 环境感知、辅助变道、自动泊车三种预设演示。

## 源码结构

- `aito-m9-reconstructed.glb`：可导入 Blender 或 Three.js 的车体资产，含 PBR 材质与七组开合动画。
- `export-model.mjs` / `three-loader.mjs`：从同一车体源码重新导出 GLB，无需下载其他模型。
- `car.js`：程序化车身曲面、镂空轮拱、门与玻璃层级、六座内饰、轮毂，以及刚性网格合批。
- `main.js`：PBR 环境反射、展台地面反射、镜头切换、开合状态插值、点击拾取和智驾演示。
- `index.html` / `style.css`：控制面板、移动端布局和说明。
- `vendor/`：固定版本 Three.js 与附加模块；许可见 `vendor/LICENSE`。
- `reference.jpg`：问界官网车型参考图片，著作权属于其权利人。

## 模型与资料边界

这不是官方授权展厅，也不是官方 CAD、扫描或工程精模。车身、内饰和机构为参考重建，几何体未按制造公差建模。模型以米为单位，X 向前、Y 向上、Z 向车辆左侧。

展示规格参考问界官网：车长 5402 mm、宽 2026 mm、高 1845 mm、轴距 3236 mm；实际重建几何包围盒包括后视镜、灯具和细节，未据此标称测量精度。

官网描述为智能星空天幕。为了响应交互要求，本项目另提供明确标注的“天窗滑开（概念）”，不声称实车具备该机构。其他配色属于参考效果，不作具体版本可选配置承诺。

智驾为预设路径和目标动画，不运行感知/规划算法，不接入 ADS，不反映精确传感器布局、识别范围、系统性能或实际操作步骤。辅助驾驶不等于自动驾驶。

## 参考来源

- 车型与尺寸：https://aito.auto/model/m9-new/
- 参考图片：https://aito.auto/dam/content/dam/aito/cn/model/m9-new/version-new/images/design/wenjie-design-ultimate-1.jpg
- 外形重建参考：https://aito.auto/dam/content/dam/aito/cn/model/m9-new/version-new/images/design/wenjie-design-ultimate-intro.jpg

## GLB 使用

导出的 GLB 包含车辆几何、材质、六座内饰和独立开合层级；动画包括四个车门、尾门、四窗同步下降、概念天窗滑开。每段动画从关闭位置播放到开启位置；反向播放即可关闭。

影棚、地面反射、屏幕动态纹理、星空和智驾场景由网页生成，不包含在 GLB 中。

如要从修改后的源码重新导出，安装 Node 20 或更新版本，在此目录执行：

```sh
node --experimental-loader ./three-loader.mjs export-model.mjs
```

## 二次开发

```js
import { createM9 } from './car.js';
const car = createM9();
scene.add(car.root);
// 向外打开左前门；右侧门角度为负。
car.rigs.doorFL.rotation.y = 1.15;
// 玻璃相对车门下降。
car.windows.forEach(window => window.position.y = -0.515);
// 尾门整体上掀。
car.rigs.trunk.rotation.z = -1.35;
```

所有可动部件都保持独立层级，后续可以替换成获授权的精细 GLB 资产，同时复用控制面板和状态逻辑。
