US-12626446-B2 - Displacement-centric acceleration for ray tracing
Abstract
Aspects and features of the present disclosure provide a direct ray tracing operator with a low memory footprint for surfaces enriched with displacement maps. A graphics editing application can be used to manipulate displayed representations of a 3D object that include surfaces with displacement textures. The application creates an independent map of a displaced surface. The application ray-traces bounding volumes on the fly and uses the intersection of a query ray with a bounding volume to produce rendering information for a displaced surface. The rendering information can be used to generate displaced surfaces for various base surfaces without significant re-computation so that updated images can be rendered quickly, in real time or near real time.
Inventors
- Theo Thonat
- Xin Sun
- Tamy BOUBEKEUR
- Nathan Carr
- Francois Beaune
Assignees
- ADOBE INC.
Dates
- Publication Date
- 20260512
- Application Date
- 20240212
Claims (20)
- 1 . A method comprising: accessing, by a rendering system, a base surface defined by a mesh of polygons; precomputing a base-surface independent acceleration structure based on minimum values of displacement and maximum values of displacement relating to texels of a displaced surface; and for a polygon of the base surface: identifying, by a displacement acceleration module of the rendering system and by using (i) at least one real-time displacement parameter value, and (ii) a precomputed conservative bounding volume determined by the polygon and the base-surface independent acceleration structure, a plurality of increasingly granular bounding volumes corresponding to the polygon; determining, by the displacement acceleration module, an intersection of a query ray with at least one of the plurality of increasingly granular bounding volumes to provide at least one of a 3D position or a texture coordinate; and storing, by the displacement acceleration module, the at least one of the 3D position or the texture coordinate configured for rendering a textured surface using the base surface.
- 2 . The method of claim 1 , wherein at least one of the conservative bounding volume or the plurality of increasingly granular bounding volumes comprises an axis-aligned bounding box.
- 3 . The method of claim 1 , wherein the base-surface independent acceleration structure comprises a minmax multum in parvo (MIP) map.
- 4 . The method of claim 1 further comprising rendering, by a rendering system, the textured surface using at least one of the 3D position or the texture coordinate.
- 5 . The method of claim 4 , further comprising: selectively accessing a real-time geometric quality indicator; and selectively using, by the rendering system, the real-time geometric quality indicator to render the textured surface.
- 6 . The method of claim 4 , further comprising rendering, by the rendering system, the textured surface with a varying level of detail by rendering different levels of detail across the mesh of polygons.
- 7 . The method of claim 1 , wherein precomputing the base-surface independent acceleration structure further comprises: sampling the displaced surface over its dimensions; computing a base level of a minmax multum in parvo (MIP) map using height sampling; recursively computing other levels of the minmax MIP map from a bottom level; and storing the minmax MIP map as the base-surface independent acceleration structure.
- 8 . A system comprising: a processor; and a memory device configured to store a base surface defined by a mesh of polygons and a base-surface independent acceleration structure based on minimum values and maximum values of displacement related to texels of a displaced surface, the memory device further storing a displacement acceleration module executable by the processor for performing operations; comprising: identifying, by using (i) at least one real-time displacement parameter value, and (ii) a precomputed conservative bounding volume determined by a polygon of the base surface and the base-surface independent acceleration structure, a plurality of increasingly granular bounding volumes; producing a 3D position and a texture coordinate based on an intersection of a query ray with at least one of the plurality of increasingly granular bounding volumes; and rendering a textured surface using at least one of the 3D position or the texture coordinate for the polygon.
- 9 . The system of claim 8 , wherein at least one of the conservative bounding volume or the plurality of increasingly granular bounding volumes comprises an axis-aligned bounding box.
- 10 . The system of claim 8 , wherein the base-surface independent acceleration structure comprises a minmax multum in parvo (MIP) map.
- 11 . The system of claim 8 , the operations further comprising: selectively accessing a real-time geometric quality indicator; and selectively using the real-time geometric quality indicator to render the textured surface.
- 12 . The system of claim 8 , wherein the textured surface comprises a varying level of detail across the mesh of polygons.
- 13 . The system of claim 8 , further comprising a mapping module configured to produce the base-surface independent acceleration structure.
- 14 . The system of claim 13 , wherein the mapping module is executable by the processor for performing operations comprising: sampling the displaced surface over its dimensions; computing a base level of a minmax multum in parvo (MIP) map using height sampling; recursively computing other levels of the minmax MIP map from a bottom level; and storing the minmax MIP map as the base-surface independent acceleration structure.
- 15 . A non-transitory computer-readable medium storing program code executable by a processor to perform operations, the operations comprising: accessing a base surface defined by a mesh of polygons; precomputing a base-surface independent acceleration structure based on minimum values of displacement and maximum values of displacement relating to texels of a displaced surface; a step for producing a 3D position and a texture coordinate for a polygon based on an intersection of a query ray with at least one of a plurality of increasingly granular bounding volumes corresponding to the polygon and associated with a conservative bounding volume including, for each polygon of the mesh of polygons, a portion of the displaced surface; selectively using at least one real-time displacement parameter value to identify the at least one of the plurality of increasingly granular bounding volumes; and rendering a textured surface using at least one of the 3D position or the texture coordinate for the polygon.
- 16 . The non-transitory computer-readable medium of claim 15 , wherein at least one of the conservative bounding volume or the plurality of increasingly granular bounding volumes comprises an axis-aligned bounding box.
- 17 . The non-transitory computer-readable medium of claim 15 , wherein the base-surface independent acceleration structure comprises a minmax multum in parvo (MIP) map.
- 18 . The non-transitory computer-readable medium of claim 15 , the operations further comprising: selectively accessing a real-time geometric quality indicator; and selectively using the real-time geometric quality indicator to render the textured surface.
- 19 . The non-transitory computer-readable medium of claim 15 , wherein the textured surface comprises a varying level of detail across the mesh of polygons.
- 20 . The non-transitory computer-readable medium of claim 15 , wherein the operation of precomputing the base-surface independent acceleration structure further comprises operations of: sampling the displaced surface over its dimensions; computing a base level of a minmax multum in parvo (MIP) map using height sampling; recursively computing other levels of the minmax MIP map from a bottom level; and storing the minmax MIP map as the base-surface independent acceleration structure.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS This application is a Continuation of U.S. application Ser. No. 17/365,043, filed Jul. 1, 2021, the content of which is incorporated herein by reference. TECHNICAL FIELD The present disclosure generally relates to three-dimensional (3D) computer graphics. More specifically, but not by way of limitation, the present disclosure relates to techniques for ray tracing using displacement-centric acceleration to add textural details to 3D surfaces in an image or video. BACKGROUND Displacement mapping is a powerful tool for adding geometric details over an existing surface rendered by a computer system. Displacement maps move vertices of a polygonal mesh that represents the surface by varying amounts to create shallow or deep surface relief. Graphical processing units (GPUs) often support displacement mapping through a hardware tessellation unit that uses a rasterization-based approach to synthesize 3D images. However, rasterization rendering techniques are not capable of producing the same high degree of visual realism that is achievable by rendering using ray tracing. Ray tracing surface meshes textured with high quality displacement requires a significant amount of memory. More precisely, ray-tracers must efficiently support random access spatial queries for geometric information. Large portions of the scene must be accessible and acceleration structures must be maintained in memory to support the fundamental ray query operation. Thus, ray tracing of textured surface meshes has been relegated to fields such as film production, where small portions of an image can be handled over long times to eventually achieve a realistically rendered scene. Designing map-displaced surfaces interactively in real time while enjoying a full physically-based ray traced rendering has been impossible with limited graphics memory because multiple map tilings quickly saturate the graphics memory. SUMMARY Certain aspects and features of the present disclosure relate to displacement-centric acceleration for ray tracing. For example, a computer-implemented method involves accessing, by a rendering system, a native base surface defined by a mesh of polygons and a map of displacement values useable to render a textured surface corresponding to the native base surface. The method further involves, for a polygon of the native base surface, precomputing a conservative bounding volume for the polygon. The conservative bounding volume includes a portion of a displaced surface as determined by the polygon and the map of displacement values. The method further involves identifying, by a displacement acceleration module of the rendering system, based on the conservative bounding volume, a number of increasingly granular bounding volumes corresponding to the polygon, as well as determining, by the displacement acceleration module, an intersection of a query ray with at least one of the increasingly granular bounding volumes to provide a 3D position, a texture coordinate, or both, usable for rendering the textured surface. The method in this example further involves storing, by the displacement acceleration module, the 3D position, the texture coordinate, or both, configured for rendering the textured surface using the native base surface. Other embodiments of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the methods. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used in isolation to determine the scope of the claimed subject matter. The subject matter should be understood by reference to appropriate portions of the entire specification of this disclosure, any or all drawings and each claim. BRIEF DESCRIPTION OF THE DRAWINGS Features, implementations, and advantages of the present disclosure are better understood when the following Detailed Description is read with reference to the accompanying drawings. FIG. 1 is a diagram showing an example of a computing environment for displacement-centric acceleration for ray tracing, according to some aspects of the present disclosure. FIG. 2 is a diagram showing an example of a data flow for displacement-centric acceleration for ray tracing, according to some aspects of the present disclosure. FIG. 3 is a flowchart of an example of a process for displacement-centric acceleration for ray tracing, according to some aspects of the present disclosure. FIG. 4 is a diagram showing an example of a system for displacement-centric acceleration for ray tracing, according to some aspects of the present disclosure. FIG. 5 is a flowchart of an example of another process for displacement-centric acceleration for ray tracing, according to some aspects of the present disclosure. FIG. 6 is a schematic illustration of an example of the relationship between bounding volumes and map tr