Skip to content

Scene 图片、动画帧与历史缓冲 ​

本文说明原版 Hatsune Miku | GLITCHED HOLOGRAM(3420277613)使用的有界共享运行时契约,不代表通用 Wallpaper Engine 兼容性或原引擎画面一致性。作者资源保留在 Git 外;准备流程依据声明与资源身份,不按 Workshop ID 分支替代作者行为。

自定义图片属性 ​

作者声明的空默认值 scenetexture 转换为图片控件。group 仍是分组元数据,标量属性保留原有验证。非空原生图片默认值和其他未支持属性仍受门控。

shell 在后台桌面命令中打开原生本地文件选择器。取消保留草稿。前端取得规范内容 token 和尺寸,不将路径交给渲染器。选择图片只改变草稿;保存并应用 先准备并验收候选,再原子保存分配与选项。保存失败保留原分配与渲染器,草稿仍可编辑。使用作者图片 去掉已保存图片选项,恢复作者实例材质的后备资源;它可以与基础模型纹理不同。

接受静态八位 PNG 和 JPEG,编码大小最多 32 MiB,尺寸、解码范围与元数据均有上限。JPEG 会应用 EXIF 方向。动画 PNG、ICC 配置、明确非 sRGB 的 EXIF 颜色声明(含 uncalibrated/R03)、后置或重复 EXIF、非 sRGB 的 PNG gamma/原色、HDR 元数据、JPEG gain map、MPO/多图片、算术编码及 CMYK JPEG 被拒绝。这些保守输入规则不代表色彩管理或 HDR 渲染。

通过同一个常规文件 descriptor 读取选中文件,不跟随符号链接。LWE 验证并复制字节到 $XDG_DATA_HOME/lwe/scene-resources,默认 ~/.local/share/lwe/scene-resources。token 格式为 sha256:<64 个小写十六进制字符>。恢复时重新读取并核对内容摘要;副本缺失或被修改时报告错误。成功导入后可以删除原选中文件。不可信 IPC 不能请求任意路径、URL 或编码图片。

存储上限为 512 MiB / 256 文件,采用私有目录/文件权限、跨进程导入锁及不可覆盖的原子创建。相同导入复用已核验内容,冲突内容不会被覆盖。导入不会自动删除可能仍被分配引用的图片。

帧准备与呈现 ​

动画图集资源解码器 直接读取有界 BC3 矩形区域,不将两张完整动画图集解码为 RGBA。引擎共享不可变编码/解码源和静态上传,同时保留各代私有状态、历史与已验收输出缓存。

单次 worker 请求一起捕获序号、经过时间和音频。该请求的脚本输出、动画区域与文字构成完整 packet;过期或未完成的 packet 不能发布。着色器音频与 VM 使用同一捕获频谱。原始 f32 帧时长直接提升精度,不按十进制取整。只有成功呈现才发布已验收输出。

暂停的时钟不推进脚本或历史。同尺寸强制重画复制已验收输出。调整尺寸按已验收时间与输入重新合成,复用上一份历史,不额外累积。替换候选拥有自己的状态与历史。冻结旧渲染器保留已呈现输出,将私有历史移入同一 CPU 预算下的封闭 RGBA 快照,释放可替换 GPU 目标。全部 readback 成功后才释放旧 GPU 历史,恢复时全部历史上传完成后才释放 CPU 快照。因此候选拒绝或原子保存回滚可以恢复旧画面,而不虚称能够倒退任意 JS 堆。

历史累积、复制与合并是有序渲染操作。临时目标仅在最后一个读取者结束后复用。如果活动 draw 或 swap 在私有状态/历史推进后失败,该代会被隔离,不能继续动画或调整尺寸;可以原样重画已验收输出,随后引擎拒绝并释放它。恢复需要新一代渲染器。候选失败则恢复独立冻结的前一个渲染器。

预算与 host API ​

共享解码 CPU 和逻辑 GPU 负载预算各保持 512 MiB。CPU 计入实际保留分配容量及保守 codec/font 工作空间预留;GPU 计入唯一不可变上传和全部私有输出/历史/临时资源,包括同时保留的旧代/候选。计数不等于总 RSS、分配器开销、驱动分配或实测 VRAM。Weak 缓存不持有已不用的资源,预算失败保留已有 owner。

脚本扩展仅覆盖所需已验证形式:不可变 createScriptProperties 控件、帧时间、十六频段双声道及六十四频段平均缓冲、受支持 Float32Array 操作、整数位运算及字符串文字输出。执行、中断、内存和 worker 销毁仍有界。致命 worker 失败持续有效,不伪造 JS 状态回滚。更广的 SceneScript 生命周期/编辑器/存储 API 仍未支持。

文字路径使用有界字体解析和栅格化,包含原版内置 Atami CFF 字体。字体身份包括来源字节和命名空间,不可变字体数据可以跨代共享。字体解析器/栅格器私有堆采用保守预留,来源/文字输出容量直接计量;这不是第三方分配器精确追踪或 Windows 文字排版一致性。

验证边界 ​

普通测试覆盖声明/值分离、安全导入与跨进程配额串行化、来源身份/生命周期、直接区域解码、packet 顺序、历史/复制和失败清理。原包 CPU 与确定性离屏 GPU oracle 为显式 opt-in,需要私有本地资源;仅凭它们不能证明原生桌面呈现、文件选择器、持久化重启恢复、真实音频捕获、性能或安装包支持。独立私有采集/硬件 EGL 及原生桌面检查保留各自证据范围。

原版 Miku 的 CPU/GPU、私有采集、嵌套原生 UI 及有限性能结果另记于贡献者指南。完整效果原生流程通过,但 1920×1080 AMD 680M probe 在 30 FPS 上限下仅达到 4.53 FPS。私有验收报告保留准确源码/二进制/输入身份。物理休眠/恢复明确延期;嵌套 niri 结果不能替代真实多显示器、安装包或原引擎一致性验收。