UE4中使用射线广播提高速度

问题描述 投票:0回答:1

我目前正在使用Ray-cast开发激光雷达传感器模型。以10Hz旋转的16通道传感器应产生300000点。我可以使用300000次Ray-cast操作来获得此结果,但性能却很弱(当对传感器进行运动时,帧速率降至8)。我还有其他更好的方法或算法可以使用吗?

要求:

  • 要扫描360度:水平
  • -25至15度:垂直
  • 300000次扫描
unreal-engine4 raycasting
1个回答
0
投票

要模拟激光雷达,您可以使用SceneCaptureComponent2D的深度缓冲区。

  1. 使用格式:RTF R16f创建渲染目标纹理
  2. 创建SceneCaptureComponent2D,分配目标纹理,在R中设置CaptureSource-> SceneDepth
  3. 使用TextureObjectParameter创建材质,采样并除以以cm为单位的max_lidar_distance值
  4. 创建DynamicMaterialInstance,将TextureParameterValue设置为目标纹理
  5. 现在您已将场景深度渲染为纹理,可以将其复制到主存储器中以进行其他处理。

检查屏幕截图和示例项目:https://drive.google.com/open?id=1TImwJXmk5syvcPdPCylKXaaSCP99UI-m

© www.soinside.com 2019 - 2024. All rights reserved.