Image generation system and method

By employing bounding volume hierarchies and directional dependence in ray tracing, the computational intensity and latency issues are mitigated, enabling efficient and high-quality image rendering in virtual reality applications.

JP7617728B2Active Publication Date: 2025-01-20SONY INTERACTIVE ENTERTAINMENT LLC
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
JP2020192438
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-11-29
Filing Date
2020-11-19
Publication Date
2025-01-20
Estimated Expiration
2040-11-19

AI Technical Summary

Technical Problem

Ray tracing techniques are computationally intensive and susceptible to long rendering times, particularly in virtual reality applications, making them undesirable for real-time use due to latency concerns.

Method used

The use of bounding volume hierarchies (BVHs) to efficiently represent objects in a scene, combined with directional dependence for faster traversal, reduces the number of intersection tests and calculations in ray tracing processes.

Benefits of technology

This approach significantly reduces the number of calculations required, allowing for more responsive image rendering and higher-quality visuals without substantial increases in processing time, enhancing the realism of virtual reality experiences.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007617728000001
    Figure 0007617728000001
  • Figure 0007617728000002
    Figure 0007617728000002
  • Figure 0007617728000003
    Figure 0007617728000003
Patent Text Reader

Abstract

To provide an image generation system and a method for performing a ray tracing process.SOLUTION: An image generation system includes: a BVH identification unit operable to identify a BVH (bounding volume hierarchy) structure used for generating an image of a virtual environment; a BVH selection unit operable to discard one or a plurality of elements of the BVH structure according to a direction of an incident light beam; and a ray tracing unit operable to perform a ray tracing process using the remaining BVH elements. In the BVH identification unit, the BVH structure includes information on one or a plurality of surfaces in a virtual environment.SELECTED DRAWING: Figure 11
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 technology]

[0002] The "Background" description provided herein is intended to generally present the context of the present disclosure. The inventors' work to the extent described in this Background section, as well as aspects of this description that may not be prior art at the time of filing, are not admitted, expressly or impliedly, to be prior art to the present invention.

[0003] Ray tracing is a rendering technique that has attracted widespread interest in recent years for its ability to produce a high degree of visual realism. Ray tracing is often used in the simulation of many optical effects in images, such as reflections, shadows, and chromatic aberration.

[0004] Ray tracing can be useful in computer-based image generation processes, such as generating special effects in movies and images for computer games. Although such techniques have been discussed and used for a relatively long time, it is only recently that processing hardware has become powerful enough to enable ray tracing techniques to be implemented with low enough latency to be acceptable for real-time applications, or at least for more widespread use within certain content.

[0005] Such techniques effectively aim to determine the visual properties of objects in a scene by tracing rays from the camera to each pixel in the scene. Naturally, this is a fairly computationally intensive process, and since it is expected that a large number of pixels will be used to display the scene, even simple scenes (such as those with few reflections) can result in a large number of calculations. With this in mind, scanline rendering and other rendering methods have generally been favored for rendering where lower image quality, but latency is considered to be critical.

[0006] One technique that attempts to improve rendering times associated with ray tracing based methods is the use of bounding volumes to represent groups of objects. Using bounding volumes is advantageous in that rays can perform intersection tests on groups of objects together, rather than on a per object basis. This means that the number of intersection tests is reduced, and each calculation is simplified by using simplified shapes (such as boxes or spheres) to represent the objects. While advantageous in principle, challenges in defining a suitable bounding volume structure can be problematic.

[0007] Ray tracing is of particular interest for virtual reality (VR) applications as a technique that can enhance the perceived realism of the generated video content. In such applications, it is naturally desirable to increase the realism of the presented visuals in order to improve the sense of immersion experienced by viewers of the content, such as users of head-mounted display devices (HMDs). However, ray tracing techniques have not been widely used in VR applications, as these applications are particularly sensitive to long rendering times.

[0008] It is therefore desirable to implement a ray tracing algorithm in a way that can produce realistic images without undesirably increasing the latency of the image rendering process.

[0009] It is in the context of the above problems that the present disclosure addresses. Summary of the Invention

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

[0011] Further respective aspects and features of the present disclosure are defined in the appended claims. It is to be understood that both the foregoing general description of the invention and the following detailed description are exemplary of the invention but are not restrictive. [Brief description of the drawings]

[0012] A more complete understanding of the present disclosure and many of the attendant advantages will be readily obtained as the same becomes better understood by considering the following detailed description in conjunction with the accompanying drawings, in which:

[0013] [Figure 1] FIG. 2 is a schematic diagram of a bounding volume hierarchy. [Diagram 2] FIG. 2 is a schematic diagram of a bounding volume. [Diagram 3] FIG. 2 is a schematic diagram of multiple bounding volumes. [Figure 4] FIG. 1 is a schematic diagram of a cube in three-dimensional space. [Diagram 5] FIG. 1 is a schematic diagram of two-dimensional grouping. [Figure 6] FIG. 6 is a schematic diagram of the grouping of FIG. 5 by incident light rays. [Figure 7] FIG. 13 is a schematic diagram of another two-dimensional grouping. [Figure 8] FIG. 1 is a schematic diagram of an exemplary BVH structure in which multiple unrelated BVHs are provided. [Figure 9] FIG. 1 is a schematic diagram of an exemplary BVH structure in which a single BVH is provided. [Figure 10] FIG. 1 is a schematic diagram of an exemplary BVH structure in which multiple associated BVHs are provided. [Figure 11] FIG. 1 is a schematic diagram of a system for performing a ray tracing process. [Figure 12] FIG. 1 is a schematic diagram of a system for generating a BVH for use in a ray tracing process. [Figure 13] FIG. 1 is a schematic diagram of a method for performing a ray tracing process. [Figure 14]FIG. 1 is a schematic diagram of a method for generating a BVH for use in a ray tracing process. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0014] This disclosure relates to systems and methods in which a bounding volume hierarchy (BVH) is used to generate information about an object's ability to move and its environment, which differs from the traditional use of the BVH, which is used to order and represent objects so that ray tracing (i.e., graphics rendering) techniques can be performed more efficiently.

[0015] Figure 1 shows a simplified example of a BVH in schematic form. In this example, each box (bounding volume) represents one or more objects at a given level of detail. Each box is contained in the box above it in the hierarchy. For example, box 110 contains information about all objects in the environment, while each of boxes 120 contains a subset of objects. These subsets may be determined in any suitable manner, but it is often considered preferable to group together objects that are close to each other in the environment and represent them with the same bounding volume.

[0016] The level of detail for each level may be determined in any suitable manner, and the BVH may have a maximum level of detail defined. For example, the BVH may end up with a bounding volume that represents a group of objects. This will result in a coarse representation, but will be small in size and can be traversed very quickly. Alternatively, the BVH may end up with a bounding volume that represents a portion of an object. This will provide a finer approximation of the object, but of course this will cause the BVH to be large and take longer to traverse. The BVH may be defined to include elements of both, such that some objects are represented more finely / coarsely than others.

[0017] The BVH can be generated in a variety of ways, each with their own advantages and disadvantages. For example, a top-down approach can be employed that defines the bounding volume starting from the largest possible set. That is, the input (such as a set of objects in the environment, or a representation of those objects) is divided into two or more subsets, and each of the subsets is further divided. That is, the bounding volume is generated starting from box 110, proceeding to box 120, and so on. While this represents a fast implementation, it often results in significant inefficiencies in the BVH, which can lead to a large overall size and reduced ease of navigation.

[0018] Another method is a bottom-up approach, where the bounding volume is defined starting from the smallest volume of the BVH. In the example of FIG. 1, this means that bounding volume 140 is defined first, and then working upwards to bounding volume 130. Bottom-down approaches can generally produce better (i.e., more efficient) BVHs than top-down approaches, but can be more difficult to implement effectively.

[0019] Each of these methods requires that information about all objects be available before the BVH can be generated. Of course, while this is acceptable for many applications, in other applications it may be preferable to be able to generate the BVH on the fly.

[0020] A third approach that may be considered is that of insertion methods. These can be performed on the fly, by inserting an object into the bounding volume of the BVH on an object-by-object basis. This means that only information about the object is required at the time of insertion. Insertion techniques encompass a variety of related methods in which the placement of the object is determined to identify an optimal or suitable placement. For example, a function may be defined that evaluates the impact of the insertion on the BVH (in terms of size or navigability, etc.) with which the insertion is performed to minimize or in some way reduce the impact on the BVH.

[0021] Of course, this is not limited to what has been discussed above, but any other suitable approach consistent with the teachings of the present disclosure may be contemplated.

[0022] Any suitable input data may be represented using the BVH and associated bounding volumes. For example, a video game may provide a suitable source of input data for generating such structures, where the input information may be data regarding virtual objects defining their respective dimensions and positions. Similarly, information describing a real environment may be used as an information source. For example, information may be generated from images of the real environment and objects within the environment, and this information may be used to generate a BVH that may be used to render images of the environment.

[0023] 2 and 3 show a schematic of the use of bounding volumes in a ray tracing algorithm.

[0024] 2 shows a schematic representation of a viewport 200 through which rays are traced. This may be, for example, a camera view in a virtual environment presented to a viewer. The scene includes an object 210 bounded by a bounding volume 220. Rather than testing each ray for intersection with each of the polygons that make up the object 210, which may be quite numerous, intersection testing is performed only with respect to the bounding volume 220. Of course, rays that do not intersect with the bounding volume 220 do not intersect with the polygons that form the object 210. Of course, rays that do not intersect with the polygons that form the object 210 may intersect with the bounding volume 220.

[0025] For example, if 100 rays are to be subjected to intersection testing, then only 100 tests are required at this stage, because there is only one object (bounding volume 220) to be tested for each ray, not 100 multiplied by the number of polygons that make up the object 210.

[0026] 3 shows bounding volume 220 in an expanded view, with smaller bounding volumes 230 and 231 being used to represent object 210. Bounding volumes 230 and 231 may be intersected for each ray found to intersect bounding volume 220 to obtain a finer approximation of the visual appearance of object 210.

[0027] For example, if only 10 rays are found to intersect the bounding volume 220, then 30 tests (i.e., for each ray at each bounding volume) would be required at this stage, which is again a very small number compared to the 100 tests multiplied by the number of polygons that make up the object 210, as discussed above. It is therefore clear that the reduced number of rays considered for intersection is sufficient to offset the increased number of bounding volumes considered, such that the total number of intersection tests is less than would be required if no bounding volumes were defined and no BVHs were used.

[0028] In an actual implementation, these volumes may be further divided until the surface of the object 210 is represented with a level of accuracy appropriate for the application, such as at which point polygons may be used instead, at which point the bounding volume and the polygon (primitive) representing the object occupy a similar display area.

[0029] In these examples, bounding volume 220 may be considered to be superior in the BVH to bounding volumes 230, 231. For example, bounding volume 220 may correspond to a volume such as 120 in FIG. 1, and the smaller bounding volumes 230, 231 may correspond to a volume such as 130 in FIG.

[0030] From these figures, it is clear that the number of calculations performed in the ray tracing method can be significantly reduced by using bounding volumes and BVHs, since the number of intersections to be evaluated can be significantly reduced.

[0031] The efficiency of such processes may be further improved by better defining the BVH. In this discussion, this refers to a BVH structure that allows for faster or more efficient traversal, not necessarily properties of the BVH structure itself. In an embodiment of the present disclosure, the BVH structure is defined to support directional dependencies so that traversal can be improved.

[0032] 4 shows a schematic representation of a cube in three-dimensional space. As shown, each of the faces is aligned (in a positive or negative direction) with a respective axis of a Cartesian coordinate system. That is, cube 400 has a first face 410 aligned in the positive x-direction (and a corresponding face on the opposite side of the cube aligned in the negative x-direction), a second face 420 aligned in the positive y-direction (and a corresponding face on the opposite side of the cube aligned in the negative y-direction), and a third face 430 aligned in the positive z-direction (and a corresponding face on the opposite side of the cube aligned in the negative z-direction).

