Local dynamic updating method and system based on 3D tiles three-dimensional pipe network
By detecting the changed data in the 3D scene and generating and optimizing incremental data, the problem of local updates in large-scale 3D data scenes is solved, efficient data transmission and processing is achieved, and rendering performance and user experience are improved.
Patent Information
- Application Number
- CN202510178146.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-02-18
- Publication Date
- 2025-05-30
AI Technical Summary
The prior art is difficult to realize local updates and transmission of changes in large-scale 3D data scenarios without affecting rendering efficiency, resulting in increased data transmission and processing pressure.
By detecting the changed data in the 3D scene, generating incremental data, and serializing it into 3D Tiles format, the incremental data is optimized using differential encoding and data compression methods.
It realizes local update of 3D data scenes without affecting the rendering efficiency, reducing the pressure of data transmission and processing, and improving performance and user experience.
Smart Images

Figure CN120070760A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of three-dimensional data modeling and processing, and in particular to a method and system for local dynamic update of three-dimensional pipe networks based on 3Dtiles. Background Art
[0002] With the continuous development of 3D data (such as urban modeling, building information models, geographic information systems, etc.), how to efficiently manage and update a large amount of 3D model data has become an important research topic. In the traditional full-update mode, every time the scene data changes, the entire data set is reloaded. This method not only wastes bandwidth, but also increases the loading time and computing burden of the client. Therefore, for large-scale 3D data scenarios, how to achieve local update and transmit the changed parts without affecting the rendering efficiency, and reduce the pressure of data transmission and processing, has become a problem that the existing technology should solve. Summary of the Invention
[0003] In view of the above problems, the present invention is proposed to provide a method and system for local dynamic update of three-dimensional pipe networks based on 3Dtiles that overcomes the above problems or at least partially solves the above problems.
[0004] In order to solve the above technical problems, the embodiments of the present application disclose the following technical solutions:
[0005] In a first aspect, an embodiment of the present invention discloses a method for local dynamic update of three-dimensional pipe networks based on 3Dtiles, including:
[0006] S100. Detect the changed data in the 3D scene;
[0007] S200. Generate incremental data according to the detected changed data;
[0008] S300. Serialize the incremental data into the 3D Tiles format;
[0009] S400. Optimize the 3D Tiles format incremental data by differential encoding and data compression methods.
[0010] Further, in S100, when detecting the changed data in the 3D scene, the changed data at least includes modifications to geometric shapes, textures, materials, positions, coordinate systems, addition of new objects, or deletion of existing objects.
[0011] Further, in S100, when detecting the changed data in the 3D scene, the specific method includes:
[0012] Compare the original data with the new data. By comparing the existing data and the new data, identify the changed parts in the existing data and the new data. The changed parts at least include hash values, timestamps, version numbers, or finer-grained differences;
[0013] Further, in S200, the incremental data includes newly added data, modified data, and deleted data.
[0014] Further, for newly added data, if there are new objects, buildings, or details added in the 3D scene, the incremental data includes the data of these newly added objects, at least including geometric information, textures, and coordinates; for modified data, if there are modified parts of existing objects, the incremental data needs to record these modified parts, at least including changes in geometric vertices and texture updates; for deleted data, if certain objects are deleted or invisible, mark the deleted parts in the incremental data by recording the object ID or index.
[0015] Further, in S300, serialize the incremental data into the 3D Tiles format. The specific method includes:
[0016] Perform serialization processing on the incremental data, and structure the detected newly added data, modified data, or deleted data into an incremental data format that conforms to the 3D Tiles specification;
[0017] Create new Tiles or update existing Tiles to generate Tiles for the incremental data. When a part of a 3DTiles Tile changes, only regenerate that Tile and retain other unchanged parts; the incremental data is represented by the version number and the changed Tile hierarchy included in tileset.json.
[0018] Further, in S400, optimize the 3D Tiles format incremental data through differential encoding and data compression methods. The specific method includes:
[0019] Perform differential encoding on the incremental data. For the geometric data in the incremental data, store the differences between vertex coordinates instead of absolute coordinates; for the texture data in the incremental data, store the differences between texture pixels instead of absolute pixel values;
[0020] Compress the incremental data. Use the draco compression algorithm to compress the geometric data and use an image compression algorithm to compress the textures;
[0021] Simplify the precision of the incremental data. If the change value of a part in the incremental data is less than the threshold, reduce the preset precision value for that part.
[0022] Second aspect, embodiments of the present invention disclose a system for local dynamic update of 3D pipe networks based on 3D Tiles, including: a change data detection unit, an incremental data generation unit, a 3D Tiles format serialization unit, and an incremental data optimization unit; wherein:
[0023] The change data detection unit is used to detect change data in the 3D scene;
[0024] The incremental data generation unit is used to generate incremental data according to the detected change data;
[0025] The 3D Tiles format serialization unit is used to serialize the incremental data into the 3D Tiles format;
[0026] The incremental data optimization unit is used to optimize the 3D Tiles format incremental data by means of differential coding and data compression methods.
[0027] Furthermore, the incremental data generation unit is used to generate incremental data according to the detected change data; wherein, the incremental data includes newly added data, modified data, and deleted data; for the newly added data, if there are new objects, buildings, or details added in the 3D scene, the incremental data includes the data of these newly added objects, at least including geometric information, texture, and coordinates; for the modified data, if there are modified parts of existing objects, the incremental data needs to record these modified parts, at least including changes in geometric vertices and texture updates; for the deleted data, if certain objects are deleted or invisible, the deleted parts are marked in the incremental data by recording the object ID or index.
[0028] Third aspect, embodiments of the present invention disclose an electronic device, including:
[0029] One or more processors;
[0030] A memory for storing one or more programs;
[0031] When the one or more programs are executed by the one or more processors, the one or more processors implement the method for local dynamic update of the 3D pipe network.
[0032] The beneficial effects of the above technical solutions provided by the embodiments of the present invention at least include:
[0033] The present invention discloses a method for local dynamic update of 3D pipe networks based on 3Dtiles, including: detecting changed data in a 3D scene; generating incremental data according to the detected changed data; serializing the incremental data into the 3DTiles format; and optimizing the 3DTiles format incremental data through differential encoding and data compression methods. The present invention has significantly improved performance, reduced bandwidth requirements, accelerated loading speed, and enhanced user experience through local update. By reducing the transmission and loading of redundant data, local update can more efficiently manage large-scale 3D scenes, especially in real-time or dynamically changing scenes, providing a smoother experience.
[0034] The technical solution of the present invention will be further described in detail below with reference to the drawings and embodiments. Description of the Drawings
[0035] The drawings are used to provide a further understanding of the present invention and constitute a part of the specification. They are used together with the embodiments of the present invention to explain the present invention, but do not constitute a limitation to the present invention. In the drawings:
[0036] Figure 1 It is a flowchart of a method for local dynamic update of 3D pipe networks based on 3Dtiles in Embodiment 1 of the present invention;
[0037] Figure 2 It is a structural diagram of a system for local dynamic update of 3D pipe networks based on 3Dtiles in Embodiment 2 of the present invention;
[0038] Figure 3 It is a schematic structural diagram of an electronic device in Embodiment 3 of the present invention. Detailed Embodiments
[0039] The exemplary embodiments of the present disclosure will be described in more detail below with reference to the drawings. Although the exemplary embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the embodiments set forth herein. On the contrary, these embodiments are provided to enable a more thorough understanding of the present disclosure and to fully convey the scope of the present disclosure to those skilled in the art.
[0040] To solve the problems existing in the prior art, the embodiments of the present invention provide a method and a system for local dynamic update of 3D pipe networks based on 3Dtiles.
[0041] Embodiment 1
[0042] The present invention discloses a method for local dynamic update of 3D pipe networks based on 3Dtiles, as Figure 1 , including:
[0043] S100. Detect the changed data in the 3D scene; in S100 of this embodiment, detect the changed data in the 3D scene, where the changed data includes at least modifications to geometric shapes, textures, materials, positions, and coordinate systems, addition of new objects, or deletion of existing objects.
[0044] In S100 of this embodiment, to detect the changed data in the 3D scene, the specific method includes:
[0045] Compare the original data with the new data. By comparing the existing data and the new data, identify the changed parts in the existing data and the new data, where the changed parts include at least hash values, timestamps, version numbers, or finer-grained differences;
[0046] Divide the 3D scene area. Use octrees, quadtrees, or the tiling method to divide the 3D scene into multiple regions. Taking the tiling method of dividing the 3D scene into multiple regions as an example, the tiling method (Tiling) is a technique for dividing a 3D scene into multiple small regions (tiles), commonly used in fields such as real-time rendering, game development, and virtual reality. By dividing the scene into tiles, the rendering efficiency can be improved, resource management can be optimized, and parallel processing and dynamic loading can be supported. The following is the detailed implementation method and application scenario of the tiling method.
[0047] First, perform scene division. When performing regular division, divide the XZ plane (horizontal plane) of the scene into rectangular tiles of the same size. The size of each tile can be adjusted according to the complexity of the scene and the hardware performance. When performing irregular division, use a quadtree (for 2D scenes) or an octree (for 3D scenes) to dynamically divide the scene. Adjust the size of the tiles according to the geometric density or object distribution of the scene.
[0048] Then, perform tile management. Use arrays, linked lists, or tree structures to store tile information. Each tile contains its boundary range, object list, and rendering status. Assign the objects in the scene (such as models, lights, particles) to the corresponding tiles. Determine the tile to which an object belongs through spatial queries (such as AABB collision detection).
[0049] Next, perform rendering optimization. Only render the tiles located within the camera frustum to reduce the rendering load. Use occlusion queries (such as hardware occlusion queries) to cull the occluded tiles, and dynamically adjust the rendering details according to the distance between the tiles and the camera. Finally, perform dynamic loading. Dynamically load the visible tiles according to the movement of the camera, and use asynchronous loading technology to avoid stuttering.
[0050] S200. Generate incremental data based on the detected change data; in S200 of this embodiment, the incremental data includes newly added data, modified data, and deleted data. Specifically, for newly added data, if there are new objects, buildings, or details added in the 3D scene, the incremental data includes the data of these newly added objects, at least including geometric information, textures, and coordinates; for modified data, if there are modified parts of existing objects, the incremental data needs to record these modified parts, at least including changes in geometric vertices and texture updates; for deleted data, if certain objects are deleted or invisible, mark the deleted parts in the incremental data by recording the object ID or index.
[0051] S300. Serialize the incremental data into the 3D Tiles format; the 3D Tiles format is a data format developed for streaming processing and rendering of three-dimensional geospatial data, such as photogrammetry, 3D buildings, BIM / CAD, instanced elements, point clouds, etc. 3D Tiles is a three-dimensional tiled data structure proposed by Cesium. It organizes massive three-dimensional data in a chunked and hierarchical form, aiming to improve the loading and rendering efficiency of large-scale 3D models through tiling. The 3D Tiles format is an efficient storage format for three-dimensional cities and geospatial data, with a wide range of application scenarios and powerful tool support. Through flexible hierarchical data organization, batch processing, and on-demand loading mechanisms, 3D Tiles can help developers provide a smooth user experience while ensuring rendering quality.
[0052] In S300 of this embodiment, serializing the incremental data into the 3D Tiles format, the specific method includes:
[0053] Perform serialization processing on the incremental data, and structure the detected newly added data, modified data, or deleted data into an incremental data format that conforms to the 3D Tiles specification;
[0054] Create a new Tile or update an existing Tile to generate Tiles for the incremental data. When a part of a 3D Tiles Tile changes, only regenerate that Tile and retain other unchanged parts; the incremental data is represented by the version number and the changed Tile hierarchy included in tileset.json.
[0055] S400. Optimize the 3D Tiles format incremental data through differential encoding and data compression methods. In S400 of this embodiment, optimizing the 3D Tiles format incremental data through differential encoding and data compression methods, the specific method includes:
[0056] Differential encoding is performed on the incremental data. For the geometric data in the incremental data, the differences between vertex coordinates are stored instead of the absolute coordinates; for the texture data in the incremental data, the differences between texture pixels are stored instead of the absolute pixel values.
[0057] The incremental data is compressed. The geometric data is compressed using the Draco compression algorithm, and the texture is compressed using an image compression algorithm. Specifically, Draco is a library designed and manufactured for compression efficiency and speed, used to compress and decompress 3D geometric meshes and point clouds. It supports compressing points, connection information, texture coordinates, color information, normals, and any other general attributes associated with the geometry. Draco is released as C++ source code and can be used to compress 3D graphics, while providing C++ and Javascript decoders for decoding the encoded data.
[0058] The geometric data is compressed using the Draco compression algorithm. The specific methods include:
[0059] Prepare the geometric data: Ensure that your geometric data is stored in a format supported by Draco (such as OBJ or PLY). If not, you may need to convert it to one of these formats.
[0060] Install Draco: Clone the code from Draco's GitHub repository and compile and install it according to the provided instructions. This usually involves using cmake to generate build files and running the make command to compile the code.
[0061] Build the encoder: After installing Draco, you need to build the encoder (draco_encoder) to compress your geometric data. This is usually done by running the build script provided by Draco in the command line.
[0062] Compress the geometric data: Use the draco_encoder command-line tool to compress your geometric data. You need to specify the input file and output file, as well as any optional compression parameters (such as the compression level). Simplify the precision of the incremental data. If the change value of a certain part in the incremental data is less than the threshold, reduce the preset precision value for that part.
[0063] Using the Draco compression algorithm can effectively reduce the volume of geometric data and improve network transmission efficiency. At the same time, issues such as the validity of floating-point numbers, the setting of the compression ratio, and the occupancy of CPU resources need to be noted.
[0064] This embodiment discloses a method for local dynamic update of 3D pipe networks based on 3D Tiles, including: detecting changed data in the 3D scene; generating incremental data according to the detected changed data; serializing the incremental data into the 3D Tiles format; and optimizing the 3D Tiles format incremental data through differential encoding and data compression methods. The present invention has significantly improved performance, reduced bandwidth requirements, accelerated loading speed, and enhanced user experience through local updates. By reducing the transmission and loading of redundant data, local updates can more efficiently manage large-scale 3D scenes, especially in real-time or dynamically changing scenes, providing a smoother experience.
[0065] Embodiment 2
[0066] Based on the same inventive concept, the embodiments of the present disclosure also provide a system for local dynamic update of 3D pipe networks based on 3D Tiles, as Figure 2 , including: a changed data detection unit, an incremental data generation unit, a 3D Tiles format serialization unit, and an incremental data optimization unit; where:
[0067] The changed data detection unit is used to detect changed data in the 3D scene;
[0068] The incremental data generation unit is used to generate incremental data according to the detected changed data;
[0069] The 3D Tiles format serialization unit is used to serialize the incremental data into the 3D Tiles format;
[0070] The incremental data optimization unit is used to optimize the 3D Tiles format incremental data through differential encoding and data compression methods.
[0071] Furthermore, the incremental data generation unit is used to generate incremental data according to the detected changed data; where the incremental data includes newly added data, modified data, and deleted data; for the newly added data, if there are new objects, buildings, or details added to the 3D scene, the incremental data includes the data of these newly added objects, at least including geometric information, textures, and coordinates; for the modified data, if there are modified parts of existing objects, the incremental data needs to record these modified parts, at least including changes in geometric vertices and texture updates; for the deleted data, if certain objects are deleted or invisible, the deleted parts are marked in the incremental data by recording the object ID or index.
[0072] Among them, the specific working methods of the changed data detection unit, the incremental data generation unit, the 3D Tiles format serialization unit, and the incremental data optimization unit have been described in detail in Embodiment 1, and will not be elaborated in this embodiment.
[0073] Embodiment 3
[0074] Based on the same inventive concept, an embodiment of the present disclosure also provides an electronic device. Figure 3 It is a schematic structural diagram of an electronic device according to an embodiment of the present disclosure. As Figure 3 shown, an electronic device provided by an embodiment of the present disclosure includes: one or more processors 101, a memory 102, and one or more I / O interfaces 103. One or more programs are stored on the memory 102. When the one or more programs are executed by the one or more processors, the one or more processors implement any of the optimization methods in the above embodiments; one or more I / O interfaces 103 are connected between the processor and the memory and are configured to implement information interaction between the processor and the memory.
[0075] Among them, the processor 101 is a device with data processing capabilities, including but not limited to a central processing unit (CPU), etc.; the memory 102 is a device with data storage capabilities, including but not limited to a random access memory (RAM, more specifically such as SDRAM, DDR, etc.), a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), a flash memory (FLASH); the I / O interface (read / write interface) 103 is connected between the processor 101 and the memory 102 and can implement information interaction between the processor 101 and the memory 102, including but not limited to a data bus (Bus), etc.
[0076] In some embodiments, the processor 101, the memory 102, and the I / O interface 103 are interconnected through a bus 104 and are further connected to other components of the computing device.
[0077] In some embodiments, the one or more processors 101 include a field programmable gate array.
[0078] According to an embodiment of the present disclosure, a computer-readable medium is also provided. A computer program is stored on the computer-readable medium. When the program is executed by a processor, the steps in any of the optimization methods in the above embodiments are implemented.
[0079] It should be understood that the specific order or hierarchy of steps in the disclosed process is an example of an exemplary method. Based on design preferences, it should be understood that the specific order or hierarchy of steps in the process can be rearranged without departing from the protection scope of the present disclosure. The appended method claims present the elements of the various steps in an exemplary order and are not intended to be limited to the specific order or hierarchy.
[0080] In the foregoing detailed description, various features are combined in a single embodiment to simplify the present disclosure. This method of disclosure should not be interpreted as reflecting an intention that the embodiments of the claimed subject matter require more features than are expressly recited in each claim. On the contrary, as reflected in the appended claims, the invention lies in less than all of the features of the single disclosed embodiment. Accordingly, the appended claims are hereby expressly incorporated into the detailed description, with each claim standing on its own as a separate preferred embodiment of the invention.
[0081] Those skilled in the art should also understand that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments herein can be implemented as electronic hardware, computer software, or combinations thereof. To clearly illustrate the interchangeability of hardware and software, the various illustrative components, blocks, modules, circuits, and steps have been generally described in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as departing from the scope of the present disclosure.
[0082] The steps of a method or algorithm described in connection with the embodiments herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination thereof. The software modules may be located in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium well known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. Of course, the storage medium may also be integral to the processor. The processor and the storage medium may be located in an ASIC. The ASIC may be located in a user terminal. Of course, the processor and the storage medium may also exist as discrete components in a user terminal.
[0083] For a software implementation, the techniques described in this application can be implemented using modules (e.g., procedures, functions, etc.) that perform the functions described in this application. These software codes can be stored in a memory unit and executed by a processor. The memory unit may be implemented within the processor or outside the processor, and in the latter case, it is coupled to the processor in a communicative manner via various means, which are well known in the art.
[0084] The foregoing description includes examples of one or more embodiments. Of course, it is not possible to describe all possible combinations of components or methods for the purpose of describing the above embodiments, but those of ordinary skill in the art should recognize that the various embodiments can be further combined and arranged. Accordingly, the embodiments described herein are intended to embrace all such changes, modifications, and variations that fall within the scope of the appended claims. In addition, with respect to the term "comprising" as used in the specification or claims, this term is inclusive in a manner similar to the term "including," as that term is interpreted when used as a transitional word in a claim. Further, any use of the term "or" in a claim or the specification is to be meant "non-exclusive or."
Claims
1. A method for local dynamic updating of a three-dimensional pipe network based on 3Dtiles, characterized in that: include: S100. Detecting changed data in the 3D scene; S200. Generate incremental data based on the detected changed data; S300. Serializing the incremental data into a 3D Tiles format; S400. Optimize the 3D Tiles format incremental data through differential encoding and data compression methods.
2. A method for local dynamic updating of a three-dimensional pipe network based on 3Dtiles as claimed in claim 1, characterized in that: In S100, the changed data in the 3D scene is detected, and the changed data at least includes the modification of the geometric shape, texture, material, position, coordinate system, the addition of a new object or the deletion of an existing object.
3. The method for local dynamic updating of a three-dimensional pipe network based on 3Dtiles according to claim 1, characterized in that: In S100, the changed data in the 3D scene is detected, and the specific method includes: Comparing the original data with the new data, identifying the changed parts of the existing data and the new data by comparing the existing data with the new data, wherein the changed parts include at least a hash value, a timestamp, a version number, or a finer-grained difference; The 3D scene area is divided into multiple areas using an octree, quadtree or tile method.
4. The method for local dynamic updating of a three-dimensional pipe network based on 3Dtiles according to claim 1, characterized in that: In S200, the incremental data includes newly added data, modified data and deleted data.
5. The method for local dynamic updating of a three-dimensional pipe network based on 3Dtiles according to claim 4, characterized in that: For newly added data, if new objects, buildings or details are added to the 3D scene, the incremental data includes the data of these newly added objects, including at least geometric information, textures, and coordinates; for modified data, if there are modified parts of existing objects, the incremental data needs to record these modified parts, including at least changes in geometric vertices and updates to textures; For deleted data, if some objects are deleted or invisible, the deleted parts are marked in the incremental data by recording the object ID or index.
6. The method for local dynamic updating of a three-dimensional pipe network based on 3Dtiles according to claim 1, characterized in that: In S300, the incremental data is serialized into a 3D Tiles format. The specific method includes: Serialize the incremental data and structure the detected new data, modified data, or deleted data into an incremental data format that complies with the 3DTiles specification; Create a new Tile or update an existing Tile to generate Tile in incremental data. When a part of a Tile of a 3DTiles changes, only the Tile is regenerated and other unchanged parts are retained. The incremental data is represented by the version number and the changed Tile level in tileset.json.
7. The method for local dynamic updating of a three-dimensional pipe network based on 3Dtiles according to claim 1, characterized in that: In S400, the 3D Tiles format incremental data is optimized by differential encoding and data compression methods, and the specific method includes: Differentially encode the incremental data. For the geometric data in the incremental data, the differences between the vertex coordinates are stored instead of the absolute coordinates. For the texture data in the incremental data, the differences between the texture pixels are stored instead of the absolute pixel values. Compress incremental data, use the draco compression algorithm to compress geometric data, and use the image compression algorithm to compress textures; The precision of the incremental data is simplified. If the change value of a certain part of the incremental data is less than a threshold, the preset precision value of the part is reduced.
8. A system for local dynamic update of three-dimensional pipe network based on 3Dtiles, characterized in that: include: Change data detection unit, incremental data generation unit, 3D Tiles format serialization unit and incremental data optimization unit; among which: A changed data detection unit, used for detecting changed data in a 3D scene; An incremental data generating unit, used for generating incremental data according to the detected changed data; A 3D Tiles format serial number unit, used for serializing the incremental data into a 3D Tiles format; The incremental data optimization unit is used to optimize the incremental data in the 3D Tiles format by using differential encoding and data compression methods.
9. A system for local dynamic update of a three-dimensional pipe network based on 3Dtiles as claimed in claim 8, characterized in that: An incremental data generation unit is used to generate incremental data based on the detected change data; wherein the incremental data includes newly added data, modified data and deleted data; for newly added data, if new objects, buildings or details are added to the 3D scene, the incremental data includes the data of these newly added objects, including at least geometric information, textures, and coordinates; for modified data, if there are modified parts of existing objects, the incremental data needs to record these modified parts, including at least changes in geometric vertices and updates to textures; for deleted data, if some objects are deleted or invisible, the deleted parts are marked in the incremental data by recording the object ID or index.
10. An electronic device, characterized in that: include: one or more processors; A memory for storing one or more programs; When the one or more programs are executed by the one or more processors, the one or more processors implement the method for local dynamic updating of a three-dimensional pipe network in any one of claims 1-7.
Citation Information
Cited By
Network space map surveying and mapping method and system based on multi-source data fusion
CN120915689A