Image generation system and method

By using hierarchical bounding box structure and direction-dependent traversal in ray tracing technology, the intersection test of rays and bounding box is optimized, and the problem of long rendering time in virtual reality is solved, and efficient image generation and immersion enhancement is achieved.

CN112991507BActive Publication Date: 2025-08-12SONY INTERACTIVE ENTERTAINMENT LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202011276917.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-11-29
Filing Date
2020-11-16
Publication Date
2025-08-12
Estimated Expiration
2040-11-16

AI Technical Summary

Technical Problem

The existing ray tracing technology has a long rendering time in virtual reality applications, resulting in insufficient immersion. The traditional enclosure box structure has a large amount of calculation during ray tracing, making it difficult to efficiently generate high-quality images in real-time applications.

Method used

The hierarchical bounding box (BVH) structure is adopted to generate BVH by top-down, bottom-up and insertion methods, combining direction-dependent traversal to reduce the amount of calculation during ray tracing, and optimize the intersection test of rays and bounding box.

Benefits of technology

It improves the efficiency of ray tracing processing, reduces rendering time, enhances the immersion of virtual reality applications, and realizes real-time generation of high-quality images.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112991507B_ABST
    Figure CN112991507B_ABST
Patent Text Reader

Abstract

A system for performing a ray tracing process, the system comprising: a hierarchical bounding box identification unit operable to identify a hierarchical bounding box structure for generating an image of a virtual environment, the hierarchical bounding box structure comprising information about one or more surfaces within the virtual environment, a hierarchical bounding box selection unit operable to discard one or more elements of the hierarchical bounding box structure based on a direction of an incident ray, and a ray tracing unit operable to perform a ray tracing process using the remaining hierarchical bounding box elements.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to image generation systems and methods. Background Art

[0002] Ray tracing is a rendering technique that has gained widespread attention in recent years due to its ability to generate a high degree of visual realism. Ray tracing is commonly used to simulate various optical effects within images, such as reflections, shadows, and chromatic aberration.

[0003] This is useful for any computer-based image generation process, for example, for special effects in movies and for generating graphics for computer games. Although such techniques have been discussed and used for quite some time, only recently has processing hardware become powerful enough to enable ray tracing techniques with acceptably low latency for real-time applications or at least for wider use within a piece of content.

[0004] Such techniques effectively determine the visual properties of objects in a scene by tracing rays from the camera to every pixel in the scene. Of course, this is a fairly computationally expensive process that is expected to use a large number of pixels to display the scene, and can result in a large number of calculations even for simpler scenes (such as those with few reflections). Given this, scanline rendering and other rendering methods are often the preferred rendering method where latency is still considered important despite the lower image quality.

[0005] One technique that attempts to improve rendering times associated with ray tracing-based methods is to use bounding volumes to represent groupings of objects. The use of bounding volumes is advantageous because a group of objects can be tested for intersection together with a ray, rather than testing on a per-object basis. This can mean reducing the time for intersection tests and simplifying the computation of each test by using simplified shapes (such as boxes or spheres) to represent the objects. However, while advantageous in principle, the challenge of defining an appropriate bounding volume structure can be problematic.

[0006] Ray tracing, a technique that can increase the perceived realism of generated video content, is particularly important for virtual reality (VR) applications. In such applications, it is naturally desirable to increase the realism of the visuals provided to improve the immersion experienced by viewers of the content, such as users of head-mounted displays (HMDs). However, VR applications are particularly sensitive to long rendering times, and therefore ray tracing technology has not been widely used in these contexts.

[0007] Therefore, it is desirable to implement ray tracing algorithms in a manner that allows realistic images to be generated without increasing the latency of the image rendering process to undesirable levels. Summary of the Invention

[0008] The present disclosure has been made against the backdrop of the above problems.

[0009] The present disclosure is defined by claim 1 .

[0010] Further aspects and features of the disclosure are defined in the accompanying claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] Embodiments of the present invention will now be described by way of example with reference to the accompanying drawings, in which:

[0012] Figure 1 Schematically shows a bounding volume hierarchy;

[0013] Figure 2 The bounding box is schematically shown;

[0014] Figure 3 A plurality of bounding boxes are schematically shown;

