Rendering method and apparatus based on gaussian point cloud, computer device, and storage medium
By obtaining k-layer nodes at the current position and forward direction of the view frustum, rendering with different levels of detail clarity, and combining preloading and intelligent memory management, the problems of data storage and rendering speed in 3D Gaussian sub-rendering technology are solved, achieving efficient and stable rendering effects.
Patent Information
- Application Number
- PCT/CN2024/113686
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-04-10
- Filing Date
- 2024-08-21
- Publication Date
- 2025-10-16
Smart Images

Figure CN2024113686_16102025_PF_FP_ABST
Abstract
Description
Gaussian point cloud-based rendering method and device, computer device and storage medium TECHNICAL FIELD
[0001] The present application relates to the technical field of data processing, and in particular relates to a Gaussian point cloud-based rendering method and device, a computer device and a storage medium. BACKGROUND
[0002] Radar, ToF (Time of Flight), LiDAR (Light Detection and Ranging), and other technologies are widely used to collect environmental point cloud data, and oblique photography technology is often used to reconstruct real three-dimensional scenes. The point cloud data obtained from these data sources carries the structural information of the scene and can accurately express the surface structure characteristics of the real scene. At the same time, through oblique photography technology, a three-dimensional scene of the real world can also be reconstructed. In these technologies, whether it is point cloud or oblique photography reconstruction model, the final display needs to go through a rendering process to show its value in the real scene.
[0003] In recent years, the introduction of 3D Gaussian sub-rendering technology has revolutionized the way three-dimensional point cloud rendering is done, including non-point cloud three-dimensional scene rendering. This technology has achieved a practical basis in terms of real-time performance in point cloud rendering and will drive significant progress in the field of point cloud rendering in the future. Compared to traditional true-color point cloud rendering, 3D Gaussian sub-rendering technology exhibits impressive fine effects and has the potential to extend in all directions. It presents a compact feature in terms of effect fineness and three-dimensional scene expression.
[0004] However, when dealing with open large space scenes, the 3D Gaussian sub-expression scene has a large amount of data, usually involving tens of millions or even billions of 3D Gaussian sub-expressions, which poses a huge demand for data storage and rendering speed. The existing technology cannot meet the huge demand of 3D Gaussian sub-rendering technology for data storage and rendering speed, resulting in low rendering efficiency. There is currently no solution to this problem. SUMMARY
[0005] The main purpose of the present application is to provide a Gaussian point cloud-based rendering method and device, a computer device and a storage medium to solve the technical problem that the existing technology cannot meet the huge demand of 3D Gaussian sub-rendering technology for data storage and rendering speed, resulting in low rendering efficiency.
[0006] To achieve the above object, the application provides a rendering method based on Gaussian point cloud, comprising: at a first time, determining a current position and a current forward direction of a view frustum; based on the current position of the view frustum, acquiring k-layer nodes in the current forward direction of the view frustum; according to the distance relationship between the k-layer nodes and the current position of the view frustum, rendering the k-layer nodes with different levels of detail respectively, wherein the closer the node layer to the current position of the view frustum, the higher the loaded rendering definition.
[0007] Further, based on the current position of the view frustum, the k-layer nodes in the current forward direction of the view frustum are acquired; according to the distance relationship between the k-layer nodes and the current position of the view frustum, the k-layer nodes are loaded and rendered with different levels of detail respectively, comprising: determining a plurality of first nodes in the current forward direction which are the nearest neighbors of the current position of the view frustum, and loading and rendering the plurality of first nodes with a first level of detail; determining a plurality of second nodes in the current forward direction which are the second nearest neighbors of the current position of the view frustum, and loading and rendering the plurality of second nodes with a second level of detail; determining a plurality of third nodes in the current forward direction which are the third nearest neighbors of the current position of the view frustum, and loading and rendering the plurality of third nodes with a third level of detail, until a plurality of k-th nodes are determined and loaded and rendered with a k-th level of detail, wherein the levels of detail from the first level of detail to the k-th level of detail gradually decrease.
[0008] Further, after rendering the k-layer nodes with different levels of detail according to the distance relationship between the k-layer nodes and the current position of the view frustum, the rendering method further comprises: based on the current position of the view frustum, dividing and radiating the scene range outward to obtain k-layer annular nodes centered on the current position of the view frustum; according to the distance relationship between the k-layer annular nodes and the current position of the view frustum, determining different levels of detail corresponding to the k-layer annular nodes respectively, and preloading data of the k-layer annular nodes according to the different levels of detail corresponding to the k-layer annular nodes respectively, for subsequent rendering.
[0009] Further, after rendering the k-layer nodes with different levels of detail according to the distance relationship between the k-layer nodes and the current location of the view frustum, the rendering method further comprises: obtaining historical trajectory data of the view frustum, and predicting a predicted location and a predicted forward direction of the view frustum at a second time according to the historical trajectory data of the view frustum; obtaining k-layer predicted nodes in the predicted forward direction of the view frustum based on the predicted location of the view frustum, and determining different levels of detail corresponding to the k-layer predicted nodes according to the distance relationship between the k-layer predicted nodes and the predicted location of the view frustum, and preloading data of the k-layer predicted nodes according to the different levels of detail corresponding to the k-layer predicted nodes, so as to render high in the future.
[0010] Further, after rendering the k-layer nodes with different levels of detail according to the distance relationship between the k-layer nodes and the current location of the view frustum, the rendering method further comprises: re-executing the step of determining the current location and the current forward direction of the view frustum at a second time, and the second time is first preset time length away from the first time.
[0011] Further, after rendering the k-layer nodes with different levels of detail according to the distance relationship between the k-layer nodes and the current location of the view frustum, the rendering method further comprises: deleting the data loaded at the first time at a third time, wherein the third time is second preset time length away from the first time.
[0012] Further, after rendering the k-layer nodes with different levels of detail according to the distance relationship between the k-layer nodes and the current location of the view frustum, the rendering method further comprises: obtaining memory parameters of a target device, and dynamically determining a first node number based on the memory parameters, wherein the target device is used to load and render nodes; dynamically determining a first weight value of each node according to a dynamic relationship between the node and the view frustum, wherein the dynamic relationship includes: a positional relationship between the node and the current location of the view frustum, a positional relationship between the node and a predicted location of the view frustum, an angle relationship between the node and a current forward direction of the view frustum, and an angle relationship between the node and a predicted forward direction of the view frustum; determining a first target node that needs to be cached according to the first node number and the first weight value of each node, and caching rendering data of the first target node.
[0013] Further, after rendering the k-layer nodes with different levels of detail according to the distance relationship between the k-layer nodes and the current location of the view frustum, the rendering method further comprises: obtaining a memory parameter of a target device, and dynamically determining a second number of nodes based on the memory parameter, wherein the target device is used to load and render the nodes; dynamically determining a second weight value of each node according to a dynamic relationship between each node and the view frustum, wherein the dynamic relationship comprises: a positional relationship between the node and the current location of the view frustum, a positional relationship between the node and a predicted location of the view frustum, an angular relationship between the node and a current forward direction of the view frustum, and an angular relationship between the node and a predicted forward direction of the view frustum; determining a second target node that needs to be preloaded with data according to the second number of nodes and the second weight value of each node, so as to pre-load data for the second target node.
[0014] The application also provides a rendering device based on a Gaussian point cloud, comprising: a determination unit configured to determine a current location and a current forward direction of a view frustum at a first time; an acquisition unit configured to acquire k-layer nodes in the current forward direction of the view frustum based on the current location of the view frustum; and a rendering unit configured to render the k-layer nodes with different levels of detail according to a distance relationship between the k-layer nodes and the current location of the view frustum, wherein the closer the node layer is to the current location of the view frustum, the higher the level of detail of the loaded and rendered node layer.
[0015] Further, the rendering device further comprises: a division unit configured to divide a scene range based on the current location of the view frustum after rendering the k-layer nodes with different levels of detail according to the distance relationship between the k-layer nodes and the current location of the view frustum, to obtain k-layer annular nodes centered on the current location of the view frustum; and a first preloading unit configured to determine different levels of detail corresponding to the k-layer annular nodes according to a distance relationship between the k-layer annular nodes and the current location of the view frustum, and pre-load data for the k-layer annular nodes according to the different levels of detail corresponding to the k-layer annular nodes, so as to facilitate subsequent rendering.
[0016] Further, the rendering device further comprises a prediction unit, configured to obtain historical trajectory data of the view frustum after rendering the k-layer nodes with different levels of detail according to the distance relationship between the k-layer nodes and the current position of the view frustum, and predict a predicted position and a predicted forward direction of the view frustum at a second time according to the historical trajectory data of the view frustum.
[0017] Further, the rendering device further comprises an execution unit, configured to re-perform the step of determining the current position and the current forward direction of the view frustum at a second time after rendering the k-layer nodes with different levels of detail according to the distance relationship between the k-layer nodes and the current position of the view frustum, the second time being a first preset time length away from the first time interval.
[0018] Further, the rendering device further comprises a deletion unit, configured to delete the data loaded at the first time after rendering the k-layer nodes with different levels of detail according to the distance relationship between the k-layer nodes and the current position of the view frustum at a third time, the third time being a second preset time length away from the first time interval.
[0019] Further, the rendering device further comprises a first memory unit, configured to obtain a memory parameter of a target device after rendering the k-layer nodes with different levels of detail according to the distance relationship between the k-layer nodes and the current position of the view frustum, and dynamically determine a first number of nodes based on the memory parameter, the target device being configured to load and render the nodes; a first weight unit, configured to dynamically determine a first weight value of each node according to a dynamic relationship between the node and the view frustum, the dynamic relationship including a positional relationship between the node and the current position of the view frustum, a positional relationship between the node and a predicted position of the view frustum, an angular relationship between the node and a current forward direction of the view frustum, and an angular relationship between the node and a predicted forward direction of the view frustum; and a cache unit, configured to determine a first target node that needs to be cached according to the first number of nodes and the first weight value of each node, and cache rendering data of the first target node.
[0020] Further, the rendering device further comprises: a second memory unit, configured to obtain a memory parameter of a target device after rendering the k-layer nodes with different levels of detail according to the distance relationship between the k-layer nodes and the current location of the view frustum, and determine a second number of nodes based on the memory parameter, wherein the target device is used to load and render the nodes; a second weight unit, configured to dynamically determine a second weight value of each node according to a dynamic relationship between each node and the view frustum, wherein the dynamic relationship comprises a positional relationship between the node and the current location of the view frustum, a positional relationship between the node and a predicted location of the view frustum, an angle relationship between the node and a current forward direction of the view frustum, and an angle relationship between the node and a predicted forward direction of the view frustum; and a third preloading unit, configured to determine a second target node that needs to be preloaded according to the second number of nodes and the second weight value of each node, and perform data preloading on the second target node.
[0021] The application further provides a computer device comprising a memory and a processor, wherein the memory stores a computer program, and the processor implements the steps of the method according to any one of the preceding embodiments when executing the computer program.
[0022] The application further provides a computer readable storage medium, which stores a computer program, and the computer program implements the steps of the method according to any one of the preceding embodiments when executed by a processor.
[0023] In summary, the application provides a rendering method based on Gaussian point clouds, which determines the current location and the current forward direction of the view frustum at a first time, and obtains k-layer nodes in the forward direction of the view frustum according to the current location and the forward direction of the view frustum, thereby realizing hierarchical representation of the scene. Next, the k-layer nodes are rendered with different levels of detail according to the distance relationship between the k-layer nodes and the current location of the view frustum. Specifically, the node layers closer to the current location of the view frustum are rendered with higher levels of detail, while the node layers farther away from the current location of the view frustum are rendered with lower levels of detail. This method dynamically adjusts the levels of detail, realizes fine display of the area of interest of the observer, reduces the rendering complexity in the area far from the view, effectively solves the challenges of data storage and rendering speed in the 3D Gaussian sub-rendering technology, improves the rendering efficiency, and provides better performance for real-time rendering.
[0024] In addition, the system pre-loads relevant node data before rendering through a pre-loading strategy to ensure that the required data can be obtained in real time during rendering, thereby avoiding data loss. In combination with trajectory prediction technology, the system predicts the position and forward direction of the view frustum at a future time based on historical trajectory data of the view frustum, thereby pre-loading and rendering the corresponding nodes, and avoiding data loss caused by rapid movement of the view frustum.
[0025] In addition, the node caching technology effectively controls the consumption of memory and rendering performance through intelligent memory management and dynamic node selection strategy, and ensures that the system remains stable in large scene rendering. BRIEF DESCRIPTION OF DRAWINGS
[0026] FIG. 1 is a schematic diagram of the steps of a rendering method based on Gaussian point clouds according to an embodiment of the present application;
[0027] FIG. 2 is a related schematic diagram of the rendering method based on Gaussian point clouds according to an embodiment of the present application;
[0028] FIG. 3 is a schematic diagram of the steps of a rendering method based on Gaussian point clouds according to an embodiment of the present application;
[0029] FIG. 4 is a structural framework diagram of a rendering device based on Gaussian point clouds according to an embodiment of the present application;
[0030] FIG. 5 is a structural schematic diagram of a computer device according to an embodiment of the present application.
[0031] The implementation, functional features and advantages of the present application will be further described with reference to the accompanying drawings in conjunction with embodiments. DETAILED DESCRIPTION
[0032] In order to make the purpose, technical solutions and advantages of the present application more clear, the present application will be further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and not to limit the present application.
[0033] Referring to FIG. 1, the present embodiment provides a rendering method based on Gaussian point clouds, comprising:
[0034] S1, at a first time, determining the current position and the current forward direction of the view frustum.
[0035] S2, based on the current position of the view frustum, obtaining k-layer nodes in the current forward direction of the view frustum.
[0036] S3, according to the distance relationship between the k-layer nodes and the current position of the view frustum, rendering the k-layer nodes with different levels of clarity, respectively, wherein the closer the node layer to the current position of the view frustum, the higher the clarity of the loaded rendering.
[0037] It should be noted that the frustum is a concept used to describe the geometry of the visible area in the visual system. The frustum can be used to represent the spatial range covered by the light rays emanating from the observer (such as a camera or an eye) position. It is usually a three-dimensional geometric body, which shape is similar to a cone or a pyramid. The tip of the frustum is the position of the observer, and the bottom represents the farthest distance that the observer can see. The side of the frustum represents the field of view of the observer, while the top and bottom represent the boundaries of the field of view. In the field of 3D Gaussian sub-rendering, the frustum is often used to determine which objects will be rendered to the screen.
[0038] That is, by determining the current position and the current forward direction of the frustum at the first time, and obtaining the k-layer nodes in the forward direction of the frustum according to the current position and the forward direction of the frustum, the hierarchical representation of the scene is realized. Next, according to the proximity relationship between these k-layer nodes and the current position of the frustum, different levels of detail are loaded and rendered. Specifically, the node layer closer to the current position of the frustum will be loaded and rendered with higher clarity, while the node layer farther away will be loaded and rendered with lower clarity. This method dynamically adjusts the level of detail, realizes the fine display of the observer's focus area, and at the same time reduces the rendering complexity in the far field of view, effectively solves the challenges of data storage and rendering speed in the 3D Gaussian sub-rendering technology, improves the rendering efficiency, and provides better performance for real-time rendering.
[0039] For example, as shown in FIG. 2, a plurality of first nodes nearest neighbor to the current position of the frustum in the current forward direction are determined, for example, nodes with a distance less than 1 from the current position of the frustum, and the plurality of first nodes are loaded and rendered with a first level of detail; a plurality of second nodes next nearest neighbor to the current position of the frustum in the current forward direction are determined, for example, nodes with a distance greater than 1 and less than 2 from the current position of the frustum, and the plurality of second nodes are loaded and rendered with a second level of detail; a plurality of third nodes again nearest neighbor to the current position of the frustum in the current forward direction are determined, for example, nodes with a distance greater than 2 and less than 3 from the current position of the frustum, and the plurality of third nodes are loaded and rendered with a third level of detail, until a plurality of k-th nodes are determined and the plurality of k-th nodes are loaded and rendered with a k-th level of detail, wherein the clarity of the first level of detail to the k-th level of detail gradually decreases.
[0040] In one example, as shown in FIG. 3, after rendering the k-layer nodes with different levels of detail according to their distance from the current location of the frustum, the rendering method further includes:
[0041] S6, based on the current location of the frustum, dividing the scene range outwardly to obtain k-layer ring nodes centered on the current location of the frustum; according to the distance between the k-layer ring nodes and the current location of the frustum, determining different levels of detail corresponding to the k-layer ring nodes respectively, and preloading data of the k-layer ring nodes according to the different levels of detail corresponding to the k-layer ring nodes respectively, for subsequent rendering.
[0042] It should be noted that loading refers to the process of transferring data from storage media (such as hard disk, network, etc.) to computer memory or graphics processing unit (GPU). In this embodiment, loading refers to loading point cloud data, 3D models or scene data from storage devices into computer memory for subsequent rendering processing. In addition, loading can also involve data chunking, hierarchical loading and other strategies to reduce memory and video memory consumption.
[0043] It should be noted that rendering is the process of displaying data loaded into memory in the form of an image on the screen. In this embodiment, rendering includes converting scene data into pixels on the screen and applying lighting, texture and other effects to ultimately present an image to the user.
[0044] In this example, the rendering method further optimizes scene rendering performance after rendering the k-layer nodes with different levels of detail. First, based on the current location of the frustum, the scene range is divided outwardly to obtain k-layer ring nodes centered on the current location of the frustum. This step expands the data loading range to more comprehensively cover potential visual attention areas. Next, according to the distance between these k-layer ring nodes and the current location of the frustum, the different levels of detail corresponding to each ring node are determined. This step allows ring nodes close to the frustum to use higher resolution, while ring nodes far away may use lower resolution. Most importantly, data is preloaded according to the different levels of detail corresponding to the k-layer ring nodes respectively. Through preloading, the system ensures that there is enough complete scene data available when the frustum rotates significantly. This helps to reduce the likelihood of data loss during rapid movement or rotation, improving the stability and smoothness of the overall rendering.
[0045] Through these steps, the rendering method achieves high-detail local rendering while ensuring that the overall scene remains complete and detailed during dynamic changes through preloading data, providing users with a better visual experience.
[0046] In one example, as shown in FIG. 3, after rendering the k-layer nodes with different levels of detail according to the distance relationship between the k-layer nodes and the current location of the view frustum, the rendering method further comprises:
[0047] S7, obtaining historical trajectory data of the view frustum, and predicting a predicted location and a predicted forward direction of the view frustum at a second time according to the historical trajectory data of the view frustum; based on the predicted location of the view frustum, obtaining k-layer prediction nodes in the predicted forward direction of the view frustum, and determining different levels of detail corresponding to the k-layer prediction nodes according to the distance relationship between the k-layer prediction nodes and the predicted location of the view frustum, and preloading data of the k-layer prediction nodes according to the different levels of detail corresponding to the k-layer prediction nodes, for subsequent rendering, the second time being a next time of the first time, for example, the second time is separated from the first time by a first preset time length, which can be a time unit (seconds, milliseconds, etc.).
[0048] In this example, the rendering method not only includes loading and rendering of the k-layer nodes, but also includes prediction of the moving trajectory of the view frustum and the key step of early data buffering. First, the historical trajectory data of the view frustum is introduced, and the predicted location and the predicted forward direction of the view frustum at the second time are predicted by analyzing these data. This step lays the foundation for early data buffering. Secondly, based on the predicted location of the view frustum, the k-layer prediction nodes in the predicted forward direction of the view frustum are obtained. Then, according to the distance relationship between these prediction nodes and the predicted location, the different levels of detail corresponding to each prediction node are determined. Further, according to different levels of detail, data preloading is performed on these prediction nodes, which provides sufficient data support for the subsequent rendering process.
[0049] Through these steps, the rendering method not only realizes local rendering with high detail, but also greatly reduces the probability of data loss in the view frustum by early data buffering, thereby further improving the stability and continuity of the rendering effect. The whole rendering method not only focuses on real-time performance, but also fully considers the prediction and optimization of dynamic scenes.
[0050] In one example, after rendering the k-layer nodes with different levels of detail according to the distance relationship between the k-layer nodes and the current location of the view frustum, the rendering method further comprises: at a second time, re-executing the step of determining the current location and the current forward direction of the view frustum, the second time being a next time of the first time, for example, the second time is separated from the first time by a first preset time length, which can be a time unit (seconds, milliseconds, etc.).
[0051] In this example, the rendering method adds the step of re-executing the determination of the view frustum position and the forward direction at the second time after the loading and rendering of the k-layer nodes at different levels of detail. This design ensures the integrity of the entire process, continuously adapts to changes in the view frustum, and ensures timely updates of rendering data.
[0052] In one example, after rendering the k-layer nodes at different levels of detail according to their distance from the current position of the view frustum, the rendering method further includes deleting the data loaded at the first time at a third time, the third time being separated from the first time by a second preset time length, which can be 1 hour, 1 minute, etc.
[0053] In this example, the rendering method does not immediately delete the loading data obtained after the node is loaded, but instead deletes it after a second preset time length. The purpose of this design is to prevent the view frustum from quickly retreating, causing the loading and rendering work to be untimely. At the same time, through the caching mechanism, the node data that is removed from the layered range of the view frustum is gradually and progressively deleted after a preset time length. This maximally reduces the retention of outdated data, improving the memory utilization efficiency and overall performance of the rendering system.
[0054] In one example, as shown in FIG. 3, after rendering the k-layer nodes at different levels of detail according to their distance from the current position of the view frustum, the rendering method further includes:
[0055] S4, obtaining memory parameters of a target device, and dynamically determining a first number of nodes based on the memory parameters, wherein the target device is used to load and render the nodes; dynamically determining a first weight value of each node according to a dynamic relationship between the node and the view frustum, wherein the dynamic relationship includes a positional relationship between the node and the current position of the view frustum, and an angular relationship between the node and the current forward direction of the view frustum; determining nodes that need to be cached for data caching based on the first number of nodes and the first weight value of each node, and performing caching processing on rendering data of the nodes that need to be cached for data caching.
[0056] In this example, the rendering method introduces an intelligent memory management and dynamic node caching strategy to maintain stable memory consumption while flexibly controlling rendering performance consumption. First, the memory parameters of the target device are obtained, and the first number of nodes is dynamically determined based on these parameters, which is the basis for loading and rendering processing. The available memory size of the device is obtained in advance and used as a reference value for dynamically adjusting the number of cached nodes.
[0057] Then, according to the positional relationship of each node with the current frustum position and the angular relationship of the node with the current forward direction of the frustum, and the positional relationship of each node with the predicted frustum position and the angular relationship of the node with the predicted forward direction of the frustum, the first weight value of each node is dynamically determined. In the execution process, the calculation of the weight value is based on the distance and angular relationship of the node with the frustum position.
[0058] Then, the system intelligently determines the nodes that need to be cached according to the first number of nodes and the first weight value of each node. This step actually dynamically adjusts the number of cached nodes, flexibly adjusts according to the available memory size T of the device, and ensures stable memory consumption. Nodes with low weight values may be directly deleted without caching, thereby further controlling the consumption of rendering display performance.
[0059] This comprehensive intelligent node selection and caching strategy aims to achieve efficient rendering under limited memory resources. By dynamically adjusting the number of cached nodes and optimizing the caching decision based on the weight value, the system can maximize the rendering performance and overall user experience while maintaining stable memory consumption.
[0060] In one example, as shown in FIG. 3, after rendering the k-layer nodes with different levels of detail according to the distance relationship of the k-layer nodes with the current position of the frustum, the rendering method further includes:
[0061] S5, obtaining the memory parameters of the target device, and dynamically determining the second number of nodes based on the memory parameters, wherein the target device is used to load and render the nodes; dynamically determining the second weight value of each node according to the dynamic relationship of each node with the frustum, wherein the dynamic relationship includes: the positional relationship of the node with the current position of the frustum, the angular relationship of the node with the current forward direction of the frustum, and the positional relationship of the node with the predicted position of the frustum, and the angular relationship of the node with the predicted forward direction of the frustum; determining the nodes that need to be preloaded rendered according to the second number of nodes and the second weight value of each node, and performing preloading rendering processing on the nodes that need to be preloaded rendered.
[0062] In this example, the rendering method intelligently determines the nodes that need to be preloaded rendered according to the second number of nodes and the second weight value of each node. This intelligent node selection strategy can dynamically adjust the number of preloaded nodes according to the available memory size T of the device, ensuring that the rendering performance is maximized while maintaining stable memory consumption. Nodes with low weight values may be excluded from preloading rendering to further optimize memory utilization and control the consumption of rendering display performance.
[0063] In summary, the embodiment provides a rendering method based on Gaussian point cloud, which effectively solves the problem of scene data loss in large-scale Gaussian point cloud rendering. This method ensures that there is a complete high-definition scene around the view frustum at any time, even when the view frustum moves quickly or rotates significantly, the data integrity and sufficient details can be maintained.
[0064] Firstly, through the pre-loading strategy, the system loads the relevant node data in advance before rendering to ensure that the required data can be obtained immediately during rendering, avoiding the problem of data loss. Combined with trajectory prediction technology, the system predicts the position and forward direction of the view frustum at future time based on the historical trajectory data of the view frustum, thereby loading and rendering the corresponding nodes in advance, avoiding data loss caused by rapid movement of the view frustum.
[0065] In addition, through a suitable layered and block data loading strategy, i.e. LOD layering, the system loads and renders different levels of clarity based on the distance and angle relationship of the nodes during rendering. This strategy ensures the quality of data within the view frustum and optimizes the rendering display performance and effect. The node caching technology effectively controls the consumption of memory and rendering performance through intelligent memory management and dynamic node selection strategy, ensuring the stable operation of the system in large scene rendering.
[0066] The main technical innovation lies in the integration of pre-loading, trajectory prediction, caching strategy, and LOD layering, which builds a complete large-scale Gaussian point cloud seamless loading and rendering display process. At the same time, the control strategy of memory consumption and rendering performance provides higher adaptability and stability for the system. This method not only realizes seamless and efficient rendering, but also provides an effective solution for real-time visualization of large-scale Gaussian point cloud, with wide application prospects.
[0067] Referring to FIG. 4, the embodiment provides a rendering device based on Gaussian point cloud, comprising:
[0068] The determination unit 1 is configured to determine the current position and the current forward direction of the view frustum at the first time.
[0069] The acquisition unit 2 is configured to acquire the k-layer nodes in the current forward direction of the view frustum based on the current position of the view frustum.
[0070] The rendering unit 3 is configured to render the k-layer nodes with different levels of clarity according to the distance relationship between the k-layer nodes and the current position of the view frustum, wherein the closer the node layer to the current position of the view frustum, the higher the clarity of the loaded and rendered node layer.
[0071] In this embodiment, the specific implementation of each unit in the above device embodiment is described above in the method embodiment, which will not be repeated here.
[0072] Referring to FIG. 5, the computer device in the embodiment of the application can be a server, and the internal structure thereof can be as shown in FIG. 5. The computer device includes a processor, a memory, a display screen, an input device, a network interface and a database connected through a system bus. The processor of the computer device is configured to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program and a database. The internal memory provides an environment for the operating system and the computer program in the non-volatile storage medium. The database of the computer device is configured to store corresponding data in the embodiment. The network interface of the computer device is configured to communicate with an external terminal through a network connection. The computer program is executed by the processor to implement the above method.
[0073] Those skilled in the art can understand that the structure shown in FIG. 5 is only a block diagram of part of the structure related to the scheme of the application, and does not constitute a limitation on the computer device to which the scheme of the application is applied.
[0074] An embodiment of the application further provides a computer readable storage medium having a computer program stored thereon, and the computer program is executed by a processor to implement the above method. It can be understood that the computer readable storage medium in the embodiment of the application can be a volatile readable storage medium or a non-volatile readable storage medium.
[0075] In summary, the application provides a rendering method and device based on Gaussian point cloud, a computer device and a storage medium, which effectively solves the problem of missing scene data in large-scale Gaussian point cloud rendering. This method ensures that there is a complete high-definition scene around the view frustum at any time, even when the view frustum moves quickly or rotates greatly, the data integrity and sufficient details can be maintained.
[0076] First, through the preloading strategy, the system loads the related node data in advance before rendering to ensure that the required data can be obtained immediately at the time of rendering, avoiding the problem of data loss. Combined with the trajectory prediction technology, the system predicts the position and forward direction of the view frustum at future time according to the historical trajectory data of the view frustum, so as to load and render the corresponding nodes in advance, avoiding the data loss caused by the rapid movement of the view frustum.
[0077] In addition, through a suitable hierarchical chunked data loading strategy, i.e. LOD layering, the system loads and renders different levels of detail according to the distance and angle relationship of nodes during rendering. This strategy guarantees the quality of data within the view frustum, optimizes the rendering display performance and effect. The node caching technology effectively controls the consumption of memory and rendering performance through intelligent memory management and dynamic node selection strategy, ensuring the system to maintain stable operation in large scene rendering.
[0078] The main technical innovation is to integrate preloading, trajectory prediction, caching strategy, and LOD layering, to build a complete large-scale Gaussian point cloud seamless loading and rendering display process. At the same time, the control strategy of memory consumption and rendering performance provides the system with higher adaptability and stability. This method not only realizes seamless and efficient rendering, but also provides an effective solution for real-time visualization of large-scale Gaussian point clouds, with wide application prospects.
[0079] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer readable storage medium. When the computer program is executed, it can include the processes of the above-mentioned embodiments. Any reference to memory, storage, database or other medium provided by the present application and used in the embodiments can include non-volatile and / or volatile memory. Non-volatile memory can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM) or flash memory. Volatile memory can include random access memory (RAM) or external cache memory. As an illustration but not limitation, RAM is available in various forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (SSRSDRAM), enhanced SDRAM (ESDRAM), synchronous link (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM, etc.
[0080] It should be noted that, in the present document, the terms "comprises", "comprising", or any other variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but can also include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by "comprises a", "comprising", or "comprises" does not, without further restriction, exclude the existence of additional elements of the process, method, article, or apparatus that comprises the element.
[0081] The preferred embodiments of the present application have been described above with the intent to enable those skilled in the art to make and use it. Various modifications to these embodiments will occur to those skilled in the art and are intended to be encompassed by the appended claims. Nothing in this specification should be considered as presenting a restriction to the scope of the present application as defined in the appended claims.
Claims
1. A rendering method based on Gaussian point cloud, characterized in that: include: At the first moment, determine the current position and current forward direction of the view cone; Based on the current position of the view cone, obtain k layers of nodes in the current forward direction of the view cone; Rendering the k-layer nodes using different levels of detail resolution based on the distance between the k-layer nodes and the current location of the viewing cone, wherein the node layers closer to the current location of the viewing cone have higher resolutions for rendering; Among them, after rendering the k-layer nodes with different detail levels of clarity according to the distance relationship between the k-layer nodes and the current position of the viewing cone, the rendering method also includes: obtaining the memory parameters of the target device and dynamically determining the first node quantity based on the memory parameters, wherein the target device is used to load and render the nodes; dynamically determining the first weight value of each node according to the dynamic relationship between each node and the viewing cone, wherein the dynamic relationship includes: the positional relationship between the node and the current position of the viewing cone, the positional relationship between the node and the predicted position of the viewing cone, the angular relationship between the node and the current forward direction of the viewing cone, and the angular relationship between the node and the predicted forward direction of the viewing cone; determining the first target node that needs to be cached according to the first node quantity and the first weight value of each node, and caching the rendering data of the first target node.
2. The rendering method according to claim 1, wherein: After rendering the k-layer nodes using different detail levels of clarity according to the distance relationship between the k-layer nodes and the current location of the viewing cone, the rendering method further includes: Divide the scene range radiating outward based on the current position of the viewing cone to obtain k layers of ring nodes centered on the current position of the viewing cone; According to the distance relationship between the k-layer ring node and the current position of the viewing cone, the different detail levels corresponding to the k-layer ring nodes are determined, and according to the different detail levels corresponding to the k-layer ring nodes, data of the k-layer ring nodes are preloaded for subsequent rendering.
3. The rendering method according to claim 1, wherein: After rendering the k-layer nodes using different detail levels of clarity according to the distance relationship between the k-layer nodes and the current location of the viewing cone, the rendering method further includes: Acquiring historical trajectory data of the view cone, and predicting a predicted location and a predicted forward direction of the view cone at a second moment based on the historical trajectory data of the view cone; Based on the predicted position of the view cone, k layers of prediction nodes in the predicted forward direction of the view cone are obtained, and according to the distance relationship between the k layers of prediction nodes and the predicted position of the view cone, different levels of detail corresponding to the k layers of prediction nodes are determined, and according to the different levels of detail corresponding to the k layers of prediction nodes, data of the k layers of prediction nodes are preloaded for subsequent rendering.
4. The rendering method according to claim 1, wherein: After rendering the k-layer nodes with different levels of detail clarity according to the distance relationship between the k-layer nodes and the current position of the viewing cone, the rendering method also includes: re-executing the step of determining the current position and current forward direction of the viewing cone at a second moment, and the second moment is separated from the first time interval by a first preset time length.
5. The rendering method according to claim 1, wherein: After rendering the k-layer nodes with different levels of detail clarity according to the distance relationship between the k-layer nodes and the current position of the viewing cone, the rendering method further includes: at a third moment, deleting the data loaded at the first moment, wherein the third moment is separated from the first time interval by a second preset time length.
6. The rendering method according to claim 2, wherein: After rendering the k-layer nodes using different detail levels of clarity according to the distance relationship between the k-layer nodes and the current location of the viewing cone, the rendering method further includes: Obtaining memory parameters of a target device, and dynamically determining the number of second nodes based on the memory parameters, wherein the target device is used to load and render the nodes; Dynamically determining a second weight value for each node based on a dynamic relationship between each node and the view cone, wherein the dynamic relationship includes: a positional relationship between the node and a current position of the view cone, a positional relationship between the node and a predicted position of the view cone, an angular relationship between the node and a current forward direction of the view cone, and an angular relationship between the node and a predicted forward direction of the view cone; According to the number of the second nodes and the second weight value of each node, a second target node on which data preloading is required is determined, so as to perform data preloading processing on the second target node.
7. A rendering device based on Gaussian point cloud, characterized in that: include: a determining unit, configured to determine, at a first moment, a current position and a current forward direction of the viewing cone; an acquiring unit, configured to acquire k layers of nodes in a current forward direction of the view cone based on a current position of the view cone; a rendering unit, configured to load and render the k-layer nodes using different levels of detail resolution based on a distance relationship between the k-layer nodes and the current position of the viewing cone, wherein the node layer closer to the current position of the viewing cone is loaded and rendered with a higher resolution; Among them, the rendering device also includes: a first memory unit, which is used to obtain the memory parameters of the target device after rendering the k-layer nodes with different detail levels of clarity according to the distance relationship between the k-layer nodes and the current position of the viewing cone, and dynamically determine the first node quantity based on the memory parameters, wherein the target device is used to load and render the nodes; a first weight unit, which is used to dynamically determine the first weight value of each node according to the dynamic relationship between each node and the viewing cone, wherein the dynamic relationship includes: the position relationship between the node and the current position of the viewing cone, the position relationship between the node and the predicted position of the viewing cone, the angular relationship between the node and the current forward direction of the viewing cone, and the angular relationship between the node and the predicted forward direction of the viewing cone; a cache unit, which determines the first target node that needs to be cached according to the first number of nodes and the first weight value of each node, and caches the rendering data of the first target node.
8. The rendering device according to claim 7, wherein: The rendering device further includes: a partitioning unit configured to render the k-layer nodes using different levels of detail according to a distance relationship between the k-layer nodes and the current position of the viewing cone, and then partition the scene range radiating outward based on the current position of the viewing cone to obtain k-layer ring nodes centered on the current position of the viewing cone; The first preloading unit is used to determine the different detail levels corresponding to the k-layer ring nodes according to the distance relationship between the k-layer ring nodes and the current position of the viewing cone, and preload data for the k-layer ring nodes according to the different detail levels corresponding to the k-layer ring nodes for subsequent rendering.
9. The rendering device according to claim 7, wherein: The rendering device further includes: a prediction unit configured to render the k-layer nodes using different levels of detail according to a distance relationship between the k-layer nodes and the current position of the view frustum, obtain historical trajectory data of the view frustum, and predict a predicted position and a predicted forward direction of the view frustum at a second moment based on the historical trajectory data of the view frustum; The second preloading unit is used to obtain k-layer prediction nodes in the predicted forward direction of the view cone based on the predicted position of the view cone, and determine the different detail levels corresponding to the k-layer prediction nodes according to the distance relationship between the k-layer prediction nodes and the predicted position of the view cone, and preload data for the k-layer prediction nodes according to the different detail levels corresponding to the k-layer prediction nodes for subsequent rendering.
10. The rendering device according to claim 7, wherein: The rendering device further includes: An execution unit is used to re-execute the step of determining the current position and current forward direction of the viewing cone at a second moment after the k-layer nodes are rendered using different levels of detail clarity based on the distance relationship between the k-layer nodes and the current position of the viewing cone, and the second moment is separated from the first time by a first preset time length.
11. The rendering device according to claim 7, wherein: The rendering device further includes: The deleting unit is used to delete the data loaded at the first moment at a third moment after the k-layer nodes are rendered with different levels of detail clarity based on the distance relationship between the k-layer nodes and the current position of the viewing cone, wherein the third moment is separated from the first time interval by a second preset time length.
12. The rendering device according to claim 8, wherein The rendering device further includes: a second memory unit, configured to obtain memory parameters of a target device after rendering the k-layer nodes using different levels of detail resolution according to a distance relationship between the k-layer nodes and a current position of the viewing frustum, and dynamically determine the number of second nodes based on the memory parameters, wherein the target device is configured to load and render the nodes; a second weighting unit, configured to dynamically determine a second weight value of each node based on a dynamic relationship between each node and the view cone, wherein the dynamic relationship includes: a positional relationship between the node and a current position of the view cone, a positional relationship between the node and a predicted position of the view cone, an angular relationship between the node and a current forward direction of the view cone, and an angular relationship between the node and a predicted forward direction of the view cone; The third preloading unit is used to determine the second target node that needs to be preloaded with data according to the number of the second nodes and the second weight value of each node, so as to perform data preloading processing on the second target node.
13. A computer device comprising a memory and a processor, wherein a computer program is stored in the memory, wherein: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 6 are implemented.
Citation Information
Patent Citations
Point cloud scene rendering method, device and equipment
CN111179394A
Three-dimensional model graph rendering method, electronic equipment and readable storage medium thereof
CN112529994A
Massive true three-dimensional model loading optimization method
CN117372599A
Rendering method and device based on Gaussian point cloud, computer equipment and storage medium
CN118037924A
Continuous and dynamic level of detail for efficient point cloud object rendering
US20140198097A1