Strategies for 3D Modelling of Buildings from Airborne Laser Scanner and Photogrammetric Data Based on Free-Form and Model-Driven Methods: The Case Study of the Old Town Centre of Bordeaux (France)  
The data-driven method can be divided, in turn, into modelling by primitives and free-form modelling. Modelling by primitives is historically more popular and does not require particularly dense point clouds. This method uses a bottom-up approach [8], geometric primitives (e.g., planes, cylinders, cones, spheres, and tori), topological analysis, intersection of the primitives, and construction of the model [13; 14; 15; 16; 17; 18]. Modelling by primitives is used to model simple or medium complex buildings. Instead, free-form modelling is used to model 3D buildings with a high level of complexity and which cannot be formally represented by primitives only. Free-form modelling, instead, constructs 3D buildings by creating a triangular mesh (tri-mesh) directly from the point cloud, without intermediate steps. Two well-known methods are the Delaunay method [19; 20; 21; 22] and the Poisson surface reconstruction method [21; 22; 23; 24], but often the output models are heavy and difficult to manage. In order to work with manageable models, there are several options: transformation into quadrangular mesh [25; 26], into Non-Uniform Rational Basis-Splines (NURBS) [27], decimation of triangular mesh [28; 29; 30], quadtree simplification [5; 31], tetrahedral simplification [5; 32], 3D octree simplification [5; 33], and polygonisation [34]. The main benefit of free-form modelling is its capability to model complex structures; for example, it is possible to model curvilinear roofs, parametric structures, rock habitats, monuments, etc. [5; 26; 35; 36]. Some problems may derive from insufficient point cloud density, lack of point cloud closure, noise, and the presence of outliers [5]. Due to the angle of data acquisition, one of the main challenges in ALS free-form modelling is the reconstruction of building facades that are located in shaded areas during the survey phases; this produces a loss of data in the point cloud. Small losses of data can be corrected by the use of \"Close holes\" algorithms or contour line smoothing algorithms; large data losses, instead, can be corrected, for example, by using building symmetry [36] or vertical extrusion of contour lines [37]. In order to compensate the massive lack of facade data obtained with ALS survey, the point cloud could be generated by a terrestrial sensor, such as TLS or MLS. The merging of the two types of datasets provides a complete point cloud and allows excellent free-form modelling even in the most complex scenarios [38; 39]. Model-driven modelling uses a top-down approach [5]. In this method, on the basis of the input data (e.g., Digital Surface Model--DSM, Digital Terrain Model--DTM, normalised Digital Surface Model--nDSM, and the building footprint) and the pre-recorded models contained in the database of the software used, the most suitable roof model for the point cloud is first selected and then the model is generated, verified, and if necessary corrected. Model-driven, since it uses models of pre-recorded \"roof primitives\", is close to modelling by geometric primitives [40]. The main advantage of model-driven modelling is the ability to quickly reconstruct large urban scenes composed by flat or multi-level prismatic buildings and polyhedral buildings composed by multi-pitch roofs [41; 42; 43]. In contrast, automatic construction is limited to pre-recorded models that applications can recognise automatically. For example, ESRI's 3D Basemaps Solution builds a database consisting of eight roof types of which three are automatically recognised (flat, gable, and hip) and five (shed, mansard, dome, vault, spherical) must be interactively selected by the operator in the verification and correction phases [44]. One strategy to partially extend the model database and construct complex roofs in 3D is to transform the complex roofs into a set of simple pre-registered roofs.