Rendering method, system and device for three-dimensional object and medium
By employing a two-layer occlusion culling technique involving clusters and families on mobile devices, the problems of over-drawing and insufficient frame rate in high-precision vehicle model rendering were solved, achieving high-performance rendering results.
Patent Information
- Application Number
- CN202410572750.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-05-09
- Publication Date
- 2025-11-11
AI Technical Summary
When rendering high-precision 3D objects, especially vehicle models, mobile devices suffer from over-drawing and insufficient frame rate. Traditional methods cannot effectively remove some visible objects, resulting in limited computing power.
A two-layer occlusion culling technique based on clusters and families is adopted. First, occluded families are culled by querying the occlusion of families, and then occluded clusters are culled by querying the occlusion of clusters, thereby reducing the rendering pressure and improving the frame rate.
By employing a two-layer occlusion culling operation, the number of triangles drawn is significantly reduced, alleviating drawing pressure, increasing the drawing frame rate, and achieving high-performance rendering.
Smart Images

Figure CN120931784A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer graphics, and more particularly to methods, systems, apparatus, and computer-readable storage media for rendering three-dimensional objects, especially high-precision vehicle models. Background Technology
[0002] With the rapid development of computer graphics and computer vision, 3D visualization has become increasingly widespread and realistic. 3D visualization uses 3D rendering technology to generate 2D effects from digital 3D scenes.
[0003] In the classic graphics forward rendering pipeline, a large number of pixels are discarded after undergoing complex calculations in the pipeline, which can lead to overdraw problems.
[0004] Currently, to address this issue, traditional rendering methods used on mobile devices only consider object culling, which can handle the culling of completely invisible objects, thus reducing rendering pressure. However, partially visible objects are still fully rendered, which still leads to overdraw.
[0005] In addition, mobile devices have limited rendering and computing power for 3D objects, especially vehicle models composed of high-precision triangles. When using traditional methods for occlusion culling, they cannot achieve a sufficient frame rate due to limitations in device computing power.
[0006] Therefore, in order to further reduce the rendering pressure in 3D rendering, improve the rendering frame rate, and achieve high-performance rendering on mobile devices, it is desirable to provide an improved rendering scheme for 3D objects or models. Summary of the Invention
[0007] This summary is provided to introduce, in a simplified form, some concepts that will be further described in the following detailed description. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to help determine the scope of the claimed subject matter.
[0008] To address the above problems, according to a first aspect of the present invention, a rendering method for a three-dimensional object is provided, the method comprising: determining the visibility of the three-dimensional object in a scene, wherein the mesh volume of the three-dimensional object is constructed into multiple families, each family including multiple clusters; in response to determining that the three-dimensional object is visible, performing an occlusion query on the multiple families of the three-dimensional object to remove occluded families, to obtain a set of visible families for the three-dimensional object; performing an occlusion query on the multiple clusters in each visible family in the set of visible families to remove occluded clusters, to obtain a set of visible clusters for the three-dimensional object; and rendering the three-dimensional object based on the set of visible clusters.
[0009] In the technical solution of this invention, by constructing the object mesh as clusters and families, and by performing two culling operations during occlusion query by first querying the occlusion of the families and then querying the occlusion of the clusters, the rendering pressure can be greatly reduced, the rendering frame rate can be improved, and high-performance rendering can be achieved on mobile platforms.
[0010] According to one embodiment of the present invention, each of the plurality of families for the three-dimensional object is obtained by merging a plurality of clusters with similar parameters.
[0011] According to a further embodiment of the present invention, the parameters include one or more of material, texture, position, or level of detail (LOD).
[0012] According to a further embodiment of the present invention, determining the visibility of the three-dimensional object in the scene further includes: using pre-computed visibility to remove invisible objects in the scene to obtain a coarse-grained first set of visible objects; performing a hardware occlusion query on the first set of visible objects to remove occluded objects to obtain a fine-grained second set of visible objects; and if the three-dimensional object is in the second set of visible objects, then determining that the three-dimensional object is visible in the scene.
[0013] According to a further embodiment of the present invention, performing hardware occlusion query calculation on the first set of visible objects to remove occluded objects in order to obtain a fine-grained second set of visible objects further includes: performing a depth test on the bounding box of each object in the first set of visible objects using a depth map for the scene; and if all pixels of the bounding box of the object are occluded, then the object belongs to the occluded objects and is removed.
[0014] According to a further embodiment of the present invention, the occlusion query of the three-dimensional object is based on CPU-parallelized occlusion query.
[0015] According to a further embodiment of the present invention, in response to determining that the three-dimensional object is visible, performing an occlusion query on a plurality of families of the three-dimensional object to remove occluded families to obtain a set of visible families for the three-dimensional object further includes: performing a depth test on the bounding box of each of the plurality of families using a depth map for the scene; and if all pixels are occluded for the bounding box of the family, then the family belongs to the occluded family and is removed.
[0016] According to a further embodiment of the present invention, performing an occlusion query on multiple clusters in each visible family in the visible family set to remove occluded clusters, in order to obtain a visible cluster set for the 3D object, further includes: performing a depth test on the bounding box of each cluster in each visible family in the visible family set using a depth map of the scene; and if all pixels are occluded for the bounding box of the cluster, then the cluster belongs to the occluded cluster and is removed.
[0017] According to a further embodiment of the present invention, rendering the three-dimensional object based on the set of visible clusters further includes: merging the corresponding visible clusters in the set of visible clusters into a plurality of visible families; and rendering the three-dimensional object based on the plurality of visible families.
[0018] According to a further embodiment of the present invention, the three-dimensional object includes a high-precision vehicle model.
[0019] According to a second aspect of the present invention, a rendering system for a three-dimensional object is provided, comprising: an object visibility detection module configured to determine the visibility of the three-dimensional object in a scene, wherein the mesh of the three-dimensional object is constructed into multiple families, each family including multiple clusters; a visible family detection module configured to, in response to determining that the three-dimensional object is visible, perform an occlusion query on the multiple families of the three-dimensional object to remove occluded families, thereby obtaining a set of visible families for the three-dimensional object; a visible cluster detection module configured to perform an occlusion query on the multiple clusters in each visible family in the set of visible families to remove occluded clusters, thereby obtaining a set of visible clusters for the three-dimensional object; and an object rendering module configured to render the three-dimensional object based on the set of visible clusters.
[0020] According to one embodiment of the present invention, each of the plurality of families for the three-dimensional object is obtained by merging a plurality of clusters with similar parameters, wherein the parameters include one or more of material, texture, position or level of detail (LOD).
[0021] According to a further embodiment of the present invention, the object visibility detection module is further configured to: use pre-calculated visibility to remove invisible objects in the scene to obtain a coarse-grained first visible object set; perform hardware occlusion query on the first visible object set to remove occluded objects to obtain a fine-grained second visible object set; and if the three-dimensional object is in the second visible object set, determine that the three-dimensional object is visible in the scene.
[0022] According to a further embodiment of the present invention, the occlusion query of the three-dimensional object is based on CPU-parallelized occlusion query, and the visible family detection module is further configured to: perform depth testing on the bounding boxes of each of the plurality of families using a depth map for the scene; if all pixels of the bounding box of the family are occluded, then the family belongs to the occluded family and is removed; and the visible cluster detection module is further configured to: perform depth testing on the bounding boxes of each of the plurality of clusters in each visible family in the visible family set using the depth map; and if all pixels of the bounding box of the cluster are occluded, then the cluster belongs to the occluded cluster and is removed.
[0023] According to a third aspect of the present invention, a rendering apparatus for a three-dimensional object is provided, comprising: a processor; and a memory coupled to the processor, the memory storing processor-executable instructions that, when executed by the processor, cause the processor to perform the method as described in any of the preceding aspects.
[0024] According to a fourth aspect of the present invention, a non-transient processor-readable storage medium is provided, comprising processor-executable instructions that, when executed by the processor, cause the processor to perform the method as described in any of the preceding aspects.
[0025] To address the problems existing in the prior art, the present invention provides a cluster- and family-based rendering scheme (i.e., rendering pipeline) for 3D objects, especially high-precision vehicle models. It significantly reduces the number of triangles to be drawn through two layers of occlusion culling operations, thereby alleviating the rendering pressure and improving the rendering frame rate, thus achieving high-speed rendering, for example, for high-precision vehicles.
[0026] These and other features and advantages will become apparent from the following detailed description and with reference to the accompanying drawings. It should be understood that the foregoing general description and the following detailed description are illustrative only and do not limit the scope of the claims. Attached Figure Description
[0027] To gain a more detailed understanding of the manner in which the features of this disclosure are described above, reference can be made to the various embodiments for a more specific description of the above-briefly summarized aspects, some of which are illustrated in the accompanying drawings. However, it should be noted that the drawings illustrate only certain typical aspects of this disclosure and should not be considered as limiting its scope, as this description may allow for other equivalent and effective aspects.
[0028] Figure 1 A schematic flowchart of a rendering pipeline for three-dimensional objects according to an embodiment of the present disclosure is shown.
[0029] Figure 2A schematic diagram illustrating the division of clusters and families according to an embodiment of the present disclosure is shown.
[0030] Figure 3A and 3B A schematic diagram of cluster- and family-based occlusion culling according to an embodiment of the present disclosure is shown.
[0031] Figure 4 A schematic architecture diagram of a rendering system for three-dimensional objects according to an embodiment of the present disclosure is shown.
[0032] Figure 5 An example computing device architecture diagram is shown, illustrating an example computing device that can implement the various technologies described herein, according to an embodiment of the present disclosure. Detailed Implementation
[0033] The following detailed description is sufficient to enable any person skilled in the art to understand the technical content of one or more embodiments of this specification and to implement them accordingly. Furthermore, based on the specification, claims, and drawings disclosed herein, those skilled in the art can easily understand the objects and advantages associated with one or more embodiments of this specification. Throughout this specification, the term "vehicle" refers to any type of automobile, including but not limited to cars, vans, trucks, buses, etc. For simplicity, the invention is described in relation to "automobile." The terms "A or B" as used in this specification mean "A and B" and "A or B," and do not imply that A and B are exclusive unless otherwise stated.
[0034] As mentioned above, in the classic forward rendering pipeline, model data is transmitted to the GPU in the form of triangles. When a drawing call occurs, vertex transformation and other operations are performed in the vertex shader to obtain vertices in the standard device coordinate system (NDC). Then, rasterization is performed in the rasterizer to obtain pixels. Shading calculations are performed in the pixel shader, followed by depth testing to determine the foreground and background occlusion relationships. In this rendering pipeline, partially visible objects are still fully drawn, which leads to overdraw problems. In addition, due to the limited computing power of mobile devices, a sufficient frame rate cannot be achieved.
[0035] To address this issue, the embodiments in this specification envision performing two-layer occlusion culling on partially visible objects: family-based occlusion culling and cluster-based occlusion culling, where a family is formed by merging two or more clusters. This can significantly reduce the rendering load, increase the rendering frame rate, and achieve high-performance rendering on mobile platforms.
[0036] For example, see Figure 1 The diagram illustrates a schematic flowchart of a rendering pipeline 100 for three-dimensional objects according to an embodiment of the present disclosure.
[0037] The rendering pipeline 100 (or “rendering process”) begins with the pre-computation and construction phase 102 of object data, which is divided into two parts: pre-computation of scene visibility and clustering and family partitioning of 3D objects.
[0038] A 3D object or model is composed of multiple triangular planes. The mesh data for the 3D object or model records data about these triangular planes (i.e., mesh cells) and vertices. Further, the 3D object is divided into clusters and families, where each cluster contains multiple mesh cells, and each family is formed by merging two or more clusters, such as... Figure 2 As shown, Figure 2 A schematic diagram 200 illustrates the division of a vehicle model into clusters and families according to an embodiment of the present disclosure.
[0039] exist Figure 2 In this process, by feeding the mesh data of the vehicle model into a graph partitioning library (e.g., METIS), clustering can be performed on the vehicle model. After clustering using this library, two or more clusters with similar parameters can be merged (or multiple most recent clusters can be merged) to obtain a family. In one example, the parameters mentioned above may include one or more of material, texture, location, or Level of Detail (LOD). Information about the partitioned clusters and families is then stored in the mesh data of the vehicle model as part of that mesh data for subsequent culling operations.
[0040] return Figure 1 After stage 102, the rendering pipeline 100 continues in the scene visibility pre-computation stage 104, in which the results of the aforementioned pre-computation visibility can be used to remove invisible objects in the scene so that they do not flow into the next stage, in order to obtain a coarse-grained first set of visible objects.
[0041] It is worth noting that pre-computed visibility often cannot completely eliminate invisible objects, so this stage is only a rough screening and further elimination is still required.
[0042] Subsequently, during the hardware occlusion culling stage 106, the occlusion query provided by the GPU can be used to perform a hardware occlusion query on the first visible object set (i.e., the data after some of it has been culled in the previous calculation) to further calculate and culle invisible objects (i.e., occluded objects) to obtain a fine-grained second visible object set.
[0043] In one implementation, a depth test can be used to perform hardware occlusion query. Specifically, a depth map of the scene can be used to perform a depth test on the bounding box of each object in the first set of visible objects, and if all pixels of the bounding box of an object are occluded, then the object is considered an occluded object and is removed.
[0044] In subsequent stages, to address the overdrawing issue of some visible objects in the second set of visible objects, occlusion culling based on families and clusters can be performed on each partially visible object.
[0045] In one implementation, the occlusion culling described above can be based on CPU-parallelized occlusion queries.
[0046] Specifically, during the family-based occlusion culling phase 108, in response to determining that a 3D object is visible, multiple families of the 3D object can be occluded to remove occluded families, thereby obtaining a set of visible families for the 3D object.
[0047] In one implementation, depth testing can be used to achieve family-based occlusion culling. Specifically, a depth map of the scene / 3D object can be used to perform a depth test on the bounding box of each of the multiple families. If all pixels of the bounding box of a family are occluded, then that family is considered an occluded family and is culled.
[0048] Subsequently, during the cluster-based occlusion culling stage 110, occlusion queries can be performed on multiple clusters in each visible family in the visible family set obtained in the previous stage to culle the occluded clusters, so as to obtain a set of visible clusters for the 3D object.
[0049] Similarly, depth testing can be used to achieve cluster-based occlusion culling. Specifically, depth testing can be performed on the bounding boxes of each cluster in each visible family within the visible family set using a depth map of the scene / 3D object. If all pixels of the bounding box of a cluster are occluded, then the cluster belongs to the occluded cluster and is culled.
[0050] During rendering phase 112 after the occlusion culling operation, clusters that have passed the visibility detection of all previous phases can be merged into families, and the 3D object can be rendered based on these visible clusters and families.
[0051] like Figure 3A and 3B As shown, Figure 3A and 3B This shows an example scene 300, 302 of a 3D rendering of a car door. Figure 3A As can be seen, the car door was fully drawn during the 3D rendering process. For comparison, in... Figure 3BThe diagram shows that the doors were divided into clusters and families, and occlusion culling was performed on the doors based on families and clusters before rendering. The culling operation was performed along the thick solid line, thereby avoiding overdrawing.
[0052] Therefore, by constructing the object mesh as clusters and families, and performing two culling operations during occlusion queries—first querying the occlusion of the families and then querying the occlusion of the clusters—the number of faces that need to be rendered can be significantly reduced, the rendering pressure can be alleviated, the rendering frame rate can be increased, and high-speed rendering can be achieved on mobile devices.
[0053] Figure 4 A schematic architecture diagram of a rendering system 400 for three-dimensional objects, particularly high-precision vehicle models, according to an embodiment of the present disclosure is shown.
[0054] like Figure 4 As shown, the system 400 may include at least an object visibility detection module 402, a visible family detection module 404, a visible cluster detection module 406, and an object rendering module 408.
[0055] The object visibility detection module 402 can determine the visibility of a 3D object in a scene, wherein the mesh volume of the 3D object is constructed into multiple families, each family including multiple clusters.
[0056] In one implementation, each of the multiple families for the 3D object is obtained by merging multiple clusters with similar parameters, wherein the parameters may include, but are not limited to, material, texture, position, or level of detail (LOD).
[0057] In another implementation, each of the multiple families for the 3D object is organized into two or more closest clusters. It will be understood that any other suitable method can be used for cluster merging.
[0058] In one implementation, the object visibility detection module 402 can use pre-computed visibility to remove invisible objects in the scene to obtain a coarse-grained first visible object set, perform hardware occlusion query (e.g., occlusion query provided by GPU) on the first visible object set to remove occluded objects to obtain a fine-grained second visible object set, and if the 3D object is in the second visible object set, then it is determined that the 3D object is visible in the scene.
[0059] In one implementation, the occlusion culling described above can use information from the depth buffer to determine whether a pixel is occluded by an object in front of it. When the depth value of a pixel is greater than the depth value in the depth buffer, it indicates that the pixel is occluded by an object in front of it, and it will be considered invisible and the rendering operation for that pixel will be skipped directly. The depth buffer is generated by the graphics hardware during the rasterization stage and is used to record the depth value of each pixel, where the depth value represents the distance of the pixel from the camera in the view space.
[0060] The visible family detection module 404 can, in response to determining that the 3D object is visible, perform occlusion queries on multiple families of the 3D object to remove occluded families, so as to obtain a set of visible families for the 3D object.
[0061] In one implementation, the above occlusion query can be based on depth testing. Specifically, a depth map for the scene can be used to perform depth testing on the bounding boxes of each of the multiple families. If all pixels of the bounding box of a family are occluded, then the family is considered an occluded family and is removed.
[0062] The visible cluster detection module 406 can perform occlusion queries on multiple clusters in each visible family in the visible family set to remove occluded clusters, so as to obtain a set of visible clusters for the 3D object.
[0063] In one implementation, similar to the visible family detection process, the detection of visible clusters can also be based on depth testing. Specifically, a depth map for the scene can be used to perform depth testing on the bounding boxes of each of the multiple clusters in each visible family in the visible family set. If all pixels are occluded for the bounding box of a cluster, then the cluster belongs to the occluded cluster and is removed.
[0064] In one implementation, the detection process for visible families and visible clusters described above can be based on CPU-parallelized occlusion queries.
[0065] The object rendering module 408 can then render the 3D object based on the set of visible clusters.
[0066] In one implementation, the object rendering module 408 can merge the corresponding visible clusters in the visible cluster set into multiple visible families, and render the 3D object based on the multiple visible families.
[0067] Preferably, by returning visible clusters (or visible families formed by merging them) with similar parameters to the GPU for rendering, the switching of rendering types in the GPU can be further reduced, thereby further improving rendering performance.
[0068] Figure 5An example computing device architecture 500 is shown, illustrating an example computing device that can implement the various technologies described herein, according to an embodiment of the present disclosure. The computing device may be implemented as, for example, a smartphone, a laptop computer, a tablet computer, a head-mounted device, etc.
[0069] The components of the computing device architecture 500 are shown to be in electrical communication with each other via a bus 514. The example computing device architecture 500 includes a processor 504 and a bus 514 that couples various computing device components, including memory 502 (such as read-only memory (ROM) and random access memory (RAM)), to the processor 504.
[0070] Memory 502 may store computer-executable instructions that, when executed by processor 504, cause the at least one processor to perform various functions described herein, including: determining the visibility of the 3D object in a scene, wherein the mesh volume of the 3D object is constructed into multiple families, each family comprising multiple clusters; in response to determining that the 3D object is visible, performing an occlusion query on the multiple families of the 3D object to cull occluded families to obtain a set of visible families for the 3D object; performing an occlusion query on the multiple clusters in each visible family in the set of visible families to cull occluded clusters to obtain a set of visible clusters for the 3D object; and rendering the 3D object based on the set of visible clusters.
[0071] Processor 504 may include a CPU, which in some examples may be a multi-core CPU. Instructions executed at the CPU may be loaded, for example, from program memory associated with the CPU or from memory 502. The one or more processors 504 may also include additional processing components tailored for specific functions, such as a graphics processing unit (GPU), a digital signal processor (DSP), a neural processing unit (NPU), or a multimedia processing unit. In some examples, the one or more processors may be based on the ARM or RISC-V instruction set.
[0072] The computing device architecture 500 may also include a cache 506 of high-speed memory that is directly connected to, adjacent to, or integrated into the processor 504. The computing device architecture 500 can copy data from the memory 502 to the cache 506 for fast access by the processor 504. In this way, the cache provides a performance boost, preventing latency for the processor 504 while waiting for data. These and other modules can control or be configured to control the processor 504 to perform various actions. Other computing device memories 502 may also be available. Memory 502 may include various different types of memory with different performance characteristics. The processor 504 may include any general-purpose processor and special-purpose processor (where software instructions are incorporated into the processor design). The processor 504 may be a self-contained system containing multiple cores or processors, buses, memory controllers, caches, etc. Multi-core processors may be symmetric or asymmetric.
[0073] To enable user interaction with computing device architecture 500, input device 508 can represent any number of input mechanisms, such as a microphone for voice, a touchscreen for gesture or graphical input, a keyboard, a mouse, etc. Output device 510 can also be one or more of a variety of output mechanisms known to those skilled in the art, such as a display, projector, television, speaker device. In some instances, multimodal computing devices enable users to provide multiple types of input to communicate with computing device architecture 500. Communication interface 512 generally manages and controls user input and computing device output. There are no limitations on operation on any particular hardware arrangement, and therefore the underlying features here can be easily replaced to obtain improved hardware or firmware arrangements as they are developed.
[0074] Understandable. Figure 5 This is merely one example of a computing device, and other computing devices that include fewer, additional, or alternative aspects may also be consistent with this disclosure.
[0075] Furthermore, this application also discloses a computer-readable storage medium including computer-executable instructions stored thereon, which, when executed by a processor, cause the processor to perform the methods of the embodiments described herein.
[0076] In addition, this application also discloses an apparatus including a processor and a memory storing computer-executable instructions that, when executed by the processor, cause the processor to perform the methods of the embodiments described herein.
[0077] The various illustrative blocks and modules described herein can be implemented or executed using a general-purpose processor, DSP, ASIC, FPGA or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. The general-purpose processor may be a microprocessor, but in alternatives, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices (e.g., a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors working in conjunction with a DSP core, or any other such configuration).
[0078] The functions described herein can be implemented in hardware, software executed by a processor, firmware, or any combination thereof. If implemented in software executed by a processor, the functions can be stored or transmitted as one or more instructions or code on a computer-readable medium. Other examples and implementations fall within the scope of this disclosure and the appended claims. For example, due to the nature of software, the functions described herein can be implemented using software executed by a processor, hardware, firmware, hardwired, or any combination thereof. Features implementing the functions can also be physically located in various locations, including being distributed such that different parts of the function are implemented at different physical locations.
[0079] The foregoing description includes examples of various aspects of the claimed subject matter. It is certainly impossible to describe every conceivable combination of components or methods for the purpose of depicting the claimed subject matter, but those skilled in the art will recognize that many further combinations and arrangements of the claimed subject matter are possible. Thus, the disclosed subject matter is intended to cover all such changes, modifications, and variations that fall within the spirit and scope of the appended claims.
Claims
1. A rendering method for three-dimensional objects, comprising: Determine the visibility of the 3D object in the scene, wherein the mesh volume of the 3D object is constructed into multiple families, each family comprising multiple clusters; In response to determining that the 3D object is visible, an occlusion query is performed on multiple families of the 3D object to remove occluded families, so as to obtain a set of visible families for the 3D object; Occlusion queries are performed on multiple clusters in each visible family in the visible family set to remove occluded clusters, so as to obtain a set of visible clusters for the 3D object; as well as The 3D object is rendered based on the set of visible clusters.
2. The method as described in claim 1, characterized in that, Each of the multiple families for the three-dimensional object is obtained by merging multiple clusters with similar parameters.
3. The method as described in claim 2, characterized in that, The parameters include one or more of the following: material, texture, location, or level of detail (LOD).
4. The method of claim 1, wherein determining the visibility of the 3D object in the scene further comprises: Use pre-computed visibility to remove invisible objects from the scene to obtain a coarse-grained first set of visible objects; A hardware occlusion query is performed on the first set of visible objects to remove occluded objects, thereby obtaining a fine-grained second set of visible objects; as well as If the 3D object is in the second set of visible objects, then the 3D object is determined to be visible in the scene.
5. The method of claim 4, wherein performing hardware occlusion query calculation on the first visible object set to remove occluded objects to obtain a fine-grained second visible object set further comprises: Using a depth map specific to the scene, perform a depth test on the bounding box of each object in the first set of visible objects; as well as If all pixels of the bounding box of an object are occluded, then the object is considered an occluded object and is culled.
6. The method as described in claim 1, characterized in that, The occlusion query for the 3D object is based on CPU-parallelized occlusion query.
7. The method as described in claim 1, characterized in that, In response to determining that the 3D object is visible, performing an occlusion query on multiple families of the 3D object to remove occluded families, to obtain a set of visible families for the 3D object, further includes: Using a scene-specific depth map, depth testing is performed on the bounding boxes of each of the multiple families; and If all pixels of a family are occluded within its bounding box, then that family is considered an occluded family and is removed from the list.
8. The method as described in claim 1, characterized in that, Performing an occlusion query on multiple clusters within each visible family in the visible family set to remove occluded clusters, to obtain a visible cluster set for the 3D object, further includes: Using a depth map specific to the scene, depth testing is performed on the bounding boxes of each cluster in multiple clusters within each visible family of the visible family set; and If all pixels of the bounding box of a cluster are occluded, then the cluster belongs to the occluded cluster and is removed.
9. The method as described in claim 1, characterized in that, Rendering the 3D object based on the set of visible clusters further includes: The corresponding visible clusters in the set of visible clusters are merged again into multiple visible families; and The 3D object is rendered based on the multiple visible families.
10. The method of claim 1, wherein the three-dimensional object comprises a high-precision vehicle model.
11. A rendering system for three-dimensional objects, comprising: An object visibility detection module is configured to determine the visibility of the 3D object in the scene, wherein the mesh volume of the 3D object is constructed into multiple families, each family including multiple clusters; A visible family detection module is configured to perform occlusion queries on multiple families of the 3D object in response to determining that the 3D object is visible, so as to remove occluded families and obtain a set of visible families for the 3D object. The visible cluster detection module is configured to perform occlusion queries on multiple clusters in each visible family in the visible family set to remove occluded clusters, so as to obtain a set of visible clusters for the 3D object; as well as An object rendering module is configured to render the 3D object based on the set of visible clusters.
12. The system of claim 11, wherein each of the plurality of families for the three-dimensional object is obtained by merging a plurality of clusters with similar parameters, wherein the parameters include one or more of material, texture, position, or level of detail (LOD).
13. The system of claim 11, wherein the object visibility detection module is further configured to: Use pre-computed visibility to remove invisible objects from the scene to obtain a coarse-grained first set of visible objects; A hardware occlusion query is performed on the first set of visible objects to remove occluded objects, resulting in a fine-grained second set of visible objects; and If the 3D object is in the second set of visible objects, then the 3D object is determined to be visible in the scene.
14. The system of claim 11, wherein the occlusion query of the 3D object is based on CPU-parallelized occlusion query, and The visible family detection module is further configured to: Using a depth map specific to the scene, a depth test is performed on the bounding box of each of the multiple families; If all pixels of the bounding box for a given family are occluded, then that family belongs to the occluded family and is discarded; and The visible cluster detection module is further configured to: Using the depth map, depth testing is performed on the bounding boxes of each cluster in multiple clusters within each visible family of the visible family set; and If all pixels of the bounding box of a cluster are occluded, then the cluster belongs to the occluded cluster and is removed.
15. A rendering apparatus for three-dimensional objects, comprising: processor; as well as A memory coupled to the processor stores processor-executable instructions that, when executed by the processor, cause the processor to perform the method as described in any one of claims 1-10.
16. A non-transient processor-readable storage medium comprising processor-executable instructions that, when executed by the processor, cause the processor to perform the method as described in any one of claims 1-10.