[0015] Figure 4 Schematically illustrates a cube in three-dimensional space;

[0016] Figure 5 A two-dimensional grouping is schematically shown;

[0017] Figure 6 Schematic diagram showing the incident light Figure 5 Grouping;

[0018] Figure 7 Schematically illustrates an optional two-dimensional grouping;

[0019] Figure 8 schematically illustrates an exemplary BVH structure in which a plurality of unrelated BVHs are provided;

[0020] Figure 9 schematically illustrates an exemplary BVH structure in which a single BVH is provided;

[0021] Figure 10 schematically illustrates an exemplary BVH structure in which a plurality of related BVHs are provided;

[0022] Figure 11 A system for performing a ray tracing process is schematically illustrated;

[0023] Figure 12 schematically illustrates a system for generating a BVH for use in a ray tracing process;

[0024] Figure 13 schematically illustrates a method for performing a ray tracing process; and

[0025] Figure 14 A method for generating a BVH for use in a ray tracing process is schematically shown. DETAILED DESCRIPTION

[0026] The present disclosure relates to a system and method by which a bounding volume hierarchy (BVH) is used to generate information about the capabilities and environment that an object moves through. This differs from traditional uses of the BVH, where the BVH is used to represent objects in an ordered manner so that ray tracing (i.e., graphics rendering) techniques can be performed more efficiently.

[0027] Figure 1 A simple example of a BVH is shown schematically; in this example, each box (bounding box) represents one or more objects at a given level of detail. Each box contains information about the box above it in the hierarchy. For example, box 110 contains information about all objects in the environment, while each box 120 contains a subset of objects. These subsets can be determined in any suitable way, although it is generally considered preferable to group objects that are close together in the environment and represent them with the same bounding box.

[0028] The level of detail for each level can be determined in any suitable manner, and the BVH can have a defined maximum level of detail. For example, the BVH can end up with bounding boxes representing groupings of objects, which will result in a coarse representation, but will reduce its size and can be traversed very quickly. Alternatively, the BVH can end up with bounding boxes representing parts of objects, which provides a better approximation of the object, but of course, provides a larger BVH and may require longer traversal time. The BVH can be defined to contain elements of both, so that some objects have a finer / coarser representation than others.

[0029] The BVH can be generated in a variety of ways, each with its own advantages and disadvantages. For example, a top-down approach can be adopted, in which the bounding box is defined starting from the largest possible set. That is, the input (such as the set of objects in the environment or the representation of these objects) is divided into two or more subsets, and then these subsets are subdivided separately. That is, the bounding box is generated starting from box 110, then continuing to box 120, etc. Although this represents a fast implementation, it usually results in an inefficient BVH, which may result in a larger overall size or inconvenient accessibility.

[0030] An alternative approach is the bottom-up approach. In this approach, the bounding box is defined starting from the smallest box in the BVH. Figure 1In the example of , this means defining bounding box 140 first and then expanding upward to bounding box 130. While it is generally possible to generate a better (ie, more efficient) BVH than the top-down approach, it is more challenging to implement efficiently.

[0031] Each of these methods requires information about all objects that are available before the BVH can be generated; this is certainly acceptable in many applications, but in other applications it may be preferable to be able to generate the BVH in real time.

[0032] A third approach that can be considered is insertion methods. These can be performed in real time and can be performed by inserting objects into the bounding box of the BVH on a per-object basis. This means that only information about the object is required at the time of insertion. Insertion methods cover a wide range of related methods in which the placement of an object is determined in a way that identifies an optimal or suitable placement. For example, a function can be defined that evaluates the impact of the insertion on the BVH (in terms of size or accessibility, etc.) and performs the insertion in a way that minimizes or otherwise reduces the impact on the BVH.

[0033] Of course, any other suitable methods may be considered compatible with the teachings of the present disclosure, not limited to those discussed above.

[0034] A BVH and its associated bounding box can be used to represent any suitable input data. For example, a video game could provide a suitable source of input data to generate such a structure. In this case, the input information could be data about virtual objects, defining their dimensions and positions. Similarly, information describing a real-world environment could be used as a source of information. For example, information could be generated from an image of the real-world environment and the objects in that environment, and this information could be used to generate a BVH for rendering an image of that environment.

