Visualizing non-aligned data sets

By executing the hierarchical selection method on the computing device, the problem of visualizing multiple misaligned data sets on a limited memory device is solved, and efficient data set visualization effect is achieved.

CN120144842APending Publication Date: 2025-06-13HEXAGON INNOVATION CENTER LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411776607.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-12-13
Filing Date
2024-12-05
Publication Date
2025-06-13

AI Technical Summary

Technical Problem

The prior art is difficult to efficiently visualize multiple misaligned data sets on limited memory devices, especially when point cloud data sets have a hierarchy of detail.

Method used

By performing a hierarchical selection method on the computing device, receiving multiple data sets, determining the amount of available memory, selecting the data set node to be loaded, loading it into memory, and visualizing it on the display. The specific steps include obtaining the camera frustum information, dividing it into foreground and background data sets, allocating memory, and selecting nodes based on memory allocation.

Benefits of technology

It realizes efficient visualization of multiple data sets on a limited memory device, ensuring that the relevant parts of the data set can be displayed effectively, and solves the visualization problem caused by excessive data sets under memory limitations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120144842A_ABST
    Figure CN120144842A_ABST
Patent Text Reader

Abstract

And the non-aligned data set is visualized. The invention relates to a computer-implemented method for visualizing 3D data of a plurality of data sets in a scene using a computing device, the computing device having limited available memory for visualizing 3D data, the method comprising: receiving the plurality of data sets; determining an amount of available memory; selecting a node of a dataset comprising 3D data to be loaded into the available memory; loading the 3D data of the selected node into a memory; and visualizing the 3D data on a display. Allocating available memory includes: determining a tree traversal depth based at least on an amount of available memory; traversing the LOD structure of each foreground data set by using a tree traversal depth; recording all nodes overlapped with the camera frustum and determining a screen space of each recorded node; mapping each recorded node to a region; and allocating a memory to each region based on the screen space of the node.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a method for visualizing a plurality of data sets in the same scene, the data sets having a level-of-detail structure, such as a point cloud data set. The method includes performing level-of-detail selection on a plurality of index data sets that are not necessarily aligned with each other. Background Art

[0002] Level-of-detail selection is the process of selecting a portion of data from one or several data sets. For example, US6,639,598B2 discloses a rendering method involving level-of-detail selection. Such selection of relevant portions of a data set is particularly important in the case of memory constraints.

[0003] The level-of-detail structure can be given by a tree, such as an octree, which includes a single root node and branches having nodes with a parent-child relationship relative to each other. For the purposes of the present application, each node in the tree (which is conventionally considered to grow downwards) has zero or more child nodes that are located below it in the tree. A node having at least one child node is the parent node of the child nodes. A node having no child nodes is a leaf node. It is known to compute the tree structure on all nodes of all data sets and perform level-of-detail selection on this level-of-detail structure. In addition to being a computationally intensive operation for a large number of nodes, using the traversal structure of the octree of each data set in its original manner has computational advantages. For example, EP3828704 B1 discloses a method for acquiring a point cloud and visualizing the point cloud, where the level-of-detail structure is an octree. Summary of the Invention

[0004] The object of the present invention is to provide an improved method for visualizing a plurality of data sets in the same scene.

[0005] In particular, the object is to provide such a method that allows the display of a large number of point clouds for which the level-of-detail structures exist individually but not relative to each other.

[0006] Another object is to provide such a method that can be executed on a device having low memory available for visualizing data, for example, on a device having a small graphics memory (such as a handheld and / or low-end device).

[0007] At least one of these objects is achieved by the computer-implemented method of the first aspect of the present invention and / or some of the following embodiments of the present invention.

[0008] A first aspect of the present invention relates to a computer-implemented method for visualizing 3D data (e.g., point cloud data) of multiple data sets in a scene using a computing device having limited available memory for visualizing 3D data. The method is performed by the computing device and includes the following steps:

[0009] - Receiving the multiple data sets, each data set of the multiple data sets having a level of detail (LOD) structure given as a tree including multiple nodes, the multiple nodes including a root node and branches, the branches having nodes with a parent-child relationship relative to each other;

[0010] - Determining the amount of available memory for visualizing the 3D data (e.g., available memory in the graphics card of the device);

[0011] - Selecting nodes of the data sets including the 3D data to be loaded into the available memory;

[0012] - Loading the 3D data of the selected nodes into the memory; and

[0013] - Visualizing the 3D data loaded into the memory on a display.

[0014] According to this aspect of the invention, selecting nodes includes performing a level of detail selection, which includes:

[0015] - Obtaining camera frustum information defining a camera frustum that encloses (i.e., shows) at least a portion of the scene, the camera frustum including a near plane and a far plane;

[0016] - Dividing the camera frustum by at least defining a near frustum and a background frustum, the near frustum being adjacent to the near plane and including the foreground of the scene, the background frustum being adjacent to the far plane and including the background of the scene;

[0017] - Defining a subset of the data sets as foreground data sets based on the overlap of the nodes of the corresponding data sets with the near frustum;

[0018] - Dividing the camera frustum into multiple 3D regions;

[0019] - Allocating the available memory to the multiple 3D regions; and

[0020] - Selecting nodes including the 3D data to be loaded into the available memory based on the allocated memory.

[0021] The allocation of the available memory includes:

[0022] - Determine a first tree traversal depth based at least on the amount of available memory;

[0023] - Traverse the LOD structure of each foreground data set using the first tree traversal depth, thereby recording all nodes having overlap with the camera frustum and determining the screen space of each recorded node;

[0024] - Map each recorded node to one of the regions; and

[0025] - Allocate memory to each region based on the screen space of the nodes that have been mapped to the corresponding region.

[0026] According to some embodiments, the method includes defining a subset of the data sets as background data sets based on the overlap of the nodes of the corresponding data sets with the background frustum, wherein the allocation of available memory includes:

[0027] - Traverse the LOD structure of each background data set using the first tree traversal depth or a second tree traversal depth, thereby recording all nodes having overlap with the camera frustum and determining the screen space of each recorded node;

[0028] - Map each recorded node to one of the regions; and

[0029] - Allocate memory to each region based on the screen space of the nodes that have been mapped to the corresponding region.

[0030] According to some embodiments, the first tree traversal depth is used to traverse the LOD structure of each background data set, and determining the first tree traversal depth is also based on the number of data sets in the camera frustum.

[0031] According to some embodiments, the second tree traversal depth is used to traverse the LOD structure of each background data set, wherein

[0032] - Determining the first tree traversal depth is also based on the number of data sets in the near frustum, and

[0033] - Allocating available memory includes determining the second tree traversal depth based at least on the amount of available memory and the number of data sets in the background frustum.

[0034] According to some embodiments, the allocation of available memory includes:

[0035] - Estimate the amount of 3D data in the foreground and background based at least on the number of foreground data sets and background data sets; and

[0036] - Based on the estimated amount of 3D data in the foreground and background, allocate the available memory as foreground memory to the foreground and as background memory to the background.

[0037] In some embodiments, determining the first tree traversal depth is based on the foreground memory, and determining the second tree traversal depth is based on the background memory. In some embodiments, allocating memory to respective regions includes allocating foreground memory to the regions of the frustum and allocating background memory to the regions of the background frustum.

[0038] According to some embodiments, allocating available memory as foreground memory to the foreground and available memory as background memory to the background includes giving more weight to the estimated amount of 3D data in the foreground, particularly where more available memory is allocated to the foreground than to the background.

[0039] According to some embodiments, determining the first tree traversal depth is further based on the number of data sets in the frustum.

[0040] According to some embodiments, dividing a camera frustum into a plurality of 3D regions includes dividing both the frustum and the background frustum into a plurality of 3D regions.

[0041] According to some embodiments, the frustum and / or the background frustum are divided into at least nine 3D regions, such as at least nine 3D regions in a 3x3 matrix.

