Unified rasterization and ray tracing rendering environments
First Claim
1. A machine-implemented method of rendering,images in a computer graphics system, comprising:
- identifying one or more visible surfaces, from among surfaces in a 3-D scene, the identified on or more visible surfaces comprising visible surfaces for a plurality of pixels located in 2-D screen space;
preparing, concurrently with the identifying, to execute shaders associated with respective visible surfaces of pixels of the one or more visible surfaces that have been identified, the preparing comprising completing a respective normalized set of inputs to be provided to each shader for use during execution, the normalized set of inputs comprising a specified set of attributes regardless of whether the one or more identified surfaces were identified by ray intersection testing or scan conversion;
executing each of the shaders in a computation cluster, wherein each of the executing shaders comprises one or more operations, wherein at least on of the executing shaders comprises defining one or more rays to be tested for intersection with surfaces in the 3-D scene;
testing at least some of the rays for intersection concurrently with the identifying and the executing of the shaders; and
shading identified intersections for rays completing intersection testing within the computation cluster.
3 Assignments
0 Petitions
Accused Products
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.
99 Citations
20 Claims
-
1. A machine-implemented method of rendering,images in a computer graphics system, comprising:
-
identifying one or more visible surfaces, from among surfaces in a 3-D scene, the identified on or more visible surfaces comprising visible surfaces for a plurality of pixels located in 2-D screen space; preparing, concurrently with the identifying, to execute shaders associated with respective visible surfaces of pixels of the one or more visible surfaces that have been identified, the preparing comprising completing a respective normalized set of inputs to be provided to each shader for use during execution, the normalized set of inputs comprising a specified set of attributes regardless of whether the one or more identified surfaces were identified by ray intersection testing or scan conversion; executing each of the shaders in a computation cluster, wherein each of the executing shaders comprises one or more operations, wherein at least on of the executing shaders comprises defining one or more rays to be tested for intersection with surfaces in the 3-D scene; testing at least some of the rays for intersection concurrently with the identifying and the executing of the shaders; and shading identified intersections for rays completing intersection testing within the computation cluster. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. An apparatus for graphics rendering, comprising:
-
a visible surface determination module capable of scan converting 3-D scene geometry from a viewpoint and identifying visible surfaces for a set of pixels in 2-D screen space, and comprising a ray tracing intersection unit for testing rays for intersection with 3-D scene geometry, wherein the visible surface determination module performs scan conversion in a regular pattern in 2-D screen space and performs ray intersection testing by collecting rays according to regions of 3-D space and deferring commencement of testing for individual rays until dispatch within a packet of rays; a normalizer configured to provide normalized shader data for use by a shader during execution, the normalized shader data comprising a specified set of attributes regardless of whether the visible surfaces were identified by ray intersection testing or scan conversion; a pixel fragment shader configured to shade a surface visible from a pixel fragment in said 2-D screen space, identified by said visible surface determination unit, wherein the pixel fragment shader is operable to emit a ray originating from the surface being shaded, that is to be tested for intersection in the 3-D scene by the ray tracing intersection unit using ray tracing, and a ray intersection shader operable to contribute to shading o fthe visible surface associated with the pixel fragment shader, and b said ray intersection shader being independently schedulable from the pixel fragment shader that emitted the ray. - View Dependent Claims (17, 18)
-
-
19. A system for graphics rendering, comprising:
-
a visible surface determination module operable to concurrently execute both ray tracing and scan conversion operations, to determine a respective visible surface within a 3-D scene, from each of one or more view positions specified to the visible surface determination module; a normalizer configured to provide normalized shader data for use by a shader during execution, the normalized shader data comprising a specified set of attributes regardless of whether the visible surfaces were identified by ray intersection testing or scan conversion; and a processor coupled to a non-transitory memory, the non-transitory memory storing instructions for configuring the processor to execute one or more surface shaders, each associated with a surface in the 3-D scene, each of the surface shaders operable to activate in response to a scan conversion input, from the visible surface determination module, comprising data for a surface in the 3-D scene visible from a pixel fragment in a 2-D screen space, and to interface with the visible surface determination module to emit a ray originating from the surface visible from the pixel fragment, that will be tested for intersection in the 3-D scene by the visible surface determination module, and activate in response to a ray tracing input, from the visible surface determination module, comprising an indication of a detected ray intersection in the 3-D scene, and responsively determine a shading effect for one or more pixel fragments the 2-D screen space. - View Dependent Claims (20)
-
Specification