[0035] Figure 2 and 3 Schematic illustrating the use of bounding boxes in a ray tracing algorithm.

[0036] Figure 2 A viewport 200 is schematically shown within which rays are to be traced, which may be, for example, a camera view of a virtual environment to be presented to a viewer. The scene includes an object 210, which is bounded by a bounding box 220. Rather than testing each ray for intersection with each polygon forming the object 210 (which may be a considerable number), only intersections with respect to the bounding box 220 are tested. Of course, any ray that does not intersect the bounding box 220 will not intersect the polygons forming the object 210, although of course a ray may intersect a bounding box 220 that does not intersect the polygons forming the object 210.

[0037] For example, if one hundred rays are to be tested for intersection, only one hundred tests need to be performed at this stage because each ray has only one object (bounding box 220) to test, rather than one hundred times the number of polygons that make up object 210.

[0038] Figure 3 An enlarged version of bounding box 220 is shown, with smaller bounding boxes 230 and 231 used to represent object 210. Bounding boxes 230 and 231 may be tested for intersection for each ray found to intersect bounding box 220 to obtain a finer approximation of the visual appearance of object 210.

[0039] For example, if only ten rays are found to intersect the bounding box 220, then thirty tests need to be performed at this stage (i.e., for each ray with each bounding box). This is again a very small number relative to testing one hundred times the number of polygons that make up the object 210 (as described above). Therefore, it is clear that the decrease in the number of rays to be considered for intersections more than offsets the increase in the number of bounding boxes to be considered, making the total number of intersections to be tested less than would be required if no bounding boxes were defined and no BVH was used.

[0040] In actual implementations, these boxes may be further divided until the surface of object 210 is represented with a level of accuracy suitable for the application, for example, when the bounding box and the polygon (primitive) representing the object occupy similar display area, at which time the polygon may be used.

[0041] In these examples, bounding box 220 may be considered a higher level in the BVH than bounding boxes 230, 231, e.g., bounding box 220 may correspond to a Figure 1 The box 120 in the middle, while the smaller bounding boxes 230, 231 may correspond to, for example, Figure 1 Box 130.

[0042] It is apparent from these figures that by using bounding boxes and BVHs, the number of calculations to be performed in the ray tracing method can be significantly reduced; this is because the number of intersections to be evaluated can be significantly reduced.

[0043] The efficiency of this process can be further improved by defining the BVH in a more appropriate way. In the current discussion, this refers to a BVH structure that can be traversed faster or more efficiently, not necessarily any properties of the BVH structure itself. In an embodiment of the present disclosure, the BVH structure is defined to support directional dependencies to achieve improved traversal.

[0044] Figure 4A cube in three-dimensional space is schematically shown; as shown, each face is aligned with a corresponding axis in a Cartesian coordinate system (in either a positive or negative direction). That is, cube 400 has a first face 410 aligned in the positive x-direction (with a corresponding face aligned in the negative x-direction on the opposite side of the cube), a second face 420 aligned in the positive y-direction (with a corresponding face aligned in the negative y-direction on the opposite side of the cube), and a third face 430 aligned in the positive z-direction (with a corresponding face aligned in the negative z-direction on the opposite side of the cube).

[0045] In light of this, it is believed that by comparing the surface orientation of the object with one of the faces 410, 420, 430 (or their opposite faces), the primary or dominant direction of the surface can be identified. That is, each surface of the object can be approximated (or otherwise represented) by a face of cube 400 by determining which face has the most similar direction. This can be determined, for example, by comparing surface normals or by identifying the direction from associated metadata or the like.

[0046] According to the above discussion, Figure 5 A two-dimensional example of mapping the surface of an object to the corresponding groups to be used is schematically shown. The figure shows a dodecagon 500, each side of which is assigned to one of four groups 510, 520, 530, 540. Each of these groups corresponds to Figure 4 For example, group 540 corresponds to surface 410 , while group 530 corresponds to surface 420 .

[0047] As is apparent from the figure, the sides of shape 500 are assigned to these groups according to the orientation of the sides. For example, it is apparent that each surface in group 530 has an orientation substantially in the +y direction, that is, the y component of the normal vector to the face will have the largest magnitude relative to the other components.

