## 4 Technical Analysis
### LOD Model Loading  
It is well known that joints play an important role in steel structures. The layout of joint plates, bolts, and other parts can greatly affect the mechanical performance of structures. Therefore, in the construction models of steel structures, it is necessary to model the joints accurately, which contain a large amount of geometric information. The installation process of joints has little impact on the macroscopic management of steel structures, but it takes up many hardware resources. For general BIM models, some researchers utilized the methods of spatial index and visual field culling to reduce the hardware load during rendering [62; 63]. However, since there are no walls, plates, or other components to block the vision in the construction models of steel structures, especially no rooms or stories for some types of structures such as steel structural workshops, the method of vision field culling is not feasible in rendering construction models of steel structures. Therefore, in this study, a multi-level LOD loading mechanism was presented to improve the system performance by combining the characteristics of the steel structural models and perspective projection. The specific scheme is as follows: (i) simplify the mesh of the components in the geometry files into different degrees; (ii) apply simplified geometry information to save hardware resources when the viewpoint is far away from the instance; and (iii) apply less  
Figure 4: The WebGL rendering process. simplified geometry information to express the detailed geometry features of the instance when the viewpoint is close to it. There are two basic principles for the mesh simplification technology [63] as follows:  
1. Minimum vertex principle: minimize the number of model vertices under the given error limit. 2. Minimum error principle: minimize the error between the generated model and the original one under the given simplification rate. The commonly used algorithms of mesh simplification include vertex deletion [64], vertex clustering [65], triangle folding [66], region merging [67], edge folding [68], etc. This paper employed the edge folding algorithm to perform mesh simplification, which is widely used in practice. The algorithm process is as follows:  
1. Calculate the error associated with each edge and create the minimum heap. 2. Take out the edge with the smallest error, and then fold the edge. To decrease the error, place the new vertex, modify the error of the new edge, and adjust the minimum heap. 3. Repeat the process until the user requirements are met or the minimum heap is empty. A single step of simplification is illustrated in Figure 5. In this figure, the shortest edge AB is folded, and then the corresponding edges AC, AD, AE, BE, BF, BG, and BC in the left polygon are replaced by edges AC, AD, AE, AF, and AG in the right one. Particularly, the coordinate of the new point A' should follow the principle of minimum error. Figure 6 shows a flowchart of the algorithm. The data structure of the program is shown in Figure 7. The main steps of the implementation are listed as follows. 1. Find the shortest edge denoted as E (\(V_{1}\), \(V_{2}\)), which needs to be folded. 2. In the vertex array, delete the two vertices, \(V_{1}\) and \(V_{2}\), and add the midpoint \(V_{3}\) of vertices \(V_{1}\) and \(V_{2}\) into the vertex array. 3. In the edge heap, delete edge E (\(V_{1}\), \(V_{2}\)) and replace edges E (\(V_{1}\), \(\ldots\)) and E (\(V_{2}\), \(\ldots\)) with E (\(V_{3}\), \(\ldots\)). 4. In the patch array, delete t patch F (\(V_{1}\), \(V_{2}\), \(\ldots\)) and replace patches F (\(V_{1}\), \(\ldots\), \(\ldots\)) and F (\(V_{2}\), \(\ldots\), \(\ldots\)) with F (\(V_{3}\), \(\ldots\), \(\ldots\)). Since the minimum heap can only support the deletion of the top element, the deletion of the second type of edge is implemented by lazy deletion.