subdivision theory

40
Subdivision Theory By Brian Sharp (GAMASUTRA) 이재윤

Upload: jaeyun-lee

Post on 12-Jul-2015

128 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Subdivision theory

Subdivision TheoryBy Brian Sharp (GAMASUTRA)

이재윤

Page 2: Subdivision theory

Geri’s Game

• Pixar, Siggraph 98

• 예술적 + 기술력 입증

• Subdivision Surfaces 적용

• 토이스토리2의 기술적 발판 제공

• http://www.youtube.com/watch?v=9IYRC7g2ICg

Page 3: Subdivision theory

Subdivision Surfaces

• Polygonal Model 을 이용하여 surface 를 표현하는 방식

• 목표 : 폴리곤Polygon의 직관성 + 넙스NURBS의 부드러움

• (Poly. Model처럼) 삼각형 / 사각형 폴리곤 모두 사용 가능

• (Poly. Model과 다르게) 완벽하게 부드러운 표면 표현 가능

• Coarse / deltailed level 자유롭게 접근 가능

Page 4: Subdivision theory

In this…

• Entirely theory!

• 시리즈 물로 Implementation 도..

• 거창한 제목과 달리 모든 기본이 되는 이론을 다루진 않음

• 우리에게 유용하지 못할 수도..

• But, 다양한 모델의 강점과 약점을 아는 것은 우리가 다음 게임을 만들

때 올바른 결정을 할 수 있게 도와줌

Page 5: Subdivision theory

The What and the why

• What?

• Surface generated through subdivision.

• Control net 이라고 부르는 original polygonal surface 에서 시작

• Surface 는 추가되는 polygon에서 세분화됨

• 모든 vertices 는 정해진 룰에 따라 이동

• 이동방식은 scheme 마다 다르고, 이 방식이 surface 의 property 를 결정

Page 6: Subdivision theory

Topology

• Control net 과 eventual surface(앞으로 limit surface)의 topology 는 동일

• Topology?

• Surface 의 구조를 묘사하는 방법 중 하나

• Stretching 이나 twisting 에 의해 변하지 않음

• Ex : 도넛과 (손잡이가 달린) 머그잔의 Topology는 동일

http://en.wikipedia.org/wiki/Topology#mediaviewer/File:Mug_and_Torus_morph.gif

Page 7: Subdivision theory

Topology , Subdivision surfaces

• B-spline 이나 Besizer 패치로 뭔가 복잡한 surface 들을 모델링하는 것은 쉽지 않거나 불

가능할 수도 있음.

• 게다가 이걸 애니메이션하는 것은 continuity 를 유지하기 어렵고, 잘못하면 patch 간

seam 에서 creases 와 기타 artifacts 발생 가능

• Subdivision surfaces 는 임의의 mesh(closed면 더 좋음)에 대해 생성이 가능 – 임의의

topology 로 구성되어질 수 있음

• Mesh 에서 하나의 surface 를 만들어내기 때문에 continuity 이슈나 seam 부위를 걱정할

필요 없이 control net 을 애니메이션 시킬 수 있음

Page 8: Subdivision theory

The basics

• Continuity

• Interpolate / Approximate

• Uniform / Non-uniform

• Stationary / Non-stationary

• Subdivision shape

• Extraordinary vertices

Page 9: Subdivision theory

The basics : Continuity

• Cn Continuity : 얼마나 많은 미분에서 연속인가를 표현

• C0 : 연속인 미분이 없음.

• C1 : 1차 미분에서 연속. Surface는 닫혀있음. Tangent 가 연속

• Sharp 한 seam 이 존재하지 않음

• 사실 대부분의 scheme 은 C1 continuity 를 가지고 있음

• C2 : 2차 미분에서 연속. 특정 위치에서 C2 cont. 를 가질 수 있으나, 대부분 C1

cont. 를 주 특성으로 가짐

• Subdivision surfaces 기술을 사용할 때 가장 먼저 고려하는 속성이 continuity

Page 10: Subdivision theory

The basics : Continuity

• Cn Continuity : 얼마나 많은 미분에서 연속인가를 표현

• C0 : 연속인 미분이 없음.

• C1 : 1차 미분에서 연속. Surface는 닫혀있음. Tangent 가 연속

• Sharp 한 seam 이 존재하지 않음

• 사실 대부분의 scheme 은 C1 continuity 를 가지고 있음

• C2 : 2차 미분에서 연속. 특정 위치에서 C2 cont. 를 가질 수 있으나, 대부분 C1

cont. 를 주 특성으로 가짐

• Subdivision surfaces 기술을 사용할 때 가장 먼저 고려하는 속성이 continuity

Page 11: Subdivision theory

The basics : Continuity

• Cn Continuity : 얼마나 많은 미분에서 연속인가를 표현

• C0 : 연속인 미분이 없음.

• C1 : 1차 미분에서 연속. Surface는 닫혀있음. Tangent 가 연속

• Sharp 한 seam 이 존재하지 않음

• 사실 대부분의 scheme 은 C1 continuity 를 가지고 있음

• C2 : 2차 미분에서 연속. 특정 위치에서 C2 cont. 를 가질 수 있으나, 대부분 C1

cont. 를 주 특성으로 가짐

• Subdivision surfaces 기술을 사용할 때 가장 먼저 고려하는 속성이 continuity

Page 12: Subdivision theory

The basics : Continuity

• Subdivision surfaces 가 Continuity를 유지할 수 있기 때문에

• 모델을 얼마나 많은 폴리곤으로 만들었냐에 상관없이,

• 카메라가 얼마나 모델 가까이 다가가느냐에 상관없이,

• Display resolution 이 얼마나 높은지에 상관없이

이상적인 limit surface 를 얻을 수 있다.

Page 13: Subdivision theory

The basics : To interpolate or not…

Interpolate Approximate

Control point 위치 Limit surface 위에 존재 Limit surface 외부에 존재

Control point 이동 이동 안함 limit surfaces에 가까워짐

Smoothness 비교적 유지 Undulation, ripple 이 적어짐-> 의도한 효과도 적어짐

결과물 예측 최종 limit surface 추측 쉬움 최종 limit surface 추측 어려움

Page 14: Subdivision theory

The basics : Uniform, Stationary

• Uniform : 모든 Control point 가 동일한 규칙으로 subdivided

• Non-uniform : edge 마다 필요에 따라 다른 규칙 사용 가능

• Stationary : 모든 step 에서 동일한 규칙으로 subdivided

• Non-stationary : step 마다 필요에 따라 다른 규칙 사용 가능

• Non-uniform 이나 non-stationary 한 scheme은 별로 없다.

• 수학과 관련한 툴에서 rule set 을 동적으로 바꾸기 어려움

Page 15: Subdivision theory

The basics : Subdivision shape

• Triangular or Quadrilateral

• Quadrilateral : 대부분 n-sided 에 대한 subdivide rule을

가지고 있음

• Triangular : 일단 전부 삼각형으로 쪼갠 후 subdivide 시작

• 쪼개는 건 쉽지만, 쪼개는 방법에 따라 최종결과물도 달라질

수 있음

Page 16: Subdivision theory

The basics : Extraordinary vertices

• Vertex Valance : vertex 별 연결된 edge 의 수

• Subdivision scheme 별 우선되는 Vertex valance 도 중요

• Extraordinary vertex는 (valance, 구조에 따라)주변의 limit surface의 생성

에 영향을 줌

• 대부분의 scheme 들은 Extraordinary vertex를 고려하지 않음

• 처음부터 존재하던 EV 가 최종 결과물에 까지 변하지 않고 남아있음

Page 17: Subdivision theory

The basics : Surface evaluation

• Limit surface 의 더 나은 polygonal approximation을 찾기 위해

Control net 을 이동시키고,

Vertices 를 추가하고,

Faces 를 더 많이, 작게 쪼개는

일련의 작업 프로세스

Page 18: Subdivision theory

The basics : Surface evaluation

• 모든 scheme 은 recursive 하게 evaluation

• 또한, 대부분의 scheme 은 명시적으로 control point에서 evaluation

• Interpolating schemes 의 경우 vertex 에서 tangent mask 를 이용해 명시적으로 surface

normal 을 구할 수 있다는 것을 의미

• Approximating scheme 의 경우 Evaluation mask 를 이용해 명시적으로 vertex 의 limit

position 을 구할 수 있다는 것을 의미

• 마스크는 스텐실과 유사한 형태이며, 주변의 얼마나 많은 vertex 가 최종 결과(위

치, 탄젠트벡터)에 영향을 끼치는 지를 표시

Page 19: Subdivision theory

1. The Polyhedral Scheme

Page 20: Subdivision theory

The Polyhedral Scheme

• 가장 간단한 subdivision scheme

• Triangular, interpolating, uniform, stationary

• Edge 의 중간 점에 새로운 vertices 추가 후 이를 edge 로 연결하여 하나의 삼각

형을 네 개로 세분화

• 단점 : smooth surface 생성 불가

• Control net 의 형태를 절대 변경하지 않음

• C0 continuity

• Valance : 6

Page 21: Subdivision theory

The Polyhedral Scheme

• Point 가 이미 limit surfaces 위에 있기 때문에 evaluation mask

가 필요 없음

• Surface가 smooth 하지 않기 때문에 tangent mask 는 의미 없

Page 22: Subdivision theory

2. The Butterfly Subdivision Scheme

Page 23: Subdivision theory

Butterfly subdivision scheme

• Polyhedral scheme 과 유사, but C1 continuity

• “A Butterfly Subdivision Scheme for Surface Interpolation with