[0048] Of course, the same process is considered to be appropriate in three dimensions, and for clarity, the two-dimensional case is considered here. In the three-dimensional case, the z component is considered as well as the x and y components, and the same analysis (i.e., the analysis to determine the surface orientation) is applied. Of course, any suitable coordinate system can be used, and Cartesian coordinates need not form the basis of this process.

[0049] By implementing this grouping of surfaces based on surface orientation, using these groups, a BVH structure can be generated based on the orientation of the surfaces within the virtual environment. This is advantageous because the generated BVH structure can be selectively traversed based on information about the direction of the rays used for ray tracing relative to the surface orientation of the object being rendered. The processing cost of traversing a BVH is proportional to the logarithm of the number of nodes; therefore, by providing multiple smaller BVHs based on directionality, the cost of traversing each BVH is reduced. Typically, this reduction is sufficient to at least offset the increase in processing cost associated with traversing multiple BVHs.

[0050] The following discussion refers to a single BVH corresponding to each group, however, this should not be considered limiting; further discussion related to BVH structure is provided below.

[0051] For example, consider Figure 5 Rendering of object 500. Figure 6 A pair of incoming rays 600 and 610 are shown, which may be associated with different virtual camera positions in a virtual environment including object 500. These rays may indicate the overall direction of the virtual camera, or multiple rays may be considered when determining which BVHs are of interest in a ray tracing process. Of course, recognizing that ray tracing processes may be performed continuously (or repeatedly) during the image rendering process, this determination may be made dynamically, that is, the determination may be made as to which portion of the BVH structure will be used for that particular ray tracing process.

[0052] Ray 600 is incident in a direction perpendicular to group 540, so the BVH corresponding to group 540 can be considered essential for ray tracing processing, as surfaces in that group are certainly visible in the absence of any occlusion, etc. The BVHs corresponding to groups 510 and 530 can be considered useful, as it is clear that at least some of the surfaces in each of these groups are visible to ray 600. However, in some embodiments, the BVHs for these groups can be omitted to provide faster or cheaper ray tracing processing, as the effects of relative orientation may be reduced.

[0053] Of course, in such an example, the final group 520 is completely obscured, and any surface facing the same direction (or at least substantially the same direction) as the ray will not be directly intersected by the ray. Therefore, it can be argued that the BVH corresponding to group 520 can be omitted entirely without significantly impacting the ray tracing process, thereby simplifying the traversal process associated with the ray tracing.

[0054] Turning to ray 610, it is apparent that ray 610 includes a negative x-component and a positive y-component in its direction. This means that ray 610 is incident on surfaces in groups 510 and 540, because each of these groups includes surfaces whose components of the normal vector have at least one different sign from the components of the incident ray 610 (i.e., the normal of each surface in these groups has one or both of a positive x-component and a negative y-component). While not every surface in these groups may intersect ray 610, it is sufficient that at least some of the surfaces intersect ray 610.

[0055] from Figure 6 It is further apparent that ray 610 is not directly incident on any surface in groups 520 or 530. Therefore, each of the BVHs corresponding to these groups can be omitted, which means that the BVH traversal associated with ray 610 only needs to traverse the BVHs corresponding to groups 510 and 540.

[0056] Of course, these are merely exemplary configurations intended to illustrate the general principles of direction-based traversal of a BVH structure. Many modifications and variations are discussed below and will be apparent to those skilled in the art after reading this disclosure.

[0057] For example, although the above discussion was limited to cube surfaces aligned with the three Cartesian axes, this is not a required feature. Figure 7 Schematically shows the Figure 5 and Figure 6 This modification is presented in the context of an example where the number of groups is increased.

[0058] exist Figure 7 In the example of FIG, twelve groups 700 are defined (each group corresponding to one of the twelve directions or surface orientations) rather than four groups 510, 520, 530, 540. Of course, this number is purely exemplary, and the teachings can be appropriately extended to any number of groups (including, as mentioned above, to three dimensions), including higher and lower numbers of groups.

[0059] It should be understood that when more groups are used, the size of the BVH corresponding to each group will be reduced. This can further reduce the traversal time of each BVH, and can also discard (or not traverse) more BVHs based on direction considerations.

[0060] For example, if light 600 is incident on Figure 7 , then it can be considered that the ray 600 intersects only five groups 700 (the bottom group and the two groups on each side of the bottom group). Figure 6The proportion of defined groups is smaller compared to the example with (42% vs. 75%), and may represent an overall reduction in processing cost since the total number of nodes to traverse will be lower.

[0061] Although described above using regular shapes, grouping can be based on surface orientations that are instead irregular shapes. For example, an analysis of a virtual environment (or a real environment captured to generate a corresponding virtual environment) can be performed to determine the relative proportions of surface orientations within the environment. Based on this analysis, a determination can be made as to how to group surfaces within the environment. For example, in an environment where many objects cannot be viewed from certain directions (e.g., due to being mounted on a wall), more irregular groupings can be considered, e.g., defining Figure 5 of group 520 (which corresponds to the back of the wall-mounted object), where groups 510, 530 and 540 are replaced by corresponding groups 700.

[0062] Once the grouping is performed on the surfaces, a BVH should be generated based on the grouping. Of course, the BVH structure may vary, depending on the specific application, the specific environment or object configuration, or personal preferences. Figure 4 The following discussion provides some examples of BVH structures that might be considered, in the context of faces of the cube.

[0063] Figure 8 An exemplary BVH structure is schematically shown, in which a plurality of unrelated BVHs 800 are provided. In this case, six BVHs 800 are provided, one corresponding to Figure 4 When a BVH structure is used, the BVH 800 to be used may be independently selected based on directional information associated with the BVH and one or more incident rays.

[0064] Figure 9 An exemplary BVH structure is schematically shown, wherein a single BVH 900 is provided with a plurality of high-level nodes 910, each high-level node 910 representing a branch of the BVH corresponding to a particular surface orientation. For example, each BVH node 910 may correspond to a Figure 4 The faces of the cube approximate the surface orientation. In this structure, the nodes 910 can be selectively traversed based on the orientation information.

[0065] Figure 10An exemplary BVH structure is schematically shown, in which a plurality of BVHs 1000 are provided, each BVH 1000 being associated with a subset of nodes 1010. In this example, the association of two BVHs 1000 is shown to maintain clarity of the drawing. Specifically, each BVH 1000 is associated with a different set of five nodes 1010, and therefore, each BVH 1000 ignores BVH data related to a particular direction. Of course, a BVH 1000 can be defined as being associated with any suitable number of nodes 1010 to provide an effective BVH structure. For example, each BVH 1000 can instead be associated with pairs of nodes 1010 (instead of five), and multiple BVHs 1000 can be selected instead of just one.

[0066] Such an arrangement may be advantageous because it reduces data storage requirements relative to storing multiple BVHs, as when using Figure 9 When traversing a single BVH in , it is required that the ignored nodes do not need to be traversed.

[0067] Determining which BVHs to use can be done in any suitable manner. As mentioned above, a first example is to consider whether the surface normals share a vector direction in one or more coordinate directions. Another example is to determine the sign of each vector component (x, y, and z coordinates in an embodiment using Cartesian coordinates) considered for one or more incident rays and input these vectors into the following equation:

[0068] BVH_index=sign(direction.x)+2*sign(direction.y)+4*sign(direction.z)

[0069] When the vector has a positive component in a given direction, the value of sign() is set to 1, and when the vector has a negative component in a given direction, the value of sign() is set to 0. This equation defines eight unique BVH indices based on the direction of the incident ray. By associating certain configurations of the BVH or BVH structure (such as the selection of nodes to use) with each of these BVH indices, an appropriate set of BVH information can be selected for performing ray tracing based on the direction information. Of course, a similar equation can be used regardless of the number of indices required, with the variables updated to enable determination of a different number of indices.

[0070] Alternatively or in addition, further calculations may be used to identify a BVH group within a particular group identified by the BVH index calculated above. For example, it may be determined whether the value of each vector component is greater than or equal to a particular threshold, and whether this changes the BVH that may be required for ray tracing. For example, using Figure 6For rays 600 and 610, ray 600 can be treated as having a positive y component (because it is zero), or a similar ray with a very small y component can be defined. This will result in the same BVH index being identified using the equation above, but ray 600 is more likely to intersect a surface in group 530. Therefore, it may be advantageous to identify this different case at each index.

