11 곡선과 곡면 - sangjiit.sangji.ac.kr/~3d/ppt/cg/11.pdf · 2017-05-16 · 01 2. hermite...

76
곡선과 곡면 01 Spline 곡선 02 Spline 곡면 03 Subdivision 곡면 11

Upload: others

Post on 04-Jun-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

곡선과 곡면

01 Spline 곡선

02 Spline 곡면

03 Subdivision 곡면

11

Page 2: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

2

𝐶0 연속성

𝐶1 연속성

𝐶2 연속성

𝐶𝑛 연속성

Page 3: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

1. Cardinal Spline Curve

2. Hermite Spline Curve

3. Bezier Spline Curve

4. Catmull-Rom Spline Curve

5. B-Spline Curve

6. Clamped B-Spline Curve

7. NURBS(Non-Uniform Rational B-Spline) Curve

Spline 곡선 01

3

Page 4: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

1. Cardinal Spline Curve 01

Cardinal Spline Curve 𝐶(𝑡)

4

Page 5: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

1. Cardinal Spline Curve 01

Cardinal Spline Curve의 구현 결과

5 (A) Tension = 0.5 (B) Tension = 1.5

코드 11-1

Page 6: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

2. Hermite Spline Curve 01

Cubic Hermite Spline Curve H(𝑡)

6

Page 7: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

2. Hermite Spline Curve 01

Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions / Basis Functions

7

(A) 2개의 제어점(P1, P2) 및 각 제어점에 대한 장력(T1, T2)에 의해 생성된 Cubic

Hermite Curve의 기본적인 형태

(B) Cubic Hermite Curve를 위한 Blending Functions / Basis

Functions

Page 8: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

2. Hermite Spline Curve 01

끝점(Endpoint) 𝑃2을 공유하는 두 개의 Hermite Spline Curves

8

Page 9: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

2. Hermite Spline Curve 01

Hermite Spline Curve의 구현 결과

9

코드 11-2

Page 10: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

3. Bezier Spline Curve 01

Bezier Spline Curve의 생성 과정

10

(A-①) 초기 (A-②) 중기 (A-③) 말기

(A) 2차 Bezier Spline Curve

Page 11: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

3. Bezier Spline Curve 01

Bezier Spline Curve의 생성 과정

11

(B-①) 초기 (B-②) 중기 (B-③) 말기

(B) 3차 Bezier Spline Curve

Page 12: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

3. Bezier Spline Curve 01

Bezier Spline Curve의 생성 과정

12

(C-①) 초기 (C-②) 중기 (C-③) 말기

(C) 4차 Bezier Spline Curve

Page 13: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

3. Bezier Spline Curve 01

Bezier Spline Curve B(𝑡)

13

Page 14: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

3. Bezier Spline Curve 01

(수식 11-21)에 주어진 순환 관계에 의해 생성된 Bernstein Polynomials

14

Page 15: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

3. Bezier Spline Curve 01

Cubic Bezier Curve의 기본적인 형태 및 Blending Functions / Basis Functions

15

(A) 4 개 의 제 어 점 에 의 해 생성된 Cubic Bezier Curve의 기본적인 형태

(B) 차수가 3인 Cubic Bezier Curve를 위한 Blending Functions / Basis

Functions

Page 16: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

3. Bezier Spline Curve 01

제어점들 𝑃0, 𝑃1, 𝑃2 및 𝑃3을 가지는 Bezier Curve의 다양성

16

Page 17: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

3. Bezier Spline Curve 01

Bezier Spline Curve의 구현 결과

17

코드 11-3

Page 18: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

4. Catmull-Rom Spline Curve 01

Catmull-Rom Spline Curve 𝐶𝑖(𝑡)

18

Page 19: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

4. Catmull-Rom Spline Curve 01

Catmull-Rom Spline Curve의 기본적인 형태 및 Blending Functions / Basis Functions

19

(A) 4개의 제어점에 의해 생성된 Catmull- Rom Spline Curve의 기본적인 형태

(B) 7개의 제어점에 의해 생성된 Catmull- Rom Spline Curve 및 접선들

(C) Catmull-Rom Spline Curve를 위한 Blending Functions / Basis Functions

Page 20: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

4. Catmull-Rom Spline Curve 01

Catmull-Rom Spline Curve의 구현 결과

20

코드 11-4

Page 21: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

5. B-Spline Curve 01

8개의 제어점 𝑃𝑖을 사용하여 구성된 B-Spline Curve

21

Page 22: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

5. B-Spline Curve 01

Uniform Cubic B-Spline Curve의 기본적인 형태 및 Blending Functions / Basis Functions

22

