DETAILED ACTION
Allowable Subject Matter
Claims 7 and 11-13 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
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.
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
Claims 1-6, 8-10, 15-20 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Hua (US 20170161948 A1).
As per claim 1, Hua teaches the claimed:
1. A computer-implemented method to provide a three-dimensional (3D) avatar with multi-layered clothing in a 3D virtual environment, the computer-implemented method comprising:
providing the avatar in the 3D virtual environment, the avatar having an avatar body to be layered with an inner garment and an outer garment;
(Hua [0034]: “The deformation may include collapsing a specific (inner) garment mesh in the layering order onto the target body mesh, expanding outer garment mesh(s) to accommodate the inner garment mesh and shape-recovering the inner (collapsed) garment mesh toward the outer expanded garment such that the inner garment mesh does not intersect the outer expanded garment meshes and does not intersect the target body mesh.”
Hua [0048]: “Input interface 110 may represent any electronic device or application on an electronic device configured to receive one or more 3D polygonal garment meshes (i.e., 3D polygonal mesh(s) representing garment(s)) and one or more body meshes (i.e., 3D polygonal mesh(s) representing body(s) of various shapes).” Hua teaches the 3D virtual environment as the input interface because the user can interact and observe 3D representations of a template bodies and garments.)
layering the inner garment onto the avatar body, wherein the layering includes:
fitting the inner garment onto the avatar body; and
deforming, using a linear cage deformer technique, an outer cage of the inner garment based on one or more of an outer cage of the avatar body and an inner cage of the inner garment;
(Hua [0034]: ““a system may include a layering engine configured to receive two or more garment meshes, each separately fitted to a target body mesh and may perform a geometric layering process that iteratively deform garment meshes according to a layering order, to form a set of layered garment meshes. The deformation may include collapsing a specific (inner) garment mesh in the layering order onto the target body mesh”.
Hua [0006]: “The geometrical deformation algorithm includes, for each garment vertex: identifying one or more of the template body vertices and one or more others of the garment vertices each within a predetermined threshold (in terms of distances and surface normal alignments) of the garment vertex; applying a predetermined weighting to each identified template body vertex and each identified other garment vertex; mapping the garment vertex to the one or more identified template body vertices based on a sum of the weighted template body vertices and the weighted garment vertices; determining a position of the mapped garment vertex relative to the target body mesh based on a mapping between the template body mesh and the target body mesh, such that the garment vertex is deformed according to the position, and repeating the identifying, applying, mapping and determining steps for each garment vertex of the garment mesh to form a deformed garment mesh fitted to the target body mesh.”
Hua, in paragraph [0006], describes the linear cage deformer technique, as it identifies vertex positions and applies weight of the garment meshes, which are made of triangles, as stated in paragraph [0085]: “the meshes may be manifold polygonal triangle meshes in any suitable format”. Then it deforms the garment vertexes according to the position based on the mapped garment vertex relative to the body mesh. This is repeated for each garment vertex of the garment mesh to form a mesh fitted to the body mesh.)
layering the outer garment onto the inner garment, wherein the layering includes:
fitting the outer garment onto the inner garment based on the deformed outer cage of the inner garment and an inner cage of the outer garment; and
deforming, using the linear cage deformer technique, an outer cage of the outer garment based on one or more of the deformed outer cage of the inner garment and the inner cage of the outer garment; and
(Hua [0034]: “a system may include a layering engine configured to receive two or more garment meshes, each separately fitted to a target body mesh and may perform a geometric layering process that iteratively deform garment meshes according to a layering order, to form a set of layered garment meshes. The deformation may include collapsing a specific (inner) garment mesh in the layering order onto the target body mesh, expanding outer garment mesh(s) to accommodate the inner garment mesh and shape-recovering the inner (collapsed) garment mesh toward the outer expanded garment such that the inner garment mesh does not intersect the outer expanded garment meshes and does not intersect the target body mesh.”
Hua, in paragraph [0006], teaches the linear cage deformer technique, as stated in the claim limitation above.)
rendering the avatar body with the inner garment and the outer garment layered thereon.
(Hua [0061]: “The garment meshes that are output may be deformed and/or layered garment mesh(s) that represent at least one 3D polygonal mesh as fitted to a target body mesh. The destination of the deformed, layered garment mesh(s) may include, without being limited to, rendering engines”.
Hua [0066]: “rendering engine 180 may be any device or combination of devices, or application on an electronic device, suitable for producing rendered frames of the deformed and/or layered garment meshes and target body mesh”
Hua [0143]: “In some examples, computer system 2100 may also include display 2116 and/or user interface 2118.”)
As per claims 15 and 18, these claims are similar in scope to limitations recited in claim 1, and thus is rejected under the same rationale.
As per claim 2, Hua teaches the claimed:
2. The computer-implemented method of claim 1, wherein deforming the outer cage of the inner garment comprises:
identifying, for at least one outer cage vertex of the outer cage of the inner garment, a single corresponding vertex on both the outer cage of the avatar body and on the inner cage of the inner garment;
(Hua [0006]: “The geometrical deformation algorithm includes, for each garment vertex: identifying one or more of the template body vertices and one or more others of the garment vertices each within a predetermined threshold (in terms of distances and surface normal alignments) of the garment vertex”)
generating, using triangles that share the single corresponding vertex, a local coordinate frame of the inner cage of the inner garment and a local coordinate frame of the outer cage of the avatar body; and
(Hua [0137]: “The Laplacian coordinates of every garment mesh vertex (i.e., the difference between each vertex and the average position of its neighbors) may be calculated over the original shape of the garment mesh (by shape-recover module 133). Then, based on these Laplacian coordinates, a Jacobi iterative method may be used to induce the final positions of the garment mesh vertices, starting from the vertex positions of the collapsed inner mesh. A collision detection and response process with the target body mesh and the (expanded) outer meshes may be taken simultaneously to avoid intersections between the collapsed garment mesh and the target body mesh, as well as the further meshes.”
Hua [0085]: “the meshes may be manifold polygonal triangle meshes in any suitable format”
Hua [0135]: “Estimation of the surface normal may be performed by averaging the triangle normals over a neighborhood of the vertex”.)
adjusting a position of the at least one outer cage vertex of the outer cage of the inner garment to deform the outer cage of the inner garment using a difference between the local coordinate frame of the inner cage of the inner garment and the local coordinate frame of the outer cage of the avatar body.
(Hua [0135]: “Afterwards, each vertex of the collapsed garment mesh may be moved by a given distance along its surface normal.”
Hua [0137]: “Then, based on these Laplacian coordinates, a Jacobi iterative method may be used to induce the final positions of the garment mesh vertices, starting from the vertex positions of the collapsed inner mesh.”
Hua [0138]: “the collapsed garment mesh may be recovered towards its original shape by iteratively moving each of the collapsed garment mesh vertices back according to their Laplacian coordinates.”
The collision detection determines if an adjustment of the garment deforming onto the body exceeds a certain point, and then brings it back to the original point based on the coordinates determined previously. This shows the adjusting of the position of the vertices and forming the garment onto the garment. The collision detection also indicates the usage of the coordinate frame, since if a point exceeds a threshold, then the difference between the inner garment and the body was too much, and bring it back to an original point, where the difference between the inner garment and body is properly matched.)
As per claim 3, Hua teaches the claimed:
3. The computer-implemented method of claim 1, wherein deforming the outer cage of the inner garment causes the outer garment to conform to a shape of the avatar body and a shape of the fitted inner garment.
(Hua [0034]: “The deformation may include collapsing a specific (inner) garment mesh in the layering order onto the target body mesh, expanding outer garment mesh(s) to accommodate the inner garment mesh and shape-recovering the inner (collapsed) garment mesh toward the outer expanded garment such that the inner garment mesh does not intersect the outer expanded garment meshes and does not intersect the target body mesh.”
Hua teaches the outer garment conforming to the inner garment mesh, which is conformed to the target body mesh, this the outer garment is also conformed to target body as well.)
As per claims 16 and 19, these claims are similar in scope to limitations recited in claim 3, and thus is rejected under the same rationale.
As per claim 4, Hua teaches the claimed:
4. The computer-implemented method of claim 1, wherein the outer cage of the inner garment, the inner cage of the outer garment, and the outer cage of the outer garment share a standardized UV layout usable to determine correspondence information between the outer cage of the inner garment and the inner cage of the outer garment, and wherein deforming the outer cage of the outer garment is based on the correspondence information.
(Hua [0034]: “may perform a geometric layering process that iteratively deform garment meshes according to a layering order, to form a set of layered garment meshes.”
Hua [0131]: “the layering process may use uv parameterization, uv coordinates and uv mapping for the collapse step”.
Hua [0134]: “Since a uv coordinate defines a unique position on the target body mesh, the selected garment mesh may be collapsed onto target body mesh 1704 by moving every vertex to the corresponding position on target body mesh 1704 according to its uv value, to form collapsed garment mesh 1702′. FIG. 18A illustrates a selected garment mesh 1802, and FIG. 18B illustrates the selected garment mesh 1802 as a collapsed garment mesh 1804 by according to Step 1610.”
Hua [0135]: “After forming the collapsed garment mesh, all of the outer garment meshes may be slightly expanded (Step 16120, along the direction of the normals, to make room for the collapsed garment mesh to be tucked inside.”
Hua teaches the uv coordinates that determines where on the target body mesh the garment mesh should be mapped to. This indicates that the inner garment is within a uv coordinate system, and since the outer garments are only slightly expanded from the inner garment, both the inner and outer garments share the uv coordinate system and is used to determine the information between the inner and outer garments, which corresponds to the correspondence information. Therefore, collapsing the outer garment onto the inner garment is based on the uv coordinates determined previously.)
As per claim 5, Hua teaches the claimed:
5. The computer-implemented method of claim 1, wherein the computer- implemented method further comprises:
identifying, for at least one outer cage vertex of the outer cage of the outer garment, a single corresponding vertex on both the outer cage of the inner garment and on the inner cage of the outer garment;
(Hua [0007]: “performing a shape-recovery of the collapsed garment mesh by deforming each vertex of the collapsed garment mesh toward the at least one expanded outer garment mesh without intersecting the expanded outer garment mesh”
Hua teaches deforming the vertex of the collapsed mesh, the inner garment, toward the expanded mesh, the outer garment. Therefore, the identification of both collapsed and expanded mesh vertices must have taken place.)
generating, using triangles that share the single corresponding vertex, a local coordinate frame of the inner cage of the outer garment and a local coordinate frame of the outer cage of the inner garment; and
(Hua [0137]: “The Laplacian coordinates of every garment mesh vertex (i.e., the difference between each vertex and the average position of its neighbors) may be calculated over the original shape of the garment mesh (by shape-recover module 133). Then, based on these Laplacian coordinates, a Jacobi iterative method may be used to induce the final positions of the garment mesh vertices, starting from the vertex positions of the collapsed inner mesh. A collision detection and response process with the target body mesh and the (expanded) outer meshes may be taken simultaneously to avoid intersections between the collapsed garment mesh and the target body mesh, as well as the further meshes.”
Hua [0085]: “the meshes may be manifold polygonal triangle meshes in any suitable format”
Hua [0135]: “Estimation of the surface normal may be performed by averaging the triangle normals over a neighborhood of the vertex”.)
adjusting a position of the at least one outer cage vertex of the outer cage of the outer garment to deform the outer cage of the outer garment using a difference between the local coordinate frame of the inner cage of the outer garment and the local coordinate frame of the outer cage of the inner garment.
(Hua [0135]: “Afterwards, each vertex of the collapsed garment mesh may be moved by a given distance along its surface normal.”
Hua [0137]: “Then, based on these Laplacian coordinates, a Jacobi iterative method may be used to induce the final positions of the garment mesh vertices, starting from the vertex positions of the collapsed inner mesh.”
Hua [0138]: “the collapsed garment mesh may be recovered towards its original shape by iteratively moving each of the collapsed garment mesh vertices back according to their Laplacian coordinates.”
Similar to claim 2, the collision detection determines if an adjustment of the garment deforming onto another garment exceeds a certain point, and then brings it back to the original point based on the coordinates determined previously. This shows the adjusting of the position of the vertices and forming the garment onto the garment. The collision detection also indicates the usage of the coordinate frame, since if a point exceeds a threshold, then the difference between the outer garment and the inner garment was too much, and bring it back to an original point, where the difference between the outer garment and inner garment is properly matched.)
As per claim 6, Hua teaches the claimed:
6. The computer-implemented method of claim 5, wherein adjusting the position of the at least one outer cage vertex of the outer cage of the outer garment preserves an original spacing and alignment between the inner cage of the outer garment and the outer cage of the outer garment while deforming the outer cage of the outer garment.
(Hua [0127]: “A goal of the layering process is to layer the garment meshes onto a new geometric shape, (i.e., the target body mesh) in a manner that may satisfy certain criteria. A first criteria includes no intersections between any pair of the garment meshes. A second criteria includes no intersections between each of the garment meshes and the target body mesh. A third criteria includes that the layered garment meshes stay as close as possible to their original shapes.”
Hua [0129]: “The layering proceeds in three stages at each iteration. First, a collapse step (Step 1610) where the selected garment mesh is collapsed completely onto the target body mesh. Second, an expand step (Step 1612) where all the outer meshes are slightly expanded to make room for the selected garment mesh to be tucked inside. Third, a shape-recovery step (Step 1614) where the shape of the previously collapsed selected (inner) mesh is recovered toward its original shape while collision with the target body mesh and the outer meshes are averted.”)
As per claim 8, Hua teaches the claimed:
8. The computer-implemented method of claim 1, wherein if there are three or more layers of garments, the computer-implemented method further comprises, for each layer:
iteratively calculating successive differences in volume between preceding successive garment layers;
accumulating the successive differences; and
deforming the layer based on the accumulated successive differences.
(Hua [0121]: “At Step 1612, expand module 132 may expand outer garment mesh(s) away from the target body mesh by a predetermined amount (e.g., a cloth thickness) with respect to the normal direction, to form expanded outer garment mesh(s). The outer garment mesh(s) represent garment meshes further away from the currently selected garment mesh in the assigned layering order. The expansion of the outer garment mesh(s) may be used to compensate for the selected (inner) mesh that will be tucked inside the outer garment mesh(s).”
Hua [0007]: “The layering process includes, for each garment mesh in the sequential order: collapsing the garment mesh onto the target body mesh by mapping each vertex of the garment mesh to a respective corresponding location on the target body mesh, to form a collapsed garment mesh; expanding at least one outer garment mesh farther from the garment mesh in the layering order away from the target body by a predetermined amount to form at least one expanded outer garment mesh; performing a shape-recovery of the collapsed garment mesh by deforming each vertex of the collapsed garment mesh toward the at least one expanded outer garment mesh without intersecting the expanded outer garment mesh, to form a shape-recovered garment mesh for the corresponding layering order; repeating the collapsing, expanding and shape-recovery steps until a shape-recovered garment mesh is generated for the closest layer, to form a set of layered garment meshes; and outputting, by an output module, the set of layered garment meshes.)
As per claim 9, Hua teaches the claimed:
9. The computer-implemented method of claim 1, wherein the linear cage deformer technique comprises, to deform an outer cage of a garment based on an outer cage of a previous garment or avatar body portion:
iterating over garment cage triangles of the garment and summing vertex offsets and weights of the garment cage triangles; and
(Hua [0085]: “the meshes may be manifold polygonal triangle meshes in any suitable format”
Hua [0034]: “may perform a geometric layering process that iteratively deform garment meshes according to a layering order”
Hua [0006]: “identifying one or more of the template body vertices and one or more others of the garment vertices each within a predetermined threshold (in terms of distances and surface normal alignments) of the garment vertex … mapping the garment vertex to the one or more identified template body vertices based on a sum of the weighted template body vertices and the weighted garment vertices; determining a position of the mapped garment vertex relative to the target body mesh based on a mapping between the template body mesh and the target body mesh, such that the garment vertex is deformed according to the position, and repeating the identifying, applying, mapping and determining steps for each garment vertex of the garment mesh to form a deformed garment mesh fitted to the target body mesh.”
Hua teaches iterating over the garment meshes, which are the garment triangle meshes, and summing the weights of the threshold and weights of the vertices of the garment meshes.)
deforming the outer cage of the garment based on a deformed garment outer cage (GOC) position determined from iterating over vertices of the outer cage of the garment.
(Hua [0006]: “such that the garment vertex is deformed according to the position, and repeating the identifying, applying, mapping and determining steps for each garment vertex of the garment mesh to form a deformed garment mesh fitted to the target body mesh”)
As per claims 17 and 20, these claims are similar in scope to limitations recited in claim 3, and thus is rejected under the same rationale.
As per claim 10, Hua teaches the claimed:
10. The computer-implemented method of claim 9, wherein iterating over garment cage triangles of the garment and summing vertex offsets and weights of the garment cage triangles comprises:
computing difference transforms from previous outer cage (POC) triangles of the previous garment or avatar body portion to corresponding garment inner cage (GIC) triangles of the garment; and
(Hua [0137]: “The Laplacian coordinates of every garment mesh vertex (i.e., the difference between each vertex and the average position of its neighbors) may be calculated over the original shape of the garment mesh (by shape-recover module 133). Then, based on these Laplacian coordinates, a Jacobi iterative method may be used to induce the final positions of the garment mesh vertices, starting from the vertex positions of the collapsed inner mesh. A collision detection and response process with the target body mesh and the (expanded) outer meshes may be taken simultaneously to avoid intersections between the collapsed garment mesh and the target body mesh, as well as the further meshes.”
Hua teaches the coordinates, which compute the difference between vertices, that are calculated from the original shape of the mesh. Then an iterative method is used, starting from the inner garment, which includes the outer cage of the inner garment, to find the final positions of the garment mesh, and then the outer garment is then added according to the inner collapsed garment mesh.)
transforming vertices of GOC triangles of the garment based on corresponding difference transforms and updating vertex offsets and weights of the GOC triangles of the garment accordingly.
(Hua [0050]: “Mapping module 121 may assign a weighting to each identified closest garment mesh vertex and each identified closest template body mesh vertex. Mapping module 121 may map the each garment mesh vertex by defining the garment mesh vertex as a weighted sum of the closets points on the template body mesh and the closest other garment mesh vertices. After the mapping to the template body mesh vertex is constructed, mapping module 121 may then determine the positions of the garment mesh vertices with respect to the target body mesh vertices, based on a predetermined mapping between the template and target body meshes. Mapping module 121 may then output the garment mesh having vertices mapped to the target body mesh. Mapping module 121 may repeat the mapping procedure for each received garment mesh.”
Hua teaches the mapping module that transforms each garment vertex based on the vertex sums and weights it assigns, given the updated or changed target body mesh and garment meshes.)
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.
Claim 14 is rejected under 35 U.S.C. 103 as being unpatentable over Hua (US 20170161948 A1) in view of Lasserre (US 20240346753 A1).
As per claim 14, Hua alone does not explicitly teach the claimed limitations.
However, Hua in combination with Lasserre teaches the claimed:
14. The computer-implemented method of claim 9, wherein deforming the outer cage of the garment based on a deformed garment outer cage (GOC) position determined from iterating over the vertices of the outer cage of the garment comprises:
finding, for vertices of the outer cage of the garment, final local offsets as previously summed vertex offsets divided by previously summed vertex weights; and
(Lasserre [0139]: “The weight may be determined, for example, based on values representative of distances between the vertex and each of the neighboring vertices. … The centroid vertex may be, for example, based on the weighted sum divided by a sum of weights corresponding to the plurality of vertices.”
Lasserre teaches the vertex that is determined by finding the weighted sum, which is based on the distance of the neighboring vertices, divided by a sum of the weights. This centroid vertex can be considered the offset, as it takes into account the weights and distances or offsets of previous and neighboring points.)
deforming the outer cage of the garment based on the deformed GOC position of the outer cage of the garment determined based on vertices obtained as previous outer cage (POC) positions summed with the final local offsets.
(Hua [0093]: “The deformation process (performed by deformation engine 120) may include determining mappings (by mapping module 121) from each of the vertices of a garment mesh to closest points (i.e., within a predetermined threshold) on a template body mesh, based on a sum of the weighted template body vertices and the weighted garment vertices”
Hua [0050]: “Mapping module 121 may be configured to calculate mappings from each vertex of the garment mesh(s) to closest points on the template body mesh that are within a predetermined threshold of the vertex. Mapping module 121 may be configured to augment the mapping, by including other garment mesh vertices that are closest to the garment mesh vertex (e.g., within a predetermined threshold). Mapping module 121 may assign a weighting to each identified closest garment mesh vertex and each identified closest template body mesh vertex. Mapping module 121 may map the each garment mesh vertex by defining the garment mesh vertex as a weighted sum of the closets points on the template body mesh and the closest other garment mesh vertices.”
Hua teaches the deforming process by the mapping module that calculates the mappings with the distance of the closest points and weighted sums. The mapping module incorporates an augmented weighting that includes the closest vertices from both the outer garment and the inner garment or body mesh, and this corresponds to the previous outer cage with the local offset as the vertices and threshold for the closest vertices are used to determine the deformation of the outer garment.)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to use the centroid vertex as taught by Lasserre with the system of Hua in order to more accurately determine the position of the vertex in relation to the spacing and distance of other layered garment meshes.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to JOSHUA SUO whose telephone number is (571) 272-8387. The examiner can normally be reached Mon-Fri 8am-5pm.
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, Daniel Hajnik can be reached on (571) 272-7642. 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.
/JOSHUA SUO/Examiner, Art Unit 2616
/DANIEL F HAJNIK/Supervisory Patent Examiner, Art Unit 2616