Method and device for generating mark in 3D simulation

By generating marks in 3D simulation, the problem of transmitting design data in the clothing manufacturing industry is solved, and the accurate display of marks on 3D objects is achieved, which improves user operability and communication convenience.

CN119768843APending Publication Date: 2025-04-04CLO VIRTUAL FASHION INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380061656.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-08-22
Filing Date
2023-08-22
Publication Date
2025-04-04

AI Technical Summary

Technical Problem

In the clothing manufacturing industry, it is difficult for the existing technology to effectively transmit design-related clothing data, which makes it a long time to deliver physical samples offline, while online photos and other information cannot be accurately transmitted.

Method used

By generating marks in 3D simulation, depth information of pixel units is generated based on viewpoint information of observing 3D objects, weighted calculations are performed to generate a reference plane, a mark surface covering the 3D objects is generated based on the reference plane, and a mark is generated on the mark surface according to user input.

Benefits of technology

It realizes accurate display of marks on 3D objects, improves user operability and convenience, allows users to easily communicate design data, and marks are displayed in the user's intuitive corresponding position.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119768843A_ABST
    Figure CN119768843A_ABST
Patent Text Reader

Abstract

A method of generating a mark on a 3D object in a 3D simulation includes the steps of: generating first depth information of a pixel unit corresponding to the 3D object based on viewpoint information observing the 3D object; weighting the first depth information to generate a reference plane based on a predetermined statistical value; generating a marking curved surface covering the 3D object based on the reference plane; and generating a mark on the mark curved surface based on the user input.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The following embodiments relate to methods and apparatus for generating markers in 3D simulations. Background Art

[0002] Currently, in the clothing manufacturing industry, design-related clothing data is transmitted through hand-drawing or direct delivery of physical samples (such as fabrics, accessories, etc.). Offline delivery of physical samples takes a long time, while online transmission of photos cannot accurately transmit information.

[0003] With the development of the industry in recent years, offline data has been continuously digitized. In line with this industry development trend, the clothing industry also needs to digitize design data.

[0004] When providing digital design data, it is critical to enable users to intuitively understand and operate the data on the user interface. Therefore, the industry needs a user interface that improves user operability and convenience. It also needs a user interface that allows users to easily communicate design data.

[0005] The above background technology is mastered or learned by the inventor in the process of developing the present invention, and should not be understood as necessarily being the general known technology disclosed before applying for the present invention. Summary of the invention

[0006] Solutions to the problem

[0007] According to an embodiment, a marker generation method includes the following steps: generating first depth information of pixel units corresponding to a 3D object based on viewpoint information of observing the 3D object; weighting the first depth information to generate a reference plane based on a predetermined statistical value; generating a marker surface covering the 3D object based on the reference plane; and generating a marker on the marker surface based on user input.

[0008] The first depth information of the pixel unit is information determined based on the distance between the viewpoint included in the viewpoint information of each pixel and the 3D object.

[0009] The step of generating the first depth information of the pixel unit includes the step of generating the first depth information, wherein the first depth information includes a depth value of a pixel unit in a first view space generated by a view transform in a first depth texture, and the first view space takes a viewpoint included in the viewpoint information as an origin.

[0010] The step of generating the reference plane includes the following steps: weighting the first depth information of the pixel unit to calculate an average value; and generating the reference plane based on the average value.

[0011] The step of generating the reference plane comprises the following steps: in the image obtained based on the viewpoint information, calculating the average value by assigning gradually decreasing weights from the central area to the edge area.

[0012] The step of generating the marked surface comprises the following steps: generating the marked surface based on the first depth information and based on pixels closer to the viewpoint than the reference plane.

[0013] The step of generating the marking surface comprises the following steps: generating a second depth texture by using a projection matrix redefined based on the reference plane.

[0014] The step of generating the marked surface includes the steps of generating second depth information, wherein the second depth information includes a depth value of a pixel unit in a second view space generated by view transformation in a second depth texture; and generating the marked surface based on the second depth information.

[0015] The second depth information includes a depth value determined based on the reference plane and a viewpoint.

[0016] The step of generating the marking curved surface includes the step of smoothing the marking curved surface.

[0017] The step of smoothing the marked curved surface includes the step of amplifying the second depth information of the pixel unit at a certain ratio.

[0018] The step of smoothing the marked surface includes the step of performing Gaussian Blur processing on the marked surface.

[0019] The step of smoothing the marked curved surface includes the step of performing Gaussian blurring on a result of amplifying the second depth information in pixel units at a certain ratio.

[0020] The marker generating method further comprises the step of changing at least one of a position of a marker or a marker identifier based on a user input.

[0021] The marker generating method further includes the step of displaying the generated marker based on the changed viewpoint and allowing a user input for the generated marker when the generated marker is blocked by the 3D object due to a change in viewpoint.

[0022] The marker generating method further includes the step of displaying an annotation on the generated marker.

[0023] According to one embodiment, a simulation device for 3D simulation includes: a user interface; a memory; and a processor, wherein the processor performs the following steps: generating first depth information of pixel units corresponding to a 3D object based on viewpoint information of observing the 3D object; weighting the first depth information to generate a reference plane based on a predetermined statistical value; generating a marked surface covering the 3D object based on the reference plane; and generating a mark on the marked surface based on user input.

[0024] Effects of the Invention

[0025] On the one hand, users can display the markers exactly where they expect.

[0026] On the one hand, users can fine-tune the display of the marker at the desired position of the 3D object.

[0027] On the one hand, multiple users can communicate smoothly through markers that are accurately displayed in 3D objects.

[0028] On the one hand, the marker may be prevented from being located inside the 3D object by amplifying the second depth information.

[0029] On the one hand, the depth change can be gently adjusted through Gaussian blur processing of the second depth information, and the mark can be displayed at a position that intuitively corresponds to the user. BRIEF DESCRIPTION OF THE DRAWINGS

[0030] Figure 1 is a flow chart illustrating a method for generating a tag according to an embodiment.

[0031] Figure 2 is a diagram illustrating a process of generating a marking surface according to an embodiment.

[0032] Figure 3 is a diagram illustrating a method for weighting first depth information according to an embodiment.

[0033] Figure 4 FIG. 1 is a diagram illustrating a reference plane according to an embodiment.

[0034] Figure 5 is a diagram illustrating contour lines according to an embodiment.

[0035] Figure 6 FIG. 1 is a diagram illustrating an enlarged marking surface generated according to an embodiment.

[0036] Figure 7 is a diagram illustrating candidate locations where a marker may be generated according to an embodiment.

[0037] Figure 8 FIG. 1 is a diagram illustrating a user interface for displaying a mark according to an embodiment.

[0038] Fig. 9 FIG. 1 is a diagram illustrating a user interface for displaying a mark when a viewpoint is changed according to an embodiment.

[0039] Fig.10 is a block diagram illustrating a simulation device according to various embodiments. DETAILED DESCRIPTION

[0040] The description of the specific structure or function of the embodiment is only for example. The embodiment can be implemented in different forms, and the actual implementation is not limited to the specific embodiment disclosed.

[0041] The terms "first" or "second" etc. may be used to describe different components, but are only used to distinguish one component from other components. For example, the first component may be named as the second component, and similarly, the second component may also be named as the first component.

[0042] When it is described that one component is “connected” to another component, it may be directly connected or in contact with the other component, or there may be other components between them. On the other hand, when it is described that one component is “directly connected” or “directly in contact with” another component, it should be understood that there is no other component between them. Expressions describing the relationship between components, such as “between” and “directly between” or “directly adjacent to”, should also be interpreted in the same way.

[0043] In the absence of special instructions in the content, a single expression includes multiple meanings. In this specification, the terms "including" or "having" are used to express the existence of features, numbers, steps, operations, components, accessories or combinations thereof recorded in the specification, and do not exclude the possibility of the existence or additional addition of at least one other feature, number, step, operation, component, accessory or combination thereof.

[0044] In the absence of other definitions, all terms used herein, including technical or scientific terms, have the common meanings understood by those of ordinary skill in the art. Commonly used terms as defined in dictionaries should be understood as having the meanings in the relevant technical content and should not be interpreted as idealized or overly formalized meanings if they are not clearly defined in this specification.

[0045] In the following, the embodiments are described in detail with reference to the accompanying drawings. In the process of describing the embodiments with reference to the accompanying drawings, the same components are given the same reference numerals and repeated description is omitted.

[0046] Figure 1 is a flow chart illustrating a method for generating a tag according to an embodiment. Figure 1A method for generating a mark on a 3D object in a 3D simulation is described. A 3D object (hereinafter referred to as a 3D object) may be a 3D object displayed in a 3D simulation. For example, the 3D object may include a clothing model (e.g., an avatar, a character), an object, a clothing model wearing a 3D clothing, etc.

[0047] The processor 1030 according to an embodiment may display 3D clothing corresponding to the 3D object (eg, clothing model) for which the fitting simulation has been completed. At this time, the 3D clothing may be a virtual clothing of a 3D virtual character or a virtual clothing of a 3D avatar.

[0048] The geometric information of a 3D object (e.g., a 3D clothing model) may correspond to the skeleton of the 3D clothing model, i.e., information constituting the structure and / or shape of the 3D clothing model. For example, the geometric information of the 3D clothing model may be distinguished according to a plurality of clothing patterns constituting the 3D clothing model or body parts of an avatar corresponding to the plurality of clothing patterns. The geometric information of the 3D clothing model may include one or more files corresponding to a plurality of clothing patterns or body parts of an avatar.

[0049] The material information of 3D clothing includes the color of the 3D clothing, the texture of the fabric, the reflective effect of the fabric, the fabric pattern, the position and size of the fabric pattern, the type of accessories attached to the 3D clothing, the layout position and size of the accessories, etc., but the implementation method is not limited thereto.

[0050] According to an embodiment, the processor 1030 can generate a mark on a 3D object. The user can display the mark on the 3D object and input information. The user can discuss with other users about a specific part of the 3D object through the mark. Therefore, it is very important to display the mark at an accurate position on the 3D object. The mark can be a display means for displaying a specific position on the user interface. For example, the mark can be a means for displaying a specific position on the 3D object. The mark can be displayed on a coordinate of the 3D object. The mark can also be displayed on the background instead of the 3D object. The mark has many forms and is not limited to the present disclosure. However, when the mark is displayed based on the pixel coordinates corresponding to the 3D object, the displayed mark may be inaccurate. Inaccurate displayed marks may cause poor communication between users. Therefore, the processor 1030 can generate a mark on the mark surface based on user input after generating a mark surface covering the 3D object. When the mark is generated on the mark surface, the mark can be accurately displayed at the line of sight position expected by the user.

[0051] The tag generation process according to an embodiment may be performed in a server or a terminal. When the tag generation process is performed in the server, the server may receive viewpoint information and user input from the terminal and generate a tag. When the tag generation process is performed in the terminal, the terminal may generate a tag.

[0052] The server can make clothing, or perform various clothing fitting simulations to predetermine the shape of the made clothing, and provide a three-dimensional object corresponding to the simulation results to the terminal. The server can be linked with applications installed on other servers and / or terminals to use user interfaces (UIs), functions, operations, or services. The server can correspond to a server that provides a result image of a 3D fitting simulation, but the implementation is not limited to this. The server can be a single server computer or similar system, or multiple servers in at least one server bank or other arrangement. The server can be located in a single facility or a "cloud" of servers distributed in many different geographical locations.

[0053] The terminal can provide the 3D simulation result received from the server to the user through the viewer provided by the application program and / or the network platform installed on the corresponding device. In addition, the terminal can receive the change items about the 3D object and send them to the server.

[0054] The terminal may include a display, a memory, a processor, and a communication interface. The terminal may include a personal computer (Personal Computer), a netbook, a laptop computer, a personal digital appliance (PDA, Personal Digital Appliance), a smart phone, a wearable device (Wearable device) and various devices that perform similar functions.

[0055] According to an embodiment, the server and / or the terminal may include a processor. The processor 1030 (e.g. Fig.10 The processor 1030 in the example may be the processor 1030 of the server or the processor 1030 of the terminal, but the present disclosure is not limited thereto.

[0056] In step 110 according to an embodiment, the processor 1030 may generate depth information of pixel units corresponding to the 3D object based on viewpoint information. The processor 1030 according to an embodiment may generate first depth information of pixel units corresponding to the 3D object based on viewpoint information for observing the 3D object. The viewpoint information may include information related to the viewpoint from which the user observes the 3D object. The viewpoint information may include the viewpoint from which the 3D object is observed using a viewer. The depth information of pixel units may include the distance between the viewpoint and the 3D object. For example, the depth information may include the distance between the position of the virtual camera and the 3D object. For example, the smaller the depth value included in the depth information, the higher the height of the pixel corresponding to the depth value. The processor 1030 may generate a 3D coordinate system in a 2D coordinate system using the depth information of pixel units. The first depth information may be information determined based on the distance between the viewpoint and the 3D object included in the viewpoint information of each pixel. The processor 1030 may determine the depth information of each pixel in a 3D space with the viewpoint included in the viewpoint information as the origin. Therefore, the depth information determined in a three-dimensional space with the viewpoint as the origin may be the first depth information.

[0057] Will refer to Figure 2 The generation process of the first depth information is described. According to an embodiment, the processor 1030 may generate a first depth texture 210. In an image including a 3D object, each pixel of the first depth texture may have a depth value. According to an embodiment, the processor 1030 may generate a first view space 220 in the first depth texture by a view transformation 211 based on viewpoint information. The view space may be a 3D space with a viewpoint included in the viewpoint information as the origin. The view space may be a three-dimensional space with the viewpoint as the origin and the line of sight as the z-axis. The view transformation may be performed using a view matrix. The processor 1030 may convert the depth texture, which is a three-dimensional space containing depth information, into the view space through a view transformation. Therefore, the first depth information may be depth information in the first view space. Therefore, the processor 1030 may need viewpoint information to generate the view space.

[0058] In step 120 according to an embodiment, the processor 1030 may weight the first depth information to generate a reference plane based on a predetermined statistical value (eg, Figure 4 The weighted depth information may be the first depth information. The predetermined statistical value may be a value determined and stored after repeated executions in order to set the weight required for generating the reference plane 430. For example, the user may periodically update the predetermined statistical value, and the predetermined statistical value may be replaced with a value obtained in more tests for generating the reference plane 430. The reference plane 430 may be a reference plane for generating the marked surface. The reference plane 430 may be a value obtained in calculating the projection matrix (e.g., Figure 2The processor 1030 may use the reference plane 430 to generate a marker surface only for the 3D objects existing on the reference plane 430, and generate a marker on the corresponding marker surface.

[0059] The following will refer to Figure 3 The processor 1030 according to an embodiment may assign weights to the first depth information of the pixel unit. Figure 3 As shown, there may be a center area 330 and an edge area 320. In a simulation program, the center area 330 may be important to the user. This is because the user will place the editing object in the center of the screen, so the importance of the center area 330 may be high. On the contrary, the edge area 320 may be an area of ​​relatively low importance.

[0060] According to an embodiment, the processor 1030 may calculate the average value by assigning gradually decreasing weights from the central area to the edge area in the image acquired based on the viewpoint information. For example, as the image approaches the central area in the image acquired based on the viewpoint information, the processor 1030 may assign a gradually increasing weight to the first depth information compared to the established standard. As the image moves away from the central area, the processor 1030 may assign a gradually decreasing weight to the first depth information compared to the established standard. Figure 3 For example, a high weight may be assigned to the first depth information of the pixels in the central area 330 , and a low weight may be assigned to the first depth information of the pixels in the edge area 320 .

[0061] In the 3D object 310, there may be high areas and low areas. Figure 3 Taking the three-dimensional object 310 shown as an example, region 320 may be a region with a high altitude. The pixels included in region 320 may have a relatively low depth value. For example, region 330 may be a region with a relatively low altitude compared to region 320. Taking a kettle as an example, based on the viewpoint, the spout of the kettle is located near the viewpoint, while the kettle body is located far away from the viewpoint. The probability that a pixel with a smaller depth value is outlier data is higher. The probability that outlier data exists in the center is lower, and the probability that outlier data exists in the edge area is higher. Therefore, the processor 1030 can effectively process outlier data by assigning high weights to the central area and assigning lower weights as it moves away from the central area.

[0062] According to an embodiment, the processor 1030 may calculate an average value by weighting the first depth information of the pixel unit. For example, the processor 1030 may use a Gaussian function when assigning weights. The processor 1030 may effectively remove outlier data (e.g., extreme depth values ​​of pixels included in the region of interest) by using a Gaussian function.

[0063] According to an embodiment, the processor 1030 may calculate an average value by assigning gradually decreasing weights from the central area to the edge area in an image obtained based on viewpoint information. As the image is approached to the central area, the processor 1030 assigns a gradually increasing weight to the first depth information, and as the image is moved away from the central area, the processor 1030 assigns a gradually decreasing weight to the first depth information, thereby calculating the average value. And the processor 1030 may generate a reference plane 430 based on the average value. For example, the average value may be an average value of the depth values. The processor 1030 may generate a reference plane 430 at a position that is a distance from the viewpoint average value. Thus, the processor 1030 may generate a reference plane 430 centered on an area that the user considers important in a simulation program.

[0064] According to an embodiment, the processor 1030 may project a 3D object existing on the reference plane 430 onto the reference plane 430. The depth value of the pixel of the 3D object existing on the reference plane 430 may be a small pixel that is smaller than the depth value of the reference plane 430. The pixel has first depth information. According to an embodiment, the processor 1030 may project a vector onto the reference plane 430 based on the first depth information, wherein the vector corresponds to a pixel closer to the viewpoint than the reference plane 430. The vector may be a three-dimensional vector composed of the two-dimensional position coordinates of the pixel in the image and the first depth information corresponding to the pixel. For example, the vector may be represented as (x-axis position, y-axis position, first depth information).

[0065] refer to Figure 4 The 3D objects existing on the reference plane 430 are illustrated. Figure 4 A viewpoint 410 and a reference plane 430 are shown. A 3D object 450 may be divided by the reference plane 430. Based on the reference plane 430, the 3D object 450 may be divided into a 3D object 451 “above” the reference plane 430 and a 3D object 452 “below” the reference plane 430. The depth value of the pixel of the 3D object 451 “above” the reference plane 430 may be smaller than the distance between the viewpoint 410 and the reference plane 430.

[0066] According to an embodiment, the processor 1030 may generate a projection matrix 235 based on the reference plane 430. The projection matrix 235 may be a matrix for converting 3D to 2D. Projection may be performed by the projection matrix 235. Projection may be performed by the following process. The processor 1030 may convert the 3D vertices to be projected into a space ranging from (-1, -1, 0) to (1, 1, 1). The processor 1030 may limit the value of the z-axis to a range of -1 to 1, thereby starting the two-dimensional transformation. The processor 1030 may guide the transformation of the x-axis value and the y-axis value according to a ratio by limiting the z-axis value to -1 to 1. Reference Figure 4 For illustration, the plane with z=-1 can be defined as the near plane 410, and the plane with z=1 can be defined as the far plane 440. x and y are transformed into the range of -1 to 1, and the negative value range is set to facilitate fixing the origin as the vanishing point at the center.

[0067] According to one embodiment, the processor 1030 may use the reference plane 430 to generate the projection matrix 235. Figure 4 , the processor 1030 may generate the projection matrix 235 through the near plane 410 and the reference plane 430. For example, the processor 1030 may determine the plane with z=-1 as the near plane 410, and determine the plane with z=1 as the reference plane 430. For example, the reference plane 430 may correspond to the plane with z=0.

[0068] Reference Figure 2 According to an embodiment, the processor 1030 may generate (or extract) the second depth texture 240 using the projection matrix 235 .

[0069] For example, multiplying the 3D coordinates by the projection matrix 235 can normalize the 3D coordinate (x, y, z) values ​​to values ​​between -1 and 1. At this time, the minimum and maximum values ​​must be defined in advance before normalization. The processor 1030 can use the near plane 410 and the far plane 440 to newly define the projection matrix 235, multiply the projection matrix 235 by the 3D coordinates and project it to the normalized device coordinates (NDC), and then use the z value of the corresponding point normalized in the NDC coordinates as the color value to generate a second depth texture. Normalized device coordinates (NDC) can be the coordinate system that a 3D object has when it is converted to a 2D space through a projection transformation. The processor 1030 can use the projection matrix 235 redefined based on the reference matrix 430 to generate a second depth texture. For example, the processor 1030 may set the reference plane 430 as the far' plane and then extract the second depth texture using the projection matrix 235 redefined by the far' plane.

[0070] Reference Figure 2 According to an embodiment, the processor 1030 may generate the second view space 250 through the view transformation in the second depth texture. The processor 1030 may generate the second depth information, and the second depth information includes the depth value of the pixel unit of the second view space. The processor 1030 may generate the marker surface based on the second depth information. The second depth information may include a depth value determined based on the reference plane 430 and the viewpoint. The depth value may be a depth value newly set based on the reference plane 430. Since the second depth texture is generated for the 3D object on the reference plane 430, the marker surface may be generated in the form of covering the 3D object on the reference plane 430. Therefore, the marker surface is formed in the form of covering the 3D object on the reference plane 430 while naturally abutting the reference plane 430 as it moves away from the 3D object.

[0071] According to an embodiment, the processor 1030 may perform smoothing on the marked surface. Figure 6 , the marking surface generated based on the second depth information 610 of the pixel unit is Figure 6 When a mark is formed on the mark surface generated based on the second depth information 610, a mark is generated at a position different from the position desired by the user. Therefore, the processor 1030 can perform Gaussian blur processing to make the slope of the mark surface gentle rather than stepped. Figure 6As shown, the marker surface generated based on the second depth information 620 processed by Gaussian blur may have a gentle slope. However, the marker surface generated based on the second depth information 620 processed by Gaussian blur may not cover all 3D objects.

[0072] like Figure 6 As shown, a partial area 670 of the 3D object may exist on a marker surface generated based on the second depth information 620 that has been Gaussian blurred. At this time, the marker generated on the marker surface may be located inside the 3D object. Therefore, the processor 1030 may amplify the second depth information 610 at a certain ratio. For example, the processor 1030 may amplify the depth value included in the second depth information 610 by two times. In addition, the processor 1030 may apply Gaussian blur processing on the result of amplifying the second depth information 610 at a certain ratio, thereby generating the second depth information 620 that has been Gaussian blurred. The operation of amplifying the Gaussian blurred second depth information 620 at a certain ratio may be referred to as "magnification".

[0073] like Figure 6 As shown, the marked surface generated based on the enlarged second depth information 630 subjected to Gaussian blur processing may be a surface 631 that covers the area 670 that cannot be covered by the surface 621 .

[0074] According to an embodiment, the processor 1030 may enlarge the second depth information 610 in pixel units at a certain ratio. In the process of generating the reference plane 430 by assigning weights (for example, using a Gaussian function to generate the reference plane 430), the depth value of the pixel located at the boundary where the reference plane 430 intersects with the three-dimensional object may be different from the original depth value. Therefore, in order to restore the depth value, the processor 1030 may enlarge the second depth information 610 at a certain ratio. For example, when the depth value in the second depth information 610 is enlarged by two times, the depth value of the pixel located at the boundary may become similar to the original depth value.

[0075] According to an embodiment, the processor 1030 may generate second depth information of the second view space by texture sampling. The processor 1030 may use the second depth information to obtain the 3D coordinates of each pixel. Thus, the processor 1030 may generate Figure 7 A 3D object 710 and a plurality of points are shown.

[0076] According to an embodiment, the processor 1030 may generate a mark on the marking surface based on user input. Figure 6 , the processor 1030 can generate marks 641, 642, 643, 644 on the surface 631 based on the user input.

[0077] According to the marker generation method of an embodiment, whether the marker is input on the 3D clothing surface or outside the clothing, the processor 1030 can generate the marker according to a certain standard. And the generated marker can be a marker that the user intuitively corresponds to. Therefore, the marker generation method can be a method for generating a marker that the user intuitively corresponds to in a 3D simulation.

[0078] Figure 2 is a diagram illustrating a process of generating a marking surface according to an embodiment.

[0079] According to an embodiment, the processor 1030 may generate the first view space 220 through view transformation after generating the first depth texture 210, thereby generating a reference plane (eg, Figure 4 In addition, the processor 1030 may generate the reference plane 430 (230) by assigning a weight to the first depth information in the first view space. Figure 1 The process of generating the reference plane 430 has been described in detail, and the detailed description is omitted here.

[0080] According to an embodiment, the processor 1030 may generate second depth information of the second view space through the reference plane 430 and the projection matrix 235. Figure 1 The second depth information is described in detail in , and the detailed description is omitted here.

[0081] According to an embodiment, the processor 1030 may enlarge the second depth information 251. Enlarging may refer to enlarging the second depth information at a certain ratio. The processor 1030 may perform Gaussian blur processing 261 on the enlarged second depth information 260. The processor 1030 may generate a marking surface based on the Gaussian blurred second depth information 270.

[0082] Figure 3 is a diagram illustrating a method for weighting first depth information according to an embodiment.

[0083] Refer to above Figure 1 The method of assigning a weight to the first depth information has been described in detail, and the detailed description is omitted here.

[0084] Figure 4 is a diagram illustrating a reference plane 430 according to an embodiment.

[0085] Figure 1 The reference plane 430 is described in detail in , and the detailed description is omitted here.

[0086] Figure 5 is a diagram illustrating contour lines according to an embodiment. Figure 5 Contour lines 510 , 520 , 530 , 540 , 550 generated in one embodiment are shown.

[0087] According to an embodiment, the processor 1030 may generate contour lines based on the depth information. Contour lines are lines that gradually increase in height toward the inside. Figure 5 As shown, the result of generating contour lines based on depth information generates contour lines 510, 520, 530, 540, and 550. Contour line 510 has the lowest height, and contour line 550 has the highest height, and the heights can gradually increase from contour line 510 to contour line 550.

[0088] Reference Figure 6 , when the contour lines are generated based on the second depth information 610, the spacing between the contour lines may be narrow. The narrow spacing between the contour lines means that the slope is steep. The processor 1030 may perform Gaussian blur processing on the second depth information 610. When the contour lines are generated based on the second depth information 620 after Gaussian blur, the spacing between the contour lines is relatively wide. This is because after the Gaussian blur processing, the slope of the marked surface changes smoothly like the surface 621.

[0089] Figure 6 The figure is a diagram for explaining the marking surface generated based on the enlargement.

[0090] Refer to above Figure 1 Detailed description Figure 6 , detailed description is omitted here.

[0091] Figure 7 is a diagram illustrating candidate locations where a marker may be generated according to an embodiment.

[0092] According to an embodiment, the processor 1030 may generate the reference plane 720. Figure 7 As shown, a plurality of points may exist on the reference plane 720. Point 730 may be a point existing outside the 3D object 710. The processor 1030 may determine the position of the point outside the 3D object based on the point existing at the boundary between the reference plane 720 and the 3D object 710. If the positions of the points on the boundary are inconsistent, the processor 1030 may make the positions of the points on the boundary smoothly continuous through smoothing processing.

[0093] Figure 7The points shown may all be points existing on the marking surface. Since the marking surface is formed to cover the shape of the 3D object, even the points outside the 3D object will be like point 750, not directly located on the reference plane 720, but located on a structure that naturally expands the surface as the slope of the reference plane 720 of the 3D object is gentle. If there is no marking surface, point 750 may be located on the reference plane 720. When point 750 is located on the reference plane 720, the mark will be generated at a position that is contrary to the user's intuition. Point 740 may be a point existing on the 3D object. A point may or may not correspond to a pixel. A point is just a way of expressing the shape of a marking surface, and the present invention is not limited to this.

[0094] Figure 8 FIG. 1 is a diagram illustrating a user interface for displaying a mark according to an embodiment.

[0095] Figure 8 3D object 810, tags 811, 812, 813, 814, 815, 851, viewpoint rotation input 820, line input 821, viewpoint transformation input 830, automatic tagging 835, tag identifiers 840, 850, fabric images 841, 851, fabric names 842, 852, cancel / save input 860 and add / remove input 870 are shown.

[0096] The 3D object 810 may be an edited object in the 3D clothing simulation. The 3D object 810 may be a design item such as clothing, shoes, or a bag. An avatar or a character may be displayed on the screen together with the 3D object 810. At this time, a simulation result in which the design item is worn on the avatar or the character may be displayed on the screen. Based on user input, the avatar or the character may be displayed on the screen or omitted.

[0097] Markers 811 , 812 , 813 , 814 , 815 , 851 may be points on a marking surface covering the 3D object 810 .

[0098] The viewpoint rotation input 820 may be an input for rotating the viewpoint based on a user input. The user may observe the 3D object 810 from various angles using the viewpoint rotation input 820. The line input 821 may be an input for inputting a line into the 3D object 810. Through this function, the user may input a line into the 3D object 810, and the design of the 3D object 810 may be transformed through the line.

[0099] The viewpoint conversion input 830 may be an input for moving the viewpoint to a predetermined viewpoint. For example, the viewpoint may be predetermined as front, back, left, and right. When the user selects the back viewpoint, a screen for observing the 3D object 810 from the back may be displayed. If the user selects the left viewpoint, a screen for observing the 3D object 810 from the left may be displayed.

[0100] The automatic tag 835 may be an automatically generated tag. The processor 1030 may generate the automatic tag 835 and display it on the 3D object 810 without being affected by user input. For example, the automatic tag 835 may be tags 811, 812, 813, 814, 815. Tags 811, 812, 813, 814, 815 may be tags corresponding to the fabric 1.

[0101] The tag identifiers 840, 850 may be the same images as the tags displayed on the 3D object 810. The user may distinguish tags corresponding to different categories (eg, fabrics, materials, etc.) through the tag identifiers. The processor 1030 may change the tag identifiers based on user input.

[0102] The fabric images 841, 851 may include images of a portion of the fabric.

[0103] Fabric names 842 and 852 are names of fabrics and can be arbitrarily set by the user.

[0104] The cancel / save input 860 may be an input for canceling editing or saving the edited content.

[0105] The add / delete input 870 may be an input for adding or deleting edited content. In addition, the add / delete input 870 may be an input for adding / deleting a 3D object.

[0106] The user may select a specific location on the 3D object to generate a tag. For example, processor 1030 may display a tag corresponding to fabric 2 on 3D object 810 based on user input. The tag generated based on user input may be tag 851. The user-generated tag may have the same or different tag identifier as the automatically generated tag.

[0107] The processor 1030 according to an embodiment may display annotations on the generated mark. An annotation may be a way of user communication through a user interface. For example, an annotation may be expressed as text, a picture, a shape, a symbol, etc. A user may communicate design-related content with other users based on the mark. At this time, the user may communicate by displaying annotations within a certain distance based on the mark. Therefore, for user convenience, the processor 1030 may display annotations on the mark based on user input.

[0108] The processor 1030 according to an embodiment may edit the position of the marker based on the user input. Thus, the user may move the position of the marker displayed on the 3D object.

[0109] Fig. 9 FIG. 2 is a diagram illustrating a user interface for displaying a mark when a viewpoint is changed according to an embodiment.

[0110] Even when the marker is blocked by the 3D object due to a change in viewpoint, the processor 1030 according to an embodiment may display the marker. In addition, the processor 1030 may allow input for the marker blocked by the 3D object.

[0111] For example, when viewed from behind 900 Figure 8 When the 3D object 810 is displayed, a mark 911 may be displayed. The mark 911 may be Figure 8 When the viewpoint is changed to the back 900, the mark 811 may be blocked by the 3D object 810. However, the processor 1030 may display the mark 811 blocked by the 3D object 810 together with the mark 911 so that the user can see the mark 811. The processor 1030 may allow user input for the mark 911. Thus, the user can see the mark blocked by the 3D object 810 and select it.

[0112] In summary, when the generated mark 811 is blocked by the 3D object 810 due to the viewpoint change, the processor 1030 will display the mark 911 generated based on the changed viewpoint and allow the user to input the mark 911 .

[0113] For example, when observing from below 901 Figure 8 When the 3D object 810 is displayed, the marker 811 is blocked by the 3D object 810, but the marker 931 can be displayed.

[0114] For example, when viewed from the side 902 Figure 8 When the 3D object 810 is displayed, the mark 811 may be displayed as the mark 952 .

[0115] As described above, even if the viewpoint changes, the marker can maintain its position and be displayed on the screen. Even if the marker is obscured due to the change of viewpoint, it can still be displayed on the screen for the user to select.

[0116] Fig.10 1 is a block diagram illustrating simulation devices according to different embodiments. According to one embodiment, the simulation device 1000 may be a server. According to another embodiment, the simulation device 1000 may be a terminal (eg, a mobile device, a desktop, a notebook computer, a personal computer, etc.).

[0117] Reference Fig.10According to an embodiment, the simulation device 1000 may include a user interface 1010, a processor 1030, a display 1050, and a memory 1070. The user interface 1010, the processor 1030, the display 1050, and the memory 1070 may be connected to each other through a communication bus 1005.

[0118] The user interface 1010 receives user input for each of a plurality of physical property parameters. The user interface 1010 may receive user input regarding the physical property parameters through a keyboard, a stylus pen, a mouse click, and / or a touch input of a user's finger.

[0119] The processor 1030 generates first depth information of pixel units corresponding to the 3D object based on viewpoint information of observing the 3D object. The processor 1030 weights the first depth information to generate a reference plane based on a predetermined statistical value. The processor 1030 generates a marked surface covering the 3D object based on the reference plane. The processor 1030 generates a mark on the marked surface based on user input.

[0120] The display 1050 displays the 3D simulation result generated by the processor 1030. The simulation apparatus 1000 may output at least one mark on the display 1050.

[0121] The memory 1070 may store the generated 3D simulation results. In addition, the memory 1070 may store various information generated during the processing of the processor 1030. In addition, the memory 1070 may store various data and programs. The memory 1070 may include a volatile memory or a non-volatile memory. The memory 1070 has a large-capacity storage medium such as a hard disk, thereby storing various data.

[0122] In addition, the processor 1030 may execute the above reference Figures 1 to 9At least one method described, or an algorithm corresponding to at least one method above. The processor 1030 may be a data processing device embodied by hardware, wherein the hardware includes a circuit having a physical structure for performing a target operation (desired operations). For example, the target operation may include a code (code) or instructions (instructions) included in a program. For example, the processor 1030 may be configured as a central processing unit (CPU, Central Processing Unit), a graphics processing unit (GPU, Graphics Processing Unit) or a neural network processing unit (NPU, Neural network Processing Unit). For example, the simulation device 1000 implemented by hardware may include a microprocessor (microprocessor), a central processing unit (central processing unit), a processor core (processor core), a multi-core processor (multi-core processor), a multiprocessor (multiprocessor), an application-specific integrated circuit (Application-Specific Integrated Circuit, ASIC), and a field programmable gate array (Field Programmable Gate Array, FPGA).

[0123] The processor 1030 may execute a program and control the simulation apparatus 1000. Codes of the program executed by the processor 1030 may be stored in the memory 1070.

[0124] The method according to the embodiment is embodied in the form of a program command that can be executed by a variety of computer means and recorded in a computer-readable medium. The computer-readable medium can include program commands, data files, data structures, etc. in a single or combined form. The program instructions recorded in the medium can be instructions specially designed and constructed to implement the embodiment, or instructions that can be used based on known knowledge by ordinary technicians in the field of computer software. The computer-readable recording medium can include magnetic media such as hard disks, floppy disks, and tapes; optical media similar to CD-ROMs, DVDs, etc.; magneto-optical media similar to floptical disks, and hardware devices specially constructed for storing and executing program commands similar to read-only memories (ROMs), random access memories (RAMs), flash memories, etc. Examples of program instructions include not only machine language codes generated by compilers, but also high-level language codes that can be executed by computers by using interpreters, etc. To perform the operation of the embodiment, the hardware device can be configured to implement the operation in one or more software modules, and vice versa.

[0125] Software can include a computer program, code, instructions, or a combination of more than one of these, that causes a processing device to operate in a desired manner, or that, alone or collectively, commands a processing device. Software and / or data can be permanently or temporarily embody any type of device, component, physical device, virtual device, computer storage medium or device, or transmitted signal wave for interpretation by a processing device or for providing commands or data to a processing device. Software is distributed on computer systems connected by a network and can be stored or executed in a distributed manner. Software and data can be stored in one or more computer-readable storage media.

[0126] In summary, the embodiments are described through limited drawings, and a person skilled in the art can make various changes and modifications based on the description. For example, the described techniques are performed in a different order from the described method, and / or the described systems, structures, devices, circuits and other components are combined or combined in a different form from the described method, or replaced or substituted by other components or equivalents, and appropriate results can also be obtained.

[0127] Accordingly, other embodiments, other examples, and their equivalents are within the scope of the appended claims.

Claims

1. A method for generating a marker, relating to a method for generating a marker on a 3D object in a 3D simulation, characterized in that: The following steps are involved: generating first depth information of a pixel unit corresponding to the 3D object based on viewpoint information of observing the 3D object; weighting the first depth information to generate a reference plane based on a predetermined statistical value; generating a marking surface covering the 3D object based on the reference plane; and A mark is generated on the mark surface based on user input.

2. The tag generation method according to claim 1, characterized in that: The first depth information of the pixel unit is information determined based on the distance between the viewpoint included in the viewpoint information of each pixel and the 3D object.

3. The tag generation method according to claim 1, characterized in that: The step of generating the first depth information of the pixel unit comprises the following steps: First depth information is generated, the first depth information including a depth value of a pixel unit in a first view space generated by view transformation in a first depth texture, the first view space having a viewpoint included in the viewpoint information as an origin.

4. The tag generation method according to claim 1, characterized in that: The step of generating a reference plane comprises the following steps: weighting the first depth information of the pixel unit to calculate an average value; and The reference plane is generated based on the average value.

5. The tag generation method according to claim 1, characterized in that: The step of generating the reference plane comprises the following steps: In the image obtained based on the viewpoint information, an average value is calculated by assigning gradually decreasing weights from the center area to the edge area.

6. The tag generation method according to claim 1, characterized in that: The step of generating the marking surface comprises the following steps: Based on the first depth information, a marked surface is generated based on pixels closer to the viewpoint than the reference plane.

7. The tag generation method according to claim 1, characterized in that: The step of generating the marking surface comprises the following steps: A second depth texture is generated using a projection matrix redefined based on the reference plane.

8. The tag generation method according to claim 7, characterized in that: The step of generating the marking surface comprises the following steps: generating second depth information, the second depth information including a depth value of a pixel unit in a second view space generated by view transformation in the second depth texture; and A marked surface is generated based on the second depth information.

9. The tag generation method according to claim 8, characterized in that: The second depth information includes a depth value determined based on the reference plane and a viewpoint.

10. The tag generation method according to claim 1, characterized in that: The step of generating the marking surface comprises the following steps: The marked curved surface is smoothed.

11. The tag generation method according to claim 10, characterized in that: The step of smoothing the marked curved surface comprises the following steps: The second depth information in pixel units is magnified at a certain ratio.

12. The tag generation method according to claim 10, characterized in that: The step of smoothing the marked curved surface comprises the following steps: Gaussian blur processing is performed on the marked surface.

13. The tag generation method according to claim 10, characterized in that: The step of smoothing the marked curved surface comprises the following steps: A Gaussian blur process is performed on the result of amplifying the second depth information in pixel units at a certain ratio.

14. The tag generation method according to claim 1, characterized in that: The following steps are also included: At least one of a position of a marker or a marker identifier is changed based on user input.

15. The tag generation method according to claim 1, characterized in that: The following steps are also included: When the generated marker is blocked by the 3D object due to a change in viewpoint, the generated marker is displayed based on the changed viewpoint and a user input for the generated marker is allowed.

16. The tag generation method according to claim 1, characterized in that: The following steps are also included: Displays an annotation on the generated markup.

17. A computer program stored in a computer-readable recording medium, which is combined with hardware to execute the method of claim 1.

18. A simulation device for 3D simulation, characterized in that: include: User interface; Memory; and processor, The processor performs the following steps: generating first depth information of a pixel unit corresponding to the 3D object based on viewpoint information of observing the 3D object; weighting the first depth information to generate a reference plane based on a predetermined statistical value; generating a marking surface covering the 3D object based on the reference plane; and A mark is generated on the mark surface based on user input.