[0033] With this in mind, it may be possible to identify the main or dominant direction of the surface by comparing the orientation of the object's surface to one of the faces 410, 420, 430 (or the faces opposite them). That is, each of the object's surfaces can be approximated (or otherwise represented) by one of the faces of the cube 400 by determining which face has the most similar orientation. This may be determined, for example, by comparing face normals or by identifying the direction from associated metadata, etc.

[0034] Figure 5 shows a schematic of a two-dimensional example of mapping the surfaces of an object to corresponding groups used for approximation, in line with the above description. The figure shows a dodecagon 500, each of whose edges is assigned to one of four groups 510, 520, 530, 540. Each of these groups corresponds to one of the faces, as shown in Figure 4. For example, group 540 corresponds to face 410, and group 530 corresponds to face 420.

[0035] As can be seen, the edges of shape 500 are assigned to these groups according to the direction the edges are oriented. For example, it can be seen that each of the surfaces in group 530 has a substantial +y orientation, i.e., the y component of the normal vector for that surface has the largest magnitude relative to the other components.

[0036] Of course, the same process may be considered appropriate in three dimensions. The two-dimensional case is considered here for simplicity. In the three-dimensional case, the same analysis (i.e., for determining the orientation of a surface) applies to considering the z-component as well as the x- and y-components. Of course, any suitable coordinate system may be used. It is not necessary to use Cartesian coordinates to form the basis of this process.

[0037] By implementing such surface grouping based on surface orientation, it becomes possible to use the groups to generate a BVH structure depending on the orientation of the surfaces in the virtual environment. This is advantageous in that 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. Thus, by providing several small BVHs based on the directionality, the cost of traversing each BVH is reduced. In general, this reduction is sufficient to at least offset the increased processing cost associated with traversing multiple BVHs.

[0038] The following description refers to individual BVHs corresponding to each group, but this should not be considered limiting. Further description related to BVH structure is provided below.

[0039] For example, consider the rendering of object 500 in Fig. 5. Fig. 6 shows a pair of incident rays 600 and 610 that may be associated with different virtual camera positions in a virtual environment that includes object 500. These rays may indicate the general direction of the virtual camera, or multiple rays may be considered when determining which BVH is of interest in the ray tracing process. Of course, the determination may be performed dynamically, recognizing the fact that the ray tracing process may be performed continuously (or repeatedly) during the image rendering process. That is, the determination may be a determination of which portion of the BVH structure is used for that particular ray tracing process.

[0040] Because ray 600 is perpendicularly incident on group 540, the BVHs corresponding to group 540 may be considered essential to the ray tracing process. The surfaces in this group are certainly visible if not occluded or otherwise. The BVHs corresponding to groups 510 and 530 may be considered useful. It is clear that at least some of the surfaces in each of these groups are visible to ray 600. However, the BVHs for these groups may be omitted in some embodiments to provide a faster or less expensive ray tracing process since effects due to relative orientation may be reduced.

[0041] Of course, in such an example, the last group 520 is completely hidden. Surfaces facing the same direction (or at least substantially the same direction) as the ray do not directly interact with that ray. Therefore, it is conceivable that the BVH corresponding to group 520 can be omitted entirely without significant impact on the ray tracing process. This therefore simplifies the traversal process associated with that ray tracing.

[0042] Turning to ray 610, it is clear that ray 610 includes both a negative x component and a positive y component relative to its direction. This means that ray 610 is incident on surfaces in both groups 510 and 540, since each of these groups includes surfaces with normal vectors that have at least one component with a different sign from the sign of the incident ray 610 (i.e., each of the surfaces in these groups has a normal with a positive x component and / or a negative y component). Not all surfaces in these groups may intersect with ray 610, but it is sufficient that at least some of them do.

[0043] As is further evident from Figure 6, ray 610 is not directly incident on any surface of groups 520 or 530. Thus, each of the BVHs corresponding to these groups can be omitted, i.e., traversal of the BVH associated with ray 610 need only traverse the BVHs corresponding to groups 510 and 540.

[0044] Of course, these are only example configurations, and are intended to illustrate the general principles of direction-based traversal of BVH structures. Numerous modifications and variations are discussed below and will become apparent to those skilled in the art upon reading this disclosure.

[0045] For example, while the above description is limited to describing the surfaces of a cube aligned with three Cartesian coordinate axes, this is not a required feature. Figure 7 shows, in the context of the examples of Figures 5 and 6, a schematic modification in which the number of groups is increased.

[0046] 7, twelve groups 700 (corresponding to one of the twelve directions or surface orientations, respectively) are defined rather than four groups 510, 520, 530, 540. Of course, this number is purely exemplary, and the present teachings can be extended to any number of groups as desired, including both more and fewer groups (and, as noted above, to three dimensions).

[0047] It will be appreciated that when a larger number of groups are used, the size of the BVH corresponding to each group is reduced, which can further reduce the traversal time for each BVH and allows for a larger number of BVHs to be discarded (or not traversed) based on directional considerations.

[0048] For example, when ray 600 enters the shape of Figure 7 with the updated grouping configuration, only five groups 700 can be considered to intersect with ray 600 (the bottom group and two groups on either side of the bottom group). This may represent an overall reduction in processing cost due to smaller size of groups defined than in the example of Figure 6 (42% vs. 75%), and therefore a smaller total number of nodes to be traversed.

[0049] While the above has been described using regular shapes, grouping may instead be performed based on the orientation of surfaces of irregular shapes. For example, an analysis of the virtual environment (or the real environment captured to generate the corresponding virtual environment) may be performed to determine the relative proportions of the orientations of surfaces in the environment. A decision on how to group surfaces in the environment may be made in response to this analysis. For example, in an environment where many objects cannot be viewed from certain directions (e.g., because they are mounted on a wall), a more irregular grouping may be considered. For example, group 520 of FIG. 5 may be defined with groups 510, 530, and 540 replaced by corresponding group 700 (to match the backs of wall-mounted objects).

[0050] Once the surface grouping has been performed, a BVH should be generated according to this grouping. Of course, the BVH structure may vary. This may depend on a particular application, a particular environment or object configuration, or personal preferences. The following description provides examples of some possible BVH structures that may be considered in the context of the grouping of BVHs based on the faces of a cube, as described in relation to FIG.

[0051] Figure 8 illustrates generally an exemplary BVH structure in which multiple unrelated BVHs 800 are provided. In this case, six BVHs 800 are provided, one BVH 800 corresponding to each face of the cube of Figure 4. When utilizing a BVH structure, the BVHs 800 used may be independently selected based on directional information associated with the BVHs and one or more incident rays.

[0052] 9 illustrates a schematic of an exemplary BVH structure in which a single BVH 900 comprises several top nodes 910, each of which represents a branch of the BVH corresponding to a particular surface orientation. For example, each of the BVH nodes 910 may correspond to a surface orientation approximated by the faces of the cube of FIG. 4. In such a structure, the nodes 910 may be selectively traversed based on the orientation information.

[0053] FIG. 10 illustrates an exemplary BVH structure in which multiple BVHs 1000 are provided and each is associated with a subset of nodes 1010. In this example, associations for two of the BVHs 1000 are shown for clarity of illustration. Specifically, the BVHs 1000 are each associated with a different set of five nodes 1010, such that each BVH 1000 omits BVH data related to a particular direction. Of course, the BVHs 1000 may be defined to be associated with any suitable number of nodes 1010 to provide an effective BVH structure. For example, each of the BVHs 1000 may instead be associated with a pair of nodes 1010 (rather than five), and multiple BVHs 1000 may be selected rather than just one.

[0054] Such a configuration may be advantageous in that it reduces data storage requirements compared to storing multiple BVHs, without requiring traversal that must ignore nodes as would be the case when using a single BVH as in FIG. 9.

[0055] The determination of which BVH to use may be determined in any suitable manner. As noted above, a first example is to consider whether the surface normal shares a vector direction with one or more coordinate directions. Another example is to consider the sign of each of the vector components of one or more incident rays (x, y, and z coordinates in an embodiment where Cartesian coordinates are used) and input those vectors into the following equation: BVH_index=sign(direction.x)+2*sign(direction.y)+4*sign(direction.z)

