Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Priority
Receipt is acknowledged of certified copies of papers required by 37 CFR 1.55.
Information Disclosure Statement
The information disclosure statements (IDSs) submitted on 02/27/2025 and 10/31/2025 are being considered by the examiner.
Claim Objections
Claim 3 is objected to because of the following informalities: the first word of the first limitation, “Performing,” is capitalized. Appropriate correction is required.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claim 14 is rejected under 35 U.S.C. 101 because the claimed invention is directed to non-statutory subject matter. The claim does not fall within at least one of the four categories of patent eligible subject matter because Claim 14 is directed to a program embodying functional descriptive material. Note, Claim 14 recites a “computer program product comprising instructions” so what is claimed is instructions without any hardware structure. Although Claim 14 recites “A computer program product comprising instructions that are stored on a non-transitory computer-readable storage medium,” the claim is directed to the instructions of the computer program product themselves, and not the non-transitory computer-readable storage medium (unlike Claim 15), and thus the claim is directed to software per se. Therefore, it is software/program per se and does not fall within any of the statutory categories.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claims 1, 7, and 13-15 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Kämpe et al. (High Resolution Sparse Voxel DAGs, published 2013).
Regarding Claim 1, Kämpe teaches “An image rendering method, wherein the method comprises: obtaining a to-be-rendered object set, wherein the to-be-rendered object set comprises objects that need to be displayed in a plurality of fields of view at a first moment” (Kämpe, Fig. 1 and Section 3, Terminology, discloses “Consider an N3 voxel grid as a scene representation, where each cell can be represented by a bit: 0 if empty and 1 if it contains geometry” and “For instance, Figure 1 shows a scene voxelized at a resolution of 128K3 and would require 251 bits or 256 Terabytes”; where a scene containing geometry is a to-be-rendered object set; where multiple views in Figure 1 teach a plurality of fields of view. Kämpe, Section 5.3 also discloses “To be able to discuss the relative performance of the different algorithms more confidently, we have recorded execution times for each frame in a fly-through animation of each scene (shown in the supplementary video)”; where disclosure of rendering each frame in an animation teaches objects that need to be displayed at a first moment (a single frame));
“obtaining, for each object in the to-be-rendered object set, a directed acyclic graph (DAG) corresponding to the object in the to-be-rendered object set, wherein the DAG corresponding to the object describes an association relationship between clusters at a plurality of levels of the object, and one node in the DAG corresponding to the object represents one cluster at one level of the object” (Kämpe, Section 3, paragraph 1 discloses “In this section, we will explain how a sparse voxel octree encodes geometry and how we can transform it into a DAG using a bottom-up algorithm”; where a geometry is an object in the to-be-rendered object set; see annotated Fig. 2, below, denoting clusters, nodes, and levels);
“performing, for each object in the to-be-rendered object set, node clipping on the node in the DAG corresponding to the object to generate a to-be-rendered node list corresponding to the first moment” (Kämpe, Section 3, The Sparse Voxel DAG, paragraphs 2-3 disclose “The leaf nodes are uniquely defined by their childmasks (which describe eight voxels), and so there can at most be 28 = 256 unique leaf nodes in an SVO. The first step of transforming the SVO into a DAG is then to merge the identical leaves. The child-pointers in the level above are updated to reference these new and unique leafs (see Figure 2b).Proceeding to the level above, we now find all nodes that have identical childmasks and identical pointers. Such nodes are roots of identical subtrees and can be merged (see Figure 2c).” Kämpe, Section 3, Implementation details, paragraph 5 discloses “We strip the final DAG of unused pointers by introducing an 8bitchildmask that encodes the existence of child pointers and store the pointers consecutively in memory after it.”; where merging identical leaves and stripping unused pointers is performing node clipping; where, under the broadest reasonable interpretation, node clipping is removing or eliminating nodes. Thus, as shown in Figure 2 of Kämpe, merging nodes is removing identical or repetitive nodes; where a final DAG is a to-be-rendered node list); “and
rendering a cluster comprised in the to-be-rendered node list corresponding to the first moment” (Kämpe, Section 4, paragraph 1 discloses “We have implemented a GPU-based raytracer in CUDA that efficiently traverses our scene representation. We use the raytracer primarily for visibility queries to evaluate hard shadows, soft shadows and ambient occlusion for the view samples of a deferred rendering target”; see renderings in Figures 1 and 4).
PNG
media_image1.png
344
1078
media_image1.png
Greyscale
Figure 1 of Kämpe
PNG
media_image2.png
350
1006
media_image2.png
Greyscale
Figure 2 of Kämpe, annotated
PNG
media_image3.png
299
855
media_image3.png
Greyscale
Figure 4 of Kämpe
Regarding Claim 7, Kämpe teaches “A rendering apparatus, wherein the apparatus comprises:
at least one processor; and
at least one memory coupled to the at least one processor and storing programming instructions for execution by the at least one processor to” (Kämpe, Section 3, Implementation details, discloses “Our implementation of the tree reduction is run on a multi-core CPU”; where a CPU is a computing device comprising a processor and a memory):
“obtain a to-be-rendered object set, wherein the to-be-rendered object set comprises objects that need to be displayed in a plurality of fields of view at a first moment” (Kämpe, Fig. 1 and Section 3, Terminology, discloses “Consider an N3 voxel grid as a scene representation, where each cell can be represented by a bit: 0 if empty and 1 if it contains geometry” and “For instance, Figure 1 shows a scene voxelized at a resolution of 128K3 and would require 251 bits or 256 Terabytes”; where a scene containing geometry is a to-be-rendered object set; where multiple views in Figure 1 teach a plurality of fields of view. Kämpe, Section 5.3 also discloses “To be able to discuss the relative performance of the different algorithms more confidently, we have recorded execution times for each frame in a fly-through animation of each scene (shown in the supplementary video)”; where disclosure of rendering each frame in an animation teaches objects that need to be displayed at a first moment (a single frame));
“obtain, for each object in the to-be-rendered object set, a directed acyclic graph (DAG} corresponding to the object in the to-be- rendered object set, wherein the DAG corresponding to the object describes an association relationship between clusters at a plurality of levels of the object, and one node in the DAG corresponding to the object represents one cluster at one level of the object” (Kämpe, Section 3, paragraph 1 discloses “In this section, we will explain how a sparse voxel octree encodes geometry and how we can transform it into a DAG using a bottom-up algorithm”; where a geometry is an object in the to-be-rendered object set; see annotated Fig. 2);
“perform, for each object in the to-be-rendered object set, node clipping on the node in the DAG corresponding to the object to generate a to-be-rendered node list corresponding to the first moment” (Kämpe, Section 3, The Sparse Voxel DAG, paragraphs 2-3 disclose “The leaf nodes are uniquely defined by their childmasks (which describe eight voxels), and so there can at most be 28 = 256 unique leaf nodes in an SVO. The first step of transforming the SVO into a DAG is then to merge the identical leaves. The child-pointers in the level above are updated to reference these new and unique leafs (see Figure 2b).Proceeding to the level above, we now find all nodes that have identical childmasks and identical pointers. Such nodes are roots of identical subtrees and can be merged (see Figure 2c).” Kämpe, Section 3, Implementation details, paragraph 5 discloses “We strip the final DAG of unused pointers by introducing an 8bitchildmask that encodes the existence of child pointers and store the pointers consecutively in memory after it.”; where merging identical leaves and stripping unused pointers is performing node clipping; where, under the broadest reasonable interpretation, node clipping is removing or eliminating nodes. Thus, as shown in Figure 2 of Kämpe, merging nodes is removing identical or repetitive nodes; where a final DAG is a to-be-rendered node list); “and
render a cluster comprised in the to-be-rendered node list corresponding to the first moment” (Kämpe, Section 4, paragraph 1 discloses “We have implemented a GPU-based raytracer in CUDA that efficiently traverses our scene representation. We use the raytracer primarily for visibility queries to evaluate hard shadows, soft shadows and ambient occlusion for the view samples of a deferred rendering target”; see renderings in Figures 1 and 4).
Regarding Claim 13, Kämpe teaches “A computing device cluster, comprising at least one computing device, wherein each computing device comprises:
at least one processor; and
at least one memory coupled to the at least one processor and storing programming instructions for execution by the at least one processor to enable the computing device cluster to perform operations comprising” (Kämpe, Section 3, Implementation details, discloses “Our implementation of the tree reduction is run on a multi-core CPU”; where a CPU is a computing device cluster comprising a computing device, comprising a processor and a memory):
“obtaining a to-be-rendered object set, wherein the to-be-rendered object set comprises objects that need to be displayed in a plurality of fields of view at a first moment” (Kämpe, Fig. 1 and Section 3, Terminology, discloses “Consider an N3 voxel grid as a scene representation, where each cell can be represented by a bit: 0 if empty and 1 if it contains geometry” and “For instance, Figure 1 shows a scene voxelized at a resolution of 128K3 and would require 251 bits or 256 Terabytes”; where a scene containing geometry is a to-be-rendered object set; where multiple views in Figure 1 teach a plurality of fields of view. Kämpe, Section 5.3 also discloses “To be able to discuss the relative performance of the different algorithms more confidently, we have recorded execution times for each frame in a fly-through animation of each scene (shown in the supplementary video)”; where disclosure of rendering each frame in an animation teaches objects that need to be displayed at a first moment (a single frame));
“for each object in the to-be-rendered object set, obtaining a directed acyclic graph (DAG) corresponding to the object in the to-be-rendered object set, wherein the DAG corresponding to the object describes an association relationship between clusters at a plurality of levels of the object, and one node in the DAG corresponding to the object represents one cluster at one level of the object” (Kämpe, Section 3, paragraph 1 discloses “In this section, we will explain how a sparse voxel octree encodes geometry and how we can transform it into a DAG using a bottom-up algorithm”; where a geometry is an object in the to-be-rendered object set; see annotated Fig. 2);
“for each object in the to-be-rendered object set, performing node clipping on the node in the DAG corresponding to the object to generate a to-be-rendered node list corresponding to the first moment” (Kämpe, Section 3, The Sparse Voxel DAG, paragraphs 2-3 disclose “The leaf nodes are uniquely defined by their childmasks (which describe eight voxels), and so there can at most be 28 = 256 unique leaf nodes in an SVO. The first step of transforming the SVO into a DAG is then to merge the identical leaves. The child-pointers in the level above are updated to reference these new and unique leafs (see Figure 2b).Proceeding to the level above, we now find all nodes that have identical childmasks and identical pointers. Such nodes are roots of identical subtrees and can be merged (see Figure 2c).” Kämpe, Section 3, Implementation details, paragraph 5 discloses “We strip the final DAG of unused pointers by introducing an 8bitchildmask that encodes the existence of child pointers and store the pointers consecutively in memory after it.”; where merging identical leaves and stripping unused pointers is performing node clipping; where, under the broadest reasonable interpretation, node clipping is removing or eliminating nodes. Thus, as shown in Figure 2 of Kämpe, merging nodes is removing identical or repetitive nodes; where a final DAG is a to-be-rendered node list); “and
rendering a cluster comprised in the to-be-rendered node list corresponding to the first moment” (Kämpe, Section 4, paragraph 1 discloses “We have implemented a GPU-based raytracer in CUDA that efficiently traverses our scene representation. We use the raytracer primarily for visibility queries to evaluate hard shadows, soft shadows and ambient occlusion for the view samples of a deferred rendering target”; see renderings in Figures 1 and 4).
Regarding Claim 14, Kämpe teaches “A computer program product comprising instructions that are stored on a non- transitory computer-readable storage medium, wherein when the instructions are run by a computing device cluster, the computing device cluster is enabled to perform operations comprising” (Kämpe, Section 3, Implementation details, discloses “Our implementation of the tree reduction is run on a multi-core CPU”; where a CPU is a non-transitory computer-readable storage medium):
obtaining a to-be-rendered object set, wherein the to-be-rendered object set comprises objects that need to be displayed in a plurality of fields of view at a first moment” (Kämpe, Fig. 1 and Section 3, Terminology, discloses “Consider an N3 voxel grid as a scene representation, where each cell can be represented by a bit: 0 if empty and 1 if it contains geometry” and “For instance, Figure 1 shows a scene voxelized at a resolution of 128K3 and would require 251 bits or 256 Terabytes”; where a scene containing geometry is a to-be-rendered object set; where multiple views in Figure 1 teach a plurality of fields of view. Kämpe, Section 5.3 also discloses “To be able to discuss the relative performance of the different algorithms more confidently, we have recorded execution times for each frame in a fly-through animation of each scene (shown in the supplementary video)”; where disclosure of rendering each frame in an animation teaches objects that need to be displayed at a first moment (a single frame));
“for each object in the to-be-rendered object set, obtaining a directed acyclic graph (DAG) corresponding to the object in the to-be-rendered object set, wherein the DAG corresponding to the object describes an association relationship between clusters at a plurality of levels of the object, and one node in the DAG corresponding to the object represents one cluster at one level of the object” (Kämpe, Section 3, paragraph 1 discloses “In this section, we will explain how a sparse voxel octree encodes geometry and how we can transform it into a DAG using a bottom-up algorithm”; where a geometry is an object in the to-be-rendered object set; see annotated Fig. 2);
“for each object in the to-be-rendered object set, performing node clipping on the node in the DAG corresponding to the object to generate a to-be-rendered node list corresponding to the first moment” (Kämpe, Section 3, The Sparse Voxel DAG, paragraphs 2-3 disclose “The leaf nodes are uniquely defined by their childmasks (which describe eight voxels), and so there can at most be 28 = 256 unique leaf nodes in an SVO. The first step of transforming the SVO into a DAG is then to merge the identical leaves. The child-pointers in the level above are updated to reference these new and unique leafs (see Figure 2b).Proceeding to the level above, we now find all nodes that have identical childmasks and identical pointers. Such nodes are roots of identical subtrees and can be merged (see Figure 2c).” Kämpe, Section 3, Implementation details, paragraph 5 discloses “We strip the final DAG of unused pointers by introducing an 8bitchildmask that encodes the existence of child pointers and store the pointers consecutively in memory after it.”; where merging identical leaves and stripping unused pointers is performing node clipping; where, under the broadest reasonable interpretation, node clipping is removing or eliminating nodes. Thus, as shown in Figure 2 of Kämpe, merging nodes is removing identical or repetitive nodes; where a final DAG is a to-be-rendered node list); “and
rendering a cluster comprised in the to-be-rendered node list corresponding to the first moment” (Kämpe, Section 4, paragraph 1 discloses “We have implemented a GPU-based raytracer in CUDA that efficiently traverses our scene representation. We use the raytracer primarily for visibility queries to evaluate hard shadows, soft shadows and ambient occlusion for the view samples of a deferred rendering target”; see renderings in Figures 1 and 4).
Regarding Claim 15, Kämpe teaches “A non-transitory computer-readable storage medium, comprising computer program instructions, wherein when the computer program instructions are executed by a computing device cluster, the computing device cluster performs operations comprising” (Kämpe, Section 3, Implementation details, discloses “Our implementation of the tree reduction is run on a multi-core CPU”; where a CPU is a non-transitory computer-readable storage medium):
“obtaining a to-be-rendered object set, wherein the to-be-rendered object set comprises objects that need to be displayed in a plurality of fields of view at a first moment” (Kämpe, Fig. 1 and Section 3, Terminology, discloses “Consider an N3 voxel grid as a scene representation, where each cell can be represented by a bit: 0 if empty and 1 if it contains geometry” and “For instance, Figure 1 shows a scene voxelized at a resolution of 128K3 and would require 251 bits or 256 Terabytes”; where a scene containing geometry is a to-be-rendered object set; where multiple views in Figure 1 teach a plurality of fields of view. Kämpe, Section 5.3 also discloses “To be able to discuss the relative performance of the different algorithms more confidently, we have recorded execution times for each frame in a fly-through animation of each scene (shown in the supplementary video)”; where disclosure of rendering each frame in an animation teaches objects that need to be displayed at a first moment (a single frame));
“for each object in the to-be-rendered object set, obtaining a directed acyclic graph (DAG) corresponding to the object in the to-be-rendered object set, wherein the DAG corresponding to the object describes an association relationship between clusters at a plurality of levels of the object, and one node in the DAG corresponding to the object represents one cluster at one level of the object” (Kämpe, Section 3, paragraph 1 discloses “In this section, we will explain how a sparse voxel octree encodes geometry and how we can transform it into a DAG using a bottom-up algorithm”; where a geometry is an object in the to-be-rendered object set; see annotated Fig. 2);
“for each object in the to-be-rendered object set, performing node clipping on the node in the DAG corresponding to the object to generate a to-be-rendered node list corresponding to the first moment” (Kämpe, Section 3, The Sparse Voxel DAG, paragraphs 2-3 disclose “The leaf nodes are uniquely defined by their childmasks (which describe eight voxels), and so there can at most be 28 = 256 unique leaf nodes in an SVO. The first step of transforming the SVO into a DAG is then to merge the identical leaves. The child-pointers in the level above are updated to reference these new and unique leafs (see Figure 2b).Proceeding to the level above, we now find all nodes that have identical childmasks and identical pointers. Such nodes are roots of identical subtrees and can be merged (see Figure 2c).” Kämpe, Section 3, Implementation details, paragraph 5 discloses “We strip the final DAG of unused pointers by introducing an 8bitchildmask that encodes the existence of child pointers and store the pointers consecutively in memory after it.”; where merging identical leaves and stripping unused pointers is performing node clipping; where, under the broadest reasonable interpretation, node clipping is removing or eliminating nodes. Thus, as shown in Figure 2 of Kämpe, merging nodes is removing identical or repetitive nodes; where a final DAG is a to-be-rendered node list); “and
rendering a cluster comprised in the to-be-rendered node list corresponding to the first moment” (Kämpe, Section 4, paragraph 1 discloses “We have implemented a GPU-based raytracer in CUDA that efficiently traverses our scene representation. We use the raytracer primarily for visibility queries to evaluate hard shadows, soft shadows and ambient occlusion for the view samples of a deferred rendering target”; see renderings in Figures 1 and 4).
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, 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.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 2-5, 8-11, and 16-19 are rejected under 35 U.S.C. 103 as being unpatentable over Kämpe et al. (High Resolution Sparse Voxel DAGs, published 2013), in view of Han et al. (US 2017/0116780 A1).
Regarding Claim 2, Kämpe does not explicitly teach the method of Claim 2.
However, in an analogous field of endeavor, Han teaches “The method according to claim 1, wherein:
nodes comprised in the to-be-rendered node list corresponding to the first moment are divided into a plurality of groups, and each group corresponds to one field of view” (Han, [0050] discloses “When the quadtree is configured first, the configuration of the quadtree starts from a most sparse level (Level 1). In respect to the object-space error region of each 8×8, the corresponding error is positioned at a point closest to the viewpoint in the region and projected to the screen-space to obtain the screen-space error value”; where levels are groups corresponding to one field of view); “and
a node in each group meets the following conditions:
a screen space error of the node at the first moment is not greater than an error threshold of the field of view, and a screen space error of a parent node of the node at the first moment is greater than the error threshold of the field of view” (Han, [0051] discloses “However, when the screen-space error is larger than the threshold, while the level is increased one by one, the level is repeatedly increased until the error value becomes the threshold or more. When the inner tessellation factor of the tile is larger than 64, since the error exceeds a limit of the GPU, the tile is split into 4 patches (that is, child nodes are generated) and the error value depending on the level is measured with respect to each of the split patches”; where increasing a level until the error value becomes the threshold or more is determining a node meeting the condition of a screen space error of the node “not greater than an error threshold” and a screen space error of the parent node “greater than the error threshold”; that is, Han teaches a ‘to-be-rendered’ list because Han teaches excluding nodes that meet the error threshold criteria above, and keeping remaining nodes (‘to-be-rendered’)).
It would have been obvious to one of ordinary skill in the art before the effective filing
date of the claimed invention to have modified Kämpe to incorporate the teachings of Han by increasing the level in correspondence with the scree-space error value. One of ordinary skill in the art would be motivated to combine the Kämpe and Han references in order to render and update data more efficiently by adaptive resolution: Han, [0103] discloses “According to yet another aspect of the present invention, since an entire terrain is managed through a simplified data structure called quadtree, even a large-capacity terrain can be managed only by small memory consumption and operations of determining the adaptive resolution and updating data can be very rapidly, efficiently, and simply processed, and as a result, overall performance is significantly enhanced.”) Accordingly, the combination of Kämpe and Han discloses the invention of Claim 2.
Regarding Claim 3, the combination of Kämpe and Han teaches “The method according to claim 1, wherein the method further comprises:
Performing, for each object in the to-be-rendered object set, node clipping on the node in the DAG corresponding to the object to generate a to-be-deleted node list corresponding to the first moment” (Kämpe, Section 3, The Sparse Voxel DAG, paragraphs 2-3 disclose “The leaf nodes are uniquely defined by their childmasks (which describe eight voxels), and so there can at most be 28 = 256 unique leaf nodes in an SVO. The first step of transforming the SVO into a DAG is then to merge the identical leaves. The child-pointers in the level above are updated to reference these new and unique leafs (see Figure 2b).Proceeding to the level above, we now find all nodes that have identical childmasks and identical pointers. Such nodes are roots of identical subtrees and can be merged (see Figure 2c).” Kämpe, Section 3, Implementation details, paragraph 5 discloses “We strip the final DAG of unused pointers by introducing an 8bitchildmask that encodes the existence of child pointers and store the pointers consecutively in memory after it.”; where merging identical leaves and stripping unused pointers is performing node clipping; where, under the broadest reasonable interpretation, node clipping is removing or eliminating nodes), “wherein:
nodes comprised in the to-be-deleted node list corresponding to the first moment are divided into a plurality of groups, and each group corresponds to one field of view” (Han, [0050] discloses “When the quadtree is configured first, the configuration of the quadtree starts from a most sparse level (Level 1). In respect to the object-space error region of each 8×8, the corresponding error is positioned at a point closest to the viewpoint in the region and projected to the screen-space to obtain the screen-space error value”; where levels are groups corresponding to one field of view); “and
a node in each group meets the following conditions:
a screen space error of the node at the first moment is not greater than an error threshold of the field of view, and a screen space error of a parent node of the node at the first moment is not greater than the error threshold of the field of view” (Han, [0051] discloses “However, when the screen-space error is larger than the threshold, while the level is increased one by one, the level is repeatedly increased until the error value becomes the threshold or more. When the inner tessellation factor of the tile is larger than 64, since the error exceeds a limit of the GPU, the tile is split into 4 patches (that is, child nodes are generated) and the error value depending on the level is measured with respect to each of the split patches”; where increasing a level until the error value becomes the threshold or more is determining a node meeting the condition of a screen space error of the node “not greater than an error threshold” and a screen space error of the parent node “not greater than the error threshold”; that is, Han also teaches a ‘to-be-deleted’ list because Han teaches excluding nodes that meet the error threshold criteria above, and keeping remaining nodes (‘to-be-rendered’)). The proposed combination as well as the motivation for combining the Kämpe and Han references presented in the rejection of Claim 2, apply to Claim 3 and are incorporated herein by reference. Thus, the apparatus recited in Claim 3 is met by Kämpe and Han.
Regarding Claim 4, the combination of Kämpe and Han teaches “The method according to claim 3, wherein the method further comprises:
generating a to-be-rendered node list corresponding to a second moment based on the to-be- rendered node list and the to-be-deleted node list that correspond to the first moment; and rendering a cluster comprised in the to-be-rendered node list corresponding to the second moment” (Han, [0081] discloses “Meanwhile, according to an embodiment of the present invention, after the quadtree of the tile is configured one time as described above, the quadtree may be updated in real time as the position of a view is changed. Each of the quadtrees used in the previous frame is updated through merging and splitting processes to configure a multi-resolution tile by using calculation resources still less than those when configuring the quadtree first”; where updating quadtrees used in the previous frame is generating a to-be-rendered node list corresponding to a second moment based on node lists corresponding to a first moment). The proposed combination as well as the motivation for combining the Kämpe and Han references presented in the rejection of Claim 2, apply to Claim 4 and are incorporated herein by reference. Thus, the apparatus recited in Claim 4 is met by Kämpe and Han.
Regarding Claim 5, the combination of Kämpe and Han teaches “The method according to claim 4, wherein nodes comprised in the to-be-rendered node list corresponding to the second moment are divided into a plurality of second groups, and each second group corresponds to one field of view” (Han, [0050] discloses “When the quadtree is configured first, the configuration of the quadtree starts from a most sparse level (Level 1). In respect to the object-space error region of each 8×8, the corresponding error is positioned at a point closest to the viewpoint in the region and projected to the screen-space to obtain the screen-space error value”; where levels are groups corresponding to one field of view. Han, [0081] discloses “Meanwhile, according to an embodiment of the present invention, after the quadtree of the tile is configured one time as described above, the quadtree may be updated in real time as the position of a view is changed. Each of the quadtrees used in the previous frame is updated through merging and splitting processes to configure a multi-resolution tile by using calculation resources still less than those when configuring the quadtree first”; where quadtrees are updated for each frame, thus each quadtree has second groups, or levels, corresponding to one field of view); “and
wherein a node in each second group meets the following conditions:
a screen space error of the node at the second moment is not greater than the error threshold of the field of view, and a screen space error of a parent node of the node at the second moment is greater than the error threshold of the field of view” (Han, [0051] discloses “However, when the screen-space error is larger than the threshold, while the level is increased one by one, the level is repeatedly increased until the error value becomes the threshold or more. When the inner tessellation factor of the tile is larger than 64, since the error exceeds a limit of the GPU, the tile is split into 4 patches (that is, child nodes are generated) and the error value depending on the level is measured with respect to each of the split patches”; where increasing a level until the error value becomes the threshold or more is determining a node meeting the condition of a screen space error of the node “not greater than an error threshold” and a screen space error of the parent node “greater than the error threshold”; that is, Han teaches a ‘to-be-rendered’ list because Han teaches excluding nodes that meet the error threshold criteria above, and keeping remaining nodes (‘to-be-rendered’). As stated above, Han teaches the processing for each frame, and thus teaches the same method for a “second moment”). The proposed combination as well as the motivation for combining the Kämpe and Han references presented in the rejection of Claim 2, apply to Claim 5 and are incorporated herein by reference. Thus, the apparatus recited in Claim 5 is met by Kämpe and Han.
Regarding Claims 8-11, Claims 8-11 recite an apparatus with elements corresponding to the steps recited in Claims 2-5. Therefore, the recited elements of this claim are mapped to the proposed combination in the same manner as the corresponding steps in its corresponding method claim. Additionally, the rationale and motivation to combine the Kämpe and Han references, presented in rejection of Claim 2, apply to this claim. Finally, the combination of Kämpe and Han references discloses “A rendering apparatus, wherein the apparatus comprises: at least one processor; and at least one memory coupled to the at least one processor and storing programming instructions for execution by the at least one processor to” (Kämpe, Section 3, Implementation details, discloses “Our implementation of the tree reduction is run on a multi-core CPU”; where a CPU is a computing device comprising a processor and a memory).
Regarding Claims 16-19, Claims 16-19 recite an apparatus with elements corresponding to the steps recited in Claims 2-5. Therefore, the recited elements of this claim are mapped to the proposed combination in the same manner as the corresponding steps in its corresponding method claim. Additionally, the rationale and motivation to combine the Kämpe and Han references, presented in rejection of Claim 2, apply to this claim. Finally, the combination of Kämpe and Han references discloses “A rendering apparatus, wherein the apparatus comprises: at least one processor; and at least one memory coupled to the at least one processor and storing programming instructions for execution by the at least one processor to” (Kämpe, Section 3, Implementation details, discloses “Our implementation of the tree reduction is run on a multi-core CPU”; where a CPU is a computing device comprising a processor and a memory).
Claims 6, 12, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Kämpe et al. (High Resolution Sparse Voxel DAGs, published 2013), in view of Bliss et al. (US 2002/0078055 A1).
Regarding Claim 6, Kämpe does not explicitly teach the method of claim 6.
However, in an analogous field of endeavor, Bliss teaches “The method according to claim 1, wherein the obtaining a to-be- rendered object set comprises:
separately performing view frustum culling and occlusion culling on candidate objects in the plurality of fields of view to obtain an object that needs to be displayed in each field of view” (Bliss, [0073] discloses “The application thus may put view frustum and occlusion culling actions in a chain 24 with a draw action so that both types of culling can occur before rendering occurs”); “and
obtaining the to-be-rendered object set based on the object that needs to be displayed in each field of view” (Bliss, [0073] discloses “Suppose an application has a particular spatially-oriented scene graph and is running on a particular machine which supports accelerated occlusion culling. The application thus may put view frustum and occlusion culling actions in a chain 24 with a draw action so that both types of culling can occur before rendering occurs”; where only certain objects in a scene is a to-be-rendered object set).
It would have been obvious to one of ordinary skill in the art before the effective filing
date of the claimed invention to have modified Kämpe to incorporate the teachings of Bliss by performing frustum and occlusion culling. One of ordinary skill in the art would be motivated to combine the Kämpe and Bliss references in order to avoid drawing or rendering an entire graph, reducing computation requirements: Bliss, [0072] discloses “An application usually does not need to draw all of the graph 10, though, and so applies various culling strategies to eliminate portions of the graph 10 from consideration before rendering occurs.” Accordingly, the combination of Kämpe and Bliss discloses the invention of Claim 6.
Regarding Claim 12, Claim 12 recites an apparatus with elements corresponding to the steps recited in Claim 6. Therefore, the recited elements of this claim are mapped to the proposed combination in the same manner as the corresponding steps in its corresponding method claim. Additionally, the rationale and motivation to combine the Kämpe and Bliss references, presented in rejection of Claim 6, apply to this claim. Finally, the combination of Kämpe and Bliss references discloses “A rendering apparatus, wherein the apparatus comprises: at least one processor; and at least one memory coupled to the at least one processor and storing programming instructions for execution by the at least one processor to” (Kämpe, Section 3, Implementation details, discloses “Our implementation of the tree reduction is run on a multi-core CPU”; where a CPU is a computing device comprising a processor and a memory).
Regarding Claim 20, Claims 20 recites an apparatus with elements corresponding to the steps recited in Claim 20. Therefore, the recited elements of this claim are mapped to the proposed combination in the same manner as the corresponding steps in its corresponding method claim. Additionally, the rationale and motivation to combine the Kämpe and Bliss references, presented in rejection of Claim 6, apply to this claim. Finally, the combination of Kämpe and Bliss references discloses “A rendering apparatus, wherein the apparatus comprises: at least one processor; and at least one memory coupled to the at least one processor and storing programming instructions for execution by the at least one processor to” (Kämpe, Section 3, Implementation details, discloses “Our implementation of the tree reduction is run on a multi-core CPU”; where a CPU is a computing device comprising a processor and a memory).
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure: Herman et al. (US 2006/0274070 A1) discloses a technique for computer graphics animation using DAGs, and determining errors for nodes.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to CAROLINE TABANCAY DUFFY whose telephone number is (703)756-1859. The examiner can normally be reached Monday - Friday 8:00 am - 5:30 pm.
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, Amandeep Saini can be reached at 5712723382. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for
information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/CAROLINE TABANCAY DUFFY/Examiner, Art Unit 2662
/Siamak Harandi/Primary Examiner, Art Unit 2662