Super-large-volume interactive hash model loading and control solution method

By converting the super-large-scale model into a standardized binary file and dynamically generating a BIM static model using multi-threaded, combined with dynamic interactive mapping technology, the problem of low loading and interaction performance of super-large-scale model is solved, achieving the effect of fast loading and efficient interaction .

CN119396486APending Publication Date: 2025-02-07EPC SOLUTIONS(BEIJING) LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411423869.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-10-12
Publication Date
2025-02-07

AI Technical Summary

Technical Problem

When loading and interacting with super large-scale models, the prior art has problems such as slow loading speed, low frame rate, large hardware resource consumption and inability to load the model, making it difficult to support effective interactive operations.

Method used

By converting the super-large-scale model into a standardized model and exporting it into a binary file, combining multi-threaded parallelism to dynamically generate a BIM static model, and mount it on an Actor type object, and finally render it in a 3D scene. In addition, dynamic interaction maps are created based on binary files, and the association relationship between the model node and the sticker pixel is established, and the correct UV parameters are set to support real-time interaction.

Benefits of technology

It significantly improves the loading speed and interactive performance of super-large-scale models, reduces CPU and memory consumption, and can load and interact with large models under low hardware resources to achieve smooth interactive effects.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119396486A_ABST
    Figure CN119396486A_ABST
Patent Text Reader

Abstract

The invention discloses a super-large-volume interactive hash model loading and control solution, which comprises the following steps of: converting a super-large-volume model into a standardized model and exporting the standardized model into a binary file; a BIM static model dynamically generated based on a multi-thread parallel mode is endowed to a static model assembly, and the static model assembly is mounted to an Actor type object bearing a dynamic loading model; and creating a dynamic interaction energy map based on the binary file, establishing an association relationship between a minimum monomeric model node of the super-large-volume model and an effective pixel of the map, setting UV parameters for the super-large-volume model based on the association relationship, and rendering the map to the super-large-volume model. The method has the advantages that resource consumption of hardware performance can be reduced, the requirement for hardware is low, and the threshold for loading the super-large-volume model is lowered. And aiming at real-time interaction of an ultra-large-volume model, the real-time performance can be realized, and the same function of carrying out function operation on a single model in the prior art can be accurately realized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of BIM and GIS, and in particular to a solution for loading and manipulating a very large interactive hash model. Background Art

[0002] At present, the solution for loading very large models is a plug-in developed by Cesium based on UnrealEngine, which can load 3D Tiles tile model technology. Basically, it can realize the loading of very large models, mainly judging whether it is necessary to load a more detailed GLTF model based on the distance.

[0003] Although the above solutions can basically realize the loading of super-large models from a visual level, there are some obvious defects and differences. The first problem is that the model presented by the Cesium solution cannot be too fine. If the number of models contained in the GLTF file referenced in the custom 3DTiles tile file is too large, it will obviously cause the loading speed of the overall model to be seriously slowed down, and if certain interactive operations are required, it will be found that the frame rate is very low, and this frame rate will become lower as the size of the loaded model increases. There is also the problem of continuous and gradual increase in hardware requirements. When the size of the model exceeds a certain range, the model may no longer be loaded correctly. It may be due to problems such as excessive hard disk requirements or insufficient memory, or it may be due to insufficient graphics card memory. In this case, if the model can no longer be loaded, it will be even more impossible to support effective and process interaction requirements. Summary of the invention

[0004] The purpose of the present invention is to provide a solution for loading and manipulating ultra-large interactive hash models, thereby solving the aforementioned problems existing in the prior art.

[0005] In order to achieve the above object, the technical solution adopted by the present invention is as follows:

[0006] A solution for loading and manipulating large interactive hash models, including the following:

[0007] Dynamic loading of super large volume models:

[0008] Convert the super-large volume model into a standardized model and export it as a binary file; combine the real-time interaction results of the super-large volume model, assign the BIM static model dynamically generated based on multi-threaded parallelism to the static model component, and mount the static model component to the Actor type object that carries the dynamically loaded model, and finally render the super-large volume model in the 3D scene;

[0009] Real-time interaction of super-large models:

[0010] A dynamic interactive kinetic energy map is created based on the binary file of the super-large volume model, an association relationship between the minimum monomer model node of the super-large volume model and the effective pixels of the map is established, correct UV parameters are set for the super-large volume model based on the association relationship, and the map is rendered onto the super-large volume model.

[0011] Preferably, the dynamic loading of the super-large volume model specifically includes the following contents:

[0012] S11. Collect BIM information of super-large volume models according to requirements or provided reference resources;

[0013] S12. Refer to the BIM information of the super-large model, convert the super-large model into a standardized model through professional 3D modeling software or third-party model processing tools, and configure the BIM information at the same time;

[0014] S13, exporting the standardized model into a binary file, and after removing redundant information, organizing the remaining necessary model information according to certain rules to provide a basis for subsequent dynamic loading;

[0015] S14. Implement dynamic loading logic on the UnrealEngine side to dynamically generate BIM static models;

[0016] S15. Combined with the real-time interaction results of the super-large volume model, create an Actor type object that carries the dynamically loaded model in the scene on the UnrealEngine side, assign the BIM static model to the StaticMeshComponent component and mount it on the Actor object;

[0017] S16. Render the super-large volume model in the 3D scene.

[0018] Preferably, the BIM information of the super-large volume model includes oblique image information, scanned model information, drone-collected image information, and manual measurement information.

[0019] Preferably, step S14 specifically includes processing the data at the geometric information level of the model in a multi-threaded manner, generating a static model at a pure geometric level, and then assigning the collision volume data calculated on the model surface to the dynamic model to support basic click interaction events.

[0020] Preferably, the format of the standardized model is GLTF, FBX or OBJ.

[0021] Preferably, the real-time interaction of the super-large volume model specifically includes the following contents:

[0022] S21. Based on the binary file generated during the dynamic loading of the super-large volume model, a map for dynamic interactive kinetic energy is dynamically generated;

[0023] S22, establishing a correspondence between effective pixels of the texture and monomeric model nodes of the super-large volume model;

[0024] S23. Set the UV of the super-large volume model to be consistent with the data of the texture to ensure that each pixel can be covered and rendered on the corresponding monomer model;

[0025] S24. Create a rendering material for the super-large volume model in UnrealEngine, and give the texture used for dynamic interactive kinetic energy to the texture rendering parameters of the rendering material, and then render the texture onto the super-large volume model.

[0026] Preferably, in step S21, the size of the generated map is set according to the number of operable nodes of the super-large volume model.

[0027] Preferably, in step S22, an index table is established, which stores a one-to-one correspondence between pixels of the map and individual model nodes, and the pixel number of the map is directly found by clicking the label of the individual model node plus the number of the StaticMeshComponent component where the individual model node is located.

[0028] Preferably, in step S24, a suitable material ball is created to render the texture onto the super-large volume model.

[0029] The beneficial effects of the present invention are as follows: 1. In terms of dynamic loading, the present invention is much faster than the traditional model loading method or the Cesium loading method, and consumes less energy for 3D scene rendering, especially the CPU and memory consumption, so that the interactive effect of the process can be better achieved after the final loading is completed. 2. In terms of real-time interaction, compared with the traditional model loading method or the Cesium loading method, the present invention basically solves the drawback of the single model of the most subtle part that cannot be operated, and can realize a large number of interactive operations, while ensuring ultra-high interactive real-time effects. BRIEF DESCRIPTION OF THE DRAWINGS

[0030] Figure 1 It is a principle flow chart of the method in the embodiment of the present invention;

[0031] Figure 2 is a schematic diagram of the relationship between various layers in an embodiment of the present invention;

[0032] Figure 3 It is a comparison chart of the model data volume and hardware resource requirements of the method of the present invention, the traditional solution and the Cesium solution in the embodiment of the present invention. DETAILED DESCRIPTION

[0033] In order to make the purpose, technical solution and advantages of the present invention more clearly understood, the present invention is further described in detail below in conjunction with the accompanying drawings. It should be understood that the specific implementation methods described herein are only used to explain the present invention and are not used to limit the present invention.

[0034] like Figure 1 As shown, in this embodiment, a solution for loading and manipulating a large-scale interactive hash model is provided, which includes the following two parts:

[0035] 1. Dynamic loading of super large volume models

