KR101178443B1 - 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 방법 및 그 프로그램이 기록된 컴퓨터가 판독가능한 기록매체 - Google Patents

의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 방법 및 그 프로그램이 기록된 컴퓨터가 판독가능한 기록매체 Download PDF

Info

Publication number
KR101178443B1
KR101178443B1 KR1020100007377A KR20100007377A KR101178443B1 KR 101178443 B1 KR101178443 B1 KR 101178443B1 KR 1020100007377 A KR1020100007377 A KR 1020100007377A KR 20100007377 A KR20100007377 A KR 20100007377A KR 101178443 B1 KR101178443 B1 KR 101178443B1
Authority
KR
South Korea
Prior art keywords
vector
mesh
matrix
level
multigrid
Prior art date
Application number
KR1020100007377A
Other languages
English (en)
Other versions
KR20100088081A (ko
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 오승우
Publication of KR20100088081A publication Critical patent/KR20100088081A/ko
Application granted granted Critical
Publication of KR101178443B1 publication Critical patent/KR101178443B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2113/00Details relating to the application field
    • G06F2113/12Cloth

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 방법 및 그 프로그램이 기록된 컴퓨터가 판독가능한 기록매체에 관한 것이다. 본 발명은 의상시뮬레이션에 주어지는 복잡한 선형 시스템을 효율적으로 푸는 멀티그리드 방법을 제안한다. 멀티그리드 기법이 포아송 문제에 성공적으로 적용되어 왔지만 복잡한 옷감의 변형을 계산하는데 적용하기는 어렵다. 이 문제를 해결하기 위해 본 발명은 멀티그리드의 각 레벨 사이에서 물리적 양과 성질을 그대로 보존하도록 멀티그리드 기법을 개발하였다. 제안하는 방법의 성능은 최신 의상 시뮬레이션 기법(암시적 적분법, 삼각형 기방 평면상 에너지 모델, 굴곡률에 기반한 굽힘 모델)을 이용하여 제작한 많은 시뮬레이션 예제를 통해 검증하였다. 결과로 2만개 질점으로 이루어진 의상의 경우 프리컨디션드(preconditioned) 켤레경사도법에 비해 4배나 빠른 속도를 보여준다.

Description

의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 방법 및 그 프로그램이 기록된 컴퓨터가 판독가능한 기록매체{A physically faithful multigrid method and computer readable recording medium storing the program for fast cloth simulation}
본 발명은 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 방법 및 그 프로그램이 기록된 컴퓨터가 판독가능한 기록매체에 관한 것으로, 보다 상세하게는 켤레경사도법 과정중에 나오는 block 대칭 시스템 행렬과 벡터 연산중 불필요하게 중복되는 연산을 없애서 30%정도 속도를 향상시키는 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 방법 및 그 프로그램이 기록된 컴퓨터가 판독가능한 기록매체에 관한 것이다.
본 발명은 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 방법 및 그 프로그램이 기록된 컴퓨터가 판독가능한 기록매체에 관한 것이다.
가상의상은 슈렉이나 몬스터 주식회사 같은 영화 제작에 널리 사용되어 왔다. 하드웨어와 알고리즘의 발전에 힘입어 최근에는 컴퓨터 게임, 패션 디자인, 가상 피팅과 같은 실시간 어플리케이션에도 확장 적용되고 있다.
하지만 장시간의 시뮬레이션 시간 때문에 실제와 같은 의상의 움직임을 실시간으로 처리하기 힘드므로 여전히 실용화하는데 많은 어려움이 있다. 따라서 보다 최적화된 시뮬레이션 기법이 필요하다.
암시적 적분법(Implicit integration)이 최근 의상 시뮬레이션에서 가장 자주 사용되고 있는 방법 중 하나다. 하지만 암시적 적분법으로 통해 유도되는 큰 사이즈의 선형시스템을 푸는 것은 매우 오랜 계산 시간을 요구해서 전체 시뮬레이션 과정의 병목이다. 선형 시스템을 푸는 과정은 전체 계산 시간의 절반 이상을 차지하고 현재 알려진 최고의 해결책은 O(n1.5)를 가진 켤레경사도법(Conjugate Gradient (CG) method)이다.
의상 변형을 계산하는 것보다 간단한 문제의 경우, 멀티그리드 기법이 자주 사용되고 있다. 이 기법은 선형 시스템에 대한 계층구조를 활용한다. 주된 속도 향상은 넓은 영역의 변형이 세밀한 메쉬 레벨(fine levels)보다는 성긴 레벨(coarse levels)에서 쉽게 얻을 수 있다는 데서 나온다.
멀티그리드 기법은 elliptic 미분방정식(PDEs)에서 나오는 선형시스템을 푸는데 O(n)의 성능을 보여주며, 유체, 볼륨있는 물체의 변형, 얇은 쉘(shell) 등의 시뮬레이션에 사용되었다. 그러나 현재까지 이 기법은 의상 시뮬레이션에 적용된 적이 없다. 본 출원인이 했던 실험에서는 흔히 사용되는 표준 멀티그리드 기법이 켤레경사도법보다 오히려 느렸고 자주 수렴하지 않은 현상을 보여줬다.
표준 멀티그리드 기법이 의상 시뮬레이션에서 제대로 실행되지 않는데는 몇가지 이유가 있다.
첫째, 계층구조의 레벨 생성 방법이 물리 법칙에 맞지 않는다.
둘째, 의상의 경우 평면상의 힘보다 평면 바깥쪽의 힘, 즉 굽힘 힘이 상대적으로 매우 작다. 결과로 평면 바깥 방향으로 매우 작은 stiffness를 갖게 되고 선형시스템은 풀기 힘든 ill-conditioned 형태가 될 수 있다.
셋째, 의상의 복잡한 변형 때문에 선형 시스템은 많은 수의 eigenvalue(고유값)를 갖게 된다. 다시 말해 아바타에 입혀진 의상은 주름과 같은 고주파수 변형 모드, 신체와 함께 움직이는 저주파수 변형 모드가 혼합된 다양한 변형 모드를 가지게 된다. 기존의 멀티그리드 기법은 이런 의상보다 훨씬 적은 수의 eigenvalue를 갖는 변형 계산에만 활용되어 왔다. 예를 들면 축에 정렬된 유체 역학 문제, 넓은 영역 변형이 주가 되는 메쉬 편집 문제 등이 있다.
본 발명은 상세 레벨에서의 에너지는 성긴 레벨에서도 그대로 보존되고, 계층 레벨들이 물리적으로 일관성이 있으므로 많은 수의 eigenvalue를 갖는 선형시스템도 쉽게 풀수 있는 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 방법 및 그 프로그램이 기록된 컴퓨터가 판독가능한 기록매체를 제공하는 데에 있다.
또한, 본 발명은 켤레경사도법 과정중에 나오는 block 대칭 시스템 행렬과 벡터 연산중 불필요하게 중복되는 연산을 없애서 30%정도 속도를 향상시키는 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 방법 및 그 프로그램이 기록된 컴퓨터가 판독가능한 기록매체를 제공하는 데에 있다.
또한, 본 발명은 속도 향상을 위해 사실성을 해치지 않고, 제안하는 기법은 가장 나은 것으로 알려진 최신 의상 시뮬레이션 기법에 그대로 적용되며, 제안하는 멀티그리드 기법의 속도는 행렬 크기에 선형 비례하고 실제로 3천개 질점을 가진 의상의 경우 실시간 시뮬레이션이 가능하고, preconditioned 켤레경사도법(PCG)보다 두배 빠르며, 2만개 질점에 대해서는 10배나 빠른 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 방법 및 그 프로그램이 기록된 컴퓨터가 판독가능한 기록매체를 제공하는 데에 있다.
상기한 바와 같은 목적을 달성하기 위한 본 발명의 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 방법은, 딜러니 삼각화(Delaunay Triangulation) 기법을 적용하여 다수 개의 레벨 메쉬가 포함되는 메쉬계층구조를 형성하는 멀티그리드 방법에 있어서, n레벨 메쉬는, 그 단위 메쉬의 삼각형 면적 an이 a1×4n-1(a1은 1레벨 메쉬의 삼각형 면적)이 되도록 설정하여 메쉬 계층구조를 형성하는 메쉬계층구조형성단계를 포함하고, 상기 메쉬계층구조형성단계에서 형성된 최하위 레벨 메쉬에게 멀티그리드 사이클에서 주어지는 선형시스템 [수학식 1]
Figure 112012019105205-pat00114
(h는 시간 간격, M은 질량 행렬, f는 힘 벡터, x는 위치 벡터, v는 속도 벡터, △v는 미지수 벡터, n은 시간 간격(단, 상기 수학식 1의 n에만 적용)) 및
Figure 112012019105205-pat00115
(A는 3n×3n의 시스템 행렬으로
Figure 112012019105205-pat00116
, b는 힘 파트로서
Figure 112012019105205-pat00117
)를 이용하여 최하위 레벨 메쉬의 힘 파트 b를 산출하고, 상위 레벨 메쉬의 삼각형 내부에 포함되는 하위 레벨 메쉬 점의 위치 벡터 p의 힘 파트 벡터값 b가 상기 상위 레벨 메쉬의 삼각형의 세 꼭지점(p0, p1, p2)에 각각 분배되는 힘 파트 벡터값 b0, b1, b2는, 다음 수학식에 의해 산출되는 리스트릭션연산(Restriction Operation)단계,
[수학식]
b0 = α×b, b1 = β×b, b2 = (1-α-β)×b
(여기서, α, β, 1-α-β는, p = α×p0 + β×p1 + (1-α-β)×p2로 표현되는 p의 무게중심좌표(Barycentric Coordinates) 값임)를 더 포함한다.
또한, 본 발명의 멀티그리드 방법은 켤레경사도법(Conjugate Gradient Method)의 반복계산(Iteration)을 수행하는 스무싱연산(Smoothing Operation) 단계를 더 포함하며, 상기 스무싱연산 단계는, (a) 상기 메쉬계층구조형성단계에서 형성된 각 레벨 메쉬마다 멀티그리드 사이클에서 주어지는 선형시스템 [수학식 1]
Figure 112011053225430-pat00001
(h는 시간 간격, M은 질량 행렬, f는 힘 벡터, x는 위치 벡터, v는 속도 벡터, △v는 미지수 벡터, n은 시간 간격(단, 상기 수학식 1의 n에만 적용))을 이용하여 표준 선형시스템폼
Figure 112011053225430-pat00002
에서의 3n×3n의 시스템 행렬인 A를
Figure 112011053225430-pat00003
로 산출하는 단계, (b)
Figure 112011053225430-pat00004
를 이용하여, 상기 표준 선형시스템폼에서의 A를 M과 외부 힘의 자코비언 Jext와 내부 힘 자코비언 Jint로 분해하여, M, Jext 및 Jint를 산출하는 단계, (c) 3n개의 원소를 갖는 임의의 벡터 d와 M+Jext+Jint를 나타내는 블록 대칭인 행렬 A를 입력으로 하여 0≤i≤n-1(n은 특정 레벨 메쉬에서의 점(vertex)의 개수)인 모든 i에 대해 연산 (Ad)i=Bi×di(B는 M+Jext 나타내는 대각 블록 행렬, Bi는 B의 i행, i열에 있는 3×3 블록 행렬, Ad는 3n×1의 벡터, (Ad)i는 Ad의 3개 원소를 갖는 i번째 점의 벡터, di는 d의 i번째 점의 벡터)을 반복 수행하는 단계, (d) i<j, 0≤i, j<n 및
Figure 112011053225430-pat00005
를 만족하는 모든 (i, j)쌍에 대해
연산 1
Figure 112010005643003-pat00006
(
Figure 112010005643003-pat00007
Figure 112010005643003-pat00008
의 i행, j열에 있는 3×3 블록 행렬),
연산 2 (Ad)i=(Ad)i+c 및
연산 3 (Ad)j=(Ad)j+c 를 순차적으로 반복 수행하여 출력 Ad(A와 d의 곱)를 산출하는 단계를 포함한다.
또한, 본 발명의 멀티그리드 방법은 상기 메쉬계층구조형성단계에서 형성된 각 레벨 메쉬마다 멀티그리드 사이클에서 주어지는 선형시스템 [수학식 1]
Figure 112011053225430-pat00009
(h는 시간 간격, M은 질량 행렬, f는 힘 벡터, x는 위치 벡터, v는 속도 벡터, △v는 미지수 벡터, n은 시간 간격(단, 상기 수학식 1의 n에만 적용)) 및
Figure 112011053225430-pat00010
(A는 3n×3n의 시스템 행렬으로
Figure 112010005643003-pat00011
, b는 힘 파트로서
Figure 112010005643003-pat00012
)를 이용하여 각 레벨 메쉬별로 각각의 시스템 행렬 A를 산출하는 코어스닝연산(Coarsening Operation)단계를 더 포함한다.
삭제
삭제
삭제
삭제
삭제
삭제
또한, 본 발명의 멀티그리드 방법은 상위 레벨 메쉬 삼각형의 세 꼭지점의 위치 벡터 p0, p1, p2의 각 힘 파트 벡터값 b0, b1, b2가, 상기 상위 레벨 메쉬 삼각형 내부에 포함되는 하위 레벨 메쉬 점 p에 분배되는 힘 파트 벡터값 b는 α×b0 + β×b1 + (1-α-β)×b2 (여기서, α, β, 1-α-β는, p = α×p0 + β×p1 + (1-α-β)×p2로 표현되는 p의 무게중심좌표(Barycentric Coordinates) 값임)로 산출되는 프로롱게이션(Prolongation Operation)단계를 더 포함한다.
상기한 바와 같은 목적을 달성하기 위한 본 발명의 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 프로그램이 기록된 컴퓨터가 판독가능한 기록매체는, 딜러니 삼각화(Delaunay Triangulation) 기법을 적용하여 다수 개의 레벨 메쉬가 포함되는 메쉬계층구조를 형성하는 멀티그리드 프로그램이 기록된 컴퓨터가 판독가능한 기록매체에 있어서, n레벨 메쉬는, 그 단위 메쉬의 삼각형 면적 an이 a1×4n-1(a1은 1레벨 메쉬의 삼각형 면적)이 되도록 설정하여 메쉬 계층구조를 형성하는 메쉬계층구조형성단계를 포함하고, 상기 메쉬계층구조형성단계에서 형성된 최하위 레벨 메쉬에게 멀티그리드 사이클에서 주어지는 선형시스템 [수학식 1]
Figure 112012019105205-pat00118
(h는 시간 간격, M은 질량 행렬, f는 힘 벡터, x는 위치 벡터, v는 속도 벡터, △v는 미지수 벡터, n은 시간 간격(단, 상기 수학식 1의 n에만 적용)) 및
Figure 112012019105205-pat00119
(A는 3n×3n의 시스템 행렬으로
Figure 112012019105205-pat00120
, b는 힘 파트로서
Figure 112012019105205-pat00121
)를 이용하여 최하위 레벨 메쉬의 힘 파트 b를 산출하고, 상위 레벨 메쉬의 삼각형 내부에 포함되는 하위 레벨 메쉬 점의 위치 벡터 p의 힘 파트 벡터값 b가 상기 상위 레벨 메쉬의 삼각형의 세 꼭지점(p0, p1, p2)에 각각 분배되는 힘 파트 벡터값 b0, b1, b2는, 다음 수학식에 의해 산출되는 리스트릭션연산(Restriction Operation)단계,
[수학식]
b0 = α×b, b1 = β×b, b2 = (1-α-β)×b
(여기서, α, β, 1-α-β는, p = α×p0 + β×p1 + (1-α-β)×p2로 표현되는 p의 무게중심좌표(Barycentric Coordinates) 값임)를 더 포함한다.
또한, 본 발명의 멀티그리드 프로그램이 기록된 컴퓨터가 판독가능한 기록매체는 켤레경사도법(Conjugate Gradient Method)의 반복계산(Iteration)을 수행하는 스무싱연산(Smoothing Operation) 단계를 더 포함하며, 상기 스무싱연산 단계는, (a) 상기 메쉬계층구조형성단계에서 형성된 각 레벨 메쉬마다 멀티그리드 사이클에서 주어지는 선형시스템 [수학식 1]
Figure 112011053225430-pat00017
(h는 시간 간격, M은 질량 행렬, f는 힘 벡터, x는 위치 벡터, v는 속도 벡터, △v는 미지수 벡터, n은 시간 간격(단, 상기 수학식 1의 n에만 적용))을 이용하여 표준 선형시스템폼
Figure 112011053225430-pat00018
에서의 3n×3n의 시스템 행렬인 A를
Figure 112011053225430-pat00019
로 산출하는 단계, (b)
Figure 112011053225430-pat00020
를 이용하여, 상기 표준 선형시스템폼에서의 A를 M과 외부 힘의 자코비언 Jext와 내부 힘 자코비언 Jint로 분해하여, M, Jext 및 Jint를 산출하는 단계, (c) 3n개의 원소를 갖는 임의의 벡터 d와 M+Jext+Jint를 나타내는 블록 대칭인 행렬 A를 입력으로 하여 0≤i≤n-1(n은 특정 레벨 메쉬에서의 점(vertex)의 개수)인 모든 i에 대해 연산 (Ad)i=Bi×di(B는 M+Jext 나타내는 대각 블록 행렬, Bi는 B의 i행, i열에 있는 3×3 블록 행렬, Ad는 3n×1의 벡터, (Ad)i는 Ad의 3개 원소를 갖는 i번째 점의 벡터, di는 d의 i번째 점의 벡터)을 반복 수행하는 단계, (d) i<j, 0≤i, j<n 및
Figure 112011053225430-pat00021
를 만족하는 모든 (i, j)쌍에 대해
연산 1
Figure 112010005643003-pat00022
(
Figure 112010005643003-pat00023
Figure 112010005643003-pat00024
의 i행, j열에 있는 3×3 블록 행렬),
연산 2 (Ad)i=(Ad)i+c 및
연산 3 (Ad)j=(Ad)j+c 를 순차적으로 반복 수행하여 출력 Ad(A와 d의 곱)를 산출하는 단계를 포함한다.
또한, 본 발명의 멀티그리드 프로그램이 기록된 컴퓨터가 판독가능한 기록매체는 상기 메쉬계층구조형성단계에서 형성된 각 레벨 메쉬마다 멀티그리드 사이클에서 주어지는 선형시스템 [수학식 1]
Figure 112011053225430-pat00025
(h는 시간 간격, M은 질량 행렬, f는 힘 벡터, x는 위치 벡터, v는 속도 벡터, △v는 미지수 벡터, n은 시간 간격(단, 상기 수학식 1의 n에만 적용)) 및
Figure 112011053225430-pat00026
(A는 3n×3n의 시스템 행렬으로
Figure 112010005643003-pat00027
, b는 힘 파트로서
Figure 112010005643003-pat00028
)를 이용하여 각 레벨 메쉬별로 각각의 시스템 행렬 A를 산출하는 코어스닝연산(Coarsening Operation)단계를 더 포함한다.
삭제
삭제
삭제
삭제
삭제
삭제
또한, 본 발명의 멀티그리드 프로그램이 기록된 컴퓨터가 판독가능한 기록매체는 상위 레벨 메쉬 삼각형의 세 꼭지점의 위치 벡터 p0, p1, p2의 각 힘 파트 벡터값 b0, b1, b2가, 상기 상위 레벨 메쉬 삼각형 내부에 포함되는 하위 레벨 메쉬 점 p에 분배되는 힘 파트 벡터값 b는 α×b0 + β×b1 + (1-α-β)×b2 (여기서, α, β, 1-α-β는, p = α×p0 + β×p1 + (1-α-β)×p2로 표현되는 p의 무게중심좌표(Barycentric Coordinates) 값임)로 산출되는 프로롱게이션(Prolongation Operation)단계를 더 포함한다.
본 발명은 상세 레벨에서 에너지는 해당하는 성긴 레벨에서도 그대로 보존된다. 계층 레벨들이 물리적으로 일관성이 있으므로 많은 수의 eigenvalue를 갖는 선형시스템도 쉽게 풀수 있다.
또한, 본 발명은 켤레경사도법 과정중에 나오는 block 대칭 시스템 행렬과 벡터 연산중 불필요하게 중복되는 연산을 없애서 30%정도 속도를 향상시킬 수 있다. 본 발명은 일반적인 의상 에너지를 적분한 결과가 모두 block 대칭 시스템 행렬로 유도됨을 증명한다.
또한, 본 발명이 제안하는 기법은 속도 향상을 위해 사실성을 해치지 않는다. 제안하는 기법은 가장 나은 것으로 알려진 최신 의상 시뮬레이션 기법에 그대로 적용된다.
제안하는 멀티그리드 기법의 속도는 행렬 크기에 선형 비례하고 실제로 3천개 질점을 가진 의상의 경우 실시간 시뮬레이션이 가능하다. 이것은 preconditioned 켤레경사도법(PCG)보다 두배 빠른 결과다. 2만개 질점에 대해서는 10배나 빠르다.
도 1은 본 발명의 의상 패턴을 가지고 메쉬 계층구조를 생성하는 것을 설명하는 설명도.
도 2는 본 발명의 coarsening 과정을 보여주는 설명도.
도 3은 본 발명의 자코비언 행렬을 설명하기 위한 설명도.
도 4는 본 발명의 에니메이션 결과를 보여주는 설명도.
도 5는 본 발명의 bending-wings 과정을 보여주는 설명도.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
관련 연구
Terzopoulos의 연구 이후로 의상 시뮬레이션 분야에는 많은 진전이 있었다. 여기서는 본 발명과 직접적으로 관련되는 암시적 적분법, adaptive 시뮬레이션 기법, 멀티그리드 기법에 대해서만 다룬다.
Baraff와 Witkin은 의상 시뮬레이션에서 널리 사용되는 암시적 적분법 기반의 프레임웍을 개발하였다. 이것은 오일러 암시적 적분법, 삼각형 기반 에너지 모델, 접촉 제약을 가진 켤레경사도법을 포함한다. [Reference: Choi K-J, Ko H-S. Stable but responsive cloth. ACM Transactions on Graphics (ACM SIGGRAPH 2002) 2002; 21(3):604-011.]에 의해 실용적으로 많은 진전이 있었는데 그들은 기존 모델에서 안정적인 자코비언 행렬을 뽑아내고 즉좌굴 모델 기법(immediate buckling model)을 개발하여 사실적인 주름을 얻을 수 있었다.
Second order backward difference formula나 midpoint 법 등 암시적 적분법과 관련된 연구도 진행되었는데 주로 암시적 적분법에서 나오는 과도한 댐핑 문제를 해결하기 위한 시도였다. 시스템 행렬을 상수화해서 큰 규모의 선형 시스템을 풀지 않고 시뮬레이션하는 방법도 제안됐다.
Adaptive 기법은 변경 물체를 시뮬레이션하는데 가장 자주 쓰이는 가속 기법이다. 여기서 속도 향상은 변형의 정도에 따라 필요한 만큼 시뮬레이션 요소 개수를 조절함으로써 얻어진다.
예를 들어 주름과 같은 지역적인 변형에는 상대적으로 많은 수의 시뮬레이션 요소를 사용하고 전역적인 변형에는 적은 수의 요소를 사용한다. 이와 같은 접근법을 사용하는 연구는 명시적 FEM을 이용한 변형 시뮬레이션, adaptive FEM을 위한 쉬운 구현 프레임웍을 제시한 연구, 다중해상도 질량-스프링 시스템, subdivision에 기반한 adaptive 의상 시뮬레이션 등이 있다. 불행하게도 속도 향상을 위해서는 항상 원래 시뮬레이션의 사실성을 희생해야 했다.
멀티그리드 기법은 선형시스템을 풀기 위해 다중해상도 개념을 사용한다. 이 기법은 1964년도에 Fedorenko가 처음 제안하였고, 1970년대에 Brandt에 의해 실용화되었다. 이 기법은 최적화, 기하학적 처리, VLSI 디자인 등 다양한 분야에 사용되었다.(Reference: Wesseling P. An Introduction to Multigrid Methods. R.T. Edwards: Philadelphia, 2004. 참조) 이 발명에서는 물리 기반 시뮬레이션에 적용된 관련 연구에 초점을 맞춘다. 표준 멀티그리드는 Laplacian이나 Poisson 문제에 잘 적용되므로 fluid simulation에 성공적으로 적용되었다.(Reference: Thomas JL, Diskin B, Brandt A. Textbook multigrid for fluid simulations. Annumal Reviews in Fluid Mechanics 2003; 35:317-340. 참조)
또 이러한 시도는 GPU상에서 구현되기도 했다.(Reference: Bolz J, Farmer I, Grinspun E, Schroder P. Sparse matrix solvers on the gpu: conjugate gradients and multigrid. Proceedings of ACM SIGGRAPH, 2003. 참조) Shi 등은 Posisson 문제에 해당하는 메쉬 편집을 위한 효율적인 대수(algebraic) 멀티그리드 기법을 제안했다.(Reference: Shi L, Yu Y, Bell N, Feng W. A fast multigrid algorithm for mesh deformation. In Proceedings of ACM SIGGRAPH, 2006. 참조) 그들은 메쉬 편집 문제에 적합한 restriction과 prolongation operator를 개발하였고 정지 제약을 그 프레임웍에 추가했다.
그 결과 5만개 질점의 3차원 메쉬를 인터랙티브하게 편집할 수 있었다.
그러나 종이나 옷감과 같은 얇은 물체 시뮬레이션에 멀티그리드 기법을 적용하기는 어렵다. 이런 얇은 물체의 변형은 유체처럼 시뮬레이션 도메인이 축에 정렬되어 있지도 않고 약한 굽힘 힘 때문에 많은 eigenvalue를 갖는 선형 시스템을 도출하게 된다.
Fish 등은 이런 얇은 물체 시뮬레이션에 적합한 멀티그리드 기법을 개발했는데, FEM의 shape function에 기반한 restrictor operator를 사용했고 많은 수의 eigenvalue를 갖는 선형시스템을 풀기 위해 멀티그리드 켤레경사도법(MPCG)를 사용했다.(Reference: Fish J, Pan L, Belsky V, Gomma S. Unstructured multigrid method for shells. International Jounal for Numerical Methods in Engineering, 1996; 39: 1181-1197. 참조)
Green 등도 subdivision에 기반해서 변형 물체에 적용되는 멀티그리드 기법을 제안했지만 이런 연구에서 사용한 실험 예제는 모두 굉장히 단순한 물체였다.(Reference: Green S, Turkiyyah G, Storti D. Subdivision-based multilevel methods for large scale engineering simulation of thin shells. In ACM Symposium on Solid Modeling and Applications, 2002. 참조)
반면 본 발명은 많은 수의 변형 모드를 갖는 보다 복잡한 의상 변형을 다루고자 한다.
접근법
본 발명의 접근법은 기하학적 멀티그리드 기법에 기반한다. 가장 성긴 메쉬를 재귀적으로 분할해가면서 다중해상도 메쉬 계층구조를 생성한다. 그리고 시뮬레이션 역학 시스템은 가장 상세한 레벨의 메쉬상에서 정의된다. 여기서 시뮬레이션 결과를 얻기 위해 미분방정식을 암시적 적분법으로 푸는 과정에서 우리는 항상 선형 시스템을 풀어야만 한다. (Reference: Baraff D, Witkin A. Large steps in cloth simulation. In Proceedings of ACM SIGGRAPH 98, ACM Press, 1998; 43-54. 참조)
멀티그리드 기법은 네개의 기본 operator를 사용하는데 smoothing, coarsening, restriction, prolongation이 그것이다. 전처리 과정으로 시스템 행렬의 계층 구조를 구축하는데, 상세한 레벨의 선형 시스템을 coarsening operator를 이용하여 성긴 레벨상의 선형시스템으로 만들고, 이 과정을 가장 상세 레벨에서 가장 성긴 레벨까지 반복하여 전체 계층 구조를 생성한다.
이렇게 한번 선형 시스템의 계층 구조가 만들어지면 멀티그리드 기법은 계층 구조의 레벨을 위아래로 왔다갔다 방문해 나가면서 해를 찾기 시작한다. 여기서 우리는 간단한 레벨 방문 스킴(traversing scheme)인 V-cycle 방법을 예로 들어 해를 찾는 과정과 기본 operator에 대해 설명하고자 한다.
첫째로, smoothing은 가장 상세한 레벨에서 쉽게 표현되는 고주파 에러(좁은 영역 변형)를 damp-out 시킨다. 이 과정을 여러 번 반복하면 그 레벨에서 선형시스템의 중간해(immediate solution)와 residual 에러를 얻을 수 있다.
그 다음 둘째로, restriction은 residual 에러를 subsampling해서 다음 성긴 레벨상의 residual 에러로 설정한다. 가장 성긴 레벨까지 이 과정을 재귀적으로 적용해서 얻어지는 가장 성긴 레벨 선형시스템은 direct solver를 사용하여 푼다.
Prolongation은 가장 성긴 레벨의 해를 보간하여 그 다음 상세한 레벨의 중간 해(아까 구해놓았던)를 수정한다. 수정된 해를 그 레벨의 초기 guess로 사용하여 선형 시스템을 푼다. 이때 smoothing operator를 다시 반복 적용하여 이 initial guess의 에러를 줄여서 보다 근접한 해로 만든다. 이렇게 smoothing과 prolongation을 반복하여 가장 상세 레벨까지 도착하면 V-cycle이 종료된다.
위에서 언급한 네가지 중요 operator를 얼만큼 효율적으로 구현하느냐가 멀티그리드 기법의 성능을 좌우한다. 본 발명에서는 효율적인 구현을 위해 각 operator에 대해 다음과 같은 접근법을 사용하였다.
Smoothing operator: 멀티그리드 같은 반복을 통해 해를 찾아가는 기법은 가능하면 빨리 해에 수렴해 가야 한다. 우리는 자코비언이나 가우스-시델 방법에 비해 훨씬 빠른 속도를 가진 켤레경사도법을 smoothing operator로 사용한다. 또한 켤레경사도법을 사용할 때 시스템 행렬이 block-대칭(block-symmetric)이라면 약 30% 속도를 향상시킬 수 있다. 우리는 Smoothing operator 장에서 의상의 에너지 모델로부터 항상 block-대칭 시스템 행렬을 얻을 수 있다는 사실을 증명할 것이다.
Coarsening operator: 레벨간 일관성은 멀티그리드 기법에서 매우 중요하다. 우리는 상세 레벨의 한 요소의 에너지가 해당 성긴 레벨에 그대로 보존함으로써 이런 일관성을 유지하고자 한다. 이 operator는 표준 멀티그리드 기법에서처럼 block 행렬을 쪼개고 합치는 단순한 연산으로 이루어지므로 구현하기도 간단하면 속도 또한 빠르다.
Restriction operator: 리스트릭션은 멀티그리드 이터레이션에서 계속 반복적으로 일어나기 때문에 리스트릭션 구현에 있어서 속도는 매우 중요하다. 따라서 우리는 표준 멀티그리드에서 사용되는 것과 똑같은 리스트릭션을 사용한다. 당연히 이것은 레벨 사이에서 에너지를 보존하지 않기 때문에 최고의 선택은 아니다. 하지만 본 발명에서 제안하는대로 가능하면 삼각형의 모양과 크기가 일정하게 메쉬 계층구조를 만든다면 에너지를 잘 보존할 수 있다. 이런 사실은 리스트릭션 장에서 증명할 것이다.
Prolongation operator: prolongation 역시 표준 멀티그리드와 같은 단순한 선형 보간법을 사용한다. 이것 역시 에너지를 보존하기 때문에 레벨간의 일관성은 유지할 수 있다. 물론 subdivision기반 오퍼레이터(Reference: Green S, Turkiyyah G, Storti D. Subdivision-based multilevel methods for large scale engineering simulation of thin shells. In ACM Symposium on Solid Modeling and Applications, 2002. 참조)나 원래 방정식에 기반한 오퍼레이터(Reference: Shi L, Yu Y, Bell N, Feng W. A fast multigrid algorithm for mesh deformation. In Proceedings of ACM SIGGRAPH, 2006. 참조)처럼 보다 개선된 방법을 사용할 수도 있을 것이다. 그러나, 실험 결과 이런 복잡한 오퍼레이터를 사용하더라도 더 좋은 성능은 얻을 수 없었다.
메쉬 계층구조 생성(Mesh Hierarchy Construction)
본 발명에서는 도 1과 같은 의상 패턴을 가지고 메쉬 계층구조를 생성하는 메쉬계층구조형성단계를 포함한다.
각 레벨에 해당하는 삼각형 메쉬는 삼각형 크기(면적)를 다르게 하여 딜러니 삼각화(Delaunay Triangulation) 기법을 적용하여 생성한다. 딜러니 삼각화를 수행할 때 입력으로 사용하는 평균 삼각형 크기는 다음과 같이 설정한다.
가장 상세한 레벨 1의 삼각형 크기를 a1로 설정하고 n번째 레벨의 삼각형 크기(an)는 an=a1×4n-1이 되도록 설정한다.
따라서, 각각의 a1, a2 ... an-1, an의 크기를 갖는 삼각형으로 이루어진 각각의 1레벨 메쉬, 2레벨 메쉬...n-1레벨 메쉬, n레벨 메쉬가 생성되고, 이러한 각 레벨의 메쉬를 포함하는 메쉬 계층구조가 형성된다.
레벨 숫자가 큰 쪽이 상위 레벨이 되고, 숫자가 적은 쪽이 하위 레벨이 된다.
위 방식으로 삼각화하면 하위 레벨의 삼각형이 하나의 상위 레벨 삼각형에 완전히 포함되는 기존 방식과는 달리 하위 레벨의 삼각형이 여러 개의 상위레벨의 삼각형에 걸쳐서 포함되게 된다. 이런 연결 구조에 맞는 Coarsening과 Restriction 방법은 아래에 이어 설명한다.
Smoothing Operator
바람직한 실시예에 따른 본 발명은 스무싱연산(Smoothing Operation)단계를 더 포함하는데, 이러한 연산은 Smoothing Operator에 의해 이루어진다.
본 발명에서 사용하는 Smoothing Operator는 각 레벨마다 멀티그리드 사이클에서 주어지는 선형시스템을 사용자가 지정한 회수만큼 켤레경사도법(Conjugate Gradient Method, reference: Jonathan Richard Shewchuk, An Introduction to the Conjugate Gradient Method Without the Agonizing Pain, August 1994. 참조) iteration을 수행하는 과정이다. 켤레경사도법에서는 행렬과 벡터 곱셈이 매우 빈번하게 발생하므로 이 과정의 연산속도를 향상시킨다면 전체 smoothing operator의 성능이 향상될 것이다.
Block-대칭 선형 시스템
오일러 암시적 적분법을 통해 우리는 가장 상세 레벨에서 선형 시스템 하나를 얻는다.
Figure 112010005643003-pat00033
여기서 시간 간격 h, 질량 행렬 M, 힘 벡터 f, 위치 벡터 x, 속도 벡터 v, 미지수 벡터 delta v(여기서 superscript n은 시간 간격을 표시)를 나타낸다. (수학식 1의 유도과정 및 notation은 reference: Baraff D, Witkin A. Large steps in cloth simulation. In Proceedings of ACM SIGGRAPH 98, ACM Press, 1998; 43-54. 참조)
시스템 행렬 A와 힘 파트 b를 가지고 위 식을 다르게 표시해보면 다음과 같은 표준 선형 시스템 폼이 된다.
Figure 112010005643003-pat00034
여기서, 다시 A를 질량 행렬 M과 외부 힘의 자코비언 Jext 와 내부 힘 자코비안 Jint 로 분해해 보면 수학식 3이 된다.
Figure 112010005643003-pat00035
여기서 A의 비대각 block 행렬들은 내부 힘 자코비언으로만 구성됨을 주목해 보자. 따라서 모든
Figure 112010005643003-pat00036
에 대해서
Figure 112010005643003-pat00037
를 만족하면 Jint는 block- 대칭이 된다.
또 다른 주목할 사항은, 본 연구에서 제안한 coarsening 으로부터 주어지는 계층구조의 모든 레벨 선형 시스템에서 위와 같이 시스템을 분해할 수 있지만 표준 멀티그리드에서는 그렇지 않다는 점이다. 이러한 분해 가능 여부는 이제 설명할 가속 기법을 선형시스템을 적용할 수 있는 중요한 속성이다.
본 연구에서는 켤레경사도법을 smoothing operator로 사용한다. 주어진 시스템 행렬이 block-대칭이면 켤레경사도법 이터레이션의 속도를 빠르게 할 수 있다. 켤레경사도법에서 행렬-벡터 곱셈 연산은 가장 시간이 많이 소요되는 부분이다. 우리는 이 과정에서 불필요하게 반복되는 곱셈 연산을 줄임으로써 속도를 향상시킬 수 있다.
예를 들어, 3n x 3n 사이즈의 시스템 행렬 A와 3n 차원 벡터 d의 곱셈 연산을 생각해 보자. 결과 벡터 Ad의 i번째 3차원 벡터는 대각과 비대각 부분으로 나누어진다.
Figure 112010005643003-pat00038
이 식은 작용 반작용 법칙에 의한 일치식
Figure 112010005643003-pat00039
을 이용하여 다음과 같이 쓸수 있다.
Figure 112010005643003-pat00040
비슷한 방식으로 j번째 벡터도 [수학식 6]으로 표현할 수 있다. A가 block-대칭이라면 이 식은 [수학식 7]로 쓸 수 있다.
Figure 112010005643003-pat00041
Figure 112010005643003-pat00042
[수학식 5]와 [수학식 7]을 비교해보면 텀안의 모든 곱셈이 전체 곱셈 연산과정에서 중복된다는 점을 알수 있다. 우리는 이 중복 연산을 없앰으로써 속도를 향상시킨다.
여기서 켤레경사도법(Conjugate Gradient) 알고리즘(reference: Jonathan Richard Shewchuk, An Introduction to the Conjugate Gradient Method Without the Agonizing Pain, August 1994. 참조) 내부에는 시스템 행렬 A와 임의의 벡터 d 의 곱셈 연산이 주로 일어나는데 A가 block-symmetric하다면 이 과정의 성능을 다음 알고리즘1을 통해 크게 향상시킬 수 있다. 일반 행렬과 벡터의 기본 곱셈 과정을 보여주는 알고리즘 2와 성능을 비교한 결과를 표 1에서 보여주고 있다.
알고리즘 1은 A가 블록 대칭(Block-Symmetric)한 경우, 임의의 벡터 d와 M+Jext+Jint를 나타내는 블록 대칭인 행렬 A를 입력으로 하여 0≤i≤n-1(n은 특정 레벨 메쉬에서의 점(vertex)의 개수)인 모든 i에 대해 연산 (Ad)i=Bi×di(B는 M+Jext 나타내는 대각 블록 행렬)을 반복 수행한 후 i<j, 0≤i, j<n 및
Figure 112010005643003-pat00043
를 만족하는 모든 (i, j)쌍에 대해 연산
Figure 112010005643003-pat00044
, (Ad)i=(Ad)i+c 및 (Ad)j=(Ad)j+c 를 반복 수행하여 출력 Ad(A와 d의 곱)를 산출하는 과정이다.
제안된 알고리즘 1를 이용하는 방법은 실제로 30% 이상의 속도 향상을 가져온다.
Figure 112010005643003-pat00045
Figure 112010005643003-pat00046
Figure 112010005643003-pat00047
Block-대칭 의상 모델링
이번 장에서는 주로 사용되고 있는 옷감 모델을 사용하면 모두 block-대칭 선형 시스템이 결과로 주어질 수 있다는 점을 보여주고자 한다. Block-대칭성은 내부 힘 자코비언 파트에서 모든
Figure 112010005643003-pat00048
에 대해
Figure 112010005643003-pat00049
를 만족하는지 여부로 알 수 있다.
힘 자코비언이 결국 에너지의 미분치이므로 미분 과정을 통해 검증할 수 있다. 우리는 흔히 사용되는 모든 옷감 에너지 모델(스프링, 삼각형 기반 인장 에너지, 굴곡 기반 에너지 모델)로부터 그것의 2차 미분치인 헤시안 행렬(힘의 자코비언 행렬)이 block-대칭임을 보여줄 것이다.
질량-스프링 시스템에서 스프링은 의상 내부의 인터랙션을 표현하는데 사용된다(즉, stretching, shearing, 굽힘). 질점 i와 j를 연결하는 원래 길이가 l인 스프링을 생각해 보자. 두 점이 각각 위치 xi, xj로 이동했을 때 에너지는 다음과 같이 주어진다.
Figure 112010005643003-pat00050
여기서, k는 스프링 강성도, A는 스프링 면적이다. 이 에너지의 1차 미분치(힘)과 -2차 미분치(헤시안 행렬)는 다음과 같은 일반화된 폼으로 표현된다.
Figure 112010005643003-pat00051
여기서 우리는 cicj=cjci이므로 자코비언 행렬이 block-대칭임을 알수 있다.
삼각형 기반 stretching 에너지의 경우를 생각해 보자. Weft 방향 변형(the weft deformation) du와 warp 방향 변형(the warp deformation) dv는 다음과 같이 계산된다.
Figure 112010005643003-pat00052
여기서 vij = vi-vj . 각각 에너지는 다음 식으로 주어진다.
Figure 112010005643003-pat00053
여기서 A는 원래 삼각형 면적이다. 이 에너지의 자코비언 또한 [수학식 8]로 표현할 수 있으므로 이 에너지 모델의 헤시안 행렬 또한 block-대칭이 된다.
Shearing 에너지 모델로 각도 기반 모델(angle-based model, reference: Baraff D, Witkin A. Large steps in cloth simulation. In Proceedings of ACM SIGGRAPH 98, ACM Press, 1998; 43-54 참조)을 사용한다면 불행하게도 헤시안 행렬은 block-대칭이 아니다.
그래서 우리는 다음과 같은 단순한 에너지 모델을 사용한다. (reference: Provot X. Deformation constraints in a mass-spring model to describe rigid cloth behavior. In Proceedings of Graphics Interface (GI 1995), Canadian Computer-Human Communications Society, 1995; 147-154. 및 Choi K-J, Ko H-S. Extending the immediate buckling model to triangular meshes for simulating complex clothes. In Eurographics 2003 Short Presentations, 2003; 187-191. 참조)
Figure 112010005643003-pat00054
이 식 또한 [수학식 8]에 해당하므로 헤시안 행렬은 block-대칭이 된다.
선형 굽힘 에너지 모델(linear bending model, reference: Bergou M, Wardetzky M, Harmon D, Zorin D, Grinspun E. A quadratic bending model for inextensible surfaces. In Eurographics Symposium on Geometry Processing, 2006. 및 Bridson R, Marino S, Fedkiw R. Simulation of clothing with folds and wrinkles. In Proceedings of ACM SIGGRAPH/Eurographics Symposium on Computer Animation(SCA 2003), ACM Press, 2003; 28-36. 참조)은 당연히 그 헤시안 행렬이 block-대칭이 된다. 본 발명에서는 보다 정확한 시뮬레이션을 위해 굴곡 기반 굽힘 모델을 사용하는데 에너지 모델과 block-대칭성의 검증은 reference: Breen D, House D,Wozny M. Predicting the drape of woven cloth using interacting particles. In Proceedings of ACM SIGGRAPH 94, ACM Press, 1994; 365-372를 참고하길 바란다.
Coarsening operator
바람직한 실시예에 따른 본 발명은 코어스닝연산(Coarsening Operation)단계를 더 포함하는데, 이러한 연산은 Coarsening Operator에 의해 이루어진다.
표준 멀티그리드 방법이나 기존 논문에서 제시한 방법에서는 상세 레벨(하위 레벨 메쉬) 시스템 행렬 A의 블락을 조합하여 성긴 레벨(상위 레벨 메쉬) 시스템 행렬을 구축했다.
그러나, 본 발명에서는 각 레벨별로 각각의 시스템 행렬을 수학식1을 이용하여 계산한다. 즉 각 레벨의 삼각형 메쉬를 이용하여 바로 시스템 행렬을 계산하는 것이다. 각 레벨의 시스템 행렬은 하나의 미분방정식을 삼각형 메슁 상태에 따라 이산화한 것이므로 그 결과는 물리적으로 일관성을 가지며 시각적으로도 비슷한 결과를 보여준다. 따라서 기존 논문에서 제시한 방법보다도 더 정확하게 레벨간에 일관성을 유지할 수 있다.
질량 행렬과 외부 힘 자코비언 행렬
균일한 밀도를 가정하면 옷감상의 모든 점은 해당 보로노이 영역의 넓이에 비례하는 질량을 갖는다. 두 레벨 메쉬상에 구축된 보로노이 영역을 생각해 보자. 성긴 레벨상의 점 i의 보로노이 영역과 겹치는 영역을 가지고 있는 모든 상세 레벨상의 점들의 집합을
Figure 112010005643003-pat00055
라고 정의하자.
Coarsening 과정중에 질량이 그대로 보존시키기 위해서 상세 레벨상의 점 j는 자신의 영역과 i의 영역이 겹치는 만큼을 i의 질량에 더해줘야 한다.
Figure 112010005643003-pat00056
의 모든 점에 대해 이 과정을 적용시킨 결과 점 i의 질량 행렬은
Figure 112010005643003-pat00057
과 같이 주어진다. 여기서 Aj는 j의 면적,
Figure 112010005643003-pat00058
는 j의 질량 행렬, Aji는 점 j의 영역중 점 i의 영역과 겹치는 면적을 나타낸다.
바람이나 공기 저항과 같은 외부힘의 크기 또한 보로노이 영역의 넓이에 비례한다. 이들 힘의 자코비언 또한 면적에 비례하므로 질량 coarsening과 똑 같은 과정을 외부힘 자코비언에 적용한다.
인장 힘의 자코비언 행렬
본 연구의 메쉬 계층구조에서, 성긴 레벨상의 삼각형은 네개의 상세 레벨 삼각형에 매핑할 수 있다. 성긴 레벨 삼각형상의 에너지 Tc는 해당하는 네 삼각형 에너지의 합으로 주어진다.
Figure 112010005643003-pat00059
여기서 S는 Tc의 네 삼각형을 포함하는 집합이다.
에너지를 보존하는 coarsening 과정을 구현하기 위해 먼저 Ec로부터 자코비언 행렬을 유도해 내야 한다. 이 성긴 레벨에서의 자코비언은 상세 레벨의 각 삼각형 에너지로부터 유도된 뒤 합해서 구할 수 있을런지도 모른다. 그러나 내부 자코비언은 외부힘 자코비언의 coarsening 경우와는 다르게 상세 레벨 삼각형의 자코비언 합으로 주어지지 않는다. 이것은 평면상의 내부 힘 자코비언이 삼각형 면적에 비례하지 않기 때문이다(수학식 8 참고).
이런 자코비언 텀의 비선형성을 반영하기 성긴 레벨 삼각형과 같은 변형(dc=df)을 가진 채 성긴 레벨 삼각형 면적으로 확장된 상세 레벨 삼각형을 생각해 보자. 성긴 레벨 삼각형 면적은 상세 레벨 삼각형 면적으로
Figure 112010005643003-pat00060
으로 주어진다. 여기서 확장된 삼각형상의 자코비언은 [수학식 8]을 이용해 구할수 있는데 여기서 상수는
Figure 112010005643003-pat00061
으로 주어지므로 다음 동등식을 유도할 수 있다.
Figure 112010005643003-pat00062
상세 레벨 삼각형이 면적 Ac중 Af를 차지하므로 해당 에너지를 확장된 삼각형 에너지 E물결 을 이용해 표시하면 [수학식 11]과 같다.
Figure 112010005643003-pat00063
[수학식 9]에 [수학식 11]을 적용하고 [수학식 10]을 이용해 자코비언을 구해보면 최종 자코비언은 다음식으로 주어진다.
Figure 112010005643003-pat00064
이렇게 확장된 삼각형상의 자코비언 행렬들은 해당하는 성긴 레벨 자코비언에 면적 비율만큼 웨이트를 가지고 합해지게 된다. 여기서 연관 관계는 상세 삼각형에서 성긴 레벨 삼각형으로의 맵핑으로 주어진다(기호는 도면 3 참조).
이 매핑을 이용하면 선분(edge)와 점에 대한 연관 관계도 찾을 수 있다. 예를 들어
Figure 112010005643003-pat00065
,
Figure 112010005643003-pat00066
,
Figure 112010005643003-pat00067
Figure 112010005643003-pat00068
에 해당하게 된다. 여기서 내부 힘 자코비언은 삼각형상의 각 선분(edge)으로 매핑시킬 수 있으므로, 각각의 상세 레벨 자코비언은 성긴 레벨 선분상에 해당하는 자코비언과 연관지어진다. 이 연관 관계를 이용하면 성긴 레벨 선분상의 각각의 자코비언을 구할수 있다.
Figure 112010005643003-pat00069
여기서
Figure 112010005643003-pat00070
는 성긴 레벨 삼각형의 선분 e와 연관되는 상레 레벨 삼각형 i의 자코비언 행렬이다.
여기서 주목할 사항은 성긴 레벨 삼각형들이 모두 평면 변형만 일어난 경우, 성긴 삼각형 자코비언 행렬은 위 방식으로 계산한 결과와 성긴 레벨 삼각형 에너지를 수식 그대로 미분해서 얻을 수 있는 결과가 일치한다는 점이다.
결과적으로 우리는 네개의 상세 레벨 자코비언을 weighted-sum해서 성긴 레벨 자코비언을 계산함으로써 간단한 연산을 통해 에너지를 보존하는 선형 operator를 만들 수 있다. 이 과정은 도면 2에서처럼 block 행렬을 쪼개고 합하는 단순한 연산으로 구성된다.
굽힘 힘 자코비언
굽힘 힘 자코비언에 대한 coarsening operator는 인장력 자코비언의 경우와 똑 같은 방식으로 만들어낼 수 있다. 이 과정에서는 삼각형 대신 굽힘 날개쌍을 대상으로 하며 인장력에 적용했던 coarsening 유도 과정에서 요소간의 연과 관계와 계산된 자코비언 식만 굽힘 모델의 것으로 대체해주면 결과를 얻을 수 있다. 성긴 굽힘날개쌍은 네개의 상세 밴딩날개쌍에 매핑된다. 이런 연관 관계는 도면 3과 같이 주어진다.
굽힘 힘 자코비언에 대한 수학식
Figure 112010005643003-pat00071
을 살펴보면 인장력의 경우와 달리 굽힘날개쌍을 확장했을 때 자코비언의 크기가 변함을 알 수 있다. 그래서 확장 후 자코비언은 다음과 같이 주어진다.
Figure 112010005643003-pat00072
여기서 Af와 Ac는 각각 확장 전후의 면적이다.
이상 두가지 차이를 인장력 coarsening 과정에 대입해서 성긴 굽힘날개쌍의 각 선분에 매핑되는 자코비언은 다음과 같이 주어진다.
Figure 112010005643003-pat00073
여기서
Figure 112010005643003-pat00074
는 성긴레벨의 선분 e와 연관된 상세 레벨 굽힘날개쌍의 자코비언이다.
Restriction operator
바람직한 실시예에 따른 본 발명은 리스트릭션연산(Restriction Operation)단계를 더 포함하는데, 이러한 연산은 Restriction Operator에 의해 이루어진다.
Restriction operator는 상세 레벨(하위 레벨 메쉬)의 [수학식 1] 및 [수학식 2]의 오른쪽 항 b를 이용하여 성긴 레벨(상위 레벨 메쉬)의 b를 계산하는 operator이다. 모든 상세 레벨의 점은 그 점을 포함하는 하나의 성긴 레벨 삼각형의 세 꼭지점에 Restriction Operator를 통해 물리 벡터를 분배한다. 오른쪽 항 b는 힘과 속도 등 물리 벡터를 포함하고 있으므로 두 레벨간의 물리적인 일관성을 유지하기 위해서는 이 Operator 역시 에너지 보존법칙에 따라야 한다. 이를 위해 다음과 같이 삼각형의 무게중심좌표(barycentric coordinates)를 이용하여 계산한다. 상세 레벨의 점의 위치 p가 성긴 레벨의 삼각형 꼭지점 위치 p0, p1, p2 와 barycentric coordinate α, β, (1-α-β) 를 이용하여 p = α×p0 + β×p1 + (1-α-β)×p2 과 같이 주어진다고 하면 상세레벨의 b가 Restriction operator에 의해 성긴 레벨 삼각형 꼭지점 0, 1, 2에 분배되는 벡터값은 b0 = α×b, b1 = β×b, b2 = (1-α-β)×b 와 같이 주어진다.
Prolongation operator
바람직한 실시예에 따른 본 발명은 프로롱게이션(Prolongation Operation)단계를 더 포함하는데, 이러한 연산은 Prolongation Operator에 의해 이루어진다.
이 과정은 표준 멀티그리드 방법과 똑같이 성긴 레벨(상위 레벨 메쉬)의 물리 벡터를 선형 보간하여 상세 레벨(하위 레벨 메쉬)의 물리 벡터를 계산하는 방식을 사용한다. 즉 Restriction operator에서처럼 상세 레벨의 점의 위치 p가 성긴 레벨의 삼각형 꼭지점 위치 p0, p1, p2 의 barycentric coordinate α, β, (1-α-β) 로 표현되었다면 Prolongation operator에 의해 상세 레벨상의 점의 물리 벡터 b = α×b0 + β×b1 + (1-α-β)×b2 가 된다.
실험 결과
실험 세팅
본 연구에서는 페티엄 4 cpu, Nvidia Geforce 7800 GTX GPU, 2GB 메모리를 가진 PC에서 의상 시뮬레이터를 구현했다. 시뮬레이터는 삼각형 기반 인장(stretching/shearing) 모델, 굴곡 기반 굽힘 모델, second-order backward difference formula를 가진 암시적 적분법을 채택했다.
인체와 의상 사이의 충돌 처리를 위해서는 인체 삼각형과 의상의 점 사이의 충돌만 검사한다. 접촉 제약은 [reference: Baraff D, Witkin A. Large steps in cloth simulation. In Proceedings of ACM SIGGRAPH 98, ACM Press, 1998; 43-54.]와 같이 선형시스템에 추가했다. 의상-의상 충돌을 처리하기 위해서는 점들 사이의 거리를 계산하고 일정 거리 이하로 두점이 좁혀지면 이 점들을 서로 떨어뜨리기 위해 스프링 힘을 추가했다. 스프링 힘은 삼각형 기반 힘을 처리하는 방식과 똑같이 멀티그리드 프레임워크에 추가했다.
본 발명에 포함된 모든 실험은 3레벨 계층구조를 가진 V-cycle 멀티그리드 기법을 사용했다. W-cycle이나 full 멀티그리드 같은 다른 cycling 스킴도 실험해 보았지만 성능 향상은 없었다. 계층구조의 레벨 수 또한 다양하게 실험해 본 결과 3레벨이 가장 나은 성능을 보였다.
본 발명에서는 smoothing operator의 반복회수가 사용자에 의해 고정되는 표준 멀티그리드 기법과는 달리 선형 시스템의 residual 에러를 이용하여 반복횟수를 조절했다. 표준 멀티그리드 기법같은 경우는 다양한 변형 모드나 레벨에 한정된 주파수 에러에 적응적으로 반응하지 못한다.
예를 들어 표준 멀티그리드는 어떤 레벨에 해당하는 주파수 에러가 없더라도 불필요하게 이터레이션을 수행하게 된다. 이것과는 달리, 본 연구는 사용자가 지정한 residual error의 감소 비율로 정해진 residual error에 도달할때까지 이터레이션을 반복하므로 변형 모드나 레벨에 한정된 주파수 여부에 상관없이 효율적으로 동작한다. 모든 실험에서 감소 비율은 0.4로 고정시켰다.
충돌 제약은 멀티그리드 프레임워크에 간단하게 포함시켰다. 모든 상세 레벨의 제약점을 성긴 레벨에 그대로 전이시켰다.
결과
의상 시뮬레이션의 성능은 메쉬 복잡도와 재질의 강성도(stiffness)에 따라 좌우된다. 이 두가지 측면을 고려하여 실험을 설계했다. 먼저, 메쉬 복잡도를 증가시키면서 본 연구에서 제안한 방법(ECMG)과 preconditioned 켤레경사도법(PCG)의 결과를 비교했다.
이 실험에서 면 소재의 물성 재질을 사용했고 threshold residual 에러는 10-4 이었다. 의상을 떨어뜨리는 실험에 대한 평균 계산 시간은 아래 테이블 3에 주어진다.
비록 우리 방법이 복잡도에 선형 비례하지는 않지만 2만개 질점 의상에 대해 preconditioned 켤레경사도법보다 10배 가까이 빠른 속도를 보여줬다.
다양한 재질(테이블2)에 대한 속도 비교 결과는 테이블 4에 주어진다. 강성도는 실제와 가상 의상을 눈으로 비교하여 결정했다. 이 실험에서는 10-4 residual 에러와 4491개 질점을 가진 의상을 이용했다. 본 연구에서 제안한 ECMG는 재질에 상관 없이 일정한 속도를 보여준 반면 PCG는 강성도가 증가함에 따라 속도도 느려졌다.
인체와 의상 사이의 충돌 개수가 ECMG의 성능에 어떤 영향을 끼치는지 살펴보기 위해 아바타에 의상을 입히고 걷게 하는 시뮬레이션을 수행했다. ECMG는 의상을 떨어뜨리는 실험에서보다 2-3배 속도가 저하된 반면 PCG는 거의 비슷한 속도를 보여줬다. 이것은 현재 구현된 레벨 사이의 간단한 충돌 제약 전이 스킴때문이다. 충돌 개수가 ECMG에 영향을 주긴 하지만 2만개 질점 의상에 대해 4배나 빠른 속도를 보여줬다.
ECMG의 빠른 속도에 힘입어 본 연구는 인터랙티브 의상 프로토타이핑 시스템에 적용될 수 있었다. 이 시스템에서는 사용자는 2차원 의상 패턴의 외형을 변형함으로써 시간 낭비 없이 바로 3차원 의상을 디자인해 볼 수 있다. ECMG는 약 만개 질점 의상을 인터랙티브하게 디자인할 수 있게 해 준다.
Figure 112010005643003-pat00075
Figure 112010005643003-pat00076

결론
본 연구는 효율적인 멀티그리드 기반 의상 시뮬레이션 기법을 제안하였다. 일반적인 옷감 모델이 block-대칭 시스템 행렬을 도출한다는 사실도 증명했고, Block 대칭 선형 시스템을 켤레경사도법으로 풀때 30% 속도향상을 가져오는 빠른 행렬-벡터 곱셉 연산 기법 또한 제안하였다.
본 연구의 주된 기여도는 멀티그리드 기법에서 에너지를 보존하도록 성긴 레벨 선형 시스템을 구축하는 방법을 제안했다는 점이다. 그 결과 기존에는 불가능했던 복잡한 의상 시뮬레이션에도 멀티그리드 기법을 적용하여 속도를 향상시킬 수 있었다. 이 연구를 개선할 몇 가지 향후 연구 방향이 있다.
멀티그리드 프레임워크에서의 충돌처리: 본 연구에서 제안한 기법은 많은 충돌이 일어나는 상황에서 속도가 저하된다. 시뮬레이션 과정에서 고정 제약점만 주어진다면 algebraic 멀티그리드를 사용하여 속도를 향상시킬수 있을 것이다. 하지만 문제는 의상 시뮬레이션의 경우 sliding 제약이 대부분을 차지한다는 점이다. 따라서 제안하는 방법은 제약점 처리가 선형 시스템 풀이와 분리되는 [reference: Bridson R, Marino S, Fedkiw R. Simulation of clothing with folds and wrinkles. In Proceedings of ACM SIGGRAPH/Eurographics Symposium on Computer Animation(SCA 2003), ACM Press, 2003; 28-36.]과 같은 시뮬레이션 기법에서 보다 효율적일 것이다.
Smoothing 이터레이션 제어의 최적화: 현재 smoothing 이터레이션 수는 사용자가 지정한 residual 에러를 이용해 조절한다. 비록 이 방법이 표준 멀티그리드보다 나은 성능을 보여주지만 residual error가 줄어든 속도에 기반해서 이터레이션을 제어하는 것과 같은 보다 최적화된 방법이 있을 것이다.
대수 멀티그리드로 확장: 본 연구가 제안한 기법은 기하학적 멀티그리드 기법이다. 이 방법은 리본이나 벨트처럼 얇은 패턴의 경우에도 불필요하게 많은 삼각형을 생성하게 만든다. 대수 멀티그리드는 속도가 좀 느리긴 하지만 메쉬에 기반하지 않고 선형 시스템에 기반하여 레벨을 구축하기 때문에 보다 높은 확장성을 가진다. 본 연구에서 제안한 coarsening operator도 대수 멀티그리드 기법에 적용할 수 있도록 변경해야 할 것이다.
또한, 본 발명의 바람직한 실시예에 따른 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 프로그램이 기록된 컴퓨터가 판독가능한 기록매체에는, 상술한 메쉬계층구조형성단계를 수행하는 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 프로그램이 기록된다.
또한, 본 발명의 바람직한 실시예에 따른 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 프로그램이 기록된 컴퓨터가 판독가능한 기록매체에는, 상술한 스무싱연산(Smoothing Operation)단계, 코어스닝연산(Coarsening Operation)단계, 리스트릭션연산(Restriction Operation)단계, 프로롱게이션(Prolongation Operation)단계를 각각 더 수행하는 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 프로그램이 기록될 수 있다.
컴퓨터가 판독가능한 기록매체란, 예를 들면 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 장치, 디바이스, 또는 전파 매체일 수 있지만, 이들에 한정되는 것은 아니며, 컴퓨터가 판독가능한 기록매체의 보다 구체적인 예들은 컴퓨터 디스켓(자기), 랜덤 액세스 메모리(RAM)(전자), 판독 전용 메모리(ROM)(전자), 소거 가능 프로그램 가능한 판독 전용 메모리(EPROM, EEPROM, 또는 플래시 메모리)(전자), 광섬유(광학), DVD(digital versatile disc) 또는 CDROM(compact disc read-only memory)와 같은 광학 매체를 포함할 것이다.
또한, 프로그램이 인쇄되어 있는 종이 또는 다른 적당한 매체일 수도 있음을 유의해야 하는데, 그 이유는 프로그램은 종이 또는 다른 매체의 광학적 스캐닝을 통하여, 전자적으로 캡쳐된 다음, 필요에 따라 컴파일(compile)되거나, 해석(interpret)되거나 또는 적절한 방법으로 처리되고 나서, 컴퓨터 메모리에 저장될 수 있기 때문이다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (10)

  1. 딜러니 삼각화(Delaunay Triangulation) 기법을 적용하여 다수 개의 레벨 메쉬가 포함되는 메쉬계층구조를 형성하는 멀티그리드 방법에 있어서,
    n레벨 메쉬는, 그 단위 메쉬의 삼각형 면적 an이 a1×4n-1(a1은 1레벨 메쉬의 삼각형 면적)이 되도록 설정하여 메쉬 계층구조를 형성하는 메쉬계층구조형성단계; 를 포함하고,
    상기 메쉬계층구조형성단계에서 형성된 최하위 레벨 메쉬에게 멀티그리드 사이클에서 주어지는 선형시스템 [수학식 1]
    Figure 112012019105205-pat00122
    (h는 시간 간격, M은 질량 행렬, f는 힘 벡터, x는 위치 벡터, v는 속도 벡터, △v는 미지수 벡터, n은 시간 간격(단, 상기 수학식 1의 n에만 적용)) 및
    Figure 112012019105205-pat00123
    (A는 3n×3n의 시스템 행렬으로
    Figure 112012019105205-pat00124
    , b는 힘 파트로서
    Figure 112012019105205-pat00125
    )를 이용하여 최하위 레벨 메쉬의 힘 파트 b를 산출하고,
    상위 레벨 메쉬의 삼각형 내부에 포함되는 하위 레벨 메쉬 점의 위치 벡터 p의 힘 파트 벡터값 b가 상기 상위 레벨 메쉬의 삼각형의 세 꼭지점(p0, p1, p2)에 각각 분배되는 힘 파트 벡터값 b0, b1, b2는, 다음 수학식에 의해 산출되는 리스트릭션연산(Restriction Operation)단계;
    [수학식]
    b0 = α×b, b1 = β×b, b2 = (1-α-β)×b
    (여기서, α, β, 1-α-β는, p = α×p0 + β×p1 + (1-α-β)×p2로 표현되는 p의 무게중심좌표(Barycentric Coordinates) 값임)
    를 더 포함하는 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 방법.
  2. 제 1항에 있어서,
    켤레경사도법(Conjugate Gradient Method)의 반복계산(Iteration)을 수행하는 스무싱연산(Smoothing Operation) 단계를 더 포함하며,
    상기 스무싱연산 단계는,
    (a) 상기 메쉬계층구조형성단계에서 형성된 각 레벨 메쉬마다 멀티그리드 사이클에서 주어지는 선형시스템 [수학식 1]
    Figure 112011053225430-pat00077
    (h는 시간 간격, M은 질량 행렬, f는 힘 벡터, x는 위치 벡터, v는 속도 벡터, △v는 미지수 벡터, n은 시간 간격(단, 상기 수학식 1의 n에만 적용))을 이용하여 표준 선형시스템폼
    Figure 112011053225430-pat00078
    에서의 3n×3n의 시스템 행렬인 A를
    Figure 112011053225430-pat00079
    로 산출하는 단계;
    (b)
    Figure 112011053225430-pat00080
    를 이용하여, 상기 표준 선형시스템폼에서의 A를 M과 외부 힘의 자코비언 Jext와 내부 힘 자코비언 Jint로 분해하여, M, Jext 및 Jint를 산출하는 단계;
    (c) 3n개의 원소를 갖는 임의의 벡터 d와 M+Jext+Jint를 나타내는 블록 대칭인 행렬 A를 입력으로 하여 0≤i≤n-1(n은 특정 레벨 메쉬에서의 점(vertex)의 개수)인 모든 i에 대해 연산 (Ad)i=Bi×di(B는 M+Jext 나타내는 대각 블록 행렬, Bi는 B의 i행, i열에 있는 3×3 블록 행렬, Ad는 3n×1의 벡터, (Ad)i는 Ad의 3개 원소를 갖는 i번째 점의 벡터, di는 d의 i번째 점의 벡터)을 반복 수행하는 단계;
    (d) i<j, 0≤i, j<n 및
    Figure 112011053225430-pat00081
    를 만족하는 모든 (i, j)쌍에 대해
    연산 1
    Figure 112011053225430-pat00082
    (
    Figure 112011053225430-pat00083
    Figure 112011053225430-pat00084
    의 i행, j열에 있는 3×3 블록 행렬),
    연산 2 (Ad)i=(Ad)i+c 및
    연산 3 (Ad)j=(Ad)j+c
    를 순차적으로 반복 수행하여 출력 Ad(A와 d의 곱)를 산출하는 단계; 를 포함하는 것을 특징으로 하는 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 방법.
  3. 제 1항에 있어서,
    상기 메쉬계층구조형성단계에서 형성된 각 레벨 메쉬마다 멀티그리드 사이클에서 주어지는 선형시스템 [수학식 1]
    Figure 112011053225430-pat00085
    (h는 시간 간격, M은 질량 행렬, f는 힘 벡터, x는 위치 벡터, v는 속도 벡터, △v는 미지수 벡터, n은 시간 간격(단, 상기 수학식 1의 n에만 적용)) 및
    Figure 112011053225430-pat00086
    (A는 3n×3n의 시스템 행렬으로
    Figure 112011053225430-pat00087
    , b는 힘 파트로서
    Figure 112011053225430-pat00088
    )를 이용하여 각 레벨 메쉬별로 각각의 시스템 행렬 A를 산출하는 코어스닝연산(Coarsening Operation)단계; 를 더 포함하는 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 방법.
  4. 삭제
  5. 제 1항에 있어서,
    상위 레벨 메쉬 삼각형의 세 꼭지점의 위치 벡터 p0, p1, p2의 각 힘 파트 벡터값 b0, b1, b2가, 상기 상위 레벨 메쉬 삼각형 내부에 포함되는 하위 레벨 메쉬 점 p에 분배되는 힘 파트 벡터값 b는 α×b0 + β×b1 + (1-α-β)×b2 (여기서, α, β, 1-α-β는, p = α×p0 + β×p1 + (1-α-β)×p2로 표현되는 p의 무게중심좌표(Barycentric Coordinates) 값임)로 산출되는 프로롱게이션(Prolongation Operation)단계; 를 더 포함하는 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 방법.
  6. 딜러니 삼각화(Delaunay Triangulation) 기법을 적용하여 다수 개의 레벨 메쉬가 포함되는 메쉬계층구조를 형성하는 멀티그리드 프로그램이 기록된 컴퓨터가 판독가능한 기록매체에 있어서,
    n레벨 메쉬는, 그 단위 메쉬의 삼각형 면적 an이 a1×4n-1(a1은 1레벨 메쉬의 삼각형 면적)이 되도록 설정하여 메쉬 계층구조를 형성하는 메쉬계층구조형성단계; 를 포함하고,
    상기 메쉬계층구조형성단계에서 형성된 최하위 레벨 메쉬에게 멀티그리드 사이클에서 주어지는 선형시스템 [수학식 1]
    Figure 112012019105205-pat00126
    (h는 시간 간격, M은 질량 행렬, f는 힘 벡터, x는 위치 벡터, v는 속도 벡터, △v는 미지수 벡터, n은 시간 간격(단, 상기 수학식 1의 n에만 적용)) 및
    Figure 112012019105205-pat00127
    (A는 3n×3n의 시스템 행렬으로
    Figure 112012019105205-pat00128
    , b는 힘 파트로서
    Figure 112012019105205-pat00129
    )를 이용하여 최하위 레벨 메쉬의 힘 파트 b를 산출하고,
    상위 레벨 메쉬의 삼각형 내부에 포함되는 하위 레벨 메쉬 점의 위치 벡터 p의 힘 파트 벡터값 b가 상기 상위 레벨 메쉬의 삼각형의 세 꼭지점(p0, p1, p2)에 각각 분배되는 힘 파트 벡터값 b0, b1, b2는, 다음 수학식에 의해 산출되는 리스트릭션연산(Restriction Operation)단계;
    [수학식]
    b0 = α×b, b1 = β×b, b2 = (1-α-β)×b
    (여기서, α, β, 1-α-β는, p = α×p0 + β×p1 + (1-α-β)×p2로 표현되는 p의 무게중심좌표(Barycentric Coordinates) 값임)
    를 더 포함하는 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 프로그램이 기록된 컴퓨터가 판독가능한 기록매체.
  7. 제 6항 있어서,
    켤레경사도법(Conjugate Gradient Method)의 반복계산(Iteration)을 수행하는 스무싱연산(Smoothing Operation) 단계를 더 포함하며,
    상기 스무싱연산 단계는,
    (a) 상기 메쉬계층구조형성단계에서 형성된 각 레벨 메쉬마다 멀티그리드 사이클에서 주어지는 선형시스템 [수학식 1]
    Figure 112011053225430-pat00093
    (h는 시간 간격, M은 질량 행렬, f는 힘 벡터, x는 위치 벡터, v는 속도 벡터, △v는 미지수 벡터, n은 시간 간격(단, 상기 수학식 1의 n에만 적용))을 이용하여 표준 선형시스템폼
    Figure 112011053225430-pat00094
    에서의 3n×3n의 시스템 행렬인 A를
    Figure 112011053225430-pat00095
    로 산출하는 단계;
    (b)
    Figure 112011053225430-pat00096
    를 이용하여, 상기 표준 선형시스템폼에서의 A를 M과 외부 힘의 자코비언 Jext와 내부 힘 자코비언 Jint로 분해하여, M, Jext 및 Jint를 산출하는 단계;
    (c) 3n개의 원소를 갖는 임의의 벡터 d와 M+Jext+Jint를 나타내는 블록 대칭인 행렬 A를 입력으로 하여 0≤i≤n-1(n은 특정 레벨 메쉬에서의 점(vertex)의 개수)인 모든 i에 대해 연산 (Ad)i=Bi×di(B는 M+Jext 나타내는 대각 블록 행렬, Bi는 B의 i행, i열에 있는 3×3 블록 행렬, Ad는 3n×1의 벡터, (Ad)i는 Ad의 3개 원소를 갖는 i번째 점의 벡터, di는 d의 i번째 점의 벡터)을 반복 수행하는 단계;
    (d) i<j, 0≤i, j<n 및
    Figure 112011053225430-pat00097
    를 만족하는 모든 (i, j)쌍에 대해
    연산 1
    Figure 112011053225430-pat00098
    (
    Figure 112011053225430-pat00099
    Figure 112011053225430-pat00100
    의 i행, j열에 있는 3×3 블록 행렬),
    연산 2 (Ad)i=(Ad)i+c 및
    연산 3 (Ad)j=(Ad)j+c
    를 순차적으로 반복 수행하여 출력 Ad(A와 d의 곱)를 산출하는 단계; 를 포함하는 것을 특징으로 하는 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 프로그램이 기록된 컴퓨터가 판독가능한 기록매체.
  8. 제 6항에 있어서,
    상기 메쉬계층구조형성단계에서 형성된 각 레벨 메쉬마다 멀티그리드 사이클에서 주어지는 선형시스템 [수학식 1]
    Figure 112011053225430-pat00101
    (h는 시간 간격, M은 질량 행렬, f는 힘 벡터, x는 위치 벡터, v는 속도 벡터, △v는 미지수 벡터, n은 시간 간격(단, 상기 수학식 1의 n에만 적용)) 및
    Figure 112011053225430-pat00102
    (A는 3n×3n의 시스템 행렬으로
    Figure 112011053225430-pat00103
    , b는 힘 파트로서
    Figure 112011053225430-pat00104
    )를 이용하여 각 레벨 메쉬별로 각각의 시스템 행렬 A를 산출하는 코어스닝연산(Coarsening Operation)단계; 를 더 포함하는 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 프로그램이 기록된 컴퓨터가 판독가능한 기록매체.
  9. 삭제
  10. 제 6항에 있어서,
    상위 레벨 메쉬 삼각형의 세 꼭지점의 위치 벡터 p0, p1, p2의 각 힘 파트 벡터값 b0, b1, b2가, 상기 상위 레벨 메쉬 삼각형 내부에 포함되는 하위 레벨 메쉬 점 p에 분배되는 힘 파트 벡터값 b는 α×b0 + β×b1 + (1-α-β)×b2 (여기서, α, β, 1-α-β는, p = α×p0 + β×p1 + (1-α-β)×p2로 표현되는 p의 무게중심좌표(Barycentric Coordinates) 값임)로 산출되는 프로롱게이션(Prolongation Operation)단계; 를 더 포함하는 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 프로그램이 기록된 컴퓨터가 판독가능한 기록매체.
KR1020100007377A 2009-01-29 2010-01-27 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 방법 및 그 프로그램이 기록된 컴퓨터가 판독가능한 기록매체 KR101178443B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020090006917 2009-01-29
KR20090006917 2009-01-29

Publications (2)

Publication Number Publication Date
KR20100088081A KR20100088081A (ko) 2010-08-06
KR101178443B1 true KR101178443B1 (ko) 2012-08-30

Family

ID=42754392

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100007377A KR101178443B1 (ko) 2009-01-29 2010-01-27 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 방법 및 그 프로그램이 기록된 컴퓨터가 판독가능한 기록매체

Country Status (1)

Country Link
KR (1) KR101178443B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107945217A (zh) * 2017-11-20 2018-04-20 北京宇航系统工程研究所 一种适用于自动装配的图像特征点对快速筛选方法及系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140149091A1 (en) * 2010-11-15 2014-05-29 Fxgear Inc. Fluid simulation system and method using multigrid
WO2014137042A1 (ko) * 2013-03-04 2014-09-12 동국대학교 산학협력단 V 사이클을 이용한 멀티그리드 방법 및 장치
KR101470488B1 (ko) * 2013-03-04 2014-12-09 동국대학교 산학협력단 V 사이클을 이용한 멀티그리드 방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107945217A (zh) * 2017-11-20 2018-04-20 北京宇航系统工程研究所 一种适用于自动装配的图像特征点对快速筛选方法及系统
CN107945217B (zh) * 2017-11-20 2020-07-14 北京宇航系统工程研究所 一种适用于自动装配的图像特征点对快速筛选方法及系统

Also Published As

Publication number Publication date
KR20100088081A (ko) 2010-08-06

Similar Documents

Publication Publication Date Title
Li et al. An implicit frictional contact solver for adaptive cloth simulation
Müller et al. Point based animation of elastic, plastic and melting objects
Gilles et al. Frame-based elastic models
Dapogny et al. Geometric constraints for shape and topology optimization in architectural design
Narain et al. Adaptive anisotropic remeshing for cloth simulation
Bender et al. A survey on position‐based simulation methods in computer graphics
Moore et al. A survey of computer-based deformable models
Luo et al. Reactive 2D/3D garment pattern design modification
Ng et al. Computer graphics techniques for modeling cloth
Gibson et al. A survey of deformable modeling in computer graphics
Treuille et al. Keyframe control of smoke simulations
Iben et al. Generating surface crack patterns
US10242134B2 (en) Algebraic multigrid method for cloth simulation
US11763048B2 (en) Computer simulation of physical fluids on a mesh in an arbitrary coordinate system
Adams et al. Meshless modeling of deformable shapes and their motion
KR101178443B1 (ko) 의상 시뮬레이션을 위한 물리법칙에 기반한 멀티그리드 방법 및 그 프로그램이 기록된 컴퓨터가 판독가능한 기록매체
Wang et al. Fast energy-based surface wrinkle modeling
Gilles et al. Frame-based interactive simulation of complex deformable objects
Oh et al. A physically faithful multigrid method for fast cloth simulation
Sauvage et al. Length constrained multiresolution deformation for surface wrinkling
JP2009301149A (ja) 非線形の有限要素法による構造解析方法、及びプログラム、記録媒体、シミュレーション装置
McDonnell et al. Dynamic subdivision-based solid modeling
Huang et al. Interactive mesh deformation with pseudo material effects
McDonnell et al. A novel framework for physically based sculpting and animation of free-form solids
Palmer et al. Stability and complexity study of animated elastically deformable objects

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150824

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160801

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170725

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180612

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190715

Year of fee payment: 8