[0056] By making the value of sign() 1 if the vector is intended to have a positive component in a given direction and 0 if it has a negative direction, this formula defines eight unique BVH indices depending on the direction of the incoming ray. By associating some configuration of the BVH or BVH structure (such as choosing which node to use) with each of these BVH indices, we can select the appropriate set of BVH information to use to perform ray tracing based on the directional information. Of course, a similar formula can be used regardless of the number of indexes required, with variables updated to determine the number of different indexes.

[0057] Alternatively or additionally, further calculations can be used to identify BVH groups within a particular group identified by the BVH index calculated above. For example, it can be determined whether the value of each vector component is above a certain threshold and whether this changes the BVH that may be required for ray tracing. For example, using rays 600 and 610 in FIG. 6, ray 600 can be considered to have a positive y component (because it is zero), or a similar ray can be defined with a very small y component. This would result in the same BVH index being identified using the formula above, but ray 600 still likely intersects with the surface of group 530. Therefore, it can be advantageous to identify such different cases within each index.

[0058] 11 shows a schematic diagram of a system for performing a ray tracing process. The system comprises a BVH identification unit 1100, a BVH selection unit 1110, and a ray tracing unit 1120. Such a system may be incorporated in any suitable processing device, such as, for example, a graphics processing unit, or a computer or game console.

[0059] The BVH identification unit 1100 is operable to identify a BVH structure for use in generating an image of the virtual environment, the BVH structure including information about one or more surfaces in 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 groupings to be used (such as the number of groups, and the directional dependency of those groups), as well as how the BVH structure is configured (such as selecting from among the configurations described in connection with Figures 8-10 or any other suitable configurations).

[0060] Reference to information about one or more surfaces in a virtual environment may be interpreted to mean information about the shape, position, and / or size of the surfaces, in addition to information about the particular orientation of the surfaces, etc. Other characteristics of the surfaces, such as color information, reflectance information, or object identifiers, may also be indicated in the information as appropriate.

[0061] As noted above, the BVH structure can take any suitable form.

[0062] In some embodiments, the BVH structure includes multiple BVHs, each corresponding to a surface in a respective orientation or range of orientations, and the BVH selection unit is operable to discard one or more BVHs. Such a structure is shown, for example, in FIG.

[0063] In some embodiments, the BVH structure includes a single BVH having multiple nodes each corresponding to a surface in a respective orientation or range of orientations, and the BVH selection unit is operable to discard one or more nodes of the BVH. Such a structure is shown, for example, in FIG.

[0064] In some embodiments, the BVH structure includes multiple BVHs, each corresponding to a surface in a respective orientation or range of orientations, where two or more of the multiple BVHs share one or more nodes, and the BVH selection unit is operable to discard one or more BVHs. Such a structure is shown, for example, in FIG.

[0065] As noted above, the BVH structure may include any suitable information regarding the surfaces. In some embodiments, the BVH structure includes information identifying groupings of surfaces according to their orientation. This may include both identification of the groups (and related parameters, such as orientations, associated with the groups) and assignment of surfaces to these groups. In some cases, each of the groups corresponds to a face of a three-dimensional shape (of course, other shapes, such as two-dimensional implementations, may be considered), and each surface is assigned to the group corresponding to the face having a face normal that best approximates the surface normal. As discussed in connection with FIG. 4, in some embodiments, it may be considered appropriate for the three-dimensional shape to be a cube, but in other cases, other shapes may be more appropriate.

[0066] The BVH selection unit 1110 is operable to discard one or more elements of the BVH structure depending on the direction of the incident ray, i.e., the BVH selection unit 1110 is operable to determine a group of BVH elements to be used for ray tracing depending on the direction of the incident ray.

[0067] In other words, the BVH selection unit 1110 is operable to determine which portions of the BVH structure are used for the ray tracing process (or at least a portion of a currently running process, such as a process associated with rendering a single image frame, etc.). Elements can refer to individual BVHs and / or nodes of a BVH that form a group of BVHs, optionally referred to as a BVH structure.

[0068] 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 oriented to share at least a first vector component sign with the incident ray.

[0069] In some embodiments, the discarding process may result in discarding all elements of the BVH structure that are not necessary for the execution of the ray tracing process. For example, all nodes of the BVH except those utilized may be discarded, or all BVHs that do not contain nodes of a particular orientation surface may be discarded. In other words, discarding elements of the BVH structure may be performed to reduce the number of nodes considered to any suitable extent.

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

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

[0072] The arrangement of FIG. 11 is operable to perform a ray tracing process (e.g., as part of an image rendering function), in particular identifying a BVH structure for use in generating an image of a virtual environment, the BVH structure including information regarding one or more surfaces within the virtual environment; discarding one or more elements of the BVH structure depending on the direction of the incident light, Run the ray tracing process using the remaining BVH elements FIG. 1 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

[0073] 12 shows a schematic diagram of a system for generating a BVH for use in a ray tracing process. The system comprises a surface identification unit 1200, a surface grouping unit 1210, and a BVH structure generation unit 1220. The system may be implemented in a content creation system, such as a computer used to design a virtual environment or to generate a virtual environment from input real-world environment information.

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

[0075] The surface grouping unit 1210 is operable to generate one or more groups of surfaces according to the orientation of the identified surfaces. The grouping process may be performed along any of the examples above, or indeed any suitable process. For example, the grouping process may include identifying a representative orientation of 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.

[0076] As will be apparent from this description, a surface may be assigned to more than one group, if desired. For example, if two groups are equally (or substantially equally) suitable (e.g., the surface normals of each group are within a difference threshold of the surface normal of the assigned surface), the surface may be placed in both groups. Naturally, this increases the size of the BVH structure due to repetition, but if implemented in an appropriate manner, more efficient BVH structure traversal may be obtained. For example, if groups can be effectively overlapped, then fewer BVHs or BVH nodes may be utilized, at least in some use cases.

[0077] The BVH structure generation unit 1220 is operable to generate a BVH according to the generated groups, where the BVH structure includes information regarding one or more elements and one or more surfaces.

[0078] The arrangement of FIG. 12 is operable to generate a BVH for use in a ray tracing process, in particular Identifying one or more surfaces in the virtual environment; generating one or more groups of surfaces according to the identified surface orientations; generating a BVH according to the generated groups, the BVH structure including one or more elements and information about one or more surfaces; FIG. 1 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

[0079] Figure 13 illustrates generally a method for performing a ray tracing process, which may be implemented, for example, using the arrangement of Figure 11. The method may in some embodiments form part of an image rendering process.

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

[0081] Step 1310 involves discarding one or more elements of the BVH structure depending on the direction of the incident ray.

[0082] Step 1320 involves performing a ray tracing process using the remaining BVH elements.

[0083] Figure 14 illustrates generally a method for generating a BVH for use in a ray tracing process. The method of Figure 14 can be implemented, for example, using the arrangement of Figure 11.

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

[0085] Step 1410 includes generating one or more groups of surfaces according to the orientation of the identified surfaces.

[0086] Step 1420 includes generating a BVH according to the generated groups, where the BVH structure includes information regarding the one or more elements and the one or more surfaces.

[0087] As noted above, embodiments of the present disclosure may enable more efficient BVH structures to be generated in that traversal of the generated BVH structures may have reduced costs. Such reduction in the cost of the traversal process may lead to more responsive image rendering times by reducing ray tracing process times, or by enabling the generation of high quality images without a substantial increase in associated processing costs.

[0088] The above techniques may be implemented in hardware, software, or a combination of the two. If a software-controlled data processing device is used to implement one or more features of the embodiments, it will be understood that such software, and storage or transmission media such as non-transitory machine-readable storage media on which such software is provided, are also considered embodiments of the present disclosure.

[0089] Thus, the foregoing discussion discloses and describes merely exemplary embodiments of the present invention. As will be understood by those skilled in the art, the present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Thus, the disclosure of the present invention is intended to illustrate, but not limit, the scope of the present invention, as well as the scope of other claims. The present disclosure, including readily identifiable variations of the teachings herein, defines in part the scope of the terms of the above claims, so as not to lose intellectual property rights to the subject matter of the invention.