[0036] Convert the super-large volume model into a standardized model and export it as a binary file; combine the real-time interaction results of the super-large volume model, assign the BIM static model dynamically generated based on multi-threaded parallelism to the static model component, and mount the static model component to the Actor type object that carries the dynamically loaded model, and finally render the super-large volume model in the 3D scene. The specific steps include the following:

[0037] 1.1. Collect BIM information of super-large volume models (i.e., super-large volume BIM models) based on demand or provided reference resources. BIM information includes oblique image information, scanned model information, drone image information, manual measurement information, etc.

[0038] 1.2. Refer to the BIM information of the super-large model, and convert the super-large model into a standardized model through some professional 3D modeling software (such as Revit, 3DSMAX, etc.) or third-party model processing tools, such as generating a model in GLTF, FBX or OBJ format, and configure the BIM information (BIM information such as structural information, naming information, attribute information, etc.).

[0039] 1.3. Export the standardized model as a binary file, and after removing redundant information, organize the remaining necessary model information according to certain rules for easy reading and query. In this process, some grouped or merged model information (such as vertices, normals, tangents, and texture information) can be put together for simple organization, which can provide a basis for subsequent dynamic loading.

[0040] In this embodiment, the organization rules can be customized, and there can be different organization processes, and the rules can also be customized. For example, it can be defined as follows: (1) Byte size definition description segment: each type of data contains several bytes. (2) Data type description segment: indicates which data types the BIM model data contains, such as vertex data, vertex order, normal data, tangent data, etc. The starting byte position of the specific content contained in each data can be directly given to these data fields. (3) Specific data description segment: contains the vertex data from the byte number to the byte number, contains the normal data from the byte number to the byte number.

[0041] 1.4. Implement dynamic loading logic on the UnrealEngine side and dynamically generate BIM static models. From the beginning, you should consider using multi-threading to process data at the pure model geometry information level, such as the need to merge models to calculate vertex order and normal data, or divide the collection data of the overall model into many small blocks, each of which is calculated by a thread mechanical energy, so that all model geometry information can be processed at a faster speed. Then generate static models at the pure geometry level. This step can only be completed in the game thread, which may cause a certain amount of blocking time, but it is within an acceptable range. Finally, generate collision body data calculated based on the model surface and give it to the dynamic model, so that the most basic click interaction events can be supported.

[0042] 1.5. Combined with the real-time interaction results of the super-large volume model, create an Actor type object that carries the dynamically loaded model in the scene on the UnrealEngine side, assign the BIM static model to the StaticMeshComponent component and mount it on the Actor object. Each merged model can generate a StaticMeshComponent component, which probably requires only a few hundred components at most.

[0043] Create an Actor type object that carries the dynamically loaded model. You can directly use C++ code to create an Actor type object placed in the world scene and use the SpawnActor method to create it.

[0044] 1.6. Render the super-large model in the 3D scene.

[0045] In this embodiment, Figure 2As shown in the figure, in order to load a super-large model more quickly, under the same hardware conditions, three levels of processing and operation are required: (1) Model asset preparation level: It is necessary to binary the information of the super-large BIM model, which can greatly speed up the query and reading of model information. At the same time, the classification of model merging can be distinguished in the early preparation stage. It can be divided according to materials, geographical areas, etc., or it can be completely merged into one model for operation. (2) Program dynamic loading level: To achieve relatively fast loading of such a super-large model, it is definitely not possible to use a single thread for calculation, otherwise it will cause the model loading time to increase exponentially. It is necessary to enter the multi-threaded loading mode, so that some more complex calculations that do not occupy the rendering thread are executed in the sub-thread. In this way, it will not block the operation of the main thread and greatly speed up the loading speed, which is many times faster than using a single thread. (3) Multi-level rendering level: When loading a model, you can actually set multiple levels of model data, which is similar to the LOD processing method, but adds multiple reduced-face data in a dynamic situation. This process can actually be implemented in the multi-threaded idea of ​​point 2. In this way, in the rendering thread, for such a large-volume model, only a low-face model can be loaded at a long distance, which can greatly improve the rendering frame rate and make the operation at a long distance smoother. At a close distance, a more detailed model is loaded. Of course, this switching process depends on the LOD detail level of UnrealEngine to control, and ultimately it can achieve lower rendering consumption in the running mode.