[0042] According to some embodiments, defining a subset of a data set as a foreground data set includes determining whether a root node intersects the frustum.

[0043] According to some embodiments, selecting a node includes removing invisible data sets prior to performing level-of-detail selection, such as where the invisible data sets are removed by bounding-box culling.

[0044] According to some embodiments, the computing device is a handheld device, such as a tablet computer or a smart phone, the handheld device includes a touch-sensitive display, and the 3D data loaded into the memory is visualized on the touch-sensitive display.

[0045] According to some embodiments, the memory for visualizing the data set is the memory of a graphics card of the computing device.

[0046] A second aspect of the present invention relates to a computer program product that includes program code having computer-executable instructions for performing the method according to the first aspect of the present invention.

[0047] A third aspect of the present invention relates to a handheld computing device that includes a memory and a touch-sensitive display for visualizing 3D data loaded into the memory. For example, the device can be a tablet computer or a smart phone. The device stores a computer program product according to the second aspect and is configured to execute the method according to the first aspect of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS

[0048] The present invention will be described in detail below by reference to exemplary embodiments accompanied by drawings, in which:

[0049] Figure 1 A plurality of individual data sets are illustrated, in which the coordinate system and the level-of-detail system are scaled, rotated, and translated relative to each other;

[0050] Figure 2 Illustrates the Figure 1 subdivision of one of the data sets into nodes;

[0051] Figure 3 Illustrates a camera view of a scene representing a data set having Figure 1 ;

[0052] Figures 4a to 4b Illustrates a level-of-detail selection based on limited information;

[0053] Figure 5 Shows a flowchart illustrating an exemplary embodiment of the method according to the present invention; and

[0054] Figure 6 Shows a flowchart illustrating the level-of-detail selection as part of the Figure 5 method. DETAILED DESCRIPTION

[0055] Figure 1 Illustrates a typical situation with a plurality of individual data sets 1-5. The coordinate system and the level-of-detail system of each data set can be scaled, rotated, and translated relative to each other. While in reality the problem is usually three-dimensional, for illustrative purposes it is shown here only in two dimensions. Moreover, the number of data sets can reach several thousand. Each data set has a level-of-detail structure. For example, each data set can be associated with a point cloud.

[0056] Figure 2 Shows the Figure 1The first dataset 1 in the dataset. For illustrative purposes, the first dataset 1 is only two-dimensional and is subdivided into four levels of detail (quad-tree levels): a root node 20, one of its four child nodes 21 again has four child nodes 22, and the four child nodes 22 are again subdivided into four child nodes 23. Generally, the level-of-detail structure of each dataset is given by an octree, which consists of a single root node and branches with nodes having a parent-child relationship relative to each other. A node without child nodes is called a leaf node. In three dimensions rather than two, there are eight child nodes instead of four. Further assume that the data (and thus the points) are redistributed to all nodes that satisfy a certain roughness logic. Large structures are combined into larger nodes, while finer details are aggregated into smaller nodes. For points, this is quite straightforward by repartitioning the points into nodes by some principle (e.g., randomly picking or Poisson disk sampling).

[0057] Figure 3 Illustrates a typical camera view representing a scene with multiple different datasets 1-5. Given a camera view (camera frustum 10) representing the scene on the screen, the challenge is to select a subset from all nodes of all datasets 1-5 such that a memory limit, e.g., given by the graphics card, is adhered to. At the same time, the data on the screen should still display a meaningful representation of all the datasets under discussion. A prerequisite for the algorithm to work is that the payload of each node (and thus the memory it occupies) is quite small compared to the available memory (e.g., the memory of the graphics card). For example, if the memory of a single root node corresponds to the entire available memory, then only the single root node could be displayed at that time. Then, the resulting view would be incomplete because the features of other datasets could not be rendered.

