Search

CN-121986362-A - Lossy geometry compression using interpolated normals for BVH construction and rendering

CN121986362ACN 121986362 ACN121986362 ACN 121986362ACN-121986362-A

Abstract

An apparatus and method for rendering objects using ray tracing are provided, the method comprising generating a low resolution version of a high resolution mesh representing objects in a scene, determining points on a surface of a surface patch defined for one of triangles and bilinear quadrilaterals of the low resolution version of the high resolution mesh, performing a ray intersection test by projecting rays towards a surface of the high resolution mesh, the surface of the high resolution mesh being approximated from new points calculated by offset values along interpolated normals from points on the surface of the surface patch, and rendering the objects in the scene based on the ray intersection test.

Inventors

  • Holger Glen

Assignees

  • 超威半导体公司

Dates

Publication Date
20260505
Application Date
20240611
Priority Date
20230927

Claims (20)

  1. 1. A method for rendering objects in a scene using ray tracing, the method comprising: generating a low resolution version of a high resolution mesh representing objects in the scene; Determining points on a surface of a surface patch defined for one of a triangle and a bilinear quadrilateral of the low resolution version of the high resolution grid; Performing a ray intersection test by projecting a ray of light toward a surface of the high resolution grid, the surface of the high resolution grid being approximated from a new point calculated by an offset value along an interpolated normal from the point on the surface of the surface patch, and The objects in the scene are rendered based on the ray intersection test.
  2. 2. The method of claim 1, wherein each offset value is a distance from a point on a surface of a surface patch to a new point on a surface of the high resolution grid.
  3. 3. The method of claim 2, wherein The offset value is stored prior to rendering the object in the scene, an The surface of the high resolution grid is approximated by moving from the point on the surface of the surface patch along a corresponding interpolated normal until the distance defined by the offset value is reached.
  4. 4. The method of claim 1, wherein the surface patches comprise at least one of triangle surface patches and quadrilateral surface patches, each triangle surface patch being defined for a corresponding triangle of the low resolution version of the high resolution grid, each quadrilateral surface patch being defined for a corresponding bilinear quadrilateral of the low resolution version of the high resolution grid, and each interpolation normal being determined based on at least one of a combination of three vertex normals of the corresponding triangle of the low resolution version of the high resolution grid and a combination of four vertex normals of the corresponding bilinear quadrilateral.
  5. 5. The method of claim 1, wherein the surface patches comprise at least one of triangular surface patches and quadrilateral surface patches, each triangular surface patch being defined for a corresponding triangle of the low resolution version of the high resolution grid, each quadrilateral surface patch being defined for a corresponding bilinear quadrilateral of the low resolution version of the high resolution grid, The high resolution mesh includes at least one of a first number of triangles and a first number of bilinear quadrilaterals representing objects in the scene, The low resolution version of the high resolution mesh includes at least one of a second number of triangles and a second number of bilinear quadrilaterals representing the object in the scene, and The first number of triangles is greater than the second number of triangles.
  6. 6. The method of claim 1, wherein rendering the objects in the scene comprises rendering a plurality of frames of objects, and The offset value of the plurality of frames is determined prior to rendering any of the plurality of frames.
  7. 7. A method for compressing geometry to render objects in a scene using ray tracing, the method comprising: Generating a low resolution version of a high resolution mesh, the low resolution version of the high resolution mesh comprising at least one of triangles and bilinear quadrilaterals representing objects in the scene; one of a triangle and a bilinear quadrilateral for the low resolution version of the high resolution grid: Generating a curved patch comprising a curved surface; determining an interpolated normal at a point on the surface of the surface patch by interpolating a normal of a low resolution grid, and Determining an offset value as a distance from a point on the surface to a surface of the high resolution grid for each of the points, and Objects in the scene are rendered using a ray tracing acceleration structure by projecting rays toward a new point on a surface approximating the high resolution grid, the new point being formed by the point on the curved surface, the at least one of the triangle and the bilinear quadrilateral being offset by the offset value along the interpolated normal, and performing a ray intersection test.
  8. 8. The method of claim 7, wherein for each surface patch, the interpolated normal is determined using data representing a normal to the one of a triangle and a bilinear quadrilateral of the low resolution grid without using at least one of any adjacent triangle and any adjacent bilinear quadrilateral of the low resolution grid.
  9. 9. The method of claim 7, wherein the surface patch comprises at least one of a triangular surface patch and a quadrilateral surface patch, the triangular surface patch being defined for a corresponding triangle of the low resolution version of the high resolution grid, the quadrilateral surface patch being defined for a corresponding bilinear quadrilateral of the low resolution version of the high resolution grid, and each interpolated normal being determined based on at least one of a combination of three vertex normals of the corresponding triangle of the low resolution version of the high resolution grid and a combination of four vertex normals of the corresponding bilinear quadrilateral.
  10. 10. The method of claim 7, wherein the number of points on the surface of the surface patch is determined by a factor that reduces the number of the at least one of the triangle and the bilinear quadrangle from the high resolution grid to the low resolution grid.
  11. 11. The method of claim 7, wherein each offset value is encoded as a distance in one dimension from a point on the surface to the surface of the high resolution grid.
  12. 12. The method of claim 7, wherein each offset value is determined by projecting a ray of light from a point on the surface along an interpolated normal and calculating a distance between the point and a corresponding new point of the surface of the high resolution grid.
  13. 13. The method of claim 12, wherein if this produces a small offset, the ray is projected in a first direction in one dimension along the interpolated normal from a point on the surface, and another ray is projected in a second direction opposite the first direction in the one dimension from the point on the surface.
  14. 14. The method of claim 12, wherein the light is projected in a first direction in one dimension, Stopping the projection of the ray from the point on the curved surface in response to the ray intersecting the surface of the high resolution grid, and In response to the ray not intersecting the surface of the high resolution grid, another ray is projected from the point on the curved surface in a second direction in the one dimension opposite the first direction.
  15. 15. A processing device for rendering objects in a scene using ray tracing, the processing device comprising: memory, and The processor may be configured to perform the steps of, the processor is configured to: generating a low resolution version of a high resolution mesh representing objects in the scene; Determining points on a surface of a surface patch defined for one of a triangle and a bilinear quadrilateral of the low resolution grid; Performing a ray intersection test by projecting a ray of light toward a surface of the high resolution grid, the surface of the high resolution grid being approximated from a new point calculated by an offset value along an interpolated normal from the point on the surface of the surface patch, and The objects in the scene are rendered based on the ray intersection test.
  16. 16. The processing device of claim 15, wherein each offset value is a distance from a point on a surface of a surface patch to a new point on a surface of the high resolution grid.
  17. 17. The processing apparatus of claim 16, wherein The offset value is stored in the memory prior to rendering, and The surface of the high resolution grid is approximated by moving from the point on the surface of the surface patch along a corresponding interpolated normal until the distance defined by the offset value is reached.
  18. 18. The processing device of claim 15, wherein the surface patches comprise at least one of triangle surface patches and quadrilateral surface patches, each triangle surface patch being defined for a corresponding triangle of the low resolution version of the high resolution grid, each quadrilateral surface patch being defined for a corresponding bilinear quadrilateral of the low resolution version of the high resolution grid, and each interpolation normal being determined based on at least one of a combination of three vertex normals of the corresponding triangle of the low resolution version of the high resolution grid and a combination of four vertex normals of the corresponding bilinear quadrilateral.
  19. 19. The processing device of claim 15, wherein the surface patches comprise at least one of triangular surface patches and quadrilateral surface patches, each triangular surface patch being defined for a corresponding triangle of the low resolution version of the high resolution grid, each quadrilateral surface patch being defined for a corresponding bilinear quadrilateral of the low resolution version of the high resolution grid, The high resolution mesh includes at least one of a first number of triangles and a first number of bilinear quadrilaterals representing objects in the scene, The low resolution version of the high resolution mesh includes at least one of a second number of triangles and a second number of bilinear quadrilaterals representing the object in the scene, and The first number of triangles is greater than the second number of triangles.
  20. 20. The processing device of claim 15, further comprising a display device, wherein the objects in the scene are rendered for display on the display device.

