2021SC@SDUSC
open3d
当需要快速可视化静态几何体时,draw_geometries()是一个十分有用的函数。但是这个函数会锁定一个进程直到可视化的窗口关闭。当需要在不关闭窗口的情况下更新几何体并可视化时,open3d中有一个更好的自定义循环渲染的方式。
draw_geometries()的循环渲染方式
while(true):
if (geometry has changed):
re-bind geometry to shaders
if (view parameters have changed):
re-render the scene
if (any user mouse/keyboard input):
respond to it and set flags for re-rendering
绑定几何体和渲染都是很费资源的操作,因此open3d以一种惰性操作的方式进行。当需要进行几何体的绑定和渲染时就使用update_geometry()和update_renderer()函数将绑定和渲染功能设为打开,在重新绑定或者渲染之后就清空这两个标志。
用自定义循环来可视化ICP配准的过程的例子
vis = Visualizer()
vis.create_window()
for i in range(icp_iteration):
# do ICP single iteration
# transform geometry using ICP
vis.update_geometry(geometry)
vis.poll_events()