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

Post on 04-Jun-2020

11 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

곡선과 곡면

01 Spline 곡선

02 Spline 곡면

03 Subdivision 곡면

11

2

𝐶0 연속성

𝐶1 연속성

𝐶2 연속성

𝐶𝑛 연속성

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

1. Cardinal Spline Curve 01

Cardinal Spline Curve 𝐶(𝑡)

4

1. Cardinal Spline Curve 01

Cardinal Spline Curve의 구현 결과

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

코드 11-1

2. Hermite Spline Curve 01

Cubic Hermite Spline Curve H(𝑡)

6

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

2. Hermite Spline Curve 01

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

8

2. Hermite Spline Curve 01

Hermite Spline Curve의 구현 결과

9

코드 11-2

3. Bezier Spline Curve 01

Bezier Spline Curve의 생성 과정

10

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

(A) 2차 Bezier Spline Curve

3. Bezier Spline Curve 01

Bezier Spline Curve의 생성 과정

11

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

(B) 3차 Bezier Spline Curve

3. Bezier Spline Curve 01

Bezier Spline Curve의 생성 과정

12

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

(C) 4차 Bezier Spline Curve

3. Bezier Spline Curve 01

Bezier Spline Curve B(𝑡)

13

3. Bezier Spline Curve 01

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

14

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

3. Bezier Spline Curve 01

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

16

3. Bezier Spline Curve 01

Bezier Spline Curve의 구현 결과

17

코드 11-3

4. Catmull-Rom Spline Curve 01

Catmull-Rom Spline Curve 𝐶𝑖(𝑡)

18

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

4. Catmull-Rom Spline Curve 01

Catmull-Rom Spline Curve의 구현 결과

20

코드 11-4

5. B-Spline Curve 01

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

21

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

5. B-Spline Curve 01

Uniform Cubic B-Spline Curve 𝑄𝑖(𝑡)

23

5. B-Spline Curve 01

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

24

5. B-Spline Curve 01

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

25

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

5. B-Spline Curve 01

B-Spline Curve의 구현 결과

27

코드 11-5

6. Clamped B-Spline Curve 01

Clamped B-Spline Curve의 구현 결과

28

코드 11-6

7. NURBS Curve 01

제어점들과 Knot의 관계

29

7. NURBS Curve 01

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

30

7. NURBS Curve 01

NURBS Curve의 구현 결과

31

코드 11-7

1. Hermite Spline Surface

2. Bezier Spline Surface

3. B-Spline Surface

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

Spline 곡면 02

32

1. Hermite Spline Surface 02

Hermite Spline Curve 𝐻𝑥(𝑠, 𝑡)

33

1. Hermite Spline Surface 02

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

34

1. Hermite Spline Surface 02

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

35

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

Surface이 기본적인 형태

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

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

1. Hermite Spline Surface 02

glLoadMatrixf 함수의 Prototype

37

glMultiMatrixf 함수의 Prototype

1. Hermite Spline Surface 02

glGetFloatv 함수의 Prototype

38

1. Hermite Spline Surface 02

glMap2f 함수의 Prototype

39

1. Hermite Spline Surface 02

glMapGrid2f 함수의 Prototype

40

1. Hermite Spline Surface 02

glEvalMesh2 함수의 Prototype

41

glEvalCoord2f 함수의 Prototype

2. Bezier Spline Surface 02

Bezier Spline Surface C(u, v)

42

2. Bezier Spline Surface 02

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

43

Bezier Spline Surface C(u, v)

2. Bezier Spline Surface 02

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

44

코드 11-9

2. Bezier Spline Surface 02

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

45

코드 11-10

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)

3. B-Spline Surface 02

B-Spline Surface의 3가지 유형

47

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

3. B-Spline Surface 02

Parametric Curve의 Tension Product

48

3. B-Spline Surface 02

B-Spline Surface Q(u, v)

49

3. B-Spline Surface 02

Bicubic B-Spline Surface의 구현 결과

50

코드 11-11

4. NURBS Surface 02

NURBS Surface S(u, v)

51

4. NURBS Surface 02

NURBS Surface의 구현 결과

52

코드 11-12

4. NURBS Surface 02

gluNewNurbsRenderer 함수의 Prototype

53

4. NURBS Surface 02

gluNurbsProperty 함수의 Prototype

54

4. NURBS Surface 02

gluNurbsProperty 함수의 Prototype

55

4. NURBS Surface 02

gluNurbsProperty 함수의 Prototype

56

4. NURBS Surface 02

gluNurbsProperty 함수의 Prototype

57

4. NURBS Surface 02

gluNurbsProperty 함수의 Prototype

58

4. NURBS Surface 02

gluBeginSurface 함수의 Prototype

59

4. NURBS Surface 02

gluNurbsSurface 함수의 Prototype

60

4. NURBS Surface 02

gluEndSurface 함수의 Prototype

61

1. Catmull-Clark Subdivision Surface

2. Doo-Sabin Subdivision Surface

3. Loop Subdivision Surface

Subdivision 곡면 03

62

Subdivision 곡면 03

63

Subdivision Scheme의 분류

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

1. Catmull-Clark Subdivision Surface 03

Catmull-Clark Subdivision의 구현 결과 예시

65

1. Catmull-Clark Subdivision Surface 03

Catmull-Clark Subdivision의 규칙

66

1. Catmull-Clark Subdivision Surface 03

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

67

1. Catmull-Clark Subdivision Surface 03

Catmull-Clark Subdivision Surface의 구현 결과

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

코드 11-13

2. Doo-Sabin Subdivision Surface 03

Doo-Sabin Subdivision Surface의 예시

69

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

(B) Limit Surface

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

2. Doo-Sabin Subdivision Surface 03

Doo-Sabin Subdivision Matrix 𝑆𝑘𝐷𝑆

70

2. Doo-Sabin Subdivision Surface 03

Doo-Sabin Subdivision Surface Scheme

71

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

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

Vertex들 중 하나를 생성

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

3. Loop Subdivision Surface 03

Loop Subdivision Surface 규칙

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

3. Loop Subdivision Surface 03

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

74

3. Loop Subdivision Surface 03

Loop Subdivision Surface의 구현 결과

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

코드 11-15

3. Loop Subdivision Surface 03

Loop Subdivision Surface의 구현 결과

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

top related