A method and system for sparse loading of three-dimensional geographic information data based on a UE engine

By adopting a 3D geographic information data thinning loading method based on the UE engine, and using an improved quadtree index and dynamic thinning loading, the problems of visual continuity, performance bottleneck and multi-scale interaction of 3D geographic information systems in high-end rendering engines are solved, and efficient and stable data display and interactive experience are achieved.

CN122199810APending Publication Date: 2026-06-12BEIJING DIGITAL HAIL TECH

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
BEIJING DIGITAL HAIL TECH
Filing Date
2026-03-18
Publication Date
2026-06-12

AI Technical Summary

Technical Problem

Existing 3D geographic information systems face challenges in loading and rendering ultra-large-scale, multi-scale geographic information data, including issues with visual continuity and loading coherence, performance bottlenecks, the conflict between data accuracy and display efficiency, adaptive scheduling problems for multi-scale and dynamic interactions, and optimization and adaptation issues in high-end rendering engines.

Method used

A 3D geographic information data thinning loading method based on the UE engine is adopted. Through an improved latitude and longitude quadtree index structure, combined with the adaptive switching of octree in high-density areas, a dynamic thinning loading method, and visual smooth transition technology, a seamless visual transition and efficient rendering are achieved.

🎯Benefits of technology

It achieves enhanced visual continuity and immersion in high-end rendering engines, preserves data accuracy, ensures stable rendering performance and real-time agility of interactive response, and adapts to precise cropping and optimization on a global scale.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122199810A_ABST
    Figure CN122199810A_ABST
Patent Text Reader

Abstract

The application discloses a kind of based on UE engine's three-dimensional geographic information data sparse loading method and system, the loading method includes: saving geographic information point data;Global multi-scale spatial index structure is constructed and maintained, using improved latitude and longitude quadtree as core organization mode, in high-density area or near polar region adaptive switching octree structure;Raw data is loaded to memory as needed from persistent storage layer, and maintain a cache area;Receive current memory data point set from data loader and real-time parameters from camera, adopt dynamic sparse loading method to each frame output rendering point ID list and weight value;Eliminate the visual mutation generated by the change of sparse point set between frames, realize visual seamless transition.The whole process is executed every frame, form real-time, closed loop, adaptive dynamic scheduling system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of three-dimensional geographic information systems, and in particular to a method and system for thinning and loading three-dimensional geographic information data based on the UE engine. Background Technology

