我是Point Cloud Library(PCL)和C ++编程的新手。我有一个简单的代码来加载多个.ply文件并使用下面的代码可视化它们。它迭代循环以加载作为参数给出的多个.ply文件(比如test0.ply,test1.ply ... test99.ply)并一个接一个地显示它们。我需要尽可能快地将它们可视化,就像它们是视频的帧一样。
这是我迄今为止所尝试过的。以前<Button HorizontalAlignment="Left" Height="40" Width="40" FontFamily="Arial Black" Foreground="White" Margin="5,30,0,0" fa:Awesome.Content="Folder">
<StackPanel>
<TextBlock>
My Folders
</TextBlock>
</StackPanel>
</Button>
被放置在我的循环之外,我什么都没看到。但后来我只是将它移到循环中并遍历列表并尝试将它们可视化。现在它可以工作,但它非常慢(只有1个FPS?!!)
出了什么问题?我应该如何更改代码以更快的速度显示模型?
spinOnce()
答案 0 :(得分:0)
您之前的动画循环正在尽快运行:
while(!viewer.wasStopped()){
viewer.spinOnce();
}
这可能意味着它渲染的图像比你看到的更快。如果你想要最大速度,你可以在那里放一些定时代码来测量每帧所需的时间。
现在,您的动画循环与文件读取循环相同,因此每个帧至少需要花费pcl::io::loadPLYFile
从磁盘/ SSD读取文件所需的时间。文件系统,存储,文件解释和渲染一起每个文件大约需要1秒钟就不足为奇了。
如果你想要一个流畅的动画,请在原始的快速循环中加一个延迟:
import <thread>
while(!viewer.wasStopped()){
viewer.spinOnce();
std::this_thread::sleep_for(0.04s);
}