Unified rasterization and ray tracing rendering environments
Abstract
A graphics processor architecture provides for scan conversion and ray tracing approaches to visible surface determination as concurrent and separate processes. Surfaces can be identified for shading by scan conversion and ray tracing. Data produced by each can be normalized, so that instances of shaders, being executed on a unified shading computation resource, can shade surfaces originating from both ray tracing and rasterization. Such resource also may execute geometry shaders. The shaders can emit rays to be tested for intersection by the ray tracing process. Such shaders can complete, without waiting for those emitted rays to complete. Where scan conversion operates on tiles of 2-D screen pixels, the ray tracing can be tile aware, and controlled to prioritize testing of rays based on scan conversion status. Ray population can be controlled by feedback to any of scan conversion, and shading.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A rendering unit configured to render an image of a 3-D scene using a 2-D rendering space, wherein the rendering unit is configured to:
tessellate geometry to determine tessellated geometry in the 3-D scene; transform the tessellated geometry from a position in the 3-D scene into a pixel array of the 2-D rendering space; determine at least one visible surface for each of a plurality of pixels of the pixel array by rasterising the transformed tessellated geometry; execute, for each of the visible surfaces, one or more shaders; and perform, using ray intersection testing logic, intersection testing on one or more rays with respect to tessellated geometry in the 3-D scene; wherein at least some of the tessellation of the geometry is performed on-demand and in coordination with collections of rays that are ready to test the tessellated geometry for intersection testing.
2 . The rendering unit of claim 1 , wherein the 2-D rendering space is subdivided into a plurality of 2-D tiles.
3 . The rendering unit of claim 1 , further configured to form an acceleration structure for use in ray intersection testing of tessellated geometry.
4 . The rendering unit according to claim 1 , wherein the amount of tessellation for each object within a scene is estimated.
5 . The rendering unit according to claim 4 , wherein the estimated amount of tessellation is based on a specific view position and coordinates of each object.
6 . The rendering unit according to claim 1 , wherein the rendering unit is configured to execute the one or more shaders using an API semantic to obtain 3-D coordinates for vertices defining the visible surface.
7 . The rendering unit according to claim 1 , wherein tessellation is performed in real-time for portions of the 3-D scene and the tessellated geometry is fed to the ray intersection testing logic for ray tracing processes.
8 . The rendering unit according to claim 1 , wherein ray tracing logic, which comprises the ray intersection testing logic, is configured to:
associate each of the one or more rays with a 2-D tile of the 2-D rendering space; and schedule rays for processing by the ray tracing logic based on the associations between rays and tiles.
9 . The rendering unit according to claim 1 , further comprising geometry processing logic configured to perform transformations on geometry data relating to the 3-D scene, for use in determining primitives within the 2-D rendering space, wherein it is the geometry processing logic that is configured to tessellate geometry to determine tessellated geometry in the 3-D scene.
10 . A rendering method performed by a processing unit for use in rendering an image of a 3-D scene in accordance with a 2-D rendering space, the method comprising:
tessellating geometry to determine tessellated geometry in the 3-D scene; transforming the tessellated geometry from a position in the 3-D scene into a pixel array of the 2-D rendering space; determining at least one visible surface for each of a plurality of pixels of the pixel array by rasterising the transformed tessellated geometry; executing, for each of the visible surfaces, one or more shaders; and performing intersection testing on one or more rays with respect to tessellated geometry in the 3-D scene; wherein at least some of the tessellation of the geometry is performed on-demand and in coordination with collections of rays that are ready to test the tessellated geometry for intersection testing.
11 . The rendering method of claim 10 , wherein the 2-D rendering space is subdivided into a plurality of 2-D tiles.
12 . The rendering method of claim 10 , further comprising forming an acceleration structure for use in ray intersection testing of tessellated geometry.
13 . The rendering method according to claim 10 , wherein the amount of tessellation for each object within a scene is estimated.
14 . The rendering method according to claim 13 , wherein the estimated amount of tessellation is based on a specific view position and coordinates of each object.
15 . The rendering method according to claim 10 , wherein the executing one or more shaders comprises using an API semantic to obtain 3-D coordinates for vertices defining the visible surface.
16 . The rendering method according to claim 10 , wherein tessellation is performed in real-time for portions of the 3-D scene and the tessellated geometry is fed to ray tracing processes.
17 . The rendering method according to claim 10 , wherein the method further includes:
associating each of the one or more rays with a 2-D tile of the 2-D rendering space; and scheduling rays for processing by ray tracing logic based on the associations between rays and tiles.
18 . The rendering method according to claim 10 , the method further comprising:
performing transformations on geometry data relating to the 3-D scene, for use in determining primitives within the 2-D rendering space.Join the waitlist — get patent alerts
Track US2023169717A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.