[0002] The following technical problems exist in the smooth loading and rendering of ultra-large-scale, multi-scale geographic information data (such as from the macroscopic scale of the global Earth-Moon system to the microscopic objects on the Earth's surface) in existing 3D geographic information systems (especially applications based on high-fidelity real-time rendering engines such as Unreal Engine): 1. Visual continuity and loading consistency issues: Traditional techniques based on discrete hierarchy (LOD) or block loading are prone to causing obvious visual jumps, loading stutters or data gaps when the viewpoint moves, zooms, or switches scales, failing to provide users with a truly "seamless" visual experience.

[0003] 2. Performance bottleneck in real-time rendering of massive data: When faced with millions or even tens of millions of raw data points (such as facility points and sensor points), existing rendering pipelines struggle to render all the data at once while maintaining a high frame rate. Typically, they need to sacrifice accuracy for performance by significantly simplifying or aggregating the data.

[0004] 3. The contradiction between data accuracy and display efficiency: Statistical simplification methods such as "clustering" can improve rendering efficiency, but they essentially lose the spatial distribution accuracy and individual characteristics of the original data points. They are not suitable for high-precision geographic information scenarios that require accurate display of the location and attributes of each independent data object.

[0005] 4. Adaptive scheduling problem of multi-scale and dynamic interaction: Existing solutions are difficult to intelligently and smoothly adjust the data density and content displayed on the screen during continuous and dynamic interactions such as users moving from far to near (drilling down), from near to far (pulling up), and rotating the viewpoint, so as to ensure sufficient detail in the focus area and stable overall performance.

[0006] 5. Optimization and adaptation issues in high-end 3D rendering engines: Many existing data loading optimization solutions are designed for web or lightweight engines, and their algorithms and architectures are difficult to directly port or run efficiently in professional real-time 3D engine environments like Unreal Engine, which have extremely high requirements for rendering performance and visual fidelity. Summary of the Invention

[0007] In view of the above problems, the present invention is proposed to provide a method and system for thinning and loading three-dimensional geographic information data based on a UE engine to overcome or at least partially solve the above problems.

[0008] According to one aspect of the present invention, a method for thinning and loading three-dimensional geographic information data based on a UE engine is provided, the loading method comprising: Save geographic information point data; We construct and maintain a global multi-scale spatial index structure, using an improved latitude and longitude quadtree as the core organization method, and adaptively switching to an octree structure in high-density areas or near the poles. The raw data is loaded from the persistent storage layer into memory on demand, and a cache is maintained. Receive the current set of memory data points from the data loader and the real-time parameters from the camera, and use the dynamic thinning loading method to output the list of point IDs to be rendered and the weight values ​​for each frame; Eliminate visual abrupt changes caused by inter-frame variations in the thinned point set to achieve a seamless visual transition.

[0009] Optionally, each data record in the geographic information point data includes: a unique identifier ID, longitude coordinates, latitude coordinates, elevation value, and several business attribute fields.

[0010] Optionally, the information present in each node of the octree structure includes: Node spatial bounding box: A rectangular area defined by minimum longitude, maximum longitude, minimum latitude, and maximum latitude. If elevation is enabled, it expands into a three-dimensional bounding box. A list of IDs for all data points within a node; Child node pointers or indices; The point density statistics of the region are used to calculate the density factor in the thinning algorithm.

[0011] Optionally, the cache specifically includes: Asynchronous I / O thread pool: handles data read requests concurrently; Memory cache: Employs an LRU eviction policy, with configurable capacity, and stores recently accessed node data; Preload queue: Loads data for the expected visible area in advance based on viewpoint prediction results.

[0012] Optionally, receiving the current memory data point set from the data loader and real-time parameters from the camera, and using a dynamic thinning loading method to output the list of point IDs to be rendered and weight values ​​for each frame specifically includes: Data preprocessing and spatial index construction; Convert the camera's three-dimensional view frustum into a two-dimensional visible area on the Earth's surface; Locate all potentially visible data nodes from the quadtree index; Dynamic thinning weight calculation and target quantity screening; Predict camera movement trends in the near future; Visual smoothing is applied to the inter-frame variations of the sparse point set to achieve a seamless visual experience; After the current frame is rendered, the current frame rendering point set is assigned to the previous frame rendering point set, and the state buffer pool is updated. Waiting for the camera parameters to be updated in the next frame.

[0013] Optionally, the data preprocessing and spatial index construction specifically include: Read the original geographic point data file, traverse each record, extract latitude and longitude coordinates and elevation values, and convert them into the WGS84 geographic coordinate system. Recursively construct a quadtree using the global latitude and longitude range as the root node region: If the number of points contained in the current node is greater than the preset threshold and the current depth is less than the maximum depth, then the corresponding node will be divided into four child nodes, and the point ID list will be assigned to the corresponding child nodes. If the number of points is less than or equal to the threshold, or the maximum depth has been reached, then the corresponding node is a leaf node, which stores a list of IDs of all points in the corresponding region. For each node, calculate and store its minimum bounding rectangle, and expand it into a 3D bounding box if elevation data exists. The completed quadtree index is serialized and stored as a binary file for fast loading into memory at runtime.

[0014] Optionally, converting the camera's three-dimensional view frustum into a two-dimensional visible area on the Earth's surface specifically includes: The camera parameters are obtained in real time from the UE engine, including the camera's world coordinate position, orientation, vertical field of view, near clipping distance, far clipping distance, screen pixel width and height; Construct a standard view frustum geometry: a truncated pyramid formed by the near clipping plane, the far clipping plane, and four side planes, with the camera position as the vertex and extending in the forward direction; Perform spherical clipping enhancement calculations: Using the Earth's center as the origin and standard ellipsoidal parameters for the Earth's radius; transform the vertex coordinates of the view frustum from the world coordinate system to the geocentric coordinate system; along the four edges of the view frustum, from the intersection of the near clipping plane to the intersection of the far clipping plane, sample the intersection points of the rays with the Earth's ellipsoid at step sizes; connect all intersection points to form the visible surface boundary of the three-dimensional Earth surface; if local high-precision terrain is enabled, use the UE's terrain system or runtime elevation data to correct the elevation values ​​of the intersection points; Projecting the boundary of the three-dimensional visible surface onto a two-dimensional latitude and longitude plane yields a view polygon. The field of view polygon is a closed planar graphic that represents the geographical area covered by the current camera's field of view on the Earth's surface.

[0015] Optionally, the step of performing visual smoothing processing on the inter-frame changes of the thinned point set to achieve a seamless visual experience specifically includes: The transition effects renderer maintains the following state data: The previous frame's rendered point set; The current frame's rendering point set; Each point has a lifecycle status table that records its first appearance frame number, last appearance frame number, current transparency, and current world position offset. New point processing: Calculate the difference between the current frame's rendered point set and the previous frame's rendered point set to obtain the newly added points in the current frame; Initialize the transparency of each newly added point to zero, and record the current frame as its birth time; In the following short period of time, the transparency increases linearly with each frame until it becomes completely opaque; Vanishing point handling: Calculate the difference between the set of rendered points in the previous frame and the set of rendered points in the current frame to obtain the points that disappear in the current frame; Mark the points that disappear in this frame as "to be eliminated", and decrease the transparency linearly with each frame starting from the current value; After a fixed period of time, the opacity drops to zero, and it is completely removed from the render list; Persistent point handling: For a point that exists in both the previous frame and the current frame's rendering point set, if its world coordinates change due to the thinning algorithm, or if the camera movement causes its screen position to jump. Continuous position interpolation is achieved in the vertex shader by using the world position offset node in the UE material system; The interpolation duration is set to an extremely short time to smoothly transition the world coordinates of a point from its old location to its new location. Rendering command submission: For static attribute points, batch rendering is performed using instantiated static meshes, with the transformation matrix and material parameters of the instance updated every frame. For dynamic points that require frame-by-frame adjustment of transparency or position, the Niagara particle system is used, with particle properties updated via GPU computation each frame.

[0016] This invention also provides a 3D geographic information data thinning and loading system based on a UE engine, applying the aforementioned 3D geographic information data thinning and loading method based on a UE engine. The loading system includes: The raw data storage layer is used to store geographic information point data; The scene tree management module is used to build and maintain a global multi-scale spatial index structure. It adopts an improved latitude and longitude quadtree as the core organization method and adaptively switches to an octree structure in high-density areas or near the polar regions. A data loader is used to load raw data from the persistent storage layer into memory on demand and maintain a cache. The thinning algorithm engine module is used to receive the current set of memory data points from the data loader and the real-time parameters from the camera. It uses a dynamic thinning loading method to output a list of point IDs to be rendered and weight values ​​for each frame. The transition effects renderer module is used to eliminate visual abrupt changes caused by inter-frame variations in the thinned point set, achieving a seamless visual transition.

[0017] This invention provides a 3D geographic information data thinning and loading method based on a UE engine. The loading method includes: saving geographic information point data; constructing and maintaining a global multi-scale spatial index structure, using an improved latitude and longitude quadtree as the core organization method, and adaptively switching to an octree structure in high-density areas or near the poles; loading the original data from the persistent storage layer to memory on demand, and maintaining a cache area; receiving the current memory data point set from the data loader and real-time parameters from the camera, and using a dynamic thinning and loading method to output a list of point IDs and weight values ​​to be rendered for each frame; eliminating visual abrupt changes in the thinned point set caused by inter-frame changes, and achieving a seamless visual transition. The entire process is executed cyclically every frame, forming a real-time, closed-loop, adaptive dynamic scheduling system.

[0018] The above description is merely an overview of the technical solution of the present invention. In order to better understand the technical means of the present invention and to implement it in accordance with the contents of the specification, and in order to make the above and other objects, features and advantages of the present invention more apparent and understandable, specific embodiments of the present invention are described below. Attached Figure Description

[0019] To more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings used in the following description of the embodiments will be briefly introduced. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0020] Figure 1 A block diagram of a 3D geographic information data thinning and loading system based on a UE engine provided in an embodiment of the present invention; Figure 2 A detailed flowchart of a 3D geographic information data thinning and loading method based on a UE engine provided in an embodiment of the present invention; Figure 3 A schematic diagram illustrating the conversion of a camera's three-dimensional view frustum into a two-dimensional visible area on the Earth's surface, provided as an embodiment of the present invention; Figure 4 This is a flowchart of dynamic thinning weight calculation and target quantity screening provided in an embodiment of the present invention. Detailed Implementation

[0021] Exemplary embodiments of the present disclosure will now be described in more detail with reference to the accompanying drawings. While exemplary embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure may be implemented in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.

[0022] The terms "comprising" and "having," and any variations thereof, in the specification, embodiments, claims, and drawings of this invention are intended to cover non-exclusive inclusion, such as including a series of steps or units.

[0023] The technical solution of the present invention will be further described in detail below with reference to the accompanying drawings and embodiments.

[0024] A 3D geographic information data thinning and loading method based on the UE engine is disclosed. The loading method includes: saving geographic information point data; constructing and maintaining a global multi-scale spatial index structure, using an improved latitude and longitude quadtree as the core organization method, and adaptively switching to an octree structure in high-density areas or near the poles; loading the original data from the persistent storage layer to memory on demand, and maintaining a cache area; receiving the current memory data point set from the data loader and real-time parameters from the camera, and using a dynamic thinning and loading method to output a list of point IDs to be rendered and weight values ​​for each frame; eliminating visual abrupt changes caused by inter-frame changes in the thinned point set, and achieving a seamless visual transition.

[0025] like Figure 2 As shown, the method of the present invention includes the following seven steps, which are executed sequentially in time and repeated in each frame: Step 1: Data Preprocessing and Spatial Index Construction This step is performed offline before system startup or during the first run to establish the basic data structure for subsequent real-time scheduling.

[0026] Read the original geographic point data file, traverse each record, extract its latitude and longitude coordinates and elevation values ​​(if any), and convert them into the WGS84 geographic coordinate system.

[0027] ② Using the global latitude and longitude range (longitude -180° to 180°, latitude -90° to 90°) as the root node region, recursively construct a quadtree: If the number of points contained in the current node is greater than the preset threshold and the current depth is less than the maximum depth, then the node is divided into four child nodes and the point ID list is assigned to the corresponding child nodes. If the number of points is less than or equal to the threshold, or the maximum depth has been reached, then the node is a leaf node, storing a list of IDs of all points in the region.

[0028] For each node, calculate and store its minimum bounding rectangle (minimum longitude, maximum longitude, minimum latitude, maximum latitude). If elevation data exists, expand it into a 3D bounding box.

[0029] ④ Serialize and store the completed quadtree index as a binary file (e.g., .treeidx) for fast loading into memory at runtime.

[0030] Step 2: Calculation of the view frustum and visible area This step is performed every frame, converting the camera's three-dimensional view frustum into a two-dimensional visible area on the Earth's surface. For example... Figure 3 As shown.

[0031] ① Obtain camera parameters in real time from the UE engine, including camera world coordinate position, orientation (forward vector, right vector, upward vector), vertical field of view, near clipping distance, far clipping distance, screen pixel width and height.

[0032] ② Construct a standard view frustum geometry: a truncated pyramid formed by the near clipping plane, the far clipping plane, and four side planes, with the camera position as the vertex and extending in the forward direction.

[0033] ③ Perform spherical clipping enhancement calculations: With the Earth's center as the origin, the Earth's radius adopts the standard ellipsoid parameters; Transform the vertex coordinates of the view frustum from the world coordinate system to the geocentric coordinate system; Along the four edges of the view cone, from the intersection of the near and far view planes, sample the intersection of the rays with the Earth's ellipsoid at step lengths; Connect all intersections to form a three-dimensional visible surface boundary; If local high-precision terrain is enabled, the elevation values ​​of the intersection points are corrected using the UE's terrain system or runtime elevation data.

[0034] ④ Project the boundary of the three-dimensional visible surface onto a two-dimensional latitude and longitude plane to obtain the field of view polygon. This polygon is a closed planar figure that represents the geographical area covered by the current camera's field of view on the Earth's surface.

[0035] Step 3: Candidate Data Node Filtering This step uses the view polygon to quickly locate all potentially visible data nodes from the quadtree index.

[0036] ① The scene tree management module receives the view polygon generated in step 2.

[0037] ② Starting from the root node of the quadtree, use a depth-first traversal strategy: Detect whether the bounding box of the current node intersects with the view polygon; If they do not intersect, skip that node and all its children (pruning). If they intersect, and the current node is a leaf node (or the number of points within the node is less than or equal to the preset direct processing threshold), then add the node to the candidate node list. If the nodes intersect but the current node is not a leaf node, then recursively traverse its four child nodes.

[0038] ③ Summarize all point IDs in the candidate node list, remove duplicates, and form a candidate dataset. Simultaneously, retrieve the complete coordinates and attribute data corresponding to these point IDs from the data loader's memory cache for use in subsequent thinning algorithms.

[0039] Step 4: Dynamic thinning weight calculation and target quantity screening This step is the core algorithm of this invention. Each frame performs a comprehensive score on each point in the candidate dataset and selects the best to output a fixed number of rendering points.

[0040] The system presets a maximum number of rendering points per screen. This value is a configurable global constant that is set based on the target frame rate and hardware performance. Regardless of the total amount of raw data, the final number of rendering points will not exceed this value.

[0041] For each data point in the candidate dataset, its thinning weight is calculated. The weight is derived from a comprehensive evaluation of four feature factors: Screen space distance factor: such as Figure 4 As shown.

[0042] The distance of a point from the camera is used to measure its proximity, with closer points given higher weight.

[0043] Calculate the Euclidean distance from the point to the camera position; Obtain the minimum and maximum distances in the candidate dataset; The distance values ​​are normalized and then inverted; the closer the distance, the higher the weight.

[0044] Viewpoint Angle Factor: The factor measures the angle of a point relative to the camera's line of sight and its position on the screen, with points facing the lens and located at the center of the screen being given higher weight.

[0045] Calculate the unit direction vector of the point relative to the camera, and take the dot product with the forward vector of the camera to obtain the cosine value of the line of sight angle; Convert the world coordinates of the point to screen pixel coordinates, calculate the distance between the point and the center of the screen, and normalize the result. The viewing angle factor and the screen center factor are weighted and merged according to a certain ratio.

[0046] Spatial distribution density factor: This factor measures the density of a point within its local neighborhood, with points in sparse regions given higher weights to avoid rendering points being overly concentrated in high-density clusters.

[0047] Build a KD-tree spatial index for all points in the candidate dataset; Using a point as the center, a range search is performed with a radius equal to a certain proportion of the diagonal length of the view polygon, and the number of points falling within the radius is counted. Obtain the maximum and minimum number of neighborhood points for all points in the candidate dataset; After normalizing the number of neighborhood points, the value is inverted; the fewer the number of neighborhood points, the higher the weight.

[0048] Random disturbance factor: Introducing subtle random differences for each point avoids the filtering traces of a fixed pattern caused by equal weights, while increasing visual naturalness.

[0049] Using point ID as a seed, uniformly distributed random numbers are generated through a pseudo-random algorithm; The random numbers are mapped to a small fluctuation range close to 1.0.

