KR20060045018A - 컴퓨터-생성 애니메이션을 위한 캐릭터 데포르메이션파이프라인 - Google Patents

컴퓨터-생성 애니메이션을 위한 캐릭터 데포르메이션파이프라인 Download PDF

Info

Publication number
KR20060045018A
KR20060045018A KR1020050026607A KR20050026607A KR20060045018A KR 20060045018 A KR20060045018 A KR 20060045018A KR 1020050026607 A KR1020050026607 A KR 1020050026607A KR 20050026607 A KR20050026607 A KR 20050026607A KR 20060045018 A KR20060045018 A KR 20060045018A
Authority
KR
South Korea
Prior art keywords
deformation
computer program
node
binding
pipeline
Prior art date
Application number
KR1020050026607A
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 드림워크스 애니메이션 엘.엘.씨.
Publication of KR20060045018A publication Critical patent/KR20060045018A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • 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
    • G06T1/00General purpose image data processing

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

애니메이션을 위한 데포르메이션 시스템은, (캐릭터와 같은) 기하학, (시뮬레이션과 같은) 역학, 및/또는 (입자 시스템과 같은) 효과의 애니메이션을 다룰 수 있는 다수의 데포르메이션 모듈들을 포함하는, 파이프라인을 생성하기 위한 지점 당 데포르메이션(per-point deformation)의 개념을 추상화한다. 데포르메이션 파이프라인은, 유사한 캐릭터들의 패밀리들을 데포르메하고 애니메이트화할 수 있는 템플릿으로서 동작하는 것으로 정의된다. 순차적, 병렬, 혼합 및 계층적 바인딩 모드를 포함하는 다양한 바인딩 모드들에 대한 지원이 제공되어, 데포르메이션들을 결합하기 위한 다수의 기술들을 용이하게 한다.
데포르메이션, 애니메이션, 파이프라인, 템플릿, 바인딩 모드, 순차적, 병렬, 혼합, 계층적

Description

