Method and system for partitioning the surface of a three dimentional digital object model in order to map a texture
AssigneeInternational Business Machines Corporation
InventorHisham Elshishiny
Life of this patent
Estimating the term…
Abstract
The present invention is directed to a method and system and computer program for decomposing a triangle mesh representing the surface of a digital object model, reconstructed from 3D scanning data, into a small number of height-field patches (partitions) (in the order of the number of the original scans) with reasonable angular variations with the direction from which the viewer is looking at the digital object and with boundaries as regular as possible, in order to map a texture. The present method uses the original scan information (even when scans are divided into two or more connected meshes), but without selecting a single scan per mesh area.
Claims8
A method for partitioning a triangle mesh representing the surface of a digital object model into a plurality of patches in order to map a texture, according to the following steps:
- computing (100) for each scan of the digital object model, an intersection between the triangle mesh of the digital object model and one or a plurality of triangle meshes associated with the scan, at least one triangle mesh being associated with each scan of the digital object model;
- identifying (110):
- a patch associated with the triangle meshes of each scan, only one patch being associated with the one or plurality of triangle meshes of each scan;
- sub-patches associated with the triangle meshes of each scan;
- none, one or a plurality of sub-patches being associated with each scan;
- computing (120) for each patch associated with the triangle meshes of each scan, an average normal, said average normal being defined as the average of all normals at mesh triangle vertices, normals being unit vectors perpendicular to the mesh surface;
- computing (130) for each sub-patch associated with the triangle meshes of each scan:
- an average normal;
- and
- a number of common mesh boundary vertices, said common mesh boundary vertices being defined as mesh vertices lying on the mesh boundary of both a patch and a sub-patch;
- for each sub-patch:
- If the number of vertices of the triangle mesh of the sub-patch is less than a specified threshold, adding (620) the sub-patch to the patch that has the largest number of common boundary vertices with the sub-patch irrespective of the value of the angle between the average normals of the patch and sub-patch;
- If the number of vertices of the triangle mesh of the sub-patch is greater than a specified threshold (630) and
- if the angle between the average normal of the patch and the average normal of the sub-patch does not exceed a user specified value, adding (640) the sub-patch to the patch that has the largest number of common boundary vertices with the sub-patch;
- if the angle between the average normal of the patch and the average normal of the sub-patch exceeds a user specified value, adding (660) the sub-patch to another patch having a smaller number of common boundary vertices with the sub-patch.
- If for all patches, the angle between the average normal of the patch and the average normal of the sub-patch exceeds the user specified value, considering (670) the sub-patch as a new patch.
- compensating (150) for broken triangles in each patch.
Dependencies are inferred from the claim text.