[0050] Weight fusion, including: The final thinned weight for each point is obtained by multiplying each of the four factors by its corresponding weight coefficient and then summing the results. Each weight coefficient is an adjustable hyperparameter that can be adjusted according to the focus of the application scenario.

[0051] Sort all points in the candidate dataset in descending order of their weights. Since the candidate dataset may be large, to reduce computational overhead, a fast selection algorithm is used to directly obtain the top few points with the highest weights, without requiring a full sort.

[0052] Select a fixed number of points with the highest weights as the set of points to be rendered in the current frame. If the total number of points in the candidate dataset is less than the preset number, select all points in the candidate dataset.

[0053] Step 5: Viewpoint Prediction and Preloading This step eliminates data loading delays by predicting camera movement trends in the near future and preloading potentially visible data.

[0054] The system maintains a fixed-length sliding window to record the camera position and rotation quaternion for each frame.

[0055] A linear regression model is used to extrapolate the camera position sequence to predict the camera position in the near future; spherical linear interpolation is used to predict the future orientation of the rotation quaternion.

[0056] Repeat steps 2 to 4 with the predicted camera parameters to generate a set of predicted points to be rendered.

[0057] ④ The data loader iterates through the predicted point IDs in the set of points to be rendered, and checks whether these points already exist in the memory cache: If it already exists, do nothing; If missing, the node to which it belongs is located in reverse order based on the node ID, and the node is added to the asynchronous loading queue.

[0058] The asynchronous loading task is executed in a background thread. It reads the complete point data of the node from the raw data storage layer, stores it in the memory cache after loading, and updates the node status of the scene tree management module.

[0059] Step 6: Smooth Rendering Transition This step performs visual smoothing on the inter-frame variations of the sparse point set to eliminate abrupt changes and achieve a seamless visual experience.

[0060] ① The transition effects renderer maintains the following state data: The previous frame's rendered point set; The current frame's rendering point set; Each point has a lifecycle status table that records its first occurrence frame number, last occurrence frame number, current transparency, and current world position offset.

[0061] ② Handling new points: Calculate the difference between the current frame's rendered point set and the previous frame's rendered point set to obtain the newly added points in the current frame; Initialize the transparency of each newly added point to zero, and record the current frame as its birth time; In the following short period, the transparency increases linearly with each frame until it becomes completely opaque.

[0062] ③ Vanishing point handling: Calculate the difference between the set of rendered points in the previous frame and the set of rendered points in the current frame to obtain the points that disappear in the current frame; These points are marked as "to be eliminated", and their transparency decreases linearly every frame starting from the current value; After a fixed period of time, the opacity drops to zero, and it is completely removed from the render list.

[0063] ④ Handling persistent points: For a point that exists in both the previous frame and the current frame's rendering point set, if its world coordinates change due to the thinning algorithm, or if the camera movement causes its screen position to jump. Continuous position interpolation is achieved in the vertex shader by using the world position offset node in the UE material system; The interpolation duration is set to an extremely short time to smoothly transition the world coordinates of a point from its old location to its new location.

[0064] ⑤ Submit rendering instructions: For static attribute points (fixed position, no transparency animation), batch rendering is performed using instantiated static meshes, and the transformation matrix and material parameters of the instances are updated every frame. For dynamic points that require frame-by-frame adjustment of transparency or position, the Niagara particle system is used, which updates particle properties via GPU calculation every frame, achieving efficient large-scale particle rendering.

[0065] Step 7: Execute repeatedly This step marks the end of one processing cycle and automatically begins the next frame loop.

[0066] After the current frame is rendered, the current frame rendering point set is assigned to the previous frame rendering point set, and the state buffer pool is updated. Wait for the camera parameters to be updated in the next frame, and repeat steps 2 to 6.

[0067] This specification fully, clearly, and in detail discloses the system composition, internal structure of the modules, connection relationships between modules, method steps, and operation flow of the present invention. It possesses sufficient industrial feasibility and reproducibility.

[0068] like Figure 1 As shown, the system of this invention consists of the following five core modules, which communicate and cooperate with each other through standardized data interfaces to form a complete dynamic thinning loading closed loop: 1. Raw data storage layer This layer forms the foundation for the system's data persistence, using file systems, relational databases, or cloud object storage to store massive amounts of geographic information point data. Each data record contains at least: a unique identifier (ID), longitude coordinates, latitude coordinates, elevation value (optional), and several business attribute fields (such as name, type, timestamp, etc.). Supported data formats include Shapefile, GeoJSON, CSV, PostGIS, etc., with data volumes ranging from tens of millions to hundreds of millions. This layer only provides an interface for reading raw data and does not participate in real-time computation.

[0069] 2. Scene Tree Management Module This module is responsible for building and maintaining a global multi-scale spatial index structure. It uses a modified latitude and longitude quadtree as its core organization method, adaptively switching to an octree structure in high-density areas or near the poles. Each tree node stores the following information: Node spatial bounding box: A rectangular area defined by minimum longitude, maximum longitude, minimum latitude, and maximum latitude. If elevation is enabled, it expands into a three-dimensional bounding box. A list of IDs for all data points within a node (if the node is a leaf node); Child node pointers or indices; The point density statistics (number of points / area) of this region are used to calculate the density factor in the thinning algorithm.

[0070] The core function of this module is to provide efficient spatial query capabilities: it receives a two-dimensional view polygon, quickly traverses the index tree, and returns all leaf nodes (or nodes at a specified level) that intersect with the polygon and the set of data point IDs contained therein.

[0071] 3. Data Loader This module is responsible for loading raw data from the persistent storage layer into memory on demand and maintaining a high-performance cache. Its internal structure includes: Asynchronous I / O thread pool: processes data read requests concurrently, avoiding blocking the game's main thread; Memory cache: It adopts the LRU (Least Recently Used) eviction policy, and its capacity is configurable (e.g., 2GB). It stores the most recently accessed node data. Preload queue: Loads data for the expected visible area in advance based on viewpoint prediction results.

[0072] The data loader interacts bidirectionally with the scene tree management module: it receives a "node loading request" from the scene tree module, reads the complete point data corresponding to the node from the raw data storage layer; after loading, it sends the point data list back to the scene tree management module for subsequent sparse querying.

[0073] 4. Thinning Algorithm Engine The core decision-making unit of this invention runs in the game thread or compute shader of the UE engine. It is internally composed of the following sub-units: Camera parameter acquisition unit: Each frame acquires parameters such as world coordinates, rotation quaternion, field of view, near clipping plane, far clipping plane, and screen resolution of the camera from the UE scene; Cone-Spherical Intersection Calculator: Performs intersection calculations between a standard cone and an Earth ellipsoid model and terrain elevation data to generate a three-dimensional visible surface region; Visible Area Mapper: Projects a 3D visible surface onto a 2D latitude and longitude plane to generate a view polygon; Weight calculation unit: includes distance factor calculator, angle factor calculator, density factor calculator, and random factor generator, which performs multi-dimensional scoring on each point in the candidate point set; Sorting and filtering unit: Quickly filter a fixed number of points as the set of points to be rendered by sorting them in descending order of weight.

[0074] This module receives the current set of memory data points from the data loader and real-time parameters from the camera, and outputs a list of point IDs to be rendered and their weight values ​​for each frame.

[0075] 5. Transition Effects Renderer This module is responsible for eliminating visual abrupt changes caused by inter-frame variations in the thinned point set, achieving a seamless visual transition. Its internal structure includes: Inter-frame difference analyzer: compares the set of points to be rendered in the current frame with the set of points to be rendered in the previous frame to identify newly added points, disappearing points, and persistent points; State buffer pool: records the lifecycle state of each point (birth frame, death frame, duration), current transparency, position offset, etc. Smooth Interpolation Controller: Based on a linear interpolation algorithm, it controls the transparency of newly added points to gradually increase from 0 to 1, the transparency of vanishing points to gradually decrease from 1 to 0, and the position of persistent points to smoothly move from the old coordinates to the new coordinates; Rendering Interface Adapter: Converts the final processed point data into rendering instructions that the UE engine can recognize, and submits them to the rendering pipeline through instantiated static meshes or the Niagara particle system.

[0076] Overview of module collaboration relationships: The camera's position and orientation change with each frame triggers the thinning algorithm engine to recalculate the visible area and the set of points to be rendered. The scene tree management module dynamically adjusts the candidate node range based on the new viewport polygon and sends node loading or unloading instructions to the data loader. The data loader asynchronously ensures the availability of candidate node data in memory. The thinning algorithm engine outputs the filtering results to the transition effect renderer. After smoothing, the transition effect renderer submits the final rendering data to the UE rendering pipeline. The entire process is executed cyclically every frame, forming a real-time, closed-loop, adaptive dynamic scheduling system.

[0077] Beneficial effects: 1. Visual continuity and immersion are significantly improved. Existing technologies employ discrete LOD level switching or block loading, which frequently results in visual discontinuities such as model jumps and white screens during viewpoint movement.

[0078] This invention uses a dynamic thinning algorithm to filter all data in real time rather than switching levels. Combined with smooth inter-frame transition rendering (gradually revealing and fading transparency, and smooth interpolation of position), it completely eliminates visual jumps and loading waits, allowing users to obtain a completely seamless immersive experience during multi-scale roaming, rotation, and scaling.

[0079] 2. The original data accuracy is fully preserved. Existing technologies generally employ clustering methods when processing massive discrete points, merging multiple points into a single aggregate symbol. While this improves rendering efficiency, it loses the precise spatial location and individual attributes of each point.

[0080] This invention employs thinning rather than aggregation, ensuring that all rendered points are real points from the original dataset. The number of points displayed is controlled solely by intelligent weight scoring, without altering the coordinates or attributes of the points, thus guaranteeing a high-fidelity presentation of geographic information.

[0081] 3. Rendering performance is constant and predictable. The number of rendering points in existing technologies changes dynamically with the field of view and the total amount of data. In high-density areas or large fields of view, the number of rendering points can easily increase explosively, leading to a sharp drop in frame rate.

[0082] This invention uses a hard constraint on the maximum number of rendering points on the screen to lock the number of rendering points per frame at a fixed value (such as 2000). No matter how much the total amount of original data increases, the rendering overhead remains constant, the performance is completely predictable, and the smoothness of real-time interaction is guaranteed.

[0083] 4. Real-time and agile interactive response Existing data scheduling strategies are relatively lagging, and when users zoom or rotate rapidly, data loading cannot keep up with the changes in viewpoint.

[0084] This invention introduces a viewpoint prediction and preloading mechanism, which preloads data that may enter the field of view in the next 0.5 seconds based on historical motion trends. At the same time, it adopts a lightweight weight calculation model to perform thinning and filtering every frame, so that the data display is almost synchronized with the user operation and the response is sensitive.

[0085] 5. Precise global-scale adaptation Existing technologies typically perform view frustum clipping based on the planar assumption, ignoring the curvature of the Earth on a global scale, which leads to errors in the clipping of the field of view edges or misjudgment of data.

[0086] This invention uses a combined frustum-sphere intersection algorithm to explicitly intersect the camera's frustum with the Earth's ellipsoid and terrain elevation, generating a precise two-dimensional field-of-view polygon. This ensures accurate clipping and thinning at any scale from the Earth-Moon system to the Earth's surface.

[0087] 6. Deeply adapted to high-performance rendering engines Existing technologies are mostly web or general-purpose engine solutions. When ported to high-fidelity rendering environments such as Unreal Engine, their optimization potential is limited, and they cannot fully utilize the parallel computing capabilities of modern GPUs.

[0088] This invention deeply integrates the UE engine, utilizes instantiated static meshes (ISMs) to achieve batch rendering of massive points, leverages the Niagara particle system to drive dynamic effects, and achieves smooth vertex-level transitions through material world position offsets, maximizing engine performance.

[0089] In summary, this invention replaces "clustering" and "layered LOD" with "dynamic thinning," and has made systematic innovations in data organization, scheduling strategies and rendering pipelines. It is significantly superior to existing technologies in terms of visual experience, data accuracy, performance stability, interactive response, global adaptation and engine optimization, and has outstanding substantive features and progress.

[0090] The above specific embodiments further illustrate the purpose, technical solution, and beneficial effects of the present invention. It should be understood that the above are merely specific embodiments of the present invention and are not intended to limit the scope of protection of the present invention. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the scope of protection of the present invention.

Claims

1. A method for thinning and loading 3D geographic information data based on a UE engine, characterized in that, The loading method includes: Save geographic information point data; We construct and maintain a global multi-scale spatial index structure, using an improved latitude and longitude quadtree as the core organization method, and adaptively switching to an octree structure in high-density areas or near the poles. The raw data is loaded from the persistent storage layer into memory on demand, and a cache is maintained. Receive the current set of memory data points from the data loader and the real-time parameters from the camera, and use the dynamic thinning loading method to output the list of point IDs to be rendered and the weight values ​​for each frame; Eliminate visual abrupt changes caused by inter-frame variations in the thinned point set to achieve a seamless visual transition.

2. The method for thinning and loading 3D geographic information data based on a UE engine according to claim 1, characterized in that, Each data record in the geographic information point data includes: a unique identifier (ID), longitude coordinates, latitude coordinates, elevation value, and several business attribute fields.

3. The method for thinning and loading 3D geographic information data based on a UE engine according to claim 1, characterized in that, The information contained in each node of the octree structure includes: Node spatial bounding box: A rectangular area defined by minimum longitude, maximum longitude, minimum latitude, and maximum latitude. If elevation is enabled, it expands into a three-dimensional bounding box. A list of IDs for all data points within a node; Child node pointers or indices; The point density statistics of the region are used to calculate the density factor in the thinning algorithm.

4. The method for thinning and loading three-dimensional geographic information data based on a UE engine according to claim 1, characterized in that, The cache specifically includes: Asynchronous I / O thread pool: handles data read requests concurrently; Memory cache: Employs an LRU eviction policy, with configurable capacity, and stores recently accessed node data; Preload queue: Loads data for the expected visible area in advance based on viewpoint prediction results.

5. The method for thinning and loading three-dimensional geographic information data based on a UE engine according to claim 1, characterized in that, The process of receiving the current memory data point set from the data loader and the real-time parameters from the camera, and using a dynamic thinning loading method to output the list of point IDs to be rendered and weight values ​​for each frame, specifically includes: Data preprocessing and spatial index construction; Convert the camera's three-dimensional view frustum into a two-dimensional visible area on the Earth's surface; Locate all potentially visible data nodes from the quadtree index; Dynamic thinning weight calculation and target quantity screening; Predict camera movement trends in the near future; Visual smoothing is applied to the inter-frame variations of the sparse point set to achieve a seamless visual experience; After the current frame is rendered, the current frame rendering point set is assigned to the previous frame rendering point set, and the state buffer pool is updated. Waiting for the camera parameters to be updated in the next frame.

