Three-dimensional data loading method of CIM platform
By combining spatial indexing and rendering performance baseline with semantic tagging for 3D data loading, the problem of device resource overload and rendering lag in existing technologies is solved, enabling smooth and accurate 3D data loading on different terminal devices, adapting to diverse devices and complex business scenarios.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-11-10
- Publication Date
- 2026-03-24
AI Technical Summary
In existing technologies, data loading methods based on a single spatial dimension cannot adapt to the needs of terminal devices and complex business scenarios, resulting in rendering stuttering and resource overload.
By querying 3D data objects located within the camera's view frustum using spatial indexing, and combining the target device's rendering performance baseline and semantic tags, loading strategies and domain categories are determined, priority scores are calculated, and loading order and scope are dynamically adjusted to ensure that critical objects are rendered first.
It achieves smooth and accurate 3D data loading on different terminal devices, adapts to diverse devices and complex business scenarios, and ensures smooth rendering and presentation of key information.
Smart Images

Figure CN121095415B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of computer three-dimensional graphics, and particularly to a three-dimensional data loading method of a CIM platform. BACKGROUND
[0002] In the current three-dimensional graphics field, with the rapid development of digital twinning and smart city applications, the City Information Modeling (CIM) platform needs to process large-scale three-dimensional data such as building information models, oblique photography and underground pipe networks. This results in the number of rendering triangle patches often reaching hundreds of millions, which puts a huge pressure on hardware resources. In related technologies, a visibility culling method based on spatial indexing is usually used to load visible data within the camera frustum to reduce processing overhead. However, this method completely relies on geometric spatial relationships, and when the camera viewpoint is located in an open area such as a city square, the frustum still contains a large number of visible objects, and it is still impossible to avoid the loading data volume exceeding the carrying capacity of the device, and the rendering lag phenomenon occurs.
[0003] The above content is only used to assist in understanding the technical solutions of the present application and does not represent the acknowledgement of the above content as prior art. SUMMARY
[0004] The main purpose of the present application is to provide a three-dimensional data loading method of a CIM platform, which aims to solve the technical problem that the data loading method based on a single spatial dimension in the prior art is difficult to adapt to the needs of terminal devices and complex business scenarios.
[0005] To achieve the above purpose, the present application provides a three-dimensional data loading method of a CIM platform, which comprises:
[0006] querying, through spatial indexing, three-dimensional data objects located within a frustum corresponding to a camera viewpoint and having a distance from the camera viewpoint less than or equal to a preset visible distance;
[0007] determining a default loading range corresponding to the camera viewpoint based on a rendering performance baseline of a target device, and determining a loading strategy of the three-dimensional data objects according to semantic labels of the three-dimensional data objects;
[0008] determining a loading domain category of the three-dimensional data objects according to a dependency relationship between positions of the three-dimensional data objects and the default loading range, wherein the loading domain category comprises a default loading domain and a conditional loading domain;
[0009] if the loading strategy is non-on-demand loading, calculating a priority score of each three-dimensional data object according to the semantic labels, the loading domain category and vertex coordinate arrays corresponding to the three-dimensional data objects;
[0010] Based on the magnitude of the priority score, the 3D models corresponding to the 3D data objects are loaded sequentially on the target device.
[0011] In one embodiment, the step of determining the default loading range corresponding to the camera viewpoint based on the rendering performance baseline of the target device includes:
[0012] The 3D data loading threshold for the camera viewpoint is calculated by back-calculating the rendering performance baseline.
[0013] Determine the spatial density distribution of the current scene based on the camera viewpoint;
[0014] The default loading range corresponding to the camera viewpoint is calculated by dividing the three-dimensional data loading threshold by the spatial density distribution.
[0015] In one embodiment, determining the loading strategy of the 3D data object based on its semantic tags includes:
[0016] Obtain the semantic labels associated with the three-dimensional data object, and determine the scene category of the current scene based on the camera viewpoint, wherein the semantic labels include category labels, name labels and frequency labels, and the frequency labels include regular and non-regular;
[0017] Based on the category label, name label, and scene category, a functional importance label corresponding to the 3D data object in the scene category is determined. The functional importance label is used to quantitatively describe the business functional importance of the 3D data object in the scene category, and the functional importance label includes important and unimportant.
[0018] If the functional importance label of the three-dimensional data object is "important", or the frequency label of the three-dimensional data object is "normal", the loading strategy of the three-dimensional data object is determined to be the default loading;
[0019] Otherwise, the loading strategy for the three-dimensional data object is determined to be on-demand loading.
[0020] In one embodiment, after the steps of determining the default loading range corresponding to the camera viewpoint based on the rendering performance baseline of the target device, and determining the loading strategy of the 3D data object according to the semantic tags of the 3D data object, the method further includes:
[0021] If the loading strategy is on-demand loading, the priority score of the 3D data object is set to 0, the 3D data object is set as a waiting-to-load object, and the waiting-to-load object is added to the waiting-to-load queue;
[0022] If the loading strategy is non-on-demand loading, the 3D data object is added to the immediate loading queue.
[0023] In one embodiment, the step of calculating the priority score of each 3D data object based on the semantic label, the loading domain category, and the vertex coordinate array corresponding to the 3D data object includes:
[0024] The spatial domain dimension score of the three-dimensional data object is determined based on the first correspondence between the loading domain category and the pre-set loading domain category and spatial domain dimension score.
[0025] The label dimension score of the three-dimensional data object is determined based on the functional importance label and the second correspondence between the pre-set functional importance label and the label dimension score.
[0026] Based on the vertex coordinate array, calculate the projected area of the 3D data object in screen space, and calculate the spatial distance between the 3D data object and the camera viewpoint;
[0027] A visual dimension score for the three-dimensional data object is generated by combining the spatial distance and the projected area using a preset weighted algorithm.
[0028] The priority score corresponding to the three-dimensional data object is calculated by combining the spatial domain dimension score, the label dimension score, and the visual dimension score.
[0029] In one embodiment, before the step of sequentially loading the 3D model corresponding to the 3D data object onto the target device, the method further includes:
[0030] Based on the vertex coordinate array of the three-dimensional data object, calculate the projected area of the three-dimensional data object in screen space, and calculate the spatial distance between the three-dimensional data object and the camera viewpoint;
[0031] Based on the spatial distance, determine the initial model level corresponding to the three-dimensional data object;
[0032] Obtain the functional importance label from the semantic label of the three-dimensional data object, and determine the first model level correction amount corresponding to the three-dimensional data object based on the functional importance label and the third correspondence between the pre-set functional importance label and the model level correction amount.
[0033] Based on the fourth correspondence between the projected area and the pre-set projected area and model level correction amount, the second model level correction amount corresponding to the three-dimensional data object is determined;
[0034] The initial model level is corrected using the first model level correction amount and the second model level correction amount to obtain the target model level corresponding to the three-dimensional data object, and the hierarchical detail model corresponding to the target model level is determined as the three-dimensional model corresponding to the three-dimensional data object.
[0035] In one embodiment, after the step of sequentially loading the 3D model corresponding to the 3D data object onto the target device, the method further includes:
[0036] During the loading process, monitor the actual load parameters of the target device and the unloaded objects in the three-dimensional data object;
[0037] Based on the actual load parameters and the 3D model of the unloaded object, the predicted load after loading is completed is estimated;
[0038] If the predicted load exceeds a preset load threshold, stop loading the 3D model corresponding to the 3D data object and perform an unloading operation on the 3D model of the unloaded object.
[0039] In one embodiment, it further includes:
[0040] During the loading process, when an event that meets the loading trigger condition corresponding to the object waiting to be loaded is detected, the priority score of the object waiting to be loaded is set to the preset maximum priority score.
[0041] Set the object to be loaded as a 3D data object and add it to the front of the immediate loading queue.
[0042] In one embodiment, before the step of determining the default loading range corresponding to the camera viewpoint based on the rendering performance baseline of the target device, the method further includes:
[0043] A stress performance test is performed on the target device to obtain the maximum rendering primitive throughput of the target device while maintaining a preset target frame rate, and the maximum rendering primitive throughput is determined as the rendering performance baseline.
[0044] In one embodiment, it further includes:
[0045] Obtain the historical movement trajectory of the virtual camera, and based on the historical movement trajectory, predict the movement trajectory of the virtual camera within a preset time period in the future;
[0046] Based on the predicted motion trajectory, the target area that the virtual camera will enter is determined, and the target area is the spatial range covered by the view frustum corresponding to the predicted motion trajectory.
[0047] Within the target area, candidate 3D data objects with a priority score greater than a preset score are selected;
[0048] Perform a pre-loading operation on the candidate 3D data object and store the loaded 3D data in the cache.
[0049] Furthermore, to achieve the above objectives, this application also proposes a three-dimensional data loading device for a CIM platform, the three-dimensional data loading device for the CIM platform comprising:
[0050] The three-dimensional data acquisition module is used to query three-dimensional data objects located within the view frustum corresponding to the camera viewpoint and whose distance from the camera viewpoint is less than or equal to a preset visible distance through spatial indexing.
[0051] The strategy and range acquisition module is used to determine the default loading range corresponding to the camera viewpoint based on the rendering performance baseline of the target device, and to determine the loading strategy of the 3D data object based on the semantic tags of the 3D data object.
[0052] The loading domain category determination module is used to determine the loading domain category of the three-dimensional data object based on the subordinate relationship between the position of the three-dimensional data object and the default loading range, wherein the loading domain category includes a default loading domain and a conditional loading domain;
[0053] The scoring calculation module is used to calculate the priority score of each three-dimensional data object based on the semantic label, the loading domain category, and the vertex coordinate array corresponding to the three-dimensional data object if the loading strategy is non-on-demand loading.
[0054] The loading execution module is used to load the three-dimensional model corresponding to the three-dimensional data object sequentially on the target device based on the value of the priority score.
[0055] In addition, to achieve the above objectives, this application also proposes a three-dimensional data loading device for a CIM platform, the device comprising: a memory, a processor, and a computer program stored in the memory and executable on the processor, the computer program being configured to implement the steps of the three-dimensional data loading method for the CIM platform as described above.
[0056] In addition, to achieve the above objectives, this application also proposes a storage medium, which is a computer-readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, it implements the steps of the three-dimensional data loading method of the CIM platform as described above.
[0057] In addition, to achieve the above objectives, this application also provides a computer program product, which includes a computer program that, when executed by a processor, implements the steps of the three-dimensional data loading method of the CIM platform as described above.
[0058] One or more technical solutions proposed in this application have at least the following technical effects: By using spatial indexing, 3D data objects located within the view frustum corresponding to the camera viewpoint and whose distance from the camera viewpoint is less than or equal to a preset visible distance are queried, reducing invalid data processing and laying the foundation for subsequent scheduling. Based on the rendering performance baseline of the target device, the default loading range corresponding to the camera viewpoint is dynamically determined, and the loading strategy of the 3D data objects is determined according to their semantic tags. Furthermore, based on the subordinate relationship between the position of the 3D data object and the default loading range, the loading domain category of the 3D data object is determined, where the loading domain category includes a default loading domain and a conditional loading domain. If the loading strategy is non-on-demand loading (i.e., default loading), a priority score for the 3D data object is calculated based on its associated semantic tags, loading domain category, and the vertex coordinate array. The 3D data objects are then sorted using a multi-dimensional weighted ranking. Based on the priority score, the corresponding 3D models are loaded sequentially on the target device to prioritize the rendering of critical objects, balancing rendering smoothness and scene detail. This addresses the limitations of existing technologies that rely solely on spatial dimensions (such as whether the object is within the view frustum or its distance) to determine loading, failing to consider device performance differences and business scenario requirements. This leads to overload and stuttering on low-performance devices and delayed loading of important objects due to spatial location. The method overcomes the limitations of a single spatial dimension, achieving smooth and accurate loading, adapting to diverse devices and complex business scenarios. The 3D data loading method for the CIM platform provided in this application utilizes spatial indexing to quickly filter 3D data objects located within the camera's view frustum and whose distance from the camera viewpoint is less than or equal to a preset visible distance, completing preliminary geometric filtering and providing a feasible candidate set for subsequent intelligent scheduling. Next, the rendering performance baseline of the target device is introduced, and the default loading range under the current camera viewpoint is dynamically calculated. Simultaneously, the loading strategy (default loading or on-demand loading) is determined by combining the semantic tags of the 3D data objects. Based on the subordinate relationship between the position of the 3D data object and the default loading range, the loading domain category of the 3D data object is determined, achieving adaptive matching between the total loading volume and device capabilities. If the loading strategy is non-on-demand loading, the loading priority of the 3D data object is calculated by combining its semantic tags, loading domain category, and vertex coordinate array. Finally, the 3D models corresponding to the 3D data objects are loaded sequentially from high to low priority, ensuring that business-critical and visually significant content is presented first within a limited frame time. By organically integrating hardware performance awareness, business semantic understanding, and visual importance assessment, this approach overcomes the limitations of traditional methods that rely solely on spatial dimensions. It achieves adaptive 3D data scheduling that ensures smoothness while intelligently highlighting key information on different terminals, adapting to diverse terminal devices and complex business scenarios. Attached Figure Description
[0059] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the description, serve to explain the principles of this application.
[0060] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, for those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0061] Figure 1 This is a flowchart illustrating an embodiment of the three-dimensional data loading method for the CIM platform in this application.
[0062] Figure 2 This is a schematic diagram illustrating the dynamic adjustment of the "default loading domain" based on different hardware performance baselines in this application;
[0063] Figure 3 This is a schematic diagram illustrating the "on-demand loading" strategy triggered by semantic tags and business events in this application.
[0064] Figure 4 A schematic diagram of the structure of a three-dimensional data loading system for a CIM platform provided in this application;
[0065] Figure 5 This is a schematic diagram of the module structure of the three-dimensional data loading device of the CIM platform in an embodiment of this application;
[0066] Figure 6 This is a schematic diagram of the hardware operating environment involved in the three-dimensional data loading method of the CIM platform in this embodiment of the application.
[0067] The purpose, features, and advantages of this application will be further explained in conjunction with the embodiments and with reference to the accompanying drawings. Detailed Implementation
[0068] It should be understood that the specific embodiments described herein are merely illustrative of the technical solutions of this application and are not intended to limit this application.
[0069] To better understand the technical solution of this application, a detailed description will be provided below in conjunction with the accompanying drawings and specific implementation methods.
[0070] The main solution of this application embodiment is as follows: Using a spatial index, query 3D data objects located within the view frustum corresponding to the camera viewpoint, and whose distance from the camera viewpoint is less than or equal to a preset viewing distance; based on the rendering performance baseline of the target device, determine the default loading range corresponding to the camera viewpoint, and determine the loading strategy of the 3D data objects according to their semantic tags; determine the loading domain category of the 3D data objects based on the hierarchical relationship between their positions and the default loading range, wherein the loading domain category includes default loading domain and conditional loading domain; if the loading strategy is non-on-demand loading, calculate the priority score of each 3D data object based on its semantic tags, loading domain category, and vertex coordinate array corresponding to the 3D data object; based on the magnitude of the priority score, load the 3D models corresponding to the 3D data objects sequentially on the target device.
[0071] In this embodiment, for ease of description, the three-dimensional data loading system of the CIM platform will be used as the execution subject for the following description.
[0072] With the deepening development of digital twin and smart city concepts, the scale of 3D data carried by applications such as city-level CIM platforms is growing at an unprecedented rate. A typical city-level digital twin scenario may include detailed Building Information Modeling (BIM), high-precision oblique photogrammetry models, underground pipe networks, traffic flow lines, vegetation, and massive amounts of Internet of Things (IoT) sensor data, with the total data volume reaching terabytes and the number of triangles to be rendered often reaching hundreds of millions. Under current hardware conditions, loading such a large-scale 3D dataset into the rendering engine at once is infeasible, as this would lead to memory overflow, a sharp drop in rendering frame rate, or even program crashes, severely impacting the user experience. Therefore, existing technologies typically employ the following strategies to optimize the rendering performance of large-scale scenes:
[0073] Visibility culling based on spatial indexing is currently the most mainstream optimization technique. It uses data structures such as octrees, quadtrees, and binary space partitioning trees (BSPTrees) to divide and index the 3D space. During rendering, only scene data within the camera's view frustum is loaded and processed, culling the invisible parts outside the frustum. However, this method has limitations. Its decision-making is almost entirely based on geometry and spatial location, solving only the problem of "not loading what is invisible," but not the problem of "too much data to process." When the user's viewpoint is in an open area (such as a city square), the view frustum may contain tens of millions of triangular faces. Even if all of them are visible, low-performance hardware devices (such as integrated graphics cards or mobile devices) still cannot handle such a huge rendering load, resulting in stuttering. This type of method is "hardware performance independent," unable to adaptively adjust the amount of data loaded according to the actual processing power of the device.
[0074] Secondly, the second common technique is Level of Detail (LOD) technology. This involves creating multiple model versions of the same object with varying levels of detail, dynamically switching between models of different complexities based on the object's distance from the camera or its pixel size on the screen. This alleviates the rendering pressure on distant objects to some extent. However, LOD switching strategies are typically based on preset, relatively fixed distance thresholds, lacking intelligence and scene awareness, and failing to consider the business attributes and semantic importance of the data. For example, a business-critical component-level BIM model might be switched to a blurry, low-precision model due to its distance, resulting in information loss; while a trivial urban decoration might consistently occupy valuable rendering resources simply because it is close by.
[0075] The third technology is multi-rendering engine collaborative scheduling technology, which splits rendering tasks and assigns them to multiple different rendering engines (such as Unreal Engine and WebGL) for parallel processing. However, this method mainly solves the problem of task allocation and resource coordination in heterogeneous engine environments. It aims to integrate the capabilities of multiple rendering terminals, but does not delve into the core issue of how to intelligently decide "which data to load" and "how to load" based on scene content and its own performance within a single rendering terminal.
[0076] It is evident that existing technologies either rely too heavily on purely spatial geometric relationships, lacking the ability to perceive and adapt to the performance of terminal hardware; or ignore the business logic and semantic information hidden behind 3D data, leading to a "one-size-fits-all" scheduling strategy; or focus on task collaboration between multiple engines rather than data loading optimization within a single engine. Therefore, the industry urgently needs a new intelligent scheduling method that can proactively perceive the current performance status of the device, understand the semantic importance of the data, and make dynamic, intelligent, and adaptive data hierarchical loading and scheduling decisions based on this, thereby maximizing the presentation of scene details and business information while ensuring smooth frame rates.
[0077] This application provides a solution that quickly filters 3D data objects located at the camera's view frustum and at a distance less than or equal to a preset visible distance using spatial indexing, completing preliminary geometric filtering and providing a feasible candidate set for subsequent intelligent scheduling. Next, the rendering performance baseline of the target device is introduced, and the default loading range under the current camera viewpoint is dynamically calculated. Simultaneously, the semantic tags of the 3D data objects are combined to determine their loading strategy (default loading or on-demand loading). Based on the dependency relationship between the position of the 3D data object and the default loading range, the loading domain category of the 3D data object is determined, achieving adaptive matching between the total loading volume and device capabilities. If the loading strategy is non-on-demand loading, the loading priority of the 3D data object is calculated by combining its semantic tags, loading domain category, and vertex coordinate array. Finally, the 3D models corresponding to the 3D data objects are loaded sequentially from high to low priority, ensuring that business-critical and visually significant content is presented first within a limited frame time. By organically integrating hardware performance awareness, business semantic understanding, and visual importance assessment, this method breaks through the limitations of traditional methods that rely solely on spatial dimensions. It enables adaptive 3D data scheduling that ensures smoothness on different terminals while intelligently highlighting key information, thus adapting to diverse terminal devices and complex business scenarios.
[0078] It should be noted that the executing entity in this embodiment can be a computing service device with data processing, network communication, and program execution functions, such as a tablet computer, personal computer, or mobile phone, or a 3D data loading device of a CIM platform capable of performing the above functions. The following description uses a 3D data loading system of a CIM platform as an example to illustrate this embodiment and the subsequent embodiments.
[0079] Based on this, this application provides a method for loading three-dimensional data on a CIM platform, referring to... Figure 1 , Figure 1 This is a flowchart illustrating the first embodiment of the three-dimensional data loading method for the CIM platform of this application.
[0080] In this embodiment, the three-dimensional data loading method of the CIM platform includes steps 101-105:
[0081] Step 101: Using spatial indexing, query 3D data objects located within the view frustum corresponding to the camera viewpoint, and whose distance from the camera viewpoint is less than or equal to a preset visible distance.
[0082] Specifically, the spatial index is a data structure that organizes 3D space in a structured way, such as an octree, a bounding volume hierarchy (BVH), or a mesh. The camera viewpoint is the position and orientation of the virtual observer (virtual camera), including parameters such as position, orientation, and field of view. The view frustum is a truncated quadrangular spatial region with the camera viewpoint as its vertex, bounded by a near clipping plane, a far clipping plane, and four sides. It represents the camera's visible field of view; only 3D data objects located within the view frustum can be seen by the user. The preset visible distance is a pre-set maximum loading distance threshold (e.g., 2000 meters) used to limit the query range and prevent excessively long view frustums (especially when the far clipping plane is set to infinity) from causing uncontrolled query overhead. A 3D data object is a basic loading unit in the scene, such as a building, a section of pipeline, or a BIM component, containing a vertex coordinate array, metadata (semantic tags), and a spatial bounding volume.
[0083] In some embodiments, all data objects in a city-level 3D scene are organized into an octree spatial index structure based on their spatial bounding volumes (such as axis-aligned bounding boxes or bounding spheres), with each leaf node storing a reference to the corresponding object. At runtime, the system obtains the current camera viewpoint's position, orientation, and field of view, and acquires the camera viewpoint's position, orientation, and frustum parameters in real time to determine the spatial boundary of the frustum; simultaneously, it reads a preset visible distance threshold. The spatial index is recursively queried from the root node to determine whether each subspace intersects with the frustum, collecting all 3D data objects located within the frustum. Then, the straight-line distance between the geometric center of these objects and the camera viewpoint is calculated, and objects whose distance does not exceed the preset visible distance are selected, forming a set of 3D data objects to be processed. The spatial index quickly locates potential data to be loaded, reducing unnecessary calculations and providing an accurate basic dataset for subsequent scheduling.
[0084] Step 102: Based on the rendering performance baseline of the target device, determine the default loading range corresponding to the camera viewpoint, and determine the loading strategy of the 3D data object according to the semantic tags of the 3D data object.
[0085] Specifically, the target device is the terminal hardware currently running the 3D application, such as a high-performance workstation, a regular PC, a laptop with integrated graphics, or a mobile device. The rendering performance baseline is the maximum throughput of rendered primitives (e.g., the number of vertices or triangles processed per second) that the target device can stably handle while maintaining a preset target frame rate (e.g., 60 FPS). It is a critical value for measuring the target device's capacity. The rendering performance baseline objectively reflects the overall rendering capability of the current device (target device). The default loading range is a spatial region dynamically determined by the rendering performance baseline, centered on the current camera viewpoint. 3D data objects within the default loading range are those that "should be prioritized for loading." For example, 500 meters corresponds to a high-performance device, and 200 meters corresponds to a low-performance device.
[0086] In some embodiments, the rendering performance baseline of the target device is read. If the target device experiences dynamic performance fluctuations (such as overheating and frequency reduction), the baseline value can be updated in real time. Based on the rendering performance baseline, the maximum data volume threshold allowed to be loaded in the current scene is derived in reverse. Combined with the spatial distribution density of 3D data objects (i.e., the average complexity of data per unit volume), the spatial boundary of the default loading range is dynamically calculated with the camera viewpoint as the center. The stronger the device performance, the larger the coverage radius or area of the default loading range; the weaker the performance, the smaller the corresponding range.
[0087] Specifically, semantic tags assign structured semantic labels to data based on its source, type, business attributes, or importance. For example, 3D data objects can be labeled as "core business buildings," "ordinary buildings," "underground pipe networks," "indoor BIM components," and "visionary vegetation." Based on semantic tags, default loading strategies can be preset for different types of 3D data objects. Loading strategies include default loading and on-demand loading. Default loading is used to mark regular and important scene elements, which should be loaded first when certain spatial conditions are met. On-demand loading is used to mark elements that are highly complex, rarely used, or only need to be displayed under specific business logic (such as underground pipe networks and internal details of BIM components). These elements are not loaded by default and are only loaded when triggered by specific viewpoints, user interactions, or business events. The loading strategies are based on predefined loading rules of semantic tags.
[0088] In some embodiments, the semantic tags associated with each 3D data object are read, and its loading strategy is determined according to a preset semantic strategy mapping table. For example:
[0089] [City_Landmark] (City Landmark Buildings), Loading strategy: Default loading;
[0090] [General_Building] (General Buildings), Loading strategy: Default loading;
[0091] [Underground_PipeNetwork] (underground pipe network), loading strategy: load on demand;
[0092] [BIM_Internal_Structure] (BIM model internal structure / components), loading strategy: load on demand;
[0093] [Greenbelt_Vegetation] (Greenbelt vegetation), loading strategy: default loading.
[0094] Optionally, before determining the default loading range corresponding to the camera viewpoint based on the rendering performance baseline of the target device, the following steps may also be included:
[0095] Perform stress performance tests on the target device to obtain the maximum rendering primitive throughput of the target device while maintaining a preset target frame rate, and determine the maximum rendering primitive throughput as the rendering performance baseline.
[0096] Specifically, during the initialization phase, two different terminal devices access the CIM platform: Device A is a graphics workstation equipped with a high-performance discrete graphics card (such as an NVIDIA RTX 4080), and Device B is a regular office laptop with an integrated graphics card. When the CIM platform client runs for the first time on Device A and Device B, a standardized test scene containing various typical 3D models (buildings, trees, roads, etc.) is loaded. With the goal of maintaining a stable rendering frame rate of 60 FPS (the preset target frame rate), a stress test is automatically executed, gradually increasing the number of triangles in the scene until the frame rate begins to drop below 60 FPS. On Device A, the test shows that it can stably handle 10 million triangles per frame (i.e., the maximum rendering primitive throughput), therefore, the rendering performance baseline T_baseline_A for Device A is set to 10 million. On Device B, the test shows that it can only stably handle 1.5 million triangles per frame, therefore, the rendering performance baseline hardware performance baseline T_baseline_B for Device B is set to 1.5 million. The baseline values obtained from the test are cached in the local configuration.
[0097] Optionally, the steps for determining the default loading range corresponding to the camera viewpoint based on the target device's rendering performance baseline include:
[0098] The 3D data loading threshold for the camera viewpoint is calculated by back-calculating the rendering performance baseline.
[0099] Determine the spatial density distribution of the current scene based on the camera viewpoint;
[0100] The default loading range corresponding to the camera viewpoint is calculated by dividing the 3D data loading threshold by the spatial density distribution.
[0101] Specifically, the 3D data loading threshold is the maximum loadable data volume derived from the performance baseline, representing the upper limit of the total complexity of all 3D objects within the default loading range. The spatial density distribution of the current scene is a statistical model describing the density of 3D objects in space, which can be expressed as the average number of triangular facets or objects per unit volume (e.g., per cubic meter or per 100 cubic meters). The spatial density distribution is high in city centers (e.g., 100,000 facets / 100 meters). 3 The spatial density distribution in suburban areas is low (e.g., 1000 patches / 100 meters). 3 The spatial density distribution of the current scene can be obtained through octree node statistics, pre-calculated density maps, or real-time sampling.
[0102] As an example, based on the target device's rendering performance baseline (such as the number of triangles processed per second), and combined with the current frame rate, the total amount of 3D data allowed to be loaded per frame is deduced to obtain the 3D data loading threshold. Next, with the camera viewpoint as the center, 3D objects within a certain range can be queried using spatial indexing to calculate the average data complexity per unit volume (such as the number of triangles per cubic meter), determining the spatial density distribution of the current scene. The 3D data loading threshold is divided by the spatial density distribution, and the default loading range is calculated using the inverse relationship between volume and density. If the data is dense, the range shrinks; if it is sparse, the range expands. Finally, the spatial boundary centered on the camera viewpoint, with the total data volume not exceeding the loading threshold, is obtained.
[0103] Reference Figure 2 , Figure 2This visually demonstrates the differences in default loading domains across different devices. For example, when running on device A, the rendering status monitoring module of the CIM platform's 3D data loading system reports that the current frame's rendering load L_current_A is only 4 million triangles, far below device A's rendering performance baseline T_baseline_A (10 million). The dynamic scheduling core module of the CIM platform's 3D data loading system determines that performance is excessive, so it sets the radius of the default loading range to a larger value, such as 500 meters. Within this range, all buildings, vegetation, etc., marked as default loading strategies can be classified as default loading domains and loaded with high priority, presenting rich scene details. When running the same scene on device B, the rendering status monitoring module reports that the current frame load L_current_B has reached 1.2 million, close to device B's rendering performance baseline T_baseline_B (1.5 million). The scheduling module determines that performance is approaching saturation and immediately dynamically reduces the radius of the default loading range to 200 meters. In this way, core objects within 200 meters of the user's viewpoint can be designated as the default loading domain, while objects further away are either lazily loaded or use a lower-level LOD model, so that the rendering frame rate on device B can also be maintained at around the target preset frame rate (such as 60 FPS).
[0104] Step 103: Determine the loading domain category of the 3D data object based on the subordinate relationship between the position of the 3D data object and the default loading range. The loading domain category includes the default loading domain and the conditional loading domain.
[0105] Specifically, the default loading domain is a collection of 3D data objects within the default loading range that meet performance baseline constraints and can be loaded and rendered preferentially. The conditional loading domain is a collection of 3D data objects that are outside the default loading range but still within the view frustum and preset viewing distance, and can be loaded when device performance is redundant or when specific triggering conditions (such as user interaction) are met.
[0106] In some embodiments, for 3D data objects located within the camera's view frustum and at a distance less than or equal to a preset viewing distance from the camera's viewpoint, it can be determined whether the geometric center of each 3D data object falls within the calculated default loading range. The loading domain category of 3D data objects located within the default loading range is determined as the default loading domain; the loading domain category of 3D data objects located outside the default loading range is determined as the conditional loading domain, achieving dynamic adaptation of 3D data loading to the target device's rendering capabilities. Differentiated loading is achieved through domain partitioning, reserving expansion space for high-performance devices or specific needs while ensuring the smoothness of the basic scene.
[0107] Step 104: If the loading strategy is non-on-demand loading, calculate the priority score of each 3D data object based on the semantic label, loading domain category, and vertex coordinate array corresponding to the 3D data object.
[0108] Specifically, the loading strategy is based on predefined loading rules using semantic tags. In this application, non-on-demand loading can be default loading. The loading domain category is the spatial loading region category to which the 3D data object belongs, i.e., the default loading domain or the conditional loading domain. Objects in the default loading domain have higher loading priority. The vertex coordinate array is a collection of vertex coordinate arrays of the 3D objects. The priority score is a comprehensive numerical value of the 3D data objects, used to sort all 3D data objects to be loaded; the higher the score, the higher the loading priority.
[0109] In some embodiments, when the loading strategy for a 3D data object is non-on-demand loading, a corresponding spatial domain dimension score is assigned based on the loading domain category (default loading domain or conditional loading domain) to which the 3D data object belongs. Simultaneously, a spatial bounding volume is constructed using the object's vertex coordinate array, its distance to the current camera viewpoint is calculated, and it is projected onto the screen coordinate system to estimate the covered pixel area, thereby quantifying its visual importance and obtaining a visual dimension score. Simultaneously, a corresponding tag dimension score is calculated based on the semantic label of the 3D data object. Finally, the tag dimension score, loading strategy weight, spatial domain dimension score, and visual dimension score are weighted and fused to generate a comprehensive priority score. All 3D data objects to be loaded are sorted from high to low priority scores, serving as the basis for subsequent incremental loading. This process achieves multi-dimensional collaboration of business semantics, spatial location, and visual saliency, ensuring that high-value, highly visible key content is prioritized within limited rendering resources. By combining the business attributes and multi-dimensional characteristics of 3D data, differentiated loading priority ranking is achieved through quantified scoring, ensuring that core data is loaded first, balancing business needs and resource allocation efficiency.
[0110] Optionally, the steps for determining the loading strategy of 3D data objects based on their semantic tags include:
[0111] Obtain semantic labels associated with 3D data objects, and determine the scene category of the current scene based on the camera viewpoint. The semantic labels include category labels, name labels, and frequency labels, and the frequency labels include regular and non-regular.
[0112] Based on category labels, name labels, and scene categories, the functional importance labels of 3D data objects in scene categories are determined. The functional importance labels are used to quantitatively describe the business functional importance of 3D data objects in scene categories, and the functional importance labels include important and unimportant.
[0113] If the functional importance label of a 3D data object is "important" or the frequency label of a 3D data object is "normal", the loading strategy for the 3D data object will be set to the default loading.
[0114] Otherwise, the loading strategy for 3D data objects will be set to on-demand loading.
[0115] Specifically, semantic tags are a set of tags describing the business attributes of 3D data objects, including category tags, name tags, and frequency tags. Category tags include "building," "pipeline," and "vegetation," while name tags are the specific names of the objects, such as "municipal building" and "gas pipeline A." Frequency tags indicate the usage frequency of the object type, such as "regular" and "non-regular." Scene categories are the current scene type determined based on the camera viewpoint, such as "city center," "suburbs," and "underground pipeline area," reflecting the scene's business functions. Functional importance tags indicate the importance of an object's business functions in the current scene, including "important" or "not important," such as "municipal building" being important in a "city center" scene. Loading strategies are the data loading rules, including default loading (prioritizing loading and rendering) and on-demand loading (loading only under specific conditions).
[0116] As an example, the system acquires the semantic label associated with each 3D data object, containing three parts: category label, name label, and frequency label. Simultaneously, based on the current camera viewpoint's geographical location or the distribution of surrounding objects, it identifies the current scene category. Then, combining a pre-defined scene-category importance rule base and referring to the name label, it dynamically determines the functional importance label ("important" or "unimportant") of the 3D data object within the current scene context. For example, a "substation" might be labeled "important" in an industrial park but "unimportant" in a park scene. After the determination, for each 3D data object, if its functional importance label is "important" or its frequency label is "regular" (i.e., not low-frequency, with some general value), its loading strategy is set to default loading, ensuring that the 3D data object is prioritized for presentation when resources allow; otherwise, if the 3D data object's functional importance label is "unimportant" and its frequency label is "non-regular" (i.e., functionally unimportant and low-frequency), the loading strategy is set to on-demand loading, triggering loading only when the user actively interacts or system resources are abundant. By analyzing the multi-dimensional semantic attributes (category, name, usage frequency) and current scenario characteristics of 3D data objects, the business importance of 3D data objects can be accurately determined. This allows for a distinction between default loading (priority guarantee) and on-demand loading (flexible scheduling), ensuring that core business data can be loaded first, while non-core data is allocated resources on demand, thus achieving a balance between business needs and loading efficiency.
[0117] Optionally, after determining the default loading range corresponding to the camera viewpoint based on the rendering performance baseline of the target device, and determining the loading strategy of the 3D data object based on the semantic tags of the 3D data object, the method further includes:
[0118] If the loading strategy is on-demand loading, set the priority score of the 3D data object to 0, set the 3D data object as an object waiting to be loaded, and add the object waiting to be loaded to the waiting loading queue.
[0119] If the loading strategy is non-on-demand loading, add the 3D data object to the immediate loading queue.
[0120] Specifically, the objects waiting to be loaded are 3D data objects that use an on-demand loading strategy. They are not loaded immediately but are stored in a waiting queue. The waiting queue is a data structure that stores objects waiting to be loaded for later on-demand retrieval.
[0121] As an example, if the loading strategy for a 3D data object is on-demand loading, its priority score is set to 0, it is marked as a waiting object, added to the waiting loading queue, and temporarily does not participate in the active loading process of the current cycle. It is only reserved for subsequent user interaction or when resources are idle.
[0122] Optionally, if the loading strategy is non-on-demand loading, the steps for calculating the priority score of each 3D data object based on the semantic label, loading domain category, and vertex coordinate array corresponding to the 3D data object include:
[0123] Based on semantic labels, loading domain categories, and vertex coordinate arrays, calculate the priority score of 3D data objects and add them to the immediate loading queue. Loading domain categories include default loading domains and conditional loading domains.
[0124] Specifically, the immediate loading queue stores 3D data objects that use the default loading strategy, sorted by priority score, and is used for immediate loading.
[0125] As an example, if the loading strategy for a 3D data object is default loading, a priority score calculation is initiated. The semantic tags of the object are parsed, and combined with the loading domain category to which the 3D data object belongs, a bounding volume is constructed using its vertex coordinate array. The distance from the 3D data object to the virtual camera and its projected area in screen space are calculated to quantify visual saliency. Finally, a priority score is generated using a preset weighted fusion formula. All default-loaded objects are sorted from highest to lowest priority score, forming an immediate loading queue. During the loading phase, the system loads the 3D models of the 3D data objects sequentially based on the available time and resource budget of the target device's current frame, until the frame time is exhausted or the queue is cleared. By differentiating loading strategies, hierarchical loading management of 3D data objects is achieved, ensuring that default-loaded objects are loaded in an orderly manner according to priority, while on-demand loaded objects are temporarily stored and waited for, thus prioritizing the rendering of core data with limited resources, improving scene loading efficiency and business adaptability.
[0126] Optionally, the steps for calculating the priority score of each 3D data object based on the semantic label, loading domain category, and vertex coordinate array corresponding to the 3D data object include:
[0127] The spatial domain dimension score of the 3D data object is determined based on the first correspondence between the loading domain category and the pre-set loading domain category and the spatial domain dimension score.
[0128] The label dimension score of the three-dimensional data object is determined based on the second correspondence between the functional importance label and the pre-set functional importance label and label dimension score.
[0129] Based on the vertex coordinate array, calculate the projected area of the 3D data object in screen space, and calculate the spatial distance between the 3D data object and the camera viewpoint;
[0130] By combining spatial distance and projected area using a preset weighted algorithm, a visual dimension score for three-dimensional data objects is generated.
[0131] The priority score for a 3D data object is calculated by combining spatial domain dimension scores, label dimension scores, and visual dimension scores.
[0132] Specifically, the first correspondence is a preset mapping rule between loading domain categories and scores (e.g., default loading domain = 5 points, conditional loading domain = 0 points). The tag dimension score is based on functional importance tags (important / unimportant), reflecting the object's business importance. The second correspondence is a preset mapping rule between functional importance tags and scores (e.g., important = 6 points, non-important = 0 points). Projected area is the pixel area of the 3D data object in screen space, reflecting visual salience (larger area, more salience). Spatial distance is the straight-line distance between the 3D data object and the camera viewpoint; closer distances result in higher visual priority. The visual dimension score is a combined score of projected area and spatial distance, reflecting the object's visual presentation requirements. The priority score is a comprehensive score of the spatial domain, tag, and visual dimensions; higher scores indicate higher loading priority.
[0133] As an example, based on the loading domain category to which the 3D data object belongs (default loading domain or conditional loading domain), query the pre-configured first correspondence (e.g., the default loading domain corresponds to a spatial domain dimension score of 5, and the conditional loading domain corresponds to 0), and determine the spatial domain dimension score S of the 3D data object. 空间 This reflects the spatial priority of 3D data objects under device performance constraints. Secondly, based on the functional importance labels of the 3D data objects (e.g., "important" or "unimportant"), a second correspondence is used to obtain the label dimension score S of the 3D data objects through a second mapping (e.g., "important" maps to 6 points, "unimportant" maps to 0 points). 标签 This demonstrates the semantic value of the 3D data object in the current business scenario. Subsequently, the spatial bounding volume (e.g., a bounding sphere) of the 3D data object is constructed using its vertex coordinate array. The spatial distance d from the center of the bounding volume to the current camera viewpoint is calculated, and the spatial bounding volume is projected onto the camera view plane to estimate the projected area A of the 3D data object in screen space. Then, a preset weighted algorithm (e.g., visual dimension score = w1 × ...) is applied. +w2×A, where w1 and w2 can be dynamically adjusted according to the device type) generates a visual dimension score S. 标签 This is used to measure the visual salience of an object. Finally, the scores of the above three dimensions are combined using a comprehensive formula (e.g., priority score P = w³ × S). 空间 ×100+w4×S 标签 +w5×S 标签The priority score of a 3D data object is calculated by fusing the data (where w5 + w4 + w3 = 1, and weights w3, w4, and w5 are configurable). All 3D data objects are sorted from highest to lowest priority score, which serves as the basis for the loading order in the immediate loading queue. By fusing indicators from three dimensions—spatial range, business importance, and visual characteristics—the priority score of 3D data objects is quantified to ensure that the loading order both conforms to device performance constraints and prioritizes business needs and visual presentation effects, achieving precise resource allocation. For example, a landmark building located 300 meters away and marked as [City_Landmark] will have a higher priority than an ordinary tree located 250 meters away and marked as [Greenbelt_Vegetation].
[0134] Step 105: Based on the magnitude of the priority score, load the 3D model corresponding to the 3D data object onto the target device in sequence.
[0135] Specifically, a 3D model is a visualization carrier of 3D data objects, which can be composed of geometric data, material information, etc., and needs to be loaded into the device memory before being rendered.
[0136] In some embodiments, the 3D data objects in the immediate loading queue are sorted from high to low priority scores. The target device reads the corresponding 3D model files of the 3D data objects sequentially, starting from the head of the sorted immediate loading queue. Geometric data (vertices, faces), material textures, etc., are loaded into the device memory and converted into a format that the rendering engine can directly call. During the loading process, the device load is monitored in real time. If the load is normal, loading continues in sequence. If the load is too high, loading of low-priority objects is paused and resumed after performance recovers, ensuring that the loaded high-priority models are rendered smoothly.
[0137] Optionally, during the loading process, when an event that meets the loading trigger condition corresponding to the object waiting to be loaded is detected, the priority score of the object waiting to be loaded is set to the maximum preset priority score.
[0138] Set the object to be loaded as a 3D data object and add it to the front of the immediate load queue.
[0139] Specifically, the loading trigger condition is a preset event that activates the object waiting to be loaded, such as a user clicking on the object, the camera focusing on the object's area, or a query triggered by business logic. The preset priority score is the highest priority score set (e.g., 100 points or +∞), ensuring that the triggered object is ranked before all other objects in the current loading cycle.
[0140] As an example, the system continuously listens for preset loading trigger events during runtime, such as a user clicking an unloaded facility icon, locating a building in the search box, or receiving a highlight command from the business system. When a waiting object is detected to meet its associated trigger conditions, its priority score is immediately updated to the preset maximum priority score (e.g., 100.0), and the object is removed from the waiting loading queue, re-marked as a valid 3D data object, and inserted at the front of the immediate loading queue (i.e., its priority is higher than all existing objects before sorting). During the loading scheduling phase of the current cycle, this object will be processed first, and the system will prioritize allocating IO bandwidth and GPU resources to it to complete model data loading and rendering registration. By dynamically responding to trigger events and providing a temporary priority-setting mechanism for waiting objects, the system ensures the orderliness of regular loading while quickly activating non-core data when user interaction or sudden business needs arise, improving the interactive flexibility and emergency response capabilities of the 3D scene.
[0141] refer to Figure 3 , Figure 3 This is a schematic diagram illustrating an on-demand loading strategy based on semantic tags or business events in an embodiment of the present invention. Figure 3 This demonstrates a semantically based on-demand loading process: During normal roaming, even if a complex underground pipe network (labeled [Underground_PipeNetwork]) exists below the user's viewpoint, the dynamic scheduling core module will not load this 3D object data due to its on-demand loading strategy. Figure 3 As shown in the normal roaming state. At this time, the user clicks the "Pipe Network Analysis" function button on the platform's UI interface. This operation is considered a business event, which is passed to the dynamic scheduling core module. The dynamic scheduling core module immediately searches for all data marked as [Underground_PipeNetwork] near the viewpoint and raises its loading priority to the highest. The system then performs incremental loading, loading and rendering the 3D objects of the underground pipe network, and may display the ground in a semi-transparent manner, such as... Figure 3 The "Pipeline Analysis" event trigger status is shown in the image. When the user disables the "Pipeline Analysis" function, this data is intelligently unloaded, releasing rendering resources.
[0142] Based on the 3D data loading method of the CIM platform provided in this application, spatial indexing is used to query 3D data objects located within the view frustum corresponding to the camera viewpoint, and whose distance from the camera viewpoint is less than or equal to a preset visible distance. This reduces invalid data processing and lays the foundation for subsequent scheduling. Based on the rendering performance baseline of the target device, the default loading range corresponding to the camera viewpoint is dynamically determined, and the loading strategy for 3D data objects is determined according to their semantic tags. Furthermore, based on the hierarchical relationship between the position of the 3D data object and the default loading range, the loading domain category of the 3D data object is determined, where the loading domain category includes a default loading domain and a conditional loading domain. If the loading strategy is non-on-demand loading (i.e., default loading), a priority score for the 3D data object is calculated based on its associated semantic tags, loading domain category, and the vertex coordinate array. The 3D data objects are then sorted using a multi-dimensional weighted ranking. Based on the priority score, the corresponding 3D models are loaded sequentially on the target device to prioritize the rendering of critical objects, balancing rendering smoothness and scene detail. This addresses the limitations of existing technologies that rely solely on spatial dimensions (such as whether the object is within the view frustum or its distance) to determine loading, failing to consider device performance differences and business scenario requirements. This leads to overload and stuttering on low-performance devices and delayed loading of important objects due to spatial location. The method overcomes the limitations of a single spatial dimension, achieving smooth and accurate loading, adapting to diverse devices and complex business scenarios. The 3D data loading method for the CIM platform provided in this application utilizes spatial indexing to quickly filter 3D data objects located within the camera's view frustum and whose distance from the camera viewpoint is less than or equal to a preset visible distance, completing preliminary geometric filtering and providing a feasible candidate set for subsequent intelligent scheduling. Next, the rendering performance baseline of the target device is introduced, and the default loading range under the current camera viewpoint is dynamically calculated. Simultaneously, the loading strategy (default loading or on-demand loading) is determined by combining the semantic tags of the 3D data objects. Based on the subordinate relationship between the position of the 3D data object and the default loading range, the loading domain category of the 3D data object is determined, achieving adaptive matching between the total loading volume and device capabilities. If the loading strategy is non-on-demand loading, the loading priority of the 3D data object is calculated by combining its semantic tags, loading domain category, and vertex coordinate array. Finally, the 3D models corresponding to the 3D data objects are loaded sequentially from high to low priority, ensuring that business-critical and visually significant content is presented first within a limited frame time. By organically integrating hardware performance awareness, business semantic understanding, and visual importance assessment, this approach overcomes the limitations of traditional methods that rely solely on spatial dimensions. It achieves adaptive 3D data scheduling that ensures smoothness while intelligently highlighting key information on different terminals, adapting to diverse terminal devices and complex business scenarios.
[0143] In some embodiments, before the step of sequentially loading the 3D model corresponding to the 3D data object onto the target device, the method further includes:
[0144] Based on the vertex coordinate array of the 3D data object, calculate the projected area of the 3D data object in screen space, and calculate the spatial distance between the 3D data object and the camera viewpoint.
[0145] Determine the initial model level corresponding to the 3D data object based on the spatial distance;
[0146] Obtain the functional importance label from the semantic label of the 3D data object, and determine the first model level correction amount corresponding to the 3D data object based on the third correspondence between the functional importance label and the pre-set functional importance label and the model level correction amount.
[0147] Based on the fourth correspondence between the projected area and the pre-set projected area and the model level correction amount, the second model level correction amount corresponding to the three-dimensional data object is determined.
[0148] The initial model level is corrected by using the first model level correction amount and the second model level correction amount to obtain the target model level corresponding to the 3D data object, and the hierarchical detail model corresponding to the target model level is determined as the 3D model corresponding to the 3D data object.
[0149] Specifically, the initial model level is a hierarchy of detail levels determined by spatial distance, such as LOD0 (high detail) for distances of 0-100 meters and LOD1 (simplified) for distances of 100-500 meters. Functional importance labels indicate the business importance of the object (e.g., "important" or "not important"). The first model level correction is a level adjustment value based on the functional importance label, such as +1 level for "important" objects, used to enhance detail. The second model level correction is a level adjustment value based on the projected area, such as +1 level for projected area > 500 pixels, used to enhance visual detail. The target model level is the final hierarchy of detail level determined after the initial level and the two correction adjustments. The Hierarchical Detail Model (LOD model) consists of multiple pre-generated versions of different details for the same object, such as LOD0 being the original high-poly model and LOD3 being a simplified low-poly model, used for on-demand loading.
[0150] As an example, a spatial bounding volume is constructed based on the vertex coordinate array of a 3D data object. This bounding volume is projected onto screen space, and its projected area is calculated. Simultaneously, the spatial distance between the center of the bounding volume and the camera viewpoint is calculated. Then, according to a pre-defined distance-LOD mapping table (e.g., 0–100 meters corresponds to LOD0, 100–300 meters to LOD1, and above 300 meters to LOD2), the initial model level of the 3D data object is determined. Next, the functional importance label (e.g., "important" or "unimportant") in the semantic tags of the 3D data object is read, and a pre-configured third correspondence is queried (e.g., "important" corresponds to the first correction amount -1, "unimportant" corresponds to 0) to obtain the first model level correction amount. Simultaneously, based on the calculated projected area, a fourth correspondence is queried (e.g., the correction amount is -1 when the projected area > 5000 pixels²) to obtain the second model level correction amount. The initial model level is added to the two correction amounts, and the sum is limited to a legal LOD range (e.g., 0 to 3 levels) to obtain the final target model level. Subsequently, the 3D model corresponding to the target model level is selected from the pre-generated multi-level hierarchical detail model as the actual loading model of the 3D data object. Based on distance-based LOD, the importance of business semantics and the visual salience of the screen are integrated, so that critical facilities can still retain high detail even if they are far away or have small projections, while secondary objects are automatically downgraded. This significantly reduces the GPU rendering load while ensuring the integrity of business information expression, and improves the smoothness and adaptability of large-scale 3D scenes on heterogeneous terminals.
[0151] In some embodiments, after the step of sequentially loading the 3D model corresponding to the 3D data object onto the target device, the method further includes:
[0152] During the loading process, monitor the actual load parameters of the target device and the unloaded objects in the 3D data object;
[0153] Based on the actual load parameters and the 3D model of the unloaded objects, the predicted load after loading is estimated.
[0154] If the predicted load exceeds the preset load threshold, stop loading the 3D model corresponding to the 3D data object and unload the 3D model of the unloaded object.
[0155] Specifically, the actual load parameters are the target device's current real-time performance metrics, including: GPU memory utilization, CPU utilization, current frame rate, VRAM bandwidth utilization, and triangle / facet processing rate, reflecting the system's current stress state. Unloaded objects are 3D data objects in the immediate load queue that have not yet completed model loading. The predicted load is an estimate of the total load level the system will reach once all unloaded objects are loaded, based on the model complexity (such as the number of vertices, faces, and texture size) and their LOD level, combined with the current actual load parameters. The preset load threshold is a pre-set safety performance limit, such as: GPU memory usage not exceeding 85%, estimated frame rate not exceeding 30 FPS, and total facet count not exceeding 100% of the rendering performance baseline.
[0156] As an example, during the sequential loading of 3D models, the actual load parameters of the target device are continuously monitored, including the current GPU memory usage, current frame rate, and CPU usage. Simultaneously, unloaded 3D data objects in the immediate loading queue are tracked. For unloaded objects, based on their determined target model level (LOD level), their corresponding model metadata (such as the number of triangles, vertices, and total texture size) is queried. Combined with the current load, the predicted load of the system after all 3D models are loaded at the current frame rate is estimated. For example, if the memory usage is expected to reach 92%, the frame rate is estimated to drop below 30 FPS. If the predicted load exceeds a preset load threshold, such as a memory threshold of 85% or a frame rate threshold in FPS, the system immediately stops loading subsequent 3D models and initiates a resource reclamation mechanism. It iterates through the loaded objects, prioritizing unloading the objects with the lowest priority scores in the conditional loading domain, releasing their vertex buffers, textures, and other resources from GPU memory and removing them from the rendering engine's scene graph. After unloading, the system can reassess the remaining load and, if necessary, load only a small number of high-priority unloaded objects. If hardware resources recover, such as the frame rate returning to 30 FPS and GPU utilization dropping below 70%, the paused loading queue resumes execution, ensuring a stable balance between data loading and rendering. By monitoring device load and the status of unloaded objects in real time, the system anticipates and estimates the load risk after continuous loading. When overload is predicted, loading is stopped in time and some unloaded objects are unloaded to prevent the device from stuttering or crashing due to excessive load, thus ensuring the stability of scene rendering.
[0157] Furthermore, on device B, if a user rapidly moves from a narrow street to a vast open square, the number of models within the view frustum surges instantaneously. The rendering status monitoring module detects that the actual frame rate drops sharply from 60 FPS to 45 FPS within 10 consecutive frames. At this point, the closed-loop adjustment mechanism is triggered: the dynamic scheduling core module immediately adopts a conservative strategy, temporarily multiplying the current performance baseline T_baseline_B by a derating factor (e.g., 0.9) to obtain a new, lower temporary baseline T_baseline_B_temp = 1.35 million. Based on this lower temporary baseline, the dynamic scheduling core module more aggressively shrinks the default loading domain and can forcibly unload some low-priority objects (such as decorative objects in the background), causing the rendering load to decrease rapidly, and the frame rate recovers to a stable level of 60 FPS within a short time. Subsequently, if the performance remains stable, the temporary baseline will gradually recover to its original calibration value.
[0158] In some embodiments, the historical movement trajectory of the virtual camera is obtained, and based on the historical movement trajectory, the predicted amount of the virtual camera's movement trajectory within a preset time period in the future is predicted.
[0159] Based on the predicted motion trajectory, the target area that the virtual camera will enter is determined. The target area is the spatial range covered by the view frustum corresponding to the predicted motion trajectory.
[0160] Within the target area, candidate 3D data objects with priority scores greater than a preset score are selected;
[0161] Perform a pre-loading operation on the candidate 3D data objects and store the loaded 3D data in the cache.
[0162] Specifically, the motion trajectory prediction is based on historical trajectory data, using an algorithm to predict the position and orientation of the virtual camera within a preset time period (e.g., the next second). The target area is the spatial range covered by the predicted future view frustum of the virtual camera (the truncated pyramid space defined by the motion trajectory prediction), i.e., the range that the virtual camera may observe in the future. Candidate 3D data objects are 3D data objects within the target area whose priority score is higher than a preset score.
[0163] As an example, the system continuously records the historical movement trajectory of the virtual camera, including the position and orientation data of the most recent N frames (e.g., N=30). A Kalman filter or a lightweight linear extrapolation algorithm can be used to fit the motion trend based on the historical trajectory, outputting a predicted movement trajectory (position sequence and rotation angle sequence) for a future preset time period (e.g., 1 second). Subsequently, a predicted view frustum is constructed using the predicted future camera pose (position + orientation + field of view), and the spatial range covered by this frustum is the target region. The system traverses all 3D data objects within the target region, filtering out candidate 3D data objects with a priority score greater than a preset score (e.g., score > 60). For candidate 3D data objects, the system initiates a pre-loading operation, asynchronously loading the 3D model at its target model level from disk or network and uploading it to GPU memory or cache, but not adding it to the rendering queue immediately. Once the virtual camera actually enters the region, the 3D model of the candidate 3D data object can be immediately activated for rendering, achieving zero-latency rendering. By analyzing the historical movement patterns of virtual cameras, their future trajectories and coverage areas can be predicted in advance. High-priority data within the target area can be preloaded and cached, reducing loading delays during user operations and improving the smoothness and immersion of scene interactions.
[0164] refer to Figure 4The CIM platform's 3D data loading system includes a performance calibration module, a semantic pre-classification module, a dynamic scheduling core module, and a rendering status monitoring module. The CIM platform's 3D data loading system can be deployed on the CIM platform client. The performance calibration module performs stress performance testing on the target device to obtain the maximum rendering primitive throughput that the target device can stably process while maintaining a preset target frame rate, and determines the maximum rendering primitive throughput as the rendering performance baseline. The semantic pre-classification module obtains the semantic tags associated with the 3D data object and determines the scene category of the current scene based on the camera viewpoint. The semantic tags include category tags, name tags, and frequency tags, with the frequency tags including regular and unregular. Based on the category tags, name tags, and scene category, the module determines the functional importance tag corresponding to the 3D data object within the scene category. The functional importance tag quantifies the importance of the 3D data object's business functions within the scene category and includes important and unimportant tags. If the functional importance tag of the 3D data object is important, or the frequency tag of the 3D data object is regular, the loading strategy for the 3D data object is determined to be default loading; otherwise, the loading strategy for the 3D data object is determined to be on-demand loading. The dynamic scheduling core module determines the default loading range corresponding to the camera viewpoint based on the rendering performance baseline of the target device, and determines the loading strategy of the 3D data object based on the semantic tags of the 3D data object; it determines the loading domain category of the 3D data object based on the subordinate relationship between the position of the 3D data object and the default loading range, wherein the loading domain category includes the default loading domain and the conditional loading domain; if the loading strategy is on-demand loading, the priority score of the 3D data object is set to 0, and the 3D data object is set as a waiting object and added to the waiting loading queue; if the loading strategy is non-on-demand loading, the priority score of each 3D data object is calculated based on the semantic tags, the loading domain category, and the vertex coordinate array corresponding to the 3D data object; based on the value of the priority score, the 3D model corresponding to the 3D data object is loaded sequentially on the target device. During the loading process, the rendering status monitoring module monitors the actual load parameters of the target device and the unloaded objects in the 3D data object; based on the actual load parameters and the 3D model of the unloaded object, it estimates the predicted load after loading is completed; if the predicted load exceeds the preset load threshold, it stops loading the 3D model corresponding to the 3D data object and performs an unloading operation on the 3D model of the unloaded object.
[0165] It should be noted that the above examples are only for understanding this application and do not constitute a limitation on the three-dimensional data loading method of the CIM platform of this application. Any simple modifications based on this technical concept are within the protection scope of this application.
[0166] This application also provides a 3D data loading device for a CIM platform, please refer to... Figure 5 The 3D data loading device of the CIM platform includes:
[0167] The 3D data acquisition module 501 is used to query 3D data objects located within the view frustum corresponding to the camera viewpoint and whose distance from the camera viewpoint is less than or equal to a preset visible distance through a spatial index.
[0168] The strategy and range acquisition module 502 is used to determine the default loading range corresponding to the camera viewpoint based on the rendering performance baseline of the target device, and to determine the loading strategy of the 3D data object based on the semantic tags of the 3D data object.
[0169] The loading domain category determination module 503 is used to determine the loading domain category of the three-dimensional data object based on the subordinate relationship between the position of the three-dimensional data object and the default loading range. The loading domain category includes the default loading domain and the conditional loading domain.
[0170] The scoring calculation module 504 is used to calculate the priority score of each 3D data object based on the semantic label, the loading domain category, and the vertex coordinate array corresponding to the 3D data object if the loading strategy is non-on-demand loading.
[0171] The execution module 505 is used to load the 3D models corresponding to the 3D data objects onto the target device sequentially based on the numerical values of the priority scores.
[0172] The 3D data loading device for the CIM platform provided in this application, employing the 3D data loading method for the CIM platform described in the above embodiments, can solve the technical problem that existing data loading methods based on a single spatial dimension are difficult to adapt to the needs of terminal devices and complex business scenarios. Compared with the prior art, the beneficial effects of the 3D data loading device for the CIM platform provided in this application are the same as those of the 3D data loading method for the CIM platform provided in the above embodiments, and other technical features in the 3D data loading device for the CIM platform are the same as those disclosed in the methods of the above embodiments, and will not be repeated here.
[0173] This application provides a three-dimensional data loading device for a CIM platform. The three-dimensional data loading device for a CIM platform includes: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute the three-dimensional data loading method of the CIM platform in the above embodiment 1.
[0174] The following is for reference. Figure 6 The diagram illustrates a structural schematic of a 3D data loading device suitable for implementing the CIM platform of this application. The 3D data loading device for the CIM platform in this application may include, but is not limited to, mobile terminals such as laptops, tablets (Portable Application Description, PADs), and in-vehicle terminals (e.g., in-vehicle navigation terminals), as well as fixed terminals such as digital TVs and desktop computers. Figure 6 The 3D data loading device of the CIM platform shown is merely an example and should not impose any limitations on the functionality and scope of use of the embodiments of this application.
[0175] like Figure 6 As shown, the 3D data loading device of the CIM platform may include a processing unit 1001 (e.g., a central processing unit, a graphics processing unit, etc.), which can perform various appropriate actions and processes according to the program stored in the read-only memory (ROM) 1002 or the program loaded from the storage device 1003 into the random access memory (RAM) 1004. The random access memory 1004 also stores various programs and data required for the operation of the 3D data loading device of the CIM platform. The processing unit 1001, the read-only memory 1002, and the random access memory 1004 are interconnected via a bus 1005. An input / output (I / O) interface 1006 is also connected to the bus. Typically, the following systems can be connected to the input / output interface 1006: input devices 1007 including, for example, touchscreens, touchpads, keyboards, mice, image sensors, microphones, accelerometers, gyroscopes, etc.; output devices 1008 including, for example, liquid crystal displays (LCDs), speakers, vibrators, etc.; storage devices 1003 including, for example, magnetic tapes, hard disks, etc.; and communication devices 1009. Communication device 1009 allows the 3D data loading device of the CIM platform to communicate wirelessly or wiredly with other devices to exchange data. Although the figure shows a 3D data loading device of a CIM platform with various systems, it should be understood that it is not required to implement or have all the systems shown. More or fewer systems can be implemented alternatively.
[0176] Specifically, according to the embodiments disclosed in this application, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments disclosed in this application include a computer program product comprising a computer program carried on a computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via a communication device, or installed from storage device 1003, or installed from read-only memory 1002. When the computer program is executed by processing device 1001, it performs the functions defined in the methods of the embodiments disclosed in this application.
[0177] The 3D data loading device for the CIM platform provided in this application, employing the 3D data loading method for the CIM platform described in the above embodiments, can solve the technical problem that existing data loading methods based on a single spatial dimension are difficult to adapt to the needs of terminal devices and complex business scenarios. Compared with the prior art, the beneficial effects of the 3D data loading device for the CIM platform provided in this application are the same as those of the 3D data loading method for the CIM platform provided in the above embodiments, and other technical features of this 3D data loading device for the CIM platform are the same as those disclosed in the previous embodiment method, and will not be repeated here.
[0178] It should be understood that the various parts disclosed in this application can be implemented using hardware, software, firmware, or a combination thereof. In the description of the above embodiments, specific features, structures, materials, or characteristics can be combined in any suitable manner in one or more embodiments or examples.
[0179] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
[0180] This application provides a computer-readable storage medium having computer-readable program instructions (i.e., a computer program) stored thereon, the computer-readable program instructions being used to execute the three-dimensional data loading method of the CIM platform in the above embodiments.
[0181] The computer-readable storage medium provided in this application may be, for example, a USB flash drive, but is not limited to, electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices, or any combination thereof. More specific examples of computer-readable storage media may include, but are not limited to: electrical connections having one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. In this embodiment, the computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, system, or device. The program code contained on the computer-readable storage medium may be transmitted using any suitable medium, including but not limited to: wires, optical cables, RF (Radio Frequency), etc., or any suitable combination thereof.
[0182] The aforementioned computer-readable storage medium may be included in the 3D data loading device of the CIM platform; or it may exist independently and not be assembled into the 3D data loading device of the CIM platform.
[0183] The aforementioned computer-readable storage medium carries one or more programs. When these programs are executed by the 3D data loading device of the CIM platform, the 3D data loading device of the CIM platform performs the following actions: 1. Querying 3D data objects located within the view frustum corresponding to the camera viewpoint and at a distance less than or equal to a preset viewing distance using a spatial index; 2. Determining the default loading range corresponding to the camera viewpoint based on the rendering performance baseline of the target device, and determining the loading strategy of the 3D data objects based on their semantic tags; 3. Determining the loading domain category of the 3D data objects based on the hierarchical relationship between their positions and the default loading range, wherein the loading domain category includes default loading domains and conditional loading domains; 4. If the loading strategy is non-on-demand loading, calculating the priority score of each 3D data object based on its semantic tags, loading domain category, and vertex coordinate array; 5. Loading the 3D models corresponding to the 3D data objects sequentially on the target device based on the magnitude of the priority scores.
[0184] Computer program code for performing the operations of this application can be written in one or more programming languages or a combination thereof, including object-oriented programming languages such as Java, Smalltalk, and C++, as well as conventional procedural programming languages such as "C" or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a Local Area Network (LAN) or a Wide Area Network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0185] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this application. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.
[0186] The modules described in the embodiments of this application can be implemented in software or hardware. The names of the modules do not necessarily limit the functionality of the unit itself.
[0187] The readable storage medium provided in this application is a computer-readable storage medium that stores computer-readable program instructions (i.e., a computer program) for executing the three-dimensional data loading method of the CIM platform described above. This solves the technical problem that existing data loading methods based on a single spatial dimension are difficult to adapt to the needs of terminal devices and complex business scenarios. Compared with the prior art, the beneficial effects of the computer-readable storage medium provided in this application are the same as those of the three-dimensional data loading method of the CIM platform provided in the above embodiments, and will not be repeated here.
[0188] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of the three-dimensional data loading method of the CIM platform as described above.
[0189] The computer program product provided in this application can solve the technical problem that existing data loading methods based on a single spatial dimension are difficult to adapt to the needs of terminal devices and complex business scenarios. Compared with the prior art, the beneficial effects of the computer program product provided in this application are the same as those of the three-dimensional data loading method of the CIM platform provided in the above embodiments, and will not be repeated here.
[0190] The above description is only a part of the embodiments of this application and does not limit the patent scope of this application. All equivalent structural transformations made under the technical concept of this application and using the contents of the specification and drawings of this application, or direct / indirect applications in other related technical fields, are included in the patent protection scope of this application.
Claims
1. A method for loading 3D data onto a CIM platform, characterized in that, The three-dimensional data loading method of the CIM platform includes: Using spatial indexing, query three-dimensional data objects located within the view frustum corresponding to the camera viewpoint, and whose distance from the camera viewpoint is less than or equal to a preset visible distance; Based on the rendering performance baseline of the target device, the default loading range corresponding to the camera viewpoint is determined, and the loading strategy of the 3D data object is determined according to the semantic tags of the 3D data object. Based on the subordinate relationship between the position of the 3D data object and the default loading range, the loading domain category of the 3D data object is determined, wherein the loading domain category includes the default loading domain and the conditional loading domain; If the loading strategy is non-on-demand loading, calculate the priority score of each of the three-dimensional data objects based on the semantic tag, the loading domain category, and the vertex coordinate array corresponding to the three-dimensional data object; Based on the magnitude of the priority score, the 3D models corresponding to the 3D data objects are loaded sequentially on the target device.
2. The three-dimensional data loading method for the CIM platform as described in claim 1, characterized in that, The step of determining the default loading range corresponding to the camera viewpoint based on the rendering performance baseline of the target device includes: The 3D data loading threshold for the camera viewpoint is calculated by back-calculating the rendering performance baseline. Determine the spatial density distribution of the current scene based on the camera viewpoint; The default loading range corresponding to the camera viewpoint is calculated by dividing the three-dimensional data loading threshold by the spatial density distribution.
3. The three-dimensional data loading method for the CIM platform as described in claim 1, characterized in that, The step of determining the loading strategy of the 3D data object based on its semantic tags includes: Obtain the semantic labels associated with the three-dimensional data object, and determine the scene category of the current scene based on the camera viewpoint, wherein the semantic labels include category labels, name labels and frequency labels, and the frequency labels include regular and non-regular; Based on the category label, name label, and scene category, a functional importance label corresponding to the 3D data object in the scene category is determined. The functional importance label is used to quantitatively describe the business functional importance of the 3D data object in the scene category, and the functional importance label includes important and unimportant. If the functional importance label of the three-dimensional data object is "important", or the frequency label of the three-dimensional data object is "normal", the loading strategy of the three-dimensional data object is determined to be the default loading; Otherwise, the loading strategy for the three-dimensional data object is determined to be on-demand loading.
4. The three-dimensional data loading method for the CIM platform as described in claim 1, characterized in that, After the steps of determining the default loading range corresponding to the camera viewpoint based on the rendering performance baseline of the target device, and determining the loading strategy of the 3D data object based on the semantic tags of the 3D data object, the method further includes: If the loading strategy is on-demand loading, the priority score of the 3D data object is set to 0, the 3D data object is set as a waiting-to-load object, and the waiting-to-load object is added to the waiting-to-load queue; If the loading strategy is non-on-demand loading, the 3D data object is added to the immediate loading queue.
5. The three-dimensional data loading method for the CIM platform as described in claim 3, characterized in that, The step of calculating the priority score of each 3D data object based on the semantic label, the loading domain category, and the vertex coordinate array corresponding to the 3D data object includes: The spatial domain dimension score of the three-dimensional data object is determined based on the first correspondence between the loading domain category and the pre-set loading domain category and spatial domain dimension score. The label dimension score of the three-dimensional data object is determined based on the functional importance label and the second correspondence between the pre-set functional importance label and the label dimension score. Based on the vertex coordinate array, calculate the projected area of the 3D data object in screen space, and calculate the spatial distance between the 3D data object and the camera viewpoint; A visual dimension score for the three-dimensional data object is generated by combining the spatial distance and the projected area using a preset weighted algorithm. The priority score corresponding to the three-dimensional data object is calculated by combining the spatial domain dimension score, the label dimension score, and the visual dimension score.
6. The three-dimensional data loading method for the CIM platform as described in claim 1, characterized in that, Before the step of sequentially loading the 3D model corresponding to the 3D data object onto the target device, the method further includes: Based on the vertex coordinate array of the three-dimensional data object, calculate the projected area of the three-dimensional data object in screen space, and calculate the spatial distance between the three-dimensional data object and the camera viewpoint; Based on the spatial distance, determine the initial model level corresponding to the three-dimensional data object; Obtain the functional importance label from the semantic label of the three-dimensional data object, and determine the first model level correction amount corresponding to the three-dimensional data object based on the functional importance label and the third correspondence between the pre-set functional importance label and the model level correction amount. Based on the fourth correspondence between the projected area and the pre-set projected area and model level correction amount, the second model level correction amount corresponding to the three-dimensional data object is determined; The initial model level is corrected using the first model level correction amount and the second model level correction amount to obtain the target model level corresponding to the three-dimensional data object, and the hierarchical detail model corresponding to the target model level is determined as the three-dimensional model corresponding to the three-dimensional data object.
7. The three-dimensional data loading method for the CIM platform as described in claim 1, characterized in that, After the step of sequentially loading the 3D model corresponding to the 3D data object onto the target device, the method further includes: During the loading process, monitor the actual load parameters of the target device and the unloaded objects in the three-dimensional data object; Based on the actual load parameters and the 3D model of the unloaded object, the predicted load after loading is completed is estimated; If the predicted load exceeds a preset load threshold, stop loading the 3D model corresponding to the 3D data object and perform an unloading operation on the 3D model of the unloaded object.
8. The three-dimensional data loading method for the CIM platform as described in claim 4, characterized in that, Also includes: During the loading process, when an event that meets the loading trigger condition corresponding to the object waiting to be loaded is detected, the priority score of the object waiting to be loaded is set to the preset maximum priority score. Set the object to be loaded as a 3D data object and add it to the front of the immediate loading queue.
9. The three-dimensional data loading method for the CIM platform as described in claim 1, characterized in that, Before the step of determining the default loading range corresponding to the camera viewpoint based on the rendering performance baseline of the target device, the method further includes: A stress performance test is performed on the target device to obtain the maximum rendering primitive throughput of the target device while maintaining a preset target frame rate, and the maximum rendering primitive throughput is determined as the rendering performance baseline.
10. The three-dimensional data loading method for the CIM platform as described in claim 1, characterized in that, Also includes: Obtain the historical movement trajectory of the virtual camera, and based on the historical movement trajectory, predict the movement trajectory of the virtual camera within a preset time period in the future; Based on the predicted motion trajectory, the target area that the virtual camera will enter is determined, and the target area is the spatial range covered by the view frustum corresponding to the predicted motion trajectory. Within the target area, candidate 3D data objects with a priority score greater than a preset score are selected; Perform a pre-loading operation on the candidate 3D data object and store the loaded 3D data in the cache.
Citation Information
Patent Citations
360-degree multi-viewpoint 3D holographic video acquisition method, acquisition device, and realization method
CN105847778A
Self-adaptive dynamic-scheduling method for building information model in scenario of three-dimensional digital city
CN107895031A