Hi,
I am evaluating the viability of project chrono for a robotics simulation
application. As part of this, I need to import a large mesh (~1.3 million
faces) into my simulation. The whole thing uses the same, single color
visual material.
auto body= std::make_shared<ChBodyEasyMesh>(
filename,
7000,
true,
true,
false,
std::make_shared<ChMaterialSurfaceSMC>());
This works fine. However, it really slows down my camera sensor. I have a
single camera sensor (ChCameraSensor) facing the mesh.
auto cam = chrono_types::make_shared<ChCameraSensor>(floorBody,
40,
pose,
width,
height,
1.4,
1,
CameraLensModelType::PINHOLE,
false);
Rendering a frame (specifically, the ChSensorManager::Update() call) takes
over 100ms, where it only takes a few milliseconds if I have some simple
cubes in the frame.
I have tried the following things to speed it up:
1. Reduce camera resolution by 10x, this had no effect!
2. Add more cameras to see if it scales at all, this had no effect!
3. Increased MaxEngines on the SensorManager, no effect
4. Set RayRecursions on the SensorManager to 0, no effect
5. Adding no extra filters to the camera, no effect
6. Use ChVisualSystemIrrlicht to visualize, this performed even worse
7. Run on a powerful desktop with a high end GPU, this performed slightly
better, but not by much
8. nvidia-smi shows that the GPU is not being utilized anywhere near 100%
I am really surprised by this, as the settings on the cameras do not seem
to influence this at all. Is there something I can do about this, or can
Chrono Sensors just not handle large meshes like that?
What is it the sensor manager doing with all this time?
Kind regards,
Patrick
--
You received this message because you are subscribed to the Google Groups
"ProjectChrono" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/projectchrono/ee983d1b-200e-485e-b13b-740097296d69n%40googlegroups.com.