[0058] The first part of the present invention relates to removing invisible datasets. For example, this can be achieved by bounding box culling. Alternatively, especially for a moderate number of datasets, a linear step-by-step walk through can be equally effective. Bounding box culling can include organizing the bounding boxes of the datasets into a tree structure, which can be a simple axis-aligned bounding box tree. The camera frustum 10 has a near plane 11 and a far plane 12 defined by the viewing direction 13 of the virtual camera. Thus, the near plane 11 is close to the virtual camera, and the far plane 12 is located at the opposite end of the frustum 10. Some of the datasets 1-5 overlap with the camera frustum 10. Traversing the bounding box tree allows rejecting those datasets that are completely outside the camera frustum 10. In Figure 3 the example, this only applies to dataset 2.

[0059] However, the number of nodes falling within the frustum 10 can still greatly exceed the available storage. Performing level-of-detail selection for each data set by allocating equal portions of the memory available for each data set will not take into account the fact that portions of some data sets may be more relevant to the scene than portions of another data set and should thus be given more space in memory. In Figure 3 the example of

[0060] level-of-detail selection has only limited information about the content of the nodes. This information is typically its (oriented) bounding box and point count. Based on this limited information and assuming that the point count is substantially proportional to the memory consumption of the data set, level-of-detail selection will determine which node data needs to be loaded onto the graphics card. The standard graphics pipeline will then cull the individual points within each node.

[0061] The second part of the invention relates to this selection process given the limited information. This is illustrated in Figure 4a and Figure 4b Once all root nodes intersecting the frustum 10 have been determined by traversing the bounding box tree or linearly stepping through all data sets, the method continues by spatially organizing the remaining data sets. Starting from the viewing direction, the data sets are divided into two classes: foreground data sets that are close to the near plane 11 and will form the foreground, and the remaining data sets (background data sets) that will be relevant to the background. This is shown in Figure 4a In fact, this can be done with a smaller frustum (near frustum 15) close to the near plane 11 of the camera frustum 10. The remaining part of the camera frustum 10 thus becomes the background frustum 16.

[0062] For example, all data sets whose root nodes have an overlap with the near frustum 15 can be considered part of the foreground (foreground data sets). In fact, there are often many large root nodes within the near frustum 15 that do not actually have important points. Thus, the search can be refined by only defining those data sets 1 - 5 as part of the foreground that have nodes at a lower level of detail intersecting the near frustum 15. Alternatively, the absolute or relative intersection volume between the nodes and the near frustum 15 can be calculated, and a threshold can be defined for determining the foreground data sets.

[0063] In principle, this subdivision in the viewing direction can be refined by introducing an intermediate zone (or even further subdivisions), but for most applications, the subdivision into foreground and background has proven sufficient.

[0064] Figure 4b shows a subdivision in the camera plane. Once the foreground data set and the background data set have been distinguished, the camera plane is subdivided. This subdivision can be carried out for both the near frustum 15 and the background frustum 16. In Figure 5 , the grid 17 symbolizes the extension into the third dimension. The dashed lines 18, 19 refer to the vertical grid lines of this subdivision. In Figure 4b , the near frustum 15 and the background frustum are thus each subdivided into nine regions. Alternatively, the subdivision of the near frustum 15 can be different from one of the background frustums, or even no subdivision is applied to the near frustum 15.

[0065] Based on the number of data sets in the foreground and background, the data share present in each data set can be estimated. For example, if there are no data sets in the foreground, all the memory will be given to the background. Otherwise, a larger portion of the memory is given to the foreground because the points in the foreground tend to occlude the points in the background. Additionally, by zooming closer to the region, the user generally expects all the data close to the camera to appear.

[0066] Starting from the foreground data set, the number of data sets in the foreground (close to the frustum 15) and the amount of available memory (e.g., available for the foreground) provide a rough estimate of how deep each tree can be traversed. To have some safety margin, each octree can be traversed slightly deeper. The nodes 20 - 23 that overlap with the camera frustum 10 are recorded. Additionally, its screen space area is calculated and recorded. Then, the nodes of each foreground octree are mapped to the subdivision cell with the largest share of that region. In this way, each node 20 - 23 is given an index of the subdivision region, and conversely, each subdivision region has a list of nodes. For each region, the nodes 20 - 23 are sorted according to their screen space area.