Tension Control” , 1990, Dyn, Levin and Gregory

• Evaluation mask 가 나비모양

• Interpolating, Triangular

• W : tension parameter

Page 24: Subdivision theory

Butterfly subdivision scheme

• 만약, vertices 구조가 butterfly 가 아니면(N less than 5)?

• 그 주변에선 w = -1/16을 사용하는 것 외에 별다른 방법이 없음

• 이런 영역 주변에선 smooth 하지 않은 형태가 발생

• 아티스트를 빡치게 함

Page 25: Subdivision theory

2.2. Modified Butterfly Scheme

Page 26: Subdivision theory

Modified Butterfly Scheme

• 1993, Dyn and his colleagues

• 기본 골자는 Original 과 유사

• Regular valence of vertices - 6

• 모든 위치에서 C1 continuity 성립

• 8-point stencil 에서 10-point stencil로 확장

• 추가한 d 의 weight 만큼 a 에서 차감

• 총 weight 는 여전히 1

Page 27: Subdivision theory

Modified Butterfly Scheme

• Extraordinary vertex 도 care 해줌

• Edge 의 양쪽 다 Extraordinary vertex 일 경우

• 각 end point 에 대해 계산 후 평균값 사용

Page 28: Subdivision theory

3. Catmull-clark Subdivision Surfaces

Page 29: Subdivision theory

Catmull-Clark surfaces

• Quadrilateral and approximating

• Regular vertices : valence 4

• (일반적인 quadrilateral surface는 rectangular grid임)

Page 30: Subdivision theory

Catmull-Clark surfaces

• Vertex Addition (3 steps)

1. 네 개의 control point 의 평균 값으로 구한 중앙에 FacePoints 추가

ab

c

de

f

gh

Page 31: Subdivision theory

Catmull-Clark surfaces

• Vertex Addition (3 steps)

1. 네 개의 control point 의 평균 값으로 구한 중앙에 FacePoints 추가

2. 각 old edge 마다, 양 end vertices 와 마주하는 두 FacePoints 의 평균 값으로 구한

중앙에 edge points 추가

ab

c

de

f

gh

i

Page 32: Subdivision theory

Catmull-Clark surfaces

• Vertex Addition (3 steps)

1. 네 개의 control point 의 평균 값으로 구한 중앙에 FacePoints 추가

2. 각 old edge 마다, 양 end vertices 와 마주하는 두 FacePoints 의 평균 값으로 구한

중앙에 edge points 추가

ab

c

de

f

gh

i

j

l

k

Page 33: Subdivision theory

Catmull-Clark surfaces

• Vertex Addition (3 steps)

2. 각 old edge 마다, 양 end vertices 와 마주하는 두 FacePoints 의 평균 값으로 구한

중앙에 edge points 추가

3. Old vertices 들을 주어진 식에 따라 이동 후 모든 vertices 들을 새로운 edge 로 연

Page 34: Subdivision theory

Catmull-Clark surfaces

• 특이사항1. - Quadrilateral 이 아닌 곳에서의 subdivision

• 새로 생긴 face vertex 는 k( !=4 ) 개의 새로운 edge vertices 와 연결

-> extraordinary vertices 가 subdivision 중에 발생

• 그래도 보이는 것 만큼 나쁘진 않음.

• 특이사항2.

• Single step 후 모든 control net 의 faces 는 quadrilateral 이 됨

-> 첫 step에서 한 번만 extraordinary vertex 가 추가됨

Page 35: Subdivision theory

Catmull-Clark surfaces

Page 36: Subdivision theory

Catmull-Clark surfaces

• Evaluation mask

• For vertex of valence N

• Tangent mask

• Surface normal : cross product of t0 and t1

* 첫 subdivision 에선 e, f 사용 불가

Page 37: Subdivision theory

Catmull-Clark surfaces

• 몇 step 을 진행한 Catmull-clark subdivision surfaces

Page 38: Subdivision theory

3.2. Catmull-clark Extended

Page 39: Subdivision theory

Catmull-Clark Extended

• 픽사에서 Geri’s game 에 적용하면서 original 을 필요에 맞게 수정

• Subdivision 시 특정 조건에 따라 sharp 와 semi-sharp crease 가 유지

• 아티스트가 모델링 시 명시적으로 edge 나 vertex 에 지정 가능

• Geri 의 피부 (주로 손가락 등)의 주름을 표현하기 위해 적용

• 옵션의 추가에 따라, scheme 의 속성도 달라짐

• Non-uniform, non-stationary

• 이런 속성의 변화 때문에 In game 에선 사용하기 어려움

Page 40: Subdivision theory

다음 발표는 (아마도..)

• Implementing Subdivision Surface Theory

• 동일 인물의 다른 아티클 in GAMASUTRA

• 혹은, 또 다른 subdivision scheme에 대한 소개

• Loop subdivision, Doo-sabin subdivision 등