Description

Lossy geometry compression using interpolated normals for BVH construction and rendering Cross Reference to Related Applications The present application claims priority from pending U.S. non-provisional patent application No. 18/475,949, entitled "LOSSY GEOMETRY COMPRESSION USING INTERPOLATED NORMALS FOR USE IN BVH BUILDING AND RENDERING (lossy geometry compression using interpolated normals for BVH construction and rendering)" filed on 9/27 of 2023, the entire contents of which are hereby incorporated by reference. Background Ray tracing is a graphics rendering technique in which simulated rays are projected to test for object intersection and pixels are illuminated and colored based on the results of the ray casting. Ray tracing is computationally more expensive than rasterization-based techniques, but gives physically more accurate results. Improvements in light tracking operations have been made. Drawings A more detailed understanding can be obtained from the following description, given by way of example in connection with the accompanying drawings, in which: FIG. 1 is a block diagram of an example device that may implement one or more features of the present disclosure; FIG. 2 is a block diagram of a device illustrating additional details related to executing processing tasks on the accelerated processing device of FIG. 1, according to an example; FIG. 3 illustrates a ray tracing pipeline for rendering graphics using ray tracing techniques according to an example; FIG. 4 is an illustration of a bounding volume hierarchy according to an example; FIG. 5 is a flow chart illustrating an example method of rendering objects in a scene using ray tracing in accordance with features of the present disclosure; FIG. 6A illustrates an example object represented by a high resolution grid to be rendered in accordance with features of the present disclosure; FIG. 6B illustrates the example object shown in FIG. 6A represented by a low resolution version of a high resolution grid in accordance with features of the present disclosure; FIG. 6C illustrates the example object shown in FIG. 6B represented using a curved patch of a low resolution version of a high resolution grid in accordance with features of the present disclosure; FIG. 6D illustrates an example object 602 represented by an approximation of a high resolution grid for representing the example object shown in FIG. 6A, in accordance with features of the present disclosure; FIG. 7A is a diagram of a surface of a high resolution mesh and sides of a triangle of a low resolution version of the high resolution mesh according to an example; FIG. 7B is an illustration of a curved surface of a triangular curved patch extending between vertices of a base surface according to an example; FIG. 7C is a graphical representation of an interpolated normal extending between points on a surface of a triangular surface patch and a surface of a high resolution grid, according to an example, an FIG. 8 is a flow chart illustrating an example method of rendering objects in a scene using ray tracing. Detailed Description As described above, each ray intersection test is complex and expensive in terms of processing resources. Thus, ray tracing is more efficiently implemented for accurate determination using an accelerated hierarchy, such as a Bounding Volume Hierarchy (BVH). While accelerated hierarchies (e.g., BVH structures) implement ray tracing more efficiently, typically a large amount of data is used to represent each primitive (e.g., each node) of the BVH structure and thus a large amount of memory is consumed to implement the BVH structure for ray tracing. In fact, BVH data used to represent more complex scenes is typically too large to accommodate the memory of an acceleration processor (e.g., GPU). Some conventional techniques have attempted to reduce the amount of data (e.g., data representing triangles of a BVH structure) stored for a high resolution mesh by compressing a portion of the high resolution mesh into quantized 3D offsets (i.e., displacement vectors) between points on a low resolution mesh (representing the portion of the high resolution mesh) and points on a bilinear interpolation surface (i.e., a base surface defined by four vertices). That is, because the low resolution mesh includes a smaller number of triangles than the high resolution mesh, fewer connectivity data (e.g., vertex data of triangles) are used (e.g., stored in memory) to represent triangles of the BVH structure. The light is then projected at a location determined from the quantized 3D offset. While these conventional techniques do reduce the amount of data stored, the compression ratios of these conventional techniques are inefficient (i.e., low) because they require storing the value of each of the offsets in all three dimensions. Other conventional techniques of converting a high resolution mesh to a low resolution mesh have attempted to achieve higher compression ratios by using the norm