US20210295597A1 - Three-dimensional shape data processing apparatus and non-transitory computer readable medium - Google Patents
Three-dimensional shape data processing apparatus and non-transitory computer readable medium Download PDFInfo
- Publication number
- US20210295597A1 US20210295597A1 US16/984,948 US202016984948A US2021295597A1 US 20210295597 A1 US20210295597 A1 US 20210295597A1 US 202016984948 A US202016984948 A US 202016984948A US 2021295597 A1 US2021295597 A1 US 2021295597A1
- Authority
- US
- United States
- Prior art keywords
- dimensional
- unit
- voxel
- shape
- voxels
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/36—Level of detail
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2021—Shape modification
Definitions
- the present disclosure relates to a three-dimensional shape data processing apparatus and a non-transitory computer readable medium.
- Three-dimensional shape data including a combination of three-dimensional regions (called voxels) of the same size such as cuboids or cubes may be used to represent a three-dimensional shape of an object.
- the memory capacity required to store the three-dimensional shape data is greater than, for example, three-dimensional shape data that defines only surfaces of an object by polygons.
- a technique for changing the size of voxels composing an object according to a position in the object is used.
- three-dimensional shape data in which the size of voxels composing an object is changed according to a position in the object may be converted into three-dimensional shape data represented by polygons.
- voxels used for three-dimensional shape data have different sizes.
- a marching cubes (MC) method for applying a polygon to an attribute pattern of a voxel to generate a flat face is used for such conversion, an inconsistent part such as a gap may be generated between polygons.
- Non-limiting embodiments of the present disclosure relate to providing a three-dimensional shape data processing apparatus and a non-transitory computer readable medium that are capable of configuring surfaces of an object such that an inconsistent part is not generated from the beginning even in a case where a three-dimensional shape of the object is represented by three-dimensional regions of different sizes.
- aspects of certain non-limiting embodiments of the present disclosure address the above advantages and/or other advantages not described above. However, aspects of the non-limiting embodiments are not required to address the advantages described above, and aspects of the non-limiting embodiments of the present disclosure may not address advantages described above.
- a three-dimensional shape data processing apparatus including a processor.
- the processor receives three-dimensional shape data represented by dividing a space including an object into a plurality of three-dimensional regions, at least one of the plurality of three-dimensional regions having a size different from another three-dimensional region, extracts unit shapes from the space without missing or repeating any unit shape, the unit shapes each being formed by setting a predetermined position in each of the three-dimensional regions included in a three-dimensional region group formed of three-dimensional regions adjacent to each other as a vertex, and configures a surface of the object as a formation face represented by a flat face, based on each of the extracted unit shapes.
- FIG. 1 is a diagram illustrating an example of the configuration of a three-dimensional shape data processing apparatus
- FIG. 2 is a diagram illustrating an example of a three-dimensional shape of an object
- FIG. 3 is a diagram illustrating an example of a three-dimensional shape of an object composed of voxels
- FIG. 4 is a diagram illustrating an example of a three-dimensional shape of an object composed of polygons
- FIG. 5 is a diagram illustrating an example of polygons including an inconsistent part
- FIG. 6 is a diagram illustrating an example of correction of polygons including an inconsistent part
- FIG. 7 is a flowchart illustrating an example of the flow of a three-dimensional shape data process
- FIG. 8 is a diagram illustrating an example of voxel data
- FIG. 9 is a diagram illustrating an example of a signed distance field (SDF).
- FIG. 10 is a diagram illustrating a display example of an SDF according to an exemplary embodiment
- FIG. 11 is a diagram illustrating an example of a determination region composed of voxels of the same sizes
- FIG. 12 is a diagram illustrating an example of a determination region composed of voxels of different sizes
- FIG. 13 is a diagram illustrating an example of reference vertices extracted from voxel data
- FIGS. 14A to 14P are plan views illustrating examples of a pattern of allocation of a polygon to a unit shape having eight vertices
- FIGS. 15A to 15H are plan views illustrating examples of a pattern of allocation of a polygon to a unit shape having only less than eight vertices;
- FIG. 16 is a diagram illustrating an example of an outline of an object represented by polygon data obtained by performing a three-dimensional shape data process
- FIG. 17 is a diagram illustrating an example of a polygon having no area
- FIG. 18 is a diagram illustrating an example of a process of generation of a polygon having no area
- FIG. 19 is a diagram used for explaining a polygon correction process
- FIG. 20 is an enlarged diagram of voxels for which the polygon correction process is performed.
- FIG. 21 is a diagram illustrating an example of a result of execution of the polygon correction process.
- FIG. 22 is a diagram illustrating an example of attribute distribution.
- processing apparatus 1 a configuration of a three-dimensional shape data processing apparatus 1 (hereinafter, referred to as a “processing apparatus 1 ”) according to an exemplary embodiment will be described with reference to FIG. 1 .
- the processing apparatus 1 is, for example, a computer 10 .
- the computer 10 includes a central processing unit (CPU) 11 , which is an example of a processor, a read only memory (ROM) 12 , a random access memory (RAM) 13 , a nonvolatile memory 14 , and an input/output interface (I/O) 15 .
- the CPU 11 , the ROM 12 , the RAM 13 , the nonvolatile memory 14 , and the I/O 15 are connected to one another via a bus 16 .
- an operation unit 17 , a display unit 18 , and a communication unit 19 are connected to the I/O 15 .
- the nonvolatile memory 14 is an example of a memory device in which stored information is maintained even when electric power supplied to the nonvolatile memory 14 is interrupted.
- a semiconductor memory is used as the nonvolatile memory 14 .
- a hard disk may be used as the nonvolatile memory 14 .
- the nonvolatile memory 14 is not necessarily built in the computer 10 .
- the nonvolatile memory 14 may be, for example, a portable memory device that is removable from the computer 10 , such as a memory card.
- the operation unit 17 is a functional unit that receives an instruction from a user of the processing apparatus 1 .
- the operation unit 17 includes, for example, an input device such as a mouse, a keyboard, and a touch panel.
- the display unit 18 is a functional unit that displays information processed by the CPU 11 .
- the display unit 18 includes, for example, a display device such as a liquid crystal display, an organic electroluminescence (EL) display, or a projector.
- a display device such as a liquid crystal display, an organic electroluminescence (EL) display, or a projector.
- the communication unit 19 includes, for example, an interface that is connected to a communication line such as the Internet or an in-house local area network (LAN) and performs data communication with an external apparatus connected to the communication line.
- a communication line such as the Internet or an in-house local area network (LAN) and performs data communication with an external apparatus connected to the communication line.
- LAN local area network
- FIG. 2 is a diagram illustrating an example of a three-dimensional shape of an object 2 .
- the three-dimensional shape of the object 2 is represented using three-dimensional coordinates represented by an X axis, a Y axis, and a Z axis.
- a position in space will be specified by three-dimensional coordinates, and the three-dimensional shape of the object 2 will be simply referred to as the “shape of the object 2 ”.
- the processing apparatus 1 uses, for example, data representing the shape of the object 2 using voxels 4 , as three-dimensional shape data representing the shape of the object 2 .
- FIG. 3 is a diagram illustrating an example in which the shape of the object 2 illustrated in FIG. 2 is represented by three-dimensional shape data composed of the voxels 4 .
- the voxels 4 each represent a three-dimensional region obtained by dividing a space.
- the voxels 4 may be, for example, cubes. However, the voxels 4 are not necessarily cubes but may be other three-dimensional regions such as cuboids, triangular pyramids, spheres, and cylinders.
- the shape of the object 2 is represented by a set of voxels 4 interfering with the object 2 .
- a state in which “a voxel 4 interferes with the object 2 ” represents a state in which part of the object 2 is in contact with or included in the voxel 4 .
- a voxel 4 interfering with the object 2 will be referred to as an “ON-state voxel 4 ”, and a voxel 4 not interfering with the object 2 will be referred to as an “OFF-state voxel 4 ”. That is, the shape of the object 2 is represented by a set of ON-state voxels 4 .
- the space where the object 2 is present is divided in units of voxels 4 . Thus, not only the ON-state voxels 4 but the OFF-state voxels 4 are also present in the space.
- a voxel 4 with only its surface being in contact with the object 2 may be treated as an ON-state voxel 4 .
- a voxel 4 with its center interfering with the object 2 will be treated as an ON-state voxel 4
- a voxel 4 with only its surface interfering with the object 2 will be treated as an OFF-state voxel 4 .
- a three-dimensional shape of the object 2 is represented in a desired manner.
- attributes representing characteristics of each voxel 4 such as color, strength, material, texture, and the like may be set for the voxel 4 .
- the color, material, and the like of the object 2 are represented by attributes of the ON-state voxels 4 .
- information of surroundings of the object 2 such as information of illuminance, air current, and the like, is represented by attributes of the OFF-state voxels 4 .
- Information regarding the ON state and the OFF state are also examples of attributes of the voxels 4 .
- the shape of the object 2 is represented by a set of voxels 4 .
- the shape of the object 2 is represented by element values associated with coordinates specifying positions in space.
- coordinates of the center point of a voxel 4 in the space are represented by (X,Y,Z)
- an ON-state voxel 4 is represented by “(X,Y,Z) ⁇ 1”
- the shape of the object 2 is represented as described above. That is, three-dimensional shape data defining the shape of the object 2 using the voxels 4 includes element values of coordinates (X,Y,Z) representing a state of interference with the object 2 and attributes associated with the voxels 4 .
- the space where the object 2 is present is not necessarily represented by coordinates (X,Y,Z) but may be represented by, for example, an index number uniquely associated with coordinates (X,Y,Z).
- a value “1”, which is associated with an index number represents a voxel 4 whose center point is at the position represented by the index number.
- coordinates representing a position in space are not limited to three-dimensional orthogonal coordinates with the X, Y, and Z axes but may be, for example, polar coordinates with r and ⁇ .
- index numbers may be associated with individual pitches of r and ⁇ and values of 1 or more represented by index numbers may be specified, so that a state in which an ON-state voxel 4 is located at the position may be represented.
- three-dimensional shape data of the object 2 composed of the voxels 4 may be converted into three-dimensional shape data of the object 2 composed of polygons in accordance with a known algorithm for allocating polygons to surfaces of the object 2 composed of the voxels 4 using the MC method.
- FIG. 4 is a diagram illustrating an example in which the shape of the object 2 illustrated in FIG. 2 is represented by three-dimensional shape data composed of polygons 6 .
- the polygons 6 are formation faces configuring surfaces of the object 2 . There is no constraint on the shape of the polygons 6 . For example, polygons such as a triangle and a rectangle are used.
- the shape of the object 2 is configured by combining a plurality of polygons 6 along surfaces of the object 2 . That is, three-dimensional shape data defining the shape of the object 2 using the polygons 6 includes, for example, the position and orientation of each of the polygons 6 , information regarding connection between polygons 6 that are adjacent to each other, and the like.
- the polygons 6 are not necessarily flat faces but may be curved faces. Hereinafter, for example, the polygons 6 are flat faces.
- the shape of the object 2 is represented by three-dimensional shape data composed of the voxels 4
- information such as color and material of the object 2 and stress applied to the object 2 , corresponding to each of the voxels 4 may be stored and used as attributes of the voxel 4 .
- the object 2 is analyzed based on three-dimensional shape data of the object 2 composed of the voxels 4
- the three-dimensional shape data of the object 2 is a high-precision model including attributes of more positions
- the sizes of the voxels 4 into which space is divided may be reduced as much as possible so that the number of voxels 4 per unit volume, that is, the density of voxels, may be increased.
- the data amount of three-dimensional shape data increases.
- the increase in the data amount of three-dimensional shape data brings an impact on the capacity of the RAM 13 and the nonvolatile memory 14 of the processing apparatus 1 , and a longer time is thus required for processing the three-dimensional shape data at the processing apparatus 1 .
- a part in which the influence of low density of associated attributes exerted on analysis of the object 2 is small is divided into voxels 4 with a size larger than the other voxels 4
- a part in which a detailed analysis result is desired is divided into voxels 4 with a size smaller than the other voxels 4 . Accordingly, three-dimensional shape data of the object 2 that has been taken into account the balance between analysis accuracy, processing time, and data amount may be obtained.
- the size of the voxel 4 may be represented.
- an inconsistent part may be generated on a surface of the object 2 .
- the inconsistent part represents a part in which a gap occurs between adjacent polygons 6 composing a surface of the object 2 , the polygons 6 intersect with each other, or the polygons 6 are bent to overlap with each other.
- FIG. 5 is a diagram illustrating an example of the polygons 6 including an inconsistent part.
- a voxel 4 A and voxels 4 B, 4 C, 4 D, and 4 E are present.
- the voxels 4 B, 4 C, 4 D, and 4 E have the same size and are smaller than the voxel 4 A.
- a gap may occur between the polygon 6 A and the polygon 6 B, as illustrated in FIG. 5 .
- two vertices of the polygon 6 A that are in contact with the voxel 4 B are moved along sides of the voxel 4 A up to vertices of the polygon 6 B positioned at the corresponding sides of the voxel 4 A.
- FIG. 7 is a flowchart illustrating an example of the flow of a three-dimensional shape data process performed by the CPU 11 of the processing apparatus 1 in the case where the polygons 6 are allocated to surfaces of the object 2 that is represented by three-dimensional shape data composed of a plurality of voxels 4 at least one of which is smaller than another voxel 4 (hereinafter, simply referred to as “voxel data”).
- a three-dimensional shape data processing program that defines the three-dimensional shape data process is stored in advance, for example, in the ROM 12 of the processing apparatus 1 .
- the CPU 11 of the processing apparatus 1 reads the three-dimensional shape data processing program stored in the ROM 12 and performs the three-dimensional shape data process.
- voxel data may be acquired by the communication unit 19 from an external apparatus connected to the communication line.
- step S 10 the CPU 11 acquires voxel data stored in the nonvolatile memory 14 and stores the acquired voxel data into the RAM 13 .
- the CPU 11 performs processing on the voxel data stored in the RAM 13 .
- FIG. 8 is a diagram illustrating an example of voxel data acquired from the nonvolatile memory 14 .
- the object 2 is a solid, and the voxel 4 A and the voxel 4 B are three-dimensional regions (for example, cubes).
- the voxel 4 A and the voxel 4 B are three-dimensional regions (for example, cubes).
- FIG. 8 arrangement of the object 2 and the voxels 4 on an XY plane passing through inside the object 2 in the case where the object 2 represented by voxel data and the voxels 4 are viewed from above (in the direction in which space is viewed in the origin direction along a Z-axis direction) is illustrated in FIG. 8 .
- such a diagram will be referred to as a plan view.
- the voxels 4 are denoted as the voxel 4 A and the voxel 4 B, as described above.
- the voxels 4 will be are collectively denoted as “voxels 4 ”.
- Voxel data used for explanation includes two types of voxels 4 of different sizes, such as the voxels 4 A at level A (in FIG. 8 , represented by “LV-A”) and the voxels 4 B at level B (in FIG. 8 , represented by “LV-B”).
- the voxels 4 A are larger than the voxels 4 B.
- the voxels 4 of the same type are stacked in the Z-axis direction of the voxels 4 illustrated in FIG. 8 .
- the voxels 4 of different types may be stacked.
- the voxels 4 of two types are illustrated in FIG. 8 .
- the voxels 4 of three or more different sizes may be used, and there is no constraint on the sizes of the voxels 4 .
- voxels 4 with divisible ratios or voxels 4 of similar sizes are combined is illustrated in FIG. 8 .
- the voxels 4 are merely an aspect representing three-dimensional regions, and other combinations are possible.
- three-dimensional regions of different sizes and different shapes may be combined, or the voxels 4 may be three-dimensional regions formed in the case where points that are adjacent to each other in a group of points that are discretely distributed in a three-dimensional space are combined in a desired manner.
- Signs of the voxels 4 each indicate a signed distance field (SDF) representing the positional relationship between the voxel 4 and the object 2 .
- SDF signed distance field
- the distance from the center point of the voxel 4 to the nearest surface of the object 2 is set as the size of the signed distance field of the voxel 4 .
- a positive sign is set for the distance.
- a negative sign is set for the distance. That is, a voxel 4 with a positive sign as the SDF is in the ON state, and a voxel 4 with a negative sign as the SDF is in the OFF state.
- a standard for distance is not limited to the center point of the voxel 4 .
- a standard for distance may be the distance from a lattice point when the voxel 4 is regarded as a three-dimensional lattice to the nearest surface of the object 2 .
- the centroid or the like may be used as a standard for distance.
- FIG. 9 is a diagram of enlarged four voxels 4 B- 1 , 4 B- 2 , 4 B- 3 , and 4 B- 4 included in a region 7 of FIG. 8 .
- each of the distance from a center point 9 A of the voxel 4 B- 1 to the nearest surface of the object 2 and the distance from a center point 9 B of the voxel 4 B- 2 to the nearest surface of the object 2 is set to 0.7
- the distance from a center point 9 C of the voxel 4 B- 3 to the nearest surface of the object 2 is set to 0.3
- the distance from a center point 9 D of the voxel 4 B- 4 to the nearest surface of the object 2 is set to 0.2.
- the center point 9 C of the voxel 4 B- 3 is inside the object 2 .
- the SDF of each of the voxels 4 B- 1 and 4 B- 2 is “ ⁇ 0.7”
- the SDF of the voxel 4 B- 3 is “0.3”
- the SDF of the voxel 4 B- 4 is “ ⁇ 0.2”.
- FIG. 10 is a diagram in which attention is paid to the SDF of the four voxels 4 B- 1 , 4 B- 2 , 4 B- 3 , and 4 B- 4 included in the region 7 in FIG. 8 calculated as described above.
- For each of the voxels 4 illustrated in FIG. 8 only sign of SDF of the voxel 4 is displayed, and the size of the SDF (hereinafter, referred to as an “absolute value of SDF”) is omitted, as illustrated in FIG. 10 .
- an absolute value of SDF is associated with each of the voxels 4 .
- the SDF is an example of attributes of the voxels 4 .
- step S 20 the CPU 11 selects a determination region from the voxel data acquired in step S 10 .
- the determination region represents a unit of conversion in which conversion from the voxels 4 into polygons 6 is performed in accordance with the MC method.
- the CPU 11 sets a range including eight voxels 4 , that is, two voxels 4 in each of the X-axis direction, the Y-axis direction, and the Z-axis direction in a space, as a determination region.
- the region 7 corresponds to the determination region.
- the region 7 will be referred to as a “determination region 7 ”.
- FIG. 11 is a diagram illustrating an example of the determination region 7 composed of voxels 4 B of the same size that are adjacent to each other.
- the CPU 11 sets, for the determination region 7 , a shape in which a predetermined position in each of the voxels 4 included in the determination region 7 is defined as a vertex (hereinafter, referred to as a “unit shape 8 ”). There is no constraint on the positions of the vertices of the unit shape 8 . However, for example, the CPU 11 sets the positions of the vertices of the unit shape 8 such that center points 9 of the individual voxels 4 are defined as vertices of the unit shape 8 .
- a cube having the center points of the individual voxels 4 B as vertices is the unit shape 8 .
- the vertices of the unit shape 8 are the center points 9 of the individual voxels 4 .
- the vertices of the unit shape 8 will be referred to as “vertices 9 ”.
- the MC method may be used for the unit shape 8 having eight vertices, such as a cube. Therefore, by using the known MC method, the polygons 6 may be allocated to the unit shape 8 .
- the CPU 11 sets the determination region 7 taking into consideration similarity between the voxels 4 that are adjacent to each other.
- FIG. 12 is a diagram illustrating an example of the determination region 7 that has a border at which voxels 4 that are adjacent to each other in the X-axis direction have different sizes.
- voxels 4 B in FIG. 12 When attention is paid to the four voxels 4 B in FIG. 12 , voxels 4 B of the same size are adjacent to each other in the Y-axis direction and the Z-axis direction, whereas a voxel 4 A of a different size is adjacent to the voxels 4 B in the X-axis direction.
- the voxel 4 that is adjacent to each of the four voxels 4 B in the X-axis direction is the same voxel 4 A.
- the CPU 11 virtually regards the voxel 4 A, which is actually the single voxel 4 A, as voxels 4 A that are adjacent to the individual voxels 4 B and as voxels 4 that overlap with each other.
- the determination region 7 is thus configured as illustrated in FIG. 12 .
- the unit shape 8 is a quadrangular pyramid.
- the CPU 11 may handle a unit shape 8 that has eight vertices such as a cube or a unit shape 8 that has less than eight vertices such as quadrangular pyramid.
- the MC method is not able to be used for the unit shape 8 . Therefore, the CPU 11 handles the vertices 9 of the unit shape 8 as described later. For example, the CPU 11 uses the MC method by regarding the unit shape 8 with less than eight apparent vertices such as a quadrangular pyramid as having eight vertices, so that conversion from voxel data into polygon data may be performed.
- Polygon data represents three-dimensional shape data composed of the polygons 6 .
- the CPU 11 In order to perform conversion from voxel data into polygon data, the CPU 11 needs to extract all the unit shapes 8 having different types of shape from the voxel data without missing or repeating any unit shape. Thus, the CPU 11 sets the determination region 7 such that extraction of unit shapes is performed for voxel data without missing or repeating any unit shape.
- the CPU 11 extracts, as reference vertices, vertices of voxels 4 that are not positioned on the outer contour from among all the voxels 4 composing the voxel data acquired in step S 10 .
- Vertices of voxels 4 that are not positioned on the outer contour represent vertices that are not exposed to the outermost part of a set of voxels, that is, vertices that are not exposed to surfaces of the set of voxels, in the case where the voxels 4 into which the space is divided are regarded as a single set of voxels.
- vertices surrounded by voxels 4 in the X-axis direction, the Y-axis direction, and the Z-axis direction are defined as reference vertices 3 .
- FIG. 13 is a diagram illustrating a state in which the reference vertices 3 are extracted from the voxel data illustrated in FIG. 8 .
- the CPU 11 After extracting all the reference vertices 3 from the voxel data, the CPU 11 sets, for each of the reference vertices 3 , all the voxels 4 that are in contact with the reference vertex 3 as the determination region 7 corresponding to the reference vertex 3 .
- the voxel 4 A and the four voxels 4 B are in contact with the reference vertex 3 .
- a range including the voxels 4 illustrated in FIG. 12 is defined as the determination region 7 .
- the determination region 7 composed of the voxels 4 that are in contact with the reference vertex 3 is an example of a three-dimensional region group.
- the CPU 11 extracts the unit shapes 8 from the voxel data without missing or repeating any unit shape. Extracting a unit shape 8 repeatedly represents a case where the unit shapes 8 that completely overlap are extracted or a case where the unit shapes 8 part of which overlap are extracted.
- the CPU 11 allocates a polygon 6 to the extracted unit shape 8 , so that a surface of the object 2 represented by the voxel data is formed of the polygon 6 in step S 30 .
- the CPU 11 uses the MC method for allocation of the polygon 6 to the unit shape 8 . That is, the CPU 11 generates a flat face by allocating the polygon 6 having a shape in which the midpoint of a side that connects vertices 9 of the unit shape 8 is defined as a new vertex (referred to as an “MC vertex”) to the unit shape 8 on the basis of a state pattern of the voxels 4 composing the determination region 7 from which the unit shape 8 is extracted and achieving consistency.
- a state pattern of voxels 4 represents a pattern of combination of the ON state and the OFF state of a plurality of voxels 4 .
- FIGS. 14A to 14P are plan views illustrating examples of allocation patterns in the case where a polygon 6 is allocated to the unit shape 8 on the basis of state patterns of the voxels 4 composing the determination region 7 from which the unit shape 8 having the eight vertices 9 is extracted.
- the determination region 7 illustrated in FIG. 14 includes three types of voxels of different sizes: the voxel 4 A, the voxels 4 B, and the voxel 4 C.
- the determination region 7 includes the two voxels 4 B, one of them being represented by a voxel 4 B- 1 and the other being represented by a voxel 4 B- 2 .
- FIGS. 14A to 14P illustrate the state patterns of the voxels 4 .
- a voxel 4 illustrated as a shaded voxel such as the voxel 4 B- 1 in FIG. 14B represents an ON-state voxel 4
- a voxel 4 illustrated as a non-shaded voxel such as the voxel 4 B- 2 in FIG. 14B represents an OFF-state voxel 4 .
- FIGS. 14C to 14P the same elements as those in FIGS. 14A and 14B are referred to with the same reference signs as those in FIGS. 14A and 14B . However, the reference signs are omitted in FIGS. 14C to 14P .
- FIGS. 14A to 14P sixteen state patterns are illustrated based on the MC method.
- a polygon 6 is generated such that the midpoint of a line segment connecting the center point of an ON-state voxel 4 to a center point of an OFF-state voxel 4 is defined as an MC vertex.
- Allocation processing of a polygon 6 may be performed only on the basis of whether each of the vertices of the unit shape 8 formed based on the determination region 7 used is in the ON state or the OFF state.
- the CPU 11 allocates a polygon 6 in which midpoints of sides each connecting the center point 9 of an ON-state voxel 4 to the center point 9 of an OFF-state voxel 4 are defined as MC vertices 22 to the unit shape 8 , in accordance with each of the state patterns of the voxels 4 illustrated in FIGS. 14A to 14P .
- the voxel 4 B- 1 is in the ON state, and the voxel 4 A, the voxel 4 B- 2 , and the voxel 4 C are in the OFF state.
- the CPU 11 allocates a polygon 6 having an MC vertex 22 A, which is the midpoint of a side connecting a center point 9 B of the voxel 4 B- 1 to a center point 9 A of the voxel 4 A, and an MC vertex 22 B, which is the midpoint of a side connecting the center point 9 B of the voxel 4 B- 1 to a center point 9 C of the voxel 4 C, to the unit shape 8 .
- the CPU 11 also allocates a polygon 6 to the unit shape 8 in accordance with the method described above taking FIG. 14B as an example.
- the ON-state and OFF-state voxels 4 are not present in a mixed manner in the determination region 7 .
- no polygon 6 is allocated to the unit shape 8 in FIGS. 14A and 14I .
- the same voxel 4 A is adjacent to all the voxels 4 B.
- the center points 9 A of the voxels 4 that are adjacent to the voxels 4 B are the same. Therefore, the unit shape 8 obtained from the determination region 7 illustrated in FIG. 12 is a quadrangular pyramid.
- the CPU 11 performs processing such that, regarding the vertices 9 of the unit shape 8 , the voxel 4 A adjacent to each of the voxels 4 B is regarded as different voxels 4 A that are adjacent to the voxels 4 B on the voxel data. That is, the CPU 11 performs processing by regarding the voxel 4 A as different voxels 4 A that are virtually adjacent to the individual voxels 4 B and regarding the center point 9 A of the voxel 4 A as center points that overlap with each other because the virtual voxels 4 A are located at the same position, which making the apparent number of vertices 9 of the unit shape 8 to be less than eight.
- the CPU 11 regards the state in which the apparent number of vertices of the unit shape 8 is less than eight as a result of overlap of at least one vertex 9 of the unit shape 8 and another vertex 9 on data, and performs processing by regarding the unit shape 8 as actually having eight vertices 9 . That is, in the unit shape 8 illustrated in FIG. 12 , the center points 9 A of the individual voxels 4 A that are adjacent to the voxels 4 B overlap. Thus, as a result of contraction of the sides connecting the center points 9 A, the unit shape 8 only looks like a quadrangular pyramid.
- the CPU 11 By handling the vertices 9 of the unit shape 8 as described above, the CPU 11 also uses the MC method for the unit shape 8 whose apparent number of vertices is less than eight.
- FIGS. 15A to 15H are plan views illustrating examples of allocation patterns in the case where a polygon 6 is allocated to the unit shape 8 on the basis of state patterns of the voxels 4 composing the determination region 7 from which the unit shape 8 apparently having less than eight vertices 9 is extracted.
- the determination region 7 illustrated in FIGS. 15A to 15H includes three types of voxels 4 of different sizes: the voxels 4 A, 4 B, and 4 C.
- FIGS. 15A to 15H illustrate the state patterns of the voxels 4 .
- a shaded voxel 4 such as the voxel 4 B in FIG. 15B represents an ON-state voxel 4
- a non-shaded voxel 4 such as the voxel 4 A in FIG. 15B represents an OFF-state voxel 4 .
- FIGS. 15C to 15H the same elements as those in FIGS. 15A and 15B are referred to with the same reference signs as those in FIGS. 15A and 15B . However, the reference signs are omitted in FIGS. 15C to 15H .
- the voxel 4 B is in the ON state, and the voxel 4 A and the voxel 4 C are in the OFF state. Therefore, the CPU 11 allocates a polygon 6 that has an MC vertex 22 A, which is the midpoint of a side connecting the center point 9 B of the voxel 4 B to the center point 9 A of the voxel 4 A, and the MC vertex 22 B, which is the midpoint of a side connecting the center point 9 B of the voxel 4 B to the center point 9 C of the voxel 4 C, to the unit shape 8 .
- the CPU 11 also allocates a polygon 6 to the unit shape 8 in accordance with the method explained above taking FIG. 15B as an example.
- the ON-state and OFF-state voxels 4 are not present in a mixed manner in the determination region 7 .
- no polygon 6 is allocated to the unit shape 8 in FIGS. 15A and 15E .
- the CPU 11 By performing the processing described above for all the unit shapes 8 , the CPU 11 allows surfaces of the object 2 represented by voxel data to be composed of the polygons 6 . Then, the three-dimensional shape data process illustrated in FIG. 7 ends.
- FIG. 16 is a diagram illustrating an example of an outline 24 of the object 2 represented by polygon data, which is obtained by performing the three-dimensional shape data process illustrated in FIG. 7 for the voxel data illustrated in FIG. 13 .
- voxels 4 A arranged in the X-axis direction in a middle part of FIG. 16 will be referred to as a voxel 4 A- 1 , a voxel 4 A- 2 , and a voxel 4 A- 3 .
- voxels 4 B arranged in the X-axis direction will be referred to as a voxel 4 B- 1 , a voxel 4 B- 2 , . . . , and a voxel 4 B- 64 in order from the upper left to the lower right in FIG. 16 .
- the outline 24 represents the shape of the object 2 composed of polygons 6 having MC vertices 22 - 1 to 22 - 24 as vertices, with respect to the actual shape of the object 2 .
- the MC vertex 22 - 1 is positioned at the midpoint of a side connecting the center point 9 of the voxel 4 B- 25 to the center point 9 of the voxel 4 A- 1
- the MC vertex 22 - 2 is positioned at the midpoint of a side connecting the center point 9 of the voxel 4 A- 1 to the center point 9 of the voxel 4 A- 3 .
- the MC vertices 22 - 3 to 22 - 6 are positioned at midpoints of sides connecting the center point 9 of the voxel 4 A- 1 to the center points of the voxel 4 B- 33 , the voxel 4 B- 34 , the voxel 4 B- 35 , and the voxel 4 B- 36 , respectively, and the MC vertices 22 - 7 to 22 - 10 are positioned at midpoints of sides connecting the center point 9 of the voxel 4 A- 2 to the center points of the voxel 4 B- 37 , the voxel 4 B- 38 , the voxel 4 B- 39 , and the voxel 4 B- 40 , respectively.
- the MC vertex 22 - 11 is the midpoint of a line segment connecting the center point of an OFF-state voxel 4 A, which is not illustrated in FIG. 16 , adjacent to the voxel 4 A- 2 in the X-axis direction to the center point of the voxel 4 A- 2 .
- the processing apparatus 1 is able to generate polygon data configuring surfaces of the object 2 such that no inconsistent part is generated from the beginning.
- a polygon 6 is allocated to the unit shape 8 while regarding a side connecting the overlapping vertices 9 of the unit shape 8 as being contracted.
- an element that does not formally have an area such as a straight line or a point, may be allocated as a polygon 6 .
- a polygon 6 is represented by being polygonal. Thus, strictly speaking, a straight line or a point that does not have an area is not a polygon 6 .
- a polygon 6 that does not have an area may be regarded as being obtained when a polygon 6 that originally has an area becomes a polygon 6 that does not have an area in accordance with contraction of a side connecting overlapping vertices 9 of the unit shape 8 .
- a straight line or a point may be defined as a polygon 6 that does not have an area.
- FIG. 17 is a diagram illustrating an example of generation of a polygon 6 that does not have an area as a result of conversion from voxel data into polygon data.
- the determination region 7 illustrated in FIG. 17 is composed of the voxels 4 A and the voxels 4 B of different sizes.
- the voxels 4 A which are larger than the voxels 4 B, include the voxel 4 A- 1 and the voxel 4 A- 2
- the voxels 4 B include the voxel 4 B- 1 , the voxel 4 B- 2 , the voxel 4 B- 3 , and the voxel 4 B- 4 .
- the processing apparatus 1 allocates a triangular polygon 6 having a midpoint 22 X of a side connecting the vertex 9 B- 1 to the vertex 9 B- 2 in the unit shape 8 , a midpoint 22 Y of a side connecting the vertex 9 B- 4 to the vertex 9 B- 3 in the unit shape 8 , and a midpoint 22 Z of a side connecting the vertex 9 A- 1 to the vertex 9 A- 2 in the unit shape 8 as vertices to the unit shape 8 .
- the processing apparatus 1 performs processing by regarding the voxel 4 A- 1 as different voxels 4 A- 1 that are adjacent to the voxel 4 B- 1 and the voxel 4 B- 4 on voxel data and regarding the voxel 4 A- 2 as different voxels 4 A- 2 that are adjacent to the voxel 4 B- 2 and the voxel 4 B- 3 on voxel data.
- polygons 6 A and 6 B illustrated in FIG. 18 are allocated to the unit shape 8 illustrated in FIG. 17 .
- an MC vertex 22 a and the MC vertex 22 Z of the polygon 6 B overlap.
- the polygon 6 B is collapsed to a straight line connecting the MC vertex 22 Y to the MC vertex 22 Z.
- the CPU 11 deletes the polygon 6 that does not have an area from the unit shape 8 .
- the CPU 11 may not allocate the polygon 6 not having an area to the unit shape 8 .
- the processing apparatus 1 may convert voxel data into polygon data by the three-dimensional shape data process and then perform a polygon correction process for correcting the polygon data.
- FIG. 19 is a diagram illustrating an example of voxel data and polygon data after the three-dimensional shape data process is performed.
- FIG. 19 is the same as FIG. 16 .
- explanation for the polygon correction process will be provided by paying attention to voxels 4 included in a region 25 .
- FIG. 20 is an enlarged diagram in which the voxels 4 included in the region 25 illustrated in FIG. 19 are enlarged.
- FIG. 20 for each voxel 4 , not only the sign but the absolute value of SDF is also indicated.
- MC vertices 22 of a polygon 6 are each arranged at the border of an ON-state voxel 4 and an OFF-state voxel 4 , that is, at the midpoint of a side connecting center points 9 of the voxels 4 that are adjacent to each other inside and outside the shape of the object 2 . That is, in the three-dimensional shape data process, the CPU 11 sets the MC vertices 22 of the polygon 6 at positions each obtained by dividing a side connecting the center points 9 of the voxels 4 that are adjacent to each other inside and outside the shape of the object 2 at the ratio of 5:5.
- the positions of the MC vertices 22 of the polygon 6 are each corrected in accordance with the distance from the center points 9 of the adjacent voxels 4 to a surface of the object 2 , that is, the ratio of absolute values of SDF associated with the voxels 4 .
- the absolute values of SDF of the OFF-state voxel 4 B- 17 and the ON-state voxel 4 B- 18 are 0.9 and 0.1, respectively.
- the CPU 11 corrects the position of the MC vertex 22 - 23 such that the MC vertex 22 - 23 is arranged at a position that divides the side connecting the center point 9 of the voxel 4 B- 17 to the center point 9 of the voxel 4 B- 18 at the ratio of 9:1.
- the absolute values of SDF of the OFF-state voxel 4 B- 25 and the ON-state voxel 4 A- 1 are 0.5 and 0.7, respectively.
- the CPU 11 corrects the position of the MC vertex 22 - 1 such that the MC vertex 22 - 1 is arranged at a position that divides the side connecting the center point 9 of the voxel 4 B- 25 to the center point 9 of the voxel 4 A- 1 at the ratio of 5:7.
- a corrected outline 26 representing the shape of the object 2 is obtained, as illustrated in FIG. 21 .
- the outline 26 is closer to the outline of the actual shape of the object 2 than the outline 24 of the shape of the object 2 obtained by the three-dimensional shape data process is.
- the CPU 11 may delete the polygon 6 that does not have an area from the unit shape 8 .
- polygon data of the object 2 may be generated based on distribution of attributes in the space with which attribute values for the object 2 are associated.
- FIG. 22 is a diagram illustrating an example of a state of distribution of attribute points 28 that are associated with attributes at points in the space represented by three-dimensional coordinates. Attribute values are associated with the individual attribute points 28 (in the example of FIG. 22 , attribute points 28 A, 28 B, 28 C, and 28 D). An attribute value of a corresponding attribute is present at the coordinates at which an attribute point 28 is positioned. That is, no attribute is present at the coordinates at which no attribute point 28 is present. There is no constraint on the type of attribute associated with an attribute point 28 . For example, SDF or temperature distribution may be associated with attribute points 28 .
- the CPU 11 divides the space where the attribute distribution is present into a plurality of voxels 4 at least one of which has a size different from another voxel 4 .
- the CPU 11 uses the MC method for the space that has been divided as described above, and the shape of the object 2 is obtained from the attribute distribution.
- the CPU 11 sequentially sets determination regions 7 for voxels 4 into which the space has been divided, and extracts a unit shape 8 for each of the determination regions 7 .
- the CPU 11 sequentially scans all the voxels 4 composing the voxel data, extracts all the reference vertices 3 included in the voxel data on the basis of the positional relationship between the voxels 4 , and sets, for each of the reference vertices 3 , all the voxels 4 that are in contact with the reference vertex 3 as a determination region 7 corresponding to the reference vertex 3 .
- the voxels 4 are categorized into a voxel 4 including an attribute point 28 and a voxel 4 not including an attribute point 28 .
- the CPU 11 treats a voxel 4 including an attribute point 28 as an ON-state 4 and treats a voxel 4 not including an attribute point 28 as an OFF-state voxel 4 .
- the voxels 4 A, 4 B, 4 C, and 4 D are treated as ON-state voxels 4
- the voxel 4 E is treated as an OFF-state voxel 4 .
- the CPU 11 generates a flat face by allocation to the unit shape 8 on the basis of a state pattern of the voxels 4 composing the determination region 7 and achieving consistency.
- the shape of the object 2 represented by polygons 6 is obtained based on the attribute distribution.
- an example in which the three-dimensional shape data process is implemented by software is described.
- a process equivalent to the process represented by the flowchart illustrated in FIG. 7 may be implemented in, for example, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or a programmable logic device (PLD) and may be processed by hardware.
- ASIC application specific integrated circuit
- FPGA field programmable gate array
- PLD programmable logic device
- the processing speed may be increased.
- the CPU 11 which is an example of a general-purpose processor, may be replaced with a dedicated processor specialized in specific processing, such as the ASIC, the FPGA, the PLD, a graphic processing unit (GPU), or a floating point unit (FPU).
- a dedicated processor specialized in specific processing such as the ASIC, the FPGA, the PLD, a graphic processing unit (GPU), or a floating point unit (FPU).
- operation of a processor according to an exemplary embodiment may not be implemented by a single CPU 11 but may be implemented by a plurality of processors. Moreover, operation of a processor according to an exemplary embodiment may be implemented by processors included in a plurality of computers 10 in collaboration which are located physically apart from each other.
- the three-dimensional shape data processing program is installed in the ROM 12 .
- the three-dimensional shape data processing program may be recorded in a computer-readable recording medium and provided.
- the three-dimensional shape data processing program may be recorded in an optical disk such as a compact disc (CD)-ROM or a digital versatile disc (DVD)-ROM and provided.
- the three-dimensional shape data processing program may be recorded in a portable semiconductor memory such as a universal serial bus (USB) or a memory card and provided.
- USB universal serial bus
- the processing apparatus 1 may acquire a three-dimensional shape data processing program according to an exemplary embodiment through the communication unit 19 from an external apparatus connected to the communication line.
- processor refers to hardware in a broad sense.
- the processor includes general processors (e.g., CPU: Central Processing Unit), dedicated processors (e.g., GPU: Graphics Processing Unit, ASIC: Application Integrated Circuit, FPGA: Field Programmable Gate Array, and programmable logic device).
- general processors e.g., CPU: Central Processing Unit
- dedicated processors e.g., GPU: Graphics Processing Unit
- ASIC Application Integrated Circuit
- FPGA Field Programmable Gate Array
- programmable logic device e.g., programmable logic device
- processor is broad enough to encompass one processor or plural processors in collaboration which are located physically apart from each other but may work cooperatively.
- the order of operations of the processor is not limited to one described in the embodiments above, and may be changed.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
Description
- This application is based on and claims priority under 35 U.S.C. 119 from Japanese Patent Application No. 2020-051913 filed Mar. 23, 2020.
- The present disclosure relates to a three-dimensional shape data processing apparatus and a non-transitory computer readable medium.
- A technique for locally adjusting accuracy of a generated polygon model by being able to use a marching cubes method for volume data including voxels of different resolutions is disclosed in Mitsuaki SAITO, “Multi-resolution Marching-Cubes”, Faculty of Environmental Information, Keio University, Japan.
- Three-dimensional shape data including a combination of three-dimensional regions (called voxels) of the same size such as cuboids or cubes may be used to represent a three-dimensional shape of an object.
- In the case where a three-dimensional shape of an object is represented by voxels, not only surfaces of the object but the internal state of the object is also represented. Accordingly, the memory capacity required to store the three-dimensional shape data is greater than, for example, three-dimensional shape data that defines only surfaces of an object by polygons. Thus, in order to reduce the data amount of three-dimensional shape data defined by voxels and the amount of data computation of the three-dimensional shape data, for example, a technique for changing the size of voxels composing an object according to a position in the object is used.
- Meanwhile, in the case where a three-dimensional shape of an object is represented by voxels, surfaces of the object are also represented by the voxels. Therefore, it is difficult to smoothly represent surfaces of the object compared to the case where surfaces of the object are represented by polygons. Thus, three-dimensional shape data in which the size of voxels composing an object is changed according to a position in the object may be converted into three-dimensional shape data represented by polygons.
- However, voxels used for three-dimensional shape data have different sizes. Thus, for example, in the case where a marching cubes (MC) method for applying a polygon to an attribute pattern of a voxel to generate a flat face is used for such conversion, an inconsistent part such as a gap may be generated between polygons.
- Aspects of non-limiting embodiments of the present disclosure relate to providing a three-dimensional shape data processing apparatus and a non-transitory computer readable medium that are capable of configuring surfaces of an object such that an inconsistent part is not generated from the beginning even in a case where a three-dimensional shape of the object is represented by three-dimensional regions of different sizes.
- Aspects of certain non-limiting embodiments of the present disclosure address the above advantages and/or other advantages not described above. However, aspects of the non-limiting embodiments are not required to address the advantages described above, and aspects of the non-limiting embodiments of the present disclosure may not address advantages described above.
- According to an aspect of the present disclosure, there is provided a three-dimensional shape data processing apparatus including a processor. The processor receives three-dimensional shape data represented by dividing a space including an object into a plurality of three-dimensional regions, at least one of the plurality of three-dimensional regions having a size different from another three-dimensional region, extracts unit shapes from the space without missing or repeating any unit shape, the unit shapes each being formed by setting a predetermined position in each of the three-dimensional regions included in a three-dimensional region group formed of three-dimensional regions adjacent to each other as a vertex, and configures a surface of the object as a formation face represented by a flat face, based on each of the extracted unit shapes.
- Exemplary embodiments of the present disclosure will be described in detail based on the following figures, wherein:
-
FIG. 1 is a diagram illustrating an example of the configuration of a three-dimensional shape data processing apparatus; -
FIG. 2 is a diagram illustrating an example of a three-dimensional shape of an object; -
FIG. 3 is a diagram illustrating an example of a three-dimensional shape of an object composed of voxels; -
FIG. 4 is a diagram illustrating an example of a three-dimensional shape of an object composed of polygons; -
FIG. 5 is a diagram illustrating an example of polygons including an inconsistent part; -
FIG. 6 is a diagram illustrating an example of correction of polygons including an inconsistent part; -
FIG. 7 is a flowchart illustrating an example of the flow of a three-dimensional shape data process; -
FIG. 8 is a diagram illustrating an example of voxel data; -
FIG. 9 is a diagram illustrating an example of a signed distance field (SDF); -
FIG. 10 is a diagram illustrating a display example of an SDF according to an exemplary embodiment; -
FIG. 11 is a diagram illustrating an example of a determination region composed of voxels of the same sizes; -
FIG. 12 is a diagram illustrating an example of a determination region composed of voxels of different sizes; -
FIG. 13 is a diagram illustrating an example of reference vertices extracted from voxel data; -
FIGS. 14A to 14P are plan views illustrating examples of a pattern of allocation of a polygon to a unit shape having eight vertices; -
FIGS. 15A to 15H are plan views illustrating examples of a pattern of allocation of a polygon to a unit shape having only less than eight vertices; -
FIG. 16 is a diagram illustrating an example of an outline of an object represented by polygon data obtained by performing a three-dimensional shape data process; -
FIG. 17 is a diagram illustrating an example of a polygon having no area; -
FIG. 18 is a diagram illustrating an example of a process of generation of a polygon having no area; -
FIG. 19 is a diagram used for explaining a polygon correction process; -
FIG. 20 is an enlarged diagram of voxels for which the polygon correction process is performed; -
FIG. 21 is a diagram illustrating an example of a result of execution of the polygon correction process; and -
FIG. 22 is a diagram illustrating an example of attribute distribution. - Hereinafter, exemplary embodiments will be described with reference to drawings. The same component elements and the same processes will be referred to with the same reference signs throughout the drawings, and redundant explanation will not be provided.
- First, a configuration of a three-dimensional shape data processing apparatus 1 (hereinafter, referred to as a “
processing apparatus 1”) according to an exemplary embodiment will be described with reference toFIG. 1 . - The
processing apparatus 1 is, for example, acomputer 10. Thecomputer 10 includes a central processing unit (CPU) 11, which is an example of a processor, a read only memory (ROM) 12, a random access memory (RAM) 13, anonvolatile memory 14, and an input/output interface (I/O) 15. TheCPU 11, theROM 12, theRAM 13, thenonvolatile memory 14, and the I/O 15 are connected to one another via abus 16. Furthermore, anoperation unit 17, adisplay unit 18, and acommunication unit 19 are connected to the I/O 15. - The
nonvolatile memory 14 is an example of a memory device in which stored information is maintained even when electric power supplied to thenonvolatile memory 14 is interrupted. For example, a semiconductor memory is used as thenonvolatile memory 14. However, a hard disk may be used as thenonvolatile memory 14. Thenonvolatile memory 14 is not necessarily built in thecomputer 10. Thenonvolatile memory 14 may be, for example, a portable memory device that is removable from thecomputer 10, such as a memory card. - The
operation unit 17 is a functional unit that receives an instruction from a user of theprocessing apparatus 1. Theoperation unit 17 includes, for example, an input device such as a mouse, a keyboard, and a touch panel. - The
display unit 18 is a functional unit that displays information processed by theCPU 11. Thedisplay unit 18 includes, for example, a display device such as a liquid crystal display, an organic electroluminescence (EL) display, or a projector. - The
communication unit 19 includes, for example, an interface that is connected to a communication line such as the Internet or an in-house local area network (LAN) and performs data communication with an external apparatus connected to the communication line. -
FIG. 2 is a diagram illustrating an example of a three-dimensional shape of anobject 2. The three-dimensional shape of theobject 2 is represented using three-dimensional coordinates represented by an X axis, a Y axis, and a Z axis. Hereinafter, a position in space will be specified by three-dimensional coordinates, and the three-dimensional shape of theobject 2 will be simply referred to as the “shape of theobject 2”. - The
processing apparatus 1 uses, for example, data representing the shape of theobject 2 usingvoxels 4, as three-dimensional shape data representing the shape of theobject 2. -
FIG. 3 is a diagram illustrating an example in which the shape of theobject 2 illustrated inFIG. 2 is represented by three-dimensional shape data composed of thevoxels 4. - The
voxels 4 each represent a three-dimensional region obtained by dividing a space. Thevoxels 4 may be, for example, cubes. However, thevoxels 4 are not necessarily cubes but may be other three-dimensional regions such as cuboids, triangular pyramids, spheres, and cylinders. The shape of theobject 2 is represented by a set ofvoxels 4 interfering with theobject 2. A state in which “avoxel 4 interferes with theobject 2” represents a state in which part of theobject 2 is in contact with or included in thevoxel 4. Avoxel 4 interfering with theobject 2 will be referred to as an “ON-state voxel 4”, and avoxel 4 not interfering with theobject 2 will be referred to as an “OFF-state voxel 4”. That is, the shape of theobject 2 is represented by a set of ON-state voxels 4. The space where theobject 2 is present is divided in units ofvoxels 4. Thus, not only the ON-state voxels 4 but the OFF-state voxels 4 are also present in the space. - As described above, for example, a
voxel 4 with only its surface being in contact with theobject 2 may be treated as an ON-state voxel 4. Hereinafter, however, for example, avoxel 4 with its center interfering with theobject 2 will be treated as an ON-state voxel 4, and avoxel 4 with only its surface interfering with theobject 2 will be treated as an OFF-state voxel 4. - By stacking the ON-
state voxels 4 as described above, a three-dimensional shape of theobject 2 is represented in a desired manner. Furthermore, for example, attributes representing characteristics of eachvoxel 4 such as color, strength, material, texture, and the like may be set for thevoxel 4. The color, material, and the like of theobject 2 are represented by attributes of the ON-state voxels 4. Furthermore, information of surroundings of theobject 2, such as information of illuminance, air current, and the like, is represented by attributes of the OFF-state voxels 4. Information regarding the ON state and the OFF state are also examples of attributes of thevoxels 4. - The shape of the
object 2 is represented by a set ofvoxels 4. Specifically, for example, the shape of theobject 2 is represented by element values associated with coordinates specifying positions in space. In the case where coordinates of the center point of avoxel 4 in the space are represented by (X,Y,Z), for example, an ON-state voxel 4 is represented by “(X,Y,Z)≤1” and an OFF-state voxel 4 is represented by “(X,Y,Z)=0”. Thus, the shape of theobject 2 is represented as described above. That is, three-dimensional shape data defining the shape of theobject 2 using thevoxels 4 includes element values of coordinates (X,Y,Z) representing a state of interference with theobject 2 and attributes associated with thevoxels 4. - The space where the
object 2 is present is not necessarily represented by coordinates (X,Y,Z) but may be represented by, for example, an index number uniquely associated with coordinates (X,Y,Z). In this case, for example, a value “1”, which is associated with an index number, represents avoxel 4 whose center point is at the position represented by the index number. - Furthermore, coordinates representing a position in space are not limited to three-dimensional orthogonal coordinates with the X, Y, and Z axes but may be, for example, polar coordinates with r and θ. In this case, as in the case where a space is represented by index numbers such as 1, 2, 3, and so on for individual pitches of the X, Y, and Z axes, index numbers may be associated with individual pitches of r and θ and values of 1 or more represented by index numbers may be specified, so that a state in which an ON-
state voxel 4 is located at the position may be represented. - Meanwhile, in the case where the
voxels 4 are stacked to represent the shape of theobject 2, surfaces of theobject 2 along curves are also represented by thevoxels 4. Thus, compared to the case where surfaces of theobject 2 are represented by polygons, it is difficult to represent smooth surfaces. - Thus, when emphasis is placed on similarity between the actual shape of the
object 2 and the shape of theobject 2 represented by three-dimensional shape data, for example, three-dimensional shape data of theobject 2 composed of thevoxels 4 may be converted into three-dimensional shape data of theobject 2 composed of polygons in accordance with a known algorithm for allocating polygons to surfaces of theobject 2 composed of thevoxels 4 using the MC method. -
FIG. 4 is a diagram illustrating an example in which the shape of theobject 2 illustrated inFIG. 2 is represented by three-dimensional shape data composed ofpolygons 6. - The
polygons 6 are formation faces configuring surfaces of theobject 2. There is no constraint on the shape of thepolygons 6. For example, polygons such as a triangle and a rectangle are used. The shape of theobject 2 is configured by combining a plurality ofpolygons 6 along surfaces of theobject 2. That is, three-dimensional shape data defining the shape of theobject 2 using thepolygons 6 includes, for example, the position and orientation of each of thepolygons 6, information regarding connection betweenpolygons 6 that are adjacent to each other, and the like. Thepolygons 6 are not necessarily flat faces but may be curved faces. Hereinafter, for example, thepolygons 6 are flat faces. - As described above, in the case where the shape of the
object 2 is represented by three-dimensional shape data composed of thevoxels 4, information, such as color and material of theobject 2 and stress applied to theobject 2, corresponding to each of thevoxels 4 may be stored and used as attributes of thevoxel 4. - For example, in the case where the
object 2 is analyzed based on three-dimensional shape data of theobject 2 composed of thevoxels 4, when the three-dimensional shape data of theobject 2 is a high-precision model including attributes of more positions, more detailed analysis may be performed. For more detailed analysis, the sizes of thevoxels 4 into which space is divided may be reduced as much as possible so that the number ofvoxels 4 per unit volume, that is, the density of voxels, may be increased. - However, in accordance with a decrease in the sizes of the
voxels 4, the data amount of three-dimensional shape data increases. The increase in the data amount of three-dimensional shape data brings an impact on the capacity of theRAM 13 and thenonvolatile memory 14 of theprocessing apparatus 1, and a longer time is thus required for processing the three-dimensional shape data at theprocessing apparatus 1. Therefore, in theprocessing apparatus 1, instead of uniformly dividing the entire space intovoxels 4 of the same size, a part in which the influence of low density of associated attributes exerted on analysis of theobject 2 is small is divided intovoxels 4 with a size larger than theother voxels 4, and a part in which a detailed analysis result is desired is divided intovoxels 4 with a size smaller than theother voxels 4. Accordingly, three-dimensional shape data of theobject 2 that has been taken into account the balance between analysis accuracy, processing time, and data amount may be obtained. - In this case, by allowing an attribute representing the size of a voxel to be associated with each of the
voxels 4, the size of thevoxel 4 may be represented. - Meanwhile, in the case where the sizes of the
voxels 4 into which space is divided are different, when the MC method is used for converting three-dimensional shape data of theobject 2 composed of thevoxels 4 into three-dimensional shape data of theobject 2 composed of thepolygons 6, an inconsistent part may be generated on a surface of theobject 2. The inconsistent part represents a part in which a gap occurs betweenadjacent polygons 6 composing a surface of theobject 2, thepolygons 6 intersect with each other, or thepolygons 6 are bent to overlap with each other. -
FIG. 5 is a diagram illustrating an example of thepolygons 6 including an inconsistent part. In the example ofFIG. 5 , avoxel 4A andvoxels voxels voxel 4A. For example, in the case where apolygon 6A and apolygon 6B are allocated to thevoxel 4A and thevoxel 4B, respectively, that surround avertex 5 in accordance with the MC method, a gap may occur between thepolygon 6A and thepolygon 6B, as illustrated inFIG. 5 . - In order to eliminate the gap between the
polygons 6 that are adjacent to each other, for example, as illustrated inFIG. 6 , two vertices of thepolygon 6A that are in contact with thevoxel 4B are moved along sides of thevoxel 4A up to vertices of thepolygon 6B positioned at the corresponding sides of thevoxel 4A. However, in the case where thepolygons 6 are first applied to thevoxels 4 of different sizes in accordance with the MC method, an inconsistent part of thepolygons 6 is detected, and the inconsistent part of thepolygons 6 is then adjusted, more processing steps are required for conversion, and a longer processing time is thus required than the case where surfaces of theobject 2 are configured without any inconsistent part of thepolygons 6 being generated from the beginning. Furthermore, in the case where the numbers ofpolygons 6 positioned at thevoxels polygons 6 may also be required, and further inconsistency may occur. - In contrast, with the
processing apparatus 1 performing processing described below, even in the case where the shape of theobject 2 is represented by thevoxels 4 of different sizes, surfaces of theobject 2 are composed of thepolygons 6 without any inconsistent part of thepolygons 6 being generated from the beginning. -
FIG. 7 is a flowchart illustrating an example of the flow of a three-dimensional shape data process performed by theCPU 11 of theprocessing apparatus 1 in the case where thepolygons 6 are allocated to surfaces of theobject 2 that is represented by three-dimensional shape data composed of a plurality ofvoxels 4 at least one of which is smaller than another voxel 4 (hereinafter, simply referred to as “voxel data”). - A three-dimensional shape data processing program that defines the three-dimensional shape data process is stored in advance, for example, in the
ROM 12 of theprocessing apparatus 1. TheCPU 11 of theprocessing apparatus 1 reads the three-dimensional shape data processing program stored in theROM 12 and performs the three-dimensional shape data process. - Explanation will be provided based on the assumption that voxel data is stored in advance in the
nonvolatile memory 14 and theCPU 11 acquires the voxel data from thenonvolatile memory 14. However, voxel data may be acquired by thecommunication unit 19 from an external apparatus connected to the communication line. - In step S10, the
CPU 11 acquires voxel data stored in thenonvolatile memory 14 and stores the acquired voxel data into theRAM 13. Hereinafter, theCPU 11 performs processing on the voxel data stored in theRAM 13. -
FIG. 8 is a diagram illustrating an example of voxel data acquired from thenonvolatile memory 14. As described above, theobject 2 is a solid, and thevoxel 4A and thevoxel 4B are three-dimensional regions (for example, cubes). For convenience of explanation, for example, arrangement of theobject 2 and thevoxels 4 on an XY plane passing through inside theobject 2 in the case where theobject 2 represented by voxel data and thevoxels 4 are viewed from above (in the direction in which space is viewed in the origin direction along a Z-axis direction) is illustrated inFIG. 8 . Hereinafter, such a diagram will be referred to as a plan view. - In the case where the
voxels 4 need to be distinguished from one another for explanation, thevoxels 4 are denoted as thevoxel 4A and thevoxel 4B, as described above. In the case wherevoxels 4 of different sizes do not need to be distinguished from one another for explanation, such as thevoxel 4A and thevoxel 4B, thevoxels 4 will be are collectively denoted as “voxels 4”. - Voxel data used for explanation includes two types of
voxels 4 of different sizes, such as thevoxels 4A at level A (inFIG. 8 , represented by “LV-A”) and thevoxels 4B at level B (inFIG. 8 , represented by “LV-B”). Thevoxels 4A are larger than thevoxels 4B. For example, thevoxels 4 of the same type are stacked in the Z-axis direction of thevoxels 4 illustrated inFIG. 8 . However, thevoxels 4 of different types may be stacked. Furthermore, thevoxels 4 of two types are illustrated inFIG. 8 . However, thevoxels 4 of three or more different sizes may be used, and there is no constraint on the sizes of thevoxels 4. - Furthermore, an example in which voxels 4 with divisible ratios or
voxels 4 of similar sizes are combined is illustrated inFIG. 8 . However, thevoxels 4 are merely an aspect representing three-dimensional regions, and other combinations are possible. For example, three-dimensional regions of different sizes and different shapes may be combined, or thevoxels 4 may be three-dimensional regions formed in the case where points that are adjacent to each other in a group of points that are discretely distributed in a three-dimensional space are combined in a desired manner. - Signs of the
voxels 4 each indicate a signed distance field (SDF) representing the positional relationship between thevoxel 4 and theobject 2. Specifically, the distance from the center point of thevoxel 4 to the nearest surface of theobject 2 is set as the size of the signed distance field of thevoxel 4. In the case where the center point of thevoxel 4 is inside theobject 2, a positive sign is set for the distance. In the case where the center point of thevoxel 4 is not inside theobject 2, a negative sign is set for the distance. That is, avoxel 4 with a positive sign as the SDF is in the ON state, and avoxel 4 with a negative sign as the SDF is in the OFF state. - A standard for distance is not limited to the center point of the
voxel 4. For example, a standard for distance may be the distance from a lattice point when thevoxel 4 is regarded as a three-dimensional lattice to the nearest surface of theobject 2. Alternatively, in the case where a three-dimensional region has a shape other than a cube, the centroid or the like may be used as a standard for distance. -
FIG. 9 is a diagram of enlarged fourvoxels 4B-1, 4B-2, 4B-3, and 4B-4 included in aregion 7 ofFIG. 8 . - Referring to
FIG. 9 , each of the distance from acenter point 9A of thevoxel 4B-1 to the nearest surface of theobject 2 and the distance from acenter point 9B of thevoxel 4B-2 to the nearest surface of theobject 2 is set to 0.7, the distance from acenter point 9C of thevoxel 4B-3 to the nearest surface of theobject 2 is set to 0.3, and the distance from acenter point 9D of thevoxel 4B-4 to the nearest surface of theobject 2 is set to 0.2. Furthermore, it is assumed that thecenter point 9C of thevoxel 4B-3 is inside theobject 2. In this case, the SDF of each of thevoxels 4B-1 and 4B-2 is “−0.7”, the SDF of thevoxel 4B-3 is “0.3”, and the SDF of thevoxel 4B-4 is “−0.2”. -
FIG. 10 is a diagram in which attention is paid to the SDF of the fourvoxels 4B-1, 4B-2, 4B-3, and 4B-4 included in theregion 7 inFIG. 8 calculated as described above. For each of thevoxels 4 illustrated inFIG. 8 , only sign of SDF of thevoxel 4 is displayed, and the size of the SDF (hereinafter, referred to as an “absolute value of SDF”) is omitted, as illustrated inFIG. 10 . In actuality, however, an absolute value of SDF is associated with each of thevoxels 4. The SDF is an example of attributes of thevoxels 4. - Definition of signs of SDF may be opposite to the above explanation. For each of the
voxels 4, distance without sign and information regarding being outside or inside theobject 2 may be managed individually. - In step S20, the
CPU 11 selects a determination region from the voxel data acquired in step S10. The determination region represents a unit of conversion in which conversion from thevoxels 4 intopolygons 6 is performed in accordance with the MC method. For example, theCPU 11 sets a range including eightvoxels 4, that is, twovoxels 4 in each of the X-axis direction, the Y-axis direction, and the Z-axis direction in a space, as a determination region. In the case where theregion 7 illustrated inFIG. 8 is defined as a region including twovoxels 4B in each of the X-axis direction, the Y-axis direction, and the Z-axis direction, theregion 7 corresponds to the determination region. Thus, hereinafter, theregion 7 will be referred to as a “determination region 7”. -
FIG. 11 is a diagram illustrating an example of thedetermination region 7 composed ofvoxels 4B of the same size that are adjacent to each other. TheCPU 11 sets, for thedetermination region 7, a shape in which a predetermined position in each of thevoxels 4 included in thedetermination region 7 is defined as a vertex (hereinafter, referred to as a “unit shape 8”). There is no constraint on the positions of the vertices of theunit shape 8. However, for example, theCPU 11 sets the positions of the vertices of theunit shape 8 such that center points 9 of theindividual voxels 4 are defined as vertices of theunit shape 8. Thus, for thedetermination region 7 composed of the eightvoxels 4B, as illustrated inFIG. 11 , a cube having the center points of theindividual voxels 4B as vertices is theunit shape 8. - The vertices of the
unit shape 8 are the center points 9 of theindividual voxels 4. Thus, hereinafter, the vertices of theunit shape 8 will be referred to as “vertices 9”. - The MC method may be used for the
unit shape 8 having eight vertices, such as a cube. Therefore, by using the known MC method, thepolygons 6 may be allocated to theunit shape 8. - However,
voxels 4 of different sizes are present in the voxel data acquired in step S10, as illustrated inFIG. 8 . Therefore, in the case where the border of thedetermination region 7 is set such that sizes ofvoxels 4 that are adjacent to each other in one of the X-axis direction, the Y-axis direction, and the Z-axis direction are different, theCPU 11 sets thedetermination region 7 taking into consideration similarity between thevoxels 4 that are adjacent to each other. -
FIG. 12 is a diagram illustrating an example of thedetermination region 7 that has a border at which voxels 4 that are adjacent to each other in the X-axis direction have different sizes. When attention is paid to the fourvoxels 4B inFIG. 12 ,voxels 4B of the same size are adjacent to each other in the Y-axis direction and the Z-axis direction, whereas avoxel 4A of a different size is adjacent to thevoxels 4B in the X-axis direction. Thevoxel 4 that is adjacent to each of the fourvoxels 4B in the X-axis direction is thesame voxel 4A. In this case, theCPU 11 virtually regards thevoxel 4A, which is actually thesingle voxel 4A, asvoxels 4A that are adjacent to theindividual voxels 4B and asvoxels 4 that overlap with each other. Thus, it is regarded that twovoxels 4 are included also in the X-axis direction, and thedetermination region 7 is thus configured as illustrated inFIG. 12 . - In the case where the
unit shape 8 is set for thedetermination region 7 illustrated inFIG. 12 , theunit shape 8 is a quadrangular pyramid. As described above, theCPU 11 may handle aunit shape 8 that has eight vertices such as a cube or aunit shape 8 that has less than eight vertices such as quadrangular pyramid. - In the case where the
unit shape 8 has less than eight vertices, the MC method is not able to be used for theunit shape 8. Therefore, theCPU 11 handles thevertices 9 of theunit shape 8 as described later. For example, theCPU 11 uses the MC method by regarding theunit shape 8 with less than eight apparent vertices such as a quadrangular pyramid as having eight vertices, so that conversion from voxel data into polygon data may be performed. Polygon data represents three-dimensional shape data composed of thepolygons 6. - In order to perform conversion from voxel data into polygon data, the
CPU 11 needs to extract all the unit shapes 8 having different types of shape from the voxel data without missing or repeating any unit shape. Thus, theCPU 11 sets thedetermination region 7 such that extraction of unit shapes is performed for voxel data without missing or repeating any unit shape. - Specifically, the
CPU 11 extracts, as reference vertices, vertices ofvoxels 4 that are not positioned on the outer contour from among all thevoxels 4 composing the voxel data acquired in step S10. Vertices ofvoxels 4 that are not positioned on the outer contour represent vertices that are not exposed to the outermost part of a set of voxels, that is, vertices that are not exposed to surfaces of the set of voxels, in the case where thevoxels 4 into which the space is divided are regarded as a single set of voxels. In the example ofFIG. 12 , vertices surrounded byvoxels 4 in the X-axis direction, the Y-axis direction, and the Z-axis direction are defined asreference vertices 3. - The
CPU 11 sequentially scans all thevoxels 4 composing the voxel data to extract all thereference vertices 3 included in the voxel data in accordance with positional relationship between thevoxels 4.FIG. 13 is a diagram illustrating a state in which thereference vertices 3 are extracted from the voxel data illustrated inFIG. 8 . - After extracting all the
reference vertices 3 from the voxel data, theCPU 11 sets, for each of thereference vertices 3, all thevoxels 4 that are in contact with thereference vertex 3 as thedetermination region 7 corresponding to thereference vertex 3. In the example ofFIG. 12 , thevoxel 4A and the fourvoxels 4B are in contact with thereference vertex 3. Thus, a range including thevoxels 4 illustrated inFIG. 12 is defined as thedetermination region 7. As described above, thedetermination region 7 composed of thevoxels 4 that are in contact with thereference vertex 3 is an example of a three-dimensional region group. - After that, by extracting the
unit shape 8 for eachdetermination region 7, theCPU 11 extracts the unit shapes 8 from the voxel data without missing or repeating any unit shape. Extracting aunit shape 8 repeatedly represents a case where the unit shapes 8 that completely overlap are extracted or a case where the unit shapes 8 part of which overlap are extracted. - After the
unit shape 8 is extracted from the voxel data in step S20 ofFIG. 7 , theCPU 11 allocates apolygon 6 to the extractedunit shape 8, so that a surface of theobject 2 represented by the voxel data is formed of thepolygon 6 in step S30. - The
CPU 11 uses the MC method for allocation of thepolygon 6 to theunit shape 8. That is, theCPU 11 generates a flat face by allocating thepolygon 6 having a shape in which the midpoint of a side that connectsvertices 9 of theunit shape 8 is defined as a new vertex (referred to as an “MC vertex”) to theunit shape 8 on the basis of a state pattern of thevoxels 4 composing thedetermination region 7 from which theunit shape 8 is extracted and achieving consistency. A state pattern ofvoxels 4 represents a pattern of combination of the ON state and the OFF state of a plurality ofvoxels 4. -
FIGS. 14A to 14P are plan views illustrating examples of allocation patterns in the case where apolygon 6 is allocated to theunit shape 8 on the basis of state patterns of thevoxels 4 composing thedetermination region 7 from which theunit shape 8 having the eightvertices 9 is extracted. Thedetermination region 7 illustrated inFIG. 14 includes three types of voxels of different sizes: thevoxel 4A, thevoxels 4B, and thevoxel 4C. Thedetermination region 7 includes the twovoxels 4B, one of them being represented by avoxel 4B-1 and the other being represented by avoxel 4B-2. - There are sixteen combinations of state patterns of the four
voxels 4.FIGS. 14A to 14P illustrate the state patterns of thevoxels 4. For example, avoxel 4 illustrated as a shaded voxel such as thevoxel 4B-1 inFIG. 14B represents an ON-state voxel 4, and avoxel 4 illustrated as a non-shaded voxel such as thevoxel 4B-2 inFIG. 14B represents an OFF-state voxel 4. - In
FIGS. 14C to 14P , the same elements as those inFIGS. 14A and 14B are referred to with the same reference signs as those inFIGS. 14A and 14B . However, the reference signs are omitted inFIGS. 14C to 14P . - In
FIGS. 14A to 14P , sixteen state patterns are illustrated based on the MC method. However, in principle, apolygon 6 is generated such that the midpoint of a line segment connecting the center point of an ON-state voxel 4 to a center point of an OFF-state voxel 4 is defined as an MC vertex. Thus, in the case where a combination ofvoxels 4 with indivisible ratios orvoxels 4 of dissimilar sizes or a combination of voxels 4 (three-dimensional regions) of desired shapes other than cubes is used, all the possible state patterns do not need to be identified in advance. Allocation processing of apolygon 6 may be performed only on the basis of whether each of the vertices of theunit shape 8 formed based on thedetermination region 7 used is in the ON state or the OFF state. - The
CPU 11 allocates apolygon 6 in which midpoints of sides each connecting thecenter point 9 of an ON-state voxel 4 to thecenter point 9 of an OFF-state voxel 4 are defined asMC vertices 22 to theunit shape 8, in accordance with each of the state patterns of thevoxels 4 illustrated inFIGS. 14A to 14P . - For example, in
FIG. 14B , thevoxel 4B-1 is in the ON state, and thevoxel 4A, thevoxel 4B-2, and thevoxel 4C are in the OFF state. Thus, theCPU 11 allocates apolygon 6 having anMC vertex 22A, which is the midpoint of a side connecting acenter point 9B of thevoxel 4B-1 to acenter point 9A of thevoxel 4A, and anMC vertex 22B, which is the midpoint of a side connecting thecenter point 9B of thevoxel 4B-1 to acenter point 9C of thevoxel 4C, to theunit shape 8. For the other state patterns of thevoxels 4 illustrated inFIGS. 14C to 14P , theCPU 11 also allocates apolygon 6 to theunit shape 8 in accordance with the method described above takingFIG. 14B as an example. For the state patterns of thevoxels 4 illustrated inFIGS. 14A and 14I , the ON-state and OFF-state voxels 4 are not present in a mixed manner in thedetermination region 7. Thus, nopolygon 6 is allocated to theunit shape 8 inFIGS. 14A and 14I . - In contrast, in the
determination region 7 illustrated inFIG. 12 , thesame voxel 4A is adjacent to all thevoxels 4B. Thus, the center points 9A of thevoxels 4 that are adjacent to thevoxels 4B are the same. Therefore, theunit shape 8 obtained from thedetermination region 7 illustrated inFIG. 12 is a quadrangular pyramid. - In such a case, the
CPU 11 performs processing such that, regarding thevertices 9 of theunit shape 8, thevoxel 4A adjacent to each of thevoxels 4B is regarded asdifferent voxels 4A that are adjacent to thevoxels 4B on the voxel data. That is, theCPU 11 performs processing by regarding thevoxel 4A asdifferent voxels 4A that are virtually adjacent to theindividual voxels 4B and regarding thecenter point 9A of thevoxel 4A as center points that overlap with each other because thevirtual voxels 4A are located at the same position, which making the apparent number ofvertices 9 of theunit shape 8 to be less than eight. - Therefore, the
CPU 11 regards the state in which the apparent number of vertices of theunit shape 8 is less than eight as a result of overlap of at least onevertex 9 of theunit shape 8 and anothervertex 9 on data, and performs processing by regarding theunit shape 8 as actually having eightvertices 9. That is, in theunit shape 8 illustrated inFIG. 12 , the center points 9A of theindividual voxels 4A that are adjacent to thevoxels 4B overlap. Thus, as a result of contraction of the sides connecting the center points 9A, theunit shape 8 only looks like a quadrangular pyramid. - By handling the
vertices 9 of theunit shape 8 as described above, theCPU 11 also uses the MC method for theunit shape 8 whose apparent number of vertices is less than eight. -
FIGS. 15A to 15H are plan views illustrating examples of allocation patterns in the case where apolygon 6 is allocated to theunit shape 8 on the basis of state patterns of thevoxels 4 composing thedetermination region 7 from which theunit shape 8 apparently having less than eightvertices 9 is extracted. Thedetermination region 7 illustrated inFIGS. 15A to 15H includes three types ofvoxels 4 of different sizes: thevoxels - There are eight state patterns of three
voxels 4. Thus,FIGS. 15A to 15H illustrate the state patterns of thevoxels 4. For example, ashaded voxel 4 such as thevoxel 4B inFIG. 15B represents an ON-state voxel 4, and anon-shaded voxel 4 such as thevoxel 4A inFIG. 15B represents an OFF-state voxel 4. - In
FIGS. 15C to 15H , the same elements as those inFIGS. 15A and 15B are referred to with the same reference signs as those inFIGS. 15A and 15B . However, the reference signs are omitted inFIGS. 15C to 15H . - For example, in
FIG. 15B , thevoxel 4B is in the ON state, and thevoxel 4A and thevoxel 4C are in the OFF state. Therefore, theCPU 11 allocates apolygon 6 that has anMC vertex 22A, which is the midpoint of a side connecting thecenter point 9B of thevoxel 4B to thecenter point 9A of thevoxel 4A, and theMC vertex 22B, which is the midpoint of a side connecting thecenter point 9B of thevoxel 4B to thecenter point 9C of thevoxel 4C, to theunit shape 8. For the other state patterns ofvoxels 4 illustrated inFIGS. 15C to 15H , theCPU 11 also allocates apolygon 6 to theunit shape 8 in accordance with the method explained above takingFIG. 15B as an example. For the state patterns of thevoxels 4 illustrated inFIGS. 15A and 15E , the ON-state and OFF-state voxels 4 are not present in a mixed manner in thedetermination region 7. Thus, nopolygon 6 is allocated to theunit shape 8 inFIGS. 15A and 15E . - By performing the processing described above for all the unit shapes 8, the
CPU 11 allows surfaces of theobject 2 represented by voxel data to be composed of thepolygons 6. Then, the three-dimensional shape data process illustrated inFIG. 7 ends. -
FIG. 16 is a diagram illustrating an example of anoutline 24 of theobject 2 represented by polygon data, which is obtained by performing the three-dimensional shape data process illustrated inFIG. 7 for the voxel data illustrated inFIG. 13 . - For convenience of explanation, three
voxels 4A arranged in the X-axis direction in a middle part ofFIG. 16 will be referred to as avoxel 4A-1, avoxel 4A-2, and avoxel 4A-3. Furthermore,voxels 4B arranged in the X-axis direction will be referred to as avoxel 4B-1, avoxel 4B-2, . . . , and avoxel 4B-64 in order from the upper left to the lower right inFIG. 16 . - The
outline 24 represents the shape of theobject 2 composed ofpolygons 6 having MC vertices 22-1 to 22-24 as vertices, with respect to the actual shape of theobject 2. The MC vertex 22-1 is positioned at the midpoint of a side connecting thecenter point 9 of thevoxel 4B-25 to thecenter point 9 of thevoxel 4A-1, and the MC vertex 22-2 is positioned at the midpoint of a side connecting thecenter point 9 of thevoxel 4A-1 to thecenter point 9 of thevoxel 4A-3. In a similar manner, the MC vertices 22-3 to 22-6 are positioned at midpoints of sides connecting thecenter point 9 of thevoxel 4A-1 to the center points of thevoxel 4B-33, thevoxel 4B-34, thevoxel 4B-35, and thevoxel 4B-36, respectively, and the MC vertices 22-7 to 22-10 are positioned at midpoints of sides connecting thecenter point 9 of thevoxel 4A-2 to the center points of thevoxel 4B-37, thevoxel 4B-38, thevoxel 4B-39, and thevoxel 4B-40, respectively. The MC vertex 22-11 is the midpoint of a line segment connecting the center point of an OFF-state voxel 4A, which is not illustrated inFIG. 16 , adjacent to thevoxel 4A-2 in the X-axis direction to the center point of thevoxel 4A-2. - As described above, even in the case where the space where the
object 2 is present is divided intovoxels 4 of different sizes, theprocessing apparatus 1 is able to generate polygon data configuring surfaces of theobject 2 such that no inconsistent part is generated from the beginning. - In the case where the MC method is used for the
unit shape 8 whose apparent number of vertices is less than eight, apolygon 6 is allocated to theunit shape 8 while regarding a side connecting the overlappingvertices 9 of theunit shape 8 as being contracted. Thus, depending on the condition of contraction of a side, an element that does not formally have an area, such as a straight line or a point, may be allocated as apolygon 6. Apolygon 6 is represented by being polygonal. Thus, strictly speaking, a straight line or a point that does not have an area is not apolygon 6. However, apolygon 6 that does not have an area may be regarded as being obtained when apolygon 6 that originally has an area becomes apolygon 6 that does not have an area in accordance with contraction of a side connecting overlappingvertices 9 of theunit shape 8. Thus, such a straight line or a point may be defined as apolygon 6 that does not have an area. -
FIG. 17 is a diagram illustrating an example of generation of apolygon 6 that does not have an area as a result of conversion from voxel data into polygon data. - The
determination region 7 illustrated inFIG. 17 is composed of thevoxels 4A and thevoxels 4B of different sizes. Thevoxels 4A, which are larger than thevoxels 4B, include thevoxel 4A-1 and thevoxel 4A-2, and thevoxels 4B include thevoxel 4B-1, thevoxel 4B-2, thevoxel 4B-3, and thevoxel 4B-4. In this case, theunit shape 8 illustrated inFIG. 17 in which thecenter point 9B-1 of thevoxel 4B-1, thecenter point 9B-2 of thevoxel 4B-2, thecenter point 9B-3 of thevoxel 4B-3, thecenter point 9B-4 of thevoxel 4B-4, thecenter point 9A-1 of thevoxel 4A-1, and thecenter point 9A-2 of thevoxel 4A-2 are defined as thevertices 9 is extracted from thedetermination region 7. - By defining the
voxel 4A-1, thevoxel 4B-1, and thevoxel 4B-4 as the ON-state voxels 4 and defining thevoxel 4A-2, thevoxel 4B-2, and thevoxel 4B-3 as the OFF-state voxels 4, theprocessing apparatus 1 allocates atriangular polygon 6 having amidpoint 22X of a side connecting thevertex 9B-1 to thevertex 9B-2 in theunit shape 8, amidpoint 22Y of a side connecting thevertex 9B-4 to thevertex 9B-3 in theunit shape 8, and amidpoint 22Z of a side connecting thevertex 9A-1 to thevertex 9A-2 in theunit shape 8 as vertices to theunit shape 8. - However, because both the
voxel 4B-1 and thevoxel 4B-4 are adjacent to thevoxel 4A-1 and both thevoxel 4B-2 and thevoxel 4B-3 are adjacent to thevoxel 4A-2, theprocessing apparatus 1 performs processing by regarding thevoxel 4A-1 asdifferent voxels 4A-1 that are adjacent to thevoxel 4B-1 and thevoxel 4B-4 on voxel data and regarding thevoxel 4A-2 asdifferent voxels 4A-2 that are adjacent to thevoxel 4B-2 and thevoxel 4B-3 on voxel data. Thus, on data,polygons FIG. 18 are allocated to theunit shape 8 illustrated inFIG. 17 . - In contrast, in the virtual two
voxels 4A-1 and twovoxels 4A-2 existing on data processing, in accordance with overlap of thecenter point 9A-1 of one of the twovoxels 4A-1 and thecenter point 9A-1 of theother voxel 4A-1 and overlap of thecenter point 9A-2 of one of the twovoxels 4A-2 and thecenter point 9A-2 of theother voxel 4A-2, an MC vertex 22a and theMC vertex 22Z of thepolygon 6B overlap. As a result, thepolygon 6B is collapsed to a straight line connecting theMC vertex 22Y to theMC vertex 22Z. Thus, although only thepolygon 6A is apparently present in theunit shape 8, thepolygon 6B that is represented by a straight line is also allocated to theunit shape 8 on polygon data. - Thus, in the case where a
polygon 6 that does not have an area is allocated to aunit shape 8, theCPU 11 deletes thepolygon 6 that does not have an area from theunit shape 8. - In the case where the
CPU 11 knows prior to generation of polygon data that apolygon 6 not having an area is to be generated, theCPU 11 may not allocate thepolygon 6 not having an area to theunit shape 8. - In the three-dimensional shape data process illustrated in
FIG. 7 , thepolygon 6 in which the midpoint of a side of theunit shape 8 positioned at the border between an ON-state voxel 4 and an OFF-state voxel 4 is defined as theMC vertex 22 is allocated. Thus, as illustrated inFIG. 16 , the actual shape of theobject 2 may be different from the shape of theobject 2 represented by polygon data. Thus, theprocessing apparatus 1 may convert voxel data into polygon data by the three-dimensional shape data process and then perform a polygon correction process for correcting the polygon data. -
FIG. 19 is a diagram illustrating an example of voxel data and polygon data after the three-dimensional shape data process is performed.FIG. 19 is the same asFIG. 16 . For example, explanation for the polygon correction process will be provided by paying attention tovoxels 4 included in aregion 25. -
FIG. 20 is an enlarged diagram in which thevoxels 4 included in theregion 25 illustrated inFIG. 19 are enlarged. InFIG. 20 , for eachvoxel 4, not only the sign but the absolute value of SDF is also indicated. - As illustrated in
FIG. 20 , in the three-dimensional shape data process,MC vertices 22 of apolygon 6 are each arranged at the border of an ON-state voxel 4 and an OFF-state voxel 4, that is, at the midpoint of a side connectingcenter points 9 of thevoxels 4 that are adjacent to each other inside and outside the shape of theobject 2. That is, in the three-dimensional shape data process, theCPU 11 sets theMC vertices 22 of thepolygon 6 at positions each obtained by dividing a side connecting the center points 9 of thevoxels 4 that are adjacent to each other inside and outside the shape of theobject 2 at the ratio of 5:5. - In contrast, in the polygon correction process, for a side connecting the center points 9 of the
voxels 4 that are adjacent to each other inside and outside the shape of theobject 2, the positions of theMC vertices 22 of thepolygon 6 are each corrected in accordance with the distance from the center points 9 of theadjacent voxels 4 to a surface of theobject 2, that is, the ratio of absolute values of SDF associated with thevoxels 4. - In the example illustrated in
FIG. 21 , the absolute values of SDF of the OFF-state voxel 4B-17 and the ON-state voxel 4B-18 are 0.9 and 0.1, respectively. Thus, theCPU 11 corrects the position of the MC vertex 22-23 such that the MC vertex 22-23 is arranged at a position that divides the side connecting thecenter point 9 of thevoxel 4B-17 to thecenter point 9 of thevoxel 4B-18 at the ratio of 9:1. In a similar manner, for example, the absolute values of SDF of the OFF-state voxel 4B-25 and the ON-state voxel 4A-1 are 0.5 and 0.7, respectively. Thus, theCPU 11 corrects the position of the MC vertex 22-1 such that the MC vertex 22-1 is arranged at a position that divides the side connecting thecenter point 9 of thevoxel 4B-25 to thecenter point 9 of thevoxel 4A-1 at the ratio of 5:7. - By correcting the position of each of the
MC vertices 22 as described above, a correctedoutline 26 representing the shape of theobject 2 is obtained, as illustrated inFIG. 21 . As is clear fromFIG. 21 , by performing the polygon correction process, theoutline 26 is closer to the outline of the actual shape of theobject 2 than theoutline 24 of the shape of theobject 2 obtained by the three-dimensional shape data process is. - In the case where a
polygon 6 that does not have an area is generated as a result of correction of the position of anMC vertex 22 by the polygon correction process, theCPU 11 may delete thepolygon 6 that does not have an area from theunit shape 8. - Although explanation for the three-dimensional shape data process is provided above based on the assumption that three-dimensional shape data representing the shape of the
object 2 is present in space, polygon data of theobject 2 may be generated based on distribution of attributes in the space with which attribute values for theobject 2 are associated. -
FIG. 22 is a diagram illustrating an example of a state of distribution of attribute points 28 that are associated with attributes at points in the space represented by three-dimensional coordinates. Attribute values are associated with the individual attribute points 28 (in the example ofFIG. 22 , attribute points 28A, 28B, 28C, and 28D). An attribute value of a corresponding attribute is present at the coordinates at which an attribute point 28 is positioned. That is, no attribute is present at the coordinates at which no attribute point 28 is present. There is no constraint on the type of attribute associated with an attribute point 28. For example, SDF or temperature distribution may be associated with attribute points 28. - The
CPU 11 divides the space where the attribute distribution is present into a plurality ofvoxels 4 at least one of which has a size different from anothervoxel 4. TheCPU 11 uses the MC method for the space that has been divided as described above, and the shape of theobject 2 is obtained from the attribute distribution. - That is, the
CPU 11 sequentiallysets determination regions 7 forvoxels 4 into which the space has been divided, and extracts aunit shape 8 for each of thedetermination regions 7. As described above, to extract all the unit shapes 8 of different types without missing or repeating any unit shape from voxel data, theCPU 11 sequentially scans all thevoxels 4 composing the voxel data, extracts all thereference vertices 3 included in the voxel data on the basis of the positional relationship between thevoxels 4, and sets, for each of thereference vertices 3, all thevoxels 4 that are in contact with thereference vertex 3 as adetermination region 7 corresponding to thereference vertex 3. - According to the state of division of the space that has been divided into
voxels 4, thevoxels 4 are categorized into avoxel 4 including an attribute point 28 and avoxel 4 not including an attribute point 28. TheCPU 11 treats avoxel 4 including an attribute point 28 as an ON-state 4 and treats avoxel 4 not including an attribute point 28 as an OFF-state voxel 4. In the example ofFIG. 22 , thevoxels state voxels 4, and thevoxel 4E is treated as an OFF-state voxel 4. - The
CPU 11 generates a flat face by allocation to theunit shape 8 on the basis of a state pattern of thevoxels 4 composing thedetermination region 7 and achieving consistency. - As described above, by dividing the space where the attribute distribution is present into a plurality of
voxels 4 at least one of which has a size different from anothervoxel 4 and performing the three-dimensional shape data process illustrated inFIG. 7 for the divided voxel data, the shape of theobject 2 represented bypolygons 6 is obtained based on the attribute distribution. - Exemplary embodiments of the present disclosure have been described above. However, the present disclosure is not limited to the exemplary embodiments described above. Various changes or improvements may be made to exemplary embodiments without departing from the scope of the present disclosure, and aspects to which the changes or improvements have been made are also encompassed within the technical scope of the present disclosure. For example, order of processing steps may be changed without departing from the scope of the present disclosure.
- In an exemplary embodiment, an example in which the three-dimensional shape data process is implemented by software is described. However, a process equivalent to the process represented by the flowchart illustrated in
FIG. 7 may be implemented in, for example, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or a programmable logic device (PLD) and may be processed by hardware. In this case, compared to the case where the three-dimensional shape data process is implemented by software, the processing speed may be increased. - As described above, the
CPU 11, which is an example of a general-purpose processor, may be replaced with a dedicated processor specialized in specific processing, such as the ASIC, the FPGA, the PLD, a graphic processing unit (GPU), or a floating point unit (FPU). - Furthermore, operation of a processor according to an exemplary embodiment may not be implemented by a
single CPU 11 but may be implemented by a plurality of processors. Moreover, operation of a processor according to an exemplary embodiment may be implemented by processors included in a plurality ofcomputers 10 in collaboration which are located physically apart from each other. - In an exemplary embodiment described above, the three-dimensional shape data processing program is installed in the
ROM 12. However, the present disclosure is not limited to this. The three-dimensional shape data processing program may be recorded in a computer-readable recording medium and provided. For example, the three-dimensional shape data processing program may be recorded in an optical disk such as a compact disc (CD)-ROM or a digital versatile disc (DVD)-ROM and provided. Furthermore, the three-dimensional shape data processing program may be recorded in a portable semiconductor memory such as a universal serial bus (USB) or a memory card and provided. - Furthermore, the
processing apparatus 1 may acquire a three-dimensional shape data processing program according to an exemplary embodiment through thecommunication unit 19 from an external apparatus connected to the communication line. - In the embodiments above, the term “processor” refers to hardware in a broad sense. Examples of the processor includes general processors (e.g., CPU: Central Processing Unit), dedicated processors (e.g., GPU: Graphics Processing Unit, ASIC: Application Integrated Circuit, FPGA: Field Programmable Gate Array, and programmable logic device).
- In the embodiments above, the term “processor” is broad enough to encompass one processor or plural processors in collaboration which are located physically apart from each other but may work cooperatively. The order of operations of the processor is not limited to one described in the embodiments above, and may be changed.
- The foregoing description of the exemplary embodiments of the present disclosure has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure to the precise forms disclosed. Obviously, many modifications and variations will be apparent to practitioners skilled in the art. The embodiments were chosen and described in order to best explain the principles of the disclosure and its practical applications, thereby enabling others skilled in the art to understand the disclosure for various embodiments and with the various modifications as are suited to the particular use contemplated. It is intended that the scope of the disclosure be defined by the following claims and their equivalents.
Claims (20)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP2020-051913 | 2020-03-23 | ||
JP2020-051913 | 2020-03-23 | ||
JP2020051913A JP2021149886A (en) | 2020-03-23 | 2020-03-23 | Three-dimensional shape data processing apparatus and three-dimensional shape data processing program |
Publications (2)
Publication Number | Publication Date |
---|---|
US20210295597A1 true US20210295597A1 (en) | 2021-09-23 |
US11436796B2 US11436796B2 (en) | 2022-09-06 |
Family
ID=77748758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/984,948 Active US11436796B2 (en) | 2020-03-23 | 2020-08-04 | Three-dimensional shape data processing apparatus and non-transitory computer readable medium |
Country Status (3)
Country | Link |
---|---|
US (1) | US11436796B2 (en) |
JP (1) | JP2021149886A (en) |
CN (1) | CN113436333A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11954802B2 (en) * | 2022-06-02 | 2024-04-09 | Roblox Corporation | Method and system for generating polygon meshes approximating surfaces using iteration for mesh vertex positions |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6930682B1 (en) * | 2001-11-20 | 2005-08-16 | Hewlett-Packard Development Company, L.P. | Subdivision operation and user interface for volume sculpting |
US7623992B2 (en) * | 2003-03-28 | 2009-11-24 | International Business Machines Corporation | Volume warping for adaptive isosurface extraction |
US11328481B2 (en) * | 2020-01-17 | 2022-05-10 | Apple Inc. | Multi-resolution voxel meshing |
-
2020
- 2020-03-23 JP JP2020051913A patent/JP2021149886A/en active Pending
- 2020-08-04 US US16/984,948 patent/US11436796B2/en active Active
- 2020-09-07 CN CN202010927804.1A patent/CN113436333A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11954802B2 (en) * | 2022-06-02 | 2024-04-09 | Roblox Corporation | Method and system for generating polygon meshes approximating surfaces using iteration for mesh vertex positions |
Also Published As
Publication number | Publication date |
---|---|
CN113436333A (en) | 2021-09-24 |
JP2021149886A (en) | 2021-09-27 |
US11436796B2 (en) | 2022-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8310480B2 (en) | Method, medium, and system for compressing and decoding mesh data in three-dimensional mesh model | |
US20140176545A1 (en) | System, method, and computer program product implementing an algorithm for performing thin voxelization of a three-dimensional model | |
US9971335B2 (en) | Hybrid dynamic tree data structure and accessibility mapping for computer numerical controlled machining path planning | |
US10019802B2 (en) | Graphics processing unit | |
CN110663064A (en) | Parallelized pipeline for vector graphics and image processing | |
Miura et al. | Grid drawings of 4-connected plane graphs | |
US11436796B2 (en) | Three-dimensional shape data processing apparatus and non-transitory computer readable medium | |
CN113850917B (en) | Three-dimensional model voxelization method and device, electronic equipment and storage medium | |
CN114219899A (en) | Grid generation method and device based on improved tree-crossing algorithm | |
KR101032397B1 (en) | Apparatus and method for representing 3d shape using spherical coordinate system | |
US11100707B2 (en) | Computer graphics method for terrain rendering | |
JP5850380B2 (en) | Shape data generation method and apparatus | |
WO2023169002A1 (en) | Soft rasterization method and apparatus, device, medium, and program product | |
US20190392100A1 (en) | Storage medium which stores instructions for a simulation method in a semiconductor design process, semiconductor design system that performs the simulation method in the semiconductor design process, and simulation method in the semiconductor design process | |
CN112231800B (en) | BIM graph optimization method and device and computer storage medium | |
Gong et al. | Dual marching squares: description and analysis | |
JP7339846B2 (en) | Modeling device and program | |
JP2021033375A (en) | Apparatus for editing three-dimensional shape data and program for editing three-dimensional shape data | |
US11776207B2 (en) | Three-dimensional shape data processing apparatus and non-transitory computer readable medium | |
CN112837416A (en) | Triangulation-based polygon rendering method and device and storage medium | |
US11568619B2 (en) | Three-dimensional shape data editing device, and non-transitory computer readable medium storing three-dimensional shape data editing program | |
CN113033085B (en) | Particle swarm optimization and Bezier curve-based particle shape simulation method and system | |
CN109979007A (en) | A kind of geometric modeling method and apparatus of building body | |
CN116977592B (en) | Three-dimensional structured reconstruction method, device and computer medium based on winding number | |
JP2019040419A (en) | Image processing apparatus and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: FUJI XEROX CO., LTD., JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HIGASHIKATA, RYOSUKE;TAKAHASHI, TOMONARI;HIJI, NAOKI;AND OTHERS;REEL/FRAME:053399/0459 Effective date: 20200611 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: FUJIFILM BUSINESS INNOVATION CORP., JAPAN Free format text: CHANGE OF NAME;ASSIGNOR:FUJI XEROX CO., LTD.;REEL/FRAME:056078/0098 Effective date: 20210401 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |