Multi-surface cutting method for three-dimensional grid

By using K-D trees and adaptive voxels in urban-level three-dimensional mesh, and combining multi-faceted cutting algorithm to decompose and merge face sheets, the problem of low multi-faceted cutting efficiency of three-dimensional data in the existing technology is solved, and efficient and accurate cutting effect is achieved.

CN119762684AActive Publication Date: 2025-04-04TUXI DIGITAL TECH (BEIJING) CO LTD

Patent Information

Application Number
CN202510248913.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-04
Publication Date
2025-04-04
Estimated Expiration
2045-03-04

AI Technical Summary

Technical Problem

The prior art is difficult to efficiently and accurately cut three-dimensional data at urban scales, resulting in poor performance and high algorithm complexity.

Method used

By retrieving the set of cut surfaces of the three-dimensional mesh, compute the crop surface enclosure box, and query the large mesh through the K-D tree of the small mesh and the octree of the adaptive voxel, decompose the mesh to be cut into polygonal patches, construct an effective point set, retain or eliminate the effective points according to the cut surface relationship, and finally build and merge the three-dimensional patches.

Benefits of technology

It realizes efficient and accurate multi-faceted cutting of urban-level three-dimensional grids, reduces the computing complexity and storage space requirements, and improves performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119762684A_ABST
    Figure CN119762684A_ABST
Patent Text Reader

Abstract

The invention provides a multi-face cutting method and device for a three-dimensional grid, electronic equipment and a storage medium. According to the embodiment of the invention, a cutting face set of the three-dimensional grid is called to calculate a cutting face surrounding frame; obtaining a small grid to be cut through the K-D tree and / or obtaining a large grid to be cut through the octree of the self-adaptive voxel; then decomposing a small grid to be cut and a large grid to be cut into at least one polygonal surface patch, constructing vertexes of the polygonal surface patch into an effective point set to be processed according to a clockwise sequence, and retaining, eliminating and / or newly adding effective points according to a relative position relation to construct a three-dimensional surface patch; and finally, merging the three-dimensional surface patches into the three-dimensional grid to form a new three-dimensional grid. By adopting the scheme, surface patches can be quickly positioned and screened, and the performance and efficiency are balanced; the points and the edges are regenerated in an ordered point mode, the calculation efficiency is improved, the algorithm complexity is reduced, and the effect of efficiently and accurately performing multi-face cutting on the city-level three-dimensional grid is achieved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and in particular to a method, device, electronic device and storage medium for multi-faceted cutting of a three-dimensional grid. Background Art

[0002] With the gradual development of information technology, in the fields of GIS (geographic information system), in addition to the display demand of traditional two-dimensional raster (and vector) images, people pay more and more attention to the display of three-dimensional data. However, the display of three-dimensional data is a complex technical issue. The smooth display of three-dimensional data requires more than one order of magnitude more computing resources and optimization difficulty than two-dimensional data. Compared with the three-dimensional graphics rendering on large games or professional software, people are more accessible to three-dimensional graphics rendering on mobile terminals and browsers. However, on platforms such as mobile terminals and browsers, three-dimensional graphics rendering technology requires both the versatility of professional software and the real-time performance of game rendering. Even for today's graphics hardware, it is a big challenge to meet these two requirements on performance-limited platforms such as mobile terminals and browsers. When facing actual performance problems, image engineers will make targeted adjustments based on the platform, hardware performance, image complexity, algorithm, etc. However, due to the performance limitations of the terminal and the complexity of the three-dimensional model, directly displaying the three-dimensional model on the terminal often cannot achieve the desired effect. Cutting the 3D grid can achieve the purpose of partially displaying the 3D grid and reduce the rendering pressure of a large number of grids. It is widely used in model cutting and geographic information systems. For example, in the geographic information system, the model is sliced ​​to enable the platform to load on demand and reduce the rendering pressure of the platform. It plays an important role in urban planning and smart city construction.

[0003] However, although displaying a 3D grid after cutting can reduce the pressure of network rendering, it is not easy. The distribution of traditional 2D raster file data is uniform. Regardless of the size of the raster file, the position of each pixel can be quickly calculated through the pixels and the range represented by the pixels, so cutting on the grid is quite efficient. However, it is very difficult to cut a 3D grid, especially to cut massive 3D data at the city level. Since there may be a single large grid (model) representing a very large area (such as terrain, roads, rivers, etc.) in a 3D grid at the city level, there are also a large number of medium or small grids representing single objects (such as buildings, bridges, trees, etc.), so when cutting a 3D grid at the city level, the spatial distribution must be considered to avoid models that do not perform cutting operations. Slicing itself is a multi-faceted cutting problem. In 2D data, a slice is actually a rectangle, and each slice requires at least four cutting faces. By analogy to 3D data, a slice can be a cube (such as a cuboid), which generally requires four or six cutting faces. Single-face cutting in 3D data is complex in itself. Multi-face cutting can indeed be decomposed into multiple single-face cutting, but from the perspective of computational efficiency and storage space utilization, it is very inefficient and will greatly reduce performance. However, when cutting multiple faces at the same time, it will be difficult to generate facets at the cuts of multiple faces. Therefore, how to efficiently and accurately cut city-scale 3D data is a technical problem that needs to be solved urgently. Summary of the invention

[0004] Embodiments of the present application provide a three-dimensional grid multi-faceted cutting method, device, electronic device and storage medium to solve one or more of the above-mentioned technical problems.

[0005] In a first aspect, an embodiment of the present application provides a multi-faceted cutting method for a three-dimensional grid, which is applied to a city-level three-dimensional grid, comprising: retrieving a cutting face set of the three-dimensional grid, and calculating a cutting face bounding box in the cutting face set; querying a small grid intersecting with the cutting face bounding box through a KD tree to obtain a small grid to be cut, and / or querying a voxel in a large grid intersecting with the cutting face bounding box through an adaptive voxel octree, and obtaining a large grid to be cut in the voxel; decomposing the small grid to be cut and the large grid to be cut into at least one polygonal patch, constructing the vertices of the polygonal patch in a clockwise order as a valid point set to be processed, retaining, eliminating and / or adding valid points according to the relative position relationship between two adjacent valid points in the valid point set to be processed and the cutting face in the cutting face set to obtain an updated valid point set, and constructing a three-dimensional patch based on the updated valid point set; merging the three-dimensional patch into the three-dimensional grid to form a new three-dimensional grid.

[0006] In a second aspect, an embodiment of the present application provides a multi-faceted cutting device for a three-dimensional grid, which is applied to a city-level three-dimensional grid, including: a cutting surface bounding box acquisition module, which is used to retrieve a cutting surface set of the three-dimensional grid and calculate a cutting surface bounding box in the cutting surface set; a grid to be cut acquisition module, which is used to query a small grid intersecting with the cutting surface bounding box through a KD tree to obtain a small grid to be cut, and / or, query a voxel in a large grid intersecting with the cutting surface bounding box through an octree of an adaptive voxel, and obtain a large grid to be cut in the voxel; three-dimensional facet construction A module is used to decompose the small grid to be cut and the large grid to be cut into at least one polygonal patch, construct the vertices of the polygonal patch into a valid point set to be processed in a clockwise order, retain, eliminate and / or add valid points according to the relative position relationship between two adjacent valid points in the valid point set to be processed and the cutting surface in the cutting surface set, obtain an updated valid point set, and construct a three-dimensional patch based on the updated valid point set; a three-dimensional mesh forming module is used to merge the three-dimensional patch into the three-dimensional mesh to form a new three-dimensional mesh.

[0007] In a third aspect, an embodiment of the present application provides an electronic device, including a memory, a processor, and a computer program stored in the memory, wherein the processor implements any of the above methods when executing the computer program.

[0008] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method described in any one of the above is implemented.

[0009] According to the embodiment of the present application, the multi-faceted cutting method of the three-dimensional grid proposed in the embodiment of the present application can be applied to the three-dimensional grid at the city level. The cutting face set of the three-dimensional grid can be first retrieved, and the cutting face bounding box in the cutting face set can be calculated; then, the small grid intersecting with the cutting face bounding box is queried through the KD tree to obtain the small grid to be cut, and / or, the voxel in the large grid intersecting with the cutting face bounding box is queried through the octree of the adaptive voxel, and the large grid to be cut in the voxel is obtained; then the small grid to be cut and the large grid to be cut are decomposed into at least one polygonal patch, and the vertices of the polygonal patch are constructed as a valid point set to be processed in a clockwise order. According to the relative position relationship between two adjacent valid points in the valid point set to be processed and the cutting face in the cutting face set, the valid points are retained, eliminated and / or added to obtain an updated valid point set, and a three-dimensional patch is constructed based on the updated valid point set; finally, the three-dimensional patch is merged into the three-dimensional grid to form a new three-dimensional grid. The above scheme can be used for large grids and small grids in the city-level three-dimensional grid using targeted search methods respectively. The KD tree is used to index small grids and the voxel-based octree is used to index large grids to quickly locate and screen a number of faces that are acceptable from a calculation perspective. A large number of uncut faces will not be calculated, and each face will not be indexed to make the search space too inflated, thereby achieving a balance between performance and storage efficiency. After the search, based on the search results, the cutting results are calculated one by one according to the cutting surface, and new points and edges are regenerated in an ordered point manner, and finally all the results are copied at once. This "successive calculation of single copies" method of cutting faces improves the calculation efficiency and reduces the complexity of the algorithm, achieving the effect of efficient and accurate multi-faceted cutting of city-level three-dimensional grids.

[0010] This application organizes all three-dimensional grids and facets by constructing a spatial structure. In the process of cutting, the grids and facets cut by the cutting surface set and the calculation of the spatial structure are quickly screened out. For the parts that may be cut by the cutting surface, new points and edges are regenerated in the form of ordered points to generate a new three-dimensional grid, and the complexity of the grid topological structure is deliberately ignored to further improve efficiency and reduce algorithm complexity. Therefore, this application can not only quickly screen large quantities of data to reduce its calculation amount, but also multiple cutting surfaces will only generate a triangulated network once, and there will only be a single copy between data. The data copying efficiency has good performance and the performance improvement is very obvious. In addition, this application also expands the versatility of the algorithm based on the idea of ​​polygon clipping algorithm, so that it can perform cutting on three-dimensional and concave polygons; and abandons the retention of the original grid manifold characteristics in some traditional cutting algorithms, allowing its topological structure to be destroyed, so as to achieve the purpose of improving efficiency and reducing complexity.

[0011] The above description is only an overview of the technical solution of the present application. In order to more clearly understand the technical means of the present application, it can be implemented in accordance with the contents of the specification. In order to make the above and other purposes, features and advantages of the present application more obvious and easy to understand, the specific implementation methods of the present application are listed below. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] In the accompanying drawings, unless otherwise specified, the same reference numerals throughout the multiple drawings represent the same or similar parts or elements. These drawings are not necessarily drawn to scale. It should be understood that these drawings only depict some embodiments according to the present application and should not be regarded as limiting the scope of the present application.

[0013] Figure 1 A flow chart of a multi-faceted cutting method for a three-dimensional grid provided in an embodiment of the present application is shown; Figure 2 A schematic diagram of calculating a cutting surface bounding box in a cutting surface set in a multi-faceted cutting solution for a three-dimensional grid provided in an embodiment of the present application is shown; Figure 3 A schematic diagram showing a search space for constructing a three-dimensional grid using a KD tree of an external bounding box in a multi-faceted cutting solution for a three-dimensional grid provided in an embodiment of the present application is shown; Figure 4 A schematic diagram showing a search space of a three-dimensional grid constructed by using a quadtree of adaptive voxels when the z-axis length in the three-dimensional coordinate system is much smaller than the x-axis length and the y-axis length in a multi-faceted cutting solution of a three-dimensional grid provided in an embodiment of the present application is shown; Figure 5 A schematic diagram of a valid point set in a multi-faceted cutting scheme of a three-dimensional grid provided in an embodiment of the present application is shown; Figure 6 A schematic diagram showing a method of decomposing a three-dimensional mesh into at least one polygonal facet in a multi-faceted cutting scheme of the present application is shown; Figure 7 A schematic diagram showing a method of retaining, eliminating and / or adding effective points to obtain an updated effective point set according to the relative position relationship between two adjacent effective points in the effective point set to be processed and the cutting planes in the cutting plane set in a multi-faceted cutting scheme of a three-dimensional grid provided in an embodiment of the present application is shown; Figure 8 One of the example schematic diagrams of constructing a three-dimensional facet based on an updated valid point set in a multi-faceted cutting solution of a three-dimensional mesh provided in an embodiment of the present application is shown; Fig. 9 A second example schematic diagram of constructing a three-dimensional facet based on an updated valid point set in a multi-faceted cutting solution for a three-dimensional mesh provided in an embodiment of the present application is shown; Fig.10 A third example schematic diagram of constructing a three-dimensional facet based on an updated valid point set in a multi-faceted cutting solution for a three-dimensional mesh provided in an embodiment of the present application is shown; Fig.11 A structural block diagram of a multi-faceted cutting device for a three-dimensional grid provided in an embodiment of the present application is shown; and Fig.12 A block diagram of an electronic device used to implement an embodiment of the present application is shown. DETAILED DESCRIPTION

[0014] In the following, only some exemplary embodiments are briefly described. As those skilled in the art will appreciate, the described embodiments may be modified in various ways without departing from the concept or scope of the present application. Therefore, the drawings and descriptions are considered to be exemplary in nature and not restrictive.

[0015] To facilitate understanding of the technical solutions of the embodiments of the present application, the following describes the related technologies of the embodiments of the present application. The following related technologies can be combined with the technical solutions of the embodiments of the present application as optional solutions, and they all belong to the protection scope of the embodiments of the present application.

[0016] In some cases, the three-dimensional mesh is generally clipped by plane clipping algorithm, Sutherland-Hodgman clipping algorithm (edge-by-edge clipping algorithm), BSP tree clipping method (Binary Space Partitioning, binary space partitioning clipping algorithm), Boolean clipping and other methods. Among them, the plane clipping algorithm is a very common technology in computer graphics, geometric modeling, engineering computing and other fields, which is used to clip the three-dimensional mesh or geometric object according to a given plane. The Sutherland-Hodgman clipping algorithm is a classic clipping algorithm, which is mainly used to clip polygons, especially in two-dimensional space. Its basic idea is to clip gradually by traversing each edge and judging the relationship between the edge and the clipping plane. The algorithm is simple to implement and suitable for plane clipping, but it is mainly used for simple two-dimensional situations. More extensions are required for three-dimensional applications. Moreover, for cutting multiple planes at the same time, multi-faceted cutting can only be decomposed into multiple single-faceted cutting, and there will be a lot of repeated copies in the actual process. BSP tree clipping method (Binary Space Partitioning) is a data structure that recursively divides the three-dimensional space into two half-spaces, which can be used to accelerate geometric clipping. BSP trees can efficiently perform mesh clipping and can quickly handle complex three-dimensional clipping, especially in the case of multiple clipping planes. However, the process of building a BSP tree is very complicated. For large-scale meshes, building the BSP tree itself will be the largest overhead. Boolean clipping belongs to the intersection operation of Boolean operations. Its purpose is to calculate the intersection of two geometric bodies and return the result. Boolean clipping results are accurate and robust. It is suitable for applications that strictly require geometric consistency. It can handle arbitrarily complex geometries, including non-convex shapes, polygons, polyhedrons, etc. However, Boolean clipping involves a large number of geometric calculations (such as intersection detection and topological reconstruction), and has high performance requirements for complex models. Because it needs to ensure its topological properties, it requires additional steps to repair the results to ensure manifold properties.

[0017] These algorithms can effectively cut models in their respective application scopes, but for fast multi-cutting surface cutting, and do not require the topological structure of the cut graphics (such as manifold grids), only for display needs, they are more difficult or have serious performance problems, especially in some medium-sized or large-scale three-dimensional grids. This application can quickly and accurately cut large-scale three-dimensional grids such as city-level grids that do not consider the grid topology and are only for display, and can balance performance and efficiency, improve computational efficiency and reduce algorithm complexity.

[0018] First, the terms involved are explained.

[0019] 3D meshes and patches: All meshes are composed of points, lines connected by points, and surfaces divided by lines. Each surface is a patch. Different 3D model formats support different surfaces.

[0020] Adaptive voxels: A voxel is a cubic unit in three-dimensional space, similar to a pixel in a two-dimensional image, representing a specific location in space and its attributes. Adaptive voxels mean that the voxel size is not fixed.

[0021] Bounding Box (BBox): refers to the smallest rectangle or cube that can completely enclose a geometric object (such as point cloud, mesh, polygon, etc.).

[0022] Search space: A data structure for fast search that constructs a three-dimensional grid in some way, which can be three-dimensional or two-dimensional.

[0023] Large grids and small grids: Generally speaking, for 3D models produced for cities, the density of the facets is consistent. In other words, the number of facets is positively correlated with the grid volume, so the larger the grid volume, the more facets there are. Considering that small grids are the majority, we use statistical methods to estimate a reasonable judgment range. Set the volume set of the grid's external bounding box and sort it from small to large. , and then calculate the 75% quartile , is the total number of grids: ; Set the threshold for judging large grids: ; Determine the grid type: if , then it is a large grid; if , then it is a small grid.

[0024] Spatial dimensionality reduction: In a city-scale 3D grid, usually, Axis Ratio and The axis is much smaller. In this case, if The spatial division efficiency will become very low. In order to improve the efficiency of spatial division, when The maximum length of the axis is less than and When it is 1 / 5 of the minimum length of the shaft, it can be ignored The division of the axis is only Axis and The search space is constructed in the axis direction. Specifically, when the following conditions are met: , then do not consider axis, optimize the spatial search structure and improve computational efficiency. At this time, the search space degenerates into two dimensions.

[0025] Cutting plane (CP): refers to the surface that cuts the 3D mesh. Expression, where the surface normal The positive and negative values ​​express the inside and outside of the surface, where the data in the negative direction of the surface normal (outside the surface) is cut and discarded.

[0026] Cutting surface bounding box: Each cutting surface defines a spatial constraint, and the intersection of all cutting surface interiors and the search space range constitutes the bounding box of the entire cutting surface set. Its spatial range is as follows: The truncated polyhedron is: ; Spatial range for: ; Indicates the number of cutting surfaces. Represents the boundary of the search space. Here, the intersection operation refers to only considering the area that meets all the clipping surface conditions and is within the search space. The formula for the axis in two dimensions is: The truncated polyhedron is: ; Spatial range for: .

[0027] Cutting detection rule: Let the cutting surface set be , the grid or voxel is , is a grid or voxel point, the function Indicate point On cutting surface Substitute the value above.

[0028] To be kept: all vertices of the mesh or voxel are in the positive half-space of the clipping plane and on the clipping plane; To be cut: There are two vertices in the mesh or voxel that are in the positive half-space and negative half-space of the cutting surface respectively; Failed: All vertices of the mesh or voxel are not in the positive half-space of the clipping plane.

[0029] The embodiments of the present application take into account high performance, versatility and the complexity of the algorithm itself. According to the order of magnitude of city-scale three-dimensional grids and the spatial characteristics of three-dimensional grids, the design implements several core steps of constructing a search space, positioning and screening grids and faces, generating multi-faceted cutting and cutting edges, and merging grids. The three-dimensional grid model after cutting according to the scheme proposed in this application is designed for better application in display. The topological properties of the grid are deliberately avoided in the design of the algorithm to reduce the complexity of the algorithm and improve performance. Among them, the construction of the search space is to index the three-dimensional grids of the city scale according to their sizes through the KD tree or the octree of the adaptive voxel, so as to quickly query the grids that intersect with the cutting surface and are retained by cutting; the positioning and screening of grids and facets is to use the efficient query characteristics of the search space, and locate the facets that need to be cut through the grid query and facet search algorithm; the generation of multi-faceted cutting and cutting edges will use the multi-faceted cutting algorithm for the facets that directly intersect with the cutting surface, and generate new vertices by calculating multiple cutting surfaces at one time, support the generation of facets with different features on demand, and optimize the use of storage space; merging grids refers to merging the three-dimensional grids and facets retained in the search with the new facets realized after cutting. Since the scheme proposed in the embodiment of the present application is display-oriented, some topological properties of the grid itself will not be considered in the merging process. In general, the multi-faceted cutting scheme of the three-dimensional grid proposed in the embodiment of the present application is a high-performance, display-oriented multi-faceted cutting algorithm for city-scale data.

[0030] The execution subject of the embodiment of the present application may be an application, service, instance, software-based functional module, virtual machine (VM), container or cloud server, etc., or a hardware device (such as a server or terminal device) or hardware chip (such as CPU, GPU, FPGA, NPU, AI acceleration card or DPU) with data processing function. The device for implementing multi-faceted cutting of three-dimensional grids can be deployed on the computing device of the application party that provides the corresponding service or on a cloud computing platform that provides computing power, storage and network resources. The mode in which the cloud computing platform provides services to the outside world may be IaaS (Infrastructure as a Service), PaaS (Platform as a Service), SaaS (Software as a Service) or DaaS (Data as a Service). Taking the platform providing SaaS software as a service (Software as a Service) as an example, the cloud computing platform can use its own computing resources to provide the training of the multi-faceted cutting model of the three-dimensional grid or the functional execution of the multi-faceted cutting module of the three-dimensional grid, and the specific application architecture can be built according to the service requirements. For example, the platform can provide construction services based on the above-mentioned model to applications or individuals who use the platform resources, and further call the above-mentioned model and implement the multi-faceted cutting function of the three-dimensional mesh online or offline based on the multi-faceted cutting request of the three-dimensional mesh submitted by the relevant client or server devices.

[0031] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of relevant countries and regions, and provide corresponding operation entrances for users to choose to authorize or refuse.

[0032] The technical solution of the present application and how the technical solution of the present application solves the above-mentioned technical problems are described in detail below with specific embodiments. The several specific embodiments listed can be combined with each other, and the same or similar concepts or processes may not be repeated in some embodiments. The embodiments of the present application will be described in detail below with reference to the accompanying drawings.

[0033] The present application embodiment provides a multi-faceted cutting method for a three-dimensional grid, which is applied to a city-level three-dimensional grid, such as Figure 1 The flowchart of a multi-faceted cutting method 100 of a three-dimensional grid according to an embodiment of the present application is shown. The method 100 may include: In step S101, a cutting surface set of a three-dimensional grid is retrieved, and a cutting surface bounding box in the cutting surface set is calculated.

[0034] In an embodiment of the present application, before performing multi-faceted cutting on a three-dimensional mesh, a search space can be constructed first. After the search space is constructed, quickly locating and screening qualified meshes and faces is a key step. Especially in multi-faceted cutting, correctly screening meshes and faces according to the cutting surface can greatly improve the efficiency and accuracy of the algorithm.

[0035] In the case of multi-faceted cutting involved in the embodiments of the present application, the cutting face set can be regarded as a combined spatial constraint. Each cutting face will generate certain constraints for the mesh and the face, and these constraints will vary with the different cutting faces. For a face, if it is surrounded by multiple cutting faces (that is, all its vertices are located in the positive direction of the cutting face normal), it can be called a face surrounded by the cutting faces; if it intersects with a certain cutting face, it can be called a face intersecting with the cutting face; similarly, for a mesh, if it is surrounded by multiple cutting faces (that is, all its vertices are located in the positive direction of the cutting face normal), it can be called a mesh surrounded by the cutting faces; if it intersects with a certain cutting face, it can be called a mesh intersecting with the cutting faces. In order to be able to quickly find these two types of meshes and faces (meshes and faces intersecting with cutting faces and surrounded by cutting faces) at one time, you can first retrieve the cutting face set of the three-dimensional mesh and calculate the cutting face bounding box in the cutting face set.

[0036] Figure 2 FIG. 1 is a schematic diagram showing a method for calculating a cutting surface bounding box in a cutting surface set in a multi-faceted cutting solution for a three-dimensional grid provided in an embodiment of the present application. Figure 2 As shown in the figure, the clipping surface set is a relatively loose data set, and it is not possible to directly use this set to query on the KD tree or octree. Therefore, you can first use the clipping surface set to calculate the clipping surface bounding box, and then use the clipping surface bounding box to query the corresponding KD tree and octree. However, the clipping surface bounding box is only a rough range, for example Figure 2 The intersection of the clipping surface set in and the search space ( Figure 2 The two-dimensional graphic in the upper middle part is the top view of the three-dimensional graphic in the lower middle part) The two-dimensional cutting surface bounding box queried out may include not only the grids or voxels intersecting with the cutting surface, but also the grids or voxels located outside the entire cutting surface.

[0037] In a possible implementation, before calling the cutting surface set of the three-dimensional mesh and calculating the cutting surface bounding box in the cutting surface set, the above scheme may also include: based on the classification of the three-dimensional mesh, using a KD tree of an external bounding box to construct the search space of the three-dimensional mesh, and / or, using an octree of adaptive voxels to construct the search space of the three-dimensional mesh.

[0038] In a city-scale three-dimensional grid, in addition to the original models, there are many, and due to different divisions of labor, some complete three-dimensional grids are artificially divided into multiple ones. The number of three-dimensional grids in some large cities has reached more than one million. In order to quickly find the grid that needs to be cut from a large number of three-dimensional grids, it is necessary to establish a fast search mechanism for the space of the entire three-dimensional grid. This process can be called the construction of the search space. In a three-dimensional grid model, the complexity of the grid is mainly determined by the number of facets. The more facets there are, the longer the calculation time is. Therefore, the embodiment of the present application proposes a scheme for designing a search space that can index all facets for fast search, weighing the performance of the construction process and the search process and the utilization of the storage space. Considering that most of the massive models are small grids with a small footprint, and a small part are large grids representing terrain, rivers, etc. with a large footprint, the search space can be divided into two parts, namely, a small grid search space based on a KD tree and a large grid search space based on an octree of adaptive voxels. These two parts can be executed sequentially or in parallel, and the present application does not impose any restrictions on this.

[0039] In some embodiments, the above-mentioned method of constructing the search space of the three-dimensional grid using the KD tree of the external bounding box can first obtain the external bounding box of all small grids in the three-dimensional grid, and use the minimum cube range after the external bounding box is merged as the root node of the KD tree, and obtain the coordinates of the external bounding box in the three-dimensional coordinate system to form an external bounding box data set; then calculate the center point of the external bounding box of all small grids in the three-dimensional grid, and use the center point as the original node of the KD tree, and the original node is used for storage and indexing; then select a dimension in the three-dimensional coordinate system, starting from the root node of the KD tree, and use the median point between the root node and the original node in the dimension in the external bounding box data set as the child node of the KD tree, and then use the median point between two child nodes in the dimension, between the child node and the root node, or between the child node and the original node in the external bounding box data set as a new child node in the KD tree, until the leaf node of the KD tree is obtained or the volume of the child node is not greater than the preset threshold.

[0040] Since small and medium-sized grids in the city-level three-dimensional grid are almost everywhere in the entire range, although they may not be uniform, it is reasonable to use KD trees to construct a large number of small grids in terms of efficiency and complexity. KD trees are also more effective for range queries, which is more beneficial for subsequent cutting queries. In addition, in order to improve the efficiency of the algorithm, the external bounding box of the three-dimensional grid is used to represent each three-dimensional grid. Although the search cannot be accurate to the patch, the patch size of the small grid itself is relatively small, so the additional computing power paid in the subsequent cutting calculation is very worthwhile in exchange for the overall construction efficiency and storage efficiency of the search space.

[0041] Figure 3 A schematic diagram of constructing a search space for a three-dimensional grid using a KD tree of an external bounding box in a multi-faceted cutting solution for a three-dimensional grid provided in an embodiment of the present application is shown. Figure 3 The diagram shown is a schematic diagram of constructing a small grid search space based on a KD tree, such as Figure 3 As shown, the range of the entire KD tree can be expressed by the following formula: in, Can indicate the The bounding box of a small grid, is the number of small grids.

[0042] Figure 3 in When , the outer bounding box of the first small grid is obtained by dividing the first type of dividing line (black thick solid line) into two parts. ;exist When , the outer bounding box of the second small grid corresponds to the outer bounding box of the second small grid. The outer bounding box of the second small grid is obtained by further dividing the two parts divided by the first dividing line (black thick solid line) through the second dividing line (dashed line) in the figure. ;exist When , the outer bounding box of the third small grid corresponds to the outer bounding box of the third small grid. The outer bounding box of the third small grid is obtained by further dividing the four parts divided by the first two types of dividing lines (black thick solid line and dotted line) through the third type of dividing line (thin solid line) in the figure into eight parts. At this time ; and so on.

[0043] Next, the bounding boxes of all small grids can be added to the KD tree. For each bounding box, its center point is calculated and stored and indexed as a node of the KD tree.

[0044] Finally, the KD tree can be recursively split based on the coordinates of the bounding boxes of all small grids. Starting from the root node, select a dimension (x, y or z) in turn, and divide the data set into two parts in the location (median of the position) in this dimension until the leaf node of the tree is reached, or the volume of the node is less than or equal to (To avoid model overlap.) Each leaf node stores at least one mesh. Figure 3 The left picture shown in the figure is a three-dimensional construction schematic diagram, and the right picture is a two-dimensional construction schematic diagram after spatial dimensionality reduction.

[0045] In some embodiments, the above-mentioned method of constructing the search space of the three-dimensional grid using an octree with adaptive voxels can be achieved by first obtaining the external bounding boxes of all grids in the three-dimensional grid, and taking the smallest cube after merging the external bounding boxes as the root node of the octree; then dividing the root node of the octree into multiple child nodes in the three-dimensional coordinate system, and the spatial range of each child node is the volume block range of a cube in the three-dimensional coordinate system; finally, continuing to divide the child nodes of the octree into multiple smaller volume blocks in the three-dimensional coordinate system until the volume block is no larger than the minimum voxel or the number of three-dimensional mesh facets contained in the volume block is no larger than a preset threshold, and the minimum voxel is determined based on the larger quartile of the volume of the external bounding boxes of all grids in the three-dimensional grid.

[0046] For large grids, the KD tree constructed with the external bounding box as their search space may have a lot of node overlaps, and the external bounding box of the large grid may be very large, almost covering the entire query range or the entire KD tree range, which has a great impact on the query efficiency and construction of the KD tree. Even if the large grid is forcibly inserted into the KD tree, the subsequent query will be the entire large grid, which has no positive significance for performance. For the above reasons, adaptive voxels can be used to express the distribution state of the patches inside the large grid, and the octree can be used to index the voxels of all large grids to facilitate fast range queries.

[0047] In one example, the steps of constructing an adaptive voxel-based octree large grid search space may be: First, you can set the adaptive voxelization size. In the adaptive voxelization process, the size of the voxels is dynamically adjusted based on the mesh face distribution and the geometry of the mesh itself. From experience, the number of faces in a 3D mesh is close to a certain threshold (e.g. When the number of faces in a node is less than or equal to If the voxel size is too small in a fine area, it may cause excessive computational burden, so a minimum voxel size can be set. The minimum voxel can be based on the larger quartile of the volume of the bounding box of all meshes. Specifically, the volume of the current node is less than or equal to , the volume of the node will not be further subdivided, that is, the node becomes an indivisible minimum voxel to ensure the controllability and stability of the calculation. If we use the formula to express it, we can set is the current voxel node, if: , then we can judge It is the smallest voxel and is no longer subdivided.

[0048] Next, we can build an octree index. After determining the termination conditions for voxel subdivision, we can index these voxels by building an octree. Each octree leaf node can correspond to a voxel, containing all intersecting patches within the voxel range. The levels and branches of the octree can be dynamically adjusted due to the distribution of the model, which can efficiently divide the three-dimensional space into multiple smaller areas, thereby accelerating subsequent query and cutting operations. The steps to build an octree index can be: A. By merging the bounding boxes of all meshes, we can get a minimum rectangular range that contains all meshes. This range is used as the range of the octree root node. Specifically, the bounding box of the root node can be expressed as: in Can indicate the Large grid The external bounding box of Can be the number of grid cells.

[0049] B. During the construction of the octree, the root node can be divided into multiple child nodes, and the spatial range of each child node can be a subset of the root node range. By recursively subdividing each child node into smaller volume blocks until the node meets the aforementioned voxel subdivision termination condition, it can be expressed as: Exemplarily, when the three-dimensional coordinate system The shaft length is much smaller than Axis length and When the axis length is 1, a quadtree of adaptive voxels is used to construct the search space of the three-dimensional grid.

[0050] Figure 4 The multi-faceted cutting scheme of a three-dimensional grid provided in an embodiment of the present application is shown in FIG. The shaft length is much smaller than Axis length and Schematic diagram of the search space of a 3D grid constructed using a quadtree of adaptive voxels when the axis length is . The length of the axis will be much smaller than and , at this time, due to the lack of one dimension, the octree can be degenerated into a quadtree; accordingly, the volume formula of the voxel can be expressed as: Figure 4 It shows the construction effect under the quadtree, which is the same as Figure 3 The construction is similar, except that The axis will not be described here.

[0051] The above steps can first define the boundary rules of large grids and small grids through statistics, and then use KD tree and adaptive voxel octree to index small grids and large grids respectively. Under this structure, all patches are contained in a certain voxel. From the perspective of storage efficiency, for small grids, indexing through KD tree can arrange its external bounding box to the appropriate spatial area in an efficient way, avoiding redundant space allocation. For larger grids, adaptive voxelized octree structure is used to divide the space. The scale of voxels is dynamically adjusted according to the distribution of grids, reducing invalid subdivisions and ensuring that only necessary voxels participate in the calculation, thereby avoiding storage waste caused by excessive subdivision; from the perspective of query efficiency, the hybrid structure of KD tree and adaptive voxel octree can significantly improve query efficiency. KD tree provides fast spatial query capability for small grids, while octree optimizes the query performance of large grids through efficient voxel partitioning. The combination of the two can not only avoid redundant calculations, but also adaptively adjust the query accuracy according to the size and complexity of the query area to ensure efficient query response speed. In addition, in order to improve the efficiency of search space division, dimensionality reduction can be performed in some cases to further speed up the construction efficiency and query efficiency. At the same time, as the data scale increases, this structure can dynamically adjust and optimize the query efficiency to meet the query needs of urban-scale three-dimensional data.

[0052] In step S102, the small grid intersecting with the cropping surface bounding box is queried through the KD tree to obtain the small grid to be cut, and / or the voxels in the large grid intersecting with the cropping surface bounding box are queried through the octree of adaptive voxels to obtain the large grid to be cut in the voxels.

[0053] In a possible implementation, the above method of obtaining the small mesh to be cut by querying the small mesh intersecting with the cutting surface bounding box through the KD tree can be to query the small mesh intersecting with the cutting surface bounding box through the KD tree; delete the small mesh outside the cutting surface bounding box to obtain the small mesh to be cut.

[0054] For small grids, the cropping surface bounding box is directly used to query all grids that intersect with the cropping surface bounding box through the KD tree. When the grid is cropped, there is no need to further subdivide the facets inside the grid. The specific operation can be to query small grids first, use the bounding box of the cutting surface to perform range query through the KD tree, and directly extract the relevant small grids according to the bounding box of the cutting surface. Since these grids are usually small, the entire grid can be directly obtained without further segmentation into patches; then mark the grids to be retained and to be cut, discard the grids outside the cutting surface, and perform cutting detection on each candidate grid (the grid obtained from the KD tree query), that is, all grids or voxels with vertices in the positive half space and on the cutting surface are marked as to be retained; grids or voxels with two vertices in the positive half space and negative half space of the cutting surface are marked as to be cut; grids or voxels with no vertices in the positive half space of the cutting surface are marked as failed. In this way, the cutting detection result of each candidate grid can be marked as to be retained or to be cut, and the grids that fail the cutting detection are directly discarded. The goal of this step is to quickly filter out grids that intersect with the cutting surface set.

[0055] In a possible implementation, the large grid to be cut may include grids and patches to be cut; the above-mentioned method of querying the voxels in the large grid that intersects with the cutting surface bounding box through the octree of adaptive voxels and obtaining the set of large grids to be cut in the voxels can query the voxels in the large grid that intersects with the cutting surface bounding box through the octree of adaptive voxels; delete the voxels outside the cutting surface bounding box to obtain the voxels to be cut; extract all grids and patches in the voxels to be cut to obtain the large grid to be cut in the voxels.

[0056] Exemplarily, since the advantage of octree in space division is that it can quickly locate voxels that may be involved in the cutting surface set, the voxels in the large grid that intersect with the cutting surface bounding box can be queried through the octree of adaptive voxels, and all voxels are queried through the octree using the cutting surface bounding box to find the voxels that intersect with the cutting surface bounding box. Then mark the facets in the voxel. After finding the voxels related to the cutting surface set, perform a cutting test on each voxel, that is, mark the grid or voxel with all vertices in the positive half-space and the cutting surface as to be retained; mark the grid or voxel with two vertices in the positive half-space and negative half-space of the cutting surface as to be cut; mark the grid or voxel with no vertices in the positive half-space of the cutting surface as not passed. In this way, the result of the cutting test can be marked as to be retained or to be cut for each candidate grid, and the grid that fails the cutting test can be directly discarded. This step is actually marking voxels, but there is no concept of voxels in subsequent cutting. The concept of voxels only stays in the search space. Therefore, in order to remove the concept of voxels, we choose to directly mark the patches or grids in the voxels to facilitate subsequent calculations.

[0057] In step S103, the small grid to be cut and the large grid to be cut are decomposed into at least one polygonal patch, and the vertices of the polygonal patch are constructed as a valid point set to be processed in a clockwise order. According to the relative position relationship between two adjacent valid points in the valid point set to be processed and the cutting surface in the cutting surface set, valid points are retained, eliminated and / or added to obtain an updated valid point set, and a three-dimensional patch is constructed based on the updated valid point set.

[0058] In an embodiment of the present application, after screening out two groups of meshes and faces to be retained and to be cut, the meshes and faces to be cut can be cut using a multi-faceted cutting algorithm to retain all valid structures within the cutting face set. In order to achieve a balance between performance and complexity, a multi-faceted cutting algorithm for three-dimensional space can be designed based on the Sutherland-Hodgman polygon clipping algorithm. The Sutherland-Hodgman algorithm is widely used in two-dimensional space. The basic idea is to traverse the cutting face and update the vertex set of the polygon in sequence. However, the traditional Sutherland-Hodgman algorithm is only applicable to two-dimensional space and is only suitable for processing convex polygons, which does not meet the requirements of this application. Therefore, the embodiment of the present application has modified the Sutherland-Hodgman algorithm, extended its concept to three-dimensional space, and proposed a multi-faceted cutting algorithm based on vertex operations, which can handle more complex three-dimensional meshes and concave polygon cutting problems.

[0059] Exemplarily, the multi-faceted cutting steps are as follows: First, you can define the variables, that is, get the set of valid points. Figure 5 A schematic diagram of a valid point set in a multi-faceted cutting scheme of a three-dimensional grid provided in an embodiment of the present application is shown. Figure 5 As shown, the small mesh to be cut and the large mesh to be cut are decomposed into at least one polygonal patch, and the vertices of the polygonal patch are constructed as a set of effective points to be processed in a clockwise order, which may include effective points (ep): ( Figure 5 middle , the effective point is ); effective point set , where the order of the valid point set points can be clockwise, and any adjacent points have only one edge.

[0060] Correspondingly, other variables may be defined according to the valid points in the valid point set, and the present application does not impose any restrictions on the variables defined thereby, for example: Cutting surface ; Clipping surface collection ; Points on the patch, in clockwise direction: ; Original patch set ; Cut back piece collection .

[0061] Second, the mesh can be decomposed into patches (Mesh Decomposition into Patches). Figure 6 FIG. 1 is a schematic diagram showing a method for decomposing a three-dimensional mesh into at least one polygonal facet in a multi-faceted cutting scheme of the present application. Figure 6 As shown, 3D mesh decomposition patches (mesh decomposition patches) are to decompose a complex 3D mesh model into a series of simple patches (usually triangles or quadrilaterals, and in the embodiment of the present application, polygons can also be used, and the present application does not impose any restrictions on this). For a mesh that is itself composed of independent patches, each independent patch of the mesh can be taken out separately, and its vertices can be saved separately; for a mesh that is not an independent patch, when reading the patch, the vertices of each patch can be regenerated to realize the mesh decomposition into patches, and finally all the patches are put into the original patch set ( )middle.

[0062] In a possible implementation, the polygonal face is composed of at least three edges; the above-mentioned method of retaining, eliminating and / or adding effective points according to the relative positional relationship between two adjacent effective points in the valid point set to be processed and the cutting surface in the cutting surface set to obtain an updated effective point set can be achieved by first retaining the two adjacent effective points when both of the two adjacent effective points are located in the positive direction of the normal of the cutting surface; then marking and deleting the two adjacent effective points when both of the two adjacent effective points are located in the negative direction of the normal of the cutting surface; then, when one of the two adjacent effective points is located in the positive direction of the normal of the cutting surface and the other effective point is located in the negative direction of the normal of the cutting surface, taking the intersection of the line segment formed by the two adjacent effective points and the cutting surface as a newly added effective point, retaining the effective points located in the positive direction of the normal of the cutting surface, and marking and deleting the effective points located in the negative direction of the normal of the cutting surface; finally deleting all the marked deleted effective points, and adding all the newly added effective points to the effective point set in the marked order to obtain an updated effective point set.

[0063] Continuing with the above example, after decomposing the mesh into facets, multi-faceted cutting and edge generation can be performed. In the process of multi-faceted cutting, in order to reduce the copying overhead of vertices and their related data after cutting different cutting faces, the embodiment of the present application adopts the strategy of "cutting one by one and copying one by one", calculating each cutting face in turn, and finally copying it all at once, and no real copy is performed in the intermediate process.

[0064] Figure 7 A schematic diagram showing a method of retaining, eliminating and / or adding effective points to obtain an updated effective point set according to the relative position relationship between two adjacent effective points in the effective point set to be processed and the cutting surface in the cutting surface set in a multi-faceted cutting scheme of a three-dimensional grid provided in an embodiment of the present application is shown. Figure 7 As shown, the overall process of multi-faceted cutting and edge generation can be: Traverse the original patch: ; (1) Place the dough The vertices of construct a valid point set in clockwise order, which can be expressed as: ; (2) Traversing the cutting surface set if , indicating that the current valid point can no longer generate a stable patch, so the loop is exited and the next patch f is taken, that is, the next patch is cut; Otherwise, in order from Take two adjacent valid points (For example or ),in Then you can bring the effective point into the plane formula of the cutting surface to determine the effective point Relative to the cutting plane The specific judgment formula can be expressed as: The process of adding and marking effective points can be expressed as: if , then keep these two valid points without any modification; if , then these two points are marked as eliminated; if , then the line segment between these two points and the cutting surface intersect.

[0065] The situation of adding effective points is that In the case of , and the intersection Insert into the valid point set In and Between, keep Note the clockwise nature of the new intersection point. Will not be cut in this cutting surface The effective points are selected in the cutting process. Figure 7 The intersection of and .

[0066] The case of deleting valid points is that it can be ( ), it is determined that both valid points are outside the cutting surface, and ( ) Mark out.

[0067] The situation of retaining valid points is that When , it is determined that both valid points are within the cutting surface, the two valid points can be retained without any modification.

[0068] For example, Figure 7 Assume that there are 4 valid points , and a total of 4 cutting surfaces , we can first calculate the effective point relative to the cutting surface For example, the effective point Relative to the cutting plane location, , then the line segment between these two points and the cutting surface Intersect, creating an intersection ,because , then delete ,reserve , add new intersection for ; Effective point Relative to the cutting plane location, , then the line segment between these two points and the cutting surface Intersect, creating an intersection ,because , then delete ,reserve , add new intersection for Similarly, when calculating relative to the cutting surface When the position is Relative to the cutting plane location, , then the line segment between these two points and the cutting surface Intersect, creating a new intersection ,because , then delete ,reserve , add new intersection for ; Effective point Relative to the cutting plane location, , then the line segment between these two points and the cutting surface Intersect, creating an intersection ,because , then delete ,reserve , add new intersection for Next, we calculate the relative When the position is and Relative to the cutting plane location, , effective point and Relative to the cutting plane location, , then keep these valid points without making any changes ( Figure 7 The effective points can be seen in On the cutting plane On, effective point Intersection with cutting plane Finally, when calculating the relative When the position is and Relative to the cutting plane location, , then the line segment between these two points and the cutting surface intersection; valid point and Relative to the cutting plane location, , then the line segment between these two points and the cutting surface The methods of intersection, adding, retaining and deleting valid points are the same as the above steps and will not be repeated here.

[0069] Then the valid point set can be updated. That is, the current Contains the intersection of the original valid points and the newly inserted points. The original valid points have been marked as eliminated, so they are deleted together. After all the marked eliminated points in , the updated valid point set can be obtained. Figure 7 There are 6 valid points in .

[0070] The updated valid point set (eps) can be used as the next round of cutting surface The set of valid points for clipping operation.

[0071] After the above steps, the updated The cut surface set The remaining valid points of the cutting operation. , indicating that the current valid points can no longer generate a stable patch, the current result can be discarded and the next patch can be calculated Otherwise, you can press the original Generate new patches. Updated Since they are generated based on the original faces, they must be coplanar, and orderly management is used throughout the cutting process to ensure that the connection relationship between the faces is not destroyed and the valid points are always in order.

[0072] In some embodiments, effective points can be retained, eliminated and / or newly added based on the relative position relationship between two adjacent effective points in the updated effective point set and other cutting surfaces in the cutting surface set, and after traversing all cutting surfaces in the cutting surface set, the effective point set after the cutting operation is obtained; accordingly, the above-mentioned method of constructing a three-dimensional face based on the updated effective point set can be to construct a three-dimensional face based on the effective point set after the cutting operation.

[0073] Continuing with the above example, after multiple cycles of the above steps, that is, after traversing all the cutting planes in the cutting plane set, a valid point set after the cutting operation can be obtained. Accordingly, the above method of constructing a three-dimensional face based on the updated valid point set can be to construct a three-dimensional face based on the valid point set after the cutting operation.

[0074] In a possible implementation, all valid points in the updated valid point set are marked with a clockwise order; accordingly, the above-mentioned method of constructing a three-dimensional facet based on the updated valid point set can construct the valid points in the updated valid point set into a three-dimensional facet according to the clockwise order of the valid points in the updated valid point set and in accordance with the geometric constraints for constructing the three-dimensional facet.

[0075] There may be various geometric constraints for constructing three-dimensional facets, such as polygons, star subdivision, triangulation, etc., and this application does not impose any restrictions on this.

[0076] Figure 8 FIG. 1 shows one of the exemplary schematic diagrams of constructing a three-dimensional facet based on an updated valid point set in a multi-faceted cutting scheme of a three-dimensional mesh provided in an embodiment of the present application. Figure 8 As shown, All points are coplanar and ordered. If there are no geometric constraints for constructing three-dimensional faces, you can directly press Connect all valid points in order , generate polygonal patches. Figure 7 The 6 valid points in the updated valid point set Connect all valid points in order , generate polygonal patches.

[0077] Fig. 9 FIG2 shows a second example schematic diagram of constructing a three-dimensional face based on an updated valid point set in a multi-faceted cutting solution of a three-dimensional grid provided in an embodiment of the present application. Fig. 9 As shown, All points are coplanar and ordered. If the geometric constraints for constructing a 3D face are: the face is required to be triangular and have good performance. Under this requirement, since the points are relatively few and ordered, a star-shaped subdivision can be used to generate a new triangle with the first point and each adjacent valid point to finally generate a triangulated network. However, this method is not suitable for concave polygons. Continuing with the above example, you can press Figure 7 The 6 valid points in the updated valid point set , in the form of star-shaped subdivision, the first effective point With each adjacent valid point Generate a new triangle and finally generate a triangulated network.

[0078] Fig.10 FIG3 shows a schematic diagram of an example of constructing a three-dimensional face based on an updated valid point set in a multi-faceted cutting scheme of a three-dimensional grid provided in an embodiment of the present application. Fig.10 As shown, All points are coplanar and ordered. If the geometric constraints for constructing a 3D patch are: the patch must be triangular and there are geometric constraints on the triangles (all triangles must not intersect, the triangles themselves must not be too flat, etc.), then Delaunay triangulation can be used. Figure 7 The 6 valid points in the updated valid point set , in the form of Delaunay triangulation, three adjacent valid points that can form a triangle are connected to form a new triangle and finally generate a triangulated network, such as .

[0079] Next, you can add the facets generated in the previous step to the cut facet set. After all the faces have been traversed, This is the final result of the 3D mesh cutting. You can now copy All vertex attributes in the 3D image are used to construct a true 3D face. That is, the valid points in the updated valid point set are constructed into a 3D face according to the geometric constraints for constructing the 3D face.

[0080] In step S104, the three-dimensional facets are merged into the three-dimensional mesh to form a new three-dimensional mesh.

[0081] In the embodiment of the present application, the purpose of this step is to merge the facets and meshes to be retained with the new facets generated by cutting the edges in the previous step to generate a new complete three-dimensional mesh to form the final cutting result. The process of merging meshes can merge meshes according to needs.

[0082] In a possible implementation, before merging the three-dimensional face into the three-dimensional mesh to form a new three-dimensional mesh, the above scheme may also include: querying the small mesh located inside the cutting surface bounding box through a KD tree to obtain the small mesh to be retained, and / or querying the voxels in the large mesh located inside the cutting surface bounding box through an adaptive voxel octree to obtain the large mesh to be retained in the voxels.

[0083] The process of retaining small grids and retaining large grids has been reflected in the previous steps and will not be repeated here.

[0084] In some embodiments, the above-mentioned method of merging the three-dimensional facets into the three-dimensional grid to form a new three-dimensional grid can be achieved by searching for grids and facets that appear in more than two voxels in the large grid to be retained, and deduplicating the grids and facets to obtain a large grid after deduplication; merging the small grid to be retained, the large grid after deduplication, and the three-dimensional facets to form a new three-dimensional grid.

[0085] In the search space of large grids, since large grids are voxelized, some faces may appear in multiple voxels. When merging, they can be deduplicated based on grids and indexes. The scale of city-level three-dimensional grids is relatively large, and the overhead of copying is also relatively large. They can be copied once during the copying process. Since this application does not focus on restoring the topological characteristics of the grid during the merging process, but is mainly aimed at display optimization and performance improvement, the merged grid is highly likely to be non-manifold, which is suitable for efficient processing and display of large-scale data sets.

[0086] Compared with the traditional processing method (traversing all grids + multiple single-sided cutting), the multi-faceted cutting method of the three-dimensional grid proposed in the embodiment of the present application has greatly shortened the processing time in the case of multi-faceted cutting of three-dimensional grids at the city scale. After testing, since the embodiment of the present application proposes a method of constructing a search space, the multi-faceted cutting based on the rapid positioning and screening of the search space greatly reduces the number of facets during cutting, thereby greatly reducing the time consumed by multi-faceted cutting; in addition, benefiting from the "single copy calculated one by one", the time consumed for data copying is also greatly reduced. The total time consumed is about 1 / 13 of that of the traditional solution.

[0087] Corresponding to the above examples and method embodiments provided in the embodiments of the present application, the embodiments of the present application also provide a multi-faceted cutting device for a three-dimensional grid, which is applied to a three-dimensional grid at the city level. Fig.11 The figure shows a structural block diagram of a multi-faceted cutting device 1100 of a three-dimensional grid according to an embodiment of the present application. The device 1100 may include: The trimming surface bounding box acquisition module 1101 is used to retrieve the trimming surface set of the three-dimensional grid and calculate the trimming surface bounding box in the trimming surface set; the to-be-cut grid acquisition module 1102 is used to query the small grid intersecting with the trimming surface bounding box through the KD tree to obtain the small grid to be cut, and / or, query the voxels in the large grid intersecting with the trimming surface bounding box through the octree of the adaptive voxel, and obtain the large grid to be cut in the voxel; the three-dimensional patch construction module 1103 is used to combine the small grid to be cut with the The large mesh to be cut is decomposed into at least one polygonal patch, and the vertices of the polygonal patch are constructed as a valid point set to be processed in a clockwise order. According to the relative position relationship between two adjacent valid points in the valid point set to be processed and the cutting surface in the cutting surface set, valid points are retained, eliminated and / or added to obtain an updated valid point set, and a three-dimensional patch is constructed based on the updated valid point set; a three-dimensional mesh forming module 1104 is used to merge the three-dimensional patch into the three-dimensional mesh to form a new three-dimensional mesh.

[0088] In a possible implementation, before merging the three-dimensional face into the three-dimensional mesh to form a new three-dimensional mesh, the device may also include: a to-be-retained mesh acquisition module, which is used to query the small mesh located inside the cropping surface bounding box through a KD tree to obtain the small mesh to be retained, and / or, query the voxels in the large mesh located inside the cropping surface bounding box through an octree of adaptive voxels to obtain the large mesh to be retained in the voxels.

[0089] In some embodiments, the above-mentioned three-dimensional grid formation module 1104 may include: a deduplication submodule, used to search for grids and patches that appear in more than two voxels in the large grid to be retained, and deduplicate the grids and patches to obtain the large grid after deduplication; a merging submodule, used to merge the small grids to be retained, the large grid after deduplication and the three-dimensional patches to form a new three-dimensional grid.

[0090] In a possible implementation, before calling the cutting surface set of the three-dimensional grid and calculating the cutting surface bounding box in the cutting surface set, the above-mentioned device may also include: a search space construction module, which is used to construct the search space of the three-dimensional grid based on the classification of the three-dimensional grid using a KD tree of an external bounding box, and / or, construct the search space of the three-dimensional grid using an octree of adaptive voxels.

[0091] In some embodiments, the search space construction module may include: an external bounding box data set composition submodule, used to obtain the external bounding boxes of all small grids in the three-dimensional grid, and use the minimum cube range after the external bounding boxes are merged as the root node of the KD tree, and obtain the coordinates of the external bounding boxes in the three-dimensional coordinate system to form an external bounding box data set; an original node generation submodule, used to calculate the center point of the external bounding boxes of all small grids in the three-dimensional grid, and use the center point as the original node of the KD tree, and the original node is used for storage and indexing; a child node generation submodule, used to select a dimension in the three-dimensional coordinate system, starting from the root node of the KD tree, and use the median point between the root node and the original node in the dimension in the external bounding box data set as the child node of the KD tree, and then use the median point between two child nodes, between the child node and the root node, or between the child node and the original node in the dimension in the external bounding box data set as a new child node in the KD tree, until the leaf node of the KD tree is obtained or the volume of the child node is not greater than a preset threshold.

[0092] In some embodiments, the search space construction module may include: a root node generation submodule, used to obtain the external bounding boxes of all grids in the three-dimensional grid, and use the smallest cube after merging the external bounding boxes as the root node of the octree; a child node generation submodule, used to divide the root node of the octree into multiple child nodes in the three-dimensional coordinate system, and the spatial range of each child node is the volume block range of a cube in the three-dimensional coordinate system; a volume block division submodule, used to continue to divide the child nodes of the octree into multiple smaller volume blocks in the three-dimensional coordinate system until the volume block is no larger than the minimum voxel or the number of three-dimensional mesh facets contained in the volume block is no larger than a preset threshold, and the minimum voxel is determined based on the larger quartile of the volume of the external bounding boxes of all grids in the three-dimensional grid.

[0093] Exemplarily, the above-mentioned device may also include: a dimensionality reduction construction module for the search space of the three-dimensional grid, which is used to construct the search space of the three-dimensional grid using a quadtree of adaptive voxels when the z-axis length in the three-dimensional coordinate system is much smaller than the x-axis length and the y-axis length.

[0094] In a possible implementation, the above-mentioned to-be-cut grid acquisition module 1102 may include: a small grid query submodule, which is used to query the small grids that intersect with the cutting surface bounding box through the KD tree; and a to-be-cut small grid acquisition submodule, which is used to delete the small grids outside the cutting surface bounding box to obtain the small grids to be cut.

[0095] In one possible implementation, the large grid to be cut includes grids and patches to be cut; accordingly, the above-mentioned grid to be cut acquisition module 1102 may include: a voxel query submodule, which is used to query the voxels in the large grid that intersect with the cutting surface bounding box through the octree of adaptive voxels; a voxel to be cut acquisition submodule, which is used to delete the voxels outside the cutting surface bounding box to obtain the voxels to be cut; a large grid to be cut acquisition submodule, which is used to extract all grids and patches in the voxels to be cut to obtain the large grid to be cut in the voxels.

[0096] In a possible implementation, the polygonal patch is composed of at least three edges; accordingly, the above-mentioned three-dimensional patch construction module 1103 may include: a marking and retaining submodule, used to retain the two adjacent valid points when the two adjacent valid points are both located in the positive direction of the normal of the cutting surface; a marking and deleting submodule, used to mark and delete the two adjacent valid points when the two adjacent valid points are both located in the negative direction of the normal of the cutting surface; a retaining, eliminating and adding submodule, used to take the intersection of the line segment composed of the two adjacent valid points and the cutting surface as a newly added valid point when one of the two adjacent valid points is located in the positive direction of the normal of the cutting surface and the other valid point is located in the negative direction of the normal of the cutting surface, retain the valid points located in the positive direction of the normal of the cutting surface, and mark and delete the valid points located in the negative direction of the normal of the cutting surface; a deleting submodule, used to delete all the marked deleted valid points, and add all the newly added valid points to the valid point set in order to obtain an updated valid point set.

[0097] In some embodiments, the above-mentioned device may also include: a module for obtaining a valid point set after a cutting operation, which is used to retain, eliminate and / or add valid points according to the relative position relationship between two adjacent valid points in the updated valid point set and other cutting surfaces in the cutting surface set, and obtain the valid point set after the cutting operation after traversing all cutting surfaces in the cutting surface set; accordingly, the above-mentioned three-dimensional face patch construction module 1103 may include: a first sub-module for three-dimensional face patch construction, which is used to construct a three-dimensional face patch based on the valid point set after the cutting operation.

[0098] In one possible implementation, all valid points in the updated valid point set are marked in clockwise order; accordingly, the above-mentioned three-dimensional facet construction module 1103 may include: a second three-dimensional facet construction submodule, which is used to construct the valid points in the updated valid point set into a three-dimensional facet according to the clockwise order of the valid points in the updated valid point set and the geometric constraints for constructing the three-dimensional facet.

[0099] The functions of each module in each device in the embodiments of the present application can be found in the corresponding description in the above method, and have corresponding beneficial effects, which will not be repeated here.

[0100] Fig.12 is a block diagram of an electronic device used to implement an embodiment of the present application. Fig.12 As shown, the electronic device includes: a memory 1201 and a processor 1202. The memory 1201 stores a computer program that can be run on the processor 1202. When the processor 1202 executes the computer program, the method in the above embodiment is implemented. The number of the memory 1201 and the processor 1202 can be one or more.

[0101] The electronic device also includes: The communication interface 1203 is used to communicate with external devices and perform data exchange transmission.

[0102] If the memory 1201, the processor 1202 and the communication interface 1203 are implemented independently, the memory 1201, the processor 1202 and the communication interface 1203 can be connected to each other through a bus and communicate with each other. The bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig.12 Only one thick line is used in the diagram, but this does not mean that there is only one bus or only one type of bus.

[0103] Optionally, in a specific implementation, if the memory 1201, the processor 1202 and the communication interface 1203 are integrated on a chip, the memory 1201, the processor 1202 and the communication interface 1203 can communicate with each other through an internal interface.

[0104] An embodiment of the present application provides a computer-readable storage medium storing a computer program, which implements the method provided in the embodiment of the present application when the program is executed by a processor.

[0105] An embodiment of the present application also provides a computer program product, which includes a computer program, and when the computer program is executed by a processor, the method provided in any embodiment of the present application is implemented.

[0106] An embodiment of the present application also provides a chip, which includes a processor for calling and executing instructions stored in the memory from the memory, so that a communication device equipped with the chip executes the method provided by the embodiment of the present application.

[0107] An embodiment of the present application also provides a chip, including: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected via an internal connection path, and the processor is used to execute the code in the memory. When the code is executed, the processor is used to execute the method provided in the embodiment of the present application.

[0108] It should be understood that the above processor may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor may be a microprocessor or any conventional processor, etc. It is worth noting that the processor may be a processor that supports the Advanced RISC Machines (ARM) architecture.

[0109] Further, optionally, the above-mentioned memory may include a read-only memory and a random access memory. The memory may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memory. Among them, the non-volatile memory may include a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may include a random access memory (RAM), which is used as an external cache. By way of exemplary but not limiting description, many forms of RAM are available. For example, static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM) and direct memory bus random access memory (DR RAM).

[0110] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function according to the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium.

[0111] In the description of this specification, the description with reference to the terms "one embodiment", "some embodiments", "example", "specific example", or "some examples" means that the specific features, structures, materials or characteristics described in conjunction with the embodiment or example are included in at least one embodiment or example of the present application. Moreover, the specific features, structures, materials or characteristics described may be combined in any one or more embodiments or examples in a suitable manner. In addition, those skilled in the art may combine and combine different embodiments or examples described in this specification and the features of different embodiments or examples, unless they are contradictory.

[0112] In addition, the terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of technical features indicated. Therefore, a feature defined as "first" or "second" may explicitly or implicitly include at least one of the features. In the description of this application, the meaning of "plurality" is two or more, unless otherwise clearly and specifically defined.

[0113] Any process or method described in the flow chart or otherwise described herein can be understood as a module, fragment or portion of a code representing one or more executable instructions for implementing the steps of a specific logical function or process. And the scope of the preferred embodiment of the present application includes other implementations, in which the functions may not be performed in the order shown or discussed, including in a substantially simultaneous manner or in a reverse order according to the functions involved.

[0114] The logic and / or steps described in the flowchart or otherwise described herein, for example, can be considered as an ordered list of executable instructions for implementing logical functions, which can be embodied in any computer-readable medium for use by an instruction execution system, apparatus or device (such as a computer-based system, a system including a processor or other system that can fetch instructions from an instruction execution system, apparatus or device and execute instructions), or used in combination with these instruction execution systems, apparatuses or devices.

[0115] It should be understood that the various parts of the present application can be implemented with hardware, software, firmware or a combination thereof. In the above embodiments, multiple steps or methods can be implemented with software or firmware stored in a memory and executed by a suitable instruction execution system. All or part of the steps of the above embodiment method can be completed by instructing the relevant hardware through a program, which can be stored in a computer-readable storage medium, and when the program is executed, it includes one of the steps of the method embodiment or a combination thereof.

[0116] In addition, each functional unit in each embodiment of the present application can be integrated into a processing module, or each unit can exist physically separately, or two or more units can be integrated into one module. The above-mentioned integrated module can be implemented in the form of hardware or in the form of a software functional module. If the above-mentioned integrated module is implemented in the form of a software functional module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. The storage medium can be a read-only memory, a disk or an optical disk, etc.

[0117] The above is only an exemplary embodiment of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with the technical field can easily think of various changes or substitutions within the technical scope recorded in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application shall be based on the protection scope of the claims.

Claims

1. A multi-faceted cutting method for a three-dimensional grid, applied to a city-level three-dimensional grid, comprising: Retrieving a clipping surface set of the three-dimensional grid, and calculating a clipping surface bounding box in the clipping surface set; Querying the small grid intersecting with the cropping surface bounding box through the KD tree to obtain the small grid to be cut, and / or, querying the voxels in the large grid intersecting with the cropping surface bounding box through the octree of the adaptive voxel, and obtaining the large grid to be cut in the voxel; Decomposing the small grid to be cut and the large grid to be cut into at least one polygonal patch, constructing the vertices of the polygonal patch into a valid point set to be processed in a clockwise order, retaining, eliminating and / or adding valid points according to the relative position relationship between two adjacent valid points in the valid point set to be processed and the cutting surface in the cutting surface set, obtaining an updated valid point set, and constructing a three-dimensional patch based on the updated valid point set; The three-dimensional facets are merged into the three-dimensional mesh to form a new three-dimensional mesh.

2. The method according to claim 1, wherein: Before merging the three-dimensional facets into the three-dimensional mesh to form a new three-dimensional mesh, the method further includes: The small grid located inside the cropping surface bounding box is queried through the KD tree to obtain the small grid to be retained, and / or the voxels in the large grid located inside the cropping surface bounding box are queried through the octree of the adaptive voxels to obtain the large grid to be retained in the voxels.

3. The method according to claim 2, wherein: The step of merging the three-dimensional facets into the three-dimensional mesh to form a new three-dimensional mesh comprises: Searching for meshes and patches that appear in more than two voxels in the large mesh to be retained, and performing deduplication processing on the meshes and patches to obtain a large mesh after deduplication processing; The small grid to be retained, the large grid after deduplication processing and the three-dimensional facet are merged to form a new three-dimensional grid.

4. The method according to claim 1, wherein: Before calling the clipping surface set of the three-dimensional grid and calculating the clipping surface bounding box in the clipping surface set, the method further includes: Based on the classification of the three-dimensional grid, a KD tree of an external bounding box is used to construct a search space of the three-dimensional grid, and / or an octree of adaptive voxels is used to construct the search space of the three-dimensional grid.

5. The method according to claim 4, wherein: The method of constructing the search space of the three-dimensional grid using the KD tree of the external bounding box includes: Obtaining the outer bounding boxes of all small grids in the three-dimensional grid, and taking the smallest cubic range after the outer bounding boxes are merged as the root node of the KD tree, and obtaining the coordinates of the outer bounding boxes in the three-dimensional coordinate system to form an outer bounding box data set; Calculate the center point of the circumscribed bounding box of all small grids in the three-dimensional grid, and use the center point as the original node of the KD tree, wherein the original node is used for storage and indexing; A dimension in the three-dimensional coordinate system is selected, starting from the root node of the KD tree, and the midpoint between the root node and the original node in the dimension in the circumscribed bounding box data set is used as a child node of the KD tree, and then the midpoint between two child nodes in the dimension, between a child node and the root node, or between a child node and the original node in the circumscribed bounding box data set is used as a new child node in the KD tree, until a leaf node of the KD tree is obtained or the volume of the child node is not greater than a preset threshold.

6. The method according to claim 4, wherein: The search space of constructing the three-dimensional grid using the octree of adaptive voxels includes: Obtaining the external bounding boxes of all grids in the three-dimensional grid, and taking the smallest cube formed by merging the external bounding boxes as the root node of the octree; Dividing the root node of the octree into a plurality of child nodes in a three-dimensional coordinate system, wherein the spatial range of each child node is a volume block range of a cube in the three-dimensional coordinate system; The child nodes of the octree are further divided into a plurality of smaller volume blocks in a three-dimensional coordinate system until the volume block is no larger than a minimum voxel or the number of three-dimensional mesh facets contained in the volume block is no larger than a preset threshold, and the minimum voxel is determined based on a larger quartile of the volume of the circumscribed bounding boxes of all meshes in the three-dimensional mesh.

7. The method according to claim 6, wherein: The method further comprises: When the z-axis length in the three-dimensional coordinate system is much smaller than the x-axis length and the y-axis length, a quadtree of adaptive voxels is used to construct the search space of the three-dimensional grid.

8. The method according to claim 1, wherein: The small meshes to be cut are obtained by querying the small meshes intersecting with the cropping surface bounding box through the KD tree, and the small meshes to be cut include: Query the small grids intersecting with the clipping surface bounding box through the KD tree; The small mesh outside the cutting surface bounding box is deleted to obtain the small mesh to be cut.

9. The method according to claim 1, wherein: The large grid to be cut includes grids and facets to be cut; The querying of the voxels in the large grid intersecting with the clipping plane bounding box through the octree of the adaptive voxels and obtaining the set of large grids to be cut in the voxels includes: Querying voxels in the large grid that intersect the clipping plane bounding box through an adaptive voxel octree; Deleting the voxels outside the bounding box of the cutting surface to obtain the voxels to be cut; All meshes and patches in the voxel to be cut are extracted to obtain a large mesh to be cut in the voxel.

10. The method according to claim 1, wherein: The polygonal patch consists of at least three edges; The retaining, eliminating and / or adding effective points according to the relative position relationship between two adjacent effective points in the effective point set to be processed and the cutting plane in the cutting plane set to obtain an updated effective point set includes: When the two adjacent valid points are both located in the positive direction of the normal line of the cutting surface, retaining the two adjacent valid points; In the case where the two adjacent valid points are both located in the negative direction of the normal line of the cutting surface, marking the two adjacent valid points for deletion; In the case where one of the two adjacent valid points is located in the positive direction of the normal line of the cutting surface and the other valid point is located in the negative direction of the normal line of the cutting surface, the intersection of the line segment formed by the two adjacent valid points and the cutting surface is used as a newly added valid point, the valid point located in the positive direction of the normal line of the cutting surface is retained, and the valid point located in the negative direction of the normal line of the cutting surface is marked for deletion; Delete all the marked deleted valid points, and mark all the newly added valid points in order and add them to the valid point set to obtain the updated valid point set.

11. The method according to claim 10, wherein: The method further comprises: According to the relative position relationship between two adjacent valid points in the updated valid point set and other cutting surfaces in the cutting surface set, retain, eliminate and / or add valid points, and after traversing all cutting surfaces in the cutting surface set, obtain a valid point set after cutting operation; The constructing of a three-dimensional surface based on the updated valid point set comprises: Construct a three-dimensional patch based on the valid point set after the cutting operation.

12. The method according to claim 1, wherein: All valid points in the updated valid point set are marked in clockwise order; The constructing of a three-dimensional surface based on the updated valid point set comprises: According to the clockwise order of the valid points in the updated valid point set, the valid points in the updated valid point set are constructed into a three-dimensional facet according to the geometric constraints for constructing a three-dimensional facet.

13. A multi-faceted cutting device for a three-dimensional grid, applied to a city-level three-dimensional grid, comprising: A cutting surface bounding box acquisition module is used to retrieve a cutting surface set of a three-dimensional grid and calculate a cutting surface bounding box in the cutting surface set; A to-be-cut mesh acquisition module is used to query the small mesh intersecting with the cutting surface bounding box through a KD tree to obtain the small mesh to be cut, and / or query the voxels in the large mesh intersecting with the cutting surface bounding box through an octree of adaptive voxels to obtain the large mesh to be cut in the voxels; A three-dimensional face patch construction module, used to decompose the small grid to be cut and the large grid to be cut into at least one polygonal face patch, construct the vertices of the polygonal face patch into a valid point set to be processed in a clockwise order, retain, eliminate and / or add valid points according to the relative position relationship between two adjacent valid points in the valid point set to be processed and the cutting surface in the cutting surface set, obtain an updated valid point set, and construct a three-dimensional face patch based on the updated valid point set; The three-dimensional mesh forming module is used to merge the three-dimensional facets into the three-dimensional mesh to form a new three-dimensional mesh.

14. An electronic device comprising a memory, a processor and a computer program stored in the memory, wherein the processor implements the method according to any one of claims 1 to 12 when executing the computer program.

15. A computer-readable storage medium, wherein a computer program is stored in the computer-readable storage medium, and when the computer program is executed by a processor, the method according to any one of claims 1 to 12 is implemented.

Citation Information

Patent Citations

  • Surface area heuristic construction KD (K-dimension) tree parallel method on graphics processing unit

    CN102426710A

  • Multi-level mixed three-dimensional space index method

    CN103092926A

  • Rapid sectioning method for high-level radioactive waste repository 3D mesh model

    CN105184851A

  • Rapid retrieval method based on space division and model voxelization

    CN115661374A

  • Topology reconstruction method and system based on external storage octree STL model

    CN116912457A

Cited By

  • Section grid real-time display method, system and equipment based on discrete layer index

    CN121962530A

  • A method, system, and device for real-time display of cross-sectional meshes based on discrete layer indexing.

    CN121962530B