[0067] In the case where data is provided only in the leaf nodes, the octree needs to be traversed up to the leaf nodes, and the most relevant data from the leaf nodes needs to be selected to meet the memory constraints.

[0068] Due to the memory limit in the foreground, equal shares are given to each subdivision region, and the nodes with the largest screen space area are selected. The unused memory (e.g., when there are empty regions) is given to the regions with data. If after this selection process, all the foreground nodes have been selected and there is still memory remaining, it is transferred to the background budget. Then this process is repeated for the background data set.

[0069] As a result, views of multiple datasets can be generated that do not concentrate the data in a single region of the scene, whether in the foreground / background or at a specific region in the view plane, despite the datasets not being aligned and there being no regular level-of-detail hierarchy for all nodes of all datasets.

[0070] Figure 5 FIG. 4 is a flowchart illustrating steps of an exemplary embodiment of a method 100 for visualizing 3D data of multiple datasets according to the present invention. The method is executed in a computing device. In particular, the available memory for visualizing 3D data is limited, i.e., not sufficient to visualize all 3D data. In step 110, multiple datasets are received. For example, this can include storing the datasets on a hard drive of a computing unit. The data included in the datasets can include point cloud data or other 3D data. Each of the multiple datasets has a level-of-detail (LOD) structure, which is given as a tree including multiple nodes, the multiple nodes including a root node and branches, and the branches having nodes with a parent-child relationship relative to each other. In step 120, the amount of available memory for visualizing 3D data is determined, such as the available memory in a graphics card. In step 130, LOD selection is performed to select nodes of the datasets that include 3D data to be loaded into the available memory. The LOD selection is described in detail in Figure 6 FIG. 5. In step 140, the 3D data of the nodes selected by the LOD selection process 130 is loaded into the memory. Finally, in step 150, the 3D data that has been loaded into the memory is visualized on a display (e.g., the display of the computing device).

[0071] Figure 6 FIG. 5 illustrates steps of an exemplary process for selecting nodes by performing LOD selection 130. The LOD selection includes obtaining 210 frustum information of a camera frustum that defines a frustum of a virtual camera. The camera frustum corresponds to the scene in which the 3D data should be visualized. The camera frustum is partitioned 220 by at least defining a near frustum for the foreground and a background frustum for the background of the scene / frustum. A subset of the datasets is defined as the foreground datasets. This includes determining whether the nodes of the datasets overlap with the near frustum.

[0072] Then, the camera frustum is partitioned 240 into multiple 3D regions. This can include subdividing both the near frustum and the background frustum or only one of them (in particular at least the background frustum) into multiple 3D regions. For example, each of them can be subdivided into at least nine 3D regions, such as at least nine 3D regions in a 3x3 matrix. The available memory is allocated 250 to these 3D regions, and based on the allocated memory, nodes including 3D data to be loaded into the available memory are selected.

[0073] Allocating the available memory 250 to the 3D regions may optionally include estimating the amount of 3D data in the foreground and / or background based on the number of foreground data sets and / or background data sets, such that a certain amount of available data can be reserved as foreground memory for the foreground and / or as background memory for the background. Optionally, more weight may be given to the amount of estimated 3D data in the foreground, such that a larger amount of the available memory will be allocated to the foreground compared to the background.

[0074] Allocating the available memory 250 to the 3D regions of the foreground (i.e., the frustum) includes at least determining 260 the tree traversal depth based on the amount of available memory and the number of data sets in the frustum (or alternatively, based on the number of all data sets in the camera frustum), and traversing 262 the LOD structure of each foreground data set using the tree traversal depth, thereby recording 264 all the nodes of these data sets that overlap with the camera frustum. The screen space of each recorded node is calculated. Each recorded node is mapped 266 to one of the regions in the area. In particular, each node is mapped to the region with the largest area share. Each node receives the index of its region, and each region has a list of nodes. For each region, the nodes can then be sorted according to the screen space area of the nodes. Then, based on the screen space of all the nodes that have been mapped to the corresponding region, the memory is allocated 268 to each foreground region.

