KR20200045190A - 3차원 모델 리깅을 위한 3차원 모델 표면의 스키닝 웨이트 인터페이스 방법 및 그 장치 - Google Patents
3차원 모델 리깅을 위한 3차원 모델 표면의 스키닝 웨이트 인터페이스 방법 및 그 장치 Download PDFInfo
- Publication number
- KR20200045190A KR20200045190A KR1020180125912A KR20180125912A KR20200045190A KR 20200045190 A KR20200045190 A KR 20200045190A KR 1020180125912 A KR1020180125912 A KR 1020180125912A KR 20180125912 A KR20180125912 A KR 20180125912A KR 20200045190 A KR20200045190 A KR 20200045190A
- Authority
- KR
- South Korea
- Prior art keywords
- skinning weight
- skinning
- weight
- spline
- model
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 167
- 238000009792 diffusion process Methods 0.000 claims description 67
- IYLGZMTXKJYONK-ACLXAEORSA-N (12s,15r)-15-hydroxy-11,16-dioxo-15,20-dihydrosenecionan-12-yl acetate Chemical compound O1C(=O)[C@](CC)(O)C[C@@H](C)[C@](C)(OC(C)=O)C(=O)OCC2=CCN3[C@H]2[C@H]1CC3 IYLGZMTXKJYONK-ACLXAEORSA-N 0.000 claims description 55
- IYLGZMTXKJYONK-UHFFFAOYSA-N ruwenine Natural products O1C(=O)C(CC)(O)CC(C)C(C)(OC(C)=O)C(=O)OCC2=CCN3C2C1CC3 IYLGZMTXKJYONK-UHFFFAOYSA-N 0.000 claims description 55
- 238000004364 calculation method Methods 0.000 claims description 52
- 238000009826 distribution Methods 0.000 claims description 20
- 239000011159 matrix material Substances 0.000 description 42
- 230000006870 function Effects 0.000 description 15
- 239000013598 vector Substances 0.000 description 13
- 210000000988 bone and bone Anatomy 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000008014 freezing Effects 0.000 description 8
- 238000007710 freezing Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 239000003973 paint Substances 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012800 visualization Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000013213 extrapolation Methods 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000011555 rabbit model Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 241000870659 Crassula perfoliata var. minor Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000012887 quadratic function Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2012—Colour editing, changing, or manipulating; Use of colour codes
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
3차원 모델 리깅을 위한 3차원 모델 표면의 스키닝 웨이트 인터페이스 방법 및 그 장치가 개시된다. 본 발명의 일 실시예에 따른 스키닝 웨이트 인터페이스 방법은 3차원 모델의 스키닝 웨이트 인터페이스 방법에 있어서, 상기 3차원 모델에서 스플라인(spline)을 생성하는 단계; 및 상기 생성된 스플라인에 기초하여 상기 3차원 모델의 스키닝 웨이트를 계산하는 단계를 포함하고, 상기 스키닝 웨이트를 계산하는 단계는 미리 설정된 스플라인 제약 조건을 만족하는 에너지를 최소화함으로써, 상기 3차원 모델의 스키닝 웨이트를 계산할 수 있다.
Description
본 발명은 3차원 모델 표면의 스키닝 웨이트 인터페이스 기술에 관한 것으로, 보다 상세하게는 3차원 모델 표면의 스플라인(spline) 기반 인터페이스를 이용하여 스키닝 웨이트를 편집할 수 있는 스키닝 웨이트 인터페이스 방법 및 그 장치에 관한 것이다.
캐릭터에 애니메이션을 적용하기에 앞서 이루어져야 할 요소로 캐릭터 리깅이 있으며, 캐릭터 리깅은 해당 캐릭터가 어떻게 변형될지를 설정하는 일이다.
리깅의 첫 번째 요소는 우선 뼈대를 생성하는 일이고, 두 번째 요소는 그 뼈대가 움직임에 따라 캐릭터 피부가 어떻게 변형되는지를 설정하는 일이다. 여기서, 뼈대의 움직임에 따라 캐릭터 피부가 어떻게 변형되는지를 설정하는 것을 스키닝 웨이트(skinning weight)라고 한다.
스키닝 웨이트란 각 뼈대가 변형 될 때, 이에 대응되는 피부에서의 변형률을 0에서 1로 바운드 되는 스칼라 필드로 표현한 값을 의미하는 것으로, 스키닝 웨이트가 디스크리트하게 정의되어 있으면 해당 변형도 그의 상응하는 형태로 되며, 스키닝 웨이트가 부드럽게 분포되어있을 경우 좀 더 자연스러운 결과를 볼 수 있다.
가상 캐릭터의 변형(deformation)은 기본 뼈대의 움직임에 따른 실시간 계산을 위해 Linear Blend Skinning(LBS) 혹은 Dual Quaternion Skinning(DQS)와 같은 모델을 이용하며, 이는 뼈대와 캐릭터 피부간의 상관관계를 표현하는 스키닝 웨이트 (skinning weight)의 품질에 큰 영향을 받는다.
최근 스키닝 웨이트를 계산하기 위한 자동 방법의 발전에도 불구하고 고품질의 캐릭터 변형을 생성하려면 수동 개입이 여전히 필수적이다. 그러나 현재 모델링 소프트웨어는 스키닝 웨이트의 수동 정의를 위한 효율적인 도구를 제공하지 않는다. 즉, 유저가 원하는 결과를 자연스럽게 얻어낼 수 있도록 도와주는 인터페이스적인 측면에서의 연구는 많지 않았다.
페인트 기반의 인터페이스는 수동적인 스키닝 웨이트 편집 인터페이스로, 지금도 산업에선 가장 널리 쓰이고 있는 인터페이스이며, 사용자에게 높은 수준의 자유를 제공하지만 숙련된 스킬을 필요로 하고, 많은 노력과 시간을 필요로 하는 문제점이 있다.
본 발명의 실시예들은, 3차원 모델 표면의 스플라인(spline) 기반 인터페이스를 이용하여 스키닝 웨이트를 편집할 수 있는 스키닝 웨이트 인터페이스 방법 및 그 장치를 제공한다.
본 발명의 일 실시예에 따른 스키닝 웨이트 인터페이스 방법은 3차원 모델의 스키닝 웨이트 인터페이스 방법에 있어서, 상기 3차원 모델에서 아이소라인(isoline)을 획득하는 단계; 및 상기 획득된 아이소라인에 기초하여 상기 3차원 모델의 스키닝 웨이트를 계산하는 단계를 포함한다.
상기 스키닝 웨이트를 계산하는 단계는 상기 획득된 아이소라인 및 보간 기반 방법과 확산 기반 방법이 조합된 하이브리드 방법에 기초하여 상기 3차원 모델의 스키닝 웨이트를 계산할 수 있다.
상기 스키닝 웨이트를 계산하는 단계는 미리 설정된 제약 조건을 만족하는 에너지를 최소화함으로써, 상기 3차원 모델의 스키닝 웨이트를 계산할 수 있다.
상기 아이소라인을 획득하는 단계는 상기 3차원 모델의 메쉬 표면에 스키닝 웨이트가 지정되면 상기 지정된 스키닝 웨이트의 등고 값(iso-value)에 대한 아이소라인을 획득할 수 있다.
본 발명의 다른 일 실시예에 따른 스키닝 웨이트 인터페이스 방법은 3차원 모델의 스키닝 웨이트 인터페이스 방법에 있어서, 상기 3차원 모델에서 스플라인(spline)을 생성하는 단계; 및 상기 생성된 스플라인에 기초하여 상기 3차원 모델의 스키닝 웨이트를 계산하는 단계를 포함한다.
상기 스플라인을 생성하는 단계는 상기 3차원 모델의 메쉬 표면에 스키닝 웨이트가 지정되면 상기 지정된 스키닝 웨이트의 등고 값(iso-value)에 대한 아이소라인을 획득하고, 상기 획득된 아이소라인을 이용하여 상기 스플라인을 생성할 수 있다.
상기 스키닝 웨이트를 계산하는 단계는 미리 설정된 스플라인 제약 조건을 만족하는 에너지를 최소화함으로써, 상기 3차원 모델의 스키닝 웨이트를 계산할 수 있다.
상기 스키닝 웨이트를 계산하는 단계는 상기 3차원 모델에 하나의 등고 값의 스플라인만이 존재하는 경우 확산 기반 방법에 기초하여 상기 스키닝 웨이트를 계산하고, 상기 3차원 모델에 둘 이상의 등고 값의 스플라인들이 존재하는 경우 보간 기반 방법과 확산 기반 방법이 조합된 하이브리드 방법에 기초하여 상기 스키닝 웨이트를 계산할 수 있다.
상기 스키닝 웨이트를 계산하는 단계는 상기 생성된 스플라인의 최소 등고 값에 기초하여 상기 3차원 모델의 표면 영역을 보간 기반 영역과 확산 기반 영역으로 분할하고, 상기 분할된 보간 기반 영역과 확산 기반 영역에 대하여 보간 기반 방법, 확산 기반 방법으로 나누어 상기 스키닝 웨이트를 계산할 수 있다.
상기 스키닝 웨이트를 계산하는 단계는 미리 설정된 임계 값을 이용하여 상기 임계 값을 초과하는 영역을 국부 계산 영역으로 설정하고, 상기 설정된 국부 계산 영역에 대한 상기 스키닝 웨이트를 계산할 수 있다.
상기 스키닝 웨이트를 계산하는 단계는 상기 생성된 스플라인에서 스키닝 웨이트의 분포에 대한 기울기를 제어함으로써, 상기 3차원 모델의 스키닝 웨이트를 계산할 수 있다.
상기 스키닝 웨이트를 계산하는 단계는 상기 생성된 스플라인의 앵커 포인트들에 배정된 등고 값들을 스키닝 웨이트로 변환하는 앵커 웨이트에 기초하여 상기 3차원 모델의 스키닝 웨이트를 계산할 수 있다.
본 발명의 일 실시예에 따른 스키닝 웨이트 인터페이스 장치는 3차원 모델의 스키닝 웨이트 인터페이스 장치에 있어서, 상기 3차원 모델에서 아이소라인(isoline)을 획득하는 획득부; 및 상기 획득된 아이소라인에 기초하여 상기 3차원 모델의 스키닝 웨이트를 계산하는 계산부를 포함한다.
상기 계산부는 상기 획득된 아이소라인 및 보간 기반 방법과 확산 기반 방법이 조합된 하이브리드 방법에 기초하여 상기 3차원 모델의 스키닝 웨이트를 계산할 수 있다.
상기 계산부는 미리 설정된 제약 조건을 만족하는 에너지를 최소화함으로써, 상기 3차원 모델의 스키닝 웨이트를 계산할 수 있다.
상기 획득부는 상기 3차원 모델의 메쉬 표면에 스키닝 웨이트가 지정되면 상기 지정된 스키닝 웨이트의 등고 값(iso-value)에 대한 아이소라인을 획득할 수 있다.
본 발명의 다른 일 실시예에 따른 스키닝 웨이트 인터페이스 장치는 3차원 모델의 스키닝 웨이트 인터페이스 장치에 있어서, 상기 3차원 모델에서 스플라인(spline)을 생성하는 생성부; 및 상기 생성된 스플라인에 기초하여 상기 3차원 모델의 스키닝 웨이트를 계산하는 계산부를 포함한다.
상기 생성부는 상기 3차원 모델의 메쉬 표면에 스키닝 웨이트가 지정되면 상기 지정된 스키닝 웨이트의 등고 값(iso-value)에 대한 아이소라인을 획득하고, 상기 획득된 아이소라인을 이용하여 상기 스플라인을 생성할 수 있다.
상기 계산부는 미리 설정된 스플라인 제약 조건을 만족하는 에너지를 최소화함으로써, 상기 3차원 모델의 스키닝 웨이트를 계산할 수 있다.
상기 계산부는 상기 3차원 모델에 하나의 등고 값의 스플라인만이 존재하는 경우 확산 기반 방법에 기초하여 상기 스키닝 웨이트를 계산하고, 상기 3차원 모델에 둘 이상의 등고 값의 스플라인들이 존재하는 경우 보간 기반 방법과 확산 기반 방법이 조합된 하이브리드 방법에 기초하여 상기 스키닝 웨이트를 계산할 수 있다.
상기 계산부는 상기 생성된 스플라인의 최소 등고 값에 기초하여 상기 3차원 모델의 표면 영역을 보간 기반 영역과 확산 기반 영역으로 분할하고, 상기 분할된 보간 기반 영역과 확산 기반 영역에 대하여 보간 기반 방법, 확산 기반 방법으로 나눠어 상기 스키닝 웨이트를 계산할 수 있다.
상기 계산부는 미리 설정된 임계 값을 이용하여 상기 임계 값을 초과하는 영역을 국부 계산 영역으로 설정하고, 상기 설정된 국부 계산 영역에 대한 상기 스키닝 웨이트를 계산할 수 있다.
상기 계산부는 상기 생성된 스플라인에서 스키닝 웨이트의 분포에 대한 기울기를 제어함으로써, 상기 3차원 모델의 스키닝 웨이트를 계산할 수 있다.
상기 계산부는 상기 생성된 스플라인의 앵커 포인트들에 배정된 등고 값들을 스키닝 웨이트로 변환하는 앵커 웨이트에 기초하여 상기 3차원 모델의 스키닝 웨이트를 계산할 수 있다.
본 발명의 실시예들에 따르면, 3차원 모델 표면의 스플라인(spline) 기반 인터페이스를 이용하여 스키닝 웨이트를 편집할 수 있다.
본 발명의 실시예들에 따르면, 스플라인 기반 인터페이스를 제공함으로써, 3차원 모델 리깅에 소요되는 시간을 줄일 수 있고, 품질을 향상시킬 수 있다.
본 발명의 실시예들에 따르면, 리깅의 필수요소인 스키닝 웨이트를 편집하는데 있어 스플라인 기반 인터페이스를 제공함으로써, 기존 리깅 관련 소프트웨어 예를 들어, Maya, Blender 등에서 제공하는 페인트 기반의 인터페이스보다 좀 더 직관적으로 사용할 수 있다.
영화, 애니메이션 및 게임 산업 뿐만 아니라 현재 빠른 속도로 성장중인 가상현실(VR) 및 증강현실(AR) 등의 기술발전에 힘입어 가상캐릭터의 자연스러운 변형 제어가 점차 핵심적인 기술로 필요 시 되고 있다. 즉, 본 발명은 가상 캐릭터가 필요 시 되는 다양한 산업에 적용될 수 있으며, 특히 게임, 가상현실 및 증강현실 같은 실시간으로 캐릭터의 변형이 필수적으로 이루어져야 할 분야에 반드시 적용할 수 있다.
도 1은 본 발명의 일 실시예에 따른 기술을 설명하기 위한 개요를 나타낸 것이다.
도 2는 폐쇄 조건과 개방 조건을 가지고 생성된 스플라인에 대한 일 예를 나타낸 것이다.
도 3은 스키닝 웨이트를 계산하는 전반적으로 프레임워크를 나타낸 것이다.
도 4는 iso 값의 두 스플라인들이 주어지는 경우 라플라시안 연산자와 바이-라플라시안 연산자를 이용하여 풀어진 다른 스키닝 웨이트 분포를 나타낸 것이다.
도 5는 보간 기반 방법을 이용하여 생성된 스키닝 웨이트에 대한 일 예시도를 나타낸 것이다.
도 6은 다양한 스플라인 구성에 대한 결과를 나타낸 것이다.
도 7은 주어진 스플라인 제약 조건으로 보간 기반 영역과 확산 기반 영역을 분할하는 일 예시도를 나타낸 것이다.
도 8은 보간 기반 방법, 확산 기반 방법과 하이브리드 방법에 대한 결과의 일 예시도를 나타낸 것이다.
도 9는 토끼 모델에 대한 앵커 웨이트와 적용된 스키닝 웨이트에 대한 일 예시도를 나타낸 것이다.
도 10은 스키닝 웨이트와 앵커 웨이트 및 결과 스키닝 웨이트 분포로 계산된 국부 영역에 대한 일 예시도를 나타낸 것이다.
도 11은 스키닝 웨이트에 대한 그래디언트 제어 효과와 각 행렬 K, D, G의 값을 시각화한 일 예시도를 나타낸 것이다.
도 12는 스플라인 피팅의 전반적인 개요를 나타낸 것이다.
도 13은 자동 생성된 스키닝 웨이트의 아이소라인에 피팅된 스플라인의 결과에 대한 일 예시도를 나타낸 것이다.
도 14는 웨이트 프리징의 적용 여부에 따른 스키닝 웨이트에 대한 일 예시도를 나타낸 것이다.
도 2는 폐쇄 조건과 개방 조건을 가지고 생성된 스플라인에 대한 일 예를 나타낸 것이다.
도 3은 스키닝 웨이트를 계산하는 전반적으로 프레임워크를 나타낸 것이다.
도 4는 iso 값의 두 스플라인들이 주어지는 경우 라플라시안 연산자와 바이-라플라시안 연산자를 이용하여 풀어진 다른 스키닝 웨이트 분포를 나타낸 것이다.
도 5는 보간 기반 방법을 이용하여 생성된 스키닝 웨이트에 대한 일 예시도를 나타낸 것이다.
도 6은 다양한 스플라인 구성에 대한 결과를 나타낸 것이다.
도 7은 주어진 스플라인 제약 조건으로 보간 기반 영역과 확산 기반 영역을 분할하는 일 예시도를 나타낸 것이다.
도 8은 보간 기반 방법, 확산 기반 방법과 하이브리드 방법에 대한 결과의 일 예시도를 나타낸 것이다.
도 9는 토끼 모델에 대한 앵커 웨이트와 적용된 스키닝 웨이트에 대한 일 예시도를 나타낸 것이다.
도 10은 스키닝 웨이트와 앵커 웨이트 및 결과 스키닝 웨이트 분포로 계산된 국부 영역에 대한 일 예시도를 나타낸 것이다.
도 11은 스키닝 웨이트에 대한 그래디언트 제어 효과와 각 행렬 K, D, G의 값을 시각화한 일 예시도를 나타낸 것이다.
도 12는 스플라인 피팅의 전반적인 개요를 나타낸 것이다.
도 13은 자동 생성된 스키닝 웨이트의 아이소라인에 피팅된 스플라인의 결과에 대한 일 예시도를 나타낸 것이다.
도 14는 웨이트 프리징의 적용 여부에 따른 스키닝 웨이트에 대한 일 예시도를 나타낸 것이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형 태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상 의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사 전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예들을 보다 상세하게 설명하고자 한다. 도면 상의 동일한 구성요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
본 발명의 실시예들은, 리깅의 필수요소인 스키닝 웨이트(또는 가중치)를 편집하는데 있어 스플라인(Spline) 기반 인터페이스를 제공함으로써, 스키닝 웨이트를 직관적으로 편집할 수 있고, 리깅에 소요되는 시간을 줄이는 것을 그 요지로 한다.
즉, 본 발명은 스플라인 기반의 스키닝 웨이트 편집을 위한 인터페이스를 제공하고, 이 인터페이스는 3차원 모델의 메쉬에 배정된 스키닝 웨이트의 등고선 아이소라인(isoline)으로 표현되며, 사용자가 소수의 스플라인 앵커 포인트를 드래그하면 아이소라인의 모양이 업데이트되고, 스플라인에서 주어진 iso 값을 존중하면서 웨이트를 부드럽게 보간 또는 전파한다.
도 1은 본 발명의 일 실시예에 따른 기술을 설명하기 위한 개요를 나타낸 것으로, 도 1에 도시된 바와 같이, 본 발명에 따른 스키닝 웨이트 편집을 위한 인터페이스 기술은 스플라인의 생성과 피팅, 스플라인 편집 및 웨이트 계산을 포함한다.
즉, 본 발명은 사용자가 GUI를 사용하여 처음부터 스플라인을 생성하거나 주어진 초기 스키닝 웨이트에서 스플라인을 추출함으로써, 스플라인을 생성할 수 있으며, 스플라인이 편집됨에 따라 스플라인 제약 조건을 만족하도록 스키닝 웨이트를 업데이트할 수 있다.
물론, 본 발명은 3차원 모델 예를 들어, 캐릭터로부터 뼈대를 생성한 후 이러한 스키닝 웨이트를 편집하기 위한 인터페이스 기능을 수행할 수 있으며, 3차원 모델의 뼈대를 생성하는 방법은 이 기술 분야에 종상하는 당업자라면 알 수 있는 내용이기에 이에 대한 상세한 설명은 생략한다.
이러한 본 발명에 따른 기술은 다음과 같은 기능을 제공할 수 있다.
첫 번째, 스키닝 웨이트를 정의하고 인터페이스의 효율성을 보여주는 스플라인 기반 인터페이스를 제공한다.
두 번째, 스플라인 기반 스키닝 인터페이스를 실시간으로 실행할 수 있는 기술을 제공하며, 사용자 지정 초기 웨이트와 효율적인 스플라인 피팅 알고리즘을 고려하면서 스키닝 웨이트를 효율적으로 계산하는 방법을 제공한다.
세 번째, 여러 후보 스무딩(smoothing) 함수 중에서 스플라인이 주어진 표면에 적절한 스킨 웨이트 분포를 생성하는 함수의 특정 조합을 제공한다.
이러한 본 발명에 대해 도 2 내지 도 14를 이용하여 상세히 설명한다.
스플라인 모델(
spline
model)
B-스플라인
본 발명은 표준 큐빅 B-스플라인 모델을 사용한다. B-스플라인 커브는 부드러움과 국부 제어성(local controllability) 때문에 많은 어플리케이션에서 넓게 사용되고 있다. 본 발명은 앵커 포인트를 움직임으로써, 기하학적 연속성을 잃지 않으면서 B-스플라인 커브를 선택적으로 수정할 수 있다. B-스플라인 커브는 유클리디안 공간에서 B-스플라인 기저 함수(basis function)의 웨이트 합으로 정의될 수 있으며, 앵커 포인트들 cp i의 셋(set)이 주어지는 경우 B-스플라인 커브 s(u)는 아래 <수학식 1>과 같이 나타낼 수 있다.
[수학식 1]
앵커 포인트들의 수가 Na일 때, 기저 함수 Ri,r(u)는 매듭 벡터(knot vector) t = t0, t1, ..., tNa +r1, tNa +r로 정의될 수 있다.
[수학식 2]
아래 <표 1>은 본 발명에서 사용하는 심볼을 요약한 것이다.
본 발명은 폐쇄 루프 커브 또는 클램프된 개방 루프(clamped open loop)를 스플라인으로 사용할 수 있으며, 두 타입 모두 매듭(knot)을 제약해야 한다.
폐쇄 루프 커브의 경우, 루프 폐쇄는 처음 세 포인트를 복사하고 이를 가상 앵커 포인트로 추가함으로써 이루어질 수 있다. 하지만, 이러한 트릭은 상기 수학식 2의 형태를 깨트릴 수 있다. 본 발명은 처음 세 칼럼(column) 값을 마지막 세 칼럼에 추가하여 기저 함수 B를 수정함으로써, 루프 폐쇄를 달성할 수 있다. 개방 루프 커브의 경우, 본 발명은 사용자에게 보다 직관적인 제어를 제공할 수 있도록, 커브의 끝 포인트가 커브의 첫 번째와 마지막 앵커 포인트와 일치하는 클램프된 개방 스플라인 커브를 사용할 수 있다. 이는 첫 번째와 마지막 매듭이 다음과 같은 순서 r과 같은 다중성으로 반복 예를 들어, u0 = ... = ur -1, uNa + 1 = ... = uNa +r 되도록 매듭 벡터를 정의함으로써, 이루어질 수 있다.
두 경우, 상기 수학식 2의 기저 행렬 B의 변경만으로 제어될 수 있다. 앵커 포인트들이 고정된 경우, 스플라인의 토폴로지는 기저 행렬을 대체함으로써, 쉽게 변경될 수 있다. 도 2는 폐쇄 조건과 개방 조건을 가지고 생성된 스플라인에 대한 일 예를 나타낸 것으로, 같은 앵커 포인트들을 가지고 생성될 수 있다.
표면 상의
스플라인
스키닝 웨이트를 제어하기 위한 스플라인 커브는 표면 도메인에서 정의되어야 하며, 본 발명은 이를 위해 표면 상에서의 웨이트된 평균(weighted average)를 이용할 수 있으며, 해당 기술은 유클리디안 임베딩 메트릭을 이용하여 측지선 메트릭(geodesic metric)을 근사함으로써, 빠른 계산이 가능하다.
유클리디안 임베딩 메트릭은 를 임베딩함으로써 정의될 수 있다. 여기서, 는 메트릭 공간을 의미하고, D는 8로 설정될 수 있다. 표면 상의 두 포인트들 간 거리는 그들의 임베딩간 유클리디안 거리 로 계산될 수 있다. 앵커들 xi과 웨이트들 를 가지는 Frechet 평균을 사용함으로써, 웨이트된 평균은 아래 <수학식 3>과 같이 정의될 수 있다.
[수학식 3]
[수학식 4]
상기 수학식 4를 해결한 후, 오리지널 방법에서는 Phong 투영 기술을 사용하여 를 표면에 투영한다. 이 과정을 가속화하기 위하여, 국부적으로 가장 가까운 정점(vertex)에 대한 그리디(greedy) 검색과 가 투영되는 타겟 삼각형에 대한 너비 우선 검색(breadth-first search)을 결합하는 국부 검색 방법이 사용된다. 본 발명은 첫 번째 스플라인 생성에 대한 글로벌 검색을 통해 Phong 투영을 찾고, 이어서 기존의 스플라인을 편집할 때 Phong 투영에 가장 가까운 면을 찾기 위하여 현재 아이소라인(또는 등고선)(isoline)과 그 인접한 면을 가진 면을 검사한다.
스플라인 포인트를 샘플링하기 위하여, 본 발명은 스플라인을 스플라인의 샘플 포인트들 로 만들어진 연결된 라인 세그먼트로 시각화한다. 여기서, sp k = x(uk)는 uk의 파라미터 값에 대한 샘플 포인트를 의미할 수 있다. 스플라인에서 다소 균일하게 샘플링된 포인트를 획득하기 위하여, 두 앵커 포인트들 cp k와 cp k +1 사이의 샘플링 파라미터들 수 uk는 d(cp k, cp k + 1)에 비례하도록 설정될 수 있다. 본 발명은 이러한 스플라인 포인트들을 사용하여 웨이트 계산에 대한 제약 조건을 설정할 수 있다.
웨이트
계산(weight computation)
스키닝 웨이트 계산은 iso 값(또는 등고 값)이 배정된 스플라인 제약 조건이 주어졌을 때, 이를 보간하거나 근사하는 스칼라 필드를 계산하는 것이다. 본 발명에서는 스플라인 제약 조건을 만족하여야 하며, 스플라인은 표면 도메인에 존재하기 때문에 각 스플라인 포인트는 메쉬에서의 특정 삼각형 내부에 위치하게 된다. 이 때, 삼각형 내의 위치는 중심 좌표로 계산될 수 있다. 이러한 웨이트 계산에 대하여 상세히 설명하면 다음과 같다.
본 발명은 스플라인들의 셋이 주어지면 스플라인 제약 조건을 보간하거나 근사하는 부드러운 스칼라 필드를 계산한다. 이 경우, 보간 기반 방법(interpolation-based method)과 확산 기반 방법(diffusion-based method)의 두 방법을 이용하여 스키닝 웨이트를 계산할 수 있다.
도 3은 스키닝 웨이트를 계산하는 전반적으로 프레임워크를 나타낸 것으로, 도 3에 도시된 바와 같이 하나의 iso 값 스플라인이 지정되면 스키닝 웨이트는 확산 기반 방법에 의해 계산될 수 있는 반면, 둘 이상의 iso 값 스플라인이 있는 경우에는 상기 두 가지 방법의 하이브리드를 이용하여 스키닝 웨이트를 계산할 수 있다. 본 발명은 논-제로(non-zero) 웨이트의 영역을 감소시키고 계산을 가속화하기 위하여 국부 계산을 이용할 수 있다. 또한, 본 발명은 더 빠른 웨이트 편집을 위하여 정점의 스키닝 웨이트에서부터 앵커 포인트들에 배정된 앵커 웨이트(anchor weight)의 영향을 분해하는 방법을 이용할 수 있다. 웨이트의 정교한 제어를 위해, 그래디언트 웨이트를 스키닝 웨이트에 추가하는 그래디언트 제어 기술이 사용될 수 있다. 최종 웨이트는 그래디언트 웨이트의 스키닝 웨이트 합으로 계산될 수 있다.
스플라인 제약 조건(
spline
constraint)
본 발명에서 정점의 스키닝 웨이트들은 스플라인의 주어진 스키닝 웨이트와 일치하도록 결정되어야 하는 스플라인 제약 조건을 만족해야 한다. 본 발명은 각 메쉬 면에 대한 정점 스키닝 웨이트들을 보간하기 위하여 중심 좌표(barycentric coordinates)를 사용한다. 즉, 스플라인 포인트 sp k의 웨이트 w(sp k)는 아래 <수학식 5>와 같이 나타낼 수 있다.
[수학식 5]
여기서, wkj는 스플라인 포인트 sp k가 속하는 면의 정점 kj의 웨이트를 의미하고, bkj는 정점에 대한 sp k의 중심 좌표를 의미할 수 있다.
따라서, 정점 웨이트 wkj는 w(sp k)를 만족하도록 결정되어야 한다. 스플라인 포인트들의 원하는 웨이트들의 셋에 대한 상기 수학식 5를 행렬로 스택함으로써, 선형 동등 제약 조건 방정식을 구성할 수 있으며, 아래 <수학식 6>과 같이 나타낼 수 있다.
[수학식 6]
여기서, 행렬 는 상기 중심 조건인 수학식 5를 각 로우(row)에 스택하는 Ak , kj = bkj를 가지는 행렬을 의미하고, x는 모든 정점들의 스키닝 웨이트를 의미하며, si, ci는 각각 스플라인 포인트와 앵커 포인트의 iso 값의 벡터를 의미할 수 있다.
스키닝 웨이트 ws는 선형 동등 수학식의 제약 조건을 만족하는 에너지 E(x)를 최소화함으로써, 계산될 수 있으며, 아래 <수학식 7>과 같이 나타낼 수 있다.
[수학식 7]
에너지 함수 E(x)의 결정은 스키닝 웨이트의 전반적인 형상을 결정한다. 스플라인 제약 조건은 만족하는 두 방법 즉, 보간 기반 방법과 확산 기반 방법에 대해 설명하면 다음과 같다.
보간
기반 방법
포인트 제약 조건이 주어진 표면 상 스칼라 필드를 보간하는 기술은 일반화된 중심 좌표에 대해 도입되었으며, 이는 기존 연구들에서 공지되어 있다. 관절로 연결된 캐릭터(articulated characters)의 스키닝 웨이트에 대한 특정 응용 어플리케이션의 경우 하모닉 함수와 바이 하모닉 함수를 기반으로 하는 방법들이 개발된 바 있다. 본 발명은 스플라인의 선형 동등 제약 조건을 사용하여 표면 내에서 문제를 공식화할 수 있다. 특히, 본 발명은 스플라인 제약 조건 하에서 2차 에너지(quadratic energy)를 최소화하며, 아래 <수학식 8>과 같이 나타낼 수 있다.
[수학식 8]
본 발명은 와 같은 하드 제약 조건 문제를 가지는 라그랑주 승수를 이용함으로써 상기 방정식을 해결할 수 있다. 하지만, 하드 제약 조건을 사용하면 양의 준정부호가 깨지므로, 빠른 Cholesky 솔버(solver)를 사용할 수 없다. 또는, 오리지널 에너지에 2차 페널티 항을 추가함으로써, 선형 동등 제약 조건을 약하게 적용할 수 있다. 이는 아래 <수학식 9>와 같은 새로운 2차 에너지를 가져올 수 있다.
[수학식 9]
본 발명은 U를 모든 스플라인 제약 조건에 같은 웨이트를 줄 수 있는 단위 행렬로 설정할 수 있다. 에너지의 최소화 ws는 로부터 획득될 수 있으며, 아래 <수학식 10>과 같이 나타낼 수 있다.
[수학식 10]
여기서, 스칼라 계수 α를 적절한 값으로 설정함으로써, 상기 수학식 10은 하드 제약 조건을 가지는 솔루션과 유사한 결과를 만들어낼 수 있다.
연산자 선택(choice of operator)에 대해 설명하면, 본 발명은 보간 기반 방법에 대하여 에너지 선택을 검토할 수 있다. 먼저 컴퓨터 그래픽에서 일반적인 에너지를 고려한다. Dirichlet 에너지는 함수 x가 도메인에서 얼마나 많이 변화하는지를 측정하는 2차 함수이며, E(x) = -xT L sx로 나타낼 수 있다. 여기서, Ls는 에지 웨이트를 제약하는 대칭 행렬을 의미할 수 있다. 해당 오일러-라그랑주 방정식은 라플라스(Laplace) 방정식으로, L sx = 0으로 나타낼 수 있다. 또 다른 선택은 곡률의 크기를 측정하는 제곱 라플라시안 에너지로, E(x) = -xT L s M - 1 L sx로 나타낼 수 있다. 여기서, M은 대각선 질량 행렬을 의미할 수 있다. 해당 오일러-라그랑주 방정식은 바이-라플라스 방정식으로, L s M - 1 L sx = 0일 수 있다. 그러므로, 본 발명은 라플라시안 연산자 Q = -L s와 바이-라플라시안 연산자 Q = L s M - 1 L s를 사용하여 행렬 Q랄 선택할 수 있다.
도 4는 iso 값의 두 스플라인들이 주어지는 경우 라플라시안 연산자와 바이-라플라시안 연산자를 이용하여 풀어진 다른 스키닝 웨이트 분포를 나타낸 것으로, 라플라시안 연산자, 바이-라플라시안 연산자 및 두 연산자의 합에 대한 스키닝 웨이트의 분포를 순차적으로 나타낸 것이며, iso 값이 [0.2, 0.9]인 경우에 대한 것이다.
도 4에 도시된 바와 같이, 두 스플라인의 중간 영역은 유사한 스키닝 웨이트 분포를 나타내지만 바이-라플라시안은 약간 던 부드러운 결과를 나타내는 것을 알 수 있다. 이런 차이점은 스플라인의 경계에서 주목할 만 하며, 이는 바이-라플라시안이 훨씬 부드러운 결과를 생성하며 보외(또는 외삽)(extrapolation)이 가능하기 때문이다. 이로 인해, 바이-라플라시안이 연산자의 자연스런 선택될 수 있다. 하지만, 바이-라플라시안의 보외하는 특성은 종종 비직관적인 결과를 생성한다.
도 5는 보간 기반 방법을 이용하여 생성된 스키닝 웨이트에 대한 일 예시도를 나타낸 것으로, 라플라시안 연산자, 바이-라플라시안 연산자 및 두 연산자의 합에 대한 스키닝 웨이트를 나타낸 것이며, iso 값이 [0.1, 0.5, 0.9]인 경우에 대한 것이다.
도 5에 도시된 바와 같이, iso 값의 세 개의 스플라인에 대한 스키닝 웨이트를 통해 알 수 있듯이, 웨이트가 0.9에서 0.5로 급격하게 감소하면 바이-라플라시안 연산자가 영역 [0.1, 0.5]에서 0.1 미만의 깊은 몰락(downfall)을 일으키고, 이는 해당 영역의 웨이트 분포가 0.1과 0.5 사이의 값으로 예상되기를 바라는 스키닝 웨이트의 직관성에서 벗어난다. 이는 바이-라플라시안의 C1 연속성의 특성 때문이며, 경계 밖으로 경사를 전파한다. 두 iso 값 스플라인에 의해 한정된 영역의 경우 라플라시안 연산자에 의해 성립된 두 iso 값들 사이를 보간하는 스키닝 웨이트를 갖는 것이 더 직관적이다.
본 발명은 라플라시안과 바이-라플라시안 모두 장점과 단점을 가지는 것을 알 수 있으며, 두 연산자들의 장점을 위해 두 연산자들을 조합하여 사용할 수 있다. 예를 들어, -aL s + (1-a)L s M - 1 L s를 사용할 수 있다. 상기 도 4와 도 5의 마지막 칼럼은 -0.5L s + 0.5L s M - 1 L s에 대한 결과를 나타낸 것이다. 이 조합은 스플라인간에 부드러움을 보장하면서 라플라시안의 보간 특성을 유지할 수 있다. 즉, 두 연산자의 조합이 가장 자연스러운 결과를 보여준다.
스키닝 웨이트 분포 관점에서, 라플라시안 기반 보간법은 또 다른 문제가 있다. 가장 낮은 iso 값 스플라인으로부터 멀어짐에 따라 웨이트가 0으로 감소하는 것은 당연한 일이지만, 도 4와 도 5의 실제 결과는 원거리 영역의 웨이트가 최소 iso 값과 여전히 유사한 것을 알 수 잇다. 이에 대한 해결책은 웨이트가 0이 되어야 하는 곳에 iso 값이 0인 다른 스플라인을 추가하는 것이지만 이것은 다소 번거로운 일이다.
확산 흐름 방법(diffusion flow method)
확산 흐름은 주어진 신호 값을 부드럽게 하는 시간 의존적인 프로세스에 대해 수학적으로 잘 알려진 모델이다. 행렬의 암시적 오일러 적분을 갖는 확산 흐름은 와 같이 공식화될 수 있다. 여기서, h는 부드럽게 하는 프로세스에 대한 시간 주기를 의미할 수 있다. h가 증가함에 따라 신호 값 f(t+h)는 더 부드럽게 전파될 수 있다. 확산 기반 방법을 이용한 스키닝 웨이트의 계산은 기존의 유명한 열 방정식 (H-L)w = Hp과 함께 소개된 바 있다. 여기서, L = M - 1 L s은 각 정점에서 라플라시안의 디스크리트 근사를 의미할 수 있다. 기존 연구에서, 초기 값은 p 벡터에 할당되고 대각선 행렬 H를 사용하여 각 정점에 다른 시간 파라미터가 주어진다. 본 발명에서, H는 단위 행렬에 의해 단수화될 수 있다. -Q를 가지는 라플라시안 L s를 일반화하고, 상기 방정식에 질량 행렬 M을 곱함으로써, 확산 흐름 수학식은 아래 <수학식 11>과 같이 나타낼 수 있다.
[수학식 11]
여기서, β는 확산에 대한 시간 파라미터를 의미할 수 있다.
스플라인 제약 조건을 이용하여 상기 수학식 11을 만족하는 2차 최적화 문제를 공식화하면 아래 <수학식 12>와 같이 나타낼 수 있다.
[수학식 12]
보간 기반 방법과 같이, 본 발명은 제약 조건을 소프트 제약 조건으로 처리하고 아래 <수학식 13>과 같은 솔루션을 획득할 수 있다.
[수학식 13]
도 6은 다양한 스플라인 구성에 대한 결과를 나타낸 것으로, 위 부분은 표시된 iso 값을 가진 입력 스플라인들과 초기 값 p의 시각화를 나타낸 것이고, 중간 부분은 라플라시안과 바이-라플라시안의 합계를 사용하여 확산 기반 기법에 의해 생성된 스키닝 웨이트 결과를 나타낸 것이며, 아래 부분의 왼쪽 두 이미지는 법선 방향에 적용된 변형을 나타내고, 아래 부분의 오른쪽 이미지는 벡터 p를 지정하지 않고 해결된 스키닝 웨이트를 나타낸 것이다.
본 발명은 벡터 p의 초기 값을 정점 j가 si k의 스플라인 내에 위치하는 경우 pj = si k로 설정하고, 그렇지 않는 경우 0으로 설정한다. Q 행렬은 보간 기반 방법과 일관되게 만들기 위하여 -0.5L s + 0.5L s M - 1 L s로 설정될 수 있다. 도 6을 통해 알 수 있듯이, 확산 흐름 방법은 스키닝 웨이트 생성기로서 원하는 특성인 0 값의 아이소라인(isoline)을 요구하지 않고 외부 영역에 대한 스키닝 웨이트를 부드럽게 감쇠시키는 것을 볼 수 있다. 확산 흐름 방법의 주목할 만한 한계는 도 6의 아래 부분에 도시된 바와 같이, 계단 모양의 웨이트 분포를 제공하는 두 iso 값들 사이의 웨이트를 부드럽게 보간하지 않는다는 것이다.
확산 기반 방법은 단일 iso 값 스플라인으로 스키닝 웨이트를 간단하게 제어하는 경우에 적합한 선택이다. 이러한 경우 확산 기반 방법은 자연스러운 웨이트 감쇠 특성을 나타내지만 스플라인 보간을 피할 수 있다.
단일 스플라인에 대한 확산 흐름에 대해 설명하면, 상기 수학식 13을 계산하기 위하여, 벡터 p는 도 6의 위쪽 오른쪽에 도시된 바와 같이 적절한 값으로 초기화되어야 한다. p를 0 값으로 초기화하고 하나의 스플라인으로 풀면 도 6의 아래 부분 오른쪽에 도시된 바와 같이 스플라인의 값이 스플라인으로부터 전파될 수 있다. 이는 스키닝에 대한 원하는 웨이트 분포가 아니다. 일반적으로 스플라인이 폐쇄된 영역을 만드는 경우 사용자는 도 6의 중간 부분 오른쪽에 도시된 바와 같이 영역이 스플라인의 iso 값과 같은 웨이트를 가지고, 상기 웨이트가 외부로 부드럽게 전파되기를 원한다. 이를 위해, 시스템은 영역을 알아야 하고, 이는 사용자가 영역의 임의의 정점을 선택함으로써, 달성될 수 있다. 상기 영역은 선택된 정점으로부터 홍수-채우기 방식(flood-filling manner)으로 도달 가능한 정점들을 수집하여 찾을 수 있다. 본 발명에서는 보간 기반 방법을 이용하여 경계 영역을 찾을 수 있다. 특히, 선택된 정점이 매우 높은 웨이트를 갖는 추가적인 제약 조건으로 상기 수학식 8을 풀 수 있다. 이는 영역 내부 정점들의 iso 값보다 더 높은 웨이트를 만들고, 본 발명은 이러한 정점들을 수집한다. 이후에, 본 발명은 영역의 정점 j에 대하여 p에 pj = si k를 할당하고, 상기 수학식 13을 풀어 낸다. 상기 식별 단계는 스플라인이 만들어 질 때 한번만 수행된다. 다음 스플라인 편집 과정 중에, 영역은 si k보다 높은 웨이트를 가지는 정점들을 수집함으로써 효과적으로 업데이트될 수 있다.
또 다른 유도(another derivation)에 대해 설명하면, 본 발명은 에너지 최소화 관점에서 확산 흐름 방법에 대한 방정식을 도출할 수 있다. 2차 에너지 xTQx와 스플라인 제약 조건 Ax = si 이외에, 웨이트가 오리지널 값 x = p와 유사하게 할 수 있다. 이들은 합친 에너지 함수는 아래 <수학식 14>와 같이 나타낼 수 있다.
[수학식 14]
행렬 U는 스플라인 제약 조건들 중 중요도를 결정하고, 보간 기반 방법과 마찬가지로 I로 설정된다. 질량 행렬 M은 정점과 관련된 영역에서 x = p에 대한 각 정점의 중요도를 스케일링하는데 사용될 수 있다. 상기 수학식 14의 최소화는 상기 수학식 13과 같은 수학식이 된다.
보간과
확산의
하이브리드
방법
보간 기반 방법과 확산 기반 방법의 장점들 결합하기 위하여, 하나 이상의 스플라인이 있는 메쉬에 대한 하이브리드 방법을 제공한다. 하이브리드 방법은 보간 기반 방법과 확산 기간 방법을 위하여 영역을 분할하는 것이다. 특히, 스플라인 제약 조건의 iso 값을 보간하는 기능을 활용하기 위하여, 본 발명은 보간 기반 영역 을 스플라인들 사이에서 가장 작은 iso 값보다 높은 웨이트로 할당될 정점들로 설정한다. 그리고, 나머지 영역을 확산 기반 영역 으로 설정함으로써, 주변 영역에 iso 값을 확산한다. 즉, 최소 iso 값이 주어졌을 때, 최소 iso 값에 기초하여 보간 기반 영역과 확산 기반 영역을 분할한다.
도 7은 주어진 스플라인 제약 조건으로 보간 기반 영역과 확산 기반 영역을 분할하는 일 예시도를 나타낸 것으로, 왼쪽에 도시된 주어진 스플라인 제약 조건에 기초하여 오른쪽에 도시된 바와 같이 보간 기반 영역 Vl 과 확산 기반 영역 Vd로 분할되는 것을 알 수 있다.
선형 시스템 Cw s = d로 상기 수학식 10 또는 수학식 13의 스키닝 웨이트 계산을 재정렬하고, w s를 보간 기반 영역에 대한 웨이트들 로 나누면, 확산 기반 영역 웨이트 w s d 에 대해 선형 시스템에 아래 <수학식 15>와 같이 나타낼 수 있다.
[수학식 15]
여기서, Cll, Cld, Cdl과 Cdd는 C의 해당 블록 부분 행렬을 의미할 수 있다.
상기 수학식 15는 다음 순서로 순차적으로 풀릴 수 있다. 먼저, 아래 <수학식 16>과 같이 보간 영역을 경계 조건으로 지정된 확산 영역을 풀어 낸다.
[수학식 16]
사용자가 앵커 위치를 수정하는 동안 웨이트는 연속적으로 업데이트되기 때문에 와 w s d간의 차이는 무시할 수 있다. 보간 영역을 풀기 위하여, C = αQ + A T A와 d = A Tsi를 설정한다. 그리고, 아래 <수학식 17>과 같이 확산 영역을 경계 조건으로 보간 영역을 풀어 낸다.
[수학식 17]
여기서, C = αβM + αQ + A T A를 의미하고, d = A Tsi + αβMp를 의미할 수 있다. 확산 영역은 최소 iso 값 스플라인의 외부 영역에서만 계산되기 때문에 p = 0Nv를 설정한다.
스플라인이 처음으로 초기화되면 영역을 구분하기 위한 스키닝 웨이트가 애초에 존재하지 않는다. 따라서, 본 발명은 상기 수학식 10의 보간 기반 방법을 사용하여 영역을 식별하고, 하이브리드 방법은 그 이후에 적용된다.
도 8은 보간 기반 방법, 확산 기반 방법과 하이브리드 방법에 대한 결과의 일 예시도를 나타낸 것으로, iso 값 [0.1, 0.5, 0.9]를 이용하여 생성된 스키닝 웨이트를 나타낸 것이며, 도 8a는 보간 기반 방법에 의한 결과이고, 도 8b는 확산 기반 방법에 의한 결과이며, 도 8c는 하이브리드 방법에 의한 결과이고, 도 8d는 국부 계산을 이용한 하이브리드 방법에 의한 결과를 나타낸 것이다. 도 8에서 0 값 웨이트에 대한 명확한 구분을 위하여, 검정색을 0 웨이트의 정점에서만 사용한 것이다.
국부 계산(local computation)
도 8c을 통해 알 수 있듯이, 하이브리드 방법 또한 작지만 논-제로 웨이트를 갖는 불필요하게 큰 영역을 가지는 것을 알 수 있다. 논-제로 웨이트 영역은 바이-라플라시안 항의 효과로 인하여 관련이 없는 영역 예를 들어, 발 영역으로 퍼질 수 있다.
이러한 영역은 해당 컨트롤러로 인해 인식 가능한 변형을 나타내지 않으므로 계산 효율을 위해 0으로 클램프되고 웨이트 계산에서 제외될 수 있다. 이를 위해, 본 발명은 임계 값 예를 들어, 0.05를 초과하는 웨이트 값을 갖는 정점들로 국부 계산 영역을 정의하고, 인접 정점들의 여분의 링들이 추가될 수 있다. 여분의 이웃 정점들은 사용자가 스플라인을 편집할 때 국부 계산 영역으로 추가될 수 있다. 국부 계산 영역은 보간 영역과 확산 영역으로 구성된다. 나머지 영역은 정점들이 0 웨이트를 가지는 제로-클램프 영역 Vz로 정의될 수 있다. 즉, 아주 작은 값의 스키닝 웨이트를 배정 받은 영역은 계산 영역에서 제외하고 나머지 영역에서 보간 기반 기법과 확산 기반 기법을 분할하여 푸는 것이다.
이러한 구별은 국부 계산을 통해 제로 클램프 영역을 웨이트를 푸는 것으로부터 제거할 수 있다. 국부 계산 스킴은 사용자가 스플라인 인터페이스를 조작하는 동안 그럴듯한 시각화 스키닝 웨이트에 필수적인 실시간 계산을 가능하게 한다.
제로 클램프 영역을 도입하면 시스템은 아래 <수학식 18>과 같이 바뀔 수 있다.
[수학식 18]
여기서, w s z는 제로 클램프 영역에 대한 웨이트를 의미할 수 있다.
상기 수학식 15와 같이, 상기 수학식 18은 먼저 보간 영역에 대해 풀 수 있으며, 아래 <수학식 19>와 같이 나타낼 수 있다.
[수학식 19]
확산 영역은 보간 영역을 경계 조건으로 풀 수 있으며, 아래 <수학식 20>과 같이 나타낼 수 있다.
[수학식 20]
상기 수학식 19와 20에서, w s z는 제로 클램프 영역에 0 웨이트를 적용하기 위하여 0으로 설정될 수 있다.
국부 계산 시킴은 논-제로 웨이트 영역을 식별하는데 약간의 시간이 필요하지만, 전체 계산 시간은 확연하게 줄어든다. 초기 단계에서 상기 수학식 10을 풀고 국부 계산 영역을 식별한다. 상기 도 8d는 국부 계산을 적용한 결과를 나타낸 것이다. 이와 같이, 국부 계산을 이용하면, 논-제로 웨이트 값이 불필요하게 분포되는 것을 막을 수 있고, 제로 클램프 영역을 계산 영역에서 제거함으로써, 더 빠른 계산으로도 기여한다.
앵커
웨이트로
분해(Decomposition into Anchor Weights)
상술한 내용에서, 본 발명은 스플라인의 iso 값 제약 조건에서 스키닝 웨이트를 계산한다. 스플라인은 소수의 앵커 포인트에 의해 결정되므로, 계산 효율을 향상시키기 위하여 앵커 포인트의 효과에 따른 스키닝 웨이트를 분해할 수 있다.
본 발명에서의 앵커 웨이트는 앵커 포인트들에 배정되어 있는 iso 값들을 스키닝 웨이트로 변화시켜주는 변환 행렬을 의미할 수 있다.
보간 기반 방법의 경우 상기 수학식 10과 si = Bci로부터 w s와 ci를 아래 <수학식 21>과 <수학식 22> 같이 연관시킬 수 있다.
[수학식 21]
[수학식 22]
앵커 포인트 위치가 변경되지 않으면 K는 일정하게 유지되기 때문에 앵커의 iso 값만이 변경되면 w s는 선형 시스템에 대한 상기 수학식 10을 푸는 대신에 새로운 ci를 갖는 미리 계산된 행렬 K를 곱함으로써, 계산될 수 있다. 앵커 위치가 조작되면, 앵커 웨이트 행렬은 상기 수학식 22를 풀어 냄으로써, 업데이트될 수 있다.
K가 아래 <수학식 23>을 만족하도록 정의되는 경우 확산 방법에 대해 상기 수학식 21이 성립된다는 것을 보여줄 수 있다.
[수학식 23]
단일 스플라인을 사용한 확산 흐름 방법의 경우 pj = 1/Na이고, 다중 스플라인을 사용한 하이브리드 방법의 경우 p = 0Nv일 수 있다.
도 9는 토끼 모델에 대한 앵커 웨이트와 적용된 스키닝 웨이트에 대한 일 예시도를 나타낸 것으로, 위 부분은 아이소라인 [0.1, 0.5, 0.9]의 하이브리드 방법에 대한 결과를 나타낸 것이고, 아래 부분은 하나의 아이소라인 [0.8]의 확산 기반 방법에 대한 결과를 나타낸 것이다. 앵커 웨이트는 앵커 포인트에 가장 가까운 정점에서 가장 높고 거리에 따라 줄어든다.
앵커 웨이트에 대한 국부 계산에 대해 설명하면, 사용자가 앵커 포인트의 위치를 이동하면 앵커 포인트에 해당하는 논-제로 앵커 웨이트를 갖는 정점들만 영향을 받는다. 따라서, 앵커 웨이트를 사용하여 상술한 국부 계산 영역을 추가적으로 줄일 수 있다.
도 10은 스키닝 웨이트와 앵커 웨이트 및 결과 스키닝 웨이트 분포로 계산된 국부 영역에 대한 일 예시도를 나타낸 것으로, 도 10a는 보간 영역(red), 확산 영역(green) 및 제로-클램프 영역(black)으로 분할된 스키닝 웨이트를 이용하여 식별된 국부 계산 영역을 나타낸 것이고, 도 10b는 도 10a의 스키닝 웨이트를 나타낸 것이며, 도 10c는 추가된 경계 영역(blue)을 이용하여 각 영역을 분할한 앵커 웨이트에 의해 식별된 국부 계산 영역을 나타낸 것이며, 도 10d는 도 10c의 스키닝 웨이트를 나타낸 것이다.
도 10를 통해 알 수 있듯이, 계산 시간을 단축할 수 있는 국부 계산 영역이 더 줄어들었지만 앵커 웨이트를 사용하는 방법은 스키닝 웨이트를 사용한 방법과 그 결과가 비슷한 것을 알 수 있다.
그래디언트
제어(gradient control)
상술한 방법은 스플라인 제약 조건을 부드럽게 보간하는 스키닝 웨이트를 풀어내는 것이다. 이 방법들에서 보간 특성들은 연산자에 의해 결정되고 그것들의 수정은 불가능하다. 그러나, 웨이트 분포의 미세 제어가 종종 필요하다. 예를 들어, 두 개의 스플라인이 주어지는 경우 사용자는 스플라인 근처에 있는 웨이트를 약간만 변경하고 스플라인 중간에서 급격하게 변경하기 원할 수도 있다. 이것은 두 스플라인들 사이에 새로운 iso 값의 추가 스플라인을 배치함으로써, 이루어질 수 있지만 사용자 파라미터 수가 상당히 증가하고 불편함을 줄 수 있다. 본 발명은 스플라인 커브 편집의 탄젠트 편집 기능과 유사하게 사용자가 스플라인에서 웨이트 분포의 기울기를 제어할 수 있도록 함으로써, 미세 제어를 가능하게 할 수 있다. 이를 위해, 본 발명은 계산된 스키닝 웨이트와 앵커의 iso 값 사이의 차이를 제어하는 방법을 사용할 수 있다. 이 방법은 아래 <수학식 24>에 의해 이루어질 수 있다.
[수학식 24]
여기서, 는 각 칼럼이 각 앵커 포인트에 대한 그래디언트 웨이트 벡터인 행렬을 의미하는 것으로, 그래디언트 앵커 웨이트 행렬을 의미하고, cg는 각 앵커에 대하여 기울기를 조작하는 계수 벡터를 의미할 수 있다.
인 경우 k-번째 앵커 주변의 기울기는 더 평평해지고, 인 경우 그 기울기를 가파르게 된다. 행렬 는 앵커의 is 값과 각 칼럼의 스키닝 웨이트 간 차이를 인코딩하고, 1Nv는 1로 채워진 벡터를 의미하며, 는 웨이트 벡터의 Na 복사본을 병치하는 행렬을 의미한다. 연산자 는 컴포넌트 단위의 곱셈을 수행하다. 행렬 K에 대하여, 본 발명은 앵커 웨이트 행렬에 대한 상기 수학식 21을 사용하며, 약간의 수정을 통해 음의 값과 작은 양의 값을 0으로 클램프한다. 최종 스키닝 웨이트는 오리지널 스키닝 웨이트에 그래디언트 스키닝 웨이트를 추가함으로써 계산될 수 있으며, 아래 <수학식 25>와 같이 나타낼 수 있다.
[수학식 25]
도 11은 스키닝 웨이트에 대한 그래디언트 제어 효과와 각 행렬 K, D, G의 값을 시각화한 일 예시도를 나타낸 것이다.
도 11의 위 부분은 선택된 앵커에 대하여 왼쪽부터 앵커 웨이트 행렬 K, 차이 행렬 D 및 그래디언트 웨이트 행렬 G를 나타낸 것으로, 차이 행렬과 그래디언트 웨이트 행렬의 경우 음의 값은 파란색으로 시각화되며, 그래디언트 행렬의 경우 그 값은 명확한 시각화를 위하여 10배 조정된 것이다. 도 11의 중간 부분은 앵커에 대하여 0(왼쪽), 2(중간), -2(오른쪽)으로 설정된 그래디언트 계수를 이용하여 획득된 차이 스키닝 웨이트를 나타낸 것이며, 변화를 강조하기 위하여 추가적인 아이소라인을 시각화한 것이다. 도 11의 아래 부분은 법선 방향에 해당하는 변형을 나타낸 것이다.
스플라인 편집과
피팅
사용자는 GUI를 통해 메쉬에서 앵커 위치를 선택하여 스플라인을 처음부터 동적으로 만들 수 있다. 스플라인은 주어진 스키닝 웨이트에서 아이소라인을 추출함으로써 만들 수 있다. 본 발명은 빌드가 완료되면 위치 변경, 삭제, 삽입, 분할 및 병합과 같은 앵커 편집 작업을 제공할 수 있으며, 편집 프로세스 중에 실시간 사용자 상호 작용을 위해 국부 계산을 수행할 수도 있다.
주어진
웨이트로부터
스플라인
피팅
본 발명은 페인트 브러시 인터페이스, 자동 스키닝 알고리즘 또는 스플라인 인터페이스로 생성된 메쉬 표면에 스키닝 웨이트가 지정되는 경우 선택된 iso 값에 대한 아이소라인을 추출한 다음 아이소라인에 스플라인을 적용할 수 있다. 마지막으로, 앵커 계수 최적화는 사용자가 주어진 웨이트들 간의 차이를 최소화하기 위해 수행될 수 있다. 사용자는 기존 스키닝 웨이트를 수정하기 위하여 새롭게 생성된 스플라인을 조작할 수 있으며, 스플라인 피팅의 전반적인 개요는 도 12에 도시된 바와 같다.
아이소라인 생성에 대해 설명하면, 아이소라인은 메쉬의 에지 상에 있는 포인트들의 시퀀스 로 표현할 수 있다. oi가 아이소라인에 대한 iso 값의 벡터라고 하면, 아이소라인 포인트들의 위치는 각 에지의 정점들 간 선형 보간 에 의해 식별될 수 있으며, 보간 웨이트 lkj는 를 만족할 수 있다. 본 발명은 모든 에지를 통해 아이소라인 포인트들을 찾아 인접선으로 정렬한다.
스플라인 피팅 방법은 이상적으로 최적의 앵커 포인트 수와 위치를 결정할 수 있어야 하지만, 실시간 어플리케이션의 경우 많은 계산이 필요할 수 있다. 본 발명은 실시간 상호 작용이 중요하기 때문에 앵커 포인트 수 Na를 아이소라인 포인트들 수 No와 아이소라인의 곡률 크기 ocm에 비례하도록 설정한다. 여기서, 아이소라인의 곡률 크기는 아래 <수학식 26>과 같이 나타낼 수 있다.
[수학식 26]
앵커 포인트 위치를 계산하기 위하여, 본 발명은 아이소라인 포인트들과 일치하는 스플라인 포인트들 즉, 를 찾는다. (No = Ns)는 스플라인 포인트 Sp에 대한 파라미터 값들일 수 있다. 본 발명은 sp k에 대한 스플라인 파라미터 값 uo k을 아이소라인의 전체 길이로 나눠진 아크 길이로 설정할 수 있다. 여기서, sp k에 대한 스플라인 파라미터 값 uo k은 아래 <수학식 27>과 같이 나타낼 수 있다.
[수학식 27]
그리고, 파라미터 값 uo에 기초하여 기저 함수 B(uo)를 생성한다. 유클리디안 공간의 정규 스플라인처럼 스플라인 포인트들과 앵커 포인트들 사이의 관계를 선형으로 단순화하면 아이소라인 포인트들은 선형 방정식 으로 나타낼 수 있다.
본 발명은 로 앵커 포인트들을 계산할 수 있다. 여기서, B +는 기저 행렬의 의사 역(pseudo inverse of the basis matrix) 행렬을 의미할 수 있다. 하지만, 이는 앵커 포인트가 표면 상에 있는 것을 보장하진 않는다. 본 발명은 Op의 웨이트된(B +) 평균을 Cp로 간주하고, 웨이트로 B +를 사용하고 앵커 포인트로 Op를 사용한 상기 수학식 3을 이용하여 Cp를 계산할 수 있다. 본 발명은 개방 루프를 가진 아이소라인의 경우 첫 번째와 마지막 앵커 포인트가 양쪽 끝에 있는 아이소라인 포인트들과 일치하도록 제약한다. 마지막으로, 표면 상에 앵커 포인트를 투영하기 위하여 후 처리로 Phong 투영을 사용한다. 이러한 근사는 피팅된 스플라인이 타겟 아이소라인과 정확하게 매칭되는 것을 보장하지는 않지만 계산 시간과 정확도 측면에서 만족스러운 성능을 제공할 수 있다.
도 13은 자동 생성된 스키닝 웨이트의 아이소라인에 피팅된 스플라인의 결과에 대한 일 예시도를 나타낸 것으로, 오우거 모델을 이용하여 나타낸 것이다.
도 13의 위 부분은 BBW를 사용하여 자동 생성된 스키닝 웨이트와 iso 값 [0.1, 0.9]의 추출된 아이소라인을 나타낸 것이고, 도 13의 중간 부분은 아이소라인에 피팅된 스플라인과 계산된 스키닝 웨이트를 나타낸 것이며, 도 13의 아래 부분은 그래디언트 계수 최적화 후의 스키닝 웨이트를 나타낸 것이다.
앵커
그래디언트
계수 최적화
스플라인 피팅이 아이소라인에서만 이루어지기 때문에 피팅된 스플라인에 의해 만들어진 웨이트 분포는 수동 페인팅 또는 자동 스키닝 알고리즘에 의해 획득되는 입력 스키닝 웨이트 w u와 정확하게 같을 수 없다. 특히, 스플라인이 지정되지 않는 중간 영역에서는 다른 스키닝 웨이트 결과가 표시될 수 있다. 이러한 불일치를 줄이기 위하여, 본 발명은 앵커 그래디언트 최적화를 수행하며, 그래디언트 제어를 통해 스키닝 웨이트 위에 그래디언트 스키닝 웨이트를 추가한다. 본 발명은 차이를 최소화하는 최적 그래디언트 앵커 계수 cg를 찾을 수 있으며, 최적 그래디언트 앵커 계수 cg는 아래 <수학식 28>과 같이 계산될 수 있다.
[수학식 28]
여기서, G +는 상기 수학식 24에서의 그래디언트 앵커 웨이트 행렬 G의 의사 역을 의미할 수 있다.
도 13에 도시된 스플라인 피팅이 적용될 때와 그래디언트 최적화가 추가로 수행될 때의 피팅 결과를 통해 알 수 있듯이, 그래디언트 최적화가 입력 웨이트와 계산된 웨이트의 차이를 크게 줄이는 것을 알 수 있다.
앵커 편집(anchor editing)
사용자는 앵커를 편집하여 스플라인의 구성을 수정할 수 있으며, 본 발명은 직관적으로 앵커를 편집 할 수 있는 일련의 도구를 제공할 수 있다.
(1) 앵커 위치 지정은 사용자가 앵커 포인트의 위치를 변경할 수 있게 하며, 앵커의 위치가 변경되면 스키닝 웨이트가 다시 계산된다.
(2) 앵커 삭제는 앵커의 수를 줄이고, 앵커의 수가 4보다 작으면 전체 폐쇄 루프 스플라인을 삭제한다.
(3) 앵커 삽입은 사용자 선택 위치에 새로운 앵커 포인트를 추가하며, 앵커의 그래디언트 계수는 인접한 두 앵커의 평균으로 설정될 수 있다.
(4) 앵커 스플릿은 개방 루프 스플라인을 2개로 분할하거나 폐쇄 루프 스플라인의 위상을 개방 루프로 변경할 수 있다.
(5) 앵커 병합(Anchor Merging)은 두 개의 앵커 포인트를 하나로 결합하며, 이 작업을 사용하여 두 개의 개방 루프 스플라인을 하나로 병합하거나 개방 루프 스플라인을 폐쇄 루프 스플라인으로 변경할 수 있다. 앵커 그래디언트 계수는 병합된 두 앵커의 평균으로 설정될 수 있다.
웨이트
프리징
(Weight Freezing)
본 발명은 하나의 뼈에 대한 스키닝 웨이트에 중점을 두고 있다. 뼈에 대한 웨이트의 총합은 모든 정점(vertex)마다 하나씩 있어야 하기 때문에 뼈에 대한 웨이트 수정은 일반적으로 정규화를 통해 다른 뼈에 대한 웨이트를 조정해야 한다. 이로 인해 이전에 편집된 웨이트가 변경되면 바람직하지 않은 결과가 발생할 수 있다. 이 문제는 페인트 인터페이스를 비롯한 모든 스키닝 웨이트 방법에서 어쩔 수 없는 것이다. 본 발명은 이러한 문제를 완화하기 위해 웨이트 프리징(Weight Freezing)의 개념을 이용할 수 있다. 사용자가 특정 뼈의 스키닝 웨이트에 만족하고 수정하기를 원하지 않으면 뼈에 대한 스키닝 웨이트를 고정하면 된다. 정규화는 고정되지 않은 스키닝 웨이트의 값만을 변경한다.
웨이트 프리징은 이전에 고정된 웨이트가 제약 조건으로 사용되기 때문에 스키닝 웨이트를 정의 할 때 유용 할 수 있다. 예를 들어, 도 14의 왼쪽은 웨이트 프리징을 이용하여 iso 값 [0.05, 0.9]의 두 스플라인에 의해 정의된 머리 뼈에 대한 스키닝 웨이트를 나타낸 것이고, 도 14의 중간은 웨이트 프리징을 사용하지 않고 iso 값 [0.05, 0.9]의 두 스플라인에 의해 정의된 목 뼈에 대한 스키닝 웨이트를 나타낸 것이며, 도 14의 오른쪽은 머리 뼈에 고정된 웨이트를 뺀 후 목에 대한 웨이트 결과를 나타낸 것이다. 물론, 이러한 웨이트 프리징은 두 개의 뼈를 연결하는 관절에 적용될 뿐만 아니라 다수의 뼈가 있는 관절에도 적용될 수 있으며, 이러한 사실은 이 기술 분야에 종사하는 당업자에게 있어서 자명하다.
이와 같이, 본 발명의 실시예에 따른 방법은 3차원 모델 표면의 스플라인(spline) 기반 인터페이스를 이용하여 스키닝 웨이트를 편집할 수 있고, 이를 통해 3차원 모델 리깅에 소요되는 시간을 줄일 수 있으며, 3차원 모델 리깅에 대한 품질을 향상시킬 수 있다.
또한, 본 발명의 실시예에 따른 방법은 리깅의 필수요소인 스키닝 웨이트를 편집하는데 있어 스플라인 기반 인터페이스를 제공함으로써, 기존 리깅 관련 소프트웨어에서 제공하는 페인트 기반의 인터페이스보다 좀 더 직관적으로 사용할 수 있다.
이러한 본 발명에 따른 방법은 장치로 구성될 수도 있다. 예를 들어, 본 발명에 일 실시예에 따른 장치는 3차원 모델에서 아이소라인(isoline)을 획득하는 획득부 및 획득된 아이소라인에 기초하여 3차원 모델의 스키닝 웨이트를 계산하는 계산부를 포함할 수 있다.
이 때, 상기 계산부는 상기 획득된 아이소라인 및 보간 기반 방법과 확산 기반 방법이 조합된 하이브리드 방법에 기초하여 상기 3차원 모델의 스키닝 웨이트를 계산할 수 있다.
이 때, 상기 계산부는 미리 설정된 제약 조건을 만족하는 에너지를 최소화함으로써, 상기 3차원 모델의 스키닝 웨이트를 계산할 수 있다.
이 때, 상기 획득부는 상기 3차원 모델의 메쉬 표면에 스키닝 웨이트가 지정되면 상기 지정된 스키닝 웨이트의 등고 값(iso-value)에 대한 아이소라인을 획득할 수 있다.
나아가, 본 발명의 다른 일 실시예에 따른 장치는 3차원 모델에서 스플라인(spline)을 생성하는 생성부 및 생성된 스플라인에 기초하여 3차원 모델의 스키닝 웨이트를 계산하는 계산부를 포함할 수 있다.
이 때, 상기 생성부는 상기 3차원 모델의 메쉬 표면에 스키닝 웨이트가 지정되면 상기 지정된 스키닝 웨이트의 등고 값(iso-value)에 대한 아이소라인을 획득하고, 상기 획득된 아이소라인을 이용하여 상기 스플라인을 생성할 수 있다.
이 때, 상기 계산부는 미리 설정된 스플라인 제약 조건을 만족하는 에너지를 최소화함으로써, 상기 3차원 모델의 스키닝 웨이트를 계산할 수 있다.
이 때, 상기 계산부는 상기 3차원 모델에 하나의 등고 값의 스플라인만이 존재하는 경우 확산 기반 방법에 기초하여 상기 스키닝 웨이트를 계산하고, 상기 3차원 모델에 둘 이상의 등고 값의 스플라인들이 존재하는 경우 보간 기반 방법과 확산 기반 방법이 조합된 하이브리드 방법에 기초하여 상기 스키닝 웨이트를 계산할 수 있다.
이 때, 상기 계산부는 상기 생성된 스플라인의 최소 등고 값에 기초하여 상기 3차원 모델의 표면 영역을 보간 기반 영역과 확산 기반 영역으로 분할하고, 상기 분할된 보간 기반 영역과 확산 기반 영역에 대하여 보간 기반 방법, 확산 기반 방법으로 나누어 상기 스키닝 웨이트를 계산할 수 있다.
이 때, 상기 계산부는 미리 설정된 임계 값을 이용하여 상기 임계 값을 초과하는 영역을 국부 계산 영역으로 설정하고, 상기 설정된 국부 계산 영역에 대한 상기 스키닝 웨이트를 계산할 수 있다.
이 때, 상기 계산부는 상기 생성된 스플라인에서 스키닝 웨이트의 분포에 대한 기울기를 제어함으로써, 상기 3차원 모델의 스키닝 웨이트를 계산할 수 있다.
이 때, 상기 계산부는 상기 생성된 스플라인의 앵커 포인트들에 배정된 등고 값들을 스키닝 웨이트로 변환하는 앵커 웨이트에 기초하여 상기 3차원 모델의 스키닝 웨이트를 계산할 수 있다.
물론, 본 발명의 실시예들에 따른 장치는 상기 도 1 내지 도 14에서 설명한 모든 내용을 포함할 수 있으며, 이는 본 발명의 기술 분야에 종사하는 당업자에게 있어서 자명하다.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 시스템, 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예들에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
Claims (24)
- 3차원 모델의 스키닝 웨이트 인터페이스 방법에 있어서,
상기 3차원 모델에서 아이소라인(isoline)을 획득하는 단계; 및
상기 획득된 아이소라인에 기초하여 상기 3차원 모델의 스키닝 웨이트를 계산하는 단계
를 포함하는 스키닝 웨이트 인터페이스 방법.
- 제1항에 있어서,
상기 스키닝 웨이트를 계산하는 단계는
상기 획득된 아이소라인 및 보간 기반 방법과 확산 기반 방법이 조합된 하이브리드 방법에 기초하여 상기 3차원 모델의 스키닝 웨이트를 계산하는 것을 특징으로 하는 스키닝 웨이트 인터페이스 방법.
- 제1항에 있어서,
상기 스키닝 웨이트를 계산하는 단계는
미리 설정된 제약 조건을 만족하는 에너지를 최소화함으로써, 상기 3차원 모델의 스키닝 웨이트를 계산하는 것을 특징으로 하는 스키닝 웨이트 인터페이스 방법.
- 제1항에 있어서,
상기 아이소라인을 획득하는 단계는
상기 3차원 모델의 메쉬 표면에 스키닝 웨이트가 지정되면 상기 지정된 스키닝 웨이트의 등고 값(iso-value)에 대한 아이소라인을 획득하는 것을 특징으로 하는 스키닝 웨이트 인터페이스 방법.
- 3차원 모델의 스키닝 웨이트 인터페이스 방법에 있어서,
상기 3차원 모델에서 스플라인(spline)을 생성하는 단계; 및
상기 생성된 스플라인에 기초하여 상기 3차원 모델의 스키닝 웨이트를 계산하는 단계
를 포함하는 스키닝 웨이트 인터페이스 방법.
- 제5항에 있어서,
상기 스플라인을 생성하는 단계는
상기 3차원 모델의 메쉬 표면에 스키닝 웨이트가 지정되면 상기 지정된 스키닝 웨이트의 등고 값(iso-value)에 대한 아이소라인을 획득하고, 상기 획득된 아이소라인을 이용하여 상기 스플라인을 생성하는 것을 특징으로 하는 스키닝 웨이트 인터페이스 방법.
- 제5항에 있어서,
상기 스키닝 웨이트를 계산하는 단계는
미리 설정된 스플라인 제약 조건을 만족하는 에너지를 최소화함으로써, 상기 3차원 모델의 스키닝 웨이트를 계산하는 것을 특징으로 하는 스키닝 웨이트 인터페이스 방법.
- 제5항에 있어서,
상기 스키닝 웨이트를 계산하는 단계는
상기 3차원 모델에 하나의 등고 값의 스플라인만이 존재하는 경우 확산 기반 방법에 기초하여 상기 스키닝 웨이트를 계산하고, 상기 3차원 모델에 둘 이상의 등고 값의 스플라인들이 존재하는 경우 보간 기반 방법과 확산 기반 방법이 조합된 하이브리드 방법에 기초하여 상기 스키닝 웨이트를 계산하는 것을 특징으로 하는 스키닝 웨이트 인터페이스 방법.
- 제5항에 있어서,
상기 스키닝 웨이트를 계산하는 단계는
상기 생성된 스플라인의 최소 등고 값에 기초하여 상기 3차원 모델의 표면 영역을 보간 기반 영역과 확산 기반 영역으로 분할하고, 상기 분할된 보간 기반 영역과 확산 기반 영역에 대하여 보간 기반 방법, 확산 기반 방법으로 나누어 상기 스키닝 웨이트를 계산하는 것을 특징으로 하는 스키닝 웨이트 인터페이스 방법.
- 제5항에 있어서,
상기 스키닝 웨이트를 계산하는 단계는
미리 설정된 임계 값을 이용하여 상기 임계 값을 초과하는 영역을 국부 계산 영역으로 설정하고, 상기 설정된 국부 계산 영역에 대한 상기 스키닝 웨이트를 계산하는 것을 특징으로 하는 스키닝 웨이트 인터페이스 방법.
- 제5항에 있어서,
상기 스키닝 웨이트를 계산하는 단계는
상기 생성된 스플라인에서 스키닝 웨이트의 분포에 대한 기울기를 제어함으로써, 상기 3차원 모델의 스키닝 웨이트를 계산하는 것을 특징으로 하는 스키닝 웨이트 인터페이스 방법.
- 제5항에 있어서,
상기 스키닝 웨이트를 계산하는 단계는
상기 생성된 스플라인의 앵커 포인트들에 배정된 등고 값들을 스키닝 웨이트로 변환하는 앵커 웨이트에 기초하여 상기 3차원 모델의 스키닝 웨이트를 계산하는 것을 특징으로 하는 스키닝 웨이트 인터페이스 방법.
- 3차원 모델의 스키닝 웨이트 인터페이스 장치에 있어서,
상기 3차원 모델에서 아이소라인(isoline)을 획득하는 획득부; 및
상기 획득된 아이소라인에 기초하여 상기 3차원 모델의 스키닝 웨이트를 계산하는 계산부
를 포함하는 스키닝 웨이트 인터페이스 장치.
- 제13항에 있어서,
상기 계산부는
상기 획득된 아이소라인 및 보간 기반 방법과 확산 기반 방법이 조합된 하이브리드 방법에 기초하여 상기 3차원 모델의 스키닝 웨이트를 계산하는 것을 특징으로 하는 스키닝 웨이트 인터페이스 장치.
- 제13항에 있어서,
상기 계산부는
미리 설정된 제약 조건을 만족하는 에너지를 최소화함으로써, 상기 3차원 모델의 스키닝 웨이트를 계산하는 것을 특징으로 하는 스키닝 웨이트 인터페이스 장치.
- 제13항에 있어서,
상기 획득부는
상기 3차원 모델의 메쉬 표면에 스키닝 웨이트가 지정되면 상기 지정된 스키닝 웨이트의 등고 값(iso-value)에 대한 아이소라인을 획득하는 것을 특징으로 하는 스키닝 웨이트 인터페이스 장치.
- 3차원 모델의 스키닝 웨이트 인터페이스 장치에 있어서,
상기 3차원 모델에서 스플라인(spline)을 생성하는 생성부; 및
상기 생성된 스플라인에 기초하여 상기 3차원 모델의 스키닝 웨이트를 계산하는 계산부
를 포함하는 스키닝 웨이트 인터페이스 장치.
- 제17항에 있어서,
상기 생성부는
상기 3차원 모델의 메쉬 표면에 스키닝 웨이트가 지정되면 상기 지정된 스키닝 웨이트의 등고 값(iso-value)에 대한 아이소라인을 획득하고, 상기 획득된 아이소라인을 이용하여 상기 스플라인을 생성하는 것을 특징으로 하는 스키닝 웨이트 인터페이스 장치.
- 제17항에 있어서,
상기 계산부는
미리 설정된 스플라인 제약 조건을 만족하는 에너지를 최소화함으로써, 상기 3차원 모델의 스키닝 웨이트를 계산하는 것을 특징으로 하는 스키닝 웨이트 인터페이스 장치.
- 제17항에 있어서,
상기 계산부는
상기 3차원 모델에 하나의 등고 값의 스플라인만이 존재하는 경우 확산 기반 방법에 기초하여 상기 스키닝 웨이트를 계산하고, 상기 3차원 모델에 둘 이상의 등고 값의 스플라인들이 존재하는 경우 보간 기반 방법과 확산 기반 방법이 조합된 하이브리드 방법에 기초하여 상기 스키닝 웨이트를 계산하는 것을 특징으로 하는 스키닝 웨이트 인터페이스 장치.
- 제17항에 있어서,
상기 계산부는
상기 생성된 스플라인의 최소 등고 값에 기초하여 상기 3차원 모델의 표면 영역을 보간 기반 영역과 확산 기반 영역으로 분할하고, 상기 분할된 보간 기반 영역과 확산 기반 영역에 대하여 보간 기반 방법, 확산 기반 방법으로 나누어 상기 스키닝 웨이트를 계산하는 것을 특징으로 하는 스키닝 웨이트 인터페이스 장치.
- 제17항에 있어서,
상기 계산부는
미리 설정된 임계 값을 이용하여 상기 임계 값을 초과하는 영역을 국부 계산 영역으로 설정하고, 상기 설정된 국부 계산 영역에 대한 상기 스키닝 웨이트를 계산하는 것을 특징으로 하는 스키닝 웨이트 인터페이스 장치.
- 제17항에 있어서,
상기 계산부는
상기 생성된 스플라인에서 스키닝 웨이트의 분포에 대한 기울기를 제어함으로써, 상기 3차원 모델의 스키닝 웨이트를 계산하는 것을 특징으로 하는 스키닝 웨이트 인터페이스 장치.
- 제17항에 있어서,
상기 계산부는
상기 생성된 스플라인의 앵커 포인트들에 배정된 등고 값들을 스키닝 웨이트로 변환하는 앵커 웨이트에 기초하여 상기 3차원 모델의 스키닝 웨이트를 계산하는 것을 특징으로 하는 스키닝 웨이트 인터페이스 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180125912A KR102150758B1 (ko) | 2018-10-22 | 2018-10-22 | 3차원 모델 리깅을 위한 3차원 모델 표면의 스키닝 웨이트 인터페이스 방법 및 그 장치 |
US16/266,836 US10872468B2 (en) | 2018-10-22 | 2019-02-04 | Method and apparatus for interfacing skinning weight of 3D model surface for rigging of 3D model |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180125912A KR102150758B1 (ko) | 2018-10-22 | 2018-10-22 | 3차원 모델 리깅을 위한 3차원 모델 표면의 스키닝 웨이트 인터페이스 방법 및 그 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200045190A true KR20200045190A (ko) | 2020-05-04 |
KR102150758B1 KR102150758B1 (ko) | 2020-09-02 |
Family
ID=70281220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180125912A KR102150758B1 (ko) | 2018-10-22 | 2018-10-22 | 3차원 모델 리깅을 위한 3차원 모델 표면의 스키닝 웨이트 인터페이스 방법 및 그 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10872468B2 (ko) |
KR (1) | KR102150758B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220085694A (ko) * | 2020-12-15 | 2022-06-22 | 광운대학교 산학협력단 | 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113724169A (zh) * | 2021-09-08 | 2021-11-30 | 广州虎牙科技有限公司 | 蒙皮穿插修复方法、系统及计算机设备 |
CN116229005B (zh) * | 2023-05-06 | 2023-08-04 | 煤炭科学研究总院有限公司 | 三维巷道模型的测地线确定方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006523891A (ja) * | 2003-03-26 | 2006-10-19 | ブリガム・ヤング・ユニバーシティ | 局所洗練を用いてt−スプライン及びt−nurcc表面を定義するためのシステム及び方法 |
US20120019517A1 (en) * | 2010-07-23 | 2012-01-26 | Mixamo, Inc. | Automatic generation of 3d character animation from 3d meshes |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8749556B2 (en) * | 2008-10-14 | 2014-06-10 | Mixamo, Inc. | Data compression for real-time streaming of deformable 3D models for 3D animation |
US10748325B2 (en) * | 2011-11-17 | 2020-08-18 | Adobe Inc. | System and method for automatic rigging of three dimensional characters for facial animation |
US10061871B2 (en) * | 2015-07-27 | 2018-08-28 | Technische Universiteit Delft | Linear blend skinning weight optimization utilizing skeletal pose sampling |
-
2018
- 2018-10-22 KR KR1020180125912A patent/KR102150758B1/ko active IP Right Grant
-
2019
- 2019-02-04 US US16/266,836 patent/US10872468B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006523891A (ja) * | 2003-03-26 | 2006-10-19 | ブリガム・ヤング・ユニバーシティ | 局所洗練を用いてt−スプライン及びt−nurcc表面を定義するためのシステム及び方法 |
US20120019517A1 (en) * | 2010-07-23 | 2012-01-26 | Mixamo, Inc. | Automatic generation of 3d character animation from 3d meshes |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220085694A (ko) * | 2020-12-15 | 2022-06-22 | 광운대학교 산학협력단 | 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR102150758B1 (ko) | 2020-09-02 |
US20200126296A1 (en) | 2020-04-23 |
US10872468B2 (en) | 2020-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yuksel et al. | Hair meshes | |
JP5890105B2 (ja) | 平行測地線によってモデリングされるパーツの設計 | |
KR102150758B1 (ko) | 3차원 모델 리깅을 위한 3차원 모델 표면의 스키닝 웨이트 인터페이스 방법 및 그 장치 | |
JP4312295B2 (ja) | スケッチを基にした曲線の編集 | |
US10586371B2 (en) | Motion retargeting method for character animation and apparatus thererof | |
Botsch et al. | An intuitive framework for real-time freeform modeling | |
Nealen et al. | Fibermesh: designing freeform surfaces with 3d curves | |
Pan et al. | Interactive localized liquid motion editing | |
US20180165860A1 (en) | Motion edit method and apparatus for articulated object | |
JP6042697B2 (ja) | 複数のデクセルによって表わされるモデル化ボリュームの設計 | |
Bang et al. | Spline interface for intuitive skinning weight editing | |
Pojar et al. | User-controlled creation of multiresolution meshes | |
KR20150099464A (ko) | 방정식들에 의해 제약된 물리적 시스템의 설계 | |
Haberleitner et al. | Isogeometric segmentation via midpoint subdivision suitable solids | |
Wang et al. | Enhancements to a shape grammar interpreter | |
Campagna et al. | Efficient decimation of complex triangle meshes | |
KR101435325B1 (ko) | 깊이 맵 생성 방법 및 장치 | |
Jin et al. | Deformation with enforced metrics on length, area and volume | |
Subileau et al. | Light transport editing with ray portals | |
Bang et al. | Interactive rigging with intuitive tools | |
Wallner et al. | Fair webs | |
Gregory et al. | Feature-based surface decomposition for polyhedral morphing | |
CN106469464B (zh) | 用于三维建模目标对象的方法和系统 | |
Shi et al. | A simple implementation of the semi-Lagrangian level-set method | |
Ju et al. | Morphing Rational B-spline Curves and Surfaces Using Mass Distributions. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |