WO2024106844A1 - 롤-업을 시뮬레이션하는 방법 및 장치 - Google Patents
롤-업을 시뮬레이션하는 방법 및 장치 Download PDFInfo
- Publication number
- WO2024106844A1 WO2024106844A1 PCT/KR2023/017879 KR2023017879W WO2024106844A1 WO 2024106844 A1 WO2024106844 A1 WO 2024106844A1 KR 2023017879 W KR2023017879 W KR 2023017879W WO 2024106844 A1 WO2024106844 A1 WO 2024106844A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- roll
- vertices
- dimensional
- target
- simulating
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000004088 simulation Methods 0.000 title abstract description 115
- 238000004891 communication Methods 0.000 claims description 7
- 239000002245 particle Substances 0.000 claims description 7
- 230000001131 transforming effect Effects 0.000 claims description 4
- 230000008859 change Effects 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 239000004744 fabric Substances 0.000 description 5
- 239000000284 extract Substances 0.000 description 4
- 238000005096 rolling process Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 230000000704 physical effect Effects 0.000 description 3
- 238000005452 bending Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000037237 body shape Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000149 penetrating effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- 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
-
- 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
Definitions
- Embodiments relate to a method and apparatus for simulating roll-up.
- Clothes appear three-dimensional when worn by a person, but in reality, they are close to two-dimensional because they are a combination of fabric pieces cut according to a two-dimensional pattern. Because the fabric used for the costume is flexible, its shape can change in various ways depending on the body shape or movement of the person wearing the costume. In addition, fabric may have various physical properties, such as strength, elasticity, and shrinkage rate, and even clothes of the same design may have different expressions and feelings due to differences in each physical property of the fabric.
- a method of simulating roll-up includes: a method of simulating a 3-dimensional garment corresponding to an object part selected as an object of roll-up by a user among 2-dimensional patterns corresponding to the 3-dimensional garment; determining a base line; Based on the baseline, determining target vertices affected by the roll-up among vertices of at least one two-dimensional pattern corresponding to the target portion; and simulating the three-dimensional garment in which the roll-up is expressed by transforming the target vertices into two-dimensional vertices in a virtual plane in which the roll-up is implemented.
- Determining the baseline includes determining a midpoint at an end of at least one two-dimensional pattern corresponding to the target portion selected by the user among the two-dimensional patterns; determining adjacent points located in a vertical direction from the midpoint to the interior of the at least one two-dimensional pattern; and setting an up-vector from the midpoint to the adjacent point.
- the step of determining the target vertices is based on the folding interval of the roll-up from the baseline and the number of times the roll-up is folded, classifying each of the sections of the folded area of the roll-up in the at least one two-dimensional pattern. steps; and extracting vertices included in each section of the folded area as the target vertices.
- Classifying the sections of the folded area includes determining a reference section corresponding to the number of folds among sections of the folded area of the roll-up according to the folding interval from the baseline and the number of folds. And the step of extracting the target vertices may include extracting vertices located below the reference section as the target vertices corresponding to each of the sections of the folded area.
- Classifying the sections of the folded area may include assigning indices corresponding to the sections of the folded area to the target vertices according to the folding interval from the base line and the number of folds.
- Classifying the sections of the folded area may include classifying the sections of the folded area according to a preset equation.
- Classifying sections of the folded area may include setting at least one fold line and buffer area corresponding to the number of folds in the at least one two-dimensional pattern; and determining sections of the folded area by reflecting the buffer area in the folded interval.
- Setting the at least one fold line may include re-meshing the mesh of the at least one two-dimensional pattern by moving at least one of the positions of the target vertices and particle spacing.
- the buffer area may be characterized as increasing as the number of sections of the folded area increases.
- the step of simulating the 3D clothing may include converting the target vertices included in each section of the folded region into 2D vertices within the virtual plane.
- Simulating the three-dimensional garment may include defining the virtual plane; converting the target vertices into two-dimensional vertices within the virtual plane; and simulating the 3D clothing by restoring the converted 2D vertices to 3D world coordinates corresponding to the 3D clothing.
- Defining the virtual plane may include defining a base plane of a virtual cylinder based on an arbitrary first vertex on an end of the target portion and an up vector corresponding to the at least one two-dimensional pattern; and defining the virtual plane by moving the base plane based on a distance between the base plane and a second vertex corresponding to the arbitrary first vertex in the three-dimensional clothing.
- Converting the target vertices into two-dimensional vertices in the virtual plane includes projecting the target vertices onto each of base planes; and converting the target vertices into two-dimensional vertices within the virtual plane by moving the target vertices based on the center point of a bounding box including the target vertices projected on each of the base planes. .
- the step of simulating the 3D clothing includes restoring the converted 2D vertices to 3D world coordinates corresponding to the 3D clothing by remeshing by adjusting at least one of the positions and intervals of the converted 2D vertices. May include steps.
- a device for simulating roll-up includes a display that displays two-dimensional patterns corresponding to three-dimensional clothing; a communication interface that receives the number of roll-up folds and the roll-up fold interval input through the user interface as the target portion to be rolled-up is selected by the user among the two-dimensional patterns; and determining a baseline of the three-dimensional garment corresponding to the target portion, and based on the baseline, an object affected by the roll-up among vertices of at least one two-dimensional pattern corresponding to the target portion. and a processor that determines vertices and simulates the three-dimensional garment in which the roll-up is expressed by converting the target vertices into two-dimensional vertices in a virtual plane in which the roll-up is implemented.
- a 3D costume with multiple roll-ups can be displayed quickly without twisting or penetrating.
- the problem of the folded part of the roll-up becoming uneven due to insufficient mesh resolution can be solved by ensuring that at least one fold line corresponding to the number of folds of the roll-up is reflected in the mesh of the two-dimensional pattern.
- computational complexity can be reduced by performing simulation using a coarse mesh before remeshing instead of a dense mesh for parts where roll-up is not performed in the two-dimensional pattern, that is, for the reference section that is not folded. there is.
- 1 is a diagram for explaining the basic concept of simulating roll-up according to an embodiment.
- Figure 2 is a flowchart showing a method for simulating roll-up according to one embodiment.
- Figure 3 is a diagram for explaining a method of determining a baseline according to an embodiment.
- Figure 4 is a flowchart showing a method of determining target vertices according to one embodiment.
- Figure 5 is a flowchart showing a method of classifying sections of a folded area according to an embodiment.
- FIGS. 6A and 6B are diagrams for explaining a method of setting a buffer area according to an embodiment.
- Figure 7 is a diagram for explaining a method of classifying sections of a folded area according to an embodiment.
- Figure 8 is a flowchart showing a method for simulating 3D clothing according to an embodiment.
- FIG. 9 is a diagram for explaining a method of defining a virtual plane according to an embodiment.
- Figure 10 is a flowchart showing a method of converting target vertices into two-dimensional vertices in a virtual plane according to an embodiment.
- Figure 11 is a diagram showing the results of remeshing two-dimensional vertices converted into a virtual plane according to one embodiment.
- FIG. 12 is a diagram illustrating a process in which a roll-up simulation is performed through a user interface according to an embodiment.
- Figure 13 is a flowchart showing a method for simulating roll-up according to one embodiment.
- Figure 14 is a block diagram of a device for simulating roll-up according to one embodiment.
- first, second, A, B, (a), and (b) may be used. These terms are only used to distinguish the component from other components, and the nature, sequence, or order of the component is not limited by the term.
- a component is described as being “connected,” “coupled,” or “connected” to another component, that component may be directly connected or connected to that other component, but there is no need for another component between each component. It should be understood that may be “connected,” “combined,” or “connected.”
- FIG. 1 is a diagram for explaining the basic concept of simulating roll-up according to an embodiment.
- a screen 110 in which a target part (e.g., a sleeve part) to be rolled up by a user is selected in a three-dimensional garment according to an embodiment, and 0 times in the target part selected by the user.
- Figures 120, 130, 140, and 150 showing the results of simulating up to 3 roll-ups are shown.
- Roll-up' can mean rolling up part of a garment or folding it several times.
- the part of the costume that is subject to roll-up may correspond to, for example, cuffs and/or trousers.
- the target part e.g., 'sleeve' part
- the simulation device may provide a user interface for inputting the folding interval of the roll-up and/or the number of folding times of the roll-up corresponding to the target portion selected by the user to represent the roll-up.
- You can. 'Folding interval of roll-up' is a value indicating the interval (length or height) at which roll-up is performed. For example, it can be set in units of 5 mm or 1 cm, but is not necessarily limited to this. .
- the 'roll-up folding count' is a value that indicates how many times the roll-up will be performed, that is, how many times it will be folded. For example, it can be set to any of the values from 1 to 3, but it must be set to this. It is not limited.
- the number of roll-up folds and/or the roll-up fold interval may be input by the user through a user interface, or a default value may be given in advance without separate input.
- the simulation device may receive a pattern selected by the user to roll up from the two-dimensional patterns that make up the three-dimensional costume, rather than the three-dimensional costume.
- the simulation device may provide roll-up, for example, by allowing the user to click on the outline of a 3D garment (or the outline of a 2D pattern) and then right-click (or left-click) the mouse to select the roll-up function.
- the simulation device may display a user interface or pop-up menu on the screen for setting the folding interval of the roll-up and/or the number of times the roll-up is folded.
- the simulation device displays the results of simulating a roll-up on a sleeve as shown in the drawings (120, 130, 140, and 150) according to the folding interval of the roll-up and the number of folds of the roll-up entered or set through the pop-up menu. You can.
- Drawing 120 may represent a sleeve with the roll-up function not selected.
- the drawing 130 may represent a simulation result when the roll-up folding interval is approximately 30 mm and the number of roll-up folding is set to 1.
- the drawing 140 may represent a simulation result when the roll-up folding interval is approximately 50 mm and the number of roll-up folding is set to 2 times.
- the drawing 150 may represent a simulation result when the roll-up folding interval is approximately 70 mm and the number of roll-up folding is set to 3 times.
- the simulation device performs a preset folding interval and/or roll-up without separate input from the user as the roll-up function is selected in the target part of the three-dimensional garment or the target part of the two-dimensional pattern.
- a roll-up can be automatically expressed in a selected part of the 3D garment.
- FIG. 2 is a flowchart showing a method for simulating roll-up according to one embodiment.
- each step may be performed sequentially, but is not necessarily performed sequentially.
- the order of each step may be changed, and at least two steps may be performed in parallel.
- a device for simulating roll-up (hereinafter referred to as 'simulation device') according to an embodiment simulates a three-dimensional garment in which roll-up is expressed through steps 110 to 130. You can.
- the simulation device determines a base line corresponding to the target portion of the three-dimensional garment selected by the user as the object of roll-up in the two-dimensional pattern.
- the 'base line' may correspond to the outline of a 3D clothing part corresponding to the bottom surface of the target part selected by the user among the 2D patterns subject to roll-up.
- the simulation device is a position where the distance from both end points of the end (e.g., sleeve hem, pants hem) of the target part (e.g., sleeve, pants) selected by the user among the two-dimensional patterns corresponding to the three-dimensional clothing is the same.
- the midpoint can be determined.
- the simulation device may determine adjacent points located in a vertical direction from the midpoint to the inside of the corresponding two-dimensional pattern (e.g., sleeve pattern, pants pattern).
- the simulation device can determine the baseline in the three-dimensional clothing by setting an up-vector from the midpoint to the adjacent point located above. The method by which the simulation device determines the baseline will be described in more detail with reference to FIG. 3 below.
- step 220 the simulation device determines target vertices affected by roll-up among the vertices of at least one two-dimensional pattern corresponding to the target portion, based on the baseline determined in step 210.
- 'vertices' of a two-dimensional pattern may refer to vertices of polygons (e.g., triangles) constituting the mesh of a two-dimensional pattern.
- 'target vertices' may refer to vertices of the area subject to roll-up among the vertices of polygons (e.g., triangles) constituting the mesh of a two-dimensional pattern.
- the method by which the simulation device determines target vertices will be described in more detail with reference to FIGS. 4 to 7 below.
- step 230 the simulation device simulates a three-dimensional garment in which roll-up is expressed by transforming the target vertices determined in step 220 into two-dimensional vertices in a virtual plane in which roll-up is implemented. .
- the simulation device will determine the sections of the folded area whose height and width are determined by the extended area.
- the target vertices included in each can be converted into two-dimensional vertices in the virtual plane.
- the simulation device projects target vertices onto each of the base planes and moves the target vertices based on the center point of the bounding box containing the target vertices projected onto each of the base planes, thereby transforming the target vertices into two-dimensional vertices within the virtual plane. It can be converted.
- the simulation device can simulate 3D clothing by restoring the converted 2D vertices to 3D world coordinates corresponding to the 3D clothing. The method by which the simulation device simulates 3D clothing will be described in more detail with reference to FIGS. 8 to 11 below.
- Figure 3 is a diagram for explaining a method of determining a baseline according to an embodiment.
- a drawing 300 showing a 2D pattern 310 of a sleeve portion selected by a user among 2D patterns corresponding to a 3D costume and a sleeve portion 330 of a 3D costume according to an embodiment. ) is shown.
- 'two-dimensional pattern(s)' may correspond to two-dimensional planar pattern(s) virtually produced by a computer program.
- the two-dimensional pattern(s) may be, for example, patterns of three-dimensional clothing that the user wishes to create.
- the two-dimensional pattern(s) may be virtual two-dimensional clothing patterns that are modeled as the sum of numerous polygonal (e.g., triangular) meshes for simulation of three-dimensional virtual clothes. For example, if the polygon is a triangle, the three vertices of the mesh are points with mass, and each side of the mesh can be expressed as springs with elasticity connecting the masses.
- Two-dimensional pattern(s) can be modeled by, for example, a Mass-Spring Model.
- the springs may have respective resistance values to, for example, stretch, shear, and bending, depending on the physical properties of the fabric used.
- Each vertex can move under the action of external forces such as gravity and internal forces such as stretching, twisting, and bending.
- external forces such as gravity
- internal forces such as stretching, twisting, and bending.
- the displacement and speed of movement of each vertex can be obtained.
- the movement of the virtual clothing can be simulated through the movement of the vertices of the mesh at each time step.
- draping two-dimensional patterns made of triangular mesh onto a three-dimensional avatar a natural three-dimensional virtual costume based on the laws of physics can be created.
- the simulation device may receive an input of a target portion selected by the user among two-dimensional patterns corresponding to three-dimensional clothing.
- the target portion may correspond to the end of the two-dimensional pattern 310 of the sleeve portion, for example.
- the simulation device defines a base plane that will be the bottom surface of the virtual cylinder by the baseline determined based on the selected target part. And roll-up simulation can be performed using a virtual plane defined based on the base plane.
- the simulation device can determine the midpoint p (311) at the end of the two-dimensional pattern 310 of the sleeve portion.
- the simulation device may determine an adjacent point p'(313) located in a vertical direction from the midpoint p(311) to the inside of the two-dimensional pattern 310 of the sleeve portion.
- the simulation device creates an adjacent point p' that slightly pushes up the midpoint p(311) in a direction in which the straight line connecting the start point and the end point at the end (sleeve edge) of the two-dimensional pattern 310 of the sleeve is rotated 90 degrees. (313) can be obtained.
- the simulation device can determine the base line 315 utilized to generate the base plane in the 3D window by setting the up vector in the direction from the midpoint p (311) to the adjacent point p' (313). At this time, if the 3D coordinates corresponding to the midpoint p (311) and the adjacent point p' (313) in the sleeve part 330 of the 3D costume are respectively q (331) and q' (333), q'- q can be the direction of the up vector.
- the simulation device creates a base line 315 corresponding to the user's input in a 3D window in which three-dimensional clothes are displayed. You can perform the process of creating a virtual plane where display and roll-up are implemented.
- Figure 4 is a flowchart showing a method of determining target vertices according to one embodiment.
- a simulation device may extract target vertices through steps 410 to 420.
- the simulation device may assign indexes corresponding to sections of the folded area to target vertices according to the folding interval from the baseline and the number of folding times.
- the simulation device may determine a reference section corresponding to the number of folds among sections of the folded area of the roll-up, for example, according to the folding interval from the baseline and the number of foldings.
- the 'reference section' does not change the actual positions of the vertices, but may correspond to the uppermost section or area that serves as a support for the parts rolled up from the bottom of the two-dimensional pattern.
- the location of the reference section may change depending on the number of folds. For example, as the number of roll-up folds increases, the position of the reference section may also gradually increase. For example, when the number of folds is 1, the reference section may correspond to a section (e.g., section 2 730 in FIG.
- the reference section may correspond to a section facing the roll-up portion that is folded outward twice (e.g., section 4 750 in FIG. 7) according to the folding interval.
- the simulation device may extract vertices included in each section of the folded area as target vertices. For example, when a reference section corresponding to the number of folds of roll-up is determined, the simulation device may extract vertices located below the reference section as target vertices corresponding to each section of the folded area.
- Figure 5 is a flowchart showing a method of classifying sections of a folded area according to an embodiment.
- the simulation device may classify sections of the folded area through steps 510 to 530.
- the simulation device may set at least one fold line corresponding to the number of folds in at least one two-dimensional pattern.
- the simulation device may perform re-meshing by moving at least one of the positions of target vertices and particle spacing so that at least one fold line is reflected in the mesh of at least one two-dimensional pattern.
- 're-meshing' is used to ensure that polygons (e.g. triangles) of the mesh are not separated by the fold lines when setting two fold lines that fold in a ⁇ shape as shown in Figure 6a below. It can be understood as the process of moving the position and spacing of polygons to match the fold line.
- the simulation device may set a buffer area on at least one side adjacent to at least one fold line set in step 510.
- the buffer area may be cumulatively increased in proportion to the increase in the number of sections of the folded area.
- the simulation device may reflect the buffer area set in step 520 in the folding interval and determine areas with expanded height and width as sections of the folded region. The method by which the simulation device determines the sections of the folded region will be described in more detail with reference to FIG. 7 below.
- FIGS. 6A and 6B are diagrams for explaining a method of setting a buffer area according to an embodiment.
- FIG. 6A it includes a drawing 603 showing a three-dimensional costume in which a sleeve part folded by roll-up is expressed according to an embodiment and a drawing 607 showing an enlarged part of a sleeve folded by roll-up.
- a diagram 600 is shown.
- the folded side of the roll-up is folded into a knife-like V shape, so the vertices near the fold line are twisted or overlapped.
- This phenomenon may occur.
- the number of folds of the roll-up is two or more, the rolled-up portion may be piled up on top of the clothing. If you simulate the roll-up of a sleeve using only one fold line like this, not only is the thickness of the rolled-up part not faithfully reflected, but also the positions of the vertices of the folded part overlap each other or penetrate the garment. This may cause roll-up simulation to not be performed properly.
- a small buffer region is set on both sides or at least one side of the fold line so that the folded portion has a U-shape as shown in drawing 609. can do.
- the simulation device may set three fold lines corresponding to the number of folds 1 so that the folded area including the buffer area has a U-shape.
- a diagram 610 showing the sleeve portions 611, 613, and 615 of a three-dimensional garment with an increased number of folds in the roll-up according to one embodiment, and a diagram 610 showing the increased number of folds in the roll-up.
- a diagram 630 showing a gradually increasing number of fold lines and a buffer area is shown. Numbers (e.g., 0 to 3) written at the bottom of the drawing 630 may indicate the number of times the roll-up is folded.
- the sleeve portion 611 may represent a case where the number of roll-up folds is one.
- the sleeve portion 613 may represent a case where the number of roll-up folds is two.
- the sleeve portion 615 may represent a case where the number of roll-up folds is 3 times.
- the simulation device can set the buffer area so that both the folded thickness and the folded up length gradually increase in the drawing 630 as the number of roll-up folds increases.
- the simulation device cumulatively increases the buffer area as the number of folds of the roll-up increases, so that the shape of the part where the roll-up is expressed is maintained even during simulation, enabling natural draping.
- Figure 7 is a diagram for explaining a method of classifying sections of a folded area according to an embodiment. Referring to FIG. 7, when the number of folds of the roll-up according to one embodiment is 3, the folded area of the roll-up is divided into seven sections (710, 720, 730, 740, 750, 760, and 770). A sorted two-dimensional sleeve pattern 700 is shown.
- the simulation device folds the roll-up in the two-dimensional sleeve pattern 700 based on the folding interval of the roll-up from the base line corresponding to the bottom surface of the two-dimensional sleeve pattern 700 and the number of folds of the roll-up. Sections of the area can be classified.
- the simulation device may classify the vertices into sections by extracting a set V of vertices affected by the roll-up, for example, based on the height from the base plane corresponding to the number of folds of the roll-up.
- the base plane may correspond to, for example, section 0 (710), section 2 (730), and section 4 (750).
- the simulation device can set the roll-up state so that the roll-up folding interval is 50 mm, the number of roll-up folding is 3 times, and the buffer area is 5 mm.
- the two-dimensional sleeve pattern 700 can be classified into a total of seven areas from section 0 (710) to section 6 (770). At this time, the length and width (width) of each section may be determined by the length and width reflecting the buffer area. The length and width of the buffer area may cumulatively increase each time roll-up is performed. As the number of roll-up folds increases, both the folded thickness and the folded up length in the buffer area may gradually increase.
- the simulation device determines a reference section corresponding to the number of folds among sections of the folded area of the roll-up according to the folding interval from the baseline and the number of folds, and divides the vertices included in each section of the folded area into each base plane.
- the target vertices corresponding to can be extracted.
- the simulation device may determine the length of section 0 (710) by considering the buffer area.
- the simulation device can calculate the length of section 0 (710) as the difference (e.g., 45 mm) between the folding interval of the roll-up (e.g., 50 mm) and the buffer area (e.g., 5 mm).
- Section 1 720 may correspond to a buffer area.
- the length of section 1 720 may be 5 mm. Accordingly, the total length from section 0 (710) to section 1 (720) may be 50 mm.
- the length of section 2 (730) may be 50 mm, which is 5 mm longer than that of section 0 (710). Therefore, the total length from section 0 (710) to section 2 (730) is the total length from the bottom of section 0 (710) to section 1 (720) (e.g. 50 mm) and the length of section 2 (730) ( It can correspond to the sum of (e.g. 50 mm) (e.g. 100 mm).
- Section 3 740 may correspond to a buffer area.
- the length of section 3 (740) may be 10 mm, which is 5 mm longer than the length of section 1 (720).
- the total length from section 0 (710) to section 3 (740) is the total length from the bottom of section 0 (710) to section 2 (730) (e.g. 100 mm) and the length of section 3 (740) (e.g. It can be the sum of 10mm (e.g. 110mm).
- section 3 740 since section 3 740 has undergone one roll-up, the height/width of the buffer area can be increased by an additional 5 mm.
- the length of section 4 (750) may be 55 mm, which is 5 mm longer than section 2 (730).
- the total length from section 0 (710) to section 4 (750) is the total length from the bottom of section 0 (710) to section 3 (740) (e.g. 110 mm) and the length of section 4 (750) (e.g. It can be the sum of 55mm (e.g. 165mm).
- Section 5 760 may correspond to a buffer area.
- the length of section 5 (760) may be 15 mm, which is 5 mm longer than section 3 (740).
- the total length from section 0 (710) to section 5 (760) is the total length from the bottom of section 0 (710) to section 4 (750) (e.g. 165 mm) and the length of section 5 (760) (e.g. It may be the sum of 15 mm) (e.g. 180 mm).
- the total length from segment 0 (710) to segment 6 (770) is the total length from segment 0 (710) to segment 5 (760) (e.g. 180 mm) and the length of segment 6 (770) (e.g. 75 mm). It may be the sum of (e.g. 255mm).
- the length of section 6 (770) e.g., 75 mm
- the upper limit to which the actual folded areas can be stacked for example, the height entered by the user, that is, the folding interval of the roll-up (e.g., 50 mm) ), but is not necessarily limited to this.
- Section 6 (770) may be a reference section when, for example, the number of roll-up folds is 3.
- Section 6 (770) is not a section that is actually folded during roll-up, but a section that supports the folded sections, that is, it may correspond to a reference section where six sections from section 0 (710) to section 5 (760) are stacked. .
- the reference section may be called a 'support section' in that there is no change in the actual positions of the vertices, but it serves as a support for the lower sections of the folded area.
- the simulation device provides target vertices included in each section based on the height from the bottom of section 0 (710) (for example, the folding interval of the roll-up entered by the user) corresponding to the sections of the folded area.
- An index can be assigned.
- odd-numbered indices such as index 1 corresponding to section 1 (720), index 3 corresponding to section 3 (740), and index 5 corresponding to section 5 (760) may represent a buffer area.
- Figure 8 is a flowchart showing a method for simulating 3D clothing according to an embodiment.
- the simulation device may simulate a three-dimensional costume through steps 810 to 830.
- the simulation device may define a virtual plane.
- the simulation device may define the base plane of the virtual cylinder, for example, based on an arbitrary first vertex on the end of the target portion and an up vector corresponding to at least one two-dimensional pattern.
- the simulation device may define a virtual plane by moving the base plane based on the distance between the base plane and a second vertex corresponding to an arbitrary first vertex in the 3D clothing.
- the coordinate components of the cylindrical virtual plane that is, theta corresponding to the angle among the cylindrical coordinate components, are constants, so all vertices move only within the RZ plane of the virtual plane. You can.
- the method by which the simulation device defines the virtual plane will be described in more detail with reference to FIG. 9 below.
- the simulation device may convert the target vertices determined in step 220 into two-dimensional vertices within the virtual plane defined in step 810.
- the simulation device can convert all vertices in the set V of vertices affected by roll-up into two-dimensional vertices in the local RZ plane corresponding to each base plane.
- the method by which the simulation device converts target vertices into two-dimensional vertices in a virtual plane will be described in more detail with reference to FIG. 10 below.
- the simulation device can simulate the 3D clothing by restoring the 2D vertices converted in step 820 to 3D world coordinates corresponding to the 3D clothing. For example, the simulation device remeshes the converted 2D vertices by adjusting at least one of the positions and intervals of the converted 2D vertices included in each section of the folded area, thereby creating a 3D world corresponding to the 3D clothing. It can be restored to coordinates.
- FIG. 9 is a diagram for explaining a method of defining a virtual plane according to an embodiment.
- the sleeve portion 910 that is the subject of roll-up selected by the user is defined as the upper (or lower) surface of the cylinder corresponding to the sleeve portion 910.
- a drawing 900 is shown to explain a virtual plane 930 and a cylindrical coordinate system 950 reflecting the virtual plane 930.
- the simulation device may define the base plane of the virtual cylinder based on the above-described up vector V and an arbitrary vertex P on the end of the sleeve portion 910, which is the target portion selected by the user.
- the simulation device moves the base plane based on the distance between the base plane and the second vertex (e.g., vertex P') corresponding to an arbitrary first vertex (e.g., vertex P) in the three-dimensional garment, thereby creating a virtual plane (930). ) can be defined.
- the simulation device can obtain the distance (e.g., signed distance) between the second vertex (e.g., vertex P') and the base plane to ensure that the base plane is the floor surface in the actual three-dimensional garment. there is.
- the directing distance can be ‘+’, and if the position of each vertex is below the base plane, the directing distance can be ‘-’.
- the simulation device moves the plane upward in the up vector direction to include the point with the minimum directing distance value. In other words, it corresponds to the desired floor surface in the three-dimensional garment by shifting the plane upward to the point where the directing distance is minimum.
- a virtual plane can be obtained. For example, if the directional distance values are ‘+1’ and ‘-2’, the smaller number of these, -2, can be the minimum directional distance value.
- the simulation device moves the base plane to the position of the vertex including the point where the orientation distance is minimum from the vertices below from an arbitrary base plane generated by a normal vector and a random vertex P on the end of the target part.
- the virtual plane 930 can be defined by shifting.
- the simulation device can convert all vertices on the 3D clothing into cylindrical coordinates based on the virtual plane 930.
- Cylindrical coordinates may be expressed, for example, in an RZ plane, such as a cylindrical coordinate system 950 that reflects a position or coordinate in a virtual plane 930.
- the angle component ⁇ may be a constant in the cylindrical coordinate system 950. Accordingly, converting target vertices into two-dimensional vertices within the virtual plane 930 can be simplified to a 2D transformation problem within the RZ plane, such as the cylindrical coordinate system 950.
- the coordinate component of the virtual plane 930 that is, theta ( ⁇ ) corresponding to the angle among the components of cylindrical coordinates, is a constant, so 2 is affected by roll-up. All vertices within the dimensional pattern can only move within the RZ plane of the virtual plane 930.
- r of the RZ plane may correspond to the width (w) from the center of the cylindrical coordinate to an arbitrary vertex v.
- z of the RZ plane may correspond to the height (height; h) in the normal direction of the base planes.
- the simulation device can more easily simulate a three-dimensional garment in which roll-up is expressed through the virtual plane 930 defined through the above-described process.
- Figure 10 is a flowchart showing a method of converting target vertices into two-dimensional vertices in a virtual plane according to an embodiment.
- a simulation device may convert target vertices into two-dimensional vertices in a virtual plane through steps 1010 to 1040.
- the simulation device may project target vertices corresponding to each of the sections of the folded area determined in step 530 onto each of the base planes corresponding to the number of folds of the roll-up. For example, when the number of roll-up folds is 3, the simulation device can project target vertices corresponding to each section of the folded area onto each of the three base planes. In other words, the simulation device projects the target vertices corresponding to section 2 (730) onto the first base plane, the target vertices corresponding to section 4 (750) onto the second base plane, and the target vertices corresponding to section 4 (750) onto the second base plane. Corresponding target vertices can be projected onto the third base plane.
- each of the three base planes has a cylindrical shape, and a local RZ plane corresponding to each of the base planes may exist.
- the simulation device can convert all vertices in the set V of vertices affected by roll-up into two-dimensional vertices in the local RZ plane corresponding to each base plane.
- the simulation apparatus may determine the center point of the bounding box including the target vertices projected to each of the base planes in step 1010 as the center point of each of the base planes.
- the center point of the bounding box containing the target vertices may correspond to the center point of the cylinder.
- the simulation device combines a ray emitted in the inner horizontal direction from the center point of each of the base planes determined in step 1020 with a reference section corresponding to the number of folds in the folded area of the roll-up.
- the collision point can be calculated.
- the ray emitted in the horizontal direction from the center point of each of the base planes is the inner part of the garment facing the polygon of the mesh of the rolled-up part of the three-dimensional garment, that is, the mesh corresponding to the unfolded part. It may be a ray aimed at a polygon of .
- step 1040 the simulation device moves the target vertices from the collision point calculated in step 1030 to a position spaced apart by the width of the buffer area corresponding to each section of the folded region, thereby making the target vertices two-dimensional in the virtual plane. It can be converted to vertices.
- moving the target vertices from the collision point to a position spaced apart by the width of the buffer area corresponding to each section of the folded area ensures that the part that is folded by roll-up is located on the outside compared to the part that is not folded. -This is to ensure that the pattern of the part that is folded does not overlap with the pattern of the part that is not folded.
- Figure 11 is a diagram showing the results of remeshing two-dimensional vertices converted into a virtual plane according to one embodiment.
- a diagram 1100 is shown showing a two-dimensional pattern in which the mesh resolution has been changed through remeshing according to one embodiment.
- the simulation device determines the effect of roll-up among the vertices of the two-dimensional pattern so that at least one fold line (1110, 1130) is reflected in the two-dimensional pattern corresponding to the target part (e.g., sleeve) subject to roll-up.
- Re-meshing can be performed by moving at least one of the positions and particle spacing of the receiving target vertices.
- the simulation device arranges the target vertices, that is, one side of the polygons of the mesh, to align with the at least one fold line (1110, 1130).
- the positions of target vertices can be moved as much as possible.
- the simulation device may change the resolution of the mesh corresponding to the target vertices, that is, the particle spacing of the target vertices to be small.
- the simulation device may densely change the particle spacing of the buffer area adjacent to at least one fold line (1110, 1130) and/or the target vertices at positions adjacent to the buffer area. In this way, a mesh in which the particle spacing of target vertices has been changed to be dense can be called a 'fine mesh'.
- the simulation device can restore the converted 2D vertices to 3D world coordinates corresponding to the 3D clothing by remeshing by adjusting at least one of the positions and spacing of the 2D vertices included in each section of the folded area.
- the two-dimensional vertices included in each section of the folded region may correspond to vertices converted to two-dimensional vertices in the virtual plane.
- the simulation device can solve the problem of the folded portion becoming uneven due to insufficient mesh resolution by ensuring that at least one fold line (1110, 1130) is actually reflected in the mesh of the two-dimensional pattern.
- the simulation device reduces computational complexity by performing simulation using a coarse mesh before remeshing instead of a dense mesh for the portion where roll-up is not performed in the two-dimensional pattern, that is, the reference section that is not folded. can be lowered.
- FIG. 12 is a diagram illustrating a process in which a roll-up simulation is performed through a user interface according to an embodiment.
- a screen 1210 where the user selects the outline of a target part (e.g., hem of pants) to be rolled up among the two-dimensional patterns constituting a three-dimensional garment according to an embodiment
- the user Screens (1230, 1250) where a pop-up menu is displayed when the roll-up function is activated by right-clicking after selecting the outline of the pants hem, and roll-up by the value set by the pop-up menu
- a diagram 1200 is shown, including a screen 1270 showing these simulated results.
- the roll-up function is performed as shown in screen 1230.
- a pop-up menu 1235 including may be displayed on the screen.
- a user interface screen 1255 is displayed to receive input of the roll-up folding interval and the number of roll-up folds, as shown in screen 1250. can be displayed.
- the simulation device automatically displays the results of simulating the roll-up 1275 on the pants hem as shown in screen 1270 according to the folding interval of the roll-up and the number of folds of the roll-up entered in the user interface screen 1255. can do.
- the simulation device determines the preset folding interval of the roll-up and/or the roll-up function without separate input from the user, such as on the screen 1255.
- a roll-up can be automatically expressed in a selected part of the 3D garment.
- Figure 13 is a flowchart showing a method for simulating roll-up according to one embodiment.
- the simulation device may simulate a three-dimensional garment expressing a roll-up through steps 1310 to 1360.
- step 1310 the simulation device receives the number of folding times of the roll-up and the folding interval of the roll-up input through the user interface as the target portion that is the target of the roll-up is selected from the two-dimensional pattern.
- step 1320 the simulation device determines the baseline of the three-dimensional garment corresponding to the target part selected by the user in step 1310.
- the simulation device determines the folding area of the roll-up in at least one two-dimensional pattern based on the folding interval of the roll-up from the baseline determined in step 1320 and the number of times the roll-up is folded. Classify the sections. For example, the simulation device may classify the sections of the folded area into (number of folds of roll-up (n) x 2) + 1 areas in response to the number of folds (n). The simulation device may grant indexes corresponding to classified areas to target vertices.
- the simulation device may set at least one fold line corresponding to the number of folds in at least one two-dimensional pattern.
- the simulation device may set a buffer area on at least one side adjacent to at least one fold line.
- the simulation device may reflect the buffer area in the folding interval and determine areas with expanded height and width as sections of the folding area.
- step 1340 the simulation device extracts vertices included in each section of the folded region classified in step 1330 as target vertices.
- the simulation device defines a virtual plane in which the roll-up is implemented.
- step 1360 the simulation device simulates a three-dimensional garment in which roll-up is expressed by converting the target vertices extracted in step 1340 into two-dimensional vertices in the virtual plane defined in step 1350.
- Figure 14 is a block diagram of a device for simulating roll-up according to one embodiment.
- a simulation device 1400 may include a communication interface 1410, a processor 1430, a display 1450, and a memory 1470.
- Communication interface 1410, processor 1430, display 1450, and memory 1470 may communicate with each other via communication bus 1405.
- the communication interface 1410 calculates the number of folds and roll-ups input through the user interface. Receives a folding interval of
- Processor 1430 determines the baseline of the three-dimensional garment corresponding to the target part.
- the processor 1430 determines target vertices affected by roll-up among the vertices of at least one two-dimensional pattern corresponding to the target portion, based on the baseline.
- the processor 1430 simulates a three-dimensional garment in which roll-up is expressed by converting target vertices into two-dimensional vertices in a virtual plane in which roll-up is implemented.
- the display 1450 may display two-dimensional patterns corresponding to three-dimensional clothing. Additionally, the display 1450 can display three-dimensional clothing.
- the memory 1470 may store the number of times the roll-up is folded and the roll-up folding interval received through the communication interface 1410. Additionally, the memory 1470 may store three-dimensional clothing representing the target vertices determined by the processor 1430 and/or the roll-up simulated by the processor 1430. The memory 1470 can store various information generated during the processing of the processor 1430 described above. In addition, the memory 1470 can store various data and programs. Memory 1470 may include volatile memory or non-volatile memory. The memory 1470 may be equipped with a high-capacity storage medium such as a hard disk to store various data.
- the processor 1430 may perform at least one method or an algorithm corresponding to at least one method described above with reference to FIGS. 1 to 13 .
- the processor 1430 may be a data processing device implemented in hardware that has a circuit with a physical structure for executing desired operations.
- the intended operations may include code or instructions included in the program.
- the processor 1430 may be comprised of, for example, a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), or a Neural Network Processing Unit (NPU).
- CPU Central Processing Unit
- GPU Graphics Processing Unit
- NPU Neural Network Processing Unit
- the simulation device 1400 implemented in hardware may include a microprocessor, a central processing unit, a processor core, a multi-core processor, and a multiprocessor ( multiprocessor), ASIC (Application-Specific Integrated Circuit), and FPGA (Field Programmable Gate Array).
- the processor 1430 can execute a program and control the simulation device 1400.
- Program code executed by the processor 1430 may be stored in the memory 1470.
- the method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium.
- the computer-readable medium may include program instructions, data files, data structures, etc., singly or in combination.
- Program instructions recorded on the medium may be specially designed and configured for the embodiment or may be known and available to those skilled in the art of computer software.
- Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks.
- program instructions include machine language code, such as that produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc.
- the hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
- Software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing unit to operate as desired, or may be processed independently or collectively. You can command the device.
- Software and/or data may be used on any type of machine, component, physical device, virtual equipment, computer storage medium or device to be interpreted by or to provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave.
- Software may be distributed over networked computer systems and stored or executed in a distributed manner.
- Software and data may be stored on one or more computer-readable recording media.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Image Generation (AREA)
Abstract
일 실시예에 따른 롤-업을 시뮬레이션하는 방법 및 장치는 3차원 의상에 대응하는 2차원 패턴들 중에서 사용자에 의해 롤-업의 대상으로 선택된 대상 부분에 대응하는 3차원 의상의 베이스 라인을 결정하고, 베이스 라인에 기초하여 대상 부분에 해당하는 적어도 하나의 2차원 패턴의 정점들 중 롤-업의 영향을 받는 대상 정점들을 결정하며, 대상 정점들을 롤-업이 구현되는 가상 평면 내의 2차원 정점들로 변환함으로써 롤-업이 표현된 3차원 의상을 시뮬레이션한다.
Description
실시예들은 롤-업을 시뮬레이션하는 방법 및 장치에 관한 것이다.
의상(clothes)은 사람이 착용한 경우에 3차원으로 보이지만, 실제로는 2차원의 패턴(pattern)에 따라 재단된 천 조각의 조합에 해당하므로 2차원에 가깝다. 의상의 재료가 되는 천은 유연(flexible)하기 때문에 의상을 착용한 사람의 신체 모양이나 움직임에 따라 그 형태가 다양하게 변화될 수 있다. 또한, 천은 예를 들어, 강도, 신축성, 및 수축률 등과 같은 다양한 물성을 가질 수 있으며, 천이 가지는 각 물성의 차이에 의해 동일한 디자인의 의상이라 하더라도 그 표현 형태 및 느낌이 상이할 수 있다.
패션 산업에서 컴퓨터 기반의 의상 시뮬레이션 기술이 실제 의상 디자인을 개발하는 데 널리 사용되고 있으나, 예를 들어, 의상의 소맷부리를 감아올려 입거나 바짓단을 접어올려 입는 것과 같은 롤-업(roll-up)의 표현이 용이하지 않은 실정이다.
일 실시예에 따르면, 롤-업을 시뮬레이션하는 방법은 3차원 의상에 대응하는 2차원 패턴들 중에서 사용자에 의해 롤-업(roll-up)의 대상으로 선택된 대상 부분에 대응하는 상기 3차원 의상의 베이스 라인(Base line)을 결정하는 단계; 상기 베이스 라인에 기초하여, 상기 대상 부분에 대응하는 적어도 하나의 2차원 패턴의 정점들 중 상기 롤-업의 영향을 받는 대상 정점들을 결정하는 단계; 및 상기 대상 정점들을 상기 롤-업이 구현되는 가상 평면 내의 2차원 정점들로 변환(transform)함으로써 상기 롤-업이 표현된 상기 3차원 의상을 시뮬레이션하는 단계를 포함한다.
상기 베이스 라인을 결정하는 단계는 상기 2차원 패턴들 중 상기 사용자에 의해 선택된 상기 대상 부분에 대응하는 적어도 하나의 2차원 패턴의 끝단에서 중간점을 결정하는 단계; 상기 중간점으로부터 상기 적어도 하나의 2차원 패턴의 내부로의 수직 방향에 위치하는 인접점을 결정하는 단계; 및 상기 중간점에서 상기 인접점 방향으로의 업 벡터(up-vector)를 설정하는 단계를 포함할 수 있다.
상기 대상 정점들을 결정하는 단계는 상기 베이스 라인으로부터의 롤-업의 접힘 간격 및 롤-업의 접힘 횟수에 기초하여, 상기 적어도 하나의 2차원 패턴에서 롤-업의 접힘 영역의 구간들 각각으로 분류하는 단계; 및 상기 접힘 영역의 구간들 각각에 포함된 정점들을 상기 대상 정점들로 추출하는 단계를 포함할 수 있다.
상기 접힘 영역의 구간들을 분류하는 단계는 상기 베이스 라인으로부터의 상기 접힘 간격 및 상기 접힘 횟수에 따라, 상기 롤-업의 접힘 영역의 구간들 중 상기 접힘 횟수에 대응하는 기준 구간을 결정하는 단계를 포함하고, 상기 대상 정점들로 추출하는 단계는 상기 기준 구간의 아래에 위치하는 정점들을 상기 접힘 영역의 구간들 각각에 대응하는 상기 대상 정점들로 추출하는 단계를 포함할 수 있다.
상기 접힘 영역의 구간들을 분류하는 단계는 상기 베이스 라인으로부터의 상기 접힘 간격 및 상기 접힘 횟수에 따라, 상기 대상 정점들에게 상기 접힘 영역의 구간들에 대응하는 인덱스를 부여하는 단계를 포함할 수 있다.
상기 접힘 영역의 구간들을 분류하는 단계는 상기 접힘 영역의 구간들을 기설정된 식에 따라 분류하는 단계를 포함할 수 있다.
상기 접힘 영역의 구간들을 분류하는 단계는 상기 적어도 하나의 2차원 패턴에 상기 접힘 횟수에 대응하는 적어도 하나의 접는 선(fold line) 및 버퍼 영역을 설정하는 단계; 및 상기 접힘 간격에 상기 버퍼 영역을 반영하여 상기 접힘 영역의 구간들로 결정하는 단계를 포함할 수 있다.
상기 적어도 하나의 접는 선을 설정하는 단계는 상기 적어도 하나의 2차원 패턴의 메쉬에 상기 대상 정점들의 위치 및 입자 간격 중 적어도 하나를 이동시켜 리메슁(re-meshing)하는 단계를 포함할 수 있다.
상기 버퍼 영역은 상기 접힘 영역의 구간들의 개수가 증가함에 따라 증가하는 것을 특징으로 할 수 있다.
상기 3차원 의상을 시뮬레이션하는 단계는 상기 접힘 영역의 구간들 각각에 포함된 상기 대상 정점들을 상기 가상 평면 내의 2차원 정점들로 변환하는 단계를 포함할 수 있다.
상기 3차원 의상을 시뮬레이션하는 단계는 상기 가상 평면을 정의하는 단계; 상기 대상 정점들을 상기 가상 평면 내의 2차원 정점들로 변환하는 단계; 및 상기 변환된 2차원 정점들을 상기 3차원 의상에 대응하는 3차원의 월드 좌표로 복원함으로써 상기 3차원 의상을 시뮬레이션하는 단계를 포함할 수 있다.
상기 가상 평면을 정의하는 단계는 상기 대상 부분의 끝단 상의 임의의 제1 정점과 상기 적어도 하나의 2차원 패턴에 대응하는 업 벡터를 기초로, 가상 실린더의 베이스 평면을 정의하는 단계; 및 상기 3차원 의상에서 상기 임의의 제1 정점에 대응하는 제2 정점과 상기 베이스 평면 간의 거리를 기초로 상기 베이스 평면을 이동시킴으로써 상기 가상 평면을 정의하는 단계를 포함할 수 있다.
상기 대상 정점들을 상기 가상 평면 내의 2차원 정점들로 변환하는 단계는 상기 대상 정점들을 베이스 평면들 각각에 투영하는 단계; 및 상기 베이스 평면들 각각에 투영된 상기 대상 정점들을 포함하는 바운딩 박스의 중심점을 기초로, 상기 대상 정점들을 이동시킴으로써 상기 대상 정점들을 상기 가상 평면 내의 2차원 정점들로 변환하는 단계를 포함할 수 있다.
상기 3차원 의상을 시뮬레이션하는 단계는 상기 변환된 2차원 정점들의 위치 및 간격 중 적어도 하나를 조절하여 리메슁 함으로써 상기 변환된 2차원 정점들을 상기 3차원 의상에 대응하는 3차원의 월드 좌표로 복원하는 단계를 포함할 수 있다.
일 실시예에 따르면, 롤-업을 시뮬레이션하는 장치는 3차원 의상에 대응하는 2차원 패턴들을 표시하는 디스플레이; 상기 2차원 패턴들 중에서 사용자에 의해 롤-업의 대상이 되는 대상 부분이 선택됨에 따라, 사용자 인터페이스를 통해 입력된 롤-업의 접힘 횟수 및 롤-업의 접힘 간격을 수신하는 통신 인터페이스; 및 상기 대상 부분에 대응하는 상기 3차원 의상의 베이스 라인을 결정하고, 상기 베이스 라인에 기초하여, 상기 대상 부분에 대응하는 적어도 하나의 2차원 패턴의 정점들 중 상기 롤-업의 영향을 받는 대상 정점들을 결정하며, 상기 대상 정점들을, 상기 롤-업이 구현되는 가상 평면 내의 2차원 정점들로 변환함으로써 상기 롤-업이 표현된 상기 3차원 의상을 시뮬레이션하는 프로세서를 포함한다.
일 측에 따르면, 사용자가 입력한 롤-업의 접힘 간격 및 롤-업의 접힘 횟수에 따른 복수 회의 롤-업이 표현된 3차원 의상을 시뮬레이션할 수 있다.
일 측에 따르면, 복수 회의 롤-업이 표현된 3차원 의상을 꼬임 및 관통없이 빠르게 표현할 수 있다.
일 측에 따르면, 롤-업의 접힘 횟수에 대응하는 적어도 하나의 접는 선이 2차원 패턴의 메쉬에 반영되도록 함으로써 메쉬 해상도가 충분하지 않아 롤-업의 접히는 부분이 울퉁불퉁 해지는 문제를 해결할 수 있다.
일 측에 따르면, 2차원 패턴에서 롤-업이 수행되지 않는 부분, 다시 말해 접혀지지 않는 기준 구간에 대하여는 조밀한 메쉬 대신에 리메슁 전의 성긴 메쉬를 이용하여 시뮬레이션을 수행함으로써 연산 복잡도를 감소시킬 수 있다.
도 1은 일 실시예에 따른 롤-업을 시뮬레이션하는 기본 개념을 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 롤-업을 시뮬레이션하는 방법을 나타낸 흐름도이다.
도 3은 일 실시예에 따른 베이스 라인을 결정하는 방법을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 대상 정점들을 결정하는 방법을 나타낸 흐름도이다.
도 5는 일 실시예에 따른 접힘 영역의 구간들을 분류하는 방법을 나타낸 흐름도이다.
도 6a 및 도 6b는 일 실시예에 따른 버퍼 영역을 설정하는 방법을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 접힘 영역의 구간들을 분류하는 방법을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 3차원 의상을 시뮬레이션하는 방법을 나타낸 흐름도이다.
도 9는 일 실시예에 따른 가상 평면을 정의하는 방법을 설명하기 위한 도면이다.
도 10은 일 실시예에 따른 대상 정점들을 가상 평면 내의 2차원 정점들로 변환하는 방법을 나타낸 흐름도이다.
도 11은 일 실시예에 따른 가상 평면 내로 변환된 2차원 정점들을 리메슁한 결과를 나타낸 도면이다.
도 12는 일 실시예에 따른 사용자 인터페이스를 통해 롤-업의 시뮬레이션이 수행되는 과정을 나타낸 도면이다.
도 13은 일 실시예에 따른 롤-업을 시뮬레이션하는 방법을 나타낸 흐름도이다.
도 14는 일 실시예에 따른 롤-업을 시뮬레이션하는 장치의 블록도이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
또한, 실시 예의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
어느 하나의 실시 예에 포함된 구성요소와, 공통적인 기능을 포함하는 구성요소는, 다른 실시 예에서 동일한 명칭을 사용하여 설명하기로 한다. 반대되는 기재가 없는 이상, 어느 하나의 실시 예에 기재한 설명은 다른 실시 예에도 적용될 수 있으며, 중복되는 범위에서 구체적인 설명은 생략하기로 한다.
도 1은 일 실시예에 따른 롤-업을 시뮬레이션하는 기본 개념을 설명하기 위한 도면이다. 도 1을 참조하면, 일 실시예에 따른 3차원 의상에서 사용자에 의해 롤-업의 대상이 되는 대상 부분(예: 소매 부분)이 선택되는 화면(110) 및 사용자에 의해 선택된 대상 부분에서 0회부터 3회까지의 롤-업이 시뮬레이션 된 결과를 나타낸 도면들(120, 130, 140, 150)이 도시된다.
'롤-업(roll-up)'은 의상의 일부를 걷어 올리거나, 또는 여러 번 접는 것을 의미할 수 있다. 의상에서 롤-업의 대상이 되는 대상 부분은 예를 들어, 소맷부리 및/또는 바짓단에 해당할 수 있다.
화면(110)과 같이 3차원 의상에서 롤-업을 수행하고자 하는 대상 부분(예: '소매' 부분)이 마우스 클릭 등에 의해 선택될 수 있다. 이 경우, 일 실시예에 따른 시뮬레이션 장치는 롤-업을 표현하기 위해 사용자가 선택한 대상 부분에 대응하는 롤-업의 접힘 간격 및/또는 롤-업의 접힘 횟수를 입력받기 위한 사용자 인터페이스를 제공할 수 있다. '롤-업의 접힘 간격'은 롤-업을 얼마의 간격(길이 또는 높이)으로 수행할지를 나타내는 값으로써, 예를 들어, 5 mm 단위 또는 1Cm 단위로 설정될 수 있으나, 반드시 이에 한정되지는 않는다. '롤-업의 접힘 횟수'는 롤-업을 몇 번 수행할지, 다시 말해 몇 번 접을 지를 나타내는 값으로써, 예를 들어, 1회부터 3회까지의 값 중 어느 하나로 설정될 수 있으나, 반드시 이에 한정되지는 않는다.
롤-업의 접힘 횟수 및/또는 롤-업의 접힘 간격은 사용자 인터페이스를 통해 사용자로부터 입력될 수도 있고, 또는 별도의 입력없이 디폴트(default) 값이 미리 주어질 수도 있다.
실시예에 따라서, 시뮬레이션 장치는 3차원 의상이 아니라, 3차원 의상을 구성하는 2차원 패턴들에서 사용자가 롤-업하고자 선택한 패턴을 입력받을 수도 있다. 시뮬레이션 장치는 예를 들어, 사용자가 3차원 의상의 외곽선(또는 2차원 패턴의 외곽선)을 클릭한 후 마우스를 우클릭(또는 좌클릭)하여 롤-업 기능을 선택함으로써 롤-업을 제공할 수 있다. 롤-업 기능이 선택됨에 따라, 시뮬레이션 장치는 롤-업의 접힘 간격 및/또는 롤-업의 접힘 횟수를 설정하는 사용자 인터페이스 또는 팝업 메뉴를 화면에 표시할 수 있다. 시뮬레이션 장치는 팝업 메뉴를 통해 입력 또는 설정된 롤-업의 접힘 간격 및 롤-업의 접힘 횟수에 따라 도면들(120, 130, 140, 150)과 같이 소매에 롤-업을 시뮬레이션한 결과를 표시할 수 있다.
도면(120)은 롤-업 기능이 선택되지 않은 상태의 소매를 나타낼 수 있다. 도면(130)은 예를 들어, 롤-업의 접힘 간격이 대략 30mm이고, 롤-업의 접힘 횟수가 1회로 설정된 경우의 시뮬레이션 결과를 나타낼 수 있다. 도면(140)은 예를 들어, 롤-업의 접힘 간격이 대략 50mm이고, 롤-업의 접힘 횟수가 2회로 설정된 경우의 시뮬레이션 결과를 나타낼 수 있다. 도면(150)은 예를 들어, 롤-업의 접힘 간격이 대략 70mm이고, 롤-업의 접힘 횟수가 3회로 설정된 경우의 시뮬레이션 결과를 나타낼 수 있다.
실시예에 따라서, 시뮬레이션 장치는 3차원 의상의 대상 부분 또는 2차원 패턴의 대상 부분에서 롤-업 기능이 선택됨에 따라 사용자의 별도의 입력이 없이도 미리 설정된 롤-업의 접힘 간격 및/또는 롤-업의 접힘 횟수에 따라 3차원 의상에서 선택된 부분에 자동적으로 롤-업을 표현할 수도 있다.
도 2는 일 실시예에 따른 롤-업을 시뮬레이션하는 방법을 나타낸 흐름도이다. 도 2 이하의 흐름도와 관련한 실시예에서 각 단계들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 단계들의 순서가 변경될 수도 있으며, 적어도 두 단계들이 병렬적으로 수행될 수도 있다.
도 2를 참조하면, 일 실시예에 따른 롤-업을 시뮬레이션하는 장치(이하, '시뮬레이션 장치')는 단계(110) 내지 단계(130)을 통해 롤-업이 표현된 3차원 의상을 시뮬레이션할 수 있다.
단계(210)에서, 시뮬레이션 장치는 3차원 의상에서, 사용자에 의해 2차원 패턴에서 롤-업(roll-up)의 대상으로 선택된 대상 부분에 대응하는 베이스 라인(Base line)을 결정한다. 베이스 라인'은 롤-업의 대상이 되는 2차원 패턴들 중 사용자에 의해 선택된 대상 부분의 바닥면에 대응하는 3차원 의상 부분의 외곽선에 해당할 수 있다.
시뮬레이션 장치는 예를 들어, 3차원 의상에 대응하는 2차원 패턴들 중 사용자에 의해 선택된 대상 부분(예: 소매, 바지)의 끝단(예: 소매단, 바지단)의 양 끝점으로부터의 거리가 동일한 위치에 중간점을 결정할 수 있다. 시뮬레이션 장치는 중간점으로부터 해당 2차원 패턴(예: 소매 패턴, 바지 패턴)의 내부로의 수직 방향에 위치하는 인접점을 결정할 수 있다. 시뮬레이션 장치는 중간점에서 위쪽에 위치하는 인접점 방향으로의 업 벡터(up-vector)를 설정함으로써 3차원 의상에서의 베이스 라인을 결정할 수 있다. 시뮬레이션 장치가 베이스 라인을 결정하는 방법은 아래의 도 3을 참조하여 보다 구체적으로 설명한다.
단계(220)에서, 시뮬레이션 장치는 단계(210)에서 결정한 베이스 라인에 기초하여, 대상 부분에 대응하는 적어도 하나의 2차원 패턴의 정점들 중 롤-업의 영향을 받는 대상 정점들을 결정한다. 본 명세서에서 2차원 패턴의 '정점들'은 2차원 패턴의 메쉬를 구성하는 다각형(예: 삼각형)의 정점들에 의미할 수 있다. 또한, '대상 정점들'은 2차원 패턴의 메쉬를 구성하는 다각형(예: 삼각형)의 정점들 중 롤-업의 향을 받는 영역의 정점들을 의미할 수 있다. 시뮬레이션 장치가 대상 정점들을 결정하는 방법은 아래의 도 4 내지 도 7을 참조하여 보다 구체적으로 설명한다.
단계(230)에서, 시뮬레이션 장치는 단계(220)에서 결정한 대상 정점들을, 롤-업이 구현되는 가상 평면 내의 2차원 정점들로 변환(transform)함으로써 롤-업이 표현된 3차원 의상을 시뮬레이션한다. 아래에서 보다 구체적으로 설명하겠지만, 접힘 간격에 버퍼 영역을 반영하여 높이 및 너비가 확장된 영역이 접힘 영역의 구간들로 결정된 경우, 시뮬레이션 장치는 높이 및 너비가 확장된 영역에 의해 결정된 접힘 영역의 구간들 각각에 포함된 대상 정점들을 가상 평면 내의 2차원 정점들로 변환할 수 있다. 시뮬레이션 장치는 대상 정점들을 베이스 평면들 각각에 투영하고, 베이스 평면들 각각에 투영된 대상 정점들을 포함하는 바운딩 박스의 중심점을 기초로, 대상 정점들을 이동시킴으로써 대상 정점들을 가상 평면 내의 2차원 정점들로 변환할 수 있다. 시뮬레이션 장치는 변환된 2차원 정점들을 3차원 의상에 대응하는 3차원의 월드 좌표로 복원함으로써 3차원 의상을 시뮬레이션할 수 있다. 시뮬레이션 장치가 3차원 의상을 시뮬레이션하는 방법은 아래의 도 8 내지 도 11을 참조하여 보다 구체적으로 설명한다.
도 3은 일 실시예에 따른 베이스 라인을 결정하는 방법을 설명하기 위한 도면이다. 도 3을 참조하면, 일 실시예에 따른 3차원 의상에 대응하는 2차원 패턴들 중 사용자에 의해 선택된 소매 부분의 2차원 패턴(310) 및 3차원 의상의 소매 부분(330)을 나타낸 도면(300)이 도시된다.
본 명세서에서 '2차원 패턴(들)'은 컴퓨터 프로그램에 의해 가상으로 제작되는 2차원의 평면 패턴(들)에 해당할 수 있다. 2차원 패턴(들)은 예를 들어, 사용자가 제작하고자 하는 3차원 의상의 패턴들일 수 있다. 2차원 패턴(들)은 3차원 가상 의상(virtual clothes)의 시뮬레이션을 위하여 수많은 다각형(예: 삼각형) 메쉬(mesh)들의 합으로 모델링되는 가상의 2차원 의상 패턴들일 수 있다. 예를 들어, 다각형이 삼각형인 경우, 메쉬의 세 꼭지점은 질량을 가지고 있는 점(point mass)이며, 메쉬의 각 변은 그 질량을 연결하는 탄성을 가지고 있는 스프링들로 표현될 수 있다. 2차원 패턴(들)은 예를 들어, 질량-스프링 모델(Mass-Spring Model)에 의해 모델링될 수 있다. 여기서, 스프링들은 사용되는 천(fabric)의 물성에 따라 예를 들어, 신축(stretch), 비틀림(shear), 및 굽힘(bending)에 대한 각 저항값(resist)을 가질 수 있다. 각 꼭지점들은 중력 등과 같은 외부적인 힘(external force)과 신축, 비틀림, 및 굽힘의 내부적인 힘(internal force)의 작용에 따라 움직일 수 있다. 외부적인 힘과 내부적인 힘을 계산하여 각 꼭지점에 가해지는 힘을 구하면, 각 꼭지점의 변위 및 움직임의 속도를 구할 수 있다. 그리고 각 시점(time step)의 메쉬의 꼭지점들의 움직임을 통하여 가상 의상의 움직임을 시뮬레이션할 수 있다. 삼각형 메쉬로 이루어진 2차원의 패턴들을 3차원의 아바타에 착장(draping)시키면 물리 법칙에 기반한 자연스러운 모습의3차원 가상 의상을 구현할 수 있다.
시뮬레이션 장치는 3차원 의상에 대응하는 2차원 패턴들 중 사용자에 의해 선택된 대상 부분의 입력을 수신할 수 있다. 이때, 대상 부분은 예를 들어, 소매 부분의 2차원 패턴(310)의 끝단에 해당할 수 있다.
시뮬레이션 장치는 사용자의 입력을 통해 롤-업이 수행될 2차원 패턴의 대상 부분이 선택되면, 선택된 대상 부분에 기초하여 결정된 베이스 라인에 의해 가상 실린더의 바닥면이 될 베이스 평면(base plane)을 정의하고 베이스 평면을 기초로 정의되는 가상 평면에 의해 롤-업 시뮬레이션을 수행할 수 있다.
보다 구체적으로, 시뮬레이션 장치는 소매 부분의 2차원 패턴(310)의 끝단에서 중간점 p(311)을 결정할 수 있다. 시뮬레이션 장치는 중간점 p(311)으로부터 소매 부분의 2차원 패턴(310)의 내부로의 수직 방향에 위치하는 인접점 p'(313)을 결정할 수 있다. 시뮬레이션 장치는 예를 들어, 소매 부분의 2차원 패턴(310)의 끝단(소매단)에서 시작점과 끝점을 연결하는 직선을 90도 회전시킨 방향으로 중간점 p(311)를 살짝 밀어올린 인접점 p'(313)을 구할 수 있다. 시뮬레이션 장치는 중간점 p(311)에서 인접점 p'(313) 방향으로의 업 벡터를 설정함으로써 3D 윈도우에서 베이스 평면을 생성하기 위해 활용하는 베이스 라인(315)을 결정할 수 있다. 이때, 3차원 의상의 소매 부분(330)에서 중간점 p(311)와 인접점 p'(313)에 대응되는 3D 좌표를 각각 q(331), q’(333)이라고 하면, q’- q 가 업 벡터 방향이 될 수 있다.
전술한 바와 같이, 2차원 패턴들이 표시되는 2D 윈도우를 통한 대상 부분에 대한 사용자의 입력이 수신되면, 시뮬레이션 장치는 3차원 의상이 표시되는 3D 윈도우에 사용자의 입력에 대응하는 베이스 라인(315)을 표시하고, 롤-업이 구현되는 가상 평면을 생성하는 과정을 수행할 수 있다.
도 4는 일 실시예에 따른 대상 정점들을 결정하는 방법을 나타낸 흐름도이다. 도 4를 참조하면, 일 실시예에 따른 시뮬레이션 장치는 단계(410) 내지 단계(420)을 통해 대상 정점들을 추출할 수 있다.
단계(410)에서, 시뮬레이션 장치는 베이스 라인으로부터의 롤-업의 접힘 간격 및 롤-업의 접힘 횟수에 기초하여, 적어도 하나의 2차원 패턴에서 롤-업의 접힘 영역의 구간들 각각을 분류할 수 있다. 시뮬레이션 장치는 예를 들어, 접힘 횟수(n=2)에 대응하여, 접힘 영역의 구간들을 기설정된 식(예: (롤-업의 접힘 횟수(n) x 2) +1 = 접힘 영역의 구간 개수)에 따라 분류할 수 있다. 예를 들어, 접힘 영역의 구간들은 (롤-업의 접힘 횟수(n) x 2) +1개 = 5개의 영역들로 분류할 수 있다. 시뮬레이션 장치는 베이스 라인으로부터의 접힘 간격 및 접힘 횟수에 따라, 대상 정점들에게 접힘 영역의 구간들을 대응하는 인덱스를 부여할 수 있다.
또한, 시뮬레이션 장치는 예를 들어, 베이스 라인으로부터의 접힘 간격 및 접힘 횟수에 따라, 롤-업의 접힘 영역의 구간들 중 접힘 횟수에 대응하는 기준 구간을 결정할 수 있다. '기준 구간'은 실제 정점들의 위치 변화는 없으나, 2차원 패턴의 밑에서부터 말려 올라온 부분들의 지지대 역할을 수행하는 최상단의 구간 또는 영역에 해당할 수 있다. 기준 구간의 위치는 접힘 횟수에 따라 변경될 수 있다. 예를 들어, 롤-업의 접힘 횟수가 커질수록 기준 구간의 위치 또한 점차 높아질 수 있다. 예를 들어, 접힘 횟수가 1회인 경우, 기준 구간은 접힘 간격에 따라 바깥쪽으로 1회 접힌 롤-업 부분에 마주보는 구간(예: 도 7의 구간 2(730))에 해당할 수 있다. 또한, 접힘 횟수가 2회인 경우, 기준 구간은 접힘 간격에 따라 바깥쪽으로 2회 접힌 롤-업 부분에 마주보는 구간(예: 도 7의 구간 4(750))에 해당할 수 있다. 시뮬레이션 장치가 접힘 영역의 구간들 각각을 분류하는 방법은 아래의 도 5를 참조하여 보다 구체적으로 설명한다.
단계(420)에서, 시뮬레이션 장치는 접힘 영역의 구간들 각각에 포함된 정점들을 대상 정점들로 추출할 수 있다. 예를 들어, 롤-업의 접힘 횟수에 대응하는 기준 구간이 결정된 경우, 시뮬레이션 장치는 기준 구간의 아래에 위치하는 정점들을 접힘 영역의 구간들 각각에 대응하는 대상 정점들로 추출할 수 있다.
도 5는 일 실시예에 따른 접힘 영역의 구간들을 분류하는 방법을 나타낸 흐름도이다.
도 5를 참조하면, 일 실시예에 따른 시뮬레이션 장치는 단계(510) 내지 단계(530)을 통해 접힘 영역의 구간들을 분류할 수 있다.
단계(510)에서, 시뮬레이션 장치는 적어도 하나의 2차원 패턴에 접힘 횟수에 대응하는 적어도 하나의 접는 선(fold line)을 설정할 수 있다. 시뮬레이션 장치는 예를 들어, 적어도 하나의 2차원 패턴의 메쉬에 적어도 하나의 접는 선이 반영되도록 대상 정점들의 위치 및 입자 간격 중 적어도 하나를 이동시켜 리메슁(re-meshing)할 수 있다. 여기서, '리메슁(re-meshing)'은 아래의 도 6a에 도시된 것과 같이 ㄷ 자 형태로 접히는 2개의 접는 선을 설정할 때, 메쉬의 다각형(예: 삼각형)이 접는 선에 의해 분리되지 않도록 다각형의 위치 및 간격을 접는 선에 맞춰 이동시키는 과정으로 이해될 수 있다.
단계(520)에서, 시뮬레이션 장치는 단계(510)에서 설정한 적어도 하나의 접는 선에 인접한 적어도 일측에 버퍼 영역을 설정할 수 있다. 버퍼 영역은 접힘 영역의 구간들의 개수가 증가함에 비례하여 누적적으로 증가될 수 있다. 시뮬레이션 장치가 버퍼 영역을 설정하는 방법은 아래의 도 6a 및 도 6b를 참조하여 보다 구체적으로 설명한다.
단계(530)에서, 시뮬레이션 장치는 접힘 간격에 단계(520)에서 설정한 버퍼 영역을 반영하여 높이 및 너비가 확장된 영역을 접힘 영역의 구간들로 결정할 수 있다. 시뮬레이션 장치가 접힘 영역의 구간들을 결정하는 방법을 아래의 도 7을 참조하여 보다 구체적으로 설명한다.
도 6a 및 도 6b는 일 실시예에 따른 버퍼 영역을 설정하는 방법을 설명하기 위한 도면이다.
도 6a를 참조하면, 일 실시예에 따른 롤-업에 의해 접힌 소매 부분이 표현된 3차원 의상을 나타낸 도면(603) 및 롤-업에 의해 접힌 소매 부분을 확대한 도면(607)을 포함하는 도면(600)이 도시된다.
예를 들어, 하나의 접는 선을 이용하여 의상의 소매를 롤-업 하는 경우, 롤-업의 접힌 면이 칼 같은 V자 형태로 접히게 되므로 접는 선 근처에 있는 정점이 서로 꼬이거나, 또는 중첩되는 현상이 발생할 수 있다. 특히, 롤-업의 접힘 횟수가 2회 이상인 경우, 롤-업되는 부분은 의상 위로 겹겹이 쌓이는 형태가 될 수 있다. 이와 같이 하나의 접는 선만을 사용하여 소매의 롤-업을 시뮬레이션 하면, 롤-업 되는 부분의 두께감이 충실히 반영되지 않을 뿐만 아니라, 접힌 부분의 정점들의 위치가 서로 중첩되거나, 또는 의상을 관통하는 현상이 발생하여 롤-업의 시뮬레이션이 제대로 수행되지 않을 수 있다.
일 실시예에서는 접힘 횟수에 대응하는 적어도 하나의 접는 선을 기준으로 접는 선의 양쪽 또는 적어도 일측으로 약간씩의 버퍼 영역(buffer region)을 설정함으로써 접히는 부분이 도면(609)와 같이 ㄷ 자 형태가 되도록 할 수 있다. 예를 들어, 접힘 횟수가 1회인 경우, 시뮬레이션 장치는 버퍼 영역을 포함하는 접힘 영역이 ㄷ 자 형태가 되도록 1번의 접힘 횟수에 대응하여 3개의 접는 선을 설정할 수 있다.
도 6b를 참조하면, 일 실시예에 따른 롤-업의 접힘 횟수가 증가된 3차원 의상의 소매 부분들(611, 613, 615)을 나타낸 도면(610) 및 롤-업의 접힘 횟수가 증가함에 따라서 점진적으로 증가하는 접는 선들의 개수 및 버퍼 영역을 나타낸 도면(630)이 도시된다. 도면(630)의 하단에 기재된 숫자(예: 0 내지 3)은 롤-업의 접힘 횟수를 나타낼 수 있다.
예를 들어, 도면(610)에서 소매 부분(611)은 롤-업의 접힘 횟수가 1회인 경우를 나타낼 수 있다. 소매 부분(613)은 롤-업의 접힘 횟수가 2회인 경우를 나타낼 수 있다. 소매 부분(615)은 롤-업의 접힘 횟수가 3회인 경우를 나타낼 수 있다.
시뮬레이션 장치는 롤-업의 접힘 횟수가 증가함에 따라 도면(630)에서 접히는 두께와 접혀 올라가는 길이 양쪽이 점진적으로 늘어나도록 버퍼 영역을 설정할 수 있다. 시뮬레이션 장치는 롤-업의 접힘 횟수가 증가함에 따라 버퍼 영역을 누적적으로 늘려감으로써 시뮬레이션 시에도 롤-업이 표현되는 부분의 모양이 유지되어 자연스러운 드레이핑이 가능하게 할 수 있다.
도 7은 일 실시예에 따른 접힘 영역의 구간들을 분류하는 방법을 설명하기 위한 도면이다. 도 7을 참조하면, 일 실시예에 따른 롤-업의 접힘 횟수가 3회인 경우에 롤-업의 접힘 영역이 7개의 구간들(710, 720, 730, 740, 750, 760, 770)로 각각 분류된 2차원 소매 패턴(700)이 도시된다.
시뮬레이션 장치는 2차원 소매 패턴(700)의 바닥면에 해당하는 베이스 라인으로부터의 롤-업의 접힘 간격 및 롤-업의 접힘 횟수에 기초하여, 2차원 소매 패턴(700)에서 롤-업의 접힘 영역의 구간들을 분류할 수 있다. 이 때, 시뮬레이션 장치는 예를 들어, 롤-업의 접힘 횟수에 대응하는 베이스 평면으로부터의 높이를 기준으로 롤-업의 영향을 받는 정점들의 집합 V를 추출하여 정점들을 구간 별로 분류할 수 있다. 여기서, 베이스 평면은 예를 들어, 구간 0(710), 구간 2(730), 구간 4(750)에 대응할 수 있다.
실시예에 따른 시뮬레이션 장치는 롤-업의 접힘 간격이 50mm이고, 롤-업의 접힘 횟수가 3회, 및 버퍼 영역을 5mm로 롤-업 상태를 설정할 수 있다. 이 경우, 시뮬레이션 장치는 접힘 횟수(n= 3)에 대응하여, 접힘 영역의 구간들을 7개((롤-업의 접힘 횟수(n= 3) x 2) +1개 = 7개)로 확인할 수 있다. 2차원 소매 패턴(700)은 구간 0(710)부터 구간 6(770)까지 총 7개의 영역들로 분류될 수 있다. 이 때, 각 구간들의 길이 및 폭(너비)은 버퍼 영역이 반영된 길이 및 폭으로 결정될 수 있다. 버퍼 영역의 길이 및 폭은 롤-업을 수행할 때마다 누적적으로 증가할 수 있다. 롤-업의 접힘 횟수가 증가할수록 버퍼 영역에서 접히는 두께와 접혀 올라가는 길이 양쪽이 점진적으로 증가할 수 있다.
시뮬레이션 장치는 베이스 라인으로부터의 접힘 간격 및 접힘 횟수에 따라, 롤-업의 접힘 영역의 구간들 중 접힘 횟수에 대응하는 기준 구간을 결정하고, 접힘 영역의 구간들 각각에 포함된 정점들을 각 베이스 평면에 대응하는 대상 정점들로 추출할 수 있다.
예를 들어, 시뮬레이션 장치는 구간 0(710)의 길이를 버퍼 영역을 고려하여 결정할 수 있다. 이 경우, 시뮬레이션 장치는 구간 0(710)의 길이를 롤-업의 접힘 간격(예: 50mm)과 버퍼 영역(예: 5mm)의 차(예: 45mm)로 연산할 수 있다.
구간 1(720)은 버퍼 영역에 해당할 수 있다. 구간 1(720)의 길이는 5mm일 수 있다. 따라서, 구간 0(710)에서 구간 1(720)까지의 총 길이는 50mm가 될 수 있다.
일 실시예에 따르면, 구간 2(730)의 길이는 구간 0(710) 보다 5mm가 긴 50mm일 수 있다. 따라서, 구간 0(710)에서 구간 2(730)까지의 전체 길이는 구간 0(710)의 바닥면에서 구간 1(720)까지의 총 길이(예: 50mm)와 구간 2(730)의 길이(예: 50mm)의 합(예: 100mm)에 대응할 수 있다.
구간 3(740)은 버퍼 영역에 해당할 수 있다. 구간 3(740)의 길이는 구간 1(720)의 길이보다 5mm가 긴 10 mm 일 수 있다. 구간 0(710)에서 구간 3(740)까지의 전체 길이는 구간 0(710)의 바닥면에서 구간 2(730)까지의 총 길이(예: 100mm)와 구간 3(740)의 길이(예: 10mm)의 합(예: 110mm)이 될 수 있다. 여기서, 구간 3(740)은 롤-업이 1회 진행된 상태이므로 버퍼 영역의 높이/너비가 5mm씩 추가로 증가할 수 있다.
구간 4(750)의 길이는 구간 2(730) 보다 5mm가 긴 55mm 일 수 있다. 구간 0(710)에서 구간 4(750)까지의 전체 길이는 구간 0(710)의 바닥면에서 구간 3(740)까지의 총 길이(예: 110mm)와 구간 4(750)의 길이(예: 55mm)의 합(예: 165mm)이 될 수 있다.
구간 5(760)는 버퍼 영역에 해당할 수 있다. 구간 5(760)의 길이는 구간 3(740) 보다 5mm가 긴 15mm 일 수 있다. 구간 0(710)에서 구간 5(760)까지의 전체 길이는 구간 0(710)의 바닥면에서 구간 4(750)까지의 총 길이(예; 165mm)와 구간 5(760)의 길이(예: 15mm)의 합(예: 180mm)일 수 있다.
구간 0(710)에서 구간 6(770)까지의 전체 길이는 구간 0(710)에서 구간 5(760)까지의 전체 길이(예: 180mm)와 구간 6(770)의 길이(예: 75 mm)의 합(예: 255mm)일 수 있다. 이때, 구간 6(770)의 길이(예: 75 mm)는 실제 접히는 영역들이 쌓일 수 있을 정도의 상한선으로서, 예를 들어, 사용자가 입력한 높이, 다시 말해 롤-업의 접힘 간격(예: 50mm)의 1.5배일 수 있으나, 반드시 이에 한정되지는 않는다.
구간 6(770)은 예를 들어, 롤-업의 접힘 횟수가 3회인 경우에 기준 구간이 될 수 있다. 구간 6(770)은 롤-업 시에 실제 접히는 구간이 아니라 접힌 구간들을 지지하는 구간, 다시 말해 구간 0(710)부터 구간 5(760)까지의 6개의 구간들이 쌓이는 기준 구간에 해당할 수 있다. 기준 구간은 실제 정점들의 위치 변화는 없으나 접힘 영역의 하부 구간들의 지지대 역할을 한다는 점에서 '서포트(support) 구간'이라고 부를 수도 있다.
시뮬레이션 장치는 구간 0(710)의 바닥면으로부터의 높이(예를 들어, 사용자가 입력한 롤-업의 접힘 간격)을 기준으로 각 구간에 포함된 대상 정점들에게 접힘 영역의 구간들에 대응하는 인덱스를 부여할 수 있다. 예를 들어, 구간 1(720)에 대응하는 인덱스 1, 구간 3(740)에 대응하는 인덱스 3, 구간 5(760)에 대응하는 인덱스 5와 같은 홀수 번의 인덱스는 버퍼 영역을 나타낼 수 있다.
도 8은 일 실시예에 따른 3차원 의상을 시뮬레이션하는 방법을 나타낸 흐름도이다. 도 8을 참조하면, 일 실시예에 따른 시뮬레이션 장치는 단계(810) 내지 단계(830)을 통해 3차원 의상을 시뮬레이션할 수 있다.
단계(810)에서, 시뮬레이션 장치는 가상 평면을 정의할 수 있다. 시뮬레이션 장치는 예를 들어, 대상 부분의 끝단 상의 임의의 제1 정점과 적어도 하나의 2차원 패턴에 대응하는 업 벡터를 기초로, 가상 실린더의 베이스 평면을 정의할 수 있다. 시뮬레이션 장치는 3차원 의상에서 임의의 제1 정점에 대응하는 제2 정점과 베이스 평면 간의 거리를 기초로 베이스 평면을 이동시킴으로써 가상 평면을 정의할 수 있다. 롤-업 과정에서는 원통 형태의 가상 평면의 좌표 성분, 다시 말해, 원통 좌표(cylindrical coordinate)의 성분 중 각도에 해당하는 세타(theta)가 상수에 해당하므로 모든 정점들은 가상 평면의 RZ 플레인 내에서만 이동할 수 있다. 시뮬레이션 장치가 가상 평면을 정의하는 방법은 아래의 도 9를 참조하며 보다 구체적으로 설명한다.
단계(820)에서, 시뮬레이션 장치는 단계(220)에서 결정한 대상 정점들을 단계(810)에서 정의한 가상 평면 내의 2차원 정점들로 변환할 수 있다. 시뮬레이션 장치는 롤-업의 영향을 받는 정점들의 집합 V 내의 모든 정점들을 각각의 베이스 평면에 대응하는 로컬 RZ 평면 내의 2차원 정점들로 변환할 수 있다. 시뮬레이션 장치가 대상 정점들을 가상 평면 내의 2차원 정점들로 변환하는 방법은 아래의 도 10을 참조하여 보다 구체적으로 설명한다.
단계(830)에서, 시뮬레이션 장치는 단계(820)에서 변환된 2차원 정점들을 3차원 의상에 대응하는 3차원의 월드 좌표로 복원함으로써 3차원 의상을 시뮬레이션할 수 있다. 시뮬레이션 장치는 예를 들어, 접힘 영역의 구간들 각각에 포함된 변환된 2차원 정점들의 위치 및 간격 중 적어도 하나를 조절하여 리메슁함으로써 변환된 2차원 정점들을 3차원 의상에 대응하는 3차원의 월드 좌표로 복원할 수 있다.
도 9는 일 실시예에 따른 가상 평면을 정의하는 방법을 설명하기 위한 도면이다. 도 9를 참조하면, 일 실시예에 따른 3차원 의상에서 사용자에 의해 선택된 롤-업의 대상이 되는 소매 부분(910), 소매 부분(910)에 대응하는 원통의 윗면(또는 아래면)으로 정의되는 가상 평면(930), 및 가상 평면(930)을 반영하는 원통 좌표계(950)를 설명하기 위한 도면(900)이 도시된다. 시뮬레이션 장치는 예를 들어, 사용자가 선택한 대상 부분인 소매 부분(910)의 끝단 상의 임의의 정점 P와 전술한 업 벡터 V를 기초로 가상 실린더의 베이스 평면을 정의할 수 있다. 예를 들어, 소매가 쭈글쭈글한 경우, 쭈글쭈글한 소매단에 대응하여 생성된 베이스 평면이 실린더의 바닥면이 아닐 수도 있다. 이때 정점 P는 2차원 패턴 상의 임의의 점이기 때문에, 3차원 의상에서 정점 PD에 대응하는 정점 P’의 위치가 평면보다 밑에 존재할 수도 있다. 따라서, 시뮬레이션 장치는 3차원 의상에서 임의의 제1 정점(예: 정점 P)에 대응하는 제2 정점(예: 정점 P’)과 베이스 평면 간의 거리를 기초로 베이스 평면을 이동시킴으로써 가상 평면(930)을 정의할 수 있다.
보다 구체적으로, 시뮬레이션 장치는 베이스 평면이 실제 3차원 의상에서 바닥면이 되도록 하기 위해 제2 정점(예: 정점 P’)과 베이스 평면 사이의 거리(예: 지향 거리(signed distance))를 구할 수 있다. 이때, 각 정점들의 위치가 베이스 평면보다 위에 있으면 지향 거리는 ‘+’가 되고, 정점들의 위치가 베이스 평면보다 아래에 있으면 지향 거리는 ‘-‘가 될 수 있다. 시뮬레이션 장치는 지향 거리 값이 최소인 점을 포함하도록 평면을 업 벡터 방향으로 위로 이동시킴, 다시 말해 지향 거리가 최소가 되는 지점까지 평면을 위로 쉬프트(shift) 시킴으로써 3차원 의상에서 원하는 바닥면에 대응하는 가상 평면을 구할 수 있다. 예를 들어, 지향 거리 값이 ‘+1’과 ‘-2’가 있는 경우, 이들 중 작은 숫자인 -2가 지향 거리가 최소인 값이 될 수 있다.
이와 같이, 시뮬레이션 장치는 대상 부분의 끝단 상의 임의의 정점 P와 법선 벡터로 생성한 임의의 베이스 평면으로부터 가장 아래에 있는 정점들로부터 지향 거리가 최소가 되는 지점을 포함하는 정점의 위치로 베이스 평면을 쉬프트시켜 가상 평면(930)을 정의할 수 있다.
시뮬레이션 장치는 3차원 의상 위의 모든 정점들을 가상 평면(930)을 기준으로 하는 원통 좌표(cylindrical coordinate)로 변환할 수 있다. 원통 좌표는 예를 들어, 가상 평면(930)에서의 위치 또는 좌표를 반영하는 원통 좌표계(950)와 같은 RZ 평면으로 표현될 수 있다.
이때, 롤-업은 비틀림을 수반하지 않으므로 원통 좌표계(950)에서 각도 성분(θ)은 상수(constant)가 될 수 있다. 이에 따라, 대상 정점들을 가상 평면(930) 내의 2차원 정점들로 변환하는 것은 원통 좌표계(950)와 같은 RZ 평면 내에서의 2D 변환 문제로 간략화될 수 있다.
다시 말해, 롤-업 과정에서는 가상 평면(930)의 좌표 성분, 다시 말해, 원통 좌표(cylindrical coordinate)의 성분 중 각도에 해당하는 세타(θ)가 상수에 해당하므로 롤-업의 영향을 받는 2차원 패턴 내의 모든 정점들은 가상 평면(930)의 RZ 플레인 내에서만 이동할 수 있다. 이때, RZ 플레인의 r은 원통 좌표의 중심으로부터 임의의 정점 v까지의 폭(width; w)에 해당할 수 있다. 또한, RZ 플레인의 z는 베이스 평면들의 법선 방향으로의 높이(height; h)에 해당할 수 있다.
시뮬레이션 장치는 전술한 과정을 통해 정의된 가상 평면(930)을 통해 보다 용이하게 롤-업이 표현된 3차원 의상을 시뮬레이션할 수 있다.
도 10은 일 실시예에 따른 대상 정점들을 가상 평면 내의 2차원 정점들로 변환하는 방법을 나타낸 흐름도이다. 도 10을 참조하면, 일 실시예에 따른 시뮬레이션 장치는 단계(1010) 내지 단계(1040)을 통해 대상 정점들을 가상 평면 내의 2차원 정점들로 변환할 수 있다.
단계(1010)에서, 시뮬레이션 장치는 단계(530)에서 결정된 접힘 영역의 구간들 각각에 대응하는 대상 정점들을 롤-업의 접힘 횟수에 대응하는 베이스 평면들 각각에 투영할 수 있다. 예를 들어, 롤-업의 접힘 횟수가 3인 경우, 시뮬레이션 장치는 접힘 영역의 구간들 각각에 대응하는 대상 정점들을 3개의 베이스 평면들 각각에 투영할 수 있다. 다시 말해, 시뮬레이션 장치는 구간 2(730)에 대응하는 대상 정점들은 제1 베이스 평면에 투영하고, 구간 4(750)에 대응하는 대상 정점들은 제2 베이스 평면에 투영하고, 구간 6(770)에 대응하는 대상 정점들은 제3 베이스 평면에 투영할 수 있다. 이 때, 3개의 베이스 평면들 각각은 원통 형태이며, 베이스 평면들 각각에 대응하는 로컬 RZ 평면이 존재할 수 있다. 시뮬레이션 장치는 롤-업의 영향을 받는 정점들의 집합 V 내의 모든 정점들을 각각의 베이스 평면에 대응하는 로컬 RZ 평면 내의 2차원 정점들로 변환할 수 있다.
단계(1020)에서, 시뮬레이션 장치는 단계(1010)에서 베이스 평면들 각각에 투영된 대상 정점들을 포함하는 바운딩 박스의 중심점을 베이스 평면들 각각의 중심점으로 결정할 수 있다. 대상 정점들을 포함하는 바운딩 박스의 중심점은 원통의 중심점에 해당할 수 있다.
단계(1030)에서, 시뮬레이션 장치는 단계(1020)에서 결정된 베이스 평면들 각각의 중심점에서 안쪽의 수평 방향으로 발사한 광선(ray)과 롤-업의 접힘 영역의 접힘 횟수에 대응하는 기준 구간과의 충돌점을 산출할 수 있다. 이 때, 베이스 평면들 각각의 중심점에서 수평 방향으로 발사한 광선(ray)은 3차원 의상에서 롤-업된 부분의 메쉬의 다각형에서 마주보는 의상의 안쪽 부분, 다시 말해 접혀지지 않은 부분에 해당하는 메쉬의 다각형을 향해 쏜 광선일 수 있다.
단계(1040)에서, 시뮬레이션 장치는 단계(1030)에서 산출한 충돌점에서 접힘 영역의 구간들 각각에 대응하는 버퍼 영역의 폭 만큼 이격된 위치로 대상 정점들을 이동시킴으로써 대상 정점들을 가상 평면 내의 2차원 정점들로 변환할 수 있다. 이 때, 충돌점에서 접힘 영역의 구간들 각각에 대응하는 버퍼 영역의 폭 만큼 이격된 위치로 대상 정점들을 이동시키는 것은 롤-업에 의해 접히는 부분이 접혀지지 않는 부분에 비해 바깥쪽에 위치하도록 함으로써 롤-업에 의해 접히는 부분의 패턴과 접혀지지 않는 부분의 패턴이 겹쳐지지 않도록 하기 위함이다.
도 11은 일 실시예에 따른 가상 평면 내로 변환된 2차원 정점들을 리메슁한 결과를 나타낸 도면이다. 도 11을 참조하면, 일 실시예에 따른 리메슁을 통해 메쉬의 해상도(resolution)가 변경된 2차원 패턴을 나타낸 도면(1100)이 도시된다.
시뮬레이션 장치는 롤-업의 대상이 되는 대상 부분(예: 소매)에 대응하는 2차원 패턴에 적어도 하나의 접는 선(1110, 1130)이 반영되도록 2차원 패턴의 정점들 중 롤-업의 영향을 받는 대상 정점들의 위치 및 입자 간격 중 적어도 하나를 이동시켜 리메슁(re-meshing)할 수 있다.
적어도 하나의 접는 선(1110, 1130)을 2차원 패턴의 메쉬에 추가하기 위해, 시뮬레이션 장치는 대상 정점들, 다시 말해 메쉬의 다각형들의 일 면이 적어도 하나의 접는 선(1110, 1130)에 맞춰 배치되도록 대상 정점들의 위치를 이동시킬 수 있다. 또한, 시뮬레이션 장치는 대상 정점들에 대응하는 메쉬의 해상도, 다시 말해, 대상 정점들의 입자 간격을 작게 변경할 수 있다. 시뮬레이션 장치는 적어도 하나의 접는 선(1110, 1130)에 인접한 버퍼 영역 및/또는 버퍼 영역에 인접한 위치의 대상 정점들의 입자 간격을 조밀하게 변경할 수 있다. 이와 같이, 대상 정점들의 입자 간격이 조밀하게 변경된 메쉬를 '조밀한 메쉬(fine mesh)'라고 부를 수 있다.
시뮬레이션 장치는 접힘 영역의 구간들 각각에 포함된 2차원 정점들의 위치 및 간격 중 적어도 하나를 조절하여 리메슁 함으로써 변환된 2차원 정점들을 3차원 의상에 대응하는 3차원의 월드 좌표로 복원할 수 있다. 여기서, 접힘 영역의 구간들 각각에 포함된 2차원 정점들은 가상 평면 내의 2차원 정점들로 변환된 정점들에 해당할 수 있다.
시뮬레이션 장치는 적어도 하나의 접는 선(1110, 1130)이 실제로 2차원 패턴의 메쉬에 반영되도록 함으로써 메쉬 해상도(mesh resolution)가 충분하지 않아 접히는 부분이 울퉁불퉁 해지는 문제를 해결할 수 있다. 또한, 시뮬레이션 장치는 2차원 패턴에서 롤-업이 수행되지 않는 부분, 다시 말해 접혀지지 않는 기준 구간에 대하여는 조밀한 메쉬 대신에 리메슁 전에 성긴 메쉬(coarse mesh)를 이용하여 시뮬레이션을 수행함으로써 연산 복잡도를 낮출 수 있다.
도 12는 일 실시예에 따른 사용자 인터페이스를 통해 롤-업의 시뮬레이션이 수행되는 과정을 나타낸 도면이다. 도 12를 참조하면, 일 실시예에 따른 3차원 의상을 구성하는 2차원 패턴들 중에서 사용자가 롤-업의 대상이 되는 대상 부분(예: 바지단)의 외곽선을 선택한 화면(1210) 및 사용자가 바지단의 외곽선을 선택한 후 수행한 우클릭을 통해 롤-업 기능을 활성화한 경우에 팝-업 메뉴가 표시되는 화면들(1230, 1250), 및 팝-업 메뉴에 의해 설정된 값에 의해 롤-업이 시뮬레이션 된 결과를 나타낸 화면(1270)을 포함하는 도면(1200)이 도시된다.
사용자가 화면(1210)과 같이 롤-업을 수행하고자 하는 의상의 부분(예: '바지단' 부분)(1215)을 선택한 후, 우클릭을 수행한 경우, 화면(1230)과 같이 롤-업 기능을 포함하는 팝-업 메뉴(1235)가 화면에 표시될 수 있다.
사용자가 팝-업 메뉴(1235)에 포함된 롤-업 기능을 선택하는 경우, 화면(1250)과 같이 롤-업의 접힘 간격 및 롤-업의 접힘 횟수를 입력받을 사용자 인터페이스 화면(1255)이 표시될 수 있다.
시뮬레이션 장치는 사용자 인터페이스 화면(1255)에서 입력된 롤-업의 접힘 간격 및 롤-업의 접힘 횟수에 따라 화면(1270)과 같이 자동으로 바지단에 롤-업(1275)을 시뮬레이션한 결과를 표시할 수 있다.
실시예에 따라서, 시뮬레이션 장치는 화면(1235)에서 롤-업 기능이 선택됨에 따라 화면(1255)와 같은 사용자의 별도의 입력이 없이도, 미리 설정된 롤-업의 접힘 간격 및/또는 롤-업의 접힘 횟수에 따라 3차원 의상에서 선택된 부분에 자동적으로 롤-업을 표현할 수도 있다.
도 13은 일 실시예에 따른 롤-업을 시뮬레이션하는 방법을 나타낸 흐름도이다. 도 13을 참조하면, 일 실시예에 따른 시뮬레이션 장치는 단계(1310) 내지 단계(1360)을 통해 롤-업이 표현된 3차원 의상을 시뮬레이션할 수 있다.
단계(1310)에서, 시뮬레이션 장치는 2차원 패턴에서 롤-업의 대상이 되는 대상 부분이 선택됨에 따라, 사용자 인터페이스를 통해 입력된 롤-업의 접힘 횟수 및 롤-업의 접힘 간격을 수신한다.
단계(1320)에서, 시뮬레이션 장치는 단계(1310)에서 사용자에 의해 선택된 대상 부분에 대응하는 3차원 의상의 베이스 라인을 결정한다.
단계(1330)에서, 시뮬레이션 장치는 단계(1320)에서 결정한 베이스 라인으로부터의 롤-업의 접힘 간격 및 롤-업의 접힘 횟수에 기초하여, 적어도 하나의 2차원 패턴에서 롤-업의 접힘 영역의 구간들을 분류한다. 시뮬레이션 장치는 예를 들어, 접힘 횟수(n)에 대응하여, 접힘 영역의 구간들을 (롤-업의 접힘 횟수(n) x 2) +1개의 영역들로 분류할 수 있다. 시뮬레이션 장치는 대상 정점들에게 분류된 영역들에 대응하는 인덱스를 부여할 수 있다.
시뮬레이션 장치는 적어도 하나의 2차원 패턴에 접힘 횟수에 대응하는 적어도 하나의 접는 선을 설정할 수 있다. 시뮬레이션 장치는 적어도 하나의 접는 선에 인접한 적어도 일측에 버퍼 영역을 설정할 수 있다. 시뮬레이션 장치는 접힘 간격에 버퍼 영역을 반영하여 높이 및 너비가 확장된 영역을 접힘 영역의 구간들로 결정할 수 있다.
단계(1340)에서, 시뮬레이션 장치는 단계(1330)에서 분류한 접힘 영역의 구간들 각각에 포함된 정점들을 대상 정점들로 추출한다.
단계(1350)에서, 시뮬레이션 장치는 롤-업이 구현되는 가상 평면을 정의한다.
단계(1360)에서, 시뮬레이션 장치는 단계(1340)에서 추출한 대상 정점들을 단계(1350)에서 정의한 가상 평면 내의 2차원 정점들로 변환함으로써 롤-업이 표현된 3차원 의상을 시뮬레이션한다.
도 14는 일 실시예에 따른 롤-업을 시뮬레이션하는 장치의 블록도이다. 도 14를 참조하면, 일 실시예에 따른 시뮬레이션 장치(1400)는 통신 인터페이스(1410), 프로세서(1430), 디스플레이(1450), 및 메모리(1470)를 포함할 수 있다. 통신 인터페이스(1410), 프로세서(1430), 디스플레이(1450), 및 메모리(1470)는 통신 버스(1405)를 통해 서로 통신할 수 있다.
통신 인터페이스(1410)는 디스플레이(1450)에 표시된 2차원 패턴들 중에서 사용자에 의해 롤-업의 대상이 되는 대상 부분이 선택됨에 따라, 사용자 인터페이스를 통해 입력된 롤-업의 접힘 횟수 및 롤-업의 접힘 간격을 수신한다.
프로세서(1430)는 대상 부분의 대응하는 3차원 의상의 베이스 라인을 결정한다. 프로세서(1430)는 베이스 라인에 기초하여, 대상 부분에 대응하는 적어도 하나의 2차원 패턴의 정점들 중 롤-업의 영향을 받는 대상 정점들을 결정한다. 프로세서(1430)는 대상 정점들을, 롤-업이 구현되는 가상 평면 내의 2차원 정점들로 변환함으로써 롤-업이 표현된 3차원 의상을 시뮬레이션한다.
디스플레이(1450)는 3차원 의상에 대응하는 2차원 패턴들을 표시할 수 있다. 또한, 디스플레이(1450)는 3차원 의상을 표시할 수 있다.
메모리(1470)는 통신 인터페이스(1410)를 통해 수신한 롤-업의 접힘 횟수 및 롤-업의 접힘 간격을 저장할 수 있다. 또한, 메모리(1470)는 프로세서(1430)가 결정한 대상 정점들 및/또는 프로세서(1430)가 시뮬레이션한 롤-업이 표현된 3차원 의상을 저장할 수 있다. 메모리(1470)는 상술한 프로세서(1430)의 처리 과정에서 생성되는 다양한 정보들을 저장할 수 있다. 이 밖에도, 메모리(1470)는 각종 데이터와 프로그램 등을 저장할 수 있다. 메모리(1470)는 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다. 메모리(1470)는 하드 디스크 등과 같은 대용량 저장 매체를 구비하여 각종 데이터를 저장할 수 있다.
또한, 프로세서(1430)는 도 1 내지 도 13을 통해 전술한 적어도 하나의 방법 또는 적어도 하나의 방법에 대응되는 알고리즘을 수행할 수 있다. 프로세서(1430)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다. 프로세서(1430)는 예를 들어, CPU(Central Processing Unit), GPU(Graphics Processing Unit), 또는 NPU(Neural network Processing Unit)으로 구성될 수 있다. 예를 들어, 하드웨어로 구현된 시뮬레이션 장치(1400)는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.
프로세서(1430)는 프로그램을 실행하고, 시뮬레이션 장치(1400)를 제어할 수 있다. 프로세서(1430)에 의하여 실행되는 프로그램 코드는 메모리(1470)에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.
Claims (15)
- 3차원 의상에 대응하는 2차원 패턴들 중에서 사용자에 의해 롤-업(roll-up)의 대상으로 선택된 대상 부분에 대응하는 상기 3차원 의상의 베이스 라인(Base line)을 결정하는 단계;상기 베이스 라인에 기초하여, 상기 대상 부분에 대응하는 적어도 하나의 2차원 패턴의 정점들 중 상기 롤-업의 영향을 받는 대상 정점들을 결정하는 단계; 및상기 대상 정점들을 상기 롤-업이 구현되는 가상 평면 내의 2차원 정점들로 변환(transform)함으로써 상기 롤-업이 표현된 상기 3차원 의상을 시뮬레이션하는 단계를 포함하는, 롤-업을 시뮬레이션하는 방법.
- 제1항에 있어서,상기 베이스 라인을 결정하는 단계는상기 2차원 패턴들 중 상기 사용자에 의해 선택된 상기 대상 부분에 대응하는 적어도 하나의 2차원 패턴의 끝단에서 중간점을 결정하는 단계;상기 중간점으로부터 상기 적어도 하나의 2차원 패턴의 내부로의 수직 방향에 위치하는 인접점을 결정하는 단계; 및상기 중간점에서 상기 인접점 방향으로의 업 벡터(up-vector)를 설정하는 단계를 포함하는, 롤-업을 시뮬레이션하는 방법.
- 제1항에 있어서,상기 대상 정점들을 결정하는 단계는상기 베이스 라인으로부터의 롤-업의 접힘 간격 및 롤-업의 접힘 횟수에 기초하여, 상기 적어도 하나의 2차원 패턴에서 롤-업의 접힘 영역의 구간들 각각으로 분류하는 단계; 및상기 접힘 영역의 구간들 각각에 포함된 정점들을 상기 대상 정점들로 추출하는 단계를 포함하는, 롤-업을 시뮬레이션하는 방법.
- 제3항에 있어서,상기 접힘 영역의 구간들을 분류하는 단계는상기 베이스 라인으로부터의 상기 접힘 간격 및 상기 접힘 횟수에 따라, 상기 롤-업의 접힘 영역의 구간들 중 상기 접힘 횟수에 대응하는 기준 구간을 결정하는 단계를 포함하고,상기 대상 정점들로 추출하는 단계는상기 기준 구간의 아래에 위치하는 정점들을 상기 접힘 영역의 구간들 각각에 대응하는 상기 대상 정점들로 추출하는 단계를 포함하는, 롤-업을 시뮬레이션하는 방법.
- 제3항에 있어서,상기 접힘 영역의 구간들을 분류하는 단계는상기 베이스 라인으로부터의 상기 접힘 간격 및 상기 접힘 횟수에 따라, 상기 대상 정점들에게 상기 접힘 영역의 구간들에 대응하는 인덱스를 부여하는 단계를 포함하는, 롤-업을 시뮬레이션하는 방법.
- 제3항에 있어서,상기 접힘 영역의 구간들을 분류하는 단계는상기 접힘 영역의 구간들을 기설정된 식에 따라 분류하는 단계를 포함하는, 롤-업을 시뮬레이션하는 방법.
- 제4항에 있어서,상기 접힘 영역의 구간들을 분류하는 단계는상기 적어도 하나의 2차원 패턴에 상기 접힘 횟수에 대응하는 적어도 하나의 접는 선(fold line) 및 버퍼 영역을 설정하는 단계; 및상기 접힘 간격에 상기 버퍼 영역을 반영하여 상기 접힘 영역의 구간들로 결정하는 단계를 포함하는, 롤-업을 시뮬레이션하는 방법.
- 제7항에 있어서,상기 적어도 하나의 접는 선을 설정하는 단계는상기 적어도 하나의 2차원 패턴의 메쉬에 상기 대상 정점들의 위치 및 입자 간격 중 적어도 하나를 이동시켜 리메슁(re-meshing)하는 단계를 포함하는, 롤-업을 시뮬레이션하는 방법.
- 제7항에 있어서,상기 버퍼 영역은상기 접힘 영역의 구간들의 개수가 증가함에 따라 증가하는 것을 특징으로 하는, 롤-업을 시뮬레이션하는 방법.
- 제7항에 있어서,상기 3차원 의상을 시뮬레이션하는 단계는상기 접힘 영역의 구간들 각각에 포함된 상기 대상 정점들을 상기 가상 평면 내의 2차원 정점들로 변환하는 단계를 포함하는, 롤-업을 시뮬레이션하는 방법.
- 제7항에 있어서,상기 3차원 의상을 시뮬레이션하는 단계는상기 가상 평면을 정의하는 단계;상기 대상 정점들을 상기 가상 평면 내의 2차원 정점들로 변환하는 단계; 및상기 변환된 2차원 정점들을 상기 3차원 의상에 대응하는 3차원의 월드 좌표로 복원함으로써 상기 3차원 의상을 시뮬레이션하는 단계를 포함하는, 롤-업을 시뮬레이션하는 방법.
- 제11항에 있어서,상기 가상 평면을 정의하는 단계는상기 대상 부분의 끝단 상의 임의의 제1 정점과 상기 적어도 하나의 2차원 패턴에 대응하는 업 벡터를 기초로, 가상 실린더의 베이스 평면을 정의하는 단계; 및상기 3차원 의상에서 상기 임의의 제1 정점에 대응하는 제2 정점과 상기 베이스 평면 간의 거리를 기초로 상기 베이스 평면을 이동시킴으로써 상기 가상 평면을 정의하는 단계를 포함하는, 롤-업을 시뮬레이션하는 방법.
- 제11항에 있어서,상기 대상 정점들을 상기 가상 평면 내의 2차원 정점들로 변환하는 단계는상기 대상 정점들을 베이스 평면들 각각에 투영하는 단계; 및상기 베이스 평면들 각각에 투영된 상기 대상 정점들을 포함하는 바운딩 박스의 중심점을 기초로, 상기 대상 정점들을 이동시킴으로써 상기 대상 정점들을 상기 가상 평면 내의 2차원 정점들로 변환하는 단계를 포함하는, 롤-업을 시뮬레이션하는 방법.
- 제11항에 있어서,상기 3차원 의상을 시뮬레이션하는 단계는상기 변환된 2차원 정점들의 위치 및 간격 중 적어도 하나를 조절하여 리메슁함으로써 상기 변환된 2차원 정점들을 상기 3차원 의상에 대응하는 3차원의 월드 좌표로 복원하는 단계를 포함하는, 롤-업을 시뮬레이션하는 방법.
- 3차원 의상에 대응하는 2차원 패턴들을 표시하는 디스플레이;상기 2차원 패턴들 중에서 사용자에 의해 롤-업의 대상이 되는 대상 부분이 선택됨에 따라, 사용자 인터페이스를 통해 입력된 롤-업의 접힘 횟수 및 롤-업의 접힘 간격을 수신하는 통신 인터페이스; 및상기 대상 부분에 대응하는 상기 3차원 의상의 베이스 라인을 결정하고, 상기 베이스 라인에 기초하여, 상기 대상 부분에 대응하는 적어도 하나의 2차원 패턴의 정점들 중 상기 롤-업의 영향을 받는 대상 정점들을 결정하며, 상기 대상 정점들을, 상기 롤-업이 구현되는 가상 평면 내의 2차원 정점들로 변환함으로써 상기 롤-업이 표현된 상기 3차원 의상을 시뮬레이션하는 프로세서를 포함하는, 롤-업을 시뮬레이션하는 장치.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20220155197 | 2022-11-18 | ||
KR10-2022-0155197 | 2022-11-18 | ||
KR1020230150894A KR20240073762A (ko) | 2022-11-18 | 2023-11-03 | 롤-업을 시뮬레이션하는 방법 및 장치 |
KR10-2023-0150894 | 2023-11-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024106844A1 true WO2024106844A1 (ko) | 2024-05-23 |
Family
ID=91085125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2023/017879 WO2024106844A1 (ko) | 2022-11-18 | 2023-11-08 | 롤-업을 시뮬레이션하는 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2024106844A1 (ko) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005011027A (ja) * | 2003-06-18 | 2005-01-13 | Sangaku Renkei Kiko Kyushu:Kk | 衣服シミュレーション装置、衣服シミュレーションプログラムおよび衣服シミュレーション方法 |
WO2013123306A1 (en) * | 2012-02-16 | 2013-08-22 | Brown University | System and method for simulating realistic clothing |
CN104915983A (zh) * | 2015-05-27 | 2015-09-16 | 北京航空航天大学 | 一种衣物褶皱基线提取方法 |
KR20210021929A (ko) * | 2019-08-19 | 2021-03-02 | (주)클로버추얼패션 | 의상 시뮬레이션 방법 및 장치 |
KR20220039428A (ko) * | 2020-09-22 | 2022-03-29 | (주)클로버추얼패션 | 부분 시뮬레이션 방법 및 장치 |
-
2023
- 2023-11-08 WO PCT/KR2023/017879 patent/WO2024106844A1/ko unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005011027A (ja) * | 2003-06-18 | 2005-01-13 | Sangaku Renkei Kiko Kyushu:Kk | 衣服シミュレーション装置、衣服シミュレーションプログラムおよび衣服シミュレーション方法 |
WO2013123306A1 (en) * | 2012-02-16 | 2013-08-22 | Brown University | System and method for simulating realistic clothing |
CN104915983A (zh) * | 2015-05-27 | 2015-09-16 | 北京航空航天大学 | 一种衣物褶皱基线提取方法 |
KR20210021929A (ko) * | 2019-08-19 | 2021-03-02 | (주)클로버추얼패션 | 의상 시뮬레이션 방법 및 장치 |
KR20220039428A (ko) * | 2020-09-22 | 2022-03-29 | (주)클로버추얼패션 | 부분 시뮬레이션 방법 및 장치 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7370527B2 (ja) | 衣服の3次元モデルデータを生成するための方法およびコンピュータプログラム | |
WO2022103080A1 (en) | Method and apparatus for online fitting | |
Igarashi et al. | Clothing manipulation | |
JP6227563B2 (ja) | ユーザインタフェース装置及び表示オブジェクト操作方法 | |
WO2020180084A1 (ko) | 타겟 이미지의 채색 완성 방법, 장치 및 컴퓨터 프로그램 | |
WO2022050810A1 (en) | Generating training data for estimating material property parameter of fabric and estimating material property parameter of fabric | |
WO2015119325A1 (ko) | 지형 렌더링 방법 | |
WO2023282614A1 (ko) | 텍스처 영상 생성 방법 및 장치 | |
WO2024106844A1 (ko) | 롤-업을 시뮬레이션하는 방법 및 장치 | |
WO2016006786A1 (en) | Rendering system and rendering method thereof | |
US12102152B2 (en) | Designing garment using style line | |
Zhong et al. | A physically based method for triangulated surface flattening | |
WO2022065830A1 (en) | Method and apparatus for partial simulation | |
WO2018164287A1 (ko) | 증강현실 제공 방법, 장치 및 컴퓨터 프로그램 | |
WO2022211182A1 (ko) | 포인트 클라우드를 이용한 무인이동체의 4차원 경로 표출 방법 | |
Yang et al. | Three-dimensional garment design and animation: A new design tool for the garment industry | |
WO2024039121A1 (ko) | 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법 및 장치 | |
WO2018182066A1 (ko) | 이미지에 동적 효과를 적용하는 방법 및 장치 | |
WO2022211561A1 (ko) | 의상 시뮬레이션 방법 및 장치 | |
WO2022220344A1 (ko) | 3차원 스케치를 위한 인터페이싱 방법 및 장치 | |
WO2022196929A1 (ko) | 이미지에서 삭제할 객체를 추천하는 방법, 컴퓨터 장치, 및 컴퓨터 프로그램 | |
KR20240073762A (ko) | 롤-업을 시뮬레이션하는 방법 및 장치 | |
WO2016182357A1 (ko) | 트리맵 시각화 방법 및 그 방법을 이용하는 장치 | |
WO2023214811A1 (ko) | 치수 파라미터들에 기초한 패턴 생성 방법 및 장치 | |
WO2023229348A1 (ko) | 텍스쳐 이미지 시뮬레이션 방법 및 그 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23891911 Country of ref document: EP Kind code of ref document: A1 |