Skip to content

洋流模块编译验证已通过,但编辑器中可视化阻塞 #54

Description

@Syysean

测试执行过程中,已完成洋流模块的编译验证核心力学逻辑验证,但在推进可视化相关测试用例时遇到阻塞,记录如下,请问是否有没有遇到过类似情况 / 是否有现成的解决方案

已验证通过的部分

1. 编译验证

MuJoCoSimulation.h/.cpp 中洋流模块代码(三层级联模型、xfrc_applied 注入、可视化接口)完整编译通过,证据:

  • Build.bat 全流程编译无 error,仅有两条与本次改动无关的插件依赖声明 warning
  • USTRUCT 反射正常:编辑器细节面板可见完整的 FMjOceanCurrentConfig 字段树(GM_MeanSpeed、TurbulentIntensity 等均正确显示)
  • 构造函数中 CreateDefaultSubobject<UArrowComponent> 正常执行,OceanCurrentArrow 组件出现在 Actor 组件树中

2. xfrc_applied 注入通过

ApplyOceanCurrent() 末尾加入临时调试日志,逐帧打印 OceanCurrentVelocity 与对应的 xfrc_applied 值,PIE 运行后核对多组数据,均精确符合:

xfrc_applied[bodyId6+0] = -10.0 * OceanCurrentVelocity.X

xfrc_applied[bodyId6+1] = -10.0 * OceanCurrentVelocity.Y

xfrc_applied[bodyId*6+2] = -10.0 * OceanCurrentVelocity.Z

抽样示例:V=(-0.0123,-0.0064,-0.0021) → F=(0.1233,0.0644,0.0208),逐项符合 F=-10×V,验证通过

需要明确的一项:当前测试中 GM_Mu=0.0,导致 Gauss-Markov 过程退化为无约束随机游走,长时间运行下洋流速度会持续偏离 GM_MeanSpeed=0.5 这个均值(观测到的实际速度多在 0.001~0.013 量级,远低于配置值)。这是否符合预期设计?如果业务上希望速度维持在均值附近波动,建议 GM_Mu 设置一个小的非零值

当前阻塞问题:编辑器内模型不可见

现象:使用 model/pendulum.xml 加载模型后,Body Map/Geom Map 1 均正常生成(各 2 个元素),日志无报错,但无论如何调整相机位置(包括 ToggleDebugCamera 自由相机贴近观察),均无法在视口中看清模型几何体。唯一能稳定看到的是构造函数中创建的备用占位组件(VisualRepresentation,连接 Shape_Cylinder)和洋流箭头(OceanCurrentArrow

初步排查结论

  1. GenerateMeshes()SetWorldScale3D 直接使用 MuJoCo 米制单位作为缩放系数,作用在约 100cm 的 StarterContent 基础网格上,导致实际渲染尺寸可能只有几厘米(取决于具体模型的物理尺寸),在默认视角下几乎不可见。已尝试通过新增 VisualScaleMultiplier(仅作用于渲染显示,不影响物理仿真数据)放大显示比例,但实测放大后仍然无法在视口中找到模型,怀疑还有其他因素叠加(比如 Geom 的实际世界坐标是否正确、是否被其他组件遮挡、或者渲染管线本身的问题),需要进一步排查

  2. defaultMesh 原本试图加载 Carla 的 SM_Plane 资源,但本项目 Content 目录下没有 Carla 资源,导致默认网格一直为 None,目前是手动在编辑器里临时指定 Shape_Cylinder 绕过,没有写回代码层面的修复

  3. 项目自带的 Content/MuJoCo/ 文件夹下原本应该有专属的几何体网格资源(Sphere1Cube2Cylinder1 等),但这些资源在内容浏览器中始终无法被索引到(显示 0 项),怀疑是资产注册表缓存未同步,尚未确认根本原因(已知可能方案:清理 Intermediate 文件夹重新扫描,尚未实际验证)

疑问

  • 这套渲染管线是否在其他人本地环境下能正常显示模型?是否有人之前实际验证过 pendulum.xml 这类基础模型能在编辑器里正常看到?
  • Content/MuJoCo/ 下的资源索引不到的问题,是否是已知坑(比如这批资源是通过非标准方式拷入项目的)?
  • 是否有更推荐的调试可视化方式(比如直接用某个已验证可用的场景/模型来测试洋流效果,而不是从 pendulum.xml 开始)?

受阻塞的测试用例

由于无法在视口中确认模型位置和运动状态,以下用例暂时无法推进:

  • 洋流箭头可视化、分层剖面、热力图等,全部依赖肉眼观察
  • 恒定洋流漂移、分层深度依赖、长时间稳定性等,全部需要观察模型的实际运动轨迹
  • 中"摆锤摆动"的视觉验证部分

这部分用例约占我计划测试总量的 24/26,在可视化问题解决前,只能推进不依赖视觉观察、可通过日志数值核对的用例

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions