Files

16 KiB
Raw Permalink Blame History

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。首版不含告示牌、拱门和围栏。

新场景组件默认模型流程

  1. 混元网页生成高模:每张白底分件图生成一份 50k GLB,保留任务号、日志、原始高模与哈希。
  2. 3D Studio · 低模生成:输入同一分件的高模,使用官网 Studio 低模功能,记录低模任务号和实际三角面数。
  3. 3D Studio · UV 展开:对上一步 Studio 低模展开 UV,记录 UV 任务号并校验输出。不得用 Blender 自动 UV 替代此步骤。
  4. Blender · 贴图烘焙:先将 Studio 居中/归一化后的低模对齐到其确切来源高模,保留 Studio UV,烘焙颜色、法线、AO、金属度、粗糙度,再打包 XPbr base/mix。
  5. 超出目标 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 合批以及贴图未压缩占用过大问题进行系统优化:

  1. Shader 补全 GPU Instancing 变体支持:
    • 修复 HomeCampXPbr.shader 的 ForwardLit 主渲染 Pass 缺少 #pragma multi_compile_instancing 的问题,确保场景道具前向渲染时能够被 URP 正确合批。
  2. 小道具材质全面开启 Instancing:
    • 场景内 lowerpot(10 实例)、ush(10 实例)、cypress(3 实例)、 ence(3 实例)、 lowercluster(10 实例)等道具材质全部启用 enableInstancing = true,同类道具可在单 DrawCall 内完成渲染。
  3. 高频道具拓扑减面(保留角点 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 面),核心视觉轮廓保持无损。
  4. 贴图导入规格优化:
    • Props 小道具的 base / mix 贴图从原 1024/2048 Uncompressed 优化为最大 512×512 且开启纹理压缩(Compressed),小道具贴图显存占用直降 90% 以上。
  5. 重构与光照烘焙验证:
    • 经 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 资源包。