[0046] 2. Real-time interaction of super-large models

[0047] Based on the binary file of the super-large volume model, a dynamic interactive kinetic energy map is created, and the association between the minimum monomer model node of the super-large volume model and the effective pixels of the map is established. Based on the association, the correct UV parameters are set for the super-large volume model, and the map is rendered on the super-large volume model. The specific steps include the following:

[0048] 2.1. Based on the dynamic loading process of the super-large volume model, a texture for dynamic interactive kinetic energy is dynamically generated. The size of the texture can be set according to the number of operable nodes of the super-large volume model. For example, a 1024X1024 image can support 1048576 model nodes.

[0049] 2.2. Establish the correspondence between the effective pixels of the texture and the individual model nodes of the super-large volume model. It is equivalent to one pixel corresponding to one individual model node, that is, establish an index table, and you can directly find the pixel number of the texture according to the number of the face of the clicked individual model plus the component number of the StaticMeshComponent.

[0050] 2.3. Set the UV of the super-large model to be consistent with the data of the texture to ensure that one pixel can be rendered over a single model, so that effective interactive operations can be performed later.

[0051] 2.4. Create a rendering material for the super-large model in UnrealEngine, and give the texture used for dynamic interactive kinetic energy to the texture rendering parameters of the rendering material, and then render the texture onto the super-large model. The rendering material can be customized to a certain extent. If you need to do some functions such as model cross-sections, you can add some custom rendering nodes. Combine the interactive function with the real-time modification of the texture. For example, if you want to hide one or a batch of individual model nodes, just find the corresponding pixel number and change the pixel transparency Alpha channel value to 0 to achieve the hiding effect of these nodes. Similarly, if you want to achieve the display effect, just change the pixel transparency Alpha channel value to 255. Similar methods can be used for other translucency and changing the color of model nodes.

[0052] Creating rendering materials for super-large models is done in the UnrealEngine editor. You can create material ball rendering resources in advance. After creating material type assets, you can call them directly through code in the packaging program.

[0053] In this embodiment, Figure 2As shown in the figure, at the level of real-time interaction of super-large volume models, we need to break out of the inherent thinking mode and can no longer use the idea of ​​completely individual operations to achieve interaction. We need to think and process the entire super-large volume model as a whole. The following three steps are required: (1) Establish the relationship between the minimum individual model node number and the texture pixel of the super-large volume model. For example, a 1024X1024 resolution texture contains 1048576 pixels, which means it can correspond to 1048576 individual model nodes. It is necessary to set the correct model UV parameters according to the individual model node number of the super-large volume model, because the UV data directly affects the rendering space position information of the texture pixel. (2) It is necessary to dynamically generate this texture for interactive function operation, because the data of this texture needs to change in real time, for example, some pixels in it need to be transparent, so that some individual model nodes can be hidden accordingly to achieve hidden interactive functions. Similarly, if the color of the texture pixel is set, the color of the individual model node is set. (3) If you need to render the dynamically generated texture onto a very large model, you need to create a suitable material ball to achieve the rendering. This material ball is actually not complicated. You can directly use the texture for rendering, or you can add some special processing nodes to achieve some special interactions, such as slicing, overall translucency, or edge stroke.

[0054] In this embodiment, compared with the traditional model loading method or Cesium loading method, the method of the present invention can greatly reduce the resource consumption of hardware performance, and the hardware requirements are relatively low, which can greatly reduce the threshold for loading ultra-large volume models. It is also a great breakthrough in the interaction level. For the real-time interaction of ultra-large volume models, a new solution is proposed, which can achieve real-time performance and accurately realize the same functions as the traditional functional operations on individual models.

[0055] Of course, as the model size continues to increase, it is indeed necessary to continuously increase the hardware resource configuration, but compared with other solutions, the hardware requirements of each solution are different. Please refer to the attached Figure 3 .

[0056] By adopting the above technical solution disclosed in the present invention, the following beneficial effects are obtained:

