Notice of Pre-AIA or AIA Status
The present application is being examined under the pre-AIA first to invent provisions.
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 2/5/25, 6/10/25 and 10/15/25 are being considered by the examiner.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
Claims 1-9,12,14-19, 21 and 23 rejected on the ground of nonstatutory double patenting as being unpatentable over claims of U.S. Patent No. 9,424,685. Although the claims at issue are not identical, they are not patentably distinct from each other because the present claims have the same scope of US Patent.
Table 1 illustrates the conflicting claims.
Instant Application 19/046,339
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
US patent: 9424685
1
3
5
6
7
8
9
11
14
16
1,16
17
16
Instant Application 19/046,339
17
18
19
20
21
22
23
US patent: 9424685
17
18
16
1
10
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102 of this title, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-21 are rejected under 35 U.S.C. 103 as being unpatentable over Hempel et al. (US 2008/0211804) in view of Sumner et al. (US 2011/0181606 A1) and Smyth (US 2011/0043521 A1).
As to Claim 1, Hempel teaches A machine-implemented method of rendering images in a computer graphics system (Hempel, [0001]), comprising:
performing operations to identify one or more surfaces, from among surfaces in a 3-D scene, the identified one or more surfaces comprising visible surfaces for a plurality of pixels located in 2-D screen space (Hempel discloses “a hybrid image generation method begins with the automatic evaluation of the image to be generated to determine which pixels contain polygon Vertices that include reflective and/or refractive surfaces (Block 100)” in [0032]; visible object in [0038, 0041]);
during a period overlapping with the operations to identify one or more surfaces, preparing to execute one or more shaders associated with visible surfaces, the preparing comprising completing a set of inputs for use during execution of each shader, the set of inputs comprising a specified set of attributes, wherein the specified set includes normals, texture coordinates, and colors (Hempel discloses “The pixels containing polygon vertices that include reflective and/or refractive surfaces are then evaluated (Block 130) to determine whether the reflective and/or refractive polygon vertices are in the foreground. For each such foreground polygon vertex, a secondary ray is generated from the polygon vertex using the directional vector associated with the polygon vertex (Block 140)” in [0032]; “The computed colour of an object seen in a reflection (and rendered with ray tracing) should be consistent with the colour of the object when viewed directly… raytracing and rasterization to use the same shader programs to compute consistent colours… whereas shader programs invoked by the raytracer will typically read their parameters from values interpolated by the raytracer algorithm from scene data stored in texture maps” in [0034]; integrated and combination of the raytracer and the shaders in [0035-0036]. It is well-known that the attributes of object may include normal data, for example, Sumner discloses “It can evaluate the object's surface shaders as needed and draw upon additional scene information, such as the object's mesh data (vertex positions, normals, texture coordinates, etc.),” in [0073);
executing each of the one or more shaders in a processor, wherein executing a shader comprises one or more operations, wherein at least one of the shaders comprises defining one or more rays to be tested for intersection with surfaces in the 3-D scene (Hempel discloses “For each such foreground polygon vertex, a secondary ray is generated from the polygon vertex using the directional vector associated with the polygon vertex (Block 140). A shader program is then invoked to accurately render the remainder of the image (Block 150). The shader invocation may result in additional, recursive secondary ray generation” in [0032]; “The combination of the raytracer and the shaders results in a single shader program which can both raytrace the scene and shade the intersection points.” in [0036]; ray intersection test in [0010, 0038]).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the invention of Hempel with the teaching of Sumner so as to evaluate the object's surface shaders as needed and draw upon additional scene information (Sumner, [0073]).
The combination of Smyth further teaches following limitations:
performing intersection testing operations for the one or more rays during a period overlapping with (1) the performing operations to identify one or more surfaces and (2) the executing of the shaders (Hempel discloses raytracing and shader can be integrated and combined in [0035-0036]. Smyth further discloses “At that point, the Geometry Process 640 can shade the intersection that was found and it generates secondary rays as needed in order to sample the scene from that intersection point. These secondary rays are sent directly back to the Grid Process 630 for further processing as all of these secondary rays must have originated at the intersection point which must clearly be in the same region” in [0055]; “For a ray that is determined to be in a particular Grid Process 630 region, that process determines which, if any, of the bounding volumes its region contains are intersected by the ray” in [0056]; “For each bounding volume that is hit, the ray is sent to the Geometry Process 640 that manages the geometry/object in that bounding volume. When the Geometry Process 640 receives the ray, it determines whether there is an intersection... If there is no hit or if it is further away than a hit that has been computed for a prior bounding volume, then the Grid Process 630 requests a test with the next most likely bounding volume…” in [0057]); and
shading intersections identified in the intersection testing for one or more rays (Smyth discloses “Once all secondary rays have been processed, shading is possible at the point of intersection. The Geometry Process 640 runs the shader assigned to that surface using the surface information…” in [0058].)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the invention of Hempel and Sumner with the teaching of Smyth so as to test each ray for intersection with the objects in the scene, and by recursively tracing all of these rays, to obtain a high degree of photorealism, and perform a shading operation at each ray-intersection in order to evaluate the correct color contribution due to that intersection (Smyth, [0005]).
As to Claim 2, Hempel in view of Sumner and Smyth teaches The machine-implemented method of rendering of claim 1, wherein performing operations to identify one or more visible surfaces comprises performing ray intersection testing or performing scan conversion (Hempel discloses “Shader programs can be invoked per fragment to convert interpolated attributes to pixel colours” in [0007]; “only selected surfaces where ray tracing effects (e.g. reflections or refraction) are apparent are rendered using ray tracing, with other parts of the image rendered using rasterization” in [0031]. Smyth further discloses “those rays that have been identified by the Grid Process 630 as requiring intersection test against the geometry/object” in [0055].)
As to Claim 3, Hempel in view of Sumner and Smyth teaches The machine-implemented method of rendering of claim 1, wherein completing the set of inputs comprises producing interpolated data for attributes for a particular point on a surface, for which attribute data is unavailable (Hempel discloses “To compute the colour c(x,y) of a point (x,y) on a polygon, an interpolation first over each polygon edge and a second interpolation over the row from the left to the right edge of the polygon, or some other equivalent method for interpolating attributes between vertices, is used” in [0003]; “Shader programs can be invoked per fragment to convert interpolated attributes to pixel colours, as described above, or per-vertex, to Support programmable projection” in [0007].)
As to Claim 4, Hempel in view of Sumner and Smyth teaches The machine-implemented method of rendering of claim 1, wherein performing operations to identify one or more surfaces is performed for 2-D regions of pixels in the plurality of pixels (Hempel discloses “In rasterization, all the modelling primitives used to describe the scene are projected towards the display, and the pixels covered by each primitive are determined” in [0002]; “that rasterization assumes that the projection from scene points to image points is along a set of rays which all pass through a common point” in [0006]. Smyth, [0032].)
As to Claim 5, Hempel in view of Sumner and Smyth teaches The machine-implemented method of rendering of claim 1, wherein the one or more surfaces comprise surfaces that have been determined visible from a view position, but which may be obscured by another surface closer to the view position (Hempel discloses “In the embodiment illustrated in FIG. 1, the whole scene is rasterized first, and the raytracing step is performed only for those polygons which are detected to be visible in the foreground and for which ray tracing is detected to be necessary. FIG. 2 illustrates an alternative approach. In the embodiment illustrated in FIG. 2, the image information is scanned and each polygon containing reflective and/or refractive material is identified (Block 200).” in [0041].)
As to Claim 6, Hempel in view of Sumner and Smyth teaches The machine-implemented method of rendering of claim 1, wherein performing operations to identify one or more surfaces comprises performing an entirety of the operations to identify one or more surfaces for each particular pixel before executing a shader for the identified one or more visible surfaces for that pixel (Hempel discloses “In the embodiment illustrated in FIG. 2, the image information is scanned and each polygon containing reflective and/or refractive material is identified (Block 200). Each polygon is then rasterized (Block 210) and, if the polygon has reflective and/or refractive material (Block 220) it is immediately raytraced (Block 250). A shader is then executed (Block 240).” in [0041].)
As to Claim 7, Hempel in view of Sumner and Smyth teaches The machine-implemented method of rendering of claim 1, further comprising completing the execution of an executing shader before an intersection for a ray defined by that shader has been shaded (Hempel discloses “In the embodiment illustrated in FIG. 2, the image information is scanned and each polygon containing reflective and/or refractive material is identified (Block 200). Each polygon is then rasterized (Block 210) and, if the polygon has reflective and/or refractive material (Block 220) it is immediately raytraced (Block 250). A shader is then executed (Block 240).” in [0041]. Here, the shader program is executed once the surface has been identified as claimed.)
As to Claim 8, Hempel in view of Sumner and Smyth teaches The machine-implemented method of rendering of claim 1, further comprising, during executing of one of the one or more shaders, accessing an API semantic that returns an interpolated attribute for the visible surface being shaded by that executing shader (Hempel discloses “In one embodiment, only selected surfaces where ray tracing effects (e.g. reflections or refraction) are apparent are rendered using ray tracing, with other parts of the image rendered using rasterization. More specifically, only secondary rays (those reflected or refracted off surfaces, or otherwise not meeting at a common origin) need to be raytraced. In one embodiment, to cast rays from rasterized surfaces, the world space position of polygons being rasterized are interpolated from vertex attributes, and if these polygons are reflective or refractive, a per-fragment shader is invoked that implements a ray tracing algorithm for secondary rays instead of the normal Surface shader” in [0031].)
As to Claim 9, Hempel in view of Sumner and Smyth teaches The machine-implemented method of rendering of claim 1, further comprising, during executing of one of the shaders, accessing 3-D coordinates of vertices of a surface of the one or more surfaces, and determining a location on the surface to use as an origin for the ray (Hempel discloses “a shader can be written that computes the start point and direction of each ray, and it is only necessary to invoke the raytracer when rasterization cannot be used” in [0033]. Smyth also discloses “In another preceding process, the scene may be subdivided by a 3D grid, the objects within the scene may be identified, and a bounding volume may be created for each object. In yet another preceding process, primary rays are projected from the camera into the scene…” in [0046].)
As to Claim 10, Hempel in view of Sumner and Smyth teaches The machine-implemented method of rendering of claim 1, wherein said preparing to execute one or more shaders associated with visible surfaces is concurrently executed with said identifying one or more surfaces, from among surfaces in a 3-D scene (Hempel discloses “A hybrid method that uses mainly rasterization but invokes raytracing” in [0011]; identifying pixels and executing shader at step 240 in Fig 2, see also [0041].)
As to Claim 11, Hempel in view of Sumner and Smyth teaches The machine-implemented method of rendering of claim 1, wherein shader processes for ray intersections and for scan converted surfaces proceed concurrently with each of ray intersection testing and scan conversion (Hempel discloses parallel shading in [0007]; “A hybrid method that uses mainly rasterization but invokes raytracing” in [0013]; “a per-fragment shader is invoked that implements a ray tracing algorithm for secondary rays” in [0031]; “The pixels containing polygon vertices that include reflective and/or refractive surfaces are then evaluated (Block 130) to determine whether the reflective and/or refractive polygon vertices are in the foreground. For each such foreground polygon vertex, a secondary ray is generated from the polygon vertex using the directional vector associated with the polygon vertex (Block 140). A shader program is then invoked to accurately render the remainder of the image (Block 150). The shader invocation may result in additional, recursive secondary ray generation” in [0032]; “the whole scene is rasterized first, and the raytracing step is performed only for those polygons which are detected to be visible in the foreground and for which ray tracing is detected to be necessary… the image information is scanned and each polygon containing reflective and/or refractive material is identified (Block 200). Each polygon is then rasterized (Block 210) and, if the polygon has reflective and/or refractive material (Block 220) it is immediately raytraced (Block 250). A shader is then executed (Block 240)” in [0041]. Here, the visible object is based on the ray-intersection test. Smyth discloses ray-object intersection test in [0055].)
As to Claim 12, Hempel in view of Sumner and Smyth teaches The machine-implemented method of rendering of claim 1, wherein at least one of the one or more shaders is executed for shading a surface, and at least one of the one or more shaders is executed for performing fragment shading operations (Hempel discloses fragment shader in [0031-0032].)
As to Claim 13, Hempel in view of Sumner and Smyth teaches The machine-implemented method of rendering of claim 1, wherein intersection testing terminates before one or more rays emitted by the shader are resolved (Hempel disclose “To calculate a reflection or refraction, a new "secondary" ray is generated from the intersected surface point, and the ray tracing algorithm is called recursively” in [0009].)
Claim 14 recites similar limitations as claim 1 but in an apparatus form, further including (i) a rasterisation pipeline capable of scan converting 3-D scene geometry from a viewpoint and (ii) fixed function hardware capable of testing rays for intersection with 3-D scene geometry, wherein the rasterisation pipeline and the fixed function hardware are each capable of performing operations to identify one or more surfaces comprising visible surfaces for a plurality of pixels in 2-D screen space (Hempel, [0031, 0038]. Smyth, [0005, 0009, 0034].)
As to Claim 15, Hempel in view of Sumner and Smyth teaches The apparatus for graphics rendering of claim 14, wherein the ray intersection shader is operable to contribute to shading of a visible surface associated with the at least one shader (Hempel disclose “The fundamental operation required by raytracing is the intersection of a ray with the polygons in the scene” in [0010]; “A hybrid method that uses mainly rasterization but invokes raytracing…For example, the objects visible in reflections, which are traditionally computed using raytracing, should have the same surface properties when computed with programmable shaders as those visible directly (i.e. computed with rasterization)” in [0011].)
As to Claim 16, Hempel in view of Sumner and Smyth teaches The apparatus for graphics rendering of claim 14, wherein the apparatus is capable of independently scheduling the ray intersection shader and the shader that defines the ray (Hempel discloses two modes of shader usage, rasterizer and raytracer are invoked independently in [0034-0035].)
As to Claim 17, Hempel in view of Sumner and Smyth teaches The apparatus for graphics rendering of claim 14, wherein surfaces in the 3- D scene are specified in a 3-D coordinate system, and the ray intersection shader is operable to express shading operations in the 3-D coordinate system (Smyth disclose “As shown in FIG. 2, scene 222 may be divided into sub-regions, e.g., voxels. A voxel is a volume element representing a 3D sub-region on a 3D-grid in a 3D space…” in [0032].)
As to Claim 18, Hempel in view of Sumner and Smyth teaches The apparatus for graphics rendering of claim 14, further comprising a collector to group ray intersections according to a common shader that is scheduled to be executed for each ray intersection of a collection (Smyth disclose “…If a given ray does intersect the bounding volume, then the ray is tested for intersection against the object( s) enclosed within. For example, after rays 240 and 260 are determined to be intersecting bounding volume 280, both rays are further tested for intersection against the object(s) within.” in [0034].)
As to Claim 19, Hempel in view of Sumner and Smyth teaches The apparatus for graphics rendering of claim 14, wherein the rasterisation pipeline is configured to perform scan conversion in a regular pattern in 2-D screen space and to perform 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 (Hempel disclose rasterization and ray tracing in [0031]. Smyth further discloses ray intersection test in [0005, 0009] and ray-aggregation in [0034].)
As to Claim 20, Hempel in view of Sumner and Smyth teaches The apparatus for graphics rendering of claim 14, wherein the rasterisation pipeline comprises fixed function, programmable or configurable hardware (Hempel discloses a programmable shader in Abstract.)
As to Claim 21, Hempel in view of Sumner and Smyth teaches The apparatus for graphics rendering of claim 14, wherein said processor is a computation cluster (Hempel disclose CPU and GPU as a computation cluster in [0013].)
Claim 22 is rejected under 35 U.S.C. 103 as being unpatentable over Hempel in view of Sumner and Smyth, further in view of Zschau et al. (US 2013/0022222 A1).
As to Claim 22, Hempel in view of Sumner and Smyth teaches The apparatus for graphics rendering of claim 21, wherein said computation cluster comprises a cluster of shader cores (Zschau disclose “A modem GPU has typically more than 200 shader-cores” in [0171].)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the invention of Hempel, Sumner and Smyth with the teaching of Zschau so that the shader programs can run in parallel inside the shader-cores of the GPU to process vertices or fragments inside the graphics-pipeline (Zschau, [0171]).
Claim 23 is rejected under 35 U.S.C. 103 as being unpatentable over Hempel in view of Sumner and Smyth, further in view of Clohset et al. (US 2012/0139926 A1).
As to Claim 23, Hempel in view of Sumner and Smyth teaches The apparatus for graphics rendering of claim 14, further comprising a memory capable of storing an acceleration structure, and wherein the fixed function hardware is configured to access the memory (Hempel disclose “a shader can be written that computes the start point and direction of each ray, and it is only necessary to invoke the raytracer when rasterization cannot be used” in [0033]. Clohset further discloses “The plurality of functional units include one or more of programmable accelerator units for a pre-determined type of elementary operation, or fixed function accelerators that implement a process… Examples of fixed function accelerators include a ray tracing intersection test unit, a unit for creating an acceleration structure for a 3-D scene, a texture unit, a raster operation unit, and a packetizing unit” in [0049]; “In sum, some aspects can provide locations in memory of a certain size, where each can be associated with a different acceleration structure element” in [0083].)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the invention of Hempel, Sumner and Smyth with the teaching of Clohset so that the plurality of functional units include one or more of programmable accelerator or fixed function accelerators.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to WEIMING HE whose telephone number is (571)270-1221. The examiner can normally be reached on Monday-Friday, 8:30am-5:00pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Tammy Goddard can be reached on 571-272-7773. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see https://ppair-my.uspto.gov/pair/PrivatePair. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/WEIMING HE/
Primary Examiner, Art Unit 2611