6. The method for thinning and loading three-dimensional geographic information data based on a UE engine according to claim 5, characterized in that, The data preprocessing and spatial index construction specifically include: Read the original geographic point data file, traverse each record, extract latitude and longitude coordinates and elevation values, and convert them into the WGS84 geographic coordinate system. Recursively construct a quadtree using the global latitude and longitude range as the root node region: If the number of points contained in the current node is greater than the preset threshold and the current depth is less than the maximum depth, then the corresponding node will be divided into four child nodes, and the point ID list will be assigned to the corresponding child nodes. If the number of points is less than or equal to the threshold, or the maximum depth has been reached, then the corresponding node is a leaf node, which stores a list of IDs of all points in the corresponding region. For each node, calculate and store its minimum bounding rectangle, and expand it into a 3D bounding box if elevation data exists. The completed quadtree index is serialized and stored as a binary file for fast loading into memory at runtime.

7. The method for thinning and loading three-dimensional geographic information data based on a UE engine according to claim 5, characterized in that, The process of converting the camera's three-dimensional view frustum into a two-dimensional visible area on the Earth's surface specifically includes: The camera parameters are obtained in real time from the UE engine, including the camera's world coordinate position, orientation, vertical field of view, near clipping distance, far clipping distance, screen pixel width and height; Construct a standard view frustum geometry: a truncated pyramid formed by the near clipping plane, the far clipping plane, and four side planes, with the camera position as the vertex and extending in the forward direction; Perform spherical clipping enhancement calculations: Using the Earth's center as the origin and standard ellipsoidal parameters for the Earth's radius; transform the vertex coordinates of the view frustum from the world coordinate system to the geocentric coordinate system; along the four edges of the view frustum, from the intersection of the near clipping plane to the intersection of the far clipping plane, sample the intersection points of the rays with the Earth's ellipsoid at step sizes; connect all intersection points to form the visible surface boundary of the three-dimensional Earth surface; if local high-precision terrain is enabled, use the UE's terrain system or runtime elevation data to correct the elevation values ​​of the intersection points; Projecting the boundary of the three-dimensional visible surface onto a two-dimensional latitude and longitude plane yields a view polygon. The field of view polygon is a closed planar graphic that represents the geographical area covered by the current camera's field of view on the Earth's surface.

8. The method for thinning and loading three-dimensional geographic information data based on a UE engine according to claim 5, characterized in that, The process of visually smoothing the inter-frame variations of the thinned point set to achieve a seamless visual experience specifically includes: The transition effects renderer maintains the following state data: The previous frame's rendered point set; The current frame's rendering point set; Each point has a lifecycle status table that records its first appearance frame number, last appearance frame number, current transparency, and current world position offset. New point processing: Calculate the difference between the current frame's rendered point set and the previous frame's rendered point set to obtain the newly added points in the current frame; Initialize the transparency of each newly added point to zero, and record the current frame as its birth time; In the following short period of time, the transparency increases linearly with each frame until it becomes completely opaque; Vanishing point handling: Calculate the difference between the set of rendered points in the previous frame and the set of rendered points in the current frame to obtain the points that disappear in the current frame; Mark the points that disappear in this frame as "to be eliminated", and decrease the transparency linearly every frame starting from the current value; After a fixed period of time, the opacity drops to zero, and it is completely removed from the render list; Persistent point handling: For a point that exists in both the previous frame and the current frame's rendering point set, if its world coordinates change due to the thinning algorithm, or if the camera movement causes its screen position to jump. Continuous position interpolation is achieved in the vertex shader by using the world position offset node in the UE material system; The interpolation duration is set to an extremely short time to smoothly transition the world coordinates of a point from its old location to its new location. Rendering command submission: For static attribute points, batch rendering is performed using instantiated static meshes, with the transformation matrix and material parameters of the instance updated every frame. For dynamic points that require frame-by-frame adjustment of transparency or position, the Niagara particle system is used, with particle properties updated via GPU computation each frame.

9. A 3D geographic information data thinning and loading system based on a UE engine, employing the 3D geographic information data thinning and loading method based on a UE engine as described in any one of claims 1-8, characterized in that, The loading system includes: The raw data storage layer is used to store geographic information point data; The scene tree management module is used to build and maintain a global multi-scale spatial index structure. It adopts an improved latitude and longitude quadtree as the core organization method and adaptively switches to an octree structure in high-density areas or near the polar regions. A data loader is used to load raw data from the persistent storage layer into memory on demand and maintain a cache. The thinning algorithm engine module is used to receive the current set of memory data points from the data loader and the real-time parameters from the camera. It uses a dynamic thinning loading method to output a list of point IDs to be rendered and weight values ​​for each frame. The transition effects renderer module is used to eliminate visual abrupt changes caused by inter-frame variations in the thinned point set, achieving a seamless visual transition.