Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A machine-implemented method for rendering geometry of a 3D scene, the method comprising concurrently: processing geometry of the 3D scene using rasterization operations to determine, for each of a plurality of sample positions, an element of geometry which is: (i) present at that sample position, and (ii) not hidden at that sample position by a previously processed element of geometry; processing rays in the 3D scene using ray tracing operations, wherein each ray is associated with a sample position of the plurality of sample positions, and wherein each ray is associated with status data; updating the status data for rays based on results of the rasterization operations; and selecting a particular ray for processing, and using the updated status data for the particular ray to determine whether the particular ray is still current, and if so, then continuing to process the particular ray, and otherwise terminating the processing of the particular ray.
A system renders a 3D scene by concurrently running two processes: (1) Rasterization: It identifies, for various screen sample positions, which geometry element is visible and not hidden by other processed elements. (2) Ray Tracing: It processes rays, each linked to a sample position and having status data. The system then updates the status data for rays based on the rasterization results. When a specific ray is selected for processing, its updated status data is used to check if it's still current (meaning its associated geometry is still visible). If current, processing continues; otherwise, the ray is terminated (culled).
2. The machine-implemented method of claim 1 further comprising: emitting a ray for an element of geometry determined by the rasterization operations at a sample position; and associating the sample position with the emitted ray.
A system renders a 3D scene by concurrently running two processes: (1) Rasterization: It identifies, for various screen sample positions, which geometry element is visible and not hidden by other processed elements. (2) Ray Tracing: It processes rays, each linked to a sample position and having status data. The system emits a ray for a geometry element identified by rasterization at a sample position and associates that sample position with the emitted ray. It then updates the status data for rays based on the rasterization results. When a specific ray is selected for processing, its updated status data is used to check if it's still current. If current, processing continues; otherwise, the ray is terminated.
3. The machine-implemented method of claim 1 wherein the status data for a ray is updated to be non-current if the rasterization operations determine that a new element of geometry is (i) present at the sample position associated with the ray, and (ii) not hidden at that sample position by a previously processed element of geometry.
A system renders a 3D scene by concurrently running two processes: (1) Rasterization: It identifies, for various screen sample positions, which geometry element is visible and not hidden by other processed elements. (2) Ray Tracing: It processes rays, each linked to a sample position and having status data. The system updates the status data for a ray to indicate it is "non-current" if the rasterization operations determine that a *new* geometry element is now visible at the sample position associated with that ray. When a specific ray is selected for processing, its updated status data is used to check if it's still current. If current, processing continues; otherwise, the ray is terminated.
4. The machine-implemented method of claim 1 wherein each ray is associated with an element of geometry, and wherein the status data for a ray is updated to be non-current if the rasterization operations determine that the element of geometry associated with the ray does not contribute to the rendering of the 3D scene.
A system renders a 3D scene by concurrently running two processes: (1) Rasterization: It identifies, for various screen sample positions, which geometry element is visible and not hidden by other processed elements. (2) Ray Tracing: It processes rays, where each ray is associated with a specific geometry element and a sample position, and has status data. The system updates the status data for a ray to "non-current" if rasterization determines that the geometry element associated with that ray no longer contributes to the 3D scene rendering (e.g., it's occluded or no longer the front-most). When a specific ray is selected for processing, its updated status data determines if it's current. If current, processing continues; otherwise, the ray is terminated.
5. The machine-implemented method of claim 1 wherein said terminating the processing of the particular ray comprises setting a flag to indicate that the particular ray can be culled.
A system renders a 3D scene by concurrently running two processes: (1) Rasterization: It identifies, for various screen sample positions, which geometry element is visible and not hidden by other processed elements. (2) Ray Tracing: It processes rays, each linked to a sample position and having status data. The system updates the status data for rays based on the rasterization results. When a specific ray is selected, its updated status data is used to determine if it's current. If current, processing continues; otherwise, processing is terminated by setting a flag to indicate the ray can be culled.
6. The machine-implemented method of claim 1 wherein said processing rays in the 3D scene using ray tracing operations comprises one or more of traversing an acceleration structure, testing the rays for intersection with one or more primitives or shading of the rays for identified intersections.
A system renders a 3D scene by concurrently running two processes: (1) Rasterization: It identifies, for various screen sample positions, which geometry element is visible and not hidden by other processed elements. (2) Ray Tracing: It processes rays, each linked to a sample position and having status data, by performing operations such as traversing an acceleration structure (e.g., a BVH), testing rays for intersection with primitives, or shading rays for identified intersections. The system updates the status data for rays based on the rasterization results. When a specific ray is selected for processing, its updated status data determines if it's current. If current, processing continues; otherwise, the ray is terminated.
7. The machine-implemented method of claim 1 wherein the status data comprises a per-sample generation ID for each of the sample positions, wherein the method comprises: when the rasterization operations determine that a new element of geometry is: (i) present at a sample position, and (ii) not hidden at that sample position by a previously processed element of geometry: emitting a primary ray from the new element of geometry; performing said updating the status data by incrementing the generation ID for the sample position; and assigning the generation ID to the emitted ray; wherein said using the status data for a particular ray to determine whether the particular ray is still current comprises determining whether the generation ID assigned to the particular ray matches the generation ID for the sample position associated with the particular ray.
A system renders a 3D scene by concurrently running two processes: (1) Rasterization: It identifies, for various screen sample positions, which geometry element is visible and not hidden by other processed elements. (2) Ray Tracing: It processes rays, each linked to a sample position and having status data, where this status data includes a per-sample "generation ID". When rasterization identifies a *new* visible geometry element at a sample position, the system emits a primary ray from this new element, increments the generation ID for that sample position, and assigns this new generation ID to the emitted ray. This generation ID is used as status data. To determine if a ray is still current, the system checks if the generation ID assigned to that ray matches the current generation ID for its associated sample position. If they match, processing continues; otherwise, the ray is terminated.
8. The machine-implemented method of claim 7 wherein a secondary ray is associated with the same generation ID as that associated with the parent ray of the secondary ray.
A system renders a 3D scene by concurrently running two processes: (1) Rasterization: It identifies, for various screen sample positions, which geometry element is visible and not hidden by other processed elements. (2) Ray Tracing: It processes rays, each linked to a sample position and having status data, where this status data includes a per-sample "generation ID". When rasterization identifies a *new* visible geometry element at a sample position, the system emits a primary ray, increments the generation ID for that sample position, and assigns this new generation ID to the emitted ray. Secondary rays generated from a parent ray are associated with the *same generation ID* as their parent ray. To determine if a ray is still current, the system checks if its assigned generation ID matches the current generation ID for its associated sample position. If they match, processing continues; otherwise, the ray is terminated.
9. The machine-implemented method of claim 1 wherein an element of geometry which is not opaque does not completely hide other elements of geometry.
A system renders a 3D scene by concurrently running two processes: (1) Rasterization: It identifies, for various screen sample positions, which geometry element is visible and not hidden by other processed elements. For non-opaque geometry elements, they do not completely hide other elements of geometry. (2) Ray Tracing: It processes rays, each linked to a sample position and having status data. The system updates the status data for rays based on the rasterization results. When a specific ray is selected for processing, its updated status data is used to check if it's still current. If current, processing continues; otherwise, the ray is terminated.
10. The machine-implemented method of claim 1 wherein each ray is associated with a hash of a combination of a sample ID and an ID of an element of geometry.
A system renders a 3D scene by concurrently running two processes: (1) Rasterization: It identifies, for various screen sample positions, which geometry element is visible and not hidden by other processed elements. (2) Ray Tracing: It processes rays, where each ray is associated with a sample position and status data, and also specifically with a hash value derived from a combination of a sample ID and an ID of a geometry element. The system updates the status data for rays based on the rasterization results. When a specific ray is selected for processing, its updated status data determines if it's still current. If current, processing continues; otherwise, the ray is terminated.
11. An apparatus for rendering geometry of a 3D scene, the apparatus comprising circuitry configured to concurrently: process geometry of the 3D scene using rasterization operations to determine, for each of a plurality of sample positions, an element of geometry which is: (i) present at that sample position, and (ii) not hidden at that sample position by a previously processed element of geometry; process rays in the 3D scene using ray tracing operations, wherein each ray is associated with a sample position of the plurality of sample positions, and wherein each ray is associated with status data; update the status data for rays based on results of the rasterization operations; and select a particular ray for processing, and use the updated status data for a particular ray to determine whether the particular ray is still current, and if so, then continue to process the particular ray, and otherwise terminate the processing of the particular ray.
An apparatus containing circuitry renders a 3D scene by concurrently performing two operations: (1) Rasterization: It processes 3D scene geometry to determine, for each sample position, which geometry element is visible and not obscured by previously processed geometry. (2) Ray Tracing: It processes rays, where each ray is linked to a sample position and has status data. The circuitry updates the status data for rays based on the rasterization results. When a ray is selected for processing, its updated status data is used to determine if it is still current. If current, processing continues; otherwise, processing of that ray is terminated.
12. The apparatus of claim 11 further configured to: emit a ray for an element of geometry determined by the rasterization operations at a sample position; and associate the sample position with the emitted ray.
An apparatus containing circuitry renders a 3D scene by concurrently performing two operations: (1) Rasterization: It processes 3D scene geometry to determine, for each sample position, which geometry element is visible and not obscured by previously processed geometry. The apparatus is further configured to emit a ray for a geometry element identified by rasterization at a sample position and associate that sample position with the emitted ray. (2) Ray Tracing: It processes rays, where each ray is linked to a sample position and has status data. The circuitry updates the status data for rays based on the rasterization results. When a ray is selected for processing, its updated status data determines if it is still current. If current, processing continues; otherwise, processing of that ray is terminated.
13. The apparatus of claim 11 configured to update the status data for a ray to be non-current if the rasterization operations determine that a new element of geometry is (i) present at the sample position associated with the ray, and (ii) not hidden at that sample position by a previously processed element of geometry.
An apparatus containing circuitry renders a 3D scene by concurrently performing two operations: (1) Rasterization: It processes 3D scene geometry to determine, for each sample position, which geometry element is visible and not obscured by previously processed geometry. The apparatus is configured to update a ray's status data to "non-current" if the rasterization operations determine that a *new* geometry element is now visible at the sample position associated with that ray. (2) Ray Tracing: It processes rays, where each ray is linked to a sample position and has status data. The circuitry updates the status data for rays based on the rasterization results. When a ray is selected for processing, its updated status data determines if it is still current. If current, processing continues; otherwise, processing of that ray is terminated.
14. The apparatus of claim 11 wherein each ray is associated with an element of geometry, and wherein the apparatus is configured to update the status data for a ray to be non-current if the rasterization operations determine that the element of geometry associated with the ray does not contribute to the rendering of the 3D scene.
An apparatus containing circuitry renders a 3D scene by concurrently performing two operations: (1) Rasterization: It processes 3D scene geometry to determine, for each sample position, which geometry element is visible and not obscured by previously processed geometry. (2) Ray Tracing: It processes rays, where each ray is associated with a geometry element and a sample position, and has status data. The apparatus is configured to update the status data for a ray to "non-current" if rasterization determines its associated geometry element no longer contributes to the rendering of the 3D scene. The circuitry updates status data for rays based on rasterization. When a ray is selected, its updated status data determines if it's current. If current, processing continues; otherwise, processing is terminated.
15. The apparatus of claim 11 configured to set a flag to indicate that a particular ray can be culled to thereby terminate the processing of the particular ray.
An apparatus containing circuitry renders a 3D scene by concurrently performing two operations: (1) Rasterization: It processes 3D scene geometry to determine, for each sample position, which geometry element is visible and not obscured by previously processed geometry. (2) Ray Tracing: It processes rays, where each ray is linked to a sample position and has status data. The circuitry updates the status data for rays based on the rasterization results. When a ray is selected for processing, its updated status data is used to determine if it is still current. If current, processing continues; otherwise, the apparatus terminates processing of that ray by setting a flag to indicate it can be culled.
16. The apparatus of claim 11 comprising: fixed-function circuitry configured to traverse an acceleration structure and/or test a ray for intersection with a primitive; and processing logic configured to run shader code to perform shading for an identified intersection.
An apparatus containing circuitry renders a 3D scene by concurrently performing two operations: (1) Rasterization: It processes 3D scene geometry to determine, for each sample position, which geometry element is visible and not obscured by previously processed geometry. (2) Ray Tracing: It processes rays, where each ray is linked to a sample position and has status data, utilizing fixed-function circuitry to traverse acceleration structures or test ray intersections with primitives, and processing logic to run shader code for identified intersections. The circuitry updates the status data for rays based on the rasterization results. When a ray is selected for processing, its updated status data determines if it is still current. If current, processing continues; otherwise, processing of that ray is terminated.
17. The apparatus of claim 11 wherein the status data comprises a per-sample generation ID for each of the sample positions, wherein the apparatus is configured to: emit a primary ray from a new element of geometry when the rasterization operations determine that a new element of geometry is: (i) present at a sample position, and (ii) not hidden at that sample position by a previously processed element of geometry: update the status data by incrementing the generation ID for the sample position; assign the generation ID to the emitted ray; and use the status data for a particular ray to determine whether the particular ray is still current by determining whether the generation ID assigned to the particular ray matches the generation ID for the sample position associated with the particular ray.
An apparatus containing circuitry renders a 3D scene by concurrently performing two operations: (1) Rasterization: It processes 3D scene geometry to determine, for each sample position, which geometry element is visible and not obscured by previously processed geometry. (2) Ray Tracing: It processes rays, where each ray is linked to a sample position and has status data including a per-sample "generation ID". When rasterization identifies a new visible geometry element at a sample position, the apparatus emits a primary ray, increments the generation ID for that position, and assigns this ID to the emitted ray. To determine if a ray is current, the apparatus compares the generation ID assigned to that ray with the current generation ID for its sample position. If they match, processing continues; otherwise, processing is terminated.
18. A non-transitory computer readable storage medium having stored thereon computer readable code in a hardware description language that, when processed, enables fabrication of an apparatus for rendering geometry of a 3D scene, wherein the apparatus comprises circuitry configured to concurrently: process geometry of the 3D scene using rasterization operations to determine, for each of a plurality of sample positions, an element of geometry which is: (i) present at that sample position, and (ii) not hidden at that sample position by a previously processed element of geometry; process rays in the 3D scene using ray tracing operations, wherein each ray is associated with a sample position of the plurality of sample positions, and wherein each ray is associated with status data; update the status data for rays based on results of the rasterization operations; and select a particular ray for processing, and use the updated status data for a particular ray to determine whether the particular ray is still current, and if so, then continue to process the particular ray, and otherwise terminate the processing of the particular ray.
A non-transitory computer-readable storage medium stores computer-readable code in a hardware description language. When this code is processed, it enables the fabrication of an apparatus that renders a 3D scene. This apparatus's circuitry is configured to concurrently: (1) Rasterize 3D scene geometry to identify, for each sample position, the visible geometry element not hidden by previous elements. (2) Process rays via ray tracing, where each ray is linked to a sample position and has status data. The apparatus updates ray status data based on rasterization results. It selects a ray for processing, uses its updated status data to check if it's current, and if so, continues processing; otherwise, it terminates the ray's processing.
Unknown
July 21, 2020
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.