(A) 4 개 제 어 점 에 의 해 생 성 된 Uniform Cubic B-Spline Curve의

기본적인 형태

(B) Uniform Cubic B-Spline Curve를 위한 Blending Functions / Basis Functions

Page 23: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

5. B-Spline Curve 01

Uniform Cubic B-Spline Curve 𝑄𝑖(𝑡)

23

Page 24: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

5. B-Spline Curve 01

[그림 11-13]에 처음과 마지막 제어점들 모두에 3번 중복한 B-Spline Curve의 결과

24

Page 25: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

5. B-Spline Curve 01

[그림 11-13]에서 내부 제어점들 중 하나를 3번 중복한 B-Spline Curve의 결과

25

Page 26: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

5. B-Spline Curve 01

B-Spline Curve의 3가지 유형

26

(A) Open B-Spline Curve (B) Clamped B-Spline Curve (C) Closed B-Spline Curve

Page 27: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

5. B-Spline Curve 01

B-Spline Curve의 구현 결과

27

코드 11-5

Page 28: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

6. Clamped B-Spline Curve 01

Clamped B-Spline Curve의 구현 결과

28

코드 11-6

Page 29: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

7. NURBS Curve 01

제어점들과 Knot의 관계

29

Page 30: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

7. NURBS Curve 01

NURBS : 제어점 𝑃3에 대응하는 가중치 𝑤3의 변경에 따른 결과

30

Page 31: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

7. NURBS Curve 01

NURBS Curve의 구현 결과

31

코드 11-7

Page 32: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

1. Hermite Spline Surface

2. Bezier Spline Surface

3. B-Spline Surface

4. NURBS(Non-Uniform Rational B-Spline) Surface

Spline 곡면 02

32

Page 33: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

1. Hermite Spline Surface 02

Hermite Spline Curve 𝐻𝑥(𝑠, 𝑡)

33

Page 34: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

1. Hermite Spline Surface 02

[𝑔𝑖𝑗]의 x 성분 분포도

34

Page 35: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

1. Hermite Spline Surface 02

Hermite Spline Surface 𝐻𝑥(𝑠, 𝑡)의 구성도

35

A) 4개의 제어점에 의해 생성된 Hermite Splinez

Surface이 기본적인 형태

B) 각 제어점에 생성된 접선 Vector 및 2차 미분계수 Vector

Page 36: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

1. Hermite Spline Surface 02

Hermite Spline Surface의 구현 결과

36

(A) Wire-frame Hermite Spline Surface: Tension 0.50

B) Wire-frame Hermite Spline Surface: Tension 1.50

(C) Wire-frame Hermite Spline Surface: Tension 3.50

(D) Mesh를 채우고 조명을 적용한 Hermite Spline Surface : Tension 0.50

코드 11-8

Page 37: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

1. Hermite Spline Surface 02

glLoadMatrixf 함수의 Prototype

37

glMultiMatrixf 함수의 Prototype

Page 38: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

1. Hermite Spline Surface 02

glGetFloatv 함수의 Prototype

38

Page 39: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

1. Hermite Spline Surface 02

glMap2f 함수의 Prototype

39

Page 40: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

1. Hermite Spline Surface 02

glMapGrid2f 함수의 Prototype

40

Page 41: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

1. Hermite Spline Surface 02

glEvalMesh2 함수의 Prototype

41

glEvalCoord2f 함수의 Prototype

Page 42: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

2. Bezier Spline Surface 02

Bezier Spline Surface C(u, v)

42

Page 43: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

2. Bezier Spline Surface 02

Bezier Spline Surface을 위한 매개변수 방향(u, v) 및 차수(n, m)

43

Bezier Spline Surface C(u, v)

Page 44: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

2. Bezier Spline Surface 02

2D Evaluators를 사용한 Wire-frame Bezier Spline Surface의 구현 결과

44

코드 11-9

Page 45: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

2. Bezier Spline Surface 02

2D Evaluators를 사용하여 생성한 Bezier Spline Curve에 Mesh를 채우고 조명을 추가한 Bezier Spline Surface의 구현 결과

45

코드 11-10

Page 46: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

3. B-Spline Surface 02

차수의 변화에 따른 B-Spline Surface의 변화

46

(A) (Periodic, Periodic) (B) (Non-Periodic, Non-Periodic) (C) (Periodic, Non-Periodic) (p, q)=(3, 3) (p, q)=(3, 3) (p, q)=(5, 2)

Page 47: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

3. B-Spline Surface 02

B-Spline Surface의 3가지 유형

47

(A) Clamped (B) Closed (C) Open

Page 48: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

3. B-Spline Surface 02

Parametric Curve의 Tension Product

48

Page 49: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

3. B-Spline Surface 02

B-Spline Surface Q(u, v)

49

Page 50: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

3. B-Spline Surface 02

Bicubic B-Spline Surface의 구현 결과

50

코드 11-11

Page 51: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

4. NURBS Surface 02

NURBS Surface S(u, v)

51

Page 52: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

4. NURBS Surface 02

NURBS Surface의 구현 결과

52

코드 11-12

Page 53: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

4. NURBS Surface 02

gluNewNurbsRenderer 함수의 Prototype

53

Page 54: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

4. NURBS Surface 02

gluNurbsProperty 함수의 Prototype

54

Page 55: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

4. NURBS Surface 02

gluNurbsProperty 함수의 Prototype

55

Page 56: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

4. NURBS Surface 02

gluNurbsProperty 함수의 Prototype

56

Page 57: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

4. NURBS Surface 02

gluNurbsProperty 함수의 Prototype

57

Page 58: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

4. NURBS Surface 02

gluNurbsProperty 함수의 Prototype

58

Page 59: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

4. NURBS Surface 02

gluBeginSurface 함수의 Prototype

59

Page 60: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

4. NURBS Surface 02

gluNurbsSurface 함수의 Prototype

60

Page 61: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

4. NURBS Surface 02

gluEndSurface 함수의 Prototype

61

Page 62: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

1. Catmull-Clark Subdivision Surface

2. Doo-Sabin Subdivision Surface

3. Loop Subdivision Surface

Subdivision 곡면 03

62

Page 63: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

Subdivision 곡면 03

63

Subdivision Scheme의 분류

Page 64: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

Subdivision 곡면 03

64

육면체(Cube)에 여러 가지 종류의 Subdivision 규칙을 적용한 결과

(A) Original Cube (B) Midpoint Subdivision (C) Catmull-Clark Subdivision

(D) Doo-Sabin Subdivision (E) Loop Subdivision (F) 3 Subdivision

Page 65: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

1. Catmull-Clark Subdivision Surface 03

Catmull-Clark Subdivision의 구현 결과 예시

65

Page 66: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

1. Catmull-Clark Subdivision Surface 03

Catmull-Clark Subdivision의 규칙

66

Page 67: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

1. Catmull-Clark Subdivision Surface 03

Catmull-Clark Subdivision Surface를 위한 새로운 Vertex 생성 및 가중치

67

Page 68: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

1. Catmull-Clark Subdivision Surface 03

Catmull-Clark Subdivision Surface의 구현 결과

68 (A) Level 0 (B) Level 1 (C) Level 3

코드 11-13

Page 69: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

2. Doo-Sabin Subdivision Surface 03

Doo-Sabin Subdivision Surface의 예시

69

(A) T 모양의 사변형 Mesh에 2번의 세부적인 반복 효과 적용

(B) Limit Surface

(C) Doo-Sabin Subdivision을 육면체(Cube)에 적용한 결과

Page 70: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

2. Doo-Sabin Subdivision Surface 03

Doo-Sabin Subdivision Matrix 𝑆𝑘𝐷𝑆

70

Page 71: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

2. Doo-Sabin Subdivision Surface 03

Doo-Sabin Subdivision Surface Scheme

71

(A) 기존의 점(Point) 및 라인(Line)들 사이에 세부적인 Vertex들 생성

(B) 기존의 점(Point)들에 대한 가중 치(Weight)를 기준으로 세부적인

Vertex들 중 하나를 생성

Page 72: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

2. Doo-Sabin Subdivision Surface 03

Doo-Sabin Subdivision Surface의 구현 결과

72

(A) Level 0 (B) Level 1 (C) Level 2 (D) Level 3

코드 11-14

Page 73: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

3. Loop Subdivision Surface 03

Loop Subdivision Surface 규칙

73 (A) 홀수 Vertex들을 위한 Masks (B) 짝수 Vertex들을 위한 Masks

Page 74: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

3. Loop Subdivision Surface 03

기존 Vertex들에 대한 위치의 선형 조합으로 새로운 위치 계산

74

Page 75: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

3. Loop Subdivision Surface 03

Loop Subdivision Surface의 구현 결과

75 (A) Level 0 (B) Level 1 (C) Level 2

코드 11-15

Page 76: 11 곡선과 곡면 - SANGJIit.sangji.ac.kr/~3D/ppt/CG/11.pdf · 2017-05-16 · 01 2. Hermite Spline Curve Cubic Hermite Curve를 위한 기본적인 형태 및 Blending Functions

3. Loop Subdivision Surface 03

Loop Subdivision Surface의 구현 결과

76 (A) Level 3 (B) Level 4 (C) Level 5