A method and device for rendering and scheduling of unmanned aerial vehicle tilt model data
By converting between Kd-tree and PageLod types, and combining tile tree processing queues and LRU caching, the problem of poor rendering of drone tilt model data on the web was solved, achieving efficient dynamic rendering and virtual human pathfinding functions.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- WUHAN UNIV OF SCI & TECH
- Filing Date
- 2026-03-16
- Publication Date
- 2026-06-26
AI Technical Summary
Existing drone tilt model data does not render well when rendered directly on the web, resulting in unsatisfactory 3D panoramic images.
The OSGB data is stored and converted into a renderable PageLod type using a Kd tree. The tile blocks are rendered using a renderer, and dynamic scheduling is performed through a tile tree processing queue and LRU cache, including tile block position containment relationship determination and state management.
It enables dynamic and efficient rendering of drone tilt model data, improves the rendering performance of 3D panoramic images, and supports virtual human autonomous pathfinding applications.
Smart Images

Figure CN122289484A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of 3D modeling technology for tilted models, and more specifically, to a method and apparatus for rendering and scheduling tilted model data of unmanned aerial vehicles (UAVs). Background Technology
[0002] Oblique photogrammetry is a technology that has been developed in the international surveying and mapping field in recent years. It has overturned the previous limitation that orthophotos could only be taken from a vertical angle. By mounting multiple sensors on the same flight platform, images can be collected from five different angles, including one vertical angle and four oblique angles, bringing users into a real and intuitive world that conforms to human vision.
[0003] Traditional 3D modeling typically uses software like 3ds Max and AutoCAD, manually creating models based on image data, CAD plans, or photographs to estimate building outlines and heights. This method produces models with low accuracy, significant deviations in texture from reality, and requires substantial manual intervention. Furthermore, the long data creation cycle results in low data timeliness, failing to truly meet user needs. Oblique photogrammetry, on the other hand, comprehensively perceives complex scenes with large-scale, high-precision, and high-definition capabilities. Through efficient data acquisition equipment and professional data processing workflows, it generates data that intuitively reflects the appearance, location, and height of features, ensuring realistic effects and surveying-grade accuracy. It also significantly improves model production efficiency; compared to the cumbersome and time-consuming manual modeling methods, oblique photogrammetry can be completed in just a few days, greatly improving the efficiency of 3D model data acquisition and generation, and effectively reducing costs. Currently, oblique photogrammetry is widely used both domestically and internationally, and oblique model data is gradually becoming an important component of new urban spatial data. With the emergence of high-definition drones, close-up aerial photography of ground features has become possible. High-precision tilt model data can then be generated using high-performance CPU servers and professional modeling software, providing important 3D data support for urban planning, map navigation, and autonomous driving.
[0004] Patent application CN112785710A discloses a method for rapid individualization of buildings from OSGB 3D models. It uses auxiliary tools to extract digital surface information and digital orthophoto information from the loaded OSGB 3D model, followed by automatic threshold segmentation to extract the buildings. However, this method does not address the specific loading process of the OSGB 3D model data. Patent application CN111325848A provides a method for automatic batch deletion of suspended objects in OSGB tilted models. It utilizes the third-party tool OpenSceneGraph (OSG) library to read tile data, establishes initial individual tiles, and then iteratively reads triangular facet data to determine the validity of individual tiles. Isolated suspended objects are then filtered out and deleted. However, this method cannot handle large amounts of tile data.
[0005] Therefore, it can be seen that the existing method has a technical problem: the inability to directly render the drone tilt model data on the web results in poor 3D panoramic image quality due to the lack of dynamic rendering. Summary of the Invention
[0006] To address the technical problems existing in the prior art, the present invention provides a method and apparatus for rendering and scheduling UAV tilt model data.
[0007] To address the aforementioned technical problems, the first aspect of this invention provides a method for rendering and scheduling UAV tilt model data, comprising: Create a scene rendering engine and initialize the 3D scene; Configure the OSGB loader, renderer, and least recently used cache; OSGB data is read using the OSGB loader. Based on the type of OSGB data, the read OSGB data is stored using a Kd tree and converted into a renderable PageLod type. The converted data is placed in the tile tree processing queue. The PageLod type is a paging detail level type. Obtain the tile tree in the tile tree processing queue and obtain the corresponding tile block node information. Determine the positional inclusion relationship between the tile block and the bounding sphere based on the tile block node information and the area of the bounding sphere. Then, determine whether the tile block is within the visible area based on the positional inclusion relationship between the tile block and the bounding sphere. Finally, schedule the corresponding tile block based on whether the tile block is within the visible area and the state of the tile block. Use a renderer to render the tile blocks.
[0008] In one implementation, the read OSGB data is stored using a Kd-tree according to the type of OSGB data, and then converted into a renderable PageLod type, including: Initialize a Kd-tree using the read OSGB data; The type of OSGB data is determined. If the type is PageLod, the data is converted into a tree node and its first child object is accessed. The type of the child object is cast to the PageLod type. The type of the child object is checked to see if there is a state set. If there is, the texture file of the child object is obtained, and then the geometry and coordinate index transformation are created. A Mesh cache associated with the geometry and texture file is also created. If the type is Group, iterate through its child objects, convert the child object type to PageLod, check if the child object type has a state set, if so, get the texture file of the child object, then create geometry, coordinate index transformation, and create a Mesh cache associated with the geometry and texture file; If the type is Geode, then OSGB data will be stored as the root node. Geode is a geometry container type.
[0009] In one implementation, determining the positional inclusion relationship between a tile block and its surrounding sphere based on tile block node information and the area of the surrounding sphere includes: Calculate the distance between the camera and the center of the encircling sphere; Calculate the angle of the bounding sphere on the screen based on the radius of the bounding sphere and the distance between the camera and the center of the bounding sphere. Calculate the angle corresponding to each pixel; The area of the bounding sphere is calculated based on the angle of the bounding sphere on the screen, the angle corresponding to each pixel, and the rendering precision. Determine the positional inclusion relationship between the tile and the surrounding sphere based on whether the tile falls within the area of the surrounding sphere.
[0010] In one implementation, rendering the tile blocks using a renderer includes: Retrieve the tile tree from the tile tree processing queue and obtain the corresponding tile block node information; Determine the positional containment relationship between the tile and the bounding sphere. If the tile is within the bounding sphere, bind the tile to the corresponding Mesh cache and add the bound Mesh cache to the renderer.
[0011] In one implementation, after rendering the tile blocks using a renderer, the method further includes scheduling and updating the tile tree, specifically: Obtain the current camera position and retrieve the k tiles closest to the camera; Determine if the tile tree processing queue is full. If not, traverse the retrieved k tiles and add them to the tile tree processing queue, setting an index number for the current tile. If the queue is full, obtain the waiting frame count for the tile and determine whether to clear the tile tree processing queue based on whether the waiting frame count is greater than the frame count threshold. Dequeue tiles from the tile tree processing queue, retrieve the Kd-tree information corresponding to the tile, and if the Kd-tree is empty, create a Kd-tree for the tile, then read in the tile's OSGB data and create the corresponding node type; otherwise, traverse the Kd-tree and calculate the bounding sphere area of the tile, and set the state of the tile block. Increment the frame period of the tile by one and check if it is greater than the frame period threshold. If it is greater, check the tile counter. If the tile counter is less than the counter threshold, add the tile to the unload queue, reset the frame period, and clear the counter.
[0012] In one implementation, after scheduling and updating the tile tree, the method further includes unloading tiles from the unloading queue based on the tile block state and the least recently used cache.
[0013] In one implementation, after unloading tiles from the unloading queue according to tile block status, the method further includes performing autonomous pathfinding for the virtual human based on the rendered and scheduled data.
[0014] Based on the same inventive concept, a second aspect of the present invention provides a rendering scheduling device for UAV tilt model data, comprising: The 3D scene creation module is used to create a scene rendering engine and initialize the 3D scene. The settings module is used to configure the OSGB loader, renderer, and least recently used cache. The OSGB data reading and conversion module is used to read OSGB data using the OSGB loader, store the read OSGB data using a Kd tree according to the type of OSGB data, and convert it into a renderable PageLod type. The converted data is placed in the tile tree processing queue, and the PageLod type is a paging detail level type. The OSGB data scheduling module is used to obtain the tile tree in the tile tree processing queue and obtain the corresponding tile block node information. Based on the tile block node information and the area of the bounding sphere, it determines the positional inclusion relationship between the tile block and the bounding sphere. Then, based on the positional inclusion relationship between the tile block and the bounding sphere, it determines whether the tile block is within the visible area. Finally, based on whether the tile block is within the visible area and the state of the tile block, it schedules the corresponding tile block. The OSGB data rendering module is used to render tile blocks using a renderer. Based on the same inventive concept, a third aspect of the present invention provides a computer-readable storage medium storing a computer program thereon, which, when executed by a processor, provides a method for rendering and scheduling UAV tilt model data as described in the first aspect.
[0015] Based on the same inventive concept, the fourth aspect of the present invention provides a computer device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the program to implement the rendering scheduling method for UAV tilt model data described in the first aspect.
[0016] Compared with the prior art, the advantages and beneficial technical effects of the present invention are as follows: This invention proposes a rendering scheduling method for UAV tilt model data. First, a scene rendering engine is created and the 3D scene is initialized. Then, the OSGB loader, renderer, and LRU cache are initialized. Next, the OSGB data is read and converted into a renderable PageLod type. Subsequently, the OSGB data is scheduled for real-time rendering, which can dynamically and efficiently load high-precision 3D map scenes. This solves the technical problem of poor 3D panoramic image quality caused by the inability to dynamically render UAV tilt model data directly on the Web, which is a shortcoming in the prior art.
[0017] Furthermore, after rendering OSGB data, the present invention also performs tile tree processing scheduling update; finally, it performs object cleanup scheduling to remove tiles that do not need to be rendered, thereby improving the dynamic rendering performance of UAV tilt model data.
[0018] Furthermore, this invention also enables virtual humans to autonomously navigate based on the rendered and scheduled data, realizing virtual human navigation applications by dynamically and efficiently loading high-precision 3D map scenes. Attached Figure Description
[0019] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are 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 This is a flowchart of a method for rendering and scheduling UAV tilt model data in one embodiment of the present invention; Figure 2 This is a flowchart illustrating the process of reading OSGB files in an embodiment of the present invention; Figure 3This is a structural diagram showing the OSGB data format and the Threee.js rendering engine in this embodiment of the invention; Figure 4 This is a flowchart illustrating the PageLod tree traversal process in an embodiment of the present invention. Figure 5 This is a flowchart of the bounding sphere calculation in an embodiment of the present invention; Figure 6 This is a flowchart illustrating the dynamic tile loading process in an embodiment of the present invention. Figure 7 This is a flowchart illustrating the initial dynamic unloading process of tiles in an embodiment of the present invention. Detailed Implementation
[0021] Example 1 This embodiment provides a method for rendering and scheduling UAV tilt model data, including: S1: Create a scene rendering engine and initialize the 3D scene.
[0022] Specifically, initializing a 3D scene involves creating objects such as the scene, camera, renderer, mesh, and tile processing queue. The camera provides the viewpoint position of the scene, and the renderer calculates the color and depth of pixels; these elements are intrinsically linked to the scene objects.
[0023] In the specific implementation process, taking the high-precision tilt model data of a certain school as an example, the tile data volume is about 30GB, and dynamic rendering is performed.
[0024] S2: Configure OSGB loader, renderer, and least recently used cache.
[0025] Specifically, S2 includes: Step S2.1: Set the renderer, background, and mouse controller; Step S2.2: Set the coordinate axes; Step S2.3: Set the maximum LRU cache value, the expiration time of the Mesh cache, and the update flag.
[0026] S3: Use the OSGB loader to read OSGB data, store the read OSGB data using a Kd tree according to the type of OSGB data, and convert it into a renderable PageLod type. The converted data is placed in the tile tree processing queue. The PageLod type is a paging detail level type.
[0027] Specifically, S3 acquires OSGB files, converts all OSGB files into renderable PageLod files, and uses a tile tree processing queue to manage and schedule OSGB data.
[0028] like Figure 2As shown, reading OSGB data involves obtaining the initial tile JSON file, parsing the JSON file to obtain the OSGB filename, and then reading the OSGB data based on the OSGNB filename. Please refer to [link to documentation]. Figure 3 This is a structural diagram of the OSGB data format and the Threee.js rendering engine in this embodiment of the invention.
[0029] The data transformations in S3 specifically include: S3.1: Initialize a Kd-tree from the read OSGB data; S3.2: Determine the type of OSGB data. If the type is PageLod, convert the data into a tree node and access its first child object. Cast the type of the child object to PageLod type. Query whether the type of the child object has a state set. If it does, obtain the texture file of the child object, create geometry, coordinate index transformation, and create a Mesh cache associated with the geometry and texture file. S3.3: If the type is Group, iterate through its child objects, convert the child object type to PageLod, check if the child object type has a state set, if so, obtain the texture file of the child object, then create geometry, coordinate index transformation, and create a Mesh cache associated with the geometry and texture file; S3.4: If the type is Geode, then the OSGB data will be stored as the root node. Geode is a geometry container type.
[0030] Please see Figure 4 This is a flowchart of the PageLod tree traversal process.
[0031] In practice, when the obtained object type is Group, its subclass, filename, range, and center point attributes will be obtained through this object. When the obtained object type is PageLod, its index coordinates, texture coordinates, material, and vertex coordinates attributes will be obtained through this object. Then, the texture mode and texture attributes will be obtained through the material, and finally, the image and name will be obtained through the texture attributes.
[0032] S4: Obtain the tile tree in the tile tree processing queue and obtain the corresponding tile block node information. Determine the positional inclusion relationship between the tile block and the bounding sphere based on the tile block node information and the area of the bounding sphere. Then, determine whether the tile block is within the visible area based on the positional inclusion relationship between the tile block and the bounding sphere. Finally, schedule the corresponding tile block based on whether the tile block is within the visible area and the state of the tile block.
[0033] Specifically, S4 refers to OSGB data scheduling. Regarding the relationship between tile trees, tiles, and tile blocks, multiple tile blocks constitute a tile, and multiple tiles constitute a tile tree. A tile tree is a data structure that stores tiles at different levels, organizing them hierarchically from the root node to the leaf nodes. A tile block is an aggregation of multiple tiles and also refers to the intermediate node (or paging node) of the tile tree. Leaf nodes correspond to the finest-grained tiles. A scene to be rendered corresponds to a global tile tree (root node), from which intermediate nodes (paging nodes, i.e., tile blocks) are derived, down to the leaf nodes (the smallest unit of tile). Tile blocks have states; for example, initially created tiles are in an unloaded state, and with subsequent loading and scheduling, their state changes to an active state.
[0034] In S4, the positional inclusion relationship between the tile block and the bounding sphere is determined based on the tile block node information and the area of the bounding sphere, including: S4.1: Calculate the distance between the camera and the center of the bounding sphere; S4.2: Calculate the angle of the bounding sphere on the screen based on the radius of the bounding sphere and the distance between the camera and the center of the bounding sphere; S4.3: Calculate the angle corresponding to each pixel; S4.4: Calculate the area of the bounding sphere based on the angle of the bounding sphere on the screen, the angle corresponding to each pixel, and the rendering precision; S4.5: Determine the positional inclusion relationship between the tile and the surrounding sphere based on whether the tile falls within the area of the surrounding sphere.
[0035] like Figure 5 The diagram shown is a flowchart of the bounding sphere calculation in an embodiment of the present invention.
[0036] In practice, S4.1 can be implemented in the following ways:
[0037] in,( , , ) represents the camera's position coordinates, , , () represents the coordinates of the center of the sphere. The distance between the camera and the center of the surrounding sphere.
[0038] S4.2 can be implemented in the following way:
[0039] in, Let the radius of the enclosing sphere be . The size of the angle surrounding the ball on the screen. This indicates the calculation of the tangent angle of a given input.
[0040] S4.3 can be implemented in the following way:
[0041] Where FOV is the field of view angle, which is a known value, H is the screen height, and dpp is the angle corresponding to each pixel.
[0042] S4.4 can be implemented in the following ways:
[0043] Here, Accuracy refers to the rendering precision. Let be the area of the sphere.
[0044] S4.5 Compare the maximum coordinates of the tile block with the area of the bounding sphere. If the former is less than the latter, it means that the tile block is within the bounding sphere and within the visible area. At this time, determine the state of the tile block. If it is inactive, mark the tile block as recyclable. If the former is greater than or equal to the latter, it means that the tile block is outside the bounding sphere. At this time, determine the state of the tile block. If it is active, transfer it to the unloading queue.
[0045] like Figure 6 The diagram shown is a flowchart of the dynamic tile loading process in an embodiment of the present invention.
[0046] In practice, a tile tree is a region, which stores all the hierarchical subdivision information of the region. Traversing all child nodes can obtain the geometric data location index of the region according to the subdivision of the quad / octree.
[0047] S5: Use the renderer to render the tile blocks.
[0048] Specifically, S5 can be implemented in the following way: S5.1: Obtain the tile tree in the tile tree processing queue and obtain the corresponding tile block node information; S5.2: Determine the positional containment relationship between the tile block and the bounding sphere. If the tile block is within the bounding sphere, bind the tile block to the corresponding Mesh cache and add the bound Mesh cache to the renderer.
[0049] In one implementation, after rendering the tile blocks using the renderer, the process further includes S6 scheduling and updating the tile tree, specifically: S6.1: Obtain the current camera position and retrieve the k tiles closest to the camera; S6.2: Determine if the tile tree processing queue is full. If not, traverse the retrieved k tiles and add them to the tile tree processing queue, and set the index number for the current tile. If it is full, obtain the waiting frame count of the tile and select whether to clear the tile tree processing queue based on whether the waiting frame count is greater than the frame count threshold. S6.3: Dequeue the tiles from the tile tree processing queue, retrieve the Kd tree information corresponding to the tile, if the Kd tree is empty, create the Kd tree for the tile, then read the OSGB data of the tile and create the corresponding node type for it; otherwise, traverse the Kd tree and calculate the area of the bounding sphere of the tile, and set the state of the tile block. S6.4: Increment the frame period of the tile by one and check if it is greater than the frame period threshold. If it is greater, check the tile counter. If the tile counter is less than the counter threshold, add the tile to the unload queue, reset the frame period, and clear the counter.
[0050] Specifically, S6.4 indicates that tiles are loaded and processed, and a node structure of the corresponding type is created for the tiles loaded into memory. In a practical implementation, the frame period threshold is set to... The seconds, wait frame count threshold, and counter threshold are set to... The k tiles closest to the camera are set to 256 seconds.
[0051] In one implementation, after scheduling and updating the tile tree, the process further includes S7: unloading tiles from the unloading queue based on the tile block state and the least recently used cache.
[0052] Please see Figure 7 This is a flowchart of the initial dynamic unloading of tiles in an embodiment of the present invention.
[0053] Specifically, S7 includes: S7.1: Retrieve the next tile from the unloading queue; S7.2: Obtain each tile block and its state for this tile, and determine whether it is in a cleared or recycled state. If so, obtain the tile block Mesh cache for this tile and release the tile block from the renderer; otherwise, set the object clearing queue, object storage graph, and object rendering state graph to the cleared state. Step S7.3: Set the tile to the cleared state and return to step S7.1.
[0054] In one implementation, after unloading tiles from the unloading queue according to tile block status, the process further includes S8: performing autonomous pathfinding for the virtual human based on the data after rendering scheduling.
[0055] Specifically, S8 includes: S8.1: Create a virtual humanoid figure and assign it materials; Step S8.2: Establish the road network and calculate the single-source shortest path based on Dijkstra's algorithm; Step S8.3: Virtual human simulates a long-distance run on campus.
[0056] Specifically, please see Figure 1 This is a flowchart of a method for rendering and scheduling UAV tilt model data in one embodiment of the present invention.
[0057] In the specific implementation, the Three.js library is called to create a virtual human mesh and assign different bright-colored texture materials to different parts. Several place name latitude and longitude information are collected along the road to create a directed acyclic graph and calculate the shortest geodesic path between the specified start and end points based on Dijkstra's algorithm. Then, the virtual human is started to walk along the shortest geodesic path to simulate a long-distance run on campus.
[0058] This invention employs a UAV tilted model data rendering scheduling and virtual human pathfinding method. First, a scene rendering engine is created, initializing the 3D scene, including creating objects such as the scene, camera, renderer, mesh, and tile queue. Then, the OSGB loader, renderer, and LRU cache are initialized. Next, OSGB data is read and converted into a renderable PageLod type. Subsequently, OSGB data is scheduled for real-time rendering, followed by tile tree processing scheduling updates and object cleanup scheduling to exclude tiles that do not need rendering. Finally, an application for autonomous pathfinding by a virtual human in a 3D scene is established. This invention's method features a fully closed-loop process, high efficiency, and easy scalability.
[0059] Therefore, this invention, through the development of a method for rendering and scheduling UAV tilt model data and virtual human pathfinding, can render and schedule the entire 3D map scene, rendering the 3D map to a web browser in real time. It features dynamic loading, high efficiency, and easy scalability. Furthermore, based on the high-precision 3D map overlaid with the virtual human's autonomous pathfinding function, it has broad application prospects in areas such as campus long-distance running, city marathon events, digital tourism, and smart park construction.
[0060] To verify the advantages of the UAV tilt model data rendering scheduling and virtual human pathfinding method proposed in this invention, dynamic rendering tests were conducted using different OSGB file sizes (30GB, 90GB). The algorithm in this example was statistically analyzed, and the results are shown in Table 1.
[0061] Table 1: Main Technical Specifications
[0062] As shown in Table 1, the UAV tilt model data rendering scheduling and virtual human pathfinding method proposed in this invention has good rendering performance, and can smoothly render high-precision 3D maps on a 16GB host. Specifically, when the total OSGB file size is 30GB, the memory usage for dynamic rendering is approximately 8GB. When the total file size reaches 90GB, the memory consumption increases slightly, further demonstrating the effectiveness of the UAV tilt model data rendering scheduling and virtual human pathfinding method proposed in this invention, maintaining the average frame rate and reducing memory consumption.
[0063] Furthermore, document 1-CN116245710A in the prior art discloses a dynamic scheduling method for massive oblique photography models based on Unreal Engine and thread pool. It manages the scheduling state through three core lists and adopts a multi-threaded collaborative mechanism and state machine control. However, the Unreal Engine is not native OSGB data rendering and is basically a third-party technology platform. It does not involve how tiles are scheduled and updated. The solution of this invention builds a native implementation from scratch of pre-reading, dynamic scheduling and updating of tiles, and efficient rendering of UAV oblique model data based on page-based multi-level details.
[0064] Reference 2-CN121053274A discloses a method and system for controlling and loading the accuracy of a three-dimensional model using multi-factor exponential decay. Its core is to propose a triple decay factor to control the accuracy of tiles. This algorithm is applicable to general tiles such as 3DTiles / I3S, but it is not specifically adapted to the node tree structure of OSGB. It can also be understood as middleware for reading tile nodes, and it cannot provide technical inspiration for OSGB data scheduling and rendering.
[0065] Reference 3-CN106600523A discloses a tile-based fast loading method for 3D model data. The core is to solve the problem of slow loading speed of large-scene 3D model data. It achieves efficient scheduling through tiled storage + octree index + intelligent caching strategy. Specifically, Reference 3 divides the 3D model into tiles according to the global grid and uses an octree structure to organize the spatial index; it separates the storage index file and the tile data file; however, this method has the following problems: it does not adapt to the characteristics of OSGB format. OSGB is a hierarchical scene graph structure, which contains complex dependencies such as geometry, texture, and state nodes. The tiled method in this reference is only for a single 3D model slice and does not consider the hierarchical dependencies of OSGB (such as parent nodes referencing child nodes). Direct application may lead to scene breakage. (2) Octrees are suitable for uniform grid partitioning, but are less efficient for non-uniform data such as urban building clusters. As for cache replacement and tile deletion, this invention determines whether a tile is converted to be unloaded based on the tile processing queue and tile status, which is different from the method given in Reference 3. This invention deeply dissects the OSGB data format, such as Figure 3As shown, the difficulty lies in the dynamic reading and storage of this recursive data structure. Furthermore, while Reference 3 mentions 3D model data, it uses generic data, not the OSGB format. It doesn't provide specific illustrations or calculation methods for the octree structure and view frustum clipping range. It pre-classifies tiles into three main types, calculates their values separately, and determines their retention (caching) based on their value. This invention proposes using multiple queues to establish the states of several tiles and dynamically scheduling and updating the tile states, clearing tiles to be unloaded. This invention proposes a rendering scheduling method for UAV tilt model data based on the OSG underlying library. It uses a Kd-tree, tile tree processing queue, and tile expiration time to dynamically load tiles, improving rendering performance.
[0066] Example 2 Based on the same inventive concept, this embodiment discloses a rendering scheduling device for UAV tilt model data, comprising: The 3D scene creation module is used to create a scene rendering engine and initialize the 3D scene. The settings module is used to configure the OSGB loader, renderer, and least recently used cache. The OSGB data reading and conversion module is used to read OSGB data using the OSGB loader, store the read OSGB data using a Kd tree according to the type of OSGB data, and convert it into a renderable PageLod type. The converted data is placed in the tile tree processing queue, and the PageLod type is a paging detail level type. The OSGB data scheduling module is used to obtain the tile tree in the tile tree processing queue and obtain the corresponding tile block node information. Based on the tile block node information and the area of the bounding sphere, it determines the positional inclusion relationship between the tile block and the bounding sphere. Then, based on the positional inclusion relationship between the tile block and the bounding sphere, it determines whether the tile block is within the visible area. Finally, based on whether the tile block is within the visible area and the state of the tile block, it schedules the corresponding tile block. The OSGB data rendering module is used to render tile blocks using a renderer.
[0067] In one embodiment, the apparatus further includes a scheduling update module for scheduling updates after the tile blocks have been rendered using the renderer, specifically: Obtain the current camera position and retrieve the k tiles closest to the camera; Determine if the tile tree processing queue is full. If not, traverse the retrieved k tiles and add them to the tile tree processing queue, setting an index number for the current tile. If the queue is full, obtain the waiting frame count for the tile and determine whether to clear the tile tree processing queue based on whether the waiting frame count is greater than the frame count threshold. Dequeue tiles from the tile tree processing queue, retrieve the Kd-tree information corresponding to the tile, and if the Kd-tree is empty, create a Kd-tree for the tile, then read in the tile's OSGB data and create the corresponding node type; otherwise, traverse the Kd-tree and calculate the bounding sphere area of the tile, and set the state of the tile block. Increment the frame period of the tile by one and check if it is greater than the frame period threshold. If it is greater, check the tile counter. If the tile counter is less than the counter threshold, add the tile to the unload queue, reset the frame period, and clear the counter.
[0068] In one embodiment, the apparatus further includes a tile unloading module for unloading tiles in the unloading queue based on the tile block status and the least recently used cache after the tile tree has been scheduled and updated.
[0069] In one embodiment, the device further includes a virtual human autonomous pathfinding module, which is used to perform virtual human autonomous pathfinding based on the rendered and scheduled data after unloading tiles in the unloading queue according to the tile block status.
[0070] Since the apparatus in Embodiment 2 of this invention is the same apparatus used in the rendering and scheduling method for UAV tilt model data in Embodiment 1, those skilled in the art can understand the specific structure and variations of this apparatus based on the method described in Embodiment 1 of this invention, and therefore will not be repeated here. All apparatuses used in the method of Embodiment 1 of this invention fall within the scope of protection of this invention.
[0071] Example 3 Based on the same inventive concept, the present invention also provides a computer-readable storage medium storing a computer program thereon, which, when executed by a processor, implements a rendering scheduling method for UAV tilt model data according to Embodiment 1.
[0072] Since the computer-readable storage medium described in Embodiment 3 of this invention is the same computer-readable storage medium used in implementing the rendering and scheduling method for UAV tilt model data in Embodiment 1 of this invention, those skilled in the art can understand the specific structure and variations of this computer-readable storage medium based on the method described in Embodiment 1 of this invention, and therefore will not be repeated here. All computer-readable storage media used in the method of Embodiment 1 of this invention fall within the scope of protection of this invention.
[0073] Example 4 Based on the same inventive concept, the present invention also provides a computer device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the program to implement the method described in Embodiment 1.
[0074] Since the computer device described in Embodiment 4 of this invention is the same computer device used to implement the rendering and scheduling method for UAV tilt model data in Embodiment 1 of this invention, those skilled in the art can understand the specific structure and variations of this computer device based on the method described in Embodiment 1 of this invention, and therefore will not be repeated here. All computer devices used in the method of Embodiment 1 of this invention fall within the scope of protection of this invention.
[0075] Those skilled in the art will understand that embodiments of the present invention can be provided as methods, systems, or computer program products. Therefore, the present invention can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present invention can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0076] This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0077] Although preferred embodiments of the invention have been described, those skilled in the art, upon learning the basic inventive concept, can make other changes and modifications to these embodiments. Therefore, the appended claims are intended to be interpreted as including both the preferred embodiments and all changes and modifications falling within the scope of the invention. Clearly, those skilled in the art can make various modifications and variations to the embodiments of the invention without departing from the spirit and scope of the invention. Thus, if these modifications and variations of the embodiments of the invention fall within the scope of the claims of the invention and their equivalents, the invention also intends to include these modifications and variations.
Claims
1. A method for rendering and scheduling UAV tilt model data, characterized in that, include: Create a scene rendering engine and initialize the 3D scene; Configure the OSGB loader, renderer, and least recently used cache; OSGB data is read using the OSGB loader. Based on the type of OSGB data, the read OSGB data is stored using a Kd tree and converted into a renderable PageLod type. The converted data is placed in the tile tree processing queue. The PageLod type is a paging detail level type. Obtain the tile tree in the tile tree processing queue and obtain the corresponding tile block node information. Determine the positional inclusion relationship between the tile block and the bounding sphere based on the tile block node information and the area of the bounding sphere. Then, determine whether the tile block is within the visible area based on the positional inclusion relationship between the tile block and the bounding sphere. Finally, schedule the corresponding tile block based on whether the tile block is within the visible area and the state of the tile block. Use a renderer to render the tile blocks. 2.The method of claim 1, wherein, Based on the type of OSGB data, the read OSGB data is stored using a Kd-tree and converted into a renderable PageLod type, including: Initialize a Kd-tree using the read OSGB data; The type of OSGB data is determined. If the type is PageLod, the data is converted into a tree node and its first child object is accessed. The type of the child object is cast to the PageLod type. The type of the child object is checked to see if there is a state set. If there is, the texture file of the child object is obtained, and then the geometry and coordinate index transformation are created. A Mesh cache associated with the geometry and texture file is also created. If the type is Group, iterate through its child objects, convert the child object type to PageLod, check if the child object type has a state set, if so, get the texture file of the child object, then create geometry, coordinate index transformation, and create a Mesh cache associated with the geometry and texture file. Group is a group node type. If the type is Geode, then OSGB data will be stored as the root node. Geode is a geometry container type. 3.The method of claim 1, wherein, The positional inclusion relationship between the tile block and the bounding sphere is determined based on the tile block node information and the area of the bounding sphere, including: Calculate the distance between the camera and the center of the encircling sphere; Calculate the angle of the bounding sphere on the screen based on the radius of the bounding sphere and the distance between the camera and the center of the bounding sphere. Calculate the angle corresponding to each pixel; The area of the bounding sphere is calculated based on the angle of the bounding sphere on the screen, the angle corresponding to each pixel, and the rendering precision. Determine the positional inclusion relationship between the tile and the surrounding sphere based on whether the tile falls within the area of the surrounding sphere. 4.The method of claim 1, wherein, Rendering tile blocks using a renderer includes: Retrieve the tile tree from the tile tree processing queue and obtain the corresponding tile block node information; Determine the positional containment relationship between the tile and the bounding sphere. If the tile is within the bounding sphere, bind the tile to the corresponding Mesh cache and add the bound Mesh cache to the renderer. 5.The method of claim 1, wherein, After rendering the tile blocks using the renderer, the method further includes scheduling and updating the tile tree, specifically: Obtain the current camera position and retrieve the k tiles closest to the camera; Determine if the tile tree processing queue is full. If not, traverse the retrieved k tiles and add them to the tile tree processing queue, setting an index number for the current tile. If the queue is full, obtain the waiting frame count for the tile and determine whether to clear the tile tree processing queue based on whether the waiting frame count is greater than the frame count threshold. Dequeue tiles from the tile tree processing queue, retrieve the Kd-tree information corresponding to the tile, and if the Kd-tree is empty, create a Kd-tree for the tile, then read in the tile's OSGB data and create the corresponding node type; otherwise, traverse the Kd-tree and calculate the bounding sphere area of the tile, and set the state of the tile block. Increment the frame period of the tile by one and check if it is greater than the frame period threshold. If it is greater, check the tile counter. If the tile counter is less than the counter threshold, add the tile to the unload queue, reset the frame period, and clear the counter.
6. The method of claim 5, wherein the rendering of the UAV tilt model data is scheduled based on a time of day. After scheduling and updating the tile tree, the method further includes unloading tiles from the unloading queue based on the tile block state and the least recently used cache.
7. The method of claim 6, wherein the rendering of the drone tilt model data is scheduled based on a time of day. After unloading tiles from the unloading queue according to tile block status, the method further includes virtual human autonomous pathfinding based on data after rendering scheduling.
8. An unmanned aerial vehicle (UAV) tilt model data rendering scheduling apparatus, comprising: include: The 3D scene creation module is used to create a scene rendering engine and initialize the 3D scene. The settings module is used to configure the OSGB loader, renderer, and least recently used cache. The OSGB data reading and conversion module is used to read OSGB data using the OSGB loader, store the read OSGB data using a Kd tree according to the type of OSGB data, and convert it into a renderable PageLod type. The converted data is placed in the tile tree processing queue, and the PageLod type is a paging detail level type. The OSGB data scheduling module is used to obtain the tile tree in the tile tree processing queue and obtain the corresponding tile block node information. Based on the tile block node information and the area of the bounding sphere, it determines the positional inclusion relationship between the tile block and the bounding sphere. Then, based on the positional inclusion relationship between the tile block and the bounding sphere, it determines whether the tile block is within the visible area. Finally, based on whether the tile block is within the visible area and the state of the tile block, it schedules the corresponding tile block. The OSGB data rendering module is used to render tile blocks using a renderer.
9. A computer-readable storage medium, characterized in that, It stores a computer program that, when executed by a processor, implements a rendering scheduling method for UAV tilt model data as described in any one of claims 1 to 7.
10. A computer device comprising a memory, a processor, and a computer program stored on the memory and executable on the processor, characterized in that, When the processor executes the program, it implements a rendering scheduling method for UAV tilt model data as described in any one of claims 1 to 7.