[0075] Allocating the available memory to the 3D regions of the background (i.e., the background frustum) includes corresponding steps 270, 272, 274, 276, and 278. Specifically, allocating the available memory 250 to the 3D regions of the background (i.e., the background frustum) may include at least determining 270 another tree traversal depth (i.e., not necessarily the same as that of the foreground) based on the amount of available memory and the number of data sets in the background frustum. Alternatively, a common tree traversal depth may be determined for both the foreground and the background. Then, the LOD structure of each background data set is traversed 272 using the tree traversal depth (i.e., the common tree traversal depth or the background tree traversal depth), thereby recording 274 all the nodes of these data sets that overlap with the camera frustum. The screen space of each recorded node is calculated. Each recorded node is mapped 276 to one of the regions in the background. In particular, each node is mapped to the region with the largest area share. Similarly, each node receives the index of its region, and each region has a list of nodes. For each region, the nodes can then be sorted according to the screen space area of the nodes. Then, based on the screen space of all the nodes that have been mapped to the corresponding region, the memory is allocated 278 to each background region.

[0076] The tree traversal depths for the foreground and background can be different. If the available memory has been partitioned into foreground memory and background memory, then determining 260 the foreground tree traversal depth can be based on the foreground memory, and determining 270 the background tree traversal depth can be based on the background memory. Additionally, allocating 268, 278 memory to regions can include allocating only the foreground memory to foreground regions and only the background memory to background regions.

[0077] Although the foregoing has illustrated the present invention with reference to some preferred embodiments, it must be understood that many modifications and combinations of the different features of the embodiments can be made. All such modifications are within the scope of the appended claims.

Claims

1. A computer-implemented method (100) for visualizing 3D data of a plurality of data sets (1-5) in a scene using a computing device having limited available memory for visualizing the 3D data, the method comprising the following steps: In the computing device: - receiving (110) the plurality of data sets (1-5), each of the plurality of data sets (1-5) having a detail hierarchy structure given as a tree including a plurality of nodes (20-23), the plurality of nodes (20-23) including a root node (20) and branches, the branches having nodes having a parent-child relationship with respect to each other; - determining (120) an amount of available memory for visualizing said 3D data; - selecting a node (20-23) of said data set (1-5) comprising 3D data to be loaded into said available memory; - loading (140) the 3D data of the selected node into the memory; and - visualizing on a display the 3D data loaded into the memory (150), It is characterized in that Selecting nodes (20-23) includes performing a level of detail selection (130), the level of detail selection (130) including: - obtaining (210) camera frustum information defining a camera frustum (10) comprising at least a portion of the scene, the camera frustum comprising a near plane (11) and a far plane (12); - dividing (220) the camera frustum (10) by defining at least a near frustum (15) adjacent to the near plane (11) and comprising the foreground of the scene, and a background frustum (16) adjacent to the far plane (12) and comprising the background of the scene; - defining (230) a subset of the data sets (1-5) as foreground data sets based on the overlap of said nodes (20-23) of the corresponding data sets with said approximate frustum (15); - dividing (240) the camera frustum (10) into a plurality of 3D regions; - allocating (250) the available memory to the plurality of 3D regions; and - based on the allocated memory, selecting nodes (1-5) comprising 3D data to be loaded into said available memory; Wherein, allocating (250) the available memory comprises: - determining (260) a first tree traversal depth based at least on the amount of available memory; - traversing (262) a detail hierarchy of each foreground data set using the first tree traversal depth, thereby recording (264) all nodes (20-23) having an overlap with the camera frustum (10), and determining the screen space of each recorded node; - mapping (266) each recorded node to one of said 3D regions; and - allocating (268) memory to respective regions based on the screen space of the nodes that have been mapped to the corresponding 3D regions.

