Method and apparatus for rendering virtual clothing
View Patent ↗A method and apparatus for rendering virtual clothing, which relate to the field of graphics technology. The method includes: acquiring posture information of a target object; acquiring a target position of each mesh vertex of virtual clothing based on the posture information, the target position of each mesh vertex of the virtual clothing includes a position of each mesh vertex of the virtual clothing after the virtual clothing is deformed based on the posture information; acquiring a normal direction of each position of the virtual clothing based on the target position of each mesh vertex of the virtual clothing; and rendering the virtual clothing based on the normal direction of each position of the virtual clothing and outputting a rendered effect image of the virtual clothing.
1 . A method for rendering virtual clothing, comprising:
acquiring posture information of a target object;
acquiring a target position of each mesh vertex of the virtual clothing based on the posture information, the target position of each mesh vertex of the virtual clothing comprises a position of each mesh vertex of the virtual clothing after the virtual clothing is deformed based on the posture information;
acquiring a normal direction of each position of the virtual clothing based on the target position of each mesh vertex of the virtual clothing; and
rendering the virtual clothing based on the normal direction of each position of the virtual clothing and outputting a rendered effect image of the virtual clothing,
wherein acquiring the normal direction of each position of the virtual clothing based on the target position of each mesh vertex of the virtual clothing comprises:
generating a wrinkle height field formed by the virtual clothing, and
acquiring the normal direction of each position of the virtual clothing based on the wrinkle height field;
wherein acquiring the normal direction of each position of the virtual clothing based on the wrinkle height field comprises:
acquiring a gradient of each position of the virtual clothing based on the wrinkle height field; and
acquiring the normal direction of each position of the virtual clothing by making a difference between an initial normal direction of each position of the virtual clothing and the gradient of each position of the virtual clothing.
2 . The method according to claim 1 , wherein acquiring the target position of each mesh vertex of the virtual clothing based on the posture information comprises:
acquiring a bone transform matrix of at least one bone in a skeleton model of the target object based on the posture information, the bone transform matrix of any bone is a matrix that transforms the bone from an initial position to a position corresponding to the posture information; and
calculating to obtain the target position of each mesh vertex of the virtual clothing based on the bone transform matrix of the at least one bone and skin information of the at least one bone; wherein the skin information of any bone comprises an impact weight of the bone on each mesh vertex of the virtual clothing.
3 . The method according to claim 2 , wherein calculating to obtain the target position of each mesh vertex of the virtual clothing based on the bone transform matrix of the at least one bone and the skin information of the at least one bone comprises:
acquiring an impact value of each bone of the at least one bone on each mesh vertex of the virtual clothing, the impact value of any bone on any mesh vertex comprises a product of the impact weight of the bone on the mesh vertex, the bone transform matrix of the bone, and an initial position of the mesh vertex; and
summing impact values of the at least one bone on a same mesh vertex of the virtual clothing to acquire the target position of each mesh vertex of the virtual clothing.
4 . The method according to claim 2 , wherein before acquiring the bone transform matrix of the at least one bone in the skeleton model of the target object based on the posture information, the method further comprises:
acquiring a target image, the target image comprises the target object; and
extracting the skeleton model of the target object based on the target image.
5 . The method according to claim 1 , wherein before generating the wrinkle height field formed by the virtual clothing, acquiring the normal direction of each position of the virtual clothing based on the target position of each mesh vertex of the virtual clothing further comprises:
acquiring a compression ratio and a compression direction of each mesh vertex of the virtual clothing based on the target position of each mesh vertex of the virtual clothing, an initial position of each mesh vertex of the virtual clothing, a target position of each neighboring mesh vertex of each mesh vertex of the virtual clothing, and an initial position of each neighboring mesh vertex of each mesh vertex of the virtual clothing;
wherein generating the wrinkle height field formed by the virtual clothing comprises:
generating the wrinkle height field formed by the virtual clothing based on the compression ratio and the compression direction of each mesh vertex of the virtual clothing.
6 . The method according to claim 5 , wherein acquiring the compression ratio and the compression direction of each mesh vertex of the virtual clothing, based on the target position of each mesh vertex of the virtual clothing, the initial position of each mesh vertex of the virtual clothing, the target position of each neighboring mesh vertex of each mesh vertex of the virtual clothing, and the initial position of each neighboring mesh vertex of each mesh vertex of the virtual clothing comprises:
acquiring a first positional difference between each mesh vertex and each neighboring mesh vertex, the first positional difference between any mesh vertex and any neighboring mesh vertex is a difference between a target position of the neighboring mesh vertex and a target position of the mesh vertex;
acquiring a second positional difference between each mesh vertex and each neighboring mesh vertex, the second positional difference between any mesh vertex and any neighboring mesh vertex is a difference between an initial position of the neighboring mesh vertex and an initial position of the mesh vertex;
acquiring a first matrix corresponding to each neighboring mesh vertex of each mesh vertex, the first matrix corresponding to any neighboring mesh vertex of any mesh vertex is a tensor product of the first positional difference between the mesh vertex and the neighboring mesh vertex and the second positional difference between the mesh vertex and the neighboring mesh vertex;
acquiring a first feature matrix of each mesh vertex, the first feature matrix of any mesh vertex is a sum of first matrices corresponding to neighboring mesh vertexes of the mesh vertex;
acquiring a second matrix corresponding to each neighboring mesh vertex of each mesh vertex, the second matrix corresponding to any neighboring mesh vertex of any mesh vertex is a tensor product of the second positional difference between the mesh vertex and the neighboring mesh vertex and the second positional difference between the mesh vertex and the neighboring mesh vertex;
acquiring a second feature matrix of each mesh vertex, the second feature matrix of any mesh vertex is a sum of second matrices corresponding to neighboring mesh vertexes of the mesh vertex;
acquiring a third feature matrix of each mesh vertex, the third feature matrix of any mesh vertex is a product of the first feature matrix of the mesh vertex and an inverse matrix of the second feature matrix of the mesh vertex;
acquiring a fourth feature matrix of each mesh vertex, the fourth feature matrix of any mesh vertex is a product of a transposed matrix of the third feature matrix of the mesh vertex and the third feature matrix of the mesh vertex; and
acquiring a minimum eigenvalue and an eigenvector of the fourth feature matrix of each mesh vertex, and using the minimum eigenvalue and the eigenvector as the compression ratio and the compression direction of each mesh vertex, respectively.
7 . The method according to claim 5 , wherein generating the wrinkle height field formed by the virtual clothing based on the compression ratio and the compression direction of each mesh vertex of the virtual clothing comprises:
acquiring a height value of each mesh vertex of the virtual clothing based on the compression ratio of each mesh vertex of the virtual clothing, the height value of any mesh vertex is a product of a first computed value corresponding to the mesh vertex and a first constant, and the first computed value corresponding to any mesh vertex is a difference between a second constant and the compression ratio of the mesh vertex;
acquiring an impact value of each position of the virtual clothing, the impact value of any position comprises an impact value, on the position, of each mesh vertex of a mesh to which the position belongs, the impact value of any mesh vertex on any position comprises a product of the height value of the mesh vertex and a corresponding height retention rate, the height retention rate of any position to any mesh vertex is a cosine of the compression direction of the mesh vertex and a corresponding positional difference, and the positional difference of any position to any mesh vertex is a positional difference of the position to the target position of the mesh vertex;
acquiring a height of each position of the virtual clothing based on the impact value of each position of the virtual clothing; and
acquiring the wrinkle height field formed by the virtual clothing based on the height of each position of the virtual clothing.
8 . The method according to claim 1 , wherein before acquiring the target position of each mesh vertex of the virtual clothing based on the posture information, the method further comprises:
merging mesh vertexes, having a same position, among the mesh vertexes of the virtual clothing to generate the virtual clothing with fully connected topology.
9 . A computer-readable storage medium, the computer-readable storage medium stores a computer program which, when executed by a computing device, causes the computing device to implement the method for rendering the virtual clothing of claim 1 .
10 . An apparatus for rendering virtual clothing, comprising:
an acquisition unit, configured to acquire posture information of a target object;
a drive unit, configured to acquire a target position of each mesh vertex of the virtual clothing based on the posture information, the target position of each mesh vertex of the virtual clothing comprises a position of each mesh vertex of the virtual clothing after the virtual clothing is deformed based on the posture information;
a processing unit, configured to acquire a normal direction of each position of the virtual clothing based on the target position of each mesh vertex of the virtual clothing; and
a rendering unit, configured to render the virtual clothing based on the normal direction of each position of the virtual clothing and output a rendered effect image of the virtual clothing,
wherein the processing unit is further configured to: generate a wrinkle height field formed by the virtual clothing, and acquire the normal direction of each position of the virtual clothing based on the wrinkle height field,
wherein when acquiring the normal direction of each position of the virtual clothing based on the wrinkle height field, the processing unit is further configured to:
acquire a gradient of each position of the virtual clothing based on the wrinkle height field; and
acquire the normal direction of each position of the virtual clothing by making a difference between an initial normal direction of each position of the virtual clothing and the gradient of each position of the virtual clothing.
11 . The apparatus according to claim 10 , wherein the drive unit is configured to:
acquire a bone transform matrix of at least one bone in a skeleton model of the target object based on the posture information, the bone transform matrix of any bone is a matrix that transforms the bone from an initial position to a position corresponding to the posture information; and
calculate to obtain the target position of each mesh vertex of the virtual clothing based on the bone transform matrix of the at least one bone and skin information of the at least one bone; wherein the skin information of any bone comprises an impact weight of the bone on each mesh vertex of the virtual clothing.
12 . The apparatus according to claim 11 , wherein the drive unit is configured to:
acquire an impact value of each bone of the at least one bone on each mesh vertex of the virtual clothing, the impact value of any bone on any mesh vertex comprises a product of the impact weight of the bone on the mesh vertex, the bone transform matrix of the bone, and an initial position of the mesh vertex; and
sum impact values of the at least one bone on a same mesh vertex of the virtual clothing to acquire the target position of each mesh vertex of the virtual clothing.
13 . The apparatus according to claim 11 , wherein the apparatus further comprises:
an extraction unit, configured to acquire a target image and extract the skeleton model of the target object based on the target image before the drive unit acquires the bone transform matrix of the at least one bone in the skeleton model of the target object based on the posture information, the target image comprises the target object.
14 . The apparatus according to claim 10 , wherein before generating the wrinkle height field formed by the virtual clothing, the processing unit is further configured to:
acquire a compression ratio and a compression direction of each mesh vertex of the virtual clothing based on the target position of each mesh vertex of the virtual clothing, an initial position of each mesh vertex of the virtual clothing, a target position of each neighboring mesh vertex of each mesh vertex of the virtual clothing, and an initial position of each neighboring mesh vertex of each mesh vertex of the virtual clothing;
wherein when generating the wrinkle height field formed by the virtual clothing, the processing unit is configured to:
generate the wrinkle height field formed by the virtual clothing based on the compression ratio and the compression direction of each mesh vertex of the virtual clothing.
15 . The apparatus according to claim 14 , wherein the processing unit is configured to:
acquire a first positional difference between each mesh vertex and each neighboring mesh vertex, the first positional difference between any mesh vertex and any neighboring mesh vertex is a difference between a target position of the neighboring mesh vertex and a target position of the mesh vertex;
acquire a second positional difference between each mesh vertex and each neighboring mesh vertex, the second positional difference between any mesh vertex and any neighboring mesh vertex is a difference between an initial position of the neighboring mesh vertex and an initial position of the mesh vertex;
acquire a first matrix corresponding to each neighboring mesh vertex of each mesh vertex, the first matrix corresponding to any neighboring mesh vertex of any mesh vertex is a tensor product of the first positional difference between the mesh vertex and the neighboring mesh vertex and the second positional difference between the mesh vertex and the neighboring mesh vertex;
acquire a first feature matrix of each mesh vertex, the first feature matrix of any mesh vertex is a sum of first matrices corresponding to neighboring mesh vertexes of the mesh vertex;
acquire a second matrix corresponding to each neighboring mesh vertex of each mesh vertex, the second matrix corresponding to any neighboring mesh vertex of any mesh vertex is a tensor product of the second positional difference between the mesh vertex and the neighboring mesh vertex and the second positional difference between the mesh vertex and the neighboring mesh vertex;
acquire a second feature matrix of each mesh vertex, the second feature matrix of any mesh vertex is a sum of second matrices corresponding to neighboring mesh vertexes of the mesh vertex;
acquire a third feature matrix of each mesh vertex, the third feature matrix of any mesh vertex is a product of the first feature matrix of the mesh vertex and an inverse matrix of the second feature matrix of the mesh vertex;
acquire a fourth feature matrix of each mesh vertex, the fourth feature matrix of any mesh vertex is a product of a transposed matrix of the third feature matrix of the mesh vertex and the third feature matrix of the mesh vertex; and
acquire a minimum eigenvalue and an eigenvector of the fourth feature matrix of each mesh vertex, and using the minimum eigenvalue and the eigenvector as the compression ratio and the compression direction of each mesh vertex, respectively.
16 . The apparatus according to claim 14 , wherein the processing unit is configured to:
acquire a height value of each mesh vertex of the virtual clothing based on the compression ratio of each mesh vertex of the virtual clothing, the height value of any mesh vertex is a product of a first computed value corresponding to the mesh vertex and a first constant, and the first computed value corresponding to any mesh vertex is a difference between a second constant and the compression ratio of the mesh vertex;
acquire an impact value of each position of the virtual clothing, the impact value of any position comprises an impact value, on the position, of each mesh vertex of a mesh to which the position belongs, the impact value of any mesh vertex on any position comprises a product of the height value of the mesh vertex and a corresponding height retention rate, the height retention rate of any position to any mesh vertex is a cosine of the compression direction of the mesh vertex and a corresponding positional difference, and the positional difference of any position to any mesh vertex is a positional difference of the position to the target position of the mesh vertex;
acquire a height of each position of the virtual clothing based on the impact value of each position of the virtual clothing; and
acquire the wrinkle height field formed by the virtual clothing based on the height of each position of the virtual clothing.
17 . The apparatus according to claim 10 , wherein, the apparatus further comprises:
a generation unit, configured to merge mesh vertexes, having a same position, among the mesh vertexes of the virtual clothing to generate the virtual clothing with fully connected topology before the drive unit acquires the target position of each mesh vertex of the virtual clothing based on the posture information.
18 . An electronic device, comprising a memory and a processor, wherein the memory is configured to store a computer program, the processor is configured to, when executing the computer program, cause the electronic device to implement a method for rendering virtual clothing,
wherein the method comprises:
acquiring posture information of a target object;
acquiring a target position of each mesh vertex of the virtual clothing based on the posture information, the target position of each mesh vertex of the virtual clothing comprises a position of each mesh vertex of the virtual clothing after the virtual clothing is deformed based on the posture information;
acquiring a normal direction of each position of the virtual clothing based on the target position of each mesh vertex of the virtual clothing; and
rendering the virtual clothing based on the normal direction of each position of the virtual clothing and outputting a rendered effect image of the virtual clothing, wherein acquiring the normal direction of each position of the virtual clothing based on the target position of each mesh vertex of the virtual clothing comprises:
generating a wrinkle height field formed by the virtual clothing, and acquiring the normal direction of each position of the virtual clothing based on the wrinkle height field;
wherein acquiring the normal direction of each position of the virtual clothing based on the wrinkle height field comprises:
acquiring a gradient of each position of the virtual clothing based on the wrinkle height field; and
acquiring the normal direction of each position of the virtual clothing by making a difference between an initial normal direction of each position of the virtual clothing and the gradient of each position of the virtual clothing.