[0071] Figure 11 A system for performing a ray tracing process is schematically shown. The system includes a BVH identification unit 1100, a BVH selection unit 1110, and a ray tracing unit 1120. Such a system may be incorporated into, for example, a graphics processing unit or any suitable processing device such as a computer or a game console.

[0072] The BVH identification unit 1100 is operable to identify a BVH structure for generating an image of a virtual environment, the BVH structure including information about one or more surfaces within the virtual environment. This may include receiving the BVH structure, such as by reading a hard drive or receiving a transmission over a network, and determining the structure of the BVH. For example, this may include identifying the grouping used (such as the number of groups and the directional dependencies of those groups), and how the BVH structure is configured (such as from a reference image). Figure 8-10 configurations discussed or any other suitable configurations).

[0073] References to information about one or more surfaces within the virtual environment may also be understood to refer to information about the shape, position, and / or size of the surface, in addition to information about its specific orientation, etc. Other features of the surface may also be indicated in the information, such as color information, reflectivity information, or object identifiers, as appropriate.

[0074] As mentioned above, the BVH structure may take any suitable form.

[0075] In some embodiments, the BVH structure includes a plurality of BVHs, each BVH corresponding to a surface of a corresponding orientation or orientation range, and the BVH selection unit is operable to discard one or more BVHs. Figure 8 This structure is shown.

[0076] In some embodiments, the BVH structure includes a single BVH having a plurality of nodes, each node corresponding to a surface of a respective orientation or range of orientations, and the BVH selection unit is operable to discard one or more nodes of the BVH. For example, Figure 9 This structure is shown.

[0077] In some embodiments, the BVH structure includes a plurality of BVHs, each BVH corresponding to a surface of a corresponding orientation or orientation range, wherein two or more of the plurality of BVHs share one or more nodes, and the BVH selection unit is operable to discard one or more BVHs. For example, Figure 10 This structure is shown.

[0078] As described above, the BVH structure may include any suitable information about the surfaces. In some embodiments, the BVH structure includes information identifying groupings of surfaces according to their orientations, which may include identification of the groups (and associated parameters, such as orientations associated with the groups) and assignments of surfaces to those groups. In some cases, each group corresponds to a face of a three-dimensional shape (although other shapes are certainly contemplated, such as in a two-dimensional implementation), and each surface is assigned to the group corresponding to the face whose surface normal is closest to the surface normal of the surface. As described in reference Figure 4 As discussed, in some embodiments, a three-dimensional shape that is a cube may be considered suitable, although in other cases, other shapes may be more appropriate.

[0079] The BVH selection unit 1110 is operable to discard one or more elements of the BVH structure based on the direction of an incident ray; that is, the BVH selection unit 1110 is operable to determine a grouping of BVH elements to be used for ray tracing based on the direction of an incident ray.

[0080] In other words, the BVH selection unit 1110 is operable to determine which portions of the BVH structure are to be used for ray tracing processing (or at least a portion of the processing being performed at the time, such as processing associated with rendering a single image frame, etc.) An element may refer to a single BVH forming a group of BVHs known as a BVH structure, and / or a node of a BVH, as appropriate.

[0081] The selection process may be performed in any suitable manner.In some embodiments, the BVH selection unit 1110 is operable to discard one or more BVH elements corresponding to surfaces whose orientation shares the sign of at least a first vector component with the incident ray.

[0082] In some embodiments, the discarding process may result in discarding all elements of the BVH structure that are not necessary for performing the ray tracing process. For example, all nodes of the BVH except those to be utilized may be discarded, or all BVHs that do not include nodes for surfaces of a particular orientation may be discarded. That is, the discarding of elements of the BVH structure may be performed to reduce the number of nodes to any appropriate degree.

[0083] For example, in Figure 8In the example of , this may result in discarding any one or more BVHs 800; for reference Figure 9 Similar discarding can be performed as discussed with respect to the embodiments of BVH 910. Figure 10 In an embodiment, any number (such as five, although any other number may be suitable) of BVH structures 1000 (and corresponding unused BVHs 1010) may be discarded.

