KR20220145203A - 시뮬레이션 방법 및 장치 - Google Patents

시뮬레이션 방법 및 장치 Download PDF

Info

Publication number
KR20220145203A
KR20220145203A KR1020210051974A KR20210051974A KR20220145203A KR 20220145203 A KR20220145203 A KR 20220145203A KR 1020210051974 A KR1020210051974 A KR 1020210051974A KR 20210051974 A KR20210051974 A KR 20210051974A KR 20220145203 A KR20220145203 A KR 20220145203A
Authority
KR
South Korea
Prior art keywords
vertices
model
intensity
garment
intensities
Prior art date
Application number
KR1020210051974A
Other languages
English (en)
Inventor
이용준
박인호
Original Assignee
(주)클로버추얼패션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)클로버추얼패션 filed Critical (주)클로버추얼패션
Priority to KR1020210051974A priority Critical patent/KR20220145203A/ko
Publication of KR20220145203A publication Critical patent/KR20220145203A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Architecture (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Geometry (AREA)
  • Processing Or Creating Images (AREA)

Abstract

일 실시예에 따른 시뮬레이션 방법 및 장치는 내부 도형 및 외부 도형을 포함하는 사용자 인터페이스를 이용하여 의상의 3차원 모델의 일부 영역에 대한 선택을 입력받고, 내부 도형에 대응하는 제1 영역의 제1 정점들을 제1 강도로 3차원 공간에 고정시키고, 제1 강도에 기초하여 내부 도형과 외부 도형 사이의 제2 영역의 제2 정점들에 대응하는 제2 강도들을 결정하고, 제2 정점들을 제2 강도들로 3차원 공간에 고정시키며, 제1 강도 및 제2 강도들을 적용하여 의상의 3차원 모델을 시뮬레이션한다.

Description

시뮬레이션 방법 및 장치{METHOD AND APPARATUS OF SIMULATION}
실시예들은 시뮬레이션 방법 및 장치에 관한 것이다.
의상(garment)은 사람이 착용한 경우에 3차원으로 보이지만, 실제로는 2차원의 패턴(pattern)에 따라 재단된 직물(fabric) 조각의 조합에 해당하므로 2차원에 가깝다. 의상의 재료가 되는 직물은 유연(flexible)하기 때문에 의상을 착용한 사람의 신체 모양이나 움직임에 따라 그 형태가 다양하게 변화될 수 있다.
예를 들어, 아바타에 셔츠, 가디건 및 재킷 등과 같이 여러 벌의 의상들을 다중 착장시키고자 하는 경우, 셔츠와 가디건, 또는 가디건과 재킷에서 충돌이 발생하거나, 또는 자켓 또는 셔츠의 일부에 주름 혹은 구김이 발생할 수 있다. 이와 같이 다양한 디테일을 표현하기 위해 의상의 일부를 변형하고자 하는 경우, 의상 일부에 주름과 같은 디테일 및/또는 충돌 처리를 수행할 수 있는 방법이 요구된다.
전술한 배경기술은 발명자가 본원의 개시 내용을 도출하는 과정에서 보유하거나 습득한 것으로서, 반드시 본 출원 전에 일반 공중에 공개된 공지기술이라고 할 수는 없다.
일 실시예에 따르면, 사용자 인터페이스를 통해 선택된 의상의 일부 영역을 고정시키거나 변형시킴으로써 보다 적은 연산량으로 의상에 사실적인 디테일을 표현할 수 있다.
일 실시예에 따르면, 의상에서 선택되는 일부 영역의 크기를 다양하게 조절하고, 일부 영역 내의 강도가 점진적으로 변경되도록 함으로써 사용자의 의도에 충실하고 보다 자연스럽게 의상의 일부에 대한 디테일 및/또는 변형을 표현할 수 있다.
일 실시예에 따르면, 시뮬레이션 방법은 내부 도형과 외부 도형을 포함하는 사용자 인터페이스를 이용하여 의상의 3차원 모델의 일부 영역에 대한 선택을 입력받는 동작; 상기 내부 도형에 대응하는 제1 영역의 제1 정점들을 제1 강도로 3차원 공간에 고정시키는 동작; 상기 제1 강도에 기초하여, 상기 내부 도형과 상기 외부 도형 사이의 제2 영역의 제2 정점들에 대응하는 제2 강도들을 결정하는 동작; 상기 제2 정점들을 상기 제2 강도들로 상기 3차원 공간에 고정시키는 동작; 및 상기 제1 강도 및 상기 제2 강도들을 적용하여 상기 의상의 3차원 모델을 시뮬레이션하는 동작을 포함한다.
상기 제1 정점들을 상기 제1 강도로 상기 3차원 공간에 고정시키는 동작은 상기 제1 정점들에 대응하여 상기 제1 강도를 갖는 가상의 스프링들을 생성하는 동작; 및 상기 제1 강도를 갖는 가상의 스프링들을 이용하여 상기 제1 정점들을 상기 3차원 공간 내 상기 제1 정점들의 현재 위치들에 고정시키는 동작을 포함할 수 있다.
상기 제1 강도를 갖는 가상의 스프링들 각각에 대응하여, 해당하는 스프링의 양단 중 제1단은 해당하는 제1 정점에 연결되고, 상기 양단 중 제2단은 상기 3차원 공간 내 상기 해당하는 제1 정점의 현재 위치에 고정될 수 있다.
상기 제2 강도를 결정하는 동작은 상기 제2 정점들의 위치가 상기 내부 도형에서 상기 외부 도형 방향으로 멀어질수록 점진적으로 상기 제1 강도보다 작은 값을 가지도록 상기 제2 강도들을 결정하는 동작을 포함할 수 있다.
상기 제1 강도는 상기 제2 강도들보다 클 수 있다.
상기 제2 정점들을 상기 제2 강도들로 상기 3차원 공간에 고정시키는 동작은 상기 제2 정점들에 대응하여 상기 제2 강도들을 갖는 가상의 스프링들을 생성하는 동작; 및 상기 제2 강도들을 갖는 가상의 스프링들 각각을 이용하여, 해당하는 제2 정점을 상기 3차원 공간 내 상기 해당하는 제2 정점의 현재 위치에 고정시키는 동작을 포함할 수 있다.
상기 의상의 3차원 모델을 시뮬레이션하는 동작은 상기 의상의 3차원 모델의 물성에 의한 외력, 상기 의상의 3차원 모델에 작용하는 중력, 및 상기 의상의 3차원 모델과 상기 의상의 3차원 모델이 착장되는 아바타의 스킨과의 충돌을 방지하는 반발력 중 적어도 하나에, 상기 제1 강도 및 상기 제2 강도들을 더 고려하여 상기 의상의 3차원 모델을 구성하는 메쉬의 다각형들의 정점들에 작용하는 힘을 산출하는 동작; 및 상기 정점들에 작용하는 힘을 기초로, 상기 정점들의 위치를 시뮬레이션하는 동작을 포함할 수 있다.
상기 정점들의 위치를 시뮬레이션하는 동작은 상기 정점들에 작용하는 힘에 의해 충돌이 발생하는지 여부를 결정하는 동작; 및 상기 충돌이 발생한다고 결정되면, 상기 충돌이 발생한 정점들에 상기 충돌을 제거하는 힘을 적용하는 충돌 처리를 수행하는 동작을 포함할 수 있다.
상기 시뮬레이션 방법은 상기 사용자 인터페이스를 통해 상기 일부 영역에 대한 선택이 반복적으로 입력됨에 따라, 상기 반복되는 입력의 횟수에 대응하여 상기 제1 강도와 상기 제2 강도들을 누적적으로 증가시키는 동작을 더 포함하고, 상기 의상의 3차원 모델을 시뮬레이션하는 동작은 상기 의상의 3차원 모델의 일부 영역에 상기 누적적으로 증가된 제1 강도와 제2 강도들을 적용하여 상기 의상의 3차원 모델을 시뮬레이션하는 동작을 포함할 수 있다.
상기 내부 도형의 크기와 상기 외부 도형의 크기는 조절할 수 있다.
상기 제1 강도는 변경할 수 있다.
상기 의상의 3차원 모델은 3차원 가상 캐릭터를 위한 가상 의상 및 3차원 가상 아바타를 위한 가상 의상 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 시뮬레이션 장치는 내부 도형과 외부 도형을 포함하고, 의상의 3차원 모델의 일부 영역에 대한 선택을 입력받는 사용자 인터페이스; 상기 내부 도형에 대응하는 제1 영역의 제1 정점들을 제1 강도로 3차원 공간에 고정시키고, 상기 제1 강도에 기초하여, 상기 내부 도형과 상기 외부 도형 사이의 제2 영역의 제2 정점들에 대응하는 제2 강도들을 결정하고, 상기 제2 정점들을 상기 제2 강도들로 상기 3차원 공간에 고정시키며, 상기 제1 강도 및 상기 제2 강도들을 적용하여 상기 의상의 3차원 모델을 시뮬레이션하는 프로세서; 및 상기 시뮬레이션한 상기 의상의 3차원 모델을 표시하는 디스플레이를 포함한다.
상기 프로세서는 상기 제1 정점들에 대응하여 상기 제1 강도를 갖는 가상의 스프링들을 생성하고, 상기 제1 강도를 갖는 가상의 스프링들을 이용하여 상기 제1 정점들을 상기 3차원 공간 내 상기 제1 정점들의 현재 위치들에 고정시킬 수 있다.
상기 제1 강도를 갖는 가상의 스프링들 각각에 대응하여, 해당하는 스프링의 양단 중 제1단은 해당하는 제1 정점에 연결되고, 상기 양단 중 제2단은 상기 3차원 공간 내 상기 해당하는 제1 정점의 현재 위치에 고정될 수 있다.
상기 프로세서는 상기 제2 정점들의 위치가 상기 내부 도형에서 상기 외부 도형 방향으로 멀어질수록 점진적으로 상기 제1 강도보다 작은 값을 가지도록 상기 제2 강도들을 결정할 수 있다.
상기 프로세서는 상기 제2 정점들에 대응하여 상기 제2 강도들을 갖는 가상의 스프링들을 생성하고, 상기 제2 강도들을 갖는 가상의 스프링들 각각을 이용하여, 해당하는 제2 정점을 상기 3차원 공간 내 상기 해당하는 제2 정점의 현재 위치에 고정시킬 수 있다.
상기 프로세서는 상기 의상의 3차원 모델의 물성에 의한 외력, 상기 의상의 3차원 모델에 작용하는 중력, 및 상기 의상의 3차원 모델과 상기 의상의 3차원 모델이 착장되는 아바타의 스킨과의 충돌을 방지하는 반발력 중 적어도 하나에, 상기 제1 강도 및 상기 제2 강도들을 더 고려하여 상기 의상의 3차원 모델을 구성하는 메쉬의 다각형들의 정점들에 작용하는 힘을 산출하고, 상기 정점들에 작용하는 힘을 기초로, 상기 정점들의 위치를 시뮬레이션할 수 있다.
상기 프로세서는 상기 사용자 인터페이스를 통해 상기 일부 영역에 대한 선택이 반복적으로 입력됨에 따라, 상기 반복되는 입력의 횟수에 대응하여 상기 제1 강도와 상기 제2 강도들을 누적적으로 증가시키고, 상기 의상의 3차원 모델의 일부 영역에 상기 누적적으로 증가된 제1 강도와 제2 강도들을 적용하여 상기 의상의 3차원 모델을 시뮬레이션할 수 있다.
일 측에 따르면, 사용자 인터페이스를 통해 선택된 의상의 일부 영역을 고정시키거나 변형시킴으로써 보다 적은 연산량으로 의상에 사실적인 디테일을 표현할 수 있다.
일 측에 따르면, 의상에서 선택되는 일부 영역의 크기를 다양하게 조절하고, 일부 영역 내의 강도가 점진적으로 변경되도록 함으로써 사용자의 의도에 충실하고 보다 자연스럽게 의상의 일부에 대한 디테일 및/또는 변형을 표현할 수 있다.
도 1은 일 실시예에 따른 시뮬레이션 방법을 나타낸 흐름도.
도 2는 일 실시예에 따라 의상의 3차원 모델의 일부 영역을 선택하는 사용자 인터페이스의 일 예시를 도시한 도면.
도 3은 일 실시예에 따라 제1 영역의 제1 정점들을 제1 강도로 3차원 공간에 고정시키는 방법을 설명하기 위한 도면.
도 4는 일 실시예에 따라 제2 영역의 제2 정점들에 대응하는 제2 강도들을 결정하는 방법을 설명하기 위한 도면.
도 5는 일 실시예에 따라 제2 영역의 제2 정점들을 제2 강도로 3차원 공간에 고정시키는 방법을 나타낸 흐름도.
도 6은 일 실시예에 따라 의상의 3차원 모델을 시뮬레이션하는 방법을 나타낸 흐름도.
도 7은 일 실시예에 따라 시뮬레이션 된 의상의 3차원 모델의 일 예시를 도시한 도면.
도 8은 일 실시예에 따른 시뮬레이션 장치의 블록도.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안 된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 동작, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 동작, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
또한, 실시 예의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
어느 하나의 실시 예에 포함된 구성요소와, 공통적인 기능을 포함하는 구성요소는, 다른 실시 예에서 동일한 명칭을 사용하여 설명하기로 한다. 반대되는 기재가 없는 이상, 어느 하나의 실시 예에 기재한 설명은 다른 실시 예에도 적용될 수 있으며, 중복되는 범위에서 구체적인 설명은 생략하기로 한다.
도 1은 일 실시예에 따른 시뮬레이션 방법을 나타낸 흐름도이다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.
도 1을 참조하면, 일 실시예에 따른 시뮬레이션 장치가 동작(110) 내지 동작(150)을 통해 의상의 3차원 모델을 시뮬레이션하는 과정이 도시된다.
동작(110)에서, 시뮬레이션 장치는 내부 도형과 외부 도형을 포함하는 사용자 인터페이스를 이용하여 의상의 3차원 모델의 일부 영역에 대한 선택을 입력받는다. 이때, 일부 영역에 대한 선택은 예를 들어, 마우스 클릭과 같은 사용자 동작을 통해 입력될 수 있다.
일 실시예에서 내부 도형에 대응하는 영역을 '제1 영역'이라 부르고, 내부 도형과 외부 도형 사이의 영역을 제2 영역이라 부를 수 있다. 내부 도형과 외부 도형의 크기는 예를 들어, 사용자의 설정 등에 의해 다양하게 조절될 수 있다.
일 실시예에 따른 의상의 3차원 모델은 예를 들어, 아래의 도 2에 도시된 것과 같이 복수의 삼각형들을 포함하는 메쉬로 구성될 수 있다. 일 실시예에서는 설명의 편의를 위하여 메쉬가 삼각형들로 구성되는 경우를 예를 들어 설명하지만, 반드시 이에 한정되는 것은 아니며, 실시예들에 따라 메쉬는 다양한 형태의 다각형들에 의해 모델링 될 수 있다.
일 실시예에서, 메쉬는 다양항 형태로 모델링될 수 있다. 일례로, 메쉬에 포함되는 다각형의 꼭지점, 다시 말해 다각형의 정점들(vertices)은 질량을 가지고 있는 점(point mass)이며, 다각형의 변들은 그 질량을 연결하는 탄성을 가지고 있는 스프링들로 표현될 수 있다. 이에 따라, 일 실시예에서 따른 의상의 3차원 모델은 예를 들어, 질량-스프링 모델(Mass-Spring Model)에 의해 모델링될 수 있다. 스프링들은 사용되는 천(fabric)의 물성에 따라, 예를 들어, 신축(stretch), 비틀림(shear), 및 굽힘(bending)에 대한 각 저항값(resist)을 가질 수 있다. 또는, 메쉬는 스트레인(strain) 모델로 모델링될 수 있다. 메쉬에 포함되는 다각형은 예를 들어, 삼각형으로 모델링되거나, 혹은 사각형 이상의 다각형으로 모델링될 수도 있다. 경우에 따라, 3차원 볼륨(volume)을 모델링해야 하는 경우, 메쉬는 3차원 다면체로 모델링될 수 있다. 의상의 3차원 모델은 예를 들어, 3차원 가상 캐릭터를 위한 가상 의상 및 3차원 가상 아바타를 위한 가상 의상 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 사용자 인터페이스는 예를 들어, 일정 두께를 가진 브러쉬(brush) 형태로 구성될 수 있으며 반드시 이에 한정되지는 않는다. 예를 들어, 사용자는 사용자 인터페이스를 통해 일부 영역에 대한 선택을 반복적으로 입력할 수도 있다. 아래에서 보다 구체적으로 설명하겠지만, 시뮬레이션 장치는 일부 영역에 대한 선택이 반복적으로 입력됨에 따라, 반복되는 입력의 횟수에 대응하여 제1 강도와 제2 강도들을 누적적으로 증가시킬 수 있다. 시뮬레이션 장치가 사용자 인터페이스를 이용하여 의상의 일부 영역에 대한 선택을 입력받는 방법은 아래의 도 2를 참조하여 보다 구체적으로 설명한다.
동작(120)에서, 시뮬레이션 장치는 내부 도형에 대응하는 제1 영역의 제1 정점들을 제1 강도로 3차원 공간에 고정시킨다. 시뮬레이션 장치는 예를 들어, 제1 정점들에 대응하여 제1 강도를 갖는 가상의 스프링들을 생성할 수 있다. 일 실시예에서 '강도'는 각 정점에 대응하는 가상의 스프링이 외력에 저항하는 강성(stiffness) 또는 가상의 스프링의 스프링 상수로 이해될 수 있다.
시뮬레이션 장치는 제1 강도를 갖는 가상의 스프링들을 이용하여 제1 정점들을 3차원 공간 내 제1 정점들의 현재 위치들에 고정시킬 수 있다. 제1 강도는 예를 들어, 미리 결정되거나, 또는 디폴트(default) 값으로 설정될 수 있다. 또한, 제1 강도는 변경 가능하며, 예를 들어, 사용자의 설정에 의해 다양한 값으로 변경될 수 있다. 시뮬레이션 장치가 제1 영역의 제1 정점들을 제1 강도로 3차원 공간에 고정시키는 방법은 아래의 도 3을 참조하여 보다 구체적으로 설명한다.
동작(130)에서, 시뮬레이션 장치는 제1 강도에 기초하여, 내부 도형과 외부 도형 사이의 제2 영역의 제2 정점들에 대응하는 제2 강도들을 결정한다. 제1 정점들의 강도가 모두 제1 강도로 동일하게 설정되는 것과 달리, 제2 정점들에 대응하는 제2 강도들은 제2 정점들의 위치에 따라 달리 결정될 수 있다. 시뮬레이션 장치는 예를 들어, 제2 정점들의 위치가 내부 도형에서 외부 도형 방향으로 멀어질수록 점진적으로 제1 강도보다 작은 값을 가지도록 제2 강도들을 결정할 수 있다. 시뮬레이션 장치가 제2 강도들을 결정하는 방법은 아래의 도 4를 참조하여 보다 구체적으로 설명한다.
동작(140)에서, 시뮬레이션 장치는 제2 정점들을 제2 강도들로 3차원 공간에 고정시킨다. 시뮬레이션 장치가 제2 정점들을 3차원 공간에 고정시키는 방법은 아래의 도 5를 참조하여 보다 구체적으로 설명한다.
동작(150)에서, 시뮬레이션 장치는 제1 강도 및 동작(130)에서 결정된 제2 강도들을 적용하여 의상의 3차원 모델을 시뮬레이션한다. 일 실시예에서 메쉬에 포함된 다각형(들)의 정점들은 예를 들어, 중력 등과 같은 외력(external force) 및 신축(stretch), 비틀림(shear), 및 굽힘(bending) 등과 같은 내력(internal force)에 의해 이동할 수 있다. 시뮬레이션 장치는 외력 및 내력을 계산하여 각 정점에 가해지는 힘을 구하면 각 정점의 변위 속도와 운동을 구할 수 있다. 의상의 움직임은 각 시간 동작에서 메쉬를 구성하는 다각형(들)의 정점들의 움직임을 통해 시뮬레이션 될 수 있다.
예를 들어, 다각형 메쉬로 구성된 의상이 3차원 아바타 위에 착장되면, 물리 법칙에 기반한 자연스러운 의상의 3차원 모델이 구현될 수 있다. 이때, 의상을 구성하는 메쉬에 포함된 다각형(들)의 정점들은 중력 등과 같은 외부적인 힘(external force)과 신축, 비틀림, 및 굽힘의 내부적인 힘(internal force)의 작용에 따라 움직일 수 있다. 시뮬레이션 장치는 외부적인 힘과 내부적인 힘을 계산하여 각 정점에 가해지는 힘을 구하면, 각 정점의 변위 및 움직임의 속도를 구할 수 있다. 그리고 각 시점(time step)에서의 메쉬의 다각형의 정점들의 움직임을 통하여 의상의 3차원 모델의 움직임을 시뮬레이션할 수 있다.
동작(150)에서, 시뮬레이션 장치는 전술한 의상의 3차원 모델의 물성에 의한 외력, 의상의 3차원 모델에 작용하는 중력, 및 의상의 3차원 모델과 의상의 3차원 모델이 착장되는 아바타의 스킨과의 충돌을 방지하는 반발력 중 적어도 하나에, 제1 강도 및 제2 강도들을 더 고려하여 의상의 3차원 모델을 구성하는 메쉬의 다각형들의 정점들에 작용하는 힘을 산출할 수 있다. 시뮬레이션 장치는 정점들에 작용하는 힘을 기초로, 정점들의 위치를 시뮬레이션할 수 있다.
예를 들어, 사용자 인터페이스를 통해 일부 영역에 대한 선택을 반복적으로 입력된 경우, 시뮬레이션 장치는 반복되는 입력의 횟수에 대응하여 제1 강도와 제2 강도들을 누적적으로 증가시킬 수 있다. 시뮬레이션 장치는 의상의 3차원 모델의 일부 영역에 누적적으로 증가된 제1 강도와 제2 강도들을 적용하여 의상의 3차원 모델을 시뮬레이션할 수 있다.
시뮬레이션 장치가 의상의 3차원 모델을 시뮬레이션하는 방법은 아래의 도 6을 참조하여 설명한다. 시뮬레이션 장치에 의해 시뮬레이션 된 의상의 3차원 모델은 아래의 도 7을 참조할 수 있다.
도 2는 일 실시예에 따라 의상의 3차원 모델의 일부 영역을 선택하는 사용자 인터페이스의 일 예시를 도시한 도면이다. 도 2를 참조하면, 의상의 3차원 모델(210) 및 내부 도형(232)과 외부 도형(235)을 포함하는 사용자 인터페이스(230)가 도시된다. 일 실시예에서는 설명의 편의를 위하여 의상의 3차원 모델(210)을 간략화 하여 표현하였으나 의상의 3차원 모델은 이외의 다양한 디자인으로 표현될 수 있다.
예를 들어, 사용자가 브러쉬 형태의 사용자 인터페이스(230)를 이용하여 정점(231)을 포인팅하거나, 또는 정점(231)을 포인팅한 상태에서 마우스를 드래그(drag)하여 의상의 3차원 모델(210)의 일부 영역을 선택했다고 하자.
사용자 인터페이스(230)를 통한 사용자 입력에 의해 일부 영역(예를 들어, 브러쉬 형태에 포함된 영역)이 선택되면, 시뮬레이션 장치는 현재 선택된 일부 영역(예를 들어, 내부 도형(232)에 대응하는 영역 및 내부 도형(232)과 외부 도형(235) 사이의 영역(예를 들어, 도넛 형상의 영역))을 시뮬레이션 할 수 있다. 시뮬레이션 장치는 의상의 3차원 모델(210) 내에서 사용자 인터페이스(230)에 의해 선택된 일부 영역을 제외한 나머지 영역의 기존 시뮬레이션 결과를 그대로 유지할 수 있다. 기존 시뮬레이션 결과는 사용자 인터페이스(230)를 통해 선택된 일부 영역에 대한 시뮬레이션이 수행되기 전까지 수행된 시뮬레이션 결과로, 예를 들어 재봉 상태나 착장 상태를 포함할 수 있다. 사용자 인터페이스(230)를 통해 선택된 일부 영역을 제외한 나머지 영역의 기존 시뮬레이션 결과는 일부 영역에 대해 제1 강도 및 제2 강도들을 적용하는 시뮬레이션 동작 중에 다시 시뮬레이션 되지 않을 수 있다.
일 실시예에 따르면, 내부 도형(232) 및/또는 외부 도형(235)의 속성은 사용자 인터페이스(230)의 옵션에 의해 다양하게 설정될 수 있다. 예를 들어, 내부 도형(232) 및/또는 외부 도형(235)의 형상이나 크기, 강도 등이 옵션에 의하여 설정될 수 있다.
의상의 3차원 모델(210)에서 일부 영역의 중심에 해당하는 정점(231)을 기준으로 브러쉬가 닿는 최외각 선에 의해 구획되는 외부 도형(235)에 대응하는 제2 영역이 설정될 수 있다. 또한, 외부 도형(235)의 안쪽으로 일정 거리에 마우스가 클릭된 정점(205)을 기준으로 일정 간격을 갖는 내부 도형(232)에 대응하는 제2 영역이 설정될 수 있다.
일 실시예에서 사용자 인터페이스(230)는 사용자 인터페이스(230)에 의해 구획 지어지는 영역들(예를 들어, 제1 영역 및 제2 영역)에 포함된 정점들의 강도, 다시 말해, 정점(들)에 대응하는 가상의 스프링(들)의 강도를 설정해 주는 툴(tool)에 해당할 수 있다. 이때, 내부 도형(232)은 제1 영역에 해당하는 제1 정점들에 추가적인 외력(예를 들어, 제1 강도)을 제공하기 위한 것일 수 있다. 정점(231)을 포함하는 내부 도형(232)에 대응하는 제1 영역의 정점들은 3차원 공간 내 현재 위치들에 고정되어 변함없이 그대로 유지될 수 있다.
또한, 외부 도형(235)은 제2 영역에 해당하는 제2정점들의 위치에 대응하여 점진적으로 변화되는 추가적인 외력(예를 들어, 제2 강도들)을 제공하기 위한 것일 수 있다. 외부 도형(235)에 대응하는 제2 영역의 제2 정점들은 3차원 공간 내에서 해당하는 위치에 고정될 수 있다. 이때, 제2 정점들의 해당하는 위치는 제2 정점들에 대응하는 제2 강도들에 의해 점진적으로 변경되어 주름 등의 디테일이 표현될 수 있다.
일 실시예에서 사용자 인터페이스(230)를 통해 선택된 일부 영역에 대응하는 정점들 각각에는 태그(tag)가 정의될 수 있다. 이때, 정점들 각각에 대해 정의된 태그는 해당 정점들 각각에 적용되는 강도를 포함할 수 있다. 예를 들어, 제1 정점(들)의 제1 강도가 0.7 이라면, 제1 정점들의 태그는 제1 강도(0.7)을 포함할 수 있다. 또한, 세 개의 제2 정점들의 제2 강도들이 각각 0.2, 0.3, 0.4라면, 제2 정점들의 태그는 각각 제2 강도(0.2), 제2 강도(0.3), 재2 강도(0.4)를 포함할 수 있다.
실시예에 따라서, 사용자는 사용자 인터페이스(230)를 이용하여 정점(231)을 포인팅한 후, 사용자 인터페이스(230)를 이동시켜 의상의 3차원 모델(210)의 일부 영역을 선택할 수도 있다. 또는 사용자는 사용자 인터페이스(230)를 이용하여 선택한 일부 영역을 반복적으로 다시 선택할 수도 있다. 일부 영역이 반복적으로 선택됨에 따라 시뮬레이션 장치는 반복되는 입력의 횟수에 대응하여 누적적으로 증가된 제1 강도와 제2 강도들을 적용하여 의상의 3차원 모델을 시뮬레이션할 수 있다.
도 3은 일 실시예에 따라 제1 영역의 제1 정점들을 제1 강도로 3차원 공간에 고정시키는 방법을 설명하기 위한 도면이다. 도 3을 참조하면, 사용자에 의해 선택된 일부 영역 중 내부 도형(232)에 대응하는 영역의 메쉬의 다각형(301)의 제1 정점들(310, 320, 330)이 도시된다.
예를 들어, 시뮬레이션 장치는 의상의 3차원 모델의 메쉬에서, 내부 도형(232)에 대응하는 제1 영역에 포함된 다각형(들)(301)을 검색할 수 있다. 시뮬레이션 장치는 제1 영역에 포함된 다각형(들)(301) 각각의 제1 정점들(310, 320, 330)에 대응하여 제1 강도를 갖는 가상의 스프링들(340)을 생성할 수 있다. 시뮬레이션 장치는 제1 강도를 갖는 가상의 스프링들(340)을 이용하여 제1 정점들(310, 320, 330)을 3차원 공간 내 제1 정점들의 현재 위치들에 고정시킬 수 있다.
이때, 제1 강도를 갖는 가상의 스프링들(340) 각각에 대응하여, 해당하는 스프링의 양단 중 제1단은 해당하는 제1 정점에 연결되고, 스프링의 양단 중 제2단은 3차원 공간 내 해당하는 제1 정점의 현재 위치에 고정될 수 있다.
도 4는 일 실시예에 따라 제2 영역의 제2 정점들에 대응하는 제2 강도들을 결정하는 방법을 설명하기 위한 도면이다. 도 4를 참조하면, 일 실시예에 따른 내부 도형에 대응하는 제1 영역(410), 내부 도형과 외부 도형 사이의 제2 영역(420), 및 외부 도형 바깥의 제3 영역(430)이 도시된다.
일 실시예에서 사용자에 의해 선택된 일부 영역을 고정하거나, 기타 주름 또는 디테일 등을 시뮬레이션하는 경우, 일부 영역이 독립적인 형태로 시뮬레이션 되므로 바람이나 중력 같은 외부 영향에 의해 영역이 회전하거나 날아가는 등 외부 힘의 영향을 받을 수 있다. 일부 영역은 의상의 3차원 모델을 구성하는 패턴 조각의 일부에 해당하므로 선택된 일부 영역 바깥의 제3 영역(430)에 대한 모양을 유지하며 제1 영역(410) 및 제2 영역(420)에 대한 시뮬레이션이 수행될 수 있다. 이때, 시뮬레이션 장치는 제1 영역(410)과 제2 영역(420)을 포함하는 일부 영역과 일부 영역을 제외한 나머지의 제3 영역(430) 간의 경계 부분이 자연스럽게 시뮬레이션 되도록 강도를 결정할 수 있다.
보다 구체적으로, 시뮬레이션 장치는 제1 영역(410)의 제1 정점들은 제1 강도(S1)로 3차원 공간에 고정시킨 후, 제1 강도(S1)를 기초로, 제2 영역(420)의 제2 정점들에 대응하는 제2 강도들(S2)을 결정할 수 있다.
시뮬레이션 장치는 제2 정점들의 위치가 내부 도형(232)에서 외부 도형(235) 방향으로 멀어질수록 점진적으로 제1 강도(S1)보다 작은 값을 가지도록 제2 정점들에 대응하는 제2 강도들(S2)을 결정할 수 있다. 다시 말해, 시뮬레이션 장치는 제2 정점들의 위치가 내부 도형(232)에 인접할수록 제2 정점들의 위치에 대응하여 제2 강도들(S2)을 점진적으로 증가시킬 수 있다. 시뮬레이션 장치는 제2 정점들의 위치가 내부 도형(232)에서 멀어질수록 제2 정점들의 위치에 대응하여 제2 강도들(S2)을 점진적으로 감소시킬 수 있다. 시뮬레이션 장치는 제2 정점들의 위치에 따라 제2 강도들(S2)을 선형적으로 증가 또는 감소시킬 수 있다.
이때, 제1 강도(S1)는 제2 강도들보다 클 수 있다. 또한, 제2 강도들을 제3 영역(430)에 대응하는 제3 강도(S3)보다 클 수 있다. 이때, 제3 강도(S3)는 의상의 물성에 의한 강도에 해당하며, 예를 들어, 0일 수 있다. 일 실시예에서 의상의 물성에 의한 강도에 비해 사용자 인터페이스를 통해 선택된 일부 영역에 작용하는 강도가 충분히 크므로 제3 강도(S3)를 0이라 할 수 있다.
실시예에 따라서, 일부 영역이 반복적으로 선택된 경우, 시뮬레이션 장치는 반복되는 입력의 횟수에 대응하여 누적적으로 제1 강도와 제2 강도들을 증가시킬 수 있다.
예를 들어, 제1 강도가 500이고, 제2 강도들이 0보다 크고 500보다 작다고 하자. 사용자 인터페이스를 통해 일부 영역이 3번 반복적으로 선택된 경우, 제1 강도는 500 x 3 = 1500가 되고, 제2 강도들은 0보다 크고 1500보다 작은 값들이 될 수 있다.
도 5는 일 실시예에 따라 제2 영역의 제2 정점들을 제2 강도로 3차원 공간에 고정시키는 방법을 나타낸 흐름도이다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.
도 5를 참조하면, 시뮬레이션 장치가 동작(510) 내지 동작(520)을 통해 제2 정점을 3차원 공간 내에 고정시키는 과정이 도시된다.
동작(510)에서, 시뮬레이션 장치는 제2 정점들에 대응하여 제2 강도들을 갖는 가상의 스프링들을 생성할 수 있다. 시뮬레이션 장치는 의상의 3차원 모델의 메쉬에서 제2 영역에 대응하는 다각형(들)을 검색할 수 있다. 시뮬레이션 장치는 검색한 다각형들의 제2 정점들에 대응하여 제2 강도들을 갖는 가상의 스프링들을 생성할 수 있다. 이때, 가상의 스프링들 각각에 대응하는 제2 강도는 해당하는 가상의 스프링이 생성된 제2 정점들의 위치에 따라 달라질 수 있다. 제2 강도들은 제2 정점들의 위치가 내부 도형에서 멀어질수록 점진적으로 작아질 수 있다.
동작(520)에서, 시뮬레이션 장치는 제2 강도들을 갖는 가상의 스프링들 각각을 이용하여, 해당하는 제2 정점을 3차원 공간 내 해당하는 제2 정점의 현재 위치에 고정시킬 수 있다.
도 6은 일 실시예에 따라 의상의 3차원 모델을 시뮬레이션하는 방법을 나타낸 흐름도이다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.
도 6을 참조하면, 일 실시예에 따른 시뮬레이션 장치가 동작(610) 내지 동작(630)을 통해 의상의 3차원 모델을 시뮬레이션하는 과정이 도시된다.
동작(610)에서, 시뮬레이션 장치는 의상의 3차원 모델의 물성에 의한 외력, 의상의 3차원 모델에 작용하는 중력, 및 의상의 3차원 모델과 의상의 3차원 모델이 착장되는 아바타의 스킨과의 충돌을 방지하는 반발력 중 적어도 하나에, 제1 강도 및 제2 강도들을 더 고려하여 의상의 3차원 모델을 구성하는 메쉬의 다각형들의 정점들에 작용하는 힘(force)을 산출할 수 있다.
동작(620)에서, 시뮬레이션 장치는 동작(610)에서 산출한, 정점들에 작용하는 힘에 의해 충돌이 발생하는지 여부를 결정할 수 있다. 시뮬레이션 장치는 예를 들어, 동작(610)에서 산출한 힘에 의해 발생하는 속도로 인해 이동된 정점들의 위치가 중첩되거나, 또는 교차되는지 여부에 의해 충돌이 발생하는지 여부를 결정할 수 있다.
동작(630)에서, 시뮬레이션 장치는 동작(620)에서 충돌이 발생한다고 결정되면, 충돌이 발생한 정점들에 충돌을 제거하는 힘을 적용하는 충돌 처리를 수행할 수 있다.
예를 들어, 아바타에 착장된 의상이 셔츠, 가디건, 및 재킷과 같이 여러 겹인 경우, 겉옷과 속옷 간에 충돌(또는 교차)이 일어날 수 있다. 겉옷과 속옷 간에 충돌이 일어난 것으로 판단한 경우, 시뮬레이션 장치는 3차원 공간에서 아바타의 바깥 방향인지 안쪽 방향인지를 판단할 수 있는 디스턴스 필드를 계산할 수 있다.
시뮬레이션 장치는 겉옷에서 충돌이 발생한 메쉬는 겉옷과 속옷의 충돌이 발생한 메쉬의 충돌 선분의 중점에서 구한 디스턴스 필드의 그래디언트(gradient) 방향으로 밀어낼 수 있다. 또한, 시뮬레이션 장치는 속옷에서 충돌이 발생한 메쉬는 디스턴스 필드의 그래디언트 방향의 반대 방향으로 밀어내는 미리 설정된 크기의 충돌을 제거하는 힘을 생성할 수 있다.
여기서, '디스턴스 필드(distance field)'는 특정 위치에서 가장 가까운 아바타 표면까지의 거리를 3차원 공간 상의 모든 위치에 대해 계산하여 저장해 놓은 데이터 구조에 해당할 수 있다. 디스턴스 필드를 이용하기 위해, 시뮬레이션 장치는 3차원 공간을 격자로 구분하고, 이때 생긴 각각의 복셀마다 그 중심에서 가장 가까운 아바타 표면까지의 거리를 계산하여 복셀에 저장해 둘 수 있다. 여기서, '복셀(voxel)'이란 3차원 공간 상의 한 점을 정의한 일단의 그래픽 정보에 해당할 수 있다. 디스턴스 필드는 수학적으로 말하면 스칼라 필드(scalar field)에 해당할 수 있다. 시뮬레이션 장치는 스칼라 필드에 대한 그래디언트를 구할 수 있다. 이때, 스칼라 필드의 그래디언트는 벡터 필드(vector field)가 될 수 있다. 여기서, 벡터는 결국 스칼라 값이 가장 급격하게 커지는 방향의 벡터, 다시 말해, 아바타 표면으로부터 가장 멀어지는 '아바타 바깥 방향'의 방향 벡터가 될 수 있다.
예를 들어, 아바타에 착장된 의상이 여러 겹인 경우, 겉옷과 속옷을 구성하는 메쉬의 다각형(삼각형)이 교차 또는 충돌된 부분은 하나의 선분으로 나타날 수 있다. 다각형이 교차 또는 충돌된 부분에 나타나는 선분을 '교차 선분'이라고 하자. 이때, 겉옷을 구성하는 메쉬의 다각형에 가해지는 힘의 방향은 교차 선분의 중점에서 구한 디스턴스 필드의 그래디언트 방향, 다시 말해 아바타 바깥 방향이 되고, 속옷을 구성하는 메쉬의 다각형에 가해지는 힘의 방향은 아바타 바깥 방향의 반대 방향이 될 수 있다.
시뮬레이션 장치는 전술한 방법에 의해 충돌을 제거하는 힘을 생성하고, 충돌이 발생한 정점들에 충돌을 제거하는 힘을 적용하는 충돌 처리를 수행할 수 있다.
도 7은 일 실시예에 따라 시뮬레이션 된 의상의 3차원 모델의 일 예시를 도시한 도면이다. 도 7을 참조하면, 일 실시예에 따른 사용자 인터페이스를 통해 선택된 일부 영역 중 제1 영역이 제1 강도로 고정되고, 제2 영역이 점진적으로 제1 강도보다 작은 제2 강도들로 고정되어 시뮬레이션된 의상의 3차원 모델(710)이 도시된다.
전술한 것과 같이, 사용자 인터페이스에 의해 선택된 일부 영역을 제외한 나머지 영역의 기존 시뮬레이션 결과는 그대로 유지될 수 있다.
도 8은 일 실시예에 따른 시뮬레이션 장치의 블록도이다. 도 8을 참조하면, 일 실시예에 따른 시뮬레이션 장치(800)는 사용자 인터페이스(810), 프로세서(820), 디스플레이(830), 및 메모리(840)를 포함할 수 있다. 사용자 인터페이스(810), 프로세서(820), 디스플레이(830), 및 메모리(840)는 통신 버스(805)를 통해 서로 연결될 수 있다.
사용자 인터페이스(810)는 외부 도형과 내부 도형과 외부 도형을 포함하고, 의상의 3차원 모델의 일부 영역에 대한 선택을 입력받는다. 실시예에 따라서, 사용자 인터페이스(810)는 내부 도형에 대응하는 제1 사용자 인터페이스 및 외부 도형에 대응하는 제2 사용자 인터페이스를 포함할 수도 있다.
프로세서(820)는 내부 도형에 대응하는 제1 영역의 제1 정점들을 제1 강도로 3차원 공간에 고정시킨다. 프로세서(820)는 제1 강도에 기초하여, 내부 도형과 외부 도형 사이의 제2 영역의 제2 정점들에 대응하는 제2 강도들을 결정한다. 프로세서(820)는 제2 정점들을 제2 강도들로 3차원 공간에 고정시킨다. 프로세서(820)는 제1 강도 및 제2 강도들을 적용하여 의상의 3차원 모델을 시뮬레이션한다.
프로세서(820)는 제1 정점들에 대응하여 제1 강도를 갖는 가상의 스프링들을 생성할 수 있다. 프로세서(820)는 제1 강도를 갖는 가상의 스프링들을 이용하여 제1 정점들을 3차원 공간 내 제1 정점들의 현재 위치들에 고정시킬 수 있다. 이때, 제1 강도를 갖는 가상의 스프링들 각각에 대응하여, 해당하는 스프링의 양단 중 제1단은 해당하는 제1 정점에 연결되고, 양단 중 제2단은 3차원 공간 내 해당하는 제1 정점의 현재 위치에 고정될 수 있다.
프로세서(820)는 제2 정점들의 위치가 내부 도형에서 외부 도형 방향으로 멀어질수록 점진적으로 제1 강도보다 작은 값을 가지도록 제2 강도들을 결정할 수 있다.
프로세서(820)는 제2 정점들에 대응하여 제2 강도들을 갖는 가상의 스프링들을 생성할 수 있다. 프로세서(820)는 제2 강도들을 갖는 가상의 스프링들 각각을 이용하여, 해당하는 제2 정점을 3차원 공간 내 해당하는 제2 정점의 현재 위치에 고정시킬 수 있다.
프로세서(820)는 의상의 3차원 모델의 물성에 의한 외력, 의상의 3차원 모델에 작용하는 중력, 및 의상의 3차원 모델과 의상의 3차원 모델이 착장되는 아바타의 스킨과의 충돌을 방지하는 반발력 중 적어도 하나에, 제1 강도 및 제2 강도들을 더 고려하여 의상의 3차원 모델을 구성하는 메쉬의 다각형들의 정점들에 작용하는 힘을 산출할 수 있다. 프로세서(820)는 정점들에 작용하는 힘을 기초로, 정점들의 위치를 시뮬레이션할 수 있다.
프로세서(820)는 사용자 인터페이스(810)를 통해 일부 영역에 대한 선택이 반복적으로 입력됨에 따라, 반복되는 입력의 횟수에 대응하여 제1 강도와 제2 강도들을 누적적으로 증가시키고, 의상의 3차원 모델의 일부 영역에 누적적으로 증가된 제1 강도와 제2 강도들을 적용하여 의상의 3차원 모델을 시뮬레이션할 수 있다.
디스플레이(830)는 프로세서(820)가 시뮬레이션한 의상의 3차원 모델을 표시한다.
메모리(840)는 사용자 인터페이스(810)를 통해 입력받은 일부 영역에 대한 정보를 저장할 수 있다. 여기서, 일부 영역에 대한 정보는 예를 들어, 위치 좌표 또는 일부 영역에 해당하는 위치의 의상 패턴의 태그 또는 인덱스 등을 포함할 수 있으며, 반드시 이에 한정되지는 않는다.
메모리(840)는 제1 강도 및 프로세서(820)에 의해 결정된 제2 강도들을 저장할 수 있다. 또한, 메모리(840)는 제1 강도 및 제2 강도들을 적용하여 시뮬레이션된 의상의 3차원 모델을 저장할 수 있다.
또한, 메모리(840)는 내부 도형의 이동에 따른 외력에 대한 정보 이외에도 프로세서(820)에 의해 형성되니 주름을 시뮬레이션 하는데 이용되는 정보 및 시뮬레이션 결과를 저장할 수 있다.
이 밖에도, 메모리(840)는 상술한 프로세서(820)의 처리 과정에서 생성되는 다양한 정보들을 저장할 수 있다. 이 밖에도, 메모리(840)는 각종 데이터와 프로그램 등을 저장할 수 있다. 메모리(840)는 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다. 메모리(840)는 하드 디스크 등과 같은 대용량 저장 매체를 구비하여 각종 데이터를 저장할 수 있다.
또한, 프로세서(820)는 도 1 내지 도 7을 통해 전술한 적어도 하나의 방법 또는 적어도 하나의 방법에 대응되는 알고리즘을 수행할 수 있다. 프로세서(820)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 시뮬레이션 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다. 프로세서(820)는 예를 들어, CPU(Central Processing Unit), GPU(Graphics Processing Unit), 또는 NPU(Neural network Processing Unit)으로 구성될 수 있다. 예를 들어, 하드웨어로 구현된 시뮬레이션 장치(800)는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.
프로세서(820)는 프로그램을 실행하고, 시뮬레이션 장치(800)를 제어할 수 있다. 프로세서(820)에 의하여 실행되는 프로그램 코드는 메모리(840)에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.
800: 시뮬레이션 장치
805: 통신 버스
810: 사용자 인터페이스
820: 프로세서
830: 디스플레이
840: 메모리

Claims (20)

  1. 내부 도형과 외부 도형을 포함하는 사용자 인터페이스를 이용하여 의상의 3차원 모델의 일부 영역에 대한 선택을 입력받는 동작;
    상기 내부 도형에 대응하는 제1 영역의 제1 정점들을 제1 강도로 3차원 공간에 고정시키는 동작;
    상기 제1 강도에 기초하여, 상기 내부 도형과 상기 외부 도형 사이의 제2 영역의 제2 정점들에 대응하는 제2 강도들을 결정하는 동작;
    상기 제2 정점들을 상기 제2 강도들로 상기 3차원 공간에 고정시키는 동작; 및
    상기 제1 강도 및 상기 제2 강도들을 적용하여 상기 의상의 3차원 모델을 시뮬레이션하는 동작
    을 포함하는,
    시뮬레이션 방법.
  2. 제1항에 있어서,
    상기 제1 정점들을 상기 제1 강도로 상기 3차원 공간에 고정시키는 동작은
    상기 제1 정점들에 대응하여 상기 제1 강도를 갖는 가상의 스프링들을 생성하는 동작; 및
    상기 제1 강도를 갖는 가상의 스프링들을 이용하여 상기 제1 정점들을 상기 3차원 공간 내 상기 제1 정점들의 현재 위치들에 고정시키는 동작
    을 포함하는,
    시뮬레이션 방법.
  3. 제2항에 있어서,
    상기 제1 강도를 갖는 가상의 스프링들 각각에 대응하여,
    해당하는 스프링의 양단 중 제1단은 해당하는 제1 정점에 연결되고, 상기 양단 중 제2단은 상기 3차원 공간 내 상기 해당하는 제1 정점의 현재 위치에 고정되는,
    시뮬레이션 방법.
  4. 제1항에 있어서,
    상기 제2 강도를 결정하는 동작은
    상기 제2 정점들의 위치가 상기 내부 도형에서 상기 외부 도형 방향으로 멀어질수록 점진적으로 상기 제1 강도보다 작은 값을 가지도록 상기 제2 강도들을 결정하는 동작
    을 포함하는,
    시뮬레이션 방법.
  5. 제1항에 있어서,
    상기 제1 강도는 상기 제2 강도들보다 큰,
    시뮬레이션 방법.
  6. 제1항에 있어서,
    상기 제2 정점들을 상기 제2 강도들로 상기 3차원 공간에 고정시키는 동작은
    상기 제2 정점들에 대응하여 상기 제2 강도들을 갖는 가상의 스프링들을 생성하는 동작; 및
    상기 제2 강도들을 갖는 가상의 스프링들 각각을 이용하여, 해당하는 제2 정점을 상기 3차원 공간 내 상기 해당하는 제2 정점의 현재 위치에 고정시키는 동작
    을 포함하는,
    시뮬레이션 방법.
  7. 제1항에 있어서,
    상기 의상의 3차원 모델을 시뮬레이션하는 동작은
    상기 의상의 3차원 모델의 물성에 의한 외력, 상기 의상의 3차원 모델에 작용하는 중력, 및 상기 의상의 3차원 모델과 상기 의상의 3차원 모델이 착장되는 아바타의 스킨과의 충돌을 방지하는 반발력 중 적어도 하나에, 상기 제1 강도 및 상기 제2 강도들을 더 고려하여 상기 의상의 3차원 모델을 구성하는 메쉬의 다각형들의 정점들에 작용하는 힘을 산출하는 동작; 및
    상기 정점들에 작용하는 힘을 기초로, 상기 정점들의 위치를 시뮬레이션하는 동작
    을 포함하는,
    시뮬레이션 방법.
  8. 제7항에 있어서,
    상기 정점들의 위치를 시뮬레이션하는 동작은
    상기 정점들에 작용하는 힘에 의해 충돌이 발생하는지 여부를 결정하는 동작; 및
    상기 충돌이 발생한다고 결정되면, 상기 충돌이 발생한 정점들에 상기 충돌을 제거하는 힘을 적용하는 충돌 처리를 수행하는 동작
    을 포함하는,
    시뮬레이션 방법.
  9. 제1항에 있어서,
    상기 사용자 인터페이스를 통해 상기 일부 영역에 대한 선택이 반복적으로 입력됨에 따라, 상기 반복적 입력의 횟수에 대응하여 상기 제1 강도와 상기 제2 강도들을 누적적으로 증가시키는 동작
    을 더 포함하고,
    상기 의상의 3차원 모델을 시뮬레이션하는 동작은
    상기 의상의 3차원 모델의 일부 영역에 상기 누적적으로 증가된 제1 강도와 제2 강도들을 적용하여 상기 의상의 3차원 모델을 시뮬레이션하는 동작
    을 포함하는,
    시뮬레이션 방법.
  10. 제1항에 있어서,
    상기 내부 도형의 크기와 상기 외부 도형의 크기는 조절 가능한,
    시뮬레이션 방법.
  11. 제1항에 있어서,
    상기 제1 강도는 변경 가능한,
    시뮬레이션 방법.
  12. 제1항에 있어서,
    상기 의상의 3차원 모델은
    3차원 가상 캐릭터를 위한 가상 의상 및 3차원 가상 아바타를 위한 가상 의상 중 적어도 하나를 포함하는,
    시뮬레이션 방법.
  13. 하드웨어와 결합되어 제1항 내지 제12항 중 어느 한 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램.
  14. 내부 도형과 외부 도형을 포함하고, 의상의 3차원 모델의 일부 영역에 대한 선택을 입력받는 사용자 인터페이스;
    상기 내부 도형에 대응하는 제1 영역의 제1 정점들을 제1 강도로 3차원 공간에 고정시키고, 상기 제1 강도에 기초하여, 상기 내부 도형과 상기 외부 도형 사이의 제2 영역의 제2 정점들에 대응하는 제2 강도들을 결정하고, 상기 제2 정점들을 상기 제2 강도들로 상기 3차원 공간에 고정시키며, 상기 제1 강도 및 상기 제2 강도들을 적용하여 상기 의상의 3차원 모델을 시뮬레이션하는 프로세서; 및
    상기 시뮬레이션한 상기 의상의 3차원 모델을 표시하는 디스플레이
    를 포함하는,
    시뮬레이션 장치.
  15. 제14항에 있어서,
    상기 프로세서는
    상기 제1 정점들에 대응하여 상기 제1 강도를 갖는 가상의 스프링들을 생성하고, 상기 제1 강도를 갖는 가상의 스프링들을 이용하여 상기 제1 정점들을 상기 3차원 공간 내 상기 제1 정점들의 현재 위치들에 고정시키는,
    시뮬레이션 장치.
  16. 제15항에 있어서,
    상기 제1 강도를 갖는 가상의 스프링들 각각에 대응하여,
    해당하는 스프링의 양단 중 제1단은 해당하는 제1 정점에 연결되고, 상기 양단 중 제2단은 상기 3차원 공간 내 상기 해당하는 제1 정점의 현재 위치에 고정되는,
    시뮬레이션 장치.
  17. 제14항에 있어서,
    상기 프로세서는
    상기 제2 정점들의 위치가 상기 내부 도형에서 상기 외부 도형 방향으로 멀어질수록 점진적으로 상기 제1 강도보다 작은 값을 가지도록 상기 제2 강도들을 결정하는,
    시뮬레이션 장치.
  18. 제14항에 있어서,
    상기 프로세서는
    상기 제2 정점들에 대응하여 상기 제2 강도들을 갖는 가상의 스프링들을 생성하고, 상기 제2 강도들을 갖는 가상의 스프링들 각각을 이용하여, 해당하는 제2 정점을 상기 3차원 공간 내 상기 해당하는 제2 정점의 현재 위치에 고정시키는,
    시뮬레이션 장치.
  19. 제14항에 있어서,
    상기 프로세서는
    상기 의상의 3차원 모델의 물성에 의한 외력, 상기 의상의 3차원 모델에 작용하는 중력, 및 상기 의상의 3차원 모델과 상기 의상의 3차원 모델이 착장되는 아바타의 스킨과의 충돌을 방지하는 반발력 중 적어도 하나에, 상기 제1 강도 및 상기 제2 강도들을 더 고려하여 상기 의상의 3차원 모델을 구성하는 메쉬의 다각형들의 정점들에 작용하는 힘을 산출하고, 상기 정점들에 작용하는 힘을 기초로, 상기 정점들의 위치를 시뮬레이션하는,
    시뮬레이션 장치.
  20. 제14항에 있어서,
    상기 프로세서는
    상기 사용자 인터페이스를 통해 상기 일부 영역에 대한 선택이 반복적으로 입력됨에 따라, 상기 반복적 입력의 횟수에 대응하여 상기 제1 강도와 상기 제2 강도들을 누적적으로 증가시키고, 상기 의상의 3차원 모델의 일부 영역에 상기 누적적으로 증가된 제1 강도와 제2 강도들을 적용하여 상기 의상의 3차원 모델을 시뮬레이션하는,
    시뮬레이션 장치.
KR1020210051974A 2021-04-21 2021-04-21 시뮬레이션 방법 및 장치 KR20220145203A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210051974A KR20220145203A (ko) 2021-04-21 2021-04-21 시뮬레이션 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210051974A KR20220145203A (ko) 2021-04-21 2021-04-21 시뮬레이션 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20220145203A true KR20220145203A (ko) 2022-10-28

Family

ID=83835157

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210051974A KR20220145203A (ko) 2021-04-21 2021-04-21 시뮬레이션 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20220145203A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117745990A (zh) * 2024-02-21 2024-03-22 虹软科技股份有限公司 一种虚拟试衣方法、装置和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117745990A (zh) * 2024-02-21 2024-03-22 虹软科技股份有限公司 一种虚拟试衣方法、装置和存储介质
CN117745990B (zh) * 2024-02-21 2024-05-07 虹软科技股份有限公司 一种虚拟试衣方法、装置和存储介质

Similar Documents

Publication Publication Date Title
Meng et al. Interactive virtual try-on clothing design systems
Xu et al. Pose-space subspace dynamics
Spillmann et al. An adaptive contact model for the robust simulation of knots
Luo et al. Reactive 2D/3D garment pattern design modification
US20230044445A1 (en) Method and apparatus for simulating clothes
CN108245890B (zh) 控制虚拟场景中物体运动的方法和装置
KR102136620B1 (ko) 의상 패턴들을 표시하는 방법 및 장치
CN112395786A (zh) 服装纸样的自动放码
Xu et al. Real-time inextensible surgical thread simulation
CN111369647B (zh) 信息处理方法及装置、计算机存储介质、电子设备
KR20220145203A (ko) 시뮬레이션 방법 및 장치
Zhong et al. A physically based method for triangulated surface flattening
US20230290100A1 (en) Method And Apparatus For Providing Guide For Combining Pattern Pieces Of Clothing
KR102633553B1 (ko) 의상 시뮬레이션 방법 및 장치
US11961199B2 (en) Method and apparatus for partial simulation of pinching to form wrinkles on a garment
KR102274508B1 (ko) 의상의 패턴 조각에 다트를 표시하는 방법 및 장치
KR20190028634A (ko) 디지털 크리쳐의 제작 방법 및 전자장치
US20240135615A1 (en) Simulating garment using vertices fixed with different intensities
US20240185550A1 (en) Generation of exploded view of garment with selected displaying of guide lines connecting sewing lines
KR20210021890A (ko) 의상 패턴들의 오토 그레이딩 방법 및 장치
US20230196678A1 (en) Transforming three-dimensional model by using correlation to template model with template skeleton
US20230102069A1 (en) Simulating and editing of garment of hierarchical structure
Mesuda et al. Virtual manipulations for draping
Simnett et al. An Edge-based Approach to Adaptively Refining a Mesh for Cloth Deformation.
KR20220137527A (ko) 의상 시뮬레이션 방법 및 장치

Legal Events

Date Code Title Description
E902 Notification of reason for refusal