컴퓨터-생성 애니메이션을 위한 캐릭터 데포르메이션 파이프라인{CHARACTER DEFORMATION PIPELINE FOR COMPUTER-GENERATED ANIMATION}
도 1은 본 발명의 일 실시예에 따른 데포르메이션 파이프라인을 통한 CG 모델의 기하(geometry)의 흐름을 나타낸 블록도.
도 2는 본 발명의 일 실시예에 따른 일련의 인간형 캐릭터를 에니메이팅하기 위한 파이프라인을 나타낸 블록도.
도 3은 본 발명의 일 실시예에 따른 데포르메이션 파이프라인 내의 모듈들의 레이아웃(layout)을 나타낸 블록도.
도 4는 본 발명의 일 실시예에 따른, 데포르메이션의 분기(branching) 및 병합(merging)을 포함하는 데포르메이션 파이프라인 내의 모듈들의 대체 레이아웃을 나타낸 블록도.
도 5는 일 실시예에 따른 데포르메이션 모듈을 나타낸 블록도.
도 6은 일 실시예에 따른 데포르메이션 데이터 스트림의 일 요소로서 캐릭터를 표현하는 방법을 나타낸 도면.
도 7a 내지 도 7d는 일 실시예에 따른 입방 다각 메시(cube polygonal mesh)에 바인딩된 NURBS 구면의 예를 나타낸 도면.
도 8은 두 개의 프록시/표면 바인딩 모듈들(proxy/surface binding modules) 을 포함하는 데포르메이션 파이프라인의 샘플 부분을 나타낸 도면.
도 9a 및 도 9b는 데포르메이션 전후로 도시된, 삼각형 바인딩의 예를 나타낸 도면.
도 10a는 본 발명의 일 실시예에 따른 병렬 바인딩 모드에서의 데이터 스트림 아이템의 예를 나타낸 도면.
도 10b는 본 발명의 일 실시예에 따른 혼합 바인딩 모드에서의 데이터 스트림 아이템의 예를 나타낸 도면.
도 10c는 본 발명의 일 실시예에 따른 순차적 바인딩 모드에서의 데이터 스트림 아이템의 예를 나타낸 도면.
도 10d는 본 발명의 일 실시예에 따른 계층적 바인딩 모드에서의 데이터 스트림 아이템의 예를 나타낸 도면.
도 11은 필터 및 보조 마스킹 모듈에 의해 수정되는 데포르메이션 모듈을 통과하는 DDS 아이템의 예를 나타낸 블록도.
도 12a는 단일 다각형 프록시 메시가 사용된 Cbinding 모듈의 실시예를 나타낸 블록도.
도 12b는 바인딩 및 바인딩 아이템의 갱신을 위한 두 개의 토폴로지적으로 동일한 다각형 메시들이 사용되는 Cbinding 모듈의 실시예를 나타낸 블록도.
도 13은 일 실시예에 따른 웨이트(weight) 적용 및 결정을 나타낸 블록도.
<도면의 주요 부분에 대한 부호의 설명>
100 : 데포르메이션 파이프라인
102 : 헤드 모듈
104 : 테일 모듈
106 : DDS
153 : 애니메이션 곡선
351 : 토폴로지
402 : 프록시 모델
403 : 바인딩 표면
503 : 바인딩 아이템
본 발명은 일반적으로 컴퓨터-생성 그래픽 및 애니메이션(computer-generated graphics and animation)에 관한 것으로서, 보다 구체적으로는 컴퓨터 애니메이션에 사용되는 데포르메이션 파이프라인(deformation pipeline)을 정의하고 설정(establish)하는 기술에 관한 것이다.
컴퓨터-생성(CG) 애니메이션에서의 주요 작업은 애니메이터의 예술적인 요구를 만족하는 방식으로 3차원(3D) 캐릭터의 효율적이면서 유연한(flexible) 데포르메이션의 구축이다. 이러한 데포르메이션이 충분한 유연성을 제공한다면 애니메이터는 3차원 캐릭터를 보다 높은 수준으로 표현할 수 있다.
CG 애니메이션 산업이 성숙함에 따라서 전통적으로 손으로 그린 애니메이션 과 같이 표현적(expressive)이고 자유로운 형태의 CG 애니메이션을 만들기 위한 새로운 노력들이 이루어지고 있다. 그 시초부터 CG 애니메이션은 종종 모션(motions), 제한 및 3D 경계 탐지(boundary detection)를 나타내기 위하여 로보틱스(robotics)의 원리에 의존하였다. 이는 전통적인 2차원(2D)의 손으로 그린 애니메이션의 실루엣-유도 스타일(silhouette-driven style)에서는 이성적으로(philosophically) 매우 힘들다. 생생하고 표현적인 2D 애니메이션과 보다 기계적이고 제한적인 3D 기술간의 갭을 연결하는 것은 많은 CG 애니메이션 스튜디오의 중요한 목표이다.
전통적인 손으로 그린 애니메이션화된 캐릭터는 전통적인 아티스트의 정신 및 손에 의해 만들어졌다. 반면, CG 캐릭터는 3D 표면의 수집(collection)을 나타내는 컴퓨터 시스템 내의 여러 수학적인 형태의 모델 또는 파일로부터 생성된다. CG 아티스트는 컴퓨터 시스템 및 애니메이션 소프트웨어를 사용하여 이러한 3D 표면을 생성, 편집, 조작한다. 그러므로, CG 애니메이션은 CG 캐릭터의 본래 포즈를 다수의 프레임에 걸쳐 애니메이션화된 시퀀스로 데포르메(deform)하는 애니메이션 소프트웨어에 의하여 생성된다. 디지털 아티스트는 캐릭터 리그(rigs)를 이용하여 다수의 프레임에서의 CG 캐릭터의 포즈를 제어하는데, 이는 종래에는 3D 캐릭터의 모션, 타이밍 및 위치를 시간의 함수로서 특정하는 애니메이션 곡선(animation curves), 소프트웨어 서브시스템, 수집된 스크립트들(collection of scripts)로서 제공되었다.
모델이라고도 하는 CG 캐릭터는 전형적으로 파라미터화된(parametric) 표면 (Bezier Patches, NURBS, Catmull-Clark, B-splines 등)으로서, 또는 고해상도 다각형 메시(high-resolution polygonal meshes)로서 수학적으로 표현되는 수집된 표면들이다. 파라미터화된 표면은 다수의 제어 꼭지점(control vertices, CVs)으로부터 생성되며, 이는 적절한 기본 집합(basis set)과 함께 연속적이고 부드러운 3D 표면을 공간에 나타내게 된다. 한편, 다각형 메시는 일반적으로 공간상에서 서로 연결된 수집된 점들이며 다면체를 구성한다. 일반적으로 다각형 메시는 파라미터화된 표면보다 더 원시적이다. 이하의 설명에 있어서, "꼭지점(vertices)"이라는 용어는 CVs(예를 들어, 파라미터화된 표면) 또는 점을 일반적으로 나타내는 것으로 사용된다.
이러한 표현들은 각각 장점과 단점을 갖는다. CG 영화 산업에 있어서는 파라미터화된 표면이 종종 다각형 메시보다 선호되는데, 그 이유는 고해상도로 렌더링될 때 파라미터화된 표면의 연속성(continuous properties)이 고품질의 이미지를 생성할 수 있기 때문이다. 반면, 다각형 메시는 CG 게임 산업에서 종종 선호되는데, 그 이유는 데이터 표현 및 계산의 양이 적기 때문이다.
다각형 메시는 자유로운 형태의 토폴로지를 갖는다. 즉, 메시의 꼭지점은 서로 임의로 연결될 수 있다. 반면, NURBS(Non-Uniform Rational B-Splines)와 같은 전통적인 파라미터화된 표면은 일정한 토폴로지를 갖고, 여기서 꼭지점은 4변형의 어레이(quadrilateral array) 내에서 상호 연결된다. Catmull-Clark 표면과 같은 일구분 표면(subdivision surfaces)은 이러한 2가지 접근법의 타협안으로서, 로컬 파라미터화된 표현 및 부드러움(smoothness)을 유지하면서 다각형 메시와 같은 자유로운 형태의 토폴로지를 갖는 것을 제공한다.
CG 애니메이션 모델은 전형적으로, 디지털 아티스트가 컴퓨터에서 3D 오브젝트를 조각(sculpt)할 수 있게 해 주는 표준적인 상업적 소프트웨어를 이용하여 제작된다. CG 애니메이션을 위한 종래의 상업적인 패키지는, 캐나다의 토론토의 Alias Systems사의 Maya®, 캐나다의 몬트리올의 Discreet사의 Studio Max, 메사츄세츠주의 테욱스베리(Tewksbury)의 Avid Technology사의 SoftImage, 텍사스주의 샌안토니오의 NewTek사의 LightWave 3D®를 포함한다.
또한, 몇몇 애니메이터는 CG 캐릭터의 출발점으로서 전통적인 클레이 모델(clay models)을 사용한다. 클레이는 컴퓨터에서 3D로 스캐닝되고 상술한 상업적인 패키지 중 하나를 이용하여 임포팅(importing)되고, 편집하여 수정된다.
종래의 기술을 이용하여 모델을 애니메이트화하기 위한 캐릭터의 리그의 구축은 노동 집약적(labor-intensive)인 경향이 있는데, 이는 모델을 원하는 방식으로 드라이브(drive)하기 위해서 종래의 패키지에서 사용 가능한 최상의 데포르머(deformers)를 사용하기 위해서는 대단히 많은 예술적 경험을 요구하기 때문이다. 캐릭터 리그의 디자인 및 개발은 최종 애니메이션 제품의 전체적인 품질에 있어서의 키 팩터인데, 이는 리그가 실질적으로 애니메이터가 사용 가능한 데포르메이션 및 가능한 모션의 범위를 결정하기 때문이다.
리그는 전형적으로 스켈리튼 시스템(skeleton system)을 포함하며, 이는 캐릭터의 기본적인 구조의 데포르메이션, 토션(torsion), 벤딩(bending)을 컨트롤하는 CG 조인트(joints)의 집합을 포함한다. 스켈리튼의 조인트는 CG 애니메이터에 의하여 제작된 애니메이션 곡선을 통해 제어된다. 수학적인 기술(description)은 스켈리튼 조인트 위치와 CG 모델에서의 표면의 꼭지점의 위치간의 연결에 의하여 설정된다. 예를 들어, 어떤 한 포즈는 인간 형태의(humanoid) 스켈리튼이 서 있는 것이며, 다른 포즈는 스켈리튼이 의자에 앉아 있는 것이다. 스켈리튼이 위치를 바꿈에 따라 서 있는 위치에서 앉은 위치로 데포르메하기 위하여 CG 모델을 드라이브하는 수학적 기술을 제공하는 것이 바람직하다. 대부분의 상업적인 패키지는 스켈리튼 조인트의 위치를 CG 모델의 꼭지점의 위치에 연결하는 바인딩 메커니즘(binding mechanism)을 제공한다. 각 꼭지점은 인접한 조인트의 모션의 다중-선형 조합(multi-linear combination)에 따라 움직인다.
표면의 모션이 원활하도록 다중-선형 조합을 관리하기 위해 웨이트(가중치, weights)가 제공될 수 있다. 종래에는 주어진 캐릭터에서 스켈리튼의 조인트의 웨이트를 설정하는 것은 수작업으로서 대단히 많은 노동이 소요되는 것이었다. 또한, 스켈리튼 바인딩을 위한 꼭지점의 웨이팅(weighting)은 CG 캐릭터의 표면의 구조의 변경에 대단히 민감하다. 표면상에 꼭지점을 추가하거나 이동시키거나 파라미터화된 구조를 변경하는 등의 변화는 일반적으로 바인딩 웨이팅 작업을 무용한 것으로 만들어 다시 작업할 수밖에 없게 만든다.
일반적으로 CG 모델의 어떤 중요한 편집상의 변경은 캐릭터의 스켈리튼 바인딩에 행해진 웨이팅 작업을 무의미하게 만든다. 또한, CG 모델의 캐릭터 리그는 형태상으로는(morphologically) 유사하지만 CG 모델에 관해서는 다를 수 있는(예를 들어, 표면의 수, 꼭지점의 수, 배열 등이 다른) 다른 캐릭터로 용이하게 변환되지 않을 수 있다. 따라서, 종래의 소프트웨어 패키지에 의하여 제작된 캐릭터 리그는 일반적이지 않으며, 이들은 어떤 CG 모델에서 다른 것으로 용이하게 변환될 수 없음을 의미한다.
또한, 영화 제작에 있어서, 캐릭터의 디자인은 종종 리그가 제작된 이후에 변경된다. 그래서 종래에는 리깅(rigging) 작업의 대부분은 폐기되고, 이러한 변경을 적용하기 위하여 새로운 리그가 제작되었다. 따라서, 임의의 특정 모델의 사양(specifics)으로부터 보다 독립적인 캐릭터 리그를 표현하는 시스템 및 방법이 요구된다. 또한, 비용을 상당히 절감하기 위해서 변경에 보다 효율적으로 적응할 수 있는 기능을 CG 애니메이터에게 제공하는 시스템 및 방법이 요구된다. 따라서, 기술적인 관리자가 캐릭터의 전체적인 패밀리(families)를 애니메이트화하기 위한 일반적인 리그를 제작할 수 있게 하여 많은 애니메이션 및 시뮬레이션에 적용할 수 있는 시스템 및 방법이 요구된다.
오늘날의 애니메이션에서 존재하는 또 다른 도전은 전통적인(2D) 애니메이션과 CG(3D) 애니메이션의 갭을 연결하는 것이다. 종래의 시스템은 이러한 연결에는 적절하지 않은데, 그 이유는 현재 상업적으로 이용 가능하고 독점적인(proprietary) 시스템에서 제공하는 캐릭터 리깅 스타일의 차이 및 데포르메이션(복수의 데포르머가 그 효과를 CG 모델의 같은 표면에 적용하는 방식)의 레이어링(layering)에 있어서의 제약 때문이다.
상술한 바와 같이, 종래에는 조인트 위치와 꼭지점 최초 위치(vertex initial locations) 간의 웨이팅된 다중-선형 인터폴레이션(interpolations)을 통 해 스켈리튼을 CG 모델에 바인딩하였다. 이 바인딩은 일반적으로 예를 들어 팔의 바인딩과 같은 CG 모델의 기본적인 데포르메이션을 처리한다. 그러나 영화에서의 전형적인 CG 캐릭터는 보다 복잡하여, 스켈리튼 바인딩의 탑에서의 효과에 보충하는 리그에서 다른 데포르머에 의해 처리되는 수많은 부차적인 모션을 갖는다. 예를 들어, 데포르머는 이두박근이 굽혀질 때 이두박근이 불룩해지도록 할 수 있다. 종래에는 이러한 데포르메이션은 순차적(sequential), 병렬 및/또는 혼합형(blending)과 같은 다수의 레이어링 기법을 이용하여 보충되었다. 순차적 레이어링 기법에 있어서는, 데포르메이션은 포스트-데포르메되는(post-deformed) 표면에 데포르메이션이 적용된다. 병렬 레이어링 기법에서는 같은 프리-데포르메된(pre-deformed) 공간에서 동시 데포르메이션이 적용된다. 혼합 레이어링 기법에서는 데포르메이션의 선형 조합이 원본의 프리-데포르메된 표면에 적용된다.
이러한 순차적, 혼합형 및 병렬 레이어링 기법의 종래의 구현 방법은 일반적으로 하나의 기법으로 통일하기에는 매우 다양하여 곤란하다. 따라서 순차적, 혼합형 및 병렬 레이어링 기법의 번호순으로 나열된 표현을 제공하는 캐릭터 리깅 시스템 및 방법이 요구된다. 또한, 하드웨어 API 시스템으로 분할되거나 변형(port)되도록 수정될 수 있는 시스템 및 방법이 요구된다.
종래의 리그 시스템의 또 다른 중요한 제약은 데포르메이션의 계층적 레이어링(hierarchical layering)을 생성하기 위한 단순하고 모델-독립적인(model-independent) 방법을 제공할 수 없다는 점이다. 계층적 레이어링은, 이전의 데포르메이션에 의한 표면의 로컬 스페이스(local space)에 이후의 데포르메이션을 적 용하는 방식이다. 계층적 레이어링은 다음과 같은 점에서 순차적 레이어링과 다르다. 순차적 레이어링 기법에 있어서는, 첫 번째 데포르메이션에 의하여 데포르메된 표면의 전체 스페이스에 두 번째 데포르메이션이 적용된다. 예를 들어, 첫 번째 데포르머는 평면을 굽히게 할 수 있고, 두 번째 데포르머는 굽혀진 평면의 어떤 영역에서 콘(cone)을 크게 할 수 있다. 평면이 굽혀지더라도 콘은 항상 같은 방향을 가리킨다. 계층적 데포르메이션에 있어서는, 두 번째 데포르메이션의 효과는 첫 번째 데포르메이션에 의하여 데포르메된 각 꼭지점의 로컬 스페이스에 적용된다. 같은 예에 있어서, 계층적 기법에 따르면, 평면의 표면에 수직한 크게 된 콘은 첫 번째 데포르머가 평면의 굽혀짐(bending)을 변경하더라도 평면에 수직으로 유지된다.
계층적 B-Splines에 대해서는 예를 들어 D.R.Forsey 및 R.H.Bartels의 AMC Transactions on Graphics Vol.14 134-161(1995)에 설명되어 있다. HB-Splines는, 필요할 경우 더 상세한 사항으로 계층적으로 재정의될 수 있는 파라미터화된 도메인을 제외하고는 B-Splines와 유사한 파라미터화된 표면이다. 반면, 표준 B-Spline에 있어서는 작은 영역의 표면의 디테일을 증가시키기 위하여 모든 곳에서 균일하게 해상도를 증가시킨다.
계층적 표면은 꼭지점의 로컬 스페이스에서 뿐만 아니라 스케일(scales)에 의한 데포르메이션의 레이어링을 가능하게 한다. 예를 들어, 제1 데포르머는 전체 스퀴즈(squeeze)를 생성하고 데포르메이션을 스트레칭(stretch)하는 반면, 제2 데포르머는 표면의 로컬화된 영역에서의 작은 특징에 영향을 줄 수 있으며, 예를 들 어 눈을 뜨게 할 수 있다. 데포르메이션을 레이어링하고 이들의 스케일을 분해(break up)하기 위한 이 계층적 방법론은 애니메이션화할 때 CG 리그를 보다 전통적인 외관으로 만들기에 유용하다.
여러 가지 이유 때문에 현존하는 계층적 방법론은 실제 CG 제작 필요(needs)에는 미치지 못한다. 첫째로, 계층은 표면 표현으로 빌트인 되기 때문에, 계층적인 데포르메이션은 일반적으로 다각형 메시, NURBS 또는 Catmull-Clark 표면과 같은 표면을 다루지 않는다. 둘째로, HB-Splines와 같은 계층적 표면은 종종 제작상의 변화에 만족스럽게 적응하지 못한다. 파라미터 스페이스는 트리와 같은 데이터 구조로 표현된다. 따라서, 표면에서의 많은 파라미터화에서의 변경은 트리의 브랜치(branches)를 무의미하게 만든다. 예를 들어, 계층적 표면이 구면에서 밖으로 돌출된 뿔(horn)로서 만들어진 경우, 기본적인 구면 형태를 입을 연 형태로 변경하면 뿔에 대하여 한 작업은 무효하게 된다. HB-Splines도 큰 구조를 갖기 때문에 업데이트하는데 대단히 많은 시간이 소요된다.
그러므로, 특별하게 정의된 유형의 표면에 의존하지 않고 계층적으로 레이어링된 데포르메이션의 장점을 제공하는 시스템 및 방법이 요구된다.
또한, 단순한 형태의 CG 모델을 다룰 수 있는, 계층적 기술을 포함하는 진보된 레이어링 방법론을 구현할 수 있는 리깅 시스템 및 방법이 요구된다.
또한, 종래의 기법이 갖는 제약 및 단점을 회피한 일반적인 휴대용 캐릭터 리그를 생성하고 조작하는 기술이 요구된다.
또한, 디지털 아티스트가 모델 차제의 특성으로부터 컴퓨터-생성 캐릭터 애니메이션에 사용되는 리그를 분리할 수 있게 하는 기술이 요구된다.
또한, 보다 고가의 애니메이션화된 캐릭터를 위한 가능성(potential)을 제공하기 위한 유연성(flexibility)을 개선한 기술이 요구된다.
성능을 개선하고 하드웨어 구현을 용이하게 하기 위하여 복잡한 데포르메이션을 시리얼화하는(serialize) 기술이 요구된다.
[발명의 개요]
본 발명은 디지털 아티스트가 3D 캐릭터를 위하여 보다 유동적인(fluid) 데포르메이션을 생성할 수 있게 하여 2D 아티스트가 이용 가능한 기술과 근접한 캐릭터 데포르메이션을 위한 보다 유연한 시스템을 제공한다. 본 발명의 기술에 따르면, 캐릭터 데포르메이션 파이프라인이 CG 애니메이션을 위하여 설정되어 상술한 필요를 충족하고 종래 기술에 따른 기법의 제약을 회피할 수 있게 된다.
일 실시예에 따르면, 본 발명은 하나 이상의 CG 모델의 데이터 스트림 추출(data stream abstraction)을 사용하여 구현된다. 모듈의 시리얼화된 스택 파이프라인이 설정된다. 각 모듈은 데이터 스트림을 채택하고, 이를 데포르메하여 다음 모듈로 전달한다. 이 파이프라인을 위한 시리얼화된 아키텍처는 종래의 복잡한 트리 종속성을 요구하던 복잡한 레이어링 기법을 용이하게 한다. 본 발명의 시리얼화된 아키텍처는 알려져 있는 레이어링 기법을 하나의 구현 형태로 통일한다.
일 실시예에 따르면, 본 발명은 다각형 메시, NURBS, B-Splines, 일구분 표 면 등의 단순한 일반적인 기하학적 오브젝트에 기초한 CG 모델을 수용하며, 이러한 오브젝트를 위한 진보된 레이어링 데포르메이션 기법을 지원한다.
따라서, 본 발명은 실제 CG 제작 환경의 필요에 적용할 수 있고 탄력적인(resilient) 유연한 데포르메이션 시스템을 제공한다. 본 발명은 캐릭터 리그가 생성된 후에라도 리깅 작업을 무용한 것으로 만들지 않고 CG 모델에서의 변경을 가능하게 한다. 또한, 리그는 형태상으로 유사한 CG 모델간에 쉽게 변형될 수 있는 방식으로 일반적인 것이다.
또한, 본 발명의 데포르메이션 파이프라인의 시리얼화된 아키텍처는 하드웨어 및/또는 OpenGL과 같은 스택 기반 파이프라인을 통해 구현될 수 있다.
일 실시예에 따르면, CG 모델은 데이터 스트림으로 추출되는데, 여기서 이는 데포르메이션 데이터 스트림(Deformation Data Stream; DDS)이라 한다. DDS는 CG 모델의 표면의 기하학(geometry)에 관한 정보와, 표면의 각 꼭지점의 데포르메이션 환경에 관한 중요한 아이템을 운반할 수 있다. 데포르메이션 환경에 관한 정보는 프리-데포르메된, 포스트-데포르메된, 및/또는 좌표의 로컬 꼭지점 프레임과 같은 복수의 스페이스의 데포르메이션의 레이어를 구축할 수 있다. 따라서 꼭지점 환경 정보는 개선된 유연성을 제공하며, 따라서 사용자는 이전의 데포르메이션 단계에서의 액세스 데이터 없이 많은 서로 다른 레이어링 기법에 따른 데포르메이션을 생성할 수 있다.
일 실시예에 있어서, DDS는 단지 기하학적인 정보, 즉 꼭지점 위치 및 그들의 데포르메이션 환경에 관한 정보만을 포함하며, 꼭지점이 NURBS, 메시 또는 일구 분 표면에 속하는지 여부를 나타내는 정보는 갖지 않는다. 따라서, 데포르메이션 파이프라인은, CG 모델에 대한 데포르메이션을 수행하기 위하여 실제 표면 파라미터화, "토폴로지(topology)"에 대해서 알아야 할 필요가 없다. 그러나, 꼭지점을 포함하는 표면의 파라미터화된 표현을 데포르머에게 제공하는 것이 유용할 경우에는 CG 모델의 표면의 토폴로지 기술을 포함하는 제2 데이터 추출이 파이프라인에서 사용될 수 있다.
DDS는 모듈의 시퀀스로 구성되는 파이프라인을 따라 진행하며, 이들의 각각은 데이터 스트림에 특정 데포르메이션을 적용하는 작업을 담당한다. CG 모델이 파이프라인의 모듈을 통하여 진행하면, 모듈은 모델의 꼭지점 및 데포르메이션 환경을 수정한다. 몇몇 모듈은 CG 스켈리튼, 스키닝 바인딩(skinning bindings), 제2 애니메이션 데포르메이션 등들 포함한다.
일 실시예에 있어서, 본 발명의 모듈은 관련 미국 특허출원 "Wrap Deformation Using Subdivision Surfaces"에 개시된 동적 바인딩 알고리즘을 사용한다. 예를 들어, 일 실시예에 있어서, 스켈리튼은 우선 중간 오브젝트(프록시 모델이라고 함)로 바인딩된다. 프록시 모델은 조인트로부터 CG 모델의 표면으로의 데포르메이션을 원활하게 변형한다. 표면은 동적으로 프록시 모델로 바인딩되어, DDS가 스킨 바인딩 모듈을 입력할 때, 이는 프록시 모델에서의 적절한 위치를 찾고, 그리고 스켈리튼의 조인트 이동에 따라 변형이 적용된다. DDS에서의 표면은 살짝 변경되어야 하는데, 유사한 캐릭터가 파이프라인을 통하여 전송되거나 모델이 변경되기 때문이며, 동적 바인딩은 프록시 모델에서의 새로운 바인딩 위치를 찾아 낸다. CG 스켈리튼과 프록시 모델의 관계 및 이들의 셋업이 유지되고, 따라서 기술적인 관리자의 시간을 절약할 수 있다.
일 실시예에서, 파이프라인 내의 각 모듈은,
데포르메이션 전의 CG 모델들의 스트림을 포함하는 DDS 입력,
필요한 경우 모듈이 이용할 수 있는 토폴로지 입력,
데포르메이션 후의 CG 모델들의 스트림을 포함하는 DDS 출력,
필요한 경우 다음 모듈로 전달되어 사용되는 토폴로지 출력.
과 같은 두 개의 입력과 두 개의 출력을 갖는다.
추가적인 입력들 및 출력들이 또한 제공될 수 있다.
본 기술 분야의 당업자에게 자명한 것으로서, 본 발명의 기법들은 스키닝(skinning) 모듈들뿐만 아니라, 와이어 데포르머(wire deformers), 폴리랩(polywraps), 클러스터(clusters) 등과 같은 다른 유형의 데포르머에도 적용될 수 있다.
본 발명의 기법들에 따르면, 데포르메이션 모듈들은 동적으로 DDS내의 기하에 바인딩된다. 데포르머들은 자신의 데포르메이션을 순차, 혼합, 병렬 또는 계층의 네 가지 레이어링 또는 바인딩 유형 중 임의의 것에 따라 적용시킨다. 선택된 바인딩 모드에 따라, 모듈은 이하에 설명하는 바와 같이 DDS내의 꼭지점 정보를 상이하게 바인딩 및 데포르메시킨다.
순차적 바인딩 모드에서는, 각 데포르머가 이전에 데포르메된 표면의 맨 위에 자신의 데포르메이션을 레이어링한다. 이들 데포르메이션은 전역 좌표 시스템 을 이용하여 적용된다.
혼합 바인딩 모드에서는, 각 데포르머가 원래의 데포르메이션 이전의 기하에 바인딩된다. DDS는 자신의 설명에 원래의 꼭지점 위치를 포함한다. 각 데포르머는 자신의 데포르메이션을 적용한 후 스칼라 파라미터를 이용하여 자신의 효과를 DDS 입력 내의 데포르메된 기하와 혼합(보간)하고, 따라서 데포르메이션의 이전 시퀀스에 자신의 효과를 추가하게 된다. 혼합 바인딩 모드는 사용자로 하여금 일련의 데포르머들 내에서 특정 데포르메이션의 효과를 튜닝 인 또는 아웃할 수 있도록 해준다.
병렬 바인딩 모드에서는, 각 데포르머가 원래의 데포르메이션 이전의 기하에 바인딩되고, 자신의 기여도(contribution)를 벡터 합에 의해 DDS에 추가한다(선형 보간과는 반대됨).
계층적 바인딩 모드에서는, 꼭지점들에 직접 바인딩되는 것이 아니라, 각 데포르머가 이들 꼭지점에 대한 좌표들의 로컬 센터(이들은 이후 바인딩 프레임이라 일컬어짐)에 바인딩된다. DDS내의 각 꼭지점은 관련된 좌표들의 로컬 프레임을 갖는다. 이러한 좌표들의 프레임은 DDS에 의해 운반될 수 있는 꼭지점에 대한 데포르메이션 환경의 일부이다. 좌표들의 로컬 프레임들에 관하여 데포르메이션을 촉진시킴으로써, 본 발명은 꼭지점들을 자신의 앵커 포인트들을 축으로 하여 회전시키는 더욱 복잡한 데포르메이션을 가능하게 하며, 이는 특히 DDS내의 각 꼭지점이 상이한 좌표들의 로컬 프레임을 가질 수 있기 때문이다.
이러한 요약 및 이하의 상세한 설명에서 기술된 특징 및 장점이 전부인 것은 아니다. 많은 추가적인 특징 및 장점들이 도면, 상세한 설명 및 청구범위를 참조하여 본 기술 분야의 당업자에게 자명해질 것이다.
또한, 본 명세서에서 사용된 용어는 주로 읽기 쉽고 파악이 용이하도록 선택된 것이며, 본 발명의 대상을 설명하거나 한정하도록 선택된 것이 아니며, 이러한 대상을 결정하는 데 필요한 청구 범위에 따라 파악된다.
도면들은 본 발명의 바람직한 실시예를 도시하고 있으며, 이는 설명을 위한 것일 뿐이다. 본 기술 분야의 당업자는 이하의 논의로부터 본 명세서에 기술된 구조 및 방법의 대체 실시예가 본 명세서에 기술된 발명의 원리로부터 벗어남이 없이 채택될 수 있음을 용이하게 파악할 수 있다.
<실시예>
본 명세서에서 사용되는 "표면"이라는 용어는 NURBS, 다각형, 곡선, 일구분 등을 지칭하며, 위치, 속도 및 가속도를 갖는 입자의 흐름을 포함할 수도 있다. 일반적으로, 사용자가 정의한 스칼라 및/또는 필드를 수반하는 임의의 점 데이터는 본 명세서의 맥락에서 "기하(geometry)"로 간주될 수 있으며, 본 발명의 기법에 의해 데포르메될 수 있다.
본 명세서에서 기술하고 있는 기법은 특정 기하의 토폴로지(또는 점 연결 정보) 또는 데포르메되는 객체에 무관하다. 예시를 위해, 이하의 설명에서는 데포르메되는 객체로서 애니메이트화되는 캐릭터들을 참조할 것이지만, 본 기술 분야의 당업자는 본 명세서에서 기술된 기법이 다른 유형의 기하 또는 객체에도 적용될 수 있음을 알 것이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 CG 모델(151)의 기하의 데포르메이션 파이프라인(100)을 통한 흐름을 도시하는 블록도가 도시되어 있다. CG 모델(151)은 다수의 3차원(3D) 표면들(152)을 포함한다. 모델(151)이 파이프라인(100)을 통과함에 따라, 캐릭터를 나타내는 애니메이팅된 모델(151A)로 변형된다. 데포르메이션 파이프라인(100)은 CG 모델(151)의 입력 표면들(152) 뿐만 아니라 대응하는 애니메이션 곡선들(153)도 취한다. 각 애니메이션 곡선(153)은 시간(필름 프레임)의 함수로서 CG 캐릭터 동작에서의 다양한 제어 위치를 기술한다. 데포르메이션 파이프라인(100) 내의 데포르머들(도 1에 도시되지 않음)은 애니메이션 곡선들(153)을 이용하여 표면들(152) 상에 데포르메이션을 생성한다. 이러한 모든 데포르메이션들이 평가된 후에, 데포르메이션 파이프라인(100)은 애니메이팅된 위치에 최종적인 데포르메된 표면들(152A)을 출력한다. 일 실시예에서, 데포르메이션 파이프라인(100)은 애니메이팅된 포즈들의 시퀀스를 생성하기 위하여 매 시간 프레임마다 실행된다.
도 2를 참조하면, 본 발명의 일 실시예에 따른, 모델들(151)로 표현되는 일련의 인간형 캐릭터를 애니메이팅하기 위하여 파이프라인(100)을 이용하는 일례를 나타낸 블록도가 도시되어 있다. 파이프라인(100)에 대한 입력은 모델들(151)로 표현되는 캐릭터들의 시퀀스뿐만 아니라 애니메이션 곡선들(153)을 포함한다. 캐릭터들은 형태학적으로 유사하여, 동일한 데포르메이션 파이프라인(100)이 모든 캐릭터들에 적용될 수 있게 한다. 각 캐릭터는 애니메이션 곡선(153)에 대응된다. 파이프라인(100)은 애니메이팅된 포즈들로 데포르메된 원래 세트의 캐릭터들을 포 함하는 출력을 생성한다. 일 실시예에서, 애니메이션 곡선들의 각 값에 대하여, 데포르메이션 파이프라인(100)은 소정의 시간 프레임에 대하여 캐릭터 애니메이션 포즈를 생성한다.
도 3을 참조하면, 일 실시예에 따른 데포르메이션 파이프라인(100)의 일례가 도시되어 있다. 파이프라인(100)은, 각각 데포르메이션 데이터 스트림(DDS; 106) 및 토폴로지(351)를 받아들이는 모듈들(102) 또는 데포르머들의 시퀀스를 포함한다. 각 모듈(102)은 DDS(106) 및 토폴로지(351)를 출력한다. 각 모듈(102)은 DDS(106)에 저장된 기하 내에 데포르메이션을 생성한다. 또한, 캐릭터(들)의 기하(10)를 DDS(106)로 변환하는 헤드 모듈(102)과, 데포르메된 DDS(106) 및 토폴로지(351)를 다시 기하 출력(105)으로 결합시키는 테일 모듈(104)이 제공된다.
도 4를 참조하면, 본 발명의 일 실시예에 따른, 데포르메이션의 분기 및 병합을 포함하는 데포르메이션 파이프라인(100) 내의 모듈들(103)의 대체 레이아웃이 도시되어 있다. 데포르메이션 모듈들(103)의 복수의 시퀀스들은 DDS(106)를 헤드 모듈(102)로부터 취하여 이를 DDS(106)가 최종 재결합을 위해 테일 모듈(104)에 도달할 때까지 병행하여 독립적으로 변형시킨다. 도 4의 병렬 레이아웃에서, 테일 모듈(104)은 여러 DDS(106)들을 대응하는 웨이트들을 선형적으로 결합시킨다. 따라서, 사용자는 다른 데포르메이션들에 비하여 소정의 데포르메이션 시퀀스에 더욱 중점을 두어야 함을 지정할 수 있다.
일 실시예에서, 파이프라인(100)내의 모든 모듈들(103)이 DDS(106) 상에 데포르메이션을 생성하는 것은 아니다. 일부 모듈들(103)은 DDS(106) 상의 꼭지점 정보에 영향을 미치기만 할 수도 있고, 또는 DDS(106)를 필터링하여 후속 처리로부터 기하를 배제시킬 수도 있다. 이러한 동작은 이하에 더욱 상세히 기술하기로 한다.
일 실시예에서, 각 모듈(102)은 파이프라인(100)의 어디에도 복제되어 배치될 수 있는 독립적인 개체이다. 또한, 파이프라인(100)은 그래프로서 기술될 수 있으며, 잘 알려진 그래프 이론 기법(예컨대 Maya®에서의 종속 그래프)을 이용하여 구현될 수 있다. 본 기술 분야의 당업자는 임의의 다른 종속 그래프 시스템을 이용할 수 있음을 알 수 있다.
도 5를 참조하면, 일 실시예에 따른 데포르메이션 모듈(102)을 나타낸 블록도가 도시되어 있다. 모듈(102)은 DDS(106)을 입력으로서 취하는 독립 유닛으로서 기능하고, 다수의 필터링 및/또는 데포르메이션 동작들을 수행하며, 변형된 DDS(106)를 출력으로서 전달한다. 스트림(106)에서 기하에 대하여 수행되는 데포르메이션은 모듈(103)내에서 완전히 캡슐화된다. 모듈(103)은 DDS(106) 및 토폴로지(351) 이외의 다른 구조들에 대한 어떤 액세스도 가질 필요가 없다. 마찬가지로, 모듈(103)의 어떤 클라이언트 객체도 DDS(106) 및 토폴로지(351) 출력들 이외의 다른 데이터 구조들에 대한 액세스를 가질 필요가 없다.
일 실시예에서, 토폴로지(351)가 DDS(106) 내에 인코딩된 기하의 토폴로지적 구성을 기술하는 정보를 포함하는 데이터 구조로서 제공된다. 일 실시예에서, 토폴로지(351)는 모듈(103)이 읽어 다음 모듈(103)로 통과시키는 불변 구조(constant structure)이다. 따라서, 모듈(103)은 토폴로지(351)에 어떤 수정도 가하지 않는 다. 모듈(103)이 DDS(106) 입력 또는 토폴로지(351) 입력에서 갱신을 탐지하는 경우, 이는 새로운 평가를 트리거링한다. 이제 새로운 평가는 DDS(106) 상의 새로운 데포르메이션의 계산을 야기하게 되고, 결과적으로 DDS(106) 출력이 다시 계산되어 모듈(103)의 출력 속성에 보내어진다.
일 실시예에서, 파이프라인(100)은 애니메이션 및 게임을 위한 CG 캐릭터들의 데포르메이션에 특화된 하드웨어 그래픽 카드 내에 구현된다. 이러한 구현예는 스택된 동작들{여기서는 DDS(106) 동작들임}의 꼭지점 파이프라인을 이용하는 OpenGL 그래픽 카드를 이용한다. 도 3의 파이프라인(100) 아키텍처에 도시된 바와 같이, 데포르메이션 변경은 DDS(106) 데이터 구조상에서 순차적으로 발생하는 동작들의 스택(stack)으로서 구현된다. 하드웨어 구현예에서, 하드웨어 카드는 도 3과 관련하여 앞서 기술된 기저 구현예를 이용하며, 소프트웨어 개발자는 소정의 기본 셋업 명령어들을 제공한 후 하드웨어 카드의 모듈들에 대한 호출을 생성한다. 일단 하드웨어로 구현된 모듈들이 초기화되면, 이러한 애플리케이션의 사용자는 하나 이상의 CG 모델들(151) 및 이들 각각의 애니메이션 캐릭터들을 보냄으로써, 도 2와 관련하여 앞서 기술된 바와 같은 시스템과 상호 작용할 수 있으며, 이에 따라 하드웨어는 데포르메이션 모듈들(103)을 실행하여 애니메이팅된 CG 모델을 반환할 수 있다.
데포르메이션 데이터 스트림(DDS)(106)
본 발명의 일 실시예에 따르면, 데포르메된 기하는 데포르메이션 데이터 스트림(DDS)(106)으로서 표현된다. 데이터 스트림 포맷은 데포르메이션을 위한 레이 어링 스킴들(layering schemes)을 지원할 수 있는 데포르메이션 파이프라인(100)의 직렬화된 구현을 촉진시킨다. 또한, 직렬화된 구현은 일부 실시예에서 하드웨어 구현에 용이하다.
도 6을 참조하면, 데포르메이션 파이프라인(100)에 대한 데이터 스트림(106)의 요소로서 캐릭터(501)를 표현하기 위한 방식을 도시하고 있다. 캐릭터 M1(501)은 각각 바인딩 아이템들(503)의 블록에 대응되는 다수의 불연속 표면들(S0, S1,...,SM으로 표기)을 포함한다. 각 바인딩 아이템(503)은 대응하는 꼭지점 위치뿐만 아니라 순차적, 계층적 및 다른 데포르메이션들을 레이어링하기 위한 관련 꼭지점 환경 정보를 포함한다. 캐릭터의 표면 S1은 각각 바인딩 아이템들(503)의 블록으로서 인코딩된다. 일 실시예에서, 각 바인딩 아이템(503)은 예시를 위하여 C++ 프로그래밍 언어로서 나타낸 다음과 같은 형태의 데이터 객체이다.
class BindingItem {
private:
int tag;
Point cvOrig;
Point cvCurrent;
Point cvProjection;
FramItem bindingSite;
....
};
여기서,
class FrameItem {
private:
int ID;
Point orig;
Vector basis[3];
double weight;
....
}
이다.
일 실시예에서, 이하의 객체들이 BindingItem 구조에 제공된다.
- 객체의 표면 내의 꼭지점을 식별하는 태그 t(BindingItem::tag).
- 파이프라인(100)에 의한 임의의 데포르메이션 이전의 꼭지점의 원래 위치를 포함하는 원 꼭지점 위치 C0(BindingItem::cvOrig). 일 실시예에서, 이러한 꼭지점 위치의 좌표들은 {O; b0, b1, b2}(BindingItem::bindingSite)로 지정된 좌표들의 로컬 프레임에 기록된다.
- 표면 Si에 대한 블록(502) 내의 각 꼭지점에 대한 로컬 bindingSite 또는 좌표들의 프레임. DDS(106)이 처음으로 헤드 모듈(102)에 의해 생성되는 경 우, 모든 꼭지점들은 통상적으로 동일한 좌표들의 로컬 프레임(좌표들의 객체 공간 시스템)을 갖는다. 그러나, DDS(106)이 모듈(103)을 통해 스트리밍됨에 따라, 이들 좌표들의 로컬 프레임들은 이하 설명하는 바처럼 변형될 수 있으며, 따라서 동일한 표면상의 꼭지점들 사이에서도 상이해질 수 있다.
- {b0, b1, b2} 기본 집합 상의 성분들을 일반적으로 포함하며, 꼭지점의 포스트-데포르메된 위치를 설명하는, 프로젝션 벡터 α (BindingItem::cvProjection). 각 모듈(103)은 상이한 데포르메이션을 예측한다. 꼭지점의 데포르메 이후의 위치를 기술하는 {b0, b1, b2} 기본 집합 바인딩 모드에 따르면, 데포르메되는 실제 꼭지점 좌표들이 변경되므로, 반드시 C0인 것은 아니다. 각 모듈(103)은 벡터 α내에 좌표들의 로컬 프레임 내의 데포르메이션의 성분들을 저장한다.
- 꼭지점의 데포르메 이후의 최종적인 위치를 포함하는 C1(BindingItem::cvCurrent). 이는 α에 의해 예측된 위치와 상이할 수 있는데, 그 까닭은 이것이 모듈(103)의 개발자가 적용하고자 할 수 있는 다른 데포르메이션 후 알고리즘, 웨이팅 및 혼합 방정식들을 포함하기 때문이다.
일 실시예에서, FrameItem 꼭지점 바인딩 사이트 데이터 구조는 이하를 포함한다.
- 좌표들의 프레임 또는 bindingSite에 대한 정수 식별자를 나타내는 ID(FrameItem::ID). 이러한 좌표들의 프레임은 이하에 더욱 상세히 설명하는 바와 같이 다른 구조들 내에서 계산되고 외부적으로 데포르메될 수 있다.
- 좌표들의 로컬 프레임 또는 바인딩 사이트에 대한 원점을 나타내는 O(FrameItem::orig). 바인딩 아이템(503) 내의 모든 다른 벡터들은 이러한 원점으로 지칭된다. 따라서 원점의 좌표들을 조작하는 데포르메이션 모듈들은 상대적인 오프셋들 및 O에 관한 방향에 영향을 미치지 않고 표면 꼭지점들에 대한 많은 상이한 계층적 효과를 생성할 수 있다.
로컬 프레임 b0, b1, b2의 기본 집합(FrameItem::basis[3])은 데포르메이션이 저장되고 일부 경우에는 평가되는 좌표들의 꼭지점별 시스템을 기술한다. 본 발명의 데포르메이션 파이프라인은 반드시 직교 좌표계를 필요로 하지는 않는다. 사실상, "Wrap Deformation Using Subdivision Surfaces"라는 발명의 명칭을 갖는 미국 특허 출원과 관련하여 기술된 Cbinding 모듈에서, 꼭지점 바인딩의 로컬 전단 데포르메이션들을 기술하기 위해 벡터 b1, b2는 b0이 이들에 대하여 직교하는 경우에는 반드시 직교일 필요는 없다.
각 로컬 프레임은 그를 통해 꼭지점 당 어느 정도의 완전 데포르메이션이 적용될 것인가에 관한 사용자 입력을 모듈이 취할 수 있는 웨이트 ω(프레임아이템::웨이트)를 구비한다. 웨이트 값이 0인 경우, 데포르메이션이 적용되지 않는다. 웨이트 값이 1인 경우, 완전 데포르메이션이 적용된다. 0과 1 사이의 값은 완전 데포르메와 데포르메되지 않은 꼭지점 위치 사이에 내삽이 생성되도록 한다.
본 명세서에 제공되는 설명을 위한 목적으로, "위치"라는 용어가 꼭지점 또 는 원점을 나나내는 오브젝트를 설명하기 위하여 사용된다. 그러나, 당해 기술의 당업자는 본 발명이 3차원(x, y, z) 유클리디안 공간(Euclidean space)의 위치에 제한되지 않는다는 것을 인식할 것이다. 따라서, 본 명세서에서 사용되는 "위치"라는 용어는 속도(예컨대 효과 엔진에서 입자의 데포르메이션 파이프라인에 대한 예) 또는 가속도(예컨대 의류 시뮬레이션과 같은 동적 애플리케이션에서)와 같은 기타 특징을 지칭하는 것으로 간주될 수 있다.
데포르메이션 모듈(103)은 다양한 방식으로 바인딩 아이템(503)을 사용할 수 있다. 모듈(103)은 원래의 데포르메되지 않은 표면에 기초하여 새로운 데포르메이션을 생성하기 위하여 원래의 꼭지점 위치(cvOrig)에 초점을 맞출 수 있거나, 표면의 추가 데포르메이션을 계속하기 위하여 원래의 꼭지점 위치를 무시하고 현재의 꼭지점 위치(cvCurrent)를 사용할 수 있거나, 좌표의 로컬 프레임에 영향을 주기 위해서 투영 α 및/또는 bindingSite를 수정할 수 있다. 당해 기술의 당업자에게 자명한 바와 같이, 본 발명은 바인딩 아이템(503) 오브젝트(object)를 사용하여 다수의 데포르메이션 가능성을 용이하게 한다.
일 실시예에서, CG 모델(151)의 표면이 정적이지 않아서 그 꼭지점이 시간에 따라 변하는 경우, 표면 꼭지점의 갱신은 이후 DDS(106)의 BindingItem 데이터 구조에서의 cvOrig를 통하여 진행된다. 결과적으로, 주어진 포즈(pose)에서의 캐릭터에 대한 데포르메이션 설정은 이동 CG 모델(151) 애니메이션의 정상부에 계층화된다. 그러한 상황의 일 예는 실제로는 외부에서 구동되는 혼합모양 데포르메이션인 CG 모델(151)이며, 여기서 파이프라인(100)은 모델(151)에 관한 이차 이동을 제 어한다.
따라서, 본 발명은 다양한 특정 작업을 위해 지시될 수 있는 데포르메이션 파이프라인(100)의 몇 가지 타입의 혼합을 처리하도록 잘 적응되어 있다.
프록시/표면 바인딩 모델
상술한 바와 같이, 본 발명은 파이프라인(100)의 시리얼화된 아키텍처를 유지하면서 복잡한 데포르메이션 계층화 기법을 지원한다.
일 실시예에서, 본 발명은 또한 CG 모델(151)의 표면의 특성으로부터 독립하여 데포르메이션 모듈(103)을 유지하는 것에 대한 지원을 제공한다. 데포르메이션 파이프라인(100)은 CG 모델(151)의 특성에서의 변화에 동적으로 적응할 수 있다. 예컨대, 다시 도 1을 참조하면, 일 실시예에서, 파이프라인(100)은 CG 모델(151)에서의 표면 및 다수의 표면의 특정 토폴로지 상세에 대해 독립적이다. 일 실시예에서, 파이프라인(100)은 또한 CG 모델(151)의 모양에서의 작은 변화에 대해 독립적이다. 따라서, 본 발명의 파이프라인(100)을 사용하는 기술자는 소정의 캐릭터 타입에 대하여 생산 과정 동안 캐릭터의 일생을 통하여 동일한 파이프라인(100) 구조를 반복적으로 재사용할 수 있다. 또한, 파이프라인(100)은 동일한 형태학적 구조(morphological structure)를 구비하는 다중 캐릭터와 함께 사용될 수 있다.
관련 미국 특허 "Wrap Deformation Using Subdivision Surfaces"는 일구분 표면을 사용하여 임의 타입의 기하구조를 랩(wrap) 데포르메하기 위한 기술을 설명한다. 랩 데포르메이션은 첫 번째를 "랩"하는 보조 표면을 사용하여 기하학적 표면을 데포르메하기 위한 기술이다. 일반적으로 랩 표면은 덜 셈세하고 해상도가 낮으며, 이러한 형태의 데포르메이션을 위한 랩 표면으로서 다각형 메시를 사용하는 것은 일반적이지 않다.
본 발명의 일 실시예에서, 캐릭터 리그는 "프록시/표면 바인딩" 모델을 구현하는 데포르메이션 모듈(103)을 사용하여 실제의 CG 모델(151)로부터 연결 해제된다. 골격 관절을 CG 모델(151)에 연결하는 데포르메이션 스킨의 경우에, 프록시 모델(일반적으로 CG 모델을 나타내는 대강의 다각형 메시) 데포르메이션 모듈(103)에 포함되고, 거기에 골격 관절이 직접 바인딩된다. 이러한 프록시 모델은 이후 관련 미국 특허 출원에 설명된 바와 같은 알고리즘을 사용하여 CG 모델(151)의 꼭지점이 바인딩되는 다수의 좌표의 로컬 프레임들을 생성한다.
이하 도 7a 내지 도 7d를 참조하면, CG 모델{NURBS 구(NURBS sphere; 401)} 및 프록시 모델{큐브 다각형 메시(cube polygonal mesh; 402)}의 예가 도시되어 있다. 도 7a에 도시된 바와 같이, 프록시 모델(402)은 구(401)를 랩한다{구(401)의 꼭지점(405)이 명확성을 위해 강조됨}. 도 7b는 프록시 모델(402) 및 구(401) 사이의 대응하는 바인딩 표면(403)을 도시한다. 본 예에서, 바인딩 표면(403)은 프록시 다각형 메시(402)와 연관된 루프 일구분 표면으로서 계산되고, 이는 관련 미국 특허 출원에 더 상세하게 설명되어 있다. 따라서, 큐브(402)의 꼭지점에 대한 어떠한 변화는 바인딩 표면(403) 상의 부드럽고 연속적인 변화로 변환된다. 당해 기술 분야에서 잘 알려진 바와 같이, 루프 일구분 표면은 적어도 국부적으로 파라메트릭 표현을 갖는 유한 해상도의 삼각형 기반 표면이다.
도 7c에 도시된 바와 같이, 구(401) 상의 각 꼭지점(405)은 바인딩 표면 (403) 상의 최근접 삼각형(404)에 연관 또는 바인딩된다. 좌표의 적절한 오프셋 및 프레임이 이러한 바인딩 동작에서 계산된다. 이하 도 7d를 참조하면, 바인딩 표면(403) 상에 구 꼭지점(405) 및 삼각형(404) 사이에 세 개의 그러한 바인딩의 상세도가 도시된다. 큐브 다각형 메시(402)의 어떠한 데포르메이션은 루프 일구분 알고리즘을 통하여 바인딩 표면(403)의 갱신을 트리거하고, 이는 반대로 바인딩 인테페이스를 통하여 구(401) 상의 꼭지점(405)으로 전파한다(실제 CG 모델).
이러한 기술을 사용하여, CG 캐릭터의 프록시 모델(402)이 CG 모델을 데포르메하기 위하여 사용된다. 따라서, 랩 데포르메이션 알고리즘은 데포르메이션의 로컬 제어의 많은 부분을 고려한다. 또한, CG 골격은 프록시 모델(402)에 바인딩될 수 있어서, 골격 관절은 표면 메커니즘을 바인딩함으로써 간접적으로 CG 모델을 데포르메한다. 이러한 간접 방식의 별도 레벨의 장점은, 골격/프록시 리그(rig) 조합이 일단 설정되고 웨이팅되면, 리그에 수행된 일을 상당 부분 수정할 필요 없이 CG 모델의 다중 형태를 다시 바인딩할 수 있다는 점이다.
당해 기술의 당업자는 설명된 알고리즘이 본 발명의 파이프라인(100)에서 사용될 수 있는 많은 가능한 프록시/표면 바인딩 알고리즘 가운에 단지 하나라는 것을 인식할 것이다. 어떤 실시예에서, 본 발명은 다각형 메시, 파라메트릭 곡선(parametric curve), NURBS 표면, 입자의 시스템 등에 대한 프록시 바인딩을 위한 모듈을 제공한다. 유사한 모듈이 기타 타입의 프록시 오브젝트에 대해 개발될 수 있다.
이하 도 8을 참조하면, 두 개의 프록시/표면 바인딩 모듈(103a, 103b)을 포 함하는 데포르메이션 파이프라인(100)의 샘플 부분이 도시되어 있다. 모듈(103a)은 다각형 메시 프록시/표면 바인딩이고, 모듈(103b)은 파라메트릭 곡선 프록시/곡선 바인딩이다. 또한 CG 모델(151a, 151b)과 연관된 DDS(106)의 아이템을 나타내는 블록(502a, 502b)이 도시되어 있다. DDS(106) 아이템이 모듈(103a)에 진입하는 경우, 이는 프록시 다각형 메시(402)에 동적으로 바인딩한다. 프록시 모델(402) 상의 현존하는 데포르메이션은 이후 DDS(106) 바인딩 아이템(503)의 꼭지점으로 전달되고 스트림(106)은 다음 데포르메이션 모듈(103b)로 이동한다. DDS(106)가 곡선 프록시/곡선 바인딩 모듈(103b)을 통과할 때, DDS(106) 아이템은, BindingItems이 파라메트릭 곡선의 바인딩 곡선에서 바인딩 위치를 찾고 데포르메이션 모듈(103b)로부터 CG 모델(502)상에서 표면의 새로운 좌표 위치를 구하는 것에 의한 프로세스와 유사한 방식을 따른다.
다수의 기술 중 어떤 것에 따라 바인딩 표면 및 바인딩 곡선은 프록시 오브젝트로부터 생성될 수 있다. 프록시 오브젝트(402)가 다각형 메시인 경우, 로컬 바인딩 표면을 생성하기 위하여 Catmull-Clark 및 루프 일구분 표면을 사용하는 모듈이 제공된다. 일구분 표면의 각 다각형은 일구분 표면의 주어진 꼭지점에 대한 한계 일구분 표면상에 탄젠트 벡터에 의해 정의된 좌표의 로컬 프레임을 가진다. 일구분 표면의 유한 해상도는 데포르메이션 모듈(103) 상의 파라미터에 의해 제어되고, 따라서 사용자로 하여금 프록시(402) 및 CG 모델(151) 사이에서 해상도의 큰 변화에 적응하도록 한다. NURBS 프록시(402)의 경우에는, 볼록부 외피(convex hull)가 다각형 메시를 정의하기 위해 사용될 수 있고, 표면 바인딩은 전술된 기술 을 사용하여 계산된다. 프록시 오브젝트(402)가 파라메트릭 곡선인 경우에, 모듈(103)은 좌표의 로컬 프레임의 시퀀스를 획득하기 위하여 주어진 레이트(rate)에서 곡선을 샘플링한다. 곡선을 따라 좌표의 3차원 프레임을 완전히 기술하기 위하여, 좌표의 Frenet 또는 Bishop 프레임과 같은 차분 기법(differential scheme)이 사용된다. 대안적으로, 모듈(103)은 두 개의 곡선에 의존할 수 있고, 두 곡선 중 하나는 데포르메이션 이전에 곡선의 위치를 나타내는 것이며 다른 하나는 데포르메이션 이후에 곡선의 위치를 나타내는 것이다.
상술한 바와 같이, CG 캐릭터의 표면(152)은 DDS(106)상의 바인딩 아이템(503)의 블록으로 전환된다. 바인딩 아이템(503)에 포함된 데이터 가운데에는 표면 꼭지점에 대한 좌표의 로컬 프레임인 bindingSite가 있다. 프록시 바인딩이 발생하는 각 모듈(103)의 내부에는, 각 꼭지점에 대한 bindingSite가 좌표의 대응하는 표면 바인딩 프레임에 의해 교체된다. 예컨대, 다시 도 7d를 참조하면, 구(401)의 각 꼭지점(405)은 최근접 이웃 알고리즘(nearest neighbor algorithm)에 의해 루프 일구분의 바인딩 표면(403)에서의 삼각형(404)으로 바인딩된다. 각 삼각형(404)은 잘 정의된 좌표의 프레임을 가지며, 여기서 원점은 중심이고, 세 개의 기본 벡터 중 두 개는 중심으로부터 두 개의 비(非)축퇴 삼각형 꼭지점(non-degenerate triangle vertices)으로 향하며, 세 번째 기저 벡터는 삼각형(404) 평면에 수직이다. 이후, 삼각형(404)의 중심은 bindingSite.org 변수를 대체한다. 삼각형(404) 좌표의 로컬 프레임은 벡터의 bindingSite.basis[3]을 교체하고, 데포르메이션 알고리즘 동안에 사용되기 위한 삼각형(404)과 연관된 웨이팅 값이 있는 경우, 그 웨이팅 값은 bindingSite.weight로 할당된다.
도 9a를 참조하면, 프록시 다각형 메시(402)에 대한 어떤 데포르메이션 이전에 루프 일구분에서의 삼각형(404)에 대한 좌표의 로컬 프레임이 도시되어 있다. 도 9b는 프록시 다각형 메시(402)가 수정된 이후의 삼각형(404)을 도시한다. 중심(504)은 위치를 변경하고 기본 집합(b0, b1, b2; 603, 601, 602)은 다른 위치로 향한다. 프록시 데포르메이션 동안, 좌표의 로컬 프레임은 변하는 반면 cvProjection 컴포넌트는 일정하게 남으며, 그 결과 새로운 위치가 예측된다. 일 실시예에서, cvProjection 컴포넌트는 프록시 모델(402)에서의 어떤 변경에 앞서 표면 바인딩 성질을 데포르메이션 모듈(103)에 캐싱함으로써 계산된다. 일반적으로, 이러한 성질은 새로운 바인딩이 모듈(103)에 의해 캐싱되게 하는 사용자가 표면 재바인딩 이벤트를 트리거 하지 않는 이상 변하지 않는다. 따라서, 본 발명의 이러한 실시예에서, 각 모듈(103)은 프록시 바인딩 표면의 두 개의 복사본을 포함하고, 이는 cvProjection 컴포넌트를 계산하기 위한 정적 버전 및 DDS(106)의 바인딩 아이템(503)에서 좌표의 로컬 프레임을 갱신하기 위한 동적 버전이다.
데포르메이션 모듈(103)을 통과한 이후에, DDS(106) 아이템에서의 각 꼭지점은, 모듈(103)의 데포르메이션이 국부적으로 적용되는 새로운 좌표의 프레임을 갖는다. 다운스트림 모듈(downstream module; 103)은 이러한 좌표의 프레임에 기초하여 계층적인 데포르메이션을 자유롭게 교체 또는 생성할 수 있다. 또한, 모듈(103)에 의해 수행되는 데포르메이션은 BindingItem::cvProjection내의 좌표의 로컬 프레임에 저장된다. 이러한 데이터는 어떤 후(後)-데포르메이션 웨이팅 또는 내삽 알고리즘(interpolation algorithm)을 고려하지 않기 때문에, 모듈 데포르메이션이 완료된 이후(BindingItem::cvCurrent)의 꼭지점의 위치와 반드시 동일한 것은 아니다.
상술한 예는 프록시 모델(402)이 CG 모델(151)의 꼭지점을 견인하는 랩-데포르메 오브젝트로서 설정된다고 가정한다. 그러나, 당해 기술의 당업자는 기타 구성도 가능하다는 점을 인식할 것이다. 예컨대, 프록시 다각형 메시(402)는 캐릭터를 데포르메하기 위한 지원 평면으로서 작동하기 위하여 CG 모델(151) 내에 배치될 수 있다. 그러한 배치는 예컨대 해부학상 정밀한 데포르메이션을 생성하기 위한 것과 같은 소정의 상황에서 바람직할 수 있다. 본 명세서에서의 설명의 목적을 위하여, CG 모델(151)에 대한 프록시(402)의 배치와 상관없이 "랩 데포르메이션"이라는 용어가 사용된다.
데포르메이션 계층화 기법
프록시(402) 및 CG 모델(151) 사이의 바인딩 관계가 설정되면, 표면(152)을 데포르메하기 위한 다수의 계층화 기법을 정의할 수 있다.
상술한 바와 같이, 데포르메이션 모듈(103)은 병렬, 혼합, 순차 및 계층을 포함하는 몇 가지 다른 계층화 기법을 지원한다. 일 실시예에서, 이러한 데포르메이션 기법은 다음의 DDS(106) 디자인에 의해 지원된다.
프록시 표면 또는 곡선의 구성요소와 DDS(106) 아이템에서의 바인딩 아이템(503) 사이의 바인딩이 설정되면, 새로운 꼭지점 위치를 계산하기 위하여 모듈(103)의 알고리즘 데포르메이션이 적용되는 방법에 관한 결정이 내려진다. 일 실 시예에서, 프록시(402)는 C0(초기 꼭지점 위치), C1(사전 데포르메 위치라고도 알려진 현재 꼭지점 위치) 및 O(좌표의 입력 로컬 프레임에 대한 원점)에 바인딩된다.
이하 도 10a 내지 10d를 참조하면, (a) 병렬 모드, (b) 혼합 모드, (c) 순차 모드 및 (d) 계층 모드에서의 바인딩 아이템(503)의 예가 도시되어 있다. 도 10a 및 도 10b에서, 좌표의 새로운 로컬 프레임은 초기 꼭지점 위치 C0에 바인딩된다. 도 10c(순차 모드)에서, 좌표의 새로운 로컬 프레임은 입력 현재 꼭지점 위치 C1에 바인딩된다. 도 10d(계층 모드)에서, 좌표의 새로운 위치는 좌표의 입력 로컬 프레임에 대한 원점인 O에 바인딩된다. 각 모드가 이하 차례로 설명될 것이다.
병렬 바인딩 모듈: 도 10a에 도시된 바와 같이, 원래의 꼭지점 위치 C0은 프록시/표면 바인딩 아이템(503)에 바인딩되며, 아이템은 예컨대 루프 일구분의 경우에 있어서의 삼각형일 수 있다. 모듈(103)은 모듈(103)의 특정 데포르메이션 알고리즘에 기초하여 C0에 대한 새로운 위치 C2를 예측한다. 화살표 우측의 도면은 데포르메이션의 결과를 도시하는데, C0은 여전히 원래의 꼭지점 위치이고, C' 1은 입력 현재 위치이고 C2는 모듈(103)의 데포르메이션 알고리즘에 의해 예측되는 새로운 위치이다. 그러나, C2는 실제 출력 현재 위치는 아니고, 도면에 도시되는 바와 같이 C1이 C0C' 1 및 C0C2 벡터의 추가로서 계산된다. 따라서, 이러한 모드에서, 데포르메이션은 적용되는 순서에 상관없이 벡터 공간에 추가된다. 또한, 일 실시예에서 모 듈(103)은 꼭지점 당 수행되는 데포르메이션의 양을 제어하는 별도의 웨이트 W 파라미터를 구비해서, 최종 현재 꼭지점 위치는 C1(1-W)+WC1으로 계산되는 바와 같이 C0 및 C1 사이에서의 내삽이다.
혼합 바인딩 모듈: 도 10b에 도시된 바와 같이, 원래의 꼭지점 위치 C0은 프록시/표면 바인딩 아이템(503)에 바인딩된다. 모듈(103)은 모듈(103)의 특정 데포르메이션 알고리즘에 기초하여 C0에 대한 새로운 위치를 예측한다. 화살표 우측의 도면은 데포르메이션의 결과를 도시하는데, C0은 여전히 원래의 꼭지점 위치이고, C' 1은 입력 현재 위치이고 C2는 모듈(103)의 데포르메이션 알고리즘에 의해 예측되는 새로운 위치이다. 다시, C2는 실제 출력 현재 위치는 아니고, C1은 입력 현재 위치 C' 1 및 새로운 예측된 데포르메된 위치 C2의 내삽으로서 계산된다. 따라서, 이러한 모드에서 모듈(103)의 데포르메이션은 데포르메된 모델의 최상부에 계층화된 이전 데포르메이션과 함께 혼합 또는 내삽된다. C' 1 및 C2 사이에서 내삽하기 위해서 사용되는 웨이트 W는 다시 모듈(103)의 파라미터이다.
순차 바인딩 모듈: 도 10c에 도시된 바와 같이, 현재 꼭지점 위치 C1은 프록시/표면 바인딩 아이템(503)에 바인딩된다. 모듈(103)은 모듈(103)의 특정 데포르메이션 알고리즘에 기초하여 C1에 대한 새로운 위치를 예측한다. 화살표 우측의 도 면은 데포르메이션의 결과를 도시하는데, C0은 여전히 원래의 꼭지점 위치이고, C' 1은 입력 현재 위치이고 C2는 모듈(103)의 데포르메이션 알고리즘에 의해 예측되는 새로운 위치이다. 다시, C2는 실제 출력 현재 위치는 아니고, C1은 입력 현재 위치 C' 1 및 새로운 예측된 데포르메된 위치 C2 의 내삽으로서 계산된다. 새로운 데포르메된 위치는 입력 C1에 기초하고 도 10b에서와 같이 C0에 기초하지 않는다. 따라서, 최종 데포르메이션은 이전 데포르메이션으로부터의 결과의 최상부에 계층화된다. 각 모듈의 데포르메이션은 서로 계층화되고, 각 모듈은 현재 꼭지점 위치의 새로운 오프셋을 갖는다. 이전과 마찬가지로, 모듈(103)의 웨이트 W는 C' 1 및 C2 의 내삽으로서 최종 현재 꼭지점 위치 C1을 생성한다.
계층 바인딩 모듈: 도 10c에 도시된 바와 같이, 좌표의 로컬 프레임의 원점 O는 프록시/표면 바인딩 아이템(503)에 바인딩된다. 모듈(103)은 모듈(103)의 특정 데포르메이션 알고리즘에 기초하여 C1에 대한 새로운 위치를 예측한다. 이러한 알고리즘은 예전 원점 O를 새로운 원점 O'로 이동하고 이후 예전 OC' 1 오프셋을 새로운 위치 C2 로 피봇(pivot)한다. 모듈(103)의 데포르메이션 기여는 예전 OC1 오프셋을 유지하고 새로운 데포르메이션 알고리즘에 따라 그 오프셋의 위치를 변환 및 피봇한다. 다시, 모듈(103)내의 웨이트 W의 존재로 인해 예전 현재 위치 C' 1 및 새로이 예측된 C2 사이의 내삽을 하게 된다.
당해 기술의 당업자에게 자명한 바와 같이, DDS(106) 및 특히 전술된 바인딩 아이템(503) 실시예는 예컨대 좌표 b0, b1, b2의 로컬 프레임에 기초하여 또는 그것 들 중 어떤 것의 조합에 기초하여 추가적인 계층화 데포르메이션 기법을 지원할 수 있으며 이를 제공한다.
유사하게 파이프라인(100)이 다양한 바인딩 모드에서 다중 모듈(103)을 어떤 순서 및 시퀀스로 구비할 수 있다는 점이 이해될 것이다. 그러한 유연성은 복잡한 CG 캐릭터 리그(rig)를 생성하는 준비 가능성을 상당히 향상시킨다.
모듈(103) 속성
일 실시예에서, 각 모듈(103)은 그 행동을 수정 및 제어하는 자신의 속성 또는 파라미터의 집합을 가진다. 이러한 속성은 주어진 타입의 데포르메이션 모듈(103)에 고유한 어떤 것 및 더욱 일반적인 어떤 것을 포함할 수 있다. 각 속성은 명칭을 가진다. 속성의 예는 제한됨 없이 다음을 포함한다.
인에이블됨: 모듈(103)의 동작을 인에이블/디스에이블하는 이진 속성. 디스에이블되는 경우, 모듈(103)은 통과 모드에서 동작하여서 DDS(106) 데이터가 입력으로부터 출력으로 복사된다.
DDS In: 모듈(103)에 제공된 입력 데포르메이션 데이터 스트림(106)에 대한 입력 연결.
DDS Out: 모듈(103)의 데포르메이션으로부터 유도된 출력 데포르메이션 데이터 스트림(106)에 대한 출력 연결
Binding mode: 각 모듈(103)은 병렬, 혼합, 순차 및 계층을 포함하는 전술된 네 개의 모드 중 하나에 따라 들어오는 바인딩 아이템(503)에 바인딩될 수 있다.
Weight: 모듈의 전체 데포르메이션의 얼마나 많은 양이 입력 DDS(106)에 적용될 것인지를 제어한다. 모듈(103)의 웨이트가 0인 경우, 데포르메이션 영향은 없다. 웨이트 1을 갖는 모듈(103)은 그 데포르메이션을 최대로 적용하는 반면 0.5의 웨이트를 갖는 모듈(103)은 최대 데포르메된 기하구조 및 원래 데포르메된 기하구조 사이의 중간 지점을 나타내는 출력을 생성한다. 일 실시예에서, 이러한 웨이트는 모듈(103)의 동작을 전체로서 제어하는 반면 분리된 바인딩 사이트 당의 웨이트는 개별 바인딩 사이트에 의해서 웨이트를 제어한다. 따라서, 모듈(103) 웨이트가 W로 표시되고 각 바인딩 사이트 i와 연관된 웨이트가 si로 표시되는 경우, 바인딩 사이트 i와 연관된 지점에 적용되는 데포르메이션은 곱인 W×si이다.
데포르메이션 파이프라인(100) 필터링 및 마스킹
상술한 바와 같이, 일 실시예에서 DDS의 각 바인딩 아이템(503)은 태그(BindingItem::tag)를 소지한다. 태그 제어는 꼭지점 레벨에서 각 모듈(103)이 DDS(106)내의 바인딩 아이템(503)에 어떻게 영향을 끼치는지를 제어한다. 일 실시예에서, 이하의 UNKNOWN, UNBOUND, PARALLEL, BLENDING, SEQUENTIAL, HIERACHICAL과 같은 태그가 이용 가능하다. 당해 기술의 당업자는 기타 태그 또한 이용 가능 하다는 점을 인식할 것이다.
일 실시예에서, 바인딩 아이템(503)은 디폴트(default)로 UNKNOWN 상태에서 시작하며, 바인딩 아이템(503)은 파이프라인(100)을 통과하고 각 모듈(103)은 자신의 파라미터 및 특성에 따라서 바인딩 아이템(503)을 데포르메한다. 예컨대, 병렬 바인딩 모드에서 모듈(103)은 전술한 병렬 바인딩 기법에 따라 UNKNOWN 바인딩 아이템(503)을 수정한다.
그러나, 바인딩 아이템(503)의 태그가 PARALLEL, BLENDING, SEQUENTIAL 또는 HIERARCHICAL인 경우에는 단지 정합 타입의 모듈(103)이 바인딩 아이템(503)을 수정한다. 따라서, 태그는 파이프라인(100)을 통과하는 동안 바인딩 아이템(503)에 수행될 데포르메이션에 대한 필터로 작용한다.
UNBOUND 태그는 바인딩 아이템(503)이 그 바인딩 모드에 관계없이 데포르메되지 않는다는 것을 나타낸다. 이러한 태그는 사용자로 하여금 데포르메이션 파이프라인(100) 다운스트림으로부터 바인딩 아이템(503)을 제외하도록 한다.
일 실시예에서, 특정 태그를 DDS(106)의 바인딩 아이템에 할당하는 필터 모듈(103)이 있다. 이것은 데포르메이션 파이프라인(100)의 CG 모델(151)로부터의 독립성을 침범하지 않는 다양한 알고리즘에 의해 할당된다. 필터 모듈(103)의 예는 주어진 태그에 의해 커버되는 영역을 지시하는 도약 상자(bounding box) 및 좌표를 사용하는 것이다. 많은 기타 방법도 가능하다.
필터 모듈(103)은 데포르메이션 파이프라인(100)의 일부로서 통과하기 때문에 바인딩 아이템(503)의 태그를 수정 및 할당하기 위하여 파이프라인(100)의 어떤 곳에라도 배치될 수 있다. 바인딩 아이템(503)이 파이프라인(100)을 따라 필터 모듈(103)로부터 태그를 수신하면, 그 태그를 다운스트림으로 운반하여서, 모든 다운스트림 모듈(103)의 동작은 태그를 다른 값으로 변경할 수 있는 새로운 필터 모듈(103)에 도달할 때까지 동일한 태그에 의해서 영향을 받는다.
"마스킹"의 개념이 필터링과 매우 밀접하게 관련되어 있다. 마스킹은 액세서리 모듈로서 데포르메이션 모듈(103)에 부착되는 마스킹 모듈(103)을 통해 지원된다. 마스킹 모듈(103)은 태그를 DDS(106)의 bindingItems에 할당하지만, 이러한 태그는 데포르메이션 모듈(103) 내에서만 활성화된다. 마스킹은 꼭지점이 DDS(106) 내에 소지하는 태그를 덮어쓰는 형태이다.
이하 도 11을 참조하면, 필터 모듈(1101) 을 통해서 전달되는 DDS(106) 아이템 및 액세서리 마스킹 모듈(1102)에 의해서 수정되는 데포르메이션 모듈(103)의 예가 도시되어 있다. 바인딩 아이템(503)은 필터 모듈(1101)에 할당된 새로운 태그를 얻는다. 그러나, 바인딩 아이템(503)이 데포르메이션 모듈(103)에 도착하면, 마스킹 태그는 그 값을 덮어 쓸 수 있다. 바인딩 아이템(503)이 데포르메이션 모둘(103)을 종료하면, 사전마스크(pre-mask) 태그 값을 계속해서 운반한다.
모듈의 목록
이하에서는 일 실시예에 따라 데포르메이션 파이프라인(100)에 구현 가능한 모듈(103)의 몇 가지 예를 설명한다.
헤드 모듈(head module; 102). 헤드 모듈(102)은 데포르메이션 파이프라인(100) 외부에 정의된 기하 아이템(101)(예컨대 NURBS, 메시, 일구분 메시, 곡선, 지점 등)을 DDS(106)로 전환한다. 모듈(102)은 모든 점에 대해서 동일한 cvOrig 및 cvCurrent를 초기화한다. 또한 그 바인딩 프레임으로서 좌표의 원점을 운반하기 위하여 바인딩 아이템(503)을 초기화한다.
테일 모듈(tail module; 104). 테일 모듈(104)은 파이프라인(100)의 마지막 노드이다. 이는 DDS(106) 아이템을 실제 기하 아이템(105)(예컨대 NURBS, 메시, 일구분 메시, 곡선, 지점 등)으로 전환한다. 일 실시예에서, 상술한 바와 같이, 데이터 스트림(106)은 토폴로지 정보(351)를 포함하지 않고 그러한 정보는 병렬연결(토폴로지)에 의해 헤드 모듈(102)로부터 테일 모듈(104)로 전달된다. 그러한 토폴로지 정보(351)는 예컨대 DDS(106)에 의해 어떤 종류의 기하가 나타나는지를 설명하고, 또한 기본 집합 및 기타 성질을 설명하는 정보를 포함한다.
CBinding 또는 LBinding 모듈(103). 이것은 프록시로서 다각형 메시(402)를 사용하는 프록시/표면 바인딩 모듈(103)이다. CBinding 및 LBinding 모듈(103)은 다각형 메시(402)를 가지며 그것을 내부적으로 들어오는 데이터 스트림(106)을 위한 표면 바인딩으로서 작동하는 일구분 메시(403)로 전환한다. 다각형 메시(402)는 애니메이션 페이즈(animation phase)동안 이동하기 때문에, 바인딩 도메인은 바인딩 사이트를 그에 따라 견인한다. CBinding 모듈(103)에 대하여, 표면 바인딩은 사각형 기반(quad-based)이며, LBinding 모듈(103)에 대하여는, 표면 바인딩이 삼각형 기반(triangle-based)이다.
일 실시예에서, CBinding 모듈(103)은 표면 바인딩을 계산하기 위하여 Catmull-Clark 알고리즘을 사용하는 반면, LBinding 모듈(103)은 루프 일구분 알고 리즘(Loop subdivision algorithm)을 사용한다.
이하 도 12a를 참조하면, 단일 다각형 프록시 메시(402)가 사용되는 CBinding 모듈(103)의 예가 도시되어 있다. 제1 연결동안, 메시(402)의 복사본이 메시(402)의 정확한 사전 데포르메된 위치(pre-deformed position)에 대한 참조로서 모듈(103)에 캐시된다. 일 실시예에서, DDS(106)의 바인딩 아이템(503)은 이 캐싱된 메시(402)로부터 생성된 Catmull-Clark 표면에 동적으로 바인딩된다. 입력 다각형 메시(402)가 애니메이션 곡선 또는 기타 리그(rig)하에서 데포르메하기 때문에, 자신의 Catmull-Clark 표면은 좌표의 로컬 프레임에 갱신된 위치를 제공하여서 데포르메이션에 대한 구동력을 제공한다.
도 12b를 참조하면, 두 개의 다각형 메시(402a, 402b)가 CBinding 모듈(103)에 연결된 CBinding 모듈(103)의 실시예가 도시되어 있다. 바인딩 메시(402a)(참조 메시라고도 알려짐)는 바인딩 아이템이 바인딩되는 표면에 대한 참조이다. 메시(402b)(라이프 메시라고도 알려짐)를 갱신하는 것은 편집되고 꼭지점에 대한 좌표의 로컬 프레임의 위치를 갱신하는 것이다. 사용자는 두 개의 메시(402a, 402b)를 데포르메할 수 있다.
CurveBinding 모듈(103). CurveBinding 모듈(103)은 바인딩 도메인으로서 파라메트릭 곡선을 사용한다. 전술된 CBinding 모듈(103)에서와 같이, CurveBinding 모듈(103)은 참조 메시(402a)를 구비하고 또는 구비하지 않고 구현될 수 있다.
필터 모듈(103). 일 실시예서, DDS(106)의 각 바인딩 아이템(503)에 대하 여, 정수 태그(BindingItem::tag)는 지점과 함께 파이프라인(100)을 따라 움직인다. DDS(106)의 꼭지점에 대한 데포르메이션 모듈(103)의 효과는 이러한 태그의 값에 따라 수정될 수 있다. 예컨대, 꼭지점에 대한 태그가 UNBOUND인 경우, 파이프라인(100)을 따라 데포르메이션 모듈(103)이 그것을 데포르메하기 위하여 그것에 바인딩된다.
마스크 모듈(103). 마스크 모듈(103)은 몇 가지 측면에서 필터 모듈(103)과 유사하다. 또한, 어떤 영역으로부터 소정의 데포르메이션을 제외하기 위해 사용된다. 일 실시예에서, 마스크 모듈(103)은 바인딩 데포르메이션 모듈(103)에 직접 바인딩된다. 이것은 바인딩 도메인의 마스킹을 포함해서 바인딩 도메인의 소정 영역에 연결된 바인딩 아이템(503)으로의 데포르메이션 모듈(103)의 기여를 취소할 수 있다.
웨이팅 모듈(Weighting module; 103). 웨이팅 모듈(103)은 바인딩 모듈(103)에 직접 연결되고 데포르메이션 동안에 사용되는 지점 당(바인딩 아이템(503)) 웨이팅(per-point weighting)을 관리한다. 따라서, 웨이팅 모듈(103)은 애니메이션화되는 캐릭터의 선택된 영역에 대하여 정밀 튜닝하기 위하여 사용된다. 웨이트는 ID 당 또는 지역적인 영역에 의해 바인딩 아이템(503)에 할당될 수 있다. 또한, 웨이트는 바인딩 아이템(503)에 직접 부착될 수 있거나 지점이 부착되는 바인딩도메인을 통하여 간접적으로 부착될 수 있다.
릴렉서 모듈(Relaxer module; 103). 릴렉서 모듈(103)은 애니메이션을 더욱 더 실제적으로 만들기 위하여 사용자로 하여금 다각형 메시(403)에 물리적 성질을 추가하도록 한다(CBinding에서와 같이). 예컨대, 릴랙서 모듈(103)은 탄성, 관성, 드래그(drag) 및 기타 성질을 데포르메이션에 추가 또는 명시하기 위하여 사용될 수 있다. 또한, 릴랙서 모듈(103)은 데포르메된 표면(152) 상의 연속성 문제를 수정하기 위해서 사용될 수 있다.
기타 모듈(Other module; 103). 당해 기술의 당업자에게 자명한 바와 같이, 많은 기타 모듈(103)이 또한 잘 알려진 기술에 따라 구현될 수 있다. 그러한 모듈(103)은 예컨대 영향의 오브젝트, 입자 소스(particle source) 및 싱크(sink) 등을 포함한다. 그러한 동작을 수행하기 위한 알고리즘은 당해 기술 분야에서 잘 알려져 있다.
웨이팅(Weighting)
일 실시예에서, 단일 입력 꼭지점에 적용된 데포르메이션에 대한 웨이트의 전체 합은 1이다. 일 실시예에서, 본 발명의 시스템은, 합계가 다른 값이 되는 경우 초래될 수 있는 기하 구조의 위조 부산물(spurious artifacts)을 회피하기 위하여 웨이트의 합계가 1이 되도록 보장하기 위한 정규화 동작을 수행한다.
일 실시예에서, 본 발명의 시스템은 동작의 직렬화(serialization)를 유지하면서 그러한 정규화를 수행한다. 모듈 당 웨이트 W는 관련 용어에 명시되며, 이는 그 모듈(103)에서의 입력을 참조로 하고 전반적인 파이프라인(100) 또는 기타 모듈(103)을 참조로 하지 않고서 모듈(103)에 의해 적용되는 데포르메이션의 양을 나타낸다. 따라서, 예컨대 파이프라인(100)은 몇 개의 모듈(103)을 구비할 수 있고, 그들 모두는 0.5의 웨이트를 갖는다. 각 모듈(103)이 자신의 특정 입력 스트림 (106) 및 자신의 데포르메이션 동작을 참조로 하여서만 그 웨이트를 적용하기 때문에, 그러한 값은 일관적이고 위조 부산물에 이르지 않는다. 각 모듈(103)은 그 데포르메이션의 절반을 적용하고 들어오는 데이터 스트림(106)의 절반을 혼합한다.
파이프라인(100)의 시작부에서, 바인딩 아이템은 1의 웨이트가 주어진다. 이러한 웨이트는 각 꼭지점이 경험할 수 있는 데포르메이션의 전체 양이다. 데이터 스트림(106)이 하나의 모듈(103)로부터 다른 모듈(103)로 진행하면, 각 모듈(103)의 데포르메이션 웨이트는 바인딩 아이템(503)의 웨이팅으로부터 감산된다. 예컨대, 제1 데포르메이션 모듈(103)이 1.0의 웨이트를 갖는 경우, 출력에서는 바인딩 아이템(503)은 0.0의 웨이트를 가지고 추가의 데포르메이션에 의해 영향 받지 않는다. 또는, 제1 데포르메이션 모듈(103)이 0.25의 웨이트를 갖는 경우, 출력에서는 바인딩 아이템(503)은 0.75의 웨이트를 가지며, 지점에 대한 추가의 데포르메이션이 여전히 가능하다.
이하 도 13을 참조하면, 일 실시예에 따라 웨이트 적용 및 결정의 예가 도시되어 있다. CBinding 모듈(103)은 부착된 다각형 메시(4020 및 웨이트 모듈(1201)과 함께 도시되어 있다. CBinding 모듈(103)은 W의 로컬 웨이트를 갖는다. 입력에는, DDS(106)의 바인딩 아이템(503)은 wi의 웨이트를 가지며, 출력에는, wi이 남는다. CBinding 모듈(103)은 Wwp의 로컬 웨이트를 가지고 입력 제어 꼭지점에 데포르메이션을 수행하고, wp는 웨이트 모듈(1201)에 의해 제공되는 꼭지점 당 웨이팅이다. 따라서, 모듈(103)이 병렬 바인딩 모드이고 전체 지점 웨이트가 Wwp=0.75인 경 우, CBinding 모듈(103)은 각각 0.75 및 0.25의 웨이팅을 가지는 완전 데포르메된 위치 C2 및 원점 위치 C2 사이에서 내삽을 수행한다.
본 발명의 데포르메이션 파이프라인은 종래 기술에 대하여 다수의 장점을 제공한다. 이러한 장점은 예컨대 가능한 작은 노드를 사용하여 유연하며 개선되고 신장 가능한 데포르메이션 메커니즘을 제공하는 것, CG 모델의 특정과 독립적인 데포르메이션 파이프라인을 제공해서 사용자로 하여금 캐릭터 사이에 더욱 휴대적인 캐릭터 리그를 생성하는 것, 캐릭터 리그를 무효화하지 않고 데포르메되는 CG 모델에게 설계 상 편집 변경을 인용하는 데포르메이션 파이프라인을 제공하는 것, 형태학상으로 유사한 일괄의 캐릭터를 처리할 수 있는 총괄 데포르메이션 파이프라인을 제공하는 것, 특히 각 노드가 독립적이고 직렬화되어 있기 때문에, 하드웨어로 용이하게 구현 가능한 데포르메이션 아키텍처를 제공하는 것, 파이프라인으로의 용이한 확장을 돕고 충분한 대다수로 하여금 예측되지 않는 사용자 정의 데이터를 운반하도록 하는 데포르메이션 노드를 위한 단순 요약 인터페이스를 제공하는 것 및 꼭지점 당 속성, 필터링, 웨이팅 및 마스킹을 위한 지원을 제공하는 것을 포함한다.
본 발명의 실시예에 대한 전술한 설명은 예시 및 설명의 목적으로 제공되었다. 이는 개시된 정확한 형태로 본 발명을 제한하거나 속속들이 규명하기 위한 의도는 아니다. 당해 기술분야의 당업자라면 전술한 설명으로부터 많은 수정 및 변형이 가능하다는 점을 이해할 것이다. 당해 기술분야의 당업자라면 균등인 다양한 조합 및 도면에 도시된 다양한 컴포넌트에 대한 대체 형태를 이해할 것이다. 따라서, 본 발명의 범위는 상세한 설명에 의해서 제한되지 않으며 첨부되는 청구항에 의해서 제한된다.
"일 실시예" 또는 "실시예"에 대한 명세서 상의 참조는 실시예와 함께 설명된 특정 특징, 구조 또는 특성이 본 발명의 적어도 일 실시예에 포함되어 있다는 것을 의미한다. 명세서의 다양한 곳에서의 "일 실시예에서"라는 문구의 사용은 모두 동일한 실시예를 참조하는 것은 아니다.
상세한 설명의 어떤 부분은 컴퓨터 메모리 내의 데이터 비트에 대한 동작의 심볼 표현 및 알고리즘의 관점에서 주어진다. 이러한 알고리즘의 설명 및 표현은 그들의 작업의 본질을 당해 기술의 당업자에게 가장 효율적으로 전달하기 위하여 데이터 프로세싱 분야의 당업자에게 사용되는 수단이다. 본 명세서에서의 알고리즘은 일반적으로, 요구되는 결과에 이르는 단계의 자기 일관된(self-consistent) 시퀀스로서 인지된다. 단계는 물리적 양의 물리적 조작을 요구하는 것들이다. 통상적으로, 반드시 그러한 것은 아니지만, 이러한 양들은 저장, 전송, 조합, 비교 및 기타 조작될 수 있는 전기 또는 자기 신호의 형태를 갖는다. 원칙적으로 일반적인 용도를 위한 이유로, 때때로 이러한 신호를 비트, 값, 구성요소, 심볼, 캐릭터, 용어, 숫자 등으로 지칭하는 것이 편리하다는 것이 입증되었다.
그러나, 모든 이러한 및 유사한 용어는 적당한 물리적 양과 연관되며 이러한 양에 적용되는 단지 편리한 라벨이라는 점이 명심되어야 한다. 이하의 설명으로부터 자명한 것과 명확히 다르게 언급되지 않는 한, 설명 전반에 걸쳐서, "프로세싱" 또는 "컴퓨팅" 또는 "계산" 또는 "결정" 또는 "표시" 등과 같은 용어를 사용하는 설명은 컴퓨터 시스템 또는 컴퓨터 시스템의 레지스터 및 메모리 내의 물리적인(전기적인) 양으로서 나타나는 데이터를 컴퓨터 시스템 메모리 또는 레지스터 또는 기타 그러한 정보 저장소, 송신 또는 표시 디바이스 내의 물리적 양으로서 유사하게 나타나는 기타 데이터로 조작하고 전환하는 유사한 전자 컴퓨팅 디바이스의 동작 및 프로세스를 지칭한다.
본 발명은 범용의 컴퓨터 또는 워크스테이션 상에 설치하고 실행하기 위한 독립형 소프트웨어 애플리케이션(stand-alone software application)으로 구현될 수 있다. 대안적으로, 본 발명은 존재하는 소프트웨어 애플리케이션에 대한 플러그인(plug-in)으로서 구현될 수 있다.
또한, 본 발명은 본 명세서의 동작을 수행하기 위한 장치에 관한 것이다. 본 장치는 요구되는 목적을 위해서 특별히 만들어 질 수 있거나, 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용의 컴퓨터를 포함할 수 있다. 그러한 컴퓨터 프로그램은, 각각이 컴퓨터 시스템 버스와 연결된 어떤 타입의 플로피 디스크, 광 디스크, CD-ROM 및 자기 광 디스크, ROM, RAM, EPROM, EEPROM, 자기 또는 광 카드 또는 전자 명령어를 저장하기에 적합한 어떤 타입의 매체를 이에 제한됨 없이 포함하는 컴퓨터 판독 가능 저장 매체에 저장될 수 있다. 또한 본 발명은 예컨대 컴퓨터 애니메이션 동작을 수행하기 위한 특수 그래픽 카드와 같은 하드웨어에 구현될 수 있다.
본 명세서에 주어진 알고리즘 및 모듈은 내재적으로 어떤 특정 컴퓨터 또는 기타 장치와 관련된다. 본 명세서의 설명에 따라 다양한 범용 시스템이 프로그램과 함께 사용될 수 있거나, 요구되는 방법 단계를 수행하기 위하여 더 특수한 장치를 만드는 것이 편리하다고 입증할 수 있다. 다양한 이러한 시스템을 위해 요구되는 구조는 이하의 설명에 주어질 것이다. 또한, 본 발명은 어떤 특정 프로그래밍 언어를 참조로 하여 설명되지 않는다. 다양한 프로그래밍 언어가 본 명세서에 설명된 바와 같이 발명의 개념을 구현하기 위해서 사용될 수 있다. 또한, 관련 기술의 당업자에게 자명한 바와 같이, 모듈, 특징, 속성, 방법 및 방명의 기타 관점이 소프트웨어, 하드웨어, 펌웨어 또는 이들의 어떤 조합으로 구현될 수 있다. 물론, 본 발명의 컴포넌트가 소프트웨어로 구현된 경우, 컴포넌트는 독립 프로그램으로서, 큰 프로그램의 일부로서, 복수의 별도 프로그램으로서, 정적 또는 동적으로 링크된 라이브러리로서, 커널 로딩 가능한 모듈(kernel loadable module)로서, 디바이스 드라이버로서 및/또는 컴퓨터 프로그래밍 분야의 당업자에게 현재 또는 미래에 알려지는 모든 및 어떤 기타의 방식으로 구현될 수 있다. 또한, 본 발명은 어느 경우에도 어떤 특정 운영 시스템 또는 환경에서의 구현에 제한되지 않는다.

Claims (93)

  1. 애니메이션 데포르메이션 파이프라인(animation deformation pipeline)에 있어서,
    오브젝트(object)의 기하학적 표현(geometric representation)을 데이터 스트림(data stream)으로 변환(converting)하기 위한 헤드 노드(head node);
    노드로부터 상기 데이터 스트림을 각각 수신하고, 상기 데이터 스트림에 데포르메이션을 적용(applying)하기 위한 복수의 데포르메이션 노드; 및
    상기 데포르메된 데이터 스트림(deformed data stream)을 데포르메된 오브젝트의 기하학적 표현으로 변환하기 위한 테일 노드(tail node)
    를 포함하는 애니메이션 데포르메이션 파이프라인.
  2. 제1항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트(subset)는 다각형 프록시 모델(polygonal proxy model)의 조작(manipulation)에 응답하여 데포르메이션들을 적용하는 애니메이션 데포르메이션 파이프라인.
  3. 제1항에 있어서, 각각의 데포르메이션 노드는 상기 데이터 스트림을 다음 노드(succeeding node)로 전달(pass)하는 애니메이션 데포르메이션 파이프라인.
  4. 제1항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트는 순차적 바 인딩 모드(sequential binding mode)를 사용하여 데포르메이션들을 적용하는 애니메이션 데포르메이션 파이프라인.
  5. 제4항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트는 이전 데포르메이션 노드의 결과에 데포르메이션들을 적용하는 애니메이션 데포르메이션 파이프라인.
  6. 제4항에 있어서, 각각의 데포르메이션 노드는, 상기 데이터 스트림 내에서 포인트의 표현을 수신하고, 상기 포인트를 데포르메하며, 상기 데포르메된 포인트의 표현을 다음 노드에 전달하는 애니메이션 데포르메이션 파이프라인.
  7. 제1항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트는 병렬 바인딩 모드(parallel binding mode)를 사용하여 데포르메이션들을 적용하는 애니메이션 데포르메이션 파이프라인.
  8. 제7항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트는 적어도 두 개의 다각형 프록시 모델들의 영향들(influences)을 결합(combining)함으로써 데포르메이션들을 적용하는 애니메이션 데포르메이션 파이프라인.
  9. 제7항에 있어서, 각각의 데포르메이션 노드는, 상기 데이터 스트림 내에서 포인트의 표현을 수신하고, 상기 포인트를 데포르메하며, 상기 데포르메되지 않은 포인트의 표현을 다음 노드에 전달하는 애니메이션 데포르메이션 파이프라인.
  10. 제7항에 있어서, 각각의 데포르메이션 노드는, 상기 데이터 스트림 내에서 포인트의 표현을 수신하고, 상기 포인트를 데포르메하며, 상기 데포르메된 포인트의 표현 및 상기 데포르메되지 않은 포인트의 표현을 다음 노드에 전달하는 애니메이션 데포르메이션 파이프라인.
  11. 제1항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트는 혼합 바인딩 모드(blend binding mode)를 사용하여 데포르메이션들을 적용하는 애니메이션 데포르메이션 파이프라인.
  12. 제1항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트는 적어도 하나의 다른 데포르메이션 노드의 출력으로 현재의 데포르메이션을 내삽하는(interpolates) 출력을 생성하는 애니메이션 데포르메이션 파이프라인.
  13. 제1항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트는 계층적 바인딩 모드(hierarchical binding mode)를 사용하여 데포르메이션들을 적용하는 애니메이션 데포르메이션 파이프라인.
  14. 제13항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트는 입력 바인딩 사이트의 로컬 원점(local origin point)에 데포르메이션들을 적용하는 애니메이션 데포르메이션 파이프라인.
  15. 제1항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트는, 상기 노드에 의하여 적용되는 데포르메이션의 상대적인 양을 제어하는 사용자-지정 웨이트 파라메터(user-specifiable weight parameter)와 연관되는 애니메이션 데포르메이션 파이프라인.
  16. 제15항에 있어서, 사용자-지정 웨이트와 연관되는 각각의 데포르메이션 노드는, 상기 데포르메이션 노드로의 입력과 상기 노드에 의하여 적용되는 상기 데포르메이션의 결과의 웨이트된 조합을 표현하는 출력을 생성하는 애니메이션 데포르메이션 파이프라인.
  17. 제15항에 있어서, 상기 웨이트들은 상기 전체 파이프라인에 대하여 정규화되는(normalized) 애니메이션 데포르메이션 파이프라인.
  18. 제15항에 있어서, 상기 웨이트들은 정규화되지 않는 애니메이션 데포르메이션 파이프라인.
  19. 제1항에 있어서, 각각의 데포르메이션 노드는,
    상기 오브젝트의 적어도 하나의 제어 꼭지점(control vertex)에 대한 바인딩 사이트를 결정하는 단계;
    상기 바인딩 사이트를 변형(transforming)하는 단계;
    상기 제어 꼭지점에 대한 새로운 위치를 확립하기 위하여 상기 오브젝트의 상기 제어 꼭지점으로의 상기 바인딩 사이트의 상기 변형을 전파(propagating)하는 단계; 및
    상기 제어 꼭지점의 상기 새로운 위치에 따라 상기 오브젝트를 데포르메하는 단계
    에 의하여, 상기 각각의 데포르메이션 노드의 데포르메이션을 적용하는 애니메이션 데포르메이션 파이프라인.
  20. 제17항에 있어서, 상기 바인딩 사이트들은 일구분 표면(subdivision surface)에서의 위치들(locations)인 애니메이션 데포르메이션 파이프라인.
  21. 제19항에 있어서, 상기 바이딩 사이트들은 다각형 프록시 모델의 콤포넌트들이고, 상기 변형을 전파하는 단계는 일구분 표면을 데포르메하는 단계를 포함하며, 상기 일구분 표면은 상기 오브젝트의 상기 제어 꼭지점들에 부드러운 데포르메이션들(smooth deformations)을 전달하는 애니메이션 데포르메이션 파이프라인.
  22. 제1항에 있어서, 각각의 데포르메이션 노드는 다른 노드에 대한 데이터 스트림 출력을 생성하고, 상기 데이트 스트림 출력은 상기 데포르메된 오브젝트의 표현을 포함하는 애니메이션 데포르메이션 파이프라인.
  23. 제1항에 있어서, 상기 데이터 스트림은, 데포르메이션 노드들에 의하여 데포르메될 복수의 바인딩 아이템을 포함하는 애니메이션 데포르메이션 파이프라인.
  24. 제23항에 있어서, 상기 바인딩 아이템들은 바인딩 모드들을 지정하는 태그들(tags)을 포함하는 애니메이션 데포르메이션 파이프라인.
  25. 제24항에 있어서, 각각의 데포르메이션 노드는 바인딩 모드를 갖고, 각각의 데포르메이션 노드는 매칭 바인딩 모드(matching binding mode)를 지정하는 태그를 갖는 바인딩 아이템들에 데포르메이션들을 적용하는 애니메이션 데포르메이션 파이프라인.
  26. 제24항에 있어서, 태그들을 수정하기 위한 적어도 하나의 필터 노드를 더 포함하는 애니메이션 데포르메이션 파이프라인.
  27. 제24항에 있어서, 적어도 하나의 바인딩 아이템은, 아무런 데포르메이션들이 적용되지 않을 것이라는 것을 지정하는 태그를 포함하고, 상기 데포르메이션 노드 들은 상기 태그를 갖는 상기 바인딩 아이템이 데포르메이션 없이 지나가는 것을 허용하는 애니메이션 데포르메이션 파이프라인.
  28. 제24항에 있어서, 태그들을 수정하기 위한 적어도 하나의 마스킹 노드(masking node)를 더 포함하는 애니메이션 데포르메이션 파이프라인.
  29. 제28항에 있어서, 상기 마스킹 노드는, 바인딩 아이템이 특정 데포르메이션 노드에 의한 데포르메이션으로부터 제외되는 것을 지정하기 위하여 태그를 수정하는 애니메이션 데포르메이션 파이프라인.
  30. 제1항에 있어서, 각각의 노드는 그래픽스 하드웨어 콤포넌트를 포함하는 애니메이션 데포르메이션 파이프라인.
  31. 제1항에 있어서,
    상기 오브젝트는 복수의 표면을 포함하고,
    상기 데이터 스트림은 상기 오브젝트의 각각의 표면에 대한 적어도 하나의 데이터 블록을 포함하며,
    각각의 데포르메이션 노드는, 데포르메되고 있는 상기 오브젝트 표면과 연관되는 적어도 하나의 데이터 블록을 수정함으로써 데포르메이션을 적용하는 애니메이션 데포르메이션 파이프라인.
  32. 제31항에 있어서, 각각의 표면은 복수의 제어 꼭지점과 연관되고, 각각의 데이터 블록은 상기 데이터 블록과 연관되는 상기 표면의 각각의 제어 꼭지점에 대한 바인딩 아이템 엔트리를 포함하는 애니메이션 데포르메이션 파이프라인.
  33. 제1항에 있어서, 각각의 데포르메이션 노드는 상기 노드를 인에이블(enabling) 및 디스데이블(disabling)하기 위한 사용자-지정 속성(user-specifiable attribute)을 포함하는 애니메이션 데포르메이션 파이프라인.
  34. 제1항에 있어서, 각각의 데포르메이션 노드는 혼합 모드를 나타내는 사용자-지정 속성을 포함하는 애니메이션 데포르메이션 파이프라인.
  35. 제1항에 있어서, 각각의 데포르메이션 노드는 웨이팅 팩터(weighting factor)를 나타내는 사용자-지정 속성을 포함하는 애니메이션 데포르메이션 파이프라인.
  36. 데포르메이션 파이프라인을 사용하여 컴퓨터-생성 오브젝트(computer-generated object)를 데포르메하기 위한 방법에 있어서,
    오브젝트의 기하학적 표현을 데이터 스트림으로 변환하는 단계;
    복수의 데포르메이션 노드 각각에 대하여, 상기 데이터 스트림을 수신하고 상기 데이터 스트림에 데포르메이션을 적용하는 단계; 및
    상기 데포르메된 데이터 스트림을 데포르메된 오브젝트의 기하학적 표현으로 변환하는 단계
    를 포함하는 방법.
  37. 제36항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여, 데포르메이션을 적용하는 단계는, 다각형 프록시 모델의 조작에 응답하여 상기 데포르메이션을 적용하는 단계를 포함하는 방법.
  38. 제36항에 있어서, 상기 데포르메이션 노드들 각각에 대하여 상기 데이터 스트림을 다음 노드로 전달하는 단계를 더 포함하는 방법.
  39. 제36항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여, 데포르메이션을 적용하는 단계는, 순차적 바인딩 모드를 사용하여 상기 데포르메이션을 적용하는 단계를 포함하는 방법.
  40. 제39항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여, 데포르메이션을 적용하는 단계는, 이전 데포르메이션 노드의 결과에 상기 데포르메이션을 적용하는 단계를 포함하는 방법.
  41. 제39항에 있어서, 상기 데포르메이션 노드들 각각에 대하여, 상기 데이터 스트림 내에서 포인트의 표현을 수신하는 단계, 상기 포인트를 데포르메하는 단계, 및 상기 데포르메된 포인트의 표현을 다음 노드에 전달하는 단계를 더 포함하는 방법.
  42. 제36항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여, 데포르메이션을 적용하는 단계는, 병렬 바인딩 모드를 사용하는 단계를 포함하는 방법.
  43. 제42항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여, 데포르메이션을 적용하는 단계는, 적어도 두 개의 다각형 프록시 모델들의 영향들을 결합하는 단계를 포함하는 방법.
  44. 제42항에 있어서, 각각의 데포르메이션 노드는 상기 데이터 스트림 내에서 포인트의 표현을 수신하고, 상기 포인트를 데포르메하며, 상기 데포르메되지 않은 포인트의 표현을 다음 노드에 전달하는 방법.
  45. 제42항에 있어서, 상기 데포르메이션 노드들 각각에 대하여, 상기 데이터 스트림 내에서 포인트의 표현을 수신하는 단계, 상기 포인트를 데포르메하는 단계, 및 상기 데포르메된 포인트의 표현 및 상기 데포르메되지 않은 포인트의 표현을 다 음 노드에 전달하는 단계를 더 포함하는 방법.
  46. 제36항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여, 데포르메이션을 적용하는 단계는, 혼합 바인딩 모드를 사용하여 데포르메이션들을 적용하는 단계를 포함하는 방법.
  47. 제46항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여 적어도 하나의 다른 데포르메이션 노드의 출력으로 현재의 데포르메이션을 내삽하는 단계를 더 포함하는 방법.
  48. 제36항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여, 데포르메이션을 적용하는 단계는, 계층적 바인딩 모드를 사용하여 데포르메이션을 적용하는 단계를 포함하는 방법.
  49. 제48항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여, 데포르메이션을 적용하는 단계는, 입력 바인딩 사이트의 로컬 원점에 데포르메이션들을 적용하는 단계를 포함하는 방법.
  50. 제36항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여, 상기 노드에 의하여 적용되는 데포르메이션의 상대적인 양을 제어하는 사용자-지정 웨이트 파라메터를 수신하는 단계를 더 포함하는 방법.
  51. 제50항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여, 상기 데포르메이션 노드로의 입력과 상기 노드에 의하여 적용되는 상기 데포르메이션의 결과의 웨이트된 조합을 표현하는 출력을 생성하는 단계를 더 포함하는 방법.
  52. 제50항에 있어서, 상기 전체 파이프라인에 대하여 상기 웨이트들을 정규화하는 단계를 더 포함하는 방법.
  53. 제36항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여, 데포르메이션 노드를 적용하는 단계는,
    상기 오브젝트의 적어도 하나의 제어 꼭지점에 대한 바인딩 사이트를 결정하는 단계;
    상기 바인딩 사이트를 변형하는 단계;
    상기 제어 꼭지점에 대한 새로운 위치를 확립하기 위하여 상기 오브젝트의 상기 제어 꼭지점으로의 상기 바인딩 사이트의 상기 변환을 전파하는 단계; 및
    상기 제어 꼭지점의 상기 새로운 위치에 따라 상기 오브젝트를 데포르메하는 단계
    를 포함하는 방법.
  54. 제53항에 있어서, 상기 바인딩 사이트는 일구분 표면의 위치들인 방법.
  55. 제53항에 있어서, 상기 바이딩 사이트들은 다각형 프록시 모델의 콤포넌트들이고, 상기 변형을 전파하는 단계는 일구분 표면을 데포르메하는 단계를 포함하며, 상기 일구분 표면은 상기 오브젝트의 상기 제어 꼭지점들에 부드러운 데포르메이션들을 전달하는 방법.
  56. 제36항에 있어서, 각각의 데포르메이션 노드에 대하여, 다른 노드에 대한 데이터 스트림 출력을 생성하는 단계를 더 포함하고, 상기 데이트 스트림 출력은 상기 데포르메된 오브젝트의 표현을 포함하는 방법.
  57. 제36항에 있어서, 상기 데이터 스트림은, 데포르메이션 노드들에 의하여 데포르메될 복수의 바인딩 아이템을 포함하는 방법.
  58. 제57항에 있어서, 상기 바인딩 아이템들은 바인딩 모드들을 지정하는 태그들을 포함하는 방법.
  59. 제58항에 있어서, 각각의 데포르메이션 노드는 바인딩 모드를 갖고, 각각의 데포르메이션 노드에 대하여, 데포르메이션을 적용하는 단계는, 매칭 바인딩 모드를 지정하는 태그를 갖는 바인딩 아이템들에 데포르메이션들을 적용하는 단계를 포 함하는 방법.
  60. 제36항에 있어서,
    상기 오브젝트는 복수의 표면을 포함하고,
    상기 데이터 스트림은 상기 오브젝트의 각각의 표면에 대한 적어도 하나의 데이터 블록을 포함하며,
    각각의 데포르메이션 노드에 대하여, 데포르메를 적용하는 단계는, 데포르메되고 있는 상기 오브젝트 표면과 연관되는 적어도 하나의 데이터 블록을 수정하는 단계를 포함하는 방법.
  61. 제60항에 있어서, 각각의 표면은 복수의 제어 꼭지점과 연관되고, 각각의 데이터 블록은 상기 데이터 블록과 연관되는 상기 표면의 각각의 제어 꼭지점에 대한 바인딩 아이템 엔트리를 포함하는 방법.
  62. 제36항에 있어서, 각각의 데포르메이션 노드에 대하여, 상기 노드를 인에이블 및 디스데이블하기 위한 사용자-지정 속성을 수신하는 단계를 더 포함하는 방법.
  63. 제36항에 있어서, 각각의 데포르메이션 노드에 대하여, 혼합 모드를 나타내는 사용자-지정 속성을 수신하는 단계를 더 포함하는 방법.
  64. 제36항에 있어서, 각각의 데포르메이션 노드에 대하여, 웨이팅 팩터를 나타내는 사용자-지정 속성을 수신하는 단계를 더 포함하는 방법.
  65. 데포르메이션 파이프라인을 사용하여 컴퓨터-생성 오브젝트를 데포르메하기 위한 컴퓨터 프로그램 제품에 있어서,
    컴퓨터 판독 가능 매체; 및
    상기 매체 상에 인코딩된 컴퓨터 프로그램 코드
    를 포함하고,
    상기 컴퓨터 프로그램 코드는,
    오브젝트의 기하학적 표현을 데이터 스트림으로 변환하는 단계;
    복수의 데포르메이션 노드 각각에 대하여, 상기 데이터 스트림을 수신하고 상기 데이터 스트림에 데포르메이션을 적용하는 단계; 및
    상기 데포르메된 데이터 스트림을 데포르메된 오브젝트의 기하학적 표현으로 변환하는 단계
    를 위한 것인 컴퓨터 프로그램 제품.
  66. 제65항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여, 데포르메이션을 적용하기 위한 상기 컴퓨터 프로그램 코드는, 다각형 프록시 모델의 조작에 응답하여 상기 데포르메이션을 적용하기 위한 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램 제품.
  67. 제65항에 있어서, 상기 데포르메이션 노드들 각각에 대하여 상기 데이터 스트림을 다음 노드로 전달하는 단계를 위한 컴퓨터 프로그램 코드를 더 포함하는 컴퓨터 프로그램 제품.
  68. 제65항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여, 데포르메이션을 적용하는 단계를 위한 상기 컴퓨터 프로그램 코드는, 순차적 바인딩 모드를 사용하여 상기 데포르메이션을 적용하는 단계를 위한 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램 제품.
  69. 제68항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여, 데포르메이션을 적용하는 단계를 위한 상기 컴퓨터 프로그램 코드는, 이전 데포르메이션 노드의 결과에 상기 데포르메이션을 적용하는 단계를 위한 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램 제품.
  70. 제68항에 있어서, 상기 데포르메이션 노드들 각각에 대하여, 상기 데이터 스트림 내에서 포인트의 표현을 수신하는 단계, 상기 포인트를 데포르메하는 단계, 및 상기 데포르메된 포인트의 표현을 다음 노드에 전달하는 단계를 위한 컴퓨터 프로그램 코드를 더 포함하는 컴퓨터 프로그램 제품.
  71. 제65항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여, 데포르메이션을 적용하는 단계를 위한 상기 컴퓨터 프로그램 코드는, 병렬 바인딩 모드를 사용하는 컴퓨터 프로그램 제품.
  72. 제71항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여, 데포르메이션을 적용하는 단계를 위한 상기 컴퓨터 프로그램 코드는, 적어도 두 개의 다각형 프록시 모델들의 영향들을 결합하는 단계를 위한 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램 제품.
  73. 제71항에 있어서, 각각의 데포르메이션 노드는 상기 데이터 스트림 내에서 포인트의 표현을 수신하고, 상기 포인트를 데포르메하며, 상기 데포르메되지 않은 포인트의 표현을 다음 노드에 전달하는 컴퓨터 프로그램 제품.
  74. 제71항에 있어서, 상기 데포르메이션 노드들 각각에 대하여, 상기 데이터 스트림 내에서 포인트의 표현을 수신하는 단계, 상기 포인트를 데포르메하는 단계, 및 상기 데포르메된 포인트의 표현 및 상기 데포르메되지 않은 포인트의 표현을 다음 노드에 전달하는 단계를 위한 컴퓨터 프로그램 코드를 더 포함하는 컴퓨터 프로그램 제품.
  75. 제65항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여, 데포르메이션을 적용하는 단계를 위한 상기 컴퓨터 프로그램 코드는, 혼합 바인딩 모드를 사용하여 데포르메이션들을 적용하는 단계를 위한 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램 제품.
  76. 제75항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여 적어도 하나의 다른 데포르메이션 노드의 출력으로 현재의 데포르메이션을 내삽하는 단계를 위한 컴퓨터 프로그램 코드를 더 포함하는 컴퓨터 프로그램 제품.
  77. 제65항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여, 데포르메이션을 적용하는 단계를 위한 상기 컴퓨터 프로그램 코드는, 계층적 바인딩 모드를 사용하여 데포르메이션을 적용하는 단계를 위한 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램 제품.
  78. 제77항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여, 데포르메이션을 적용하는 단계를 위한 상기 컴퓨터 프로그램 코드는, 입력 바인딩 사이트의 로컬 원점에 데포르메이션들을 적용하는 단계를 위한 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램 제품.
  79. 제65항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여, 상기 노드에 의하여 적용되는 데포르메이션의 상대적인 양을 제어하는 사용자-지정 웨이트 파라메터를 수신하는 단계를 위한 컴퓨터 프로그램 코드를 더 포함하는 컴퓨터 프로그램 제품.
  80. 제79항에 있어서, 상기 데포르메이션 노드들의 적어도 서브세트에 대하여, 상기 데포르메이션 노드로의 입력과 상기 노드에 의하여 적용되는 상기 데포르메이션의 결과의 웨이트된 조합을 표현하는 출력을 생성하는 단계를 위한 컴퓨터 프로그램 코드를 더 포함하는 컴퓨터 프로그램 제품.
  81. 제79항에 있어서, 상기 전체 파이프라인에 대하여 상기 웨이트들을 정규화하는 단계를 위한 컴퓨터 프로그램 코드를 더 포함하는 컴퓨터 프로그램 제품.
  82. 제65항에 있어서, 상기 데포르메이션 노드들 중 적어도 하나의 서브세트에 대하여, 데포르메이션 노드를 적용하기 위한 상기 컴퓨터 프로그램 코드는,
    상기 오브젝트의 적어도 하나의 제어 꼭지점에 대한 바인딩 사이트를 결정하는 단계;
    상기 바인딩 사이트를 변형하는 단계;
    상기 제어 꼭지점에 대한 새로운 위치를 확립하기 위하여 상기 오브젝트의 상기 제어 꼭지점으로의 상기 바인딩 사이트의 상기 변형을 전파하는 단계; 및
    상기 제어 꼭지점의 상기 새로운 위치에 따라 상기 오브젝트를 데포르메하는 단계
    를 위한 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램 제품.
  83. 제82항에 있어서, 상기 바인딩 사이트들은 일구분 표면에서의 위치들인 컴퓨터 프로그램 제품.
  84. 제82항에 있어서, 상기 바이딩 사이트들은 다각형 프록시 모델의 콤포넌트들이고, 상기 변형을 전파하는 단계를 위한 컴퓨터 프로그램 코드는 일구분 표면을 데포르메하는 단계를 위한 컴퓨터 프로그램 코드를 포함하며, 상기 일구분 표면은 상기 오브젝트의 상기 제어 꼭지점들에 부드러운 데포르메이션들을 전달하는 컴퓨터 프로그램 제품.
  85. 제65항에 있어서, 각각의 데포르메이션 노드에 대하여, 다른 노드에 대한 데이터 스트림 출력을 생성하는 단계를 위한 컴퓨터 프로그램 코드를 더 포함하며, 상기 데이트 스트림 출력은 상기 데포르메된 오브젝트의 표현을 포함하는 컴퓨터 프로그램 제품.
  86. 제65항에 있어서, 상기 데이터 스트림은, 데포르메이션 노드들에 의하여 데포르메될 복수의 바인딩 아이템을 포함하는 컴퓨터 프로그램 제품.
  87. 제86항에 있어서, 상기 바인딩 아이템들은 바인딩 모드들을 지정하는 태그들을 포함하는 컴퓨터 프로그램 제품.
  88. 제87항에 있어서, 각각의 데포르메이션 노드는 바인딩 모드를 갖고, 각각의 데포르메이션 노드에 대하여, 데포르메이션을 적용하는 단계를 위한 컴퓨터 프로그램 코드는 매칭 바인딩 모드를 지정하는 태그를 갖는 바인딩 아이템들에 데포르메이션들을 적용하는 단계를 위한 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램 제품.
  89. 제65항에 있어서,
    상기 오브젝트는 복수의 표면을 포함하고,
    상기 데이터 스트림은 상기 오브젝트의 각각의 표면에 대한 적어도 하나의 데이터 블록을 포함하며,
    각각의 데포르메이션 노드에 대하여, 데포르메이션을 적용하는 단계를 위한 컴퓨터 프로그램 코드는 데포르메되고 있는 상기 오브젝트 표면과 연관되는 적어도 하나의 데이터 블록을 수정하는 단계를 위한 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램 제품.
  90. 제89항에 있어서, 각각의 표면은 복수의 제어 꼭지점과 연관되고, 각각의 데이터 블록은 상기 데이터 블록과 연관되는 상기 표면의 각각의 제어 꼭지점에 대한 바인딩 아이템 엔트리를 포함하는 컴퓨터 프로그램 제품.
  91. 제65항에 있어서, 각각의 데포르메이션 노드에 대하여, 상기 노드를 인에이블 및 디스데이블하기 위한 사용자-지정 속성을 수신하는 단계를 위한 컴퓨터 프로그램 코드를 더 포함하는 컴퓨터 프로그램 제품.
  92. 제65항에 있어서, 각각의 데포르메이션 노드에 대하여, 혼합 모드를 나타내는 사용자-지정 속성을 수신하는 단계를 위한 컴퓨터 프로그램 코드를 더 포함하는 컴퓨터 프로그램 제품.
  93. 제65항에 있어서, 각각의 데포르메이션 노드에 대하여, 웨이팅 팩터를 나타내는 사용자-지정 속성을 수신하는 단계를 위한 컴퓨터 프로그램 코드를 더 포함하는 컴퓨터 프로그램 제품.
KR1020050026607A 2004-03-31 2005-03-30 컴퓨터-생성 애니메이션을 위한 캐릭터 데포르메이션파이프라인 KR20060045018A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/816,474 US7292250B2 (en) 2004-03-31 2004-03-31 Character deformation pipeline for computer-generated animation
US10/816,474 2004-03-31

Publications (1)

Publication Number Publication Date
KR20060045018A true KR20060045018A (ko) 2006-05-16

Family

ID=34940683

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050026607A KR20060045018A (ko) 2004-03-31 2005-03-30 컴퓨터-생성 애니메이션을 위한 캐릭터 데포르메이션파이프라인

Country Status (5)

Country Link
US (1) US7292250B2 (ko)
EP (1) EP1589486B1 (ko)
KR (1) KR20060045018A (ko)
DE (1) DE602005011521D1 (ko)
HK (1) HK1080195A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220000191A (ko) * 2020-06-25 2022-01-03 동서대학교 산학협력단 Proxy Modeling과 DeltaMush 기법을 이용한 Cage Weight 방법

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060022990A1 (en) * 2004-07-30 2006-02-02 Silicon Graphics, Inc. Generating subdivision surfaces on a graphics hardware with floating-point fragment shaders
DE102004045010A1 (de) * 2004-09-16 2006-04-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Informationspunkt
US20060177122A1 (en) * 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Method and apparatus for particle manipulation using graphics processing
US20060212855A1 (en) * 2005-03-16 2006-09-21 Bournas Redha M Methods, systems and computer program products for implementing production processes
US20060262112A1 (en) * 2005-05-23 2006-11-23 Carnegie Mellon University System and method for three-dimensional shape generation from partial and incomplete views, and interactive design system using same
CN101379271B (zh) * 2006-01-31 2012-11-07 兰德马克绘图公司 使用代理仿真器的用于实时油气田生产优化的方法、系统和计算机可读介质
US8504341B2 (en) * 2006-01-31 2013-08-06 Landmark Graphics Corporation Methods, systems, and computer readable media for fast updating of oil and gas field production models with physical and proxy simulators
US8026917B1 (en) * 2006-05-01 2011-09-27 Image Metrics Ltd Development tools for animated character rigging
US7944443B1 (en) * 2006-06-09 2011-05-17 Pixar Sliding patch deformer
GB0612433D0 (en) * 2006-06-23 2006-08-02 Ibm Method and system for defining a hierarchical structure
US8749543B2 (en) * 2006-08-15 2014-06-10 Microsoft Corporation Three dimensional polygon mesh deformation using subspace energy projection
US8941664B2 (en) * 2006-11-22 2015-01-27 Take Two Interactive Software, Inc. System and method for real-time pose-based deformation of character models
EP2157905B1 (en) * 2007-05-15 2013-03-27 Ecole de Technologie Supérieure A method for tracking 3d anatomical and pathological changes in tubular-shaped anatomical structures
US7868885B2 (en) * 2007-06-22 2011-01-11 Microsoft Corporation Direct manipulation of subdivision surfaces using a graphics processing unit
US8471844B2 (en) * 2008-01-18 2013-06-25 Sony Corporation Streaming geometry for use in displaying and editing 3D imagery
US8582883B2 (en) * 2008-04-04 2013-11-12 Koninklijke Philips N.V. Simultaneous model-based segmentation of objects satisfying pre-defined spatial relationships
JP5432241B2 (ja) * 2008-04-07 2014-03-05 コーニンクレッカ フィリップス エヌ ヴェ メッシュ衝突回避
US8508537B2 (en) * 2008-11-17 2013-08-13 Disney Enterprises, Inc. System and method for dependency graph evaluation for animation
US8860731B1 (en) * 2009-12-21 2014-10-14 Lucasfilm Entertainment Company Ltd. Refining animation
US8144147B2 (en) * 2010-04-07 2012-03-27 Intel Corporation Hierarchical bounding of displaced parametric surfaces
US8922547B2 (en) * 2010-12-22 2014-12-30 Electronics And Telecommunications Research Institute 3D model shape transformation method and apparatus
US8786611B1 (en) * 2011-01-12 2014-07-22 Pixar Sliding skin deformer
US9202300B2 (en) * 2013-06-20 2015-12-01 Marza Animation Planet, Inc Smooth facial blendshapes transfer
US10846942B1 (en) * 2013-08-29 2020-11-24 Ultrahaptics IP Two Limited Predictive information for free space gesture control and communication
US10762717B2 (en) 2016-09-29 2020-09-01 Sony Interactive Entertainment America, LLC Blend shape system with dynamic partitioning
US10275925B2 (en) * 2016-09-29 2019-04-30 Sony Interactive Entertainment America, LLC Blend shape system with texture coordinate blending
US10311621B2 (en) 2017-03-20 2019-06-04 Google Llc Held object stabilization in virtual reality
US11073603B2 (en) * 2018-04-03 2021-07-27 GM Global Technology Operations LLC Controlled scan pattern transition in coherent lidar
WO2019204164A1 (en) * 2018-04-16 2019-10-24 Magic Leap, Inc. Systems and methods for cross-application authoring, transfer, and evaluation of rigging control systems for virtual characters
CN109377542B (zh) * 2018-09-28 2023-07-18 国网辽宁省电力有限公司锦州供电公司 三维模型渲染方法、装置及电子设备
WO2020089817A1 (en) * 2018-10-31 2020-05-07 Soul Machines Limited Morph target animation
US11120619B2 (en) * 2018-11-12 2021-09-14 Nintendo Co., Ltd. Information processing apparatus, non-transitory computer-readable storage medium storing information processing program, information processing system, and information processing method
KR102366837B1 (ko) * 2020-06-25 2022-02-22 동서대학교 산학협력단 3D Object 생성을 통한 Proxy Modeling 생성방법
EP4186032A4 (en) 2020-07-24 2024-02-07 O3 Story Tech Inc SYSTEMS AND METHODS FOR COMPUTER ANIMATION USING A MACHINE TO DEFORM A SEQUENCE OF OPERATIONS
US20220083702A1 (en) * 2020-09-11 2022-03-17 Autodesk, Inc. Techniques for designing structures using torsion-deformable spatial beam elements
US20220319114A1 (en) * 2021-04-01 2022-10-06 Sony Group Corporation Automatic blending of human facial expression and full-body poses for dynamic digital human model creation using integrated photo-video volumetric capture system and mesh-tracking

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061067A (en) * 1996-08-02 2000-05-09 Autodesk, Inc. Applying modifiers to objects based on the types of the objects
US6222553B1 (en) * 1997-08-04 2001-04-24 Pixar Animation Studios Hybrid subdivision in computer graphics
US6300960B1 (en) * 1997-08-04 2001-10-09 Pixar Animation Studios Realistic surface simulation in computer animation
JP3597360B2 (ja) * 1997-11-17 2004-12-08 株式会社リコー モデリング方法および記録媒体
US6614428B1 (en) * 1998-06-08 2003-09-02 Microsoft Corporation Compression of animated geometry using a hierarchical level of detail coder
US6538651B1 (en) * 1999-03-19 2003-03-25 John Hayman Parametric geometric element definition and generation system and method
US6535215B1 (en) * 1999-08-06 2003-03-18 Vcom3D, Incorporated Method for animating 3-D computer generated characters
US6608631B1 (en) * 2000-05-02 2003-08-19 Pixar Amination Studios Method, apparatus, and computer program product for geometric warps and deformations
US6822653B2 (en) * 2002-06-28 2004-11-23 Microsoft Corporation Methods and system for general skinning via hardware accelerators
US7239321B2 (en) * 2003-08-26 2007-07-03 Speech Graphics, Inc. Static and dynamic 3-D human face reconstruction

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220000191A (ko) * 2020-06-25 2022-01-03 동서대학교 산학협력단 Proxy Modeling과 DeltaMush 기법을 이용한 Cage Weight 방법

Also Published As

Publication number Publication date
US7292250B2 (en) 2007-11-06
US20050219250A1 (en) 2005-10-06
HK1080195A1 (en) 2006-04-21
DE602005011521D1 (de) 2009-01-22
EP1589486A1 (en) 2005-10-26
EP1589486B1 (en) 2008-12-10

Similar Documents

Publication Publication Date Title
EP1589486B1 (en) Character deformation pipeline for computer-generated animation
Zhou et al. Large mesh deformation using the volumetric graph laplacian
US7064762B2 (en) Methods and system for general skinning via hardware accelerators
EP1808814B1 (en) Wrap deformation using subdivision surfaces
US8358311B1 (en) Interpolation between model poses using inverse kinematics
US9275487B1 (en) System and method for performing non-affine deformations
Li et al. Detail‐Aware Deep Clothing Animations Infused with Multi‐Source Attributes
US8289331B1 (en) Asymmetric animation links
Hedelman A data flow approach to procedural modeling
US7034836B2 (en) Adaptive caching of animation controls
Du et al. Integrating physics-based modeling with PDE solids for geometric design
Combaz et al. Painting folds using expansion textures
US8704828B1 (en) Inverse kinematic melting for posing models
Guennebaud et al. Dynamic surfel set refinement for high-quality rendering
Kahler et al. Dynamic refinement of deformable triangle meshes for rendering
Lévy et al. Discrete smooth interpolation: Constrained discrete fairing for arbitrary meshes
Alexa et al. Interactive shape modelling
McDonnell et al. Dynamic subdivision-based solid modeling
Chandru et al. Volume sculpting and keyframe animation system
Boier-Martin et al. A survey of subdivision-based tools for surface modeling
Alsayed Ahmad et al. CAD Reconstruction of Watertight Surface Meshes Using Polycube Parameterization and Subdivision Surfaces
Zeng et al. Three-dimensional deformation in curl vector field
Clapés et al. Interactive constrained deformations of NURBS surfaces: N-SCODEF
Abdul Malek et al. Investigation on Hybrid Geometric Modelling Construction for Core and Cavity of Injection Mould via CAD System
JPH07302357A (ja) コンピュータによる3次元自由形状の造形方法および装置

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid