我必须渲染动态获取的点云。点云被分割成对象,这些对象单独渲染为几何图形。每当现有对象移动时,其几何形状就会更新。每当一个新对象进入场景时,就会添加一个新的几何体。问题来了,每次添加新的几何体时,渲染器的视点都会改变。我还没有找到如何将观点稳定在固定的外在因素上的正确方法。如有任何帮助,我们将不胜感激。
下面的伪代码说明了我正在做的事情。首先创建并添加点云,然后更新(如果已存在)。
while True:
if not 'pcd' in locals():
pcd = o3d.geometry.PointCloud.create_from_rgbd_image(rgbd_image, camera_intrinsic, camera_extrinsic)
# adding a new geometry
vis.add_geometry(pcd)
else:
pcd_new = o3d.geometry.PointCloud.create_from_rgbd_image(rgbd_image, camera_intrinsic, camera_extrinsic)
pcd.points = pcd_new.points
pcd.colors = pcd_new.colors
# updating an existing geometry
vis.update_geometry(pcd)
vis.update_renderer()
vis.poll_events()
使用
vis.add_geometry(pcd, reset_bounding_box=False)
。该标志可防止重新计算视口边界框。