3D 产品摄影与海报制作
====================

入口：index.html。单文件已内嵌全部运行代码与 Three.js，不需要安装软件、账户、命令行或服务器。便携 ZIP 解压后，直接双击 index.html 即可按其设计使用。
本次实际验收使用本地 HTTP 的 Codex 内置浏览器；会话安全策略禁止 file://，没有执行或绕过该协议，也没有验证断网冷启动。请将这一点与「运行资源全部内嵌」区分开。

开始一件真正的产品摄影
1. 默认产品是虚构 MORI C-01 相机，具有 290 个可选表面：机身接缝、蒙皮纹理、滚花对焦环、模式转盘、镀膜曲面镜片、热靴、快门、挂耳、螺钉和铭文。
2. 点「导入 / 替换自己的模型」。推荐未压缩、自包含 GLB。支持 GLTF、OBJ、STL；有 BIN、MTL、贴图时须与主模型一起多选。模型也可拖入中央工作区。
3. 拖动摄影画面旋转镜头，滚轮缩放，右键平移。可点 ¾、正面、背面、俯视、近景。左侧精确修改位置与旋转，顶部「移动」「旋转」提供三维操纵轴；「取景」退出对象操纵。
4. 点可见模型表面或从表面列表选择，修改颜色、粗糙度、金属度，或应用自己的表面贴图。每个表面的编辑相互独立。贴图使用模型原有 UV，工具不会自动为 STL 展开 UV。
5. 在「布光」调整主光功率、方位、灯高和色温颜色，补光、轮廓光、环境反射与曝光。背景为真实连续曲面，可加展示台。默认 PBR 材质与环境反射在镜头移动时实际变化。
6. 在「海报」加入文字、自己的标识或图片背景，修改对齐、字号、留白和标识位置。支持 PNG / JPEG / WebP / 自包含 SVG。图片背景按画幅居中裁切。
7. 在「出图」选常用比例或输入实际像素，点「生成精细成片」，查看生成的 PNG，再下载。默认 2400 × 3000；单边 256–6000，总计不超过 2400 万像素，实际能力受显卡最大纹理尺寸与内存限制。
8. 透明 PNG 去掉无缝背景和展示台；若只要产品，请同时关闭海报文字叠加。

继续拍下一件
「导入 / 替换」只更换产品，保留灯光、镜头、背景、海报素材和出图规格。产品的变换与材质编辑会重新开始，上一件模型资源不会混入下一件。标题等版式内容按既有设置保留，按需改成第二个产品的文案。
点「保存摄影方案」生成 JSON，包含完整模型资源、材质贴图、标识、图片背景、相机与产品变换、摄影灯光和输出设置；点「打开方案」实际恢复这些内容。临时地址不是方案素材。
「生成四视角 ZIP」实际逐个渲染 ¾、正面、背面、俯视 PNG，附可恢复的摄影参数 JSON；结束后恢复原镜头。ZIP 预览可查看四张不同画面。
撤销 / 重做保留最近 20 个项目快照。一次滑块操作、文字离开输入框、相机手势、模型导入可成为一步历史；新修改清除重做分支。关闭页面后历史不会永久保存，请保存摄影方案。

试用自己的素材路径
fixtures/studio-mug.obj + studio-mug.mtl：独立制作的开口陶瓷杯，含厚壁和曲面杯把。
fixtures/atelier-mark.svg：自有标识示例。
fixtures/studio-lamp.glb：第二件独立 GLB 台灯，有五个真实部件，可检验换品。
fixtures/browser-saved-mug.json：实际浏览器保存的可恢复摄影方案。
sample-product.png 是本工具真实生成的默认相机成片；preview.png 是实际页面截图。

边界
这是 Three.js 实时物理材质摄影工具，不是离线路径追踪器或 CAD 精密测量工具。提供可编辑模型、商业构图、实际像素 PNG，最终商品准确性取决于用户导入模型与贴图的质量。
实物高度用于校准显示尺寸；模型统一以 Y 为上，自动居中、落地并归一到 3 场景单位高。场景位置用归一化单位，旋转用度。此高度不会改变灯光的实物照度或提供测量认证。
不支持 Draco / Meshopt / KTX2 压缩模型，不支持 USDZ、STEP、FBX。请先从建模软件导出未压缩 GLB。导入动画模型按静止状态摄影，没有动画编辑。
不含 AI 生图、云存储、自动背景分割、自动 UV、景深散景或颜色校样。OBJ 的 Phong 材质转换为 PBR 近似；它的 MTL 高光参数不等同于物理材质。
GLTF 外部资源必须随主模型手动提供，工具不联网取资源。图片限制 25 MB，模型及其资源合计限制 150 MB，摄影方案限制 250 MB。手机触屏和 Safari 未做实际设备验收，推荐支持 WebGL 的桌面浏览器。
浏览器对下载位置和允许下载的提示由用户控制。本次已检查真正的 PNG / JSON / ZIP 内容，浏览器自动下载路径没有得到工具的可核实落盘反馈。

许可
应用代码与自制示例模型 / 图形为 MIT，见 LICENSE.txt。
Three.js 0.170.0（MIT）见 THREE-LICENSE.txt；fflate 0.8.2（MIT）见 FFLATE-LICENSE.txt。运行代码已打包入 index.html，无 CDN、外部字体或运行时依赖安装。
制作脚本位于 build/，回归脚本 regression.cjs 是开发证据，最终用户无需执行。其依赖在 build/node_modules，未修改工作区根 package.json。
