.. _PointClouds: ============================ PointClouds ============================ Overview -------------- This feature enables importing and rendering e57 and pts pointcloud files. .. image:: /content/images/ext_pointclouds_woman_lamb.png :align: center :alt: ExamplePointcloud User Manual ----------------- .. image:: /content/images/ext_pointclouds_autoload.png :align: center When this extension is enabled, there are two ways to import an e57 file into the scene: 1. File->Import 2. In the Content Window, right click and "Convert to USD". Import Options for E57 Files ############################ .. image:: /content/images/ext_pointclouds_import_options.png :align: center :alt: ImportOptionsE57 When importing e57 files, there are two main options: 1. Convert to USD. 2. Copy into current stage. Converting to USD does just that, it creates a new usd file (by default in the same location as the .e57 file). This new file can be referenced like any other. Copying into the current stage duplicates the data without creating a reference. No matter how you choose to import the data, you can also choose to merge multiple scans contained inside a single e57 file. Import Options for PTS Files ############################ .. image:: /content/images/ext_pointclouds_pts_import_options.png :align: center :alt: ImportOptionsPTS When importing pts files: 1. Select source file up axis. 2. Select default color for cases when the imported file does not contain the color data. Rendering ###################### To render the pointclouds immediately upon import, check the option to create a renderer in the import options. Renderers are always created in the current stage, not in any generated usd files. To render a pointcloud that is already in the current stage, select the scan or scans. Then open |flow_short| Presets window `Window` -> `Simulation` -> `Presets`. **Be sure to select UsdGeomPoints objects before adding the preset to the stage.** .. image:: /content/images/ext_pointclouds_add_renderer.png :align: center :alt: RenderMenus With ``omni.flowusd`` in version 0.1.0 double click `Global Point Cloud` item. In version 0.3.0 and above right click the **PointCloud** preset item and select `Add to Stage` -> `Global Copy`. .. image:: /content/images/ext_pointcloud_flow_preset.png :align: center :alt: FlowPreset In order to render a pointcloud, |flow_short| needs to create a ``flowEmitterPoint`` object, which is linked to a single ``UsdGeomPoints`` object. It also needs to create other |flow_short| objects that contain specific settings for displaying a pointcloud. These settings are bundled under a single ``flowPointCloud`` object. The `global` point cloud preset (recommended) will create a |flow_short| emitter for each selected UsdGeomPoint, and will create the other settings globally if they do not yet exist. These settings should not be duplicated. Only copied point cloud preset will create a |flow_short| emitter for each selected UsdGeomPoint, and it will add the other settings as children to the first selected ``UsdGeomPoints`` object. This can cause the settings to be duplicated if they already exist, with unpredictable results. Flow Settings for Pointclouds ############################# The |flow| renderer was originally designed for rendering fluids and gases, but has been repurposed for pointcloud rendering. As such, there are some settings that are important to pointclouds and many that are not. #. **Cell Size** is located in the globally created ``flowPointCloud`` object. #. By default, |flow_short| will try to find the ideal cell size automatically (``autoCellSize`` = True). This setting can be lowered to increase pointcloud detail. #. Keep in mind cutting cell size in half is an 8x increase in cells and as a result simulation time. #. After ``autoCellSize`` finds a value, if another pointcloud is added, it will reset and find a new optimal value. #. The **Max Blocks** setting can be found in ``Render Settings`` -> ``Common`` -> ``Flow``. Setting this higher will require more memory consumption, but will allow higher levels of detail with a lower cell size. #. When Flow runs out of blocks, gaps may appear in the pointcloud and a warning will be printed to the console. Maximum Flow blocks of [X] in use, either reduce cell size or increase max blocks. #. Uncheck ``updateWhilePaused`` to boost performance once a scene is loaded. This setting is in the global ``flowPointCloud`` object. #. To toggle the visibility of a pointcloud, use the ``enabled`` option in the ``UsdGeomPoints`` child ``flowPointCloud`` object. .. tip:: Current usage of |flow_short| Blocks can be displayed in |flow_short| Monitor Window (`Window` -> `Simulation` -> `Monitor`) or in the Viewport layer (`Eye Icon` -> `Flow Monitor`) depending on the |flow_short| extension version. For more information on the |flow| renderer, see the `Flow <../../extensions/flow.html>`__ docs