[0057] The present invention provides a solution for loading and manipulating ultra-large interactive hash models. At the dynamic loading level, the present invention is much faster than the traditional model loading method or Cesium loading method, and consumes less energy for 3D scene rendering, especially the CPU and memory consumption, so that the interactive effect of the process can be better achieved after the final loading is completed. 2. At the real-time interaction level, compared with the traditional model loading method or Cesium loading method, the present invention basically solves the disadvantage of the inability to operate the most subtle part of the individual model, and can realize a large number of interactive operations, while ensuring ultra-high interactive real-time effects.

[0058] The above is only a preferred embodiment of the present invention. It should be pointed out that for ordinary technicians in this technical field, several improvements and modifications can be made without departing from the principle of the present invention. These improvements and modifications should also be considered as the scope of protection of the present invention.

Claims

1. A solution for loading and manipulating large-scale interactive hash models, characterized by: Including the following contents, Dynamic loading of super large volume models: Convert the super-large volume model into a standardized model and export it as a binary file; combine the real-time interaction results of the super-large volume model, assign the BIM static model dynamically generated based on multi-threaded parallelism to the static model component, and mount the static model component to the Actor type object that carries the dynamically loaded model, and finally render the super-large volume model in the 3D scene; Real-time interaction of super-large models: A dynamic interactive kinetic energy map is created based on the binary file of the super-large volume model, an association relationship between the minimum monomer model node of the super-large volume model and the effective pixels of the map is established, correct UV parameters are set for the super-large volume model based on the association relationship, and the map is rendered onto the super-large volume model.

2. The method for loading and manipulating a large interactive hash model according to claim 1, characterized in that: The dynamic loading of super-large volume models specifically includes the following contents: S11. Collect BIM information of super-large volume models according to requirements or provided reference resources; S12. Refer to the BIM information of the super-large model, convert the super-large model into a standardized model through professional 3D modeling software or third-party model processing tools, and configure the BIM information at the same time; S13, exporting the standardized model into a binary file, and after removing redundant information, organizing the remaining necessary model information according to certain rules to provide a basis for subsequent dynamic loading; S14. Implement dynamic loading logic on the UnrealEngine side to dynamically generate BIM static models; S15. Combined with the real-time interaction results of the super-large volume model, create an Actor type object that carries the dynamically loaded model in the scene on the UnrealEngine side, assign the BIM static model to the StaticMeshComponent component and mount it on the Actor object; S16. Render the super-large volume model in the 3D scene.

3. The method for loading and manipulating a large interactive hash model according to claim 2, characterized in that: The BIM information of super-large volume models includes oblique image information, scanned model information, drone-collected image information, and manual measurement information.

4. The method for loading and manipulating a large interactive hash model according to claim 2, characterized in that: Specifically, step S14 processes the data at the geometric information level of the model in a multi-threaded manner, generates a static model at a purely geometric level, and then assigns the collision volume data calculated on the model surface to the dynamic model to support basic click interaction events.

5. The method for loading and manipulating a large interactive hash model according to claim 2, characterized in that: The format of the standardized model is GLTF, FBX or OBJ.

6. The method for loading and manipulating a large interactive hash model according to any one of claims 1 to 5, characterized in that: Real-time interaction of super-large volume models includes the following contents: S21. Based on the binary file generated during the dynamic loading of the super-large volume model, a map for dynamic interactive kinetic energy is dynamically generated; S22, establishing a correspondence between effective pixels of the texture and monomeric model nodes of the super-large volume model; S23, setting the UV of the super-large volume model to be consistent with the data of the texture to ensure that each pixel can be covered and rendered on the corresponding monomer model; S24. Create a rendering material for the super-large volume model in UnrealEngine, and give the texture used for dynamic interactive kinetic energy to the texture rendering parameters of the rendering material, and then render the texture onto the super-large volume model.

7. The method for loading and manipulating a large interactive hash model according to claim 6, characterized in that: In step S21, the size of the generated map is set according to the number of operable nodes of the super-large volume model.

8. The method for loading and manipulating a large interactive hash model according to claim 6, characterized in that: In step S22, an index table is established, which stores a one-to-one correspondence between pixels of the map and individual model nodes. The pixel number of the map is directly found by clicking the label of the individual model node plus the number of the StaticMeshComponent component where the individual model node is located.

9. The method for loading and manipulating a large interactive hash model according to claim 6, characterized in that: In step S24, a suitable material ball is created to render the texture onto the super-large volume model.