2. The method (100) of claim 1, comprising defining a subset of data sets (1-5) as background data sets based on an overlap of the nodes (20-23) of the respective data sets with the background frustum (16), wherein: Allocating (250) the available memory includes: - using the first tree traversal depth or the second tree traversal depth to traverse (272) a detail hierarchy of each background data set, thereby recording (274) all nodes (20-23) having an overlap with the camera frustum (10), and determining a screen space of each recorded node; - mapping (276) each recorded node to one of said regions; and - Allocating (278) memory to various regions based on the screen space of the nodes that have been mapped to the respective regions.

3. The method (100) according to claim 2, wherein: For traversing (272) the detail hierarchy of each background data set, the first tree traversal depth is used, and determining (260) the first tree traversal depth is also based on the number of data sets (1-5) in the camera frustum (10).

4. The method (100) according to claim 2, wherein: For traversing (272) the detail hierarchy of each background data set, a second tree traversal depth is used, where - determining (260) the first tree traversal depth is also based on the number of data sets (1-5) in the near frustum (15), and - allocating (250) the available memory comprises determining (270) the second tree traversal depth based at least on the amount of the available memory and the number of data sets (1-5) in the background frustum (16).

5. The method (100) according to claim 4, wherein: Allocating (250) the available memory includes: - estimating the amount of 3D data in the foreground and the background based at least on the amount of the foreground dataset and the background dataset; and - based on the estimated amount of 3D data in the foreground and the background, allocating the available memory as foreground memory to the foreground and allocating the available memory as background memory to the background, in, - determining (260) a first tree traversal depth based on the foreground memory, and determining (270) the second tree traversal depth based on the background memory; and / or - allocating (268, 278) memory to the respective regions comprises allocating foreground memory to regions of the near frustum (15) and allocating background memory to regions of the background frustum (16).

6. The method (100) according to claim 5, wherein: Allocating the available memory as foreground memory to the foreground and allocating the available memory as background memory to the background comprises giving more weight to the estimated amount of 3D data in the foreground, in particular wherein more of the available memory is allocated to the foreground than to the background.

7. The method (100) according to any one of the preceding claims, wherein: Determining (260) the first tree traversal depth is also based on the number of data sets (1-5) in the near frustum (15).

8. The method (100) according to any one of the preceding claims, wherein: Dividing (240) the camera frustum (10) into a plurality of 3D regions includes dividing both the near frustum (15) and the background frustum (16) into a plurality of 3D regions.

9. The method (100) according to claim 8, wherein: The near frustum (15) and / or the background frustum (16) are divided into at least nine 3D regions, in particular at least nine 3D regions in a 3x3 matrix.

10. The method (100) according to any one of the preceding claims, wherein: Defining a subset of the data sets (1-5) as a foreground data set includes determining whether the root node (20) intersects the approximate frustum (10).

11. The method (100) according to any of the preceding claims, selecting nodes (20-23) comprising removing invisible data sets before performing said level of detail selection (130), in particular wherein: The invisible data sets are removed by bounding box culling.

12. The method (100) according to any one of the preceding claims, wherein: The computing device is a handheld device, in particular a tablet computer or a smartphone, the handheld device comprises a touch-sensitive display, and the 3D data loaded into the memory are visualized on the touch-sensitive display (150).

13. The method (100) according to any one of the preceding claims, wherein: The memory used for visualizing the data sets (1-5) is the memory of a graphics card of the computing device.

14. A computer program product comprising a program code having computer executable instructions for performing the method (100) according to any one of the preceding claims.

15. A handheld computing device comprising a memory and a touch-sensitive display for visualizing 3D data loaded into the memory, in particular wherein: The device is a tablet computer or a smartphone, the device storing a computer program product according to claim 14 and configured to execute the method (100) according to any one of claims 1 to 13.

Citation Information

Patent Citations

  • Real-time data acquisition and visualization for point-cloud recording

    EP3828704B1

  • Method and apparatus for effective level of detail selection

    US6639598B2