subdivision theory
TRANSCRIPT
Subdivision TheoryBy Brian Sharp (GAMASUTRA)
이재윤
Geri’s Game
• Pixar, Siggraph 98
• 예술적 + 기술력 입증
• Subdivision Surfaces 적용
• 토이스토리2의 기술적 발판 제공
• http://www.youtube.com/watch?v=9IYRC7g2ICg
Subdivision Surfaces
• Polygonal Model 을 이용하여 surface 를 표현하는 방식
• 목표 : 폴리곤Polygon의 직관성 + 넙스NURBS의 부드러움
• (Poly. Model처럼) 삼각형 / 사각형 폴리곤 모두 사용 가능
• (Poly. Model과 다르게) 완벽하게 부드러운 표면 표현 가능
• Coarse / deltailed level 자유롭게 접근 가능
In this…
• Entirely theory!
• 시리즈 물로 Implementation 도..
• 거창한 제목과 달리 모든 기본이 되는 이론을 다루진 않음
• 우리에게 유용하지 못할 수도..
• But, 다양한 모델의 강점과 약점을 아는 것은 우리가 다음 게임을 만들
때 올바른 결정을 할 수 있게 도와줌
The What and the why
• What?
• Surface generated through subdivision.
• Control net 이라고 부르는 original polygonal surface 에서 시작
• Surface 는 추가되는 polygon에서 세분화됨
• 모든 vertices 는 정해진 룰에 따라 이동
• 이동방식은 scheme 마다 다르고, 이 방식이 surface 의 property 를 결정
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
Topology , Subdivision surfaces
• B-spline 이나 Besizer 패치로 뭔가 복잡한 surface 들을 모델링하는 것은 쉽지 않거나 불
가능할 수도 있음.
• 게다가 이걸 애니메이션하는 것은 continuity 를 유지하기 어렵고, 잘못하면 patch 간
seam 에서 creases 와 기타 artifacts 발생 가능
• Subdivision surfaces 는 임의의 mesh(closed면 더 좋음)에 대해 생성이 가능 – 임의의
topology 로 구성되어질 수 있음
• Mesh 에서 하나의 surface 를 만들어내기 때문에 continuity 이슈나 seam 부위를 걱정할
필요 없이 control net 을 애니메이션 시킬 수 있음
The basics
• Continuity
• Interpolate / Approximate
• Uniform / Non-uniform
• Stationary / Non-stationary
• Subdivision shape
• Extraordinary vertices
The basics : Continuity
• Cn Continuity : 얼마나 많은 미분에서 연속인가를 표현
• C0 : 연속인 미분이 없음.
• C1 : 1차 미분에서 연속. Surface는 닫혀있음. Tangent 가 연속
• Sharp 한 seam 이 존재하지 않음
• 사실 대부분의 scheme 은 C1 continuity 를 가지고 있음
• C2 : 2차 미분에서 연속. 특정 위치에서 C2 cont. 를 가질 수 있으나, 대부분 C1
cont. 를 주 특성으로 가짐
• Subdivision surfaces 기술을 사용할 때 가장 먼저 고려하는 속성이 continuity
The basics : Continuity
• Cn Continuity : 얼마나 많은 미분에서 연속인가를 표현
• C0 : 연속인 미분이 없음.
• C1 : 1차 미분에서 연속. Surface는 닫혀있음. Tangent 가 연속
• Sharp 한 seam 이 존재하지 않음
• 사실 대부분의 scheme 은 C1 continuity 를 가지고 있음
• C2 : 2차 미분에서 연속. 특정 위치에서 C2 cont. 를 가질 수 있으나, 대부분 C1
cont. 를 주 특성으로 가짐
• Subdivision surfaces 기술을 사용할 때 가장 먼저 고려하는 속성이 continuity
The basics : Continuity
• Cn Continuity : 얼마나 많은 미분에서 연속인가를 표현
• C0 : 연속인 미분이 없음.
• C1 : 1차 미분에서 연속. Surface는 닫혀있음. Tangent 가 연속
• Sharp 한 seam 이 존재하지 않음
• 사실 대부분의 scheme 은 C1 continuity 를 가지고 있음
• C2 : 2차 미분에서 연속. 특정 위치에서 C2 cont. 를 가질 수 있으나, 대부분 C1
cont. 를 주 특성으로 가짐
• Subdivision surfaces 기술을 사용할 때 가장 먼저 고려하는 속성이 continuity
The basics : Continuity
• Subdivision surfaces 가 Continuity를 유지할 수 있기 때문에
• 모델을 얼마나 많은 폴리곤으로 만들었냐에 상관없이,
• 카메라가 얼마나 모델 가까이 다가가느냐에 상관없이,
• Display resolution 이 얼마나 높은지에 상관없이
이상적인 limit surface 를 얻을 수 있다.
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 추측 어려움
The basics : Uniform, Stationary
• Uniform : 모든 Control point 가 동일한 규칙으로 subdivided
• Non-uniform : edge 마다 필요에 따라 다른 규칙 사용 가능
• Stationary : 모든 step 에서 동일한 규칙으로 subdivided
• Non-stationary : step 마다 필요에 따라 다른 규칙 사용 가능
• Non-uniform 이나 non-stationary 한 scheme은 별로 없다.
• 수학과 관련한 툴에서 rule set 을 동적으로 바꾸기 어려움
The basics : Subdivision shape
• Triangular or Quadrilateral
• Quadrilateral : 대부분 n-sided 에 대한 subdivide rule을
가지고 있음
• Triangular : 일단 전부 삼각형으로 쪼갠 후 subdivide 시작
• 쪼개는 건 쉽지만, 쪼개는 방법에 따라 최종결과물도 달라질
수 있음
The basics : Extraordinary vertices
• Vertex Valance : vertex 별 연결된 edge 의 수
• Subdivision scheme 별 우선되는 Vertex valance 도 중요
• Extraordinary vertex는 (valance, 구조에 따라)주변의 limit surface의 생성
에 영향을 줌
• 대부분의 scheme 들은 Extraordinary vertex를 고려하지 않음
• 처음부터 존재하던 EV 가 최종 결과물에 까지 변하지 않고 남아있음
The basics : Surface evaluation
• Limit surface 의 더 나은 polygonal approximation을 찾기 위해
Control net 을 이동시키고,
Vertices 를 추가하고,
Faces 를 더 많이, 작게 쪼개는
일련의 작업 프로세스
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 가 최종 결과(위
치, 탄젠트벡터)에 영향을 끼치는 지를 표시
1. The Polyhedral Scheme
The Polyhedral Scheme
• 가장 간단한 subdivision scheme
• Triangular, interpolating, uniform, stationary
• Edge 의 중간 점에 새로운 vertices 추가 후 이를 edge 로 연결하여 하나의 삼각
형을 네 개로 세분화
• 단점 : smooth surface 생성 불가
• Control net 의 형태를 절대 변경하지 않음
• C0 continuity
• Valance : 6
The Polyhedral Scheme
• Point 가 이미 limit surfaces 위에 있기 때문에 evaluation mask
가 필요 없음
• Surface가 smooth 하지 않기 때문에 tangent mask 는 의미 없
음
2. The Butterfly Subdivision Scheme
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
Butterfly subdivision scheme
• 만약, vertices 구조가 butterfly 가 아니면(N less than 5)?
• 그 주변에선 w = -1/16을 사용하는 것 외에 별다른 방법이 없음
• 이런 영역 주변에선 smooth 하지 않은 형태가 발생
• 아티스트를 빡치게 함
2.2. Modified Butterfly Scheme
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
Modified Butterfly Scheme
• Extraordinary vertex 도 care 해줌
• Edge 의 양쪽 다 Extraordinary vertex 일 경우
• 각 end point 에 대해 계산 후 평균값 사용
3. Catmull-clark Subdivision Surfaces
Catmull-Clark surfaces
• Quadrilateral and approximating
• Regular vertices : valence 4
• (일반적인 quadrilateral surface는 rectangular grid임)
Catmull-Clark surfaces
• Vertex Addition (3 steps)
1. 네 개의 control point 의 평균 값으로 구한 중앙에 FacePoints 추가
ab
c
de
f
gh
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
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
Catmull-Clark surfaces
• Vertex Addition (3 steps)
2. 각 old edge 마다, 양 end vertices 와 마주하는 두 FacePoints 의 평균 값으로 구한
중앙에 edge points 추가
3. Old vertices 들을 주어진 식에 따라 이동 후 모든 vertices 들을 새로운 edge 로 연
결
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 가 추가됨
Catmull-Clark surfaces
Catmull-Clark surfaces
• Evaluation mask
• For vertex of valence N
• Tangent mask
• Surface normal : cross product of t0 and t1
* 첫 subdivision 에선 e, f 사용 불가
Catmull-Clark surfaces
• 몇 step 을 진행한 Catmull-clark subdivision surfaces
3.2. Catmull-clark Extended
Catmull-Clark Extended
• 픽사에서 Geri’s game 에 적용하면서 original 을 필요에 맞게 수정
• Subdivision 시 특정 조건에 따라 sharp 와 semi-sharp crease 가 유지
• 아티스트가 모델링 시 명시적으로 edge 나 vertex 에 지정 가능
• Geri 의 피부 (주로 손가락 등)의 주름을 표현하기 위해 적용
• 옵션의 추가에 따라, scheme 의 속성도 달라짐
• Non-uniform, non-stationary
• 이런 속성의 변화 때문에 In game 에선 사용하기 어려움
다음 발표는 (아마도..)
• Implementing Subdivision Surface Theory
• 동일 인물의 다른 아티클 in GAMASUTRA
• 혹은, 또 다른 subdivision scheme에 대한 소개
• Loop subdivision, Doo-sabin subdivision 등