Starting from the version 2.1. of Agisoft Metashape Professional the option for building block model is available. Building of a block model is suitable for a large scale projects, the model to be split in blocks according to the set block size. In this article the following steps of building and editing a block model are introduced:

Build Block Model

Building a block model is available after the alignment stage. The parameters for building a block model are set in the Build Model dialog box.

It is important to edit the bounding box before building a block model, because the block model will be built only for the area that is included in the bounding box. 

To adjust the bounding box manually, use the region tools on the Toolbar:

Alternatively you can create a polygon and use it as boundaries to build a block model. Draw a polygon around the area of interest and use the polygon context menu to set the type Outer Boundary for the shape:

To build block model select the Build Model... command from the Workflow menu (Workflow > Build Model...). In the Build Model dialog box select the desired reconstruction parameters:

Enable Split in blocks option to build a block model.

The quality of the block model, face count and source data are selected in the General section of the Build Model dialog window. You can also specify additional parameters for building a block model in the Advanced tab. The parameters from the Blocks section are described below, these are additional parameters for building a block model:

  • Split in blocks - Enable the option to build a block model.
  • Coordinate system - allows to choose a coordinate system from the drop-down list or upload parameters of a customized coordinate system. The coordinate system set by default is the coordinate system previously selected for the model itself.
  • Block size (m) - specify the block size in meters. 
  • Grid origin - the parameter sets the origin of the internal coordinate system of the block model.

Enable Skip blocks outside boundary option to set boundaries for a block model using a polygon:  
In the described example case the bounds of the bounding box are used to build a block model, so Skip blocks outside boundary option will not be used in our case.

Use Preview... button to export each constructed block during the construction of the block model. 

In the Block Model Preview dialog box there is a possibility to specify output folder for blocks and build preview textures for the block (this is similar to the algorithm for constructing vertex colors for a polygonal mesh model).

Click OK button in the Block Model Preview dialog window to apply the set parameters during the building block model. Or click Cancel button to cancel the use of the specified parameters.

If you don't want the individual blocks to be exported during the construction of the block model, then you can skip this step and not use the Preview... button in the Build Model dialog window. 

To start building block model click OK button in the Build Model dialog window. 

The progress dialog box will appear displaying the current processing status. To cancel processing click Cancel button.

The result of the block model will be displayed in the Model view:

Each block is saved as a separate tile:

To display a separate tile, select the Set as Default command in the context menu of the tile on the Workspace pane:

Build Texture

Select Build Texture... command from the Workflow menu (Workflow > Build Texture...). Set the parameters in the Build Texture dialog:

Texture type:
Diffuse map - the basic texture that stores the colors of the model surface.
Normal map - texture map that allows to calculate the illumination of the model parts from different light sources in the post-processing workflow.
Occlusion map - a texture that contains pre-calculated shading information from background lighting. 

Displacement map - a black-and-white texture where each pixel has a value from 0 to 255. These values are used to determine the height of each point on the surface of the object. 

More information about texture type you can find in our article: Texture map types

Mapping mode - the texture mapping mode determines how the object texture will be packed in the texture atlas. Proper texture mapping mode selection helps to obtain optimal texture packing and, consequently, better visual quality of the final model. The default mode is the Generic mapping mode; it allows to parametrize texture atlas for arbitrary geometry.

Blending mode - selects the way how color values of pixels from different cameras will be combined in the final texture.

You can set the Pixel size (m) in the Build Texture dialog box to get a photorealistic texture. The parameter is calculated automatically, but it is possible to specify a different value for pixel size.

Instead of Pixel size, Page count parameter can be used. In this case it is important to specify the texture size and the number of pages. Page count - determines the number of files for texture to be exported to. Usually, the texture atlas size in the range of 4096 - 16 384 pixels is sufficient.

Click OK button to start building texture.  

Export Block Model

The block model is exported as a tiled model. Select the Export tiled model command in the context menu of the block model.

You can export block model in the following formats: 

  • Cesium 3D Tiles 1.0 (*.3tz)
  • Cesium 3D Tiles 1.1 (*.3tz)
  • Scene Layer Package (*.slpk)
  • ContextCapture 3MX (*.zip)
  • PhotoMesh Layer (*.zip)
  • OpenSceneGraph Binary (*.zip)
  • OpenSceneGraph Text (*.zip)

How to export a separate block

You can also export each block of the block model separately as a mesh model. Select the appropriate block on the Workspace pane and select Export Model command from the tile context menu:

Metashape supports model export in the following formats:
• Wavefront OBJ (*.obj)
• 3DS file format (*.3ds)
• VRML models (*.wrl)
• COLLADA (*.dae)
• Stanford PLY (*.ply)
• X3D models (*.x3d)
• STL models (*.stl)
• Alembic (*.abc)
• Autodesk FBX (*.fbx)
• Autodesk DXF Polyline (*.dxf)
• Autodesk DXF 3DFace (*.dxf)
• Open Scene Graph Binary (*.osgb)
• Open Scene Graph Text (*.osgt)
• Binary glTF (*.glb)
• U3D models (*.u3d)
• Adobe PDF (*.pdf)
• Google Earth KMZ (*.kmz)

It is important to export the model in the Local coordinate system and to enable Write metadata.xml file option:

It is also possible to export a separate block, edit it in a third-party software and replace the block in the original block model. This process is described in detail below (see Import block section).

Editing a block model

Еditing a block

You can edit each block from the block model separately if you make it active. Select Set As Default option from the context menu of the corresponding tile on the Workspace pane. Only the block that is set a Default will be displayed in the Model view, and this block can be edited:

You can also apply the following tools: Smooth model, Close holes, and so on to this area, available through the Tools > Model menu or use the commands from the Process section of the tile context menu.

Switching between blocks in this mode is available by double-click with the left mouse button. 

After editing the block, select the Update LOD command from the block context menu to apply the changes to the block and update the level of detail pyramid. 

Import block

You can edit the model in a third-party program and import the model back. To import a block back into the project correctly, you need to make the block (tile) active (select Set Active option from the Tile context menu). Then Metashape will have to overwrite this area.

Select File > Import > Import Model... and choose the file with the edited block. In the import dialog box, specify the import parameters:

Click OK button to import the model: 

Re-building a texture for a block

After you have imported the edited part of the block model, you can re-build the texture for this area, while preserving the texture for other tiles and not rebuilding the entire texture. For the purpose enable the Skip textured blocks option in the Build Texture dialog window: