16 KiB
HomeCamp 主界面营地场景
范围与视觉基准
2026-10-23,用户确认按当前主界面背景还原近景广场、房屋和喷泉。视觉基准为 AIClient/Assets/Bundles/UI/Bg/home_camp.png,保留奶油墙、橙红屋瓦、黄白遮阳棚、浅色石路、蓝色喷泉和前景草地。沿用竖屏 1080×1920 的固定机位。
湖泊、瀑布、远山与城堡使用独立远景图片面片,不生成复杂远景模型。首版交付独立可编辑场景;首页 HUD 接入另行验收,保留现有首页。
分件图由内置 imagegen 参考当前背景生成,完整提示词见 design_prompts.json。主屋、侧屋、喷泉和地表均为白底独立分件;backdrop.png 是实际远景贴图,按用途全幅绘制景色,不是白底图生模型输入。
近景组件清单
| ID | 设计图 | 最终三角面 | 贴图 | 场景用途 |
|---|---|---|---|---|
| ground | ground.png |
8303 | 1024² XPbr | 五步产物保留供审核,表面质量不通过,未摆入交付场景 |
| mainhouse | mainhouse.png |
1981 | 1024² XPbr | 中后方主屋;两侧缩小复用,三实例 |
| cottage | cottage.png |
2995 | 1024² XPbr | 五步产物保留供审核,表面质量不通过,未摆入交付场景 |
| fountain | fountain.png |
1795 | 1024² XPbr | 中央圆池与两层小碗喷泉 |
连续地表为五步流程后的编辑收尾资产 GroundSurface.asset/.prefab:Unity Pipeline 创建持久化的 2 三角面顶面和非凸 MeshCollider,覆盖 36×42m;ground_surface.png 是内置 imagegen 另绘的正俯视地表颜色贴图,提示词见 ground_surface_prompt.txt。它不是 Studio 地表 UV 的延续,未把失败的 Studio 地表称作通过验收。
路灯和长椅通过隔离四向检查后复用公共资产 Assets/Bundles/Scenes/Common/{lamp,bench}/(2026-10-26 从测试场景迁出,保留原 GUID)。两套旧树木/灌木均有烘焙黑斑,未用于交付;树木与花边改为 tree_card.png / flower_card.png 透明图片面片,Unlit AlphaClip、无碰撞和投影,提示词见 foliage_prompts.json。首版不含告示牌、拱门和围栏。
新场景组件默认模型流程
- 混元网页生成高模:每张白底分件图生成一份 50k GLB,保留任务号、日志、原始高模与哈希。
- 3D Studio · 低模生成:输入同一分件的高模,使用官网 Studio 低模功能,记录低模任务号和实际三角面数。
- 3D Studio · UV 展开:对上一步 Studio 低模展开 UV,记录 UV 任务号并校验输出。不得用 Blender 自动 UV 替代此步骤。
- Blender · 贴图烘焙:先将 Studio 居中/归一化后的低模对齐到其确切来源高模,保留 Studio UV,烘焙颜色、法线、AO、金属度、粗糙度,再打包 XPbr base/mix。
- 超出目标 30% · Blender 保留 UV 减面:仅当实际三角面数严格大于目标×1.30 时触发,减至目标附近;未超过阈值则明确登记为跳过。保留现有 UV 和已烘焙贴图,不重新展开 UV。
所有模型完成上述流程后统一导出 Y-up、底面中心原点、局部 +Z 正面的 FBX。在 Unity 四向检查正面;不能用运行时旋转修补源模型坐标。地表另验水平顶面、厚度和可行走区域,防止生成竖直薄板后未经检查直接摆入场景。
复用依据:Tools/studio_accessory_pipeline.py 与 Tools/campguide_studio_mesh.py 已有第 02~05 步实现;Tools/studio_lowpoly_trial.py 含同源对齐、Studio UV 与 30% 阈值逻辑。现已从 HomeCamp 实跑代码提取统一静态场景入口 Tools/scene_component_pipeline.py,不把场景组件当角色或 T2 挂件发布。
初始布局(模型验收后微调)
坐标为 Unity 世界坐标,单位米;相机从 -Z 看向 +Z,该历史布局的建筑仍以局部 -Z 朝向广场;新建筑采用 +Z 正面时须按新轴向重新计算摆放旋转。物件实际 Y 由地表碰撞向下投射确定,清单 Y=0 只是布局参考。
| 对象 | 初始 X/Z | 尺寸参考 | 朝向 |
|---|---|---|---|
| Ground | 0 / 0 | 连续 36×42m,前侧为 -Z 草地 | 地表顶面朝 +Y |
| MainHouse | 0 / 7.2 | 高约 6.5m | 门朝广场中央 |
| HouseLeft | -7.5 / 4 | 主屋缩小至高约 4m | 门朝中央略内转 |
| HouseRight | 7.5 / 4 | 同一主屋 Prefab 复用 | 门朝中央略内转 |
| Fountain | 0 / 0.8 | 池直径约 4.5m、高约 2.3m | 旋转对称 |
| Bench / Lamps / Trees | 广场边缘 | 复用既有组件 | 避让门口和中央活动区 |
相机初始位置 (0, 15, -27),看向 (0, 1.8, 3),透视 FOV 48°。最终以 1080×1920 对照背景调构图,保证中央喷泉、后方主屋、左右侧屋和前景草地可辨识;长屏额外检查上下裁切。
远景面片
backdrop.png 已绘制独立湖泊/瀑布/城堡远景,禁止把整张含广场背景直接贴在后面造成重复房屋和喷泉。
通过 Unity Pipeline 创建并保存 Quad + Unlit 材质,放在近景后方,调整面片位置、尺寸与 UV,使竖屏视锥内右侧城堡和瀑布均可见;不把横图直接居中裁掉右侧地标。不加碰撞、不投影、不受近景灯光二次照明。用两侧树冠及后排屋顶遮住底部衔接边,保持相机固定;首版不增加天空盒和复杂视差层。
Unity 交付与验收
- 资产计划目录:
AIClient/Assets/Bundles/Scenes/Town/HomeCamp/。 - 中间件:
Tools/output/homecamp_3d/、Tools/output/homecamp_studio/。 - 目标:组件 Prefab、
HomeCamp.prefab、独立HomeCamp.unity及竖屏验收截图。 - 所有导入、材质、碰撞体、Prefab 和场景制作走 Unity Pipeline,不直接改
.meta/.unity/.prefab/.mat。 - 地表使用非凸 MeshCollider,验证贴地、门口可达、模型穿插和喷泉池遮挡。
- 场景和面片在编辑器持久化,不用运行时代码临时拼业务场景。
- 图片登记到
Doc/ResDesc_Picture.md;模型实际产出后再登记 Model,不能提前声称模型完成。
当前状态
用户已明确回复“确认授权上传”,授权向 https://3d.hunyuan.tencent.com/ 上传四张近景分件图及其衍生模型,执行网页高模、Studio 低模与 UV 处理。此前的审批拦截已因新增明确授权解除。
四个 50k 档高模及 Studio 低模/UV、Blender 烘焙、条件减面均已执行;任务号、哈希、实际面数和逐步回执记录到 homecamp_scene_manifest.json 及各组件 production.json。
Studio GLB 在法线和 UV 接缝处拆分顶点,直接减面会删除碎片。新增 bl_decimate_homecamp_uv.py 先焊接重合几何顶点、校验逐面 UV 仍保留,再减面;bl_repair_homecamp_surface.py 统一面朝向,不生成新 UV。最后对保留 UV 的最终低模补同源投射烘焙。主屋/喷泉最终 1981/1795 面;侧屋预算从1800改为3000,最终2995;地表保留8303面并以6500预算的130%容差跳过减面。旧预算尝试回执保留,不能把它们当最终通过结果。
侧屋和 Studio 地表仍有表面瑕疵,仅保存制作/审核资产,没有摆入交付场景。交付场景采用通过外观检查的主屋三实例和喷泉,地表用连续顶面编辑收尾。Test/HomeCampXPbr 是项目 XPbr 的独立双面版本,仅供 HomeCamp 材质使用,未修改原 XPbr Shader。
统一场景模型入口为 Tools/scene_component_pipeline.py --manifest Doc/Design/Scene/HomeCamp/homecamp_scene_manifest.json --part <ground|mainhouse|cottage|fountain>;Tools/homecamp_model_pipeline.py --part ... 保留为兼容入口,使用 D:/UD/AI/XModel/LLM3DGraphics/.venv/Scripts/python.exe 运行。每件资产的五步回执位于 Tools/output/homecamp_studio/<part>/production.json;重复执行校验来源与配置并复用已完成阶段。
Unity 入口为 AIClient/AgentScripts/BuildHomeCamp.cs:BuildAssets 导入和制作组件,CaptureParts 四向验收,Build 持久化拼装并渲染两种竖屏尺寸,Verify 验证面数、XPbr、地表碰撞与无碰撞的 Unlit 远景。通过 Pipeline 的 run_script 执行,构建用 Additive 临时场景并恢复原场景;初始 Boot.unity 没有未保存编辑。
首版交付与验证结果
- 场景:
AIClient/Assets/Bundles/Scenes/Town/HomeCamp/HomeCamp.unity。 - 总 Prefab:同目录
HomeCamp.prefab;31处布局记录见Tools/output/homecamp_review/assembly.txt。 - 标准竖屏与长屏截图:
Tools/output/homecamp_review/homecamp_portrait.png/homecamp_tall.png。 - 验证:
Tools/output/homecamp_review/verification.txt,实际拼装 9987 三角面,连续地表 25/25 射线采样通过,远景 Unlit、无碰撞、不投影;独立场景未加入 Build Settings。 - Pipeline 制作脚本编译无诊断;基于本轮起始 cursor=382 查询 Console,未新增 error。Boot 场景仍为
dirty=False。 - 当前交付是固定相机静态场景,尚未替换首页背景或接入角色行走;未构建或发布 Art/Player,未做真机性能验收。长屏会裁掉部分边缘房屋/远景,正式首页接入时仍需按机型调整相机。
v2 美术精修(2026-10-28)
按 SceneReviewGeneration.md 阶段 5 执行,入口顺序:BuildLookDev → Build → Bake(烘焙后自动 Capture)→ Verify。参数见 manifest lookDev。
- 地表:换成 42×42m 地面,使用 XTerrain 两层(石板/草地 1024² 无缝贴图 + 512² 控制图,由
Tools/homecamp_ground_textures.py生成),石板 3.2m 重复一次。 - 材质:除远景图外全部为 Lit;树/花面片改为 Simple Lit AlphaClip,投影并接收阴影。
- 光照:前左暖色 Mixed 主光、三色环境光、线性雾;Subtractive 光照图 + AO,非方向性,1 张 1024 光照图,烘焙 25 秒。编辑器离屏截图不渲染实时阴影,审核以烘焙结果为准。
- 后处理:
HomeCampVolume.asset(Neutral 色调映射、轻度对比/饱和、Bloom 0.3、暗角)。 - 布局:从 31 处增至 58 处,右侧房屋改为镜像实例,新增 2 棵树、1 盏路灯、1 张长椅,24 处花丛;拼装 11236 三角面。
- 结果:TECH PASS;对比图
Tools/output/homecamp_review/compare_portrait.png。六轴评分:构图 3、材质 3、光照 4、色彩 3、密度 2、比例 3,ART FAIL。 - 退回项:① 缺少 B/C 级道具(栅栏、遮阳摊位、花盆、岩石、台阶、柏树、灌木),需新的混元上传授权;② 前景草地过空,需要灌木/岩石/花丛打散,草地层也要加变化;③ 机位比参考图更俯、广场显得过大,需拉近、放低视角;④ 喷泉光照图 UV 有 436 texel 重叠(画面未见瑕疵)。
v2 B/C 道具(2026-10-28)
用户授权后新增栅栏、摊位、岩石、台阶、柏树、灌木、单盆花盆。混元 50k → Studio → 烘焙 → 条件减面;全部经 BuildHomeCamp.BuildProps 导入。
| 分件 | 目标面 | 最终面 | 状态 |
|---|---|---|---|
| fence | 1000 | 1055 | 已摆入 |
| stall | 2500 | 2500 | 已摆入 |
| rocks | 600 | 600 | 已摆入 |
| steps | 1200 | 1198 | 已摆入 |
| cypress | 1500 | 1500 | 已摆入 |
| bush | 1800 | 1800 | v2 简化叶团后通过 |
| flowerpot | 800 | 799 | 三盆组合失败后拆单盆,场景内 10 实例 |
| flowerpots(组合) | — | — | 放弃:Studio 16589 面,减面丢面积;见 manifest fallback |
拼装 87 处、47489 三角面。TECH PASS。六轴:构图 4、材质 3、光照 4、色彩 4、密度 4、比例 4 → ART FAIL(材质)。退回:前景草地打散、可选补遮阳棚侧屋。
v2 草地打散与材质收尾(2026-10-28)
- 草地:新源图
ground_tile_grass_v2_source.jpg→ 暖色草坪层 + 深绿苔藓层;控制图 G/B 噪声分斑,避免平涂霓虹绿。 - 光照:主光 1.7、阴影强度 0.72、Subtractive 阴影色提亮;后处理饱和度 8 / 对比度 10。
- 布局:房屋下沉 8cm;前景加岩石/灌木/花丛,98 处、54101 三角面。
- 六轴全 ≥4 → ART PASS。侧屋遮阳棚仍用摊位+主屋实例代替,原 cottage 仅保留审核。
v2 真侧屋 cottage(2026-10-28)
- 重绘白底分件图并混元 50k → Studio → 烘焙;最终 3500 面。
- 左侧
HouseLeft换成 cottage(黄白遮阳棚 + 柜台);去掉 StallLeft,避免双遮阳棚。 - 四向审核
Tools/output/homecamp_review/cottage_sheet_v2.png;场景 97 处 / 53120 三角面,TECH PASS。
DGX 阔叶树与花丛(2026-11-03)
按 DGX3D_AI调用指南.md 的静物路径制作,不用网页混元 Studio UV。本地 Turbo 出黏土参考图,再 engine=dgx、character_type=static 生成网格并烘焙低模。
| 分件 | 目标面 | 最终面 | 场景 |
|---|---|---|---|
| shadetree | 2000 | 1999 | 屋后左右草地各一棵,落在竖屏画面内 |
| flowercluster | 800 | 794 | 近景草地四处,另加喷泉环六丛 |
阔叶树首版导出沿 Z 横躺,已离线把树干转到 +Y、原点放回底面中心。花丛正面可读,侧面花瓣仍是低模块面。
同日下午把喷泉一圈 12 张花卡片换成 6 丛花丛,正面朝向镜头,否则俯视只看见叶顶。竖屏水平视角大约 29°,|x|>=11 的树位在画面外,网格只会在边缘露一块。阔叶树因此只留屋后左右两棵(左高 6.2,右高 5.7,朝向不同),更远的两张树卡片保留。Bake 26 秒,竖屏 Tools/output/homecamp_review/homecamp_portrait.png。未重做六轴评分。广场其余花边仍是卡片。烘焙前会先关掉已打开的旧 HomeCamp,避免内存里的卡片场景把新布局写回去。
HomeCamp 道具性能与显存深度优化(2026-11-03)
针对场景内高频小道具导致的面数高(原 53,120 面)、多材质导致无法 GPU Instancing 合批以及贴图未压缩占用过大问题进行系统优化:
- Shader 补全 GPU Instancing 变体支持:
- 修复 HomeCampXPbr.shader 的 ForwardLit 主渲染 Pass 缺少 #pragma multi_compile_instancing 的问题,确保场景道具前向渲染时能够被 URP 正确合批。
- 小道具材质全面开启 Instancing:
- 场景内 lowerpot(10 实例)、ush(10 实例)、cypress(3 实例)、ence(3 实例)、lowercluster(10 实例)等道具材质全部启用 enableInstancing = true,同类道具可在单 DrawCall 内完成渲染。
- 高频道具拓扑减面(保留角点 UV 与外观):
- ush:从 1800 面优化至 648 面(减少 64% 面数),10 处灌木累计节约 11,520 三角面。
- lowerpot:从 799 面优化至 279 面(减少 65% 面数),10 盆花盆累计节约 5,200 三角面。
- cypress:从 1500 面优化至 800 面(减少 47% 面数),3 棵柏树累计节约 2,100 三角面。
- ence:从 1055 面优化至 450 面(减少 57% 面数),3 段栅栏累计节约 1,815 三角面。
- 场景总拼装面数从 53,120 面骤降至 44,381 面(削减近 9,000 面),核心视觉轮廓保持无损。
- 贴图导入规格优化:
- Props 小道具的 base / mix 贴图从原 1024/2048 Uncompressed 优化为最大 512×512 且开启纹理压缩(Compressed),小道具贴图显存占用直降 90% 以上。
- 重构与光照烘焙验证:
- 经 BuildProps -> BuildLookDev -> Build -> Bake 全流程重构并完成光照贴图烘焙,25/25 地表射线检测通过,TECH PASS。前后对比图保存至 AIClient/Assets/Screenshots/homecamp_optimization_comparison.png。
?????2026-11-03?
???? Art ????? HomeCamp.unity?????????????? JSON ??? UI_MainHUD/CampWorld ??????????????????????????????????????????????? 720?????????????????????????????????? 3D ??????????????????????????????????????????????????????????
?? Unity Pipeline ?? HUD Prefab ??? Art ??????? Play Mode ?? 1080?1920 ? 1080?2338 ??????????????????????? Art ??? YooAsset ?????????????????? Play ??????????? Tools/output/homecamp_integration/?????????? Art/Player????????????????
首页曝光下调(2026-11-04)
按首页实际截图反馈,通过 Unity Pipeline 将 HomeCampVolume.asset 的 ColorAdjustments.postExposure 从 +0.74 EV 调为 +0.30 EV(降低 0.44 EV),收住屋顶、墙面和石板路亮部。BuildHomeCamp.cs 与场景 manifest 的曝光参数同步,避免重建覆盖。未修改 UI 色彩、主光、烘焙光照、Bloom 或饱和度。
1080×1920 隔离首页预览已检查,截图:Tools/output/homecamp_exposure_20261104/home_exposure_030.png。退出 Play 后恢复原 Boot 场景且无未保存修改。未重建或发布 Art 资源包。