[0084] The ray tracing unit 1120 is operable to perform a ray tracing process using the remaining BVH elements.As described above, the ray tracing process may form part of a general image rendering process, such as for a computer game or video.

[0085] Figure 11 The arrangement is an example of a processor (e.g., a GPU and / or CPU located in a game console or any other computing device) that is operable to perform ray tracing processing (e.g., as part of an image rendering function) and is particularly operable to:

[0086] identifying a BVH structure for generating an image of the virtual environment, the BVH structure including information about one or more surfaces in the virtual environment;

[0087] discarding one or more elements of the BVH structure based on the direction of the incoming ray; and

[0088] Perform ray tracing processing using the remaining BVH elements.

[0089] Figure 12 A system for generating a BVH for use in ray tracing processing is schematically shown. The system includes a surface identification unit 1200, a surface grouping unit 1210, and a BVH structure generation unit 1220. The system can be implemented in a content creation system, such as a computer for designing virtual environments or for generating them based on input real environment information.

[0090] The surface identification unit 1200 is operable to identify one or more surfaces within a virtual environment. This identification may include determining any suitable information about a surface in the environment, such as its orientation, size, shape, color, reflectivity, or the identity of an object to which the surface belongs. Although reference is made herein to a virtual environment, it is contemplated that the same techniques may be applied to images or videos of a real environment as part of the process of generating a virtual environment.

[0091] The surface grouping unit 1210 is operable to generate a grouping of one or more surfaces based on the identified surface orientations. The grouping process can be implemented according to any of the above examples or indeed any suitable process. For example, the grouping process can include identifying a representative orientation for each group (such as determining the surface normal direction of each face of a unit cube) and then assigning each identified surface to one or more groups having the most similar (or suitably similar) surface normals.

[0092] It should be apparent from this discussion that, where appropriate, a surface can be assigned to more than one grouping. For example, if two groups are equally (or substantially equally) appropriate (e.g., the surface normals of each group are within a threshold difference of the surface normals of the assigned surfaces), then the surface can be placed in both groups. While this will of course increase the size of the BVH structure due to duplication, when implemented in a suitable manner, it can result in more efficient BVH structure traversal. For example, by allowing groups to effectively overlap, a smaller number of BVHs or BVH nodes can be utilized in at least some use cases.

[0093] The BVH structure generation unit 1220 is operable to generate a BVH according to the generated grouping, wherein the BVH structure includes one or more elements and information about one or more surfaces.

[0094] Figure 12 The arrangement is an example of a processor (e.g., a GPU and / or CPU located in a game console or any other computing device) that is operable to generate a BVH for use in a ray tracing process, and is particularly operable to:

[0095] identifying one or more surfaces in the virtual environment;

[0096] generating a grouping of one or more surfaces according to the identified surface orientations; and

[0097] A BVH is generated according to the generated grouping, wherein the BVH structure includes one or more elements and information about one or more surfaces.

[0098] Figure 13 A method for performing a ray tracing process is schematically shown, which may be performed using, for example, Figure 11 In some embodiments, the method may form part of an image rendering process.

[0099] Step 1300 includes identifying a bounding volume hierarchy (BVH) structure for use in generating an image of the virtual environment, the BVH structure including information about one or more surfaces within the virtual environment.

[0100] Step 1310 includes discarding one or more elements of the BVH structure based on the direction of the incident ray.

[0101] Step 1320 includes performing a ray tracing process using the remaining BVH elements.

[0102] Figure 14 The method for generating a BVH for use in a ray tracing process is schematically shown. For example, Figure 11 The arrangement is realized Figure 14 method.

[0103] Step 1400 includes identifying one or more surfaces within the virtual environment.

[0104] Step 1410 includes generating a grouping of one or more surfaces according to the identified surface orientations.

[0105] Step 1420 includes generating a BVH based on the generated grouping, wherein the BVH structure includes one or more elements and information about one or more surfaces.

[0106] As described above, embodiments of the present disclosure can enable the generation of a more efficient BVH structure, thereby reducing the cost of traversing the generated BVH structure. Due to the reduction in ray tracing processing time, this reduction in traversal processing cost can lead to more responsive image rendering times, or the generation of higher quality images without significantly increasing the associated processing cost.

