制作与检验记录 / 2026-10-12 ============================ 任务:经营产品设计与电商工作室的用户需要本地 3D 产品摄影和海报工具,能接入自有产品与标识,摆光取景并产出精细成片,保存摄影设置后快速换品和生成不同尺寸与视角。 采用指定 imagination-developer 技能,读取 spatial-3d、local-delivery、delivery-standard、state-and-content 参考;浏览器读取 Browser skill 并使用其允许的 runtime。未读旧作品或其他代理实现。 所有文件、制作依赖、fixture 与检验成果只位于本目录。未改根 package.json、正式 public/src/skill,未执行 Git 或远端写入。 实现 固定 Three.js 0.170.0、官方 OrbitControls / TransformControls / GLTFLoader / OBJLoader / MTLLoader / STLLoader / RoundedBoxGeometry / RoomEnvironment。用 esbuild 0.24.2 制作时打包,fflate 0.8.2 生成 ZIP;最终 index.html 内嵌所有运行代码,约 699 KB。用户无需执行制作脚本或安装依赖。 默认相机与精华瓶为本次独立原创过程几何,不是假静态封面。相机有 290 个可选表面,以结构、材质和识别细节表达真实物品。相机镜头采用曲面玻璃,金属/橡胶/皮革材质不同;Three.js 负责实际物理材质、环境反射、光源、阴影和拾取。 模型输入先解析,成功后替换;所有资产以 data URL 保存,不把 blob 地址写入摄影方案。外部 GLTF/MTL 资源按用户多选文件解析,无远端资源抓取。无效输入保留当前作品。 表面材质独立克隆,避免修改一处意外染色其他部件。模型归一和显示尺寸同步。灯光、镜头、海报与导出由同一份有效状态驱动。 单图与批量实际按指定像素重新渲染;导出隐藏编辑轮廓/操纵轴,最终海报用同一版式绘制到图片中。批量结束恢复镜头。方案包含模型资源、图片和全部摄影设置。 历史以项目快照管理,精确键盘输入离开字段也会提交;加载和出图保护编辑状态;异步模型读取以代次避免过期完成覆盖后来选择。 实际浏览器操作证据 HTTP 预览根服务 127.0.0.1:4176 返回 200。实际正确页面地址是 /meta-skill-rebuild/10-product-studio/index.html。 1. 最终成品真实首屏:WebGL 交互相机出现;材质、滚花、玻璃、铭文可见;页面没有额外整页滚动,出图按钮保持可见。preview.png 为真实浏览器截图。 2. 通过文件选择器多选 studio-mug.obj 和 studio-mug.mtl。陶瓷杯有独立杯壁与杯把,保留开口、真实壁厚和 UV。界面报告自有模型两个表面。 3. 在海报页通过选择器导入 atelier-mark.svg,修改标题/副标题与标识坐标。SVG 实际出现在图片里。 4. 点击生成,实际产生 2400×3000 PNG;页面自然尺寸与文件 IHDR 一致。PNG 内容从实际结果图 src 分段读取,保存到 fixtures/browser-mug-2400x3000.png;独立解码确认非空并肉眼查看。 5. 保存摄影方案在页面生成 JSON,包含两个模型源资源和 SVG 标识。其实际 textarea 内容分段读取写入 fixtures/browser-saved-mug.json。切换到内置瓶,再通过选择器打开这个实际文件,恢复 studio-mug、海报文字、标识与出图规格。最终副本另一次恢复也确认两个表面和 DAILY / CERAMIC 文案。 6. 通过选择器替换独立 studio-lamp.glb。台灯有底座、金属杆、罩、扩散面、开关五部件。沿用摄影设置与标识,改标题并选择 16:9,实际生成 3840×2160 PNG;留 fixtures/browser-lamp-3840x2160.png。 7. 精确修改产品位置 X 为 0.4,离开字段后撤销,实际恢复 X=0,状态显示已撤销。 8. 相机按 800×1000 实际渲染 ¾、正面、背面、俯视。页面显示四张不同自然尺寸图,并产生 ZIP。实际 ZIP 链接 data URL 分段读取保存为 fixtures/browser-four-views.zip,独立解包有四个 PNG 与完整摄影参数 JSON,四个 PNG 的 SHA256 各不相同。 9. 实际生成 1024×1280 透明 PNG,保存到 fixtures/browser-transparent-1024x1280.png。独立完整 PNG 滤波解码确认角落 alpha=0,仍有大量不透明产品像素。 10. 通过选择器打开 version=99 的非法 JSON,实际反馈恢复失败,当前 MORI C-01 未改变;其后有效保存文件实际恢复成功。 11. sample-product.png 是最终默认相机的实际 2400×3000 成片,非预制图片。首屏与真实导出都经过画面检查。 模型 / 控制器 / 成果回归 regression.cjs 使用官方 OBJ 和 GLTF 加载器解析独立 fixture;核对陶瓷杯高度、两个几何部件以及杯口内外壁,GLB 头长度与五部件。 独立检查替换产品保留摄影/版式规则而清掉旧模型资源、产品变换和材质编辑;模型资源序列化字节一致;非法版本、过大尺寸、零缩放、重合镜头/目标、缺模型资源被拒;失败不改已有数据;撤销/重做和新编辑分支;异步读取代次。 对实际浏览器 PNG 用 Node zlib 完整解码滤波后的像素,核对实际尺寸、上千种颜色、透明 alpha 与实体像素。ZIP 独立解包,核对全部图像尺寸及不同视角真实像素差异。检查实际保存方案含模型与 SVG。 命令 node regression.cjs,40 项通过。该命令是制作检验,最终用户无需运行。 证据边界 实际操作只经已批准 Browser runtime 在本地 HTTP 执行,未使用另一个浏览器控制机制,未清理他人标签。 会话安全策略明确禁止 file://,本次没有重试或换手段绕过。离线 file 双击冷启动准确标为未验证;「所有运行资源内嵌、无运行时安装或服务器依赖」是交付结构事实,不冒充已做断网实验。 浏览器下载事件工具未返回可核实落盘位置。本次检查的是工具真实生成的 PNG / ZIP / JSON,均由页面实际输出读取后保存到本目录,不能声称已验证浏览器默认下载目录。 GLTF 外部资源、STL、图片背景、表面图片贴图入口已有实现;本次实际浏览器输入覆盖 OBJ+MTL、GLB 与 SVG 标识,未把其余格式的源码支持写成实际操作已验收。 手机触屏、Safari、WebGL 上下文丢失和显卡极限尺寸未做真实设备测试。实时 PBR 无离线路径追踪、景深和颜色校样。 交付 index.html 是唯一运行入口;readme.txt 是使用说明;prompt.txt 是完整独立制作指令;metadata.json 如实声明名称、用途、能力、格式、边界和许可证。 3D产品摄影与海报制作.zip 包含入口、说明/元数据、许可、实际成片/首屏,以及合理自有模型/标识和可恢复方案 fixture。制作依赖未进入便携包。