Claims

1. 1. A system for performing a ray tracing process, comprising: a bounding volume hierarchy (BVH) identification unit operable to identify a BVH structure for use in generating an image of a virtual environment, the BVH structure including information about one or more surfaces within the virtual environment; a BVH selection unit operable to discard one or more elements of said BVH structure depending on the direction of an incident light ray; a ray tracing unit operable to perform a ray tracing process using the remaining BVH elements; Equipped with The system, wherein the act of discarding one or more elements of the BVH structure occurs prior to execution of a ray tracing process.

2. the BVH structure includes a single BVH having a plurality of nodes; the plurality of nodes corresponds to a surface at a particular orientation or range of orientations; The system of claim 1 , wherein the BVH selection unit is operable to discard one or more nodes of the BVH.

3. the BVH structure includes a plurality of BVHs having a plurality of nodes; the plurality of nodes corresponds to a surface at a particular orientation or range of orientations; The system of claim 1 , wherein the BVH selection unit is operable to discard one or more BVHs.

4. The system of claim 3 , wherein two or more of the plurality of BVHs share one or more nodes.

5. The system of claim 1 , wherein the BVH selection unit is operable to determine a group of BVH elements to be used for ray tracing depending on the direction of the incident ray.

6. The system of claim 1 , wherein the BVH selection unit is operable to discard one or more BVH elements corresponding to surfaces oriented to share a vector component sign of the incident ray.

7. The system of claim 1 , wherein the BVH structure includes information that identifies a grouping of the surfaces according to their orientation.

8. each of the groups corresponds to a surface of a three-dimensional shape; The system of claim 7 , wherein each surface is assigned to a group corresponding to the surface having a surface normal that best approximates the surface normal of the surface.

9. The system of claim 8 , wherein the three-dimensional shape is a cube.

10. 1. A system for generating a bounding volume hierarchy (BVH) structure for use in a ray tracing process, comprising: a surface identification unit operable to identify one or more surfaces within the virtual environment; a surface grouping unit operable to generate one or more groups of surfaces depending on the identified surface orientations; a BVH structure generation unit operable to generate a BVH in response to the generated groups, a BVH structure generating unit, the BVH structure including one or more elements and information regarding the one or more surfaces; A system comprising:

11. 1. A method for generating an image, comprising: identifying a bounding volume hierarchy BVH structure for use in generating an image of a virtual environment, the BVH structure including information about one or more surfaces within the virtual environment; discarding one or more elements of the BVH structure depending on the direction of the incident light; performing a ray tracing process using the remaining BVH elements; Including, A method, wherein discarding one or more elements of the BVH structure occurs prior to performing a ray tracing process.

12. 1. A method for generating a BVH structure for use in a ray tracing process, comprising: Identifying one or more surfaces in a virtual environment; generating one or more groups of surfaces according to the identified surface orientations; generating a bounding volume hierarchy BVH in response to the generated groups, the BVH structure includes one or more elements and information regarding the one or more surfaces; A method comprising:

13. 1. A non-transitory machine-readable storage medium storing computer software for causing a computer to perform a method for generating a BVH structure for use in a ray tracing process, comprising: When executed by the computer, Identifying one or more surfaces in a virtual environment; generating one or more groups of surfaces according to the identified surface orientations; generating a bounding volume hierarchy BVH in response to the generated groups, the BVH structure includes one or more elements and information regarding the one or more surfaces; A non-transitory machine-readable storage medium comprising:

Citation Information

Patent Citations

  • Image generating device and program

    JP2003263649A

  • Image forming device and program

    JP2003271988A

  • Three-dimensional data processor, three-dimensional image generation device, navigation device and three-dimensional data processing program

    JP2009157591A

  • Ray-Box Intersection Test Using Inner-Product Based Fixed Function Logic

    JP2017534976A

  • Efficient hierarchical traversal in ray tracing applications

    JP2018513469A