[0107] The above techniques can be implemented in hardware, software, or a combination of both. Where a software-controlled data processing apparatus is employed to implement one or more features of an embodiment, it will be understood that such software and storage or transmission media such as non-transitory machine-readable storage media that provide such software are also considered embodiments of the present disclosure.

Claims

1. A system for performing a ray tracing process, the system comprising: a hierarchical bounding box identification unit operable to identify a hierarchical bounding box structure for generating an image of a virtual environment, the hierarchical bounding box structure comprising information about one or more surfaces within the virtual environment, the information comprising information identifying a grouping of the one or more surfaces according to one or more surface orientations; a hierarchical bounding box selection unit operable to discard one or more elements of the hierarchical bounding box structure according to a direction of an incident ray before traversal of the hierarchical bounding box structure; as well as A ray tracing unit is operable to perform a ray tracing process using the remaining hierarchy bounding box elements.

2. The system of claim 1, wherein: The hierarchical bounding box structure includes a single hierarchical bounding box having a plurality of nodes, each node corresponding to a surface of a corresponding orientation or range of orientations, and The hierarchical bounding box selection unit is operable to discard one or more nodes of the hierarchical bounding box.

3. The system of claim 1 , wherein: The hierarchical bounding box structure includes a plurality of hierarchical bounding boxes, each hierarchical bounding box corresponds to a surface with a corresponding orientation or orientation range, and The hierarchy bounding box selection unit is operable to discard one or more hierarchy bounding boxes.

4. The system according to claim 3, wherein: Two or more of the plurality of hierarchical bounding boxes share one or more nodes.

5. The system according to claim 1, wherein: The hierarchical bounding box selection unit is operable to determine a group of hierarchical bounding box elements to be used for ray tracing according to a direction of the incident ray.

6. The system according to claim 1, wherein: The hierarchy bounding box selection unit is operable to discard one or more hierarchy bounding box elements corresponding to surfaces whose orientation shares a sign of at least a first vector component with the incident ray.

7. The system of claim 1, wherein: Each of the one or more groups resulting from the grouping of the one or more surfaces corresponds to a face of a three-dimensional shape, and Each surface is assigned to the group corresponding to the face whose surface normal is closest to the surface normal of the surface.

8. The system according to claim 7, wherein: The three-dimensional shape is a cube.

9. A system for generating a hierarchical bounding box structure for use in a ray tracing process, the system comprising: a surface identification unit operable to identify one or more surfaces within the virtual environment; a surface grouping unit operable to generate a grouping of one or more surfaces according to the identified surface orientations; as well as a hierarchical bounding box structure generating unit operable to generate the hierarchical bounding box structure according to the generated groupings, The hierarchical bounding box structure includes one or more elements and information about the one or more surfaces, the information including information identifying groupings of the one or more surfaces according to one or more surface orientations, and the generated hierarchical bounding box structure is selectively traversed based on the information.

10. A method for generating an image, the method comprising: identifying a hierarchical bounding box structure for generating an image of a virtual environment, the hierarchical bounding box structure comprising information about one or more surfaces within the virtual environment, the information including information identifying a grouping of the one or more surfaces according to one or more surface orientations; Before traversing the hierarchical bounding box structure, discarding one or more elements of the hierarchical bounding box structure according to the direction of the incident light; as well as Perform ray tracing processing using the remaining hierarchy bounding box elements.

11. A method for generating a hierarchical bounding box structure for use in a ray tracing process, the method comprising: identifying one or more surfaces within the virtual environment; generating a grouping of one or more surfaces based on the identified surface orientations; as well as Generate the hierarchical bounding box structure according to the generated groups, The hierarchical bounding box structure includes one or more elements and information about the one or more surfaces, the information including information identifying groupings of the one or more surfaces according to one or more surface orientations, and the generated hierarchical bounding box structure is selectively traversed based on the information. 12 . A non-transitory machine-readable storage medium storing a computer program, wherein when the computer program is executed by a processor, the processor is prompted to perform the method according to claim 10 or 11.

Citation Information

Patent Citations

  • Non-divergent parallel traversal of a bounding volume hierarchy

    US20190057539A1

  • Apparatus and method for compressing leaf nodes of a bounding volume hierarchy (BVH)

    US20190318445A1