# 本地飞船模型 主页“当前飞船”和模拟改船背景使用本机 Elite Dangerous 安装目录中的真实三维船体。当前索引覆盖 49 种飞船,使用游戏加载界面的船体展示网格。0.4.5 按设计图改用蓝色科技线稿:保留外轮廓、遮挡关系和结构锐边,焊接 UV 接缝并过滤共面三角形对角线,叠加细微边缘辉光。飞船在独立的圆形底座上方轻微悬浮,以每秒 3 度缓慢旋转;底座保持不转。不加载贴图或玩家涂装。 读取流程全部发生在游戏进程外:读取 EXE 中的资源公钥和 Win64 中的资源文件,按游戏文件处理层的 FREA/FRES 封装还原数据,然后解压 zlib 网格。压缩顶点按照本地游戏顶点着色器的逐顶点指数解码,再读取对应三角面索引和法线。巨蟒展示网格为 50,914 个三角面,实际尺寸约为 61.74 × 31.07 × 152.40 米。 程序不会启动游戏、安装插件、附加游戏进程或改变游戏文件。模型功能不依赖汉化或自动导航插件。原始资源版权归 Frontier Developments,发布包只包含自行编写的读取器及资源定位/校验元数据,不包含提取后的游戏模型、材质或着色器。 当前资源索引固定到 EXE SHA-256 `6891f70a021fa9f3a0e00458c284f48d1226e68ae7fc02ad48081aed47857e93`。每个模型另行校验资源 SHA-256、解压长度、网格范围、顶点与三角面索引。游戏更新导致校验不符时显示模型暂不可用,需要更新索引。不会用其他船型冒充。 使用 Direct3D 11、CompositionDrawingSurface 和普通 SpriteVisual,把原生 GPU 图像接入 XAML 合成树。未绘制区域为预乘 Alpha 零像素,可透出下层背景;页面透明度也作用于这层。它替代了 0.4.4 中无法与下层 XAML 正确混合的 SwapChainPanel 外部内容承载,去除模型边界内的矩形色块。参见 Microsoft 的[原生合成互操作说明](https://learn.microsoft.com/en-us/windows/apps/develop/composition/composition-native-interop)与[SwapChainPanel 限制讨论](https://github.com/microsoft/microsoft-ui-xaml/discussions/8191)。 镜头围绕真实船体和底座的包围球取景,按横向/纵向较小视角确定距离,覆盖整圈旋转与悬浮偏移。表面按当前 RasterizationScale 分配像素,SurfaceBrush 映射到控件的逻辑尺寸,避免高 DPI 下二次放大引起偏移和裁切。旋转按经过时间计算,独立渲染线程通过 DwmFlush 等待桌面合成节拍,不用固定帧数定时器。离开页面、模型离开可视区域或窗口最小化时暂停绘制;切换船型、窗口尺寸或 DPI 后更新对应 GPU 资源。 刷新验收分别记录显示模式和 Windows 当前桌面合成节拍。本机显示模式为 240 Hz,但 DWM 实际刷新/合成节拍为 160 Hz,线稿预览实测约 160 FPS,单帧绘制约 0.2 ms。窗口内可见帧数受桌面合成节拍限制,不能把 240 Hz 模式值写成已实测 240 FPS。没有更改系统显示设置或显卡驱动配置。 `Rendering/local-model-reference.json` 为 49 种飞船的资源引用,`EliteLocalModels.cs` 为只读读取器。原生 GPU 帧图、跨船型背景切换、最小化暂停及源文件校验记录位于 `artifacts/ship-model-qa`。抓包监督进程独立运行,模型读取不会改变它。 0.4.5 的渲染验收位于 `artifacts/ship-hologram-qa`。模型探针检查 49 种本地船模、蓝色结构边、预乘 Alpha、透明像素、画面四边留白及居中,同时测试最小化/滚出视野暂停、恢复和四轮连续切页。EDSY 导入响尾蛇后背景从巨蟒正确切换。新增数学测试覆盖多种宽高比下的整圈旋转取景,并确认同平面三角形的对角线不会成为结构线。自动测试共 171 项,167 项通过、4 项可选集成测试跳过、无失败。 三维叠层图为该目录的 `home-layout-with-model.png` 和 `refit-layout-with-model.png`。常规布局截图不包含独立的 GPU 合成面;叠层图使用同一 GPU 帧的预乘 Alpha 位图临时展示于同一控件位置,验收页面的遮挡与透明关系。所有图像取自工具箱自身的纹理或 RenderTargetBitmap,没有抓取电脑桌面。旧版证据保留在 `artifacts/ship-model-qa`,最终结论应以新版验收记录为准。 0.4.6 将主页预览高度从 210 调整至 260 DIP;相同窗口下,船体与底座的线性显示尺寸增加约 24%,改船页尺寸保持原有设置。另修复原生绘图面的缩放调用:`ICompositionDrawingSurfaceInterop::Resize` 按 Win32 `SIZE` 传递两个整数,避免浮点 `Size` 包装导致的无效尺寸。`artifacts/map-qa/models-release.json` 验证三组窗口尺寸下的原生表面重建、居中与透明,并再次检查切页及最小化恢复。