03 모델변환과시점변환 01 기하변환 02 계층구조 Modeling 03 Camera 시점변환
기하변환 (Geometric Transformation) 1. 이동 (Translation) 2. 회전 (Rotation) 3. 크기조절 (Scale) 4. 전단 (Shear) 5. 복합변환 6. 반사변환 7. 구조변형변환 2
기하변환 (Geometric Transformation) 오른손좌표계 3
1. 이동 (Translation) 2D 와 3D 공간에서강체 (Rigid Body) 의이동 (Translation) Y P (x, y ) T y 4 P(x, y) (0,0) T x (A) 2D 에서강체의이동 X (B) 3D 에서강체의이동
1. 이동 (Translation) Translation Matrix 로표현하는 Translation 5
1. 이동 (Translation) gltranslatef 함수의 Prototype gltranslatef 함수의사용예시 6
1. 이동 (Translation) 3D 공간에서강체의이동 (Translation) 구현결과 (A) gltranslatef(0.0, 0.0, 0.0); (B) gltranslatef(0.0, 1.0, 0.0); 7 (C) gltranslatef(0.0, 0.0, 1.0); (D) gltranslatef(1.0, 1.0, 0.0);
2. 회전 (Rotation) 2D 공간에서강체 (Rigid Body) 의회전 (Rotation) 8
2. 회전 (Rotation) 3D 공간에서강체 (Rigid Body) 의회전 (Rotation) 9
2. 회전 (Rotation) Rotation Matrix 로표현하는회전 (Rotation) 10
2. 회전 (Rotation) glrotatef 함수의 Prototype glrotatef 함수의사용예시 11
2. 회전 (Rotation) 3D 공간에서강체의회전 (Rotation) 구현결과 (A) glrotatef(0.0, 0.0, 0.0, 0.0); (B) glrotatef(45.0, 0.0, 0.0, 1.0); 12 (C) glrotatef(45.0, 1.0, 1.0, 0.0); (D) glrotatef(90.0, 0.0, 1.0, 0.0);
3. 크기조절 (Scale) 2D 및 3D 공간에서의크기조절 (Scale) 13
3. 크기조절 (Scale) Scale Matrix 로표현하는크기조절 (Scale) glscalef 함수의 Prototype 14
3. 크기조절 (Scale) 3D 공간에서강체의크기조절 (Scale) 구현결과 (A) glscalef(1.0, 1.0, 1.0); (B) glscalef(1.0, 2.5, 1.0); (C) glscalef(2.0, 1.0, 2.0); (D) glscalef(2.0, 2.0, 2.0); 15
4. 전단 (Shear) 2D 공간에서의전단 (Shear) 16
4. 전단 (Shear) 3D 공간에서의전단 (Shear) 17
4. 전단 (Shear) 전단 (Shear) 을위한 6 가지방향 S ij = shear of i by j S xy = shear of x by y 18
4. 전단 (Shear) 전단 (Shear) 을위한 6 가지방향 (A) Z 축값을그대로유지, X 축과 Y 축방향으로전단변환 (B) Y 축값을그대로유지, X 축과 Z 축방향으로전단변환 19 (C) X 축값을그대로유지, Y 축과 Z 축방향으로전단변환
4. 전단 (Shear) 전단 (Shear) Matrix 에의해구현된결과들 (A) Original (B) Shear along Y according to X 20 (C) Shear along X according to Y (D)Shear along Z according to Y
4. 전단 (Shear) 전단 (Shear) Matrix 에의해구현된결과들 (E) Shear along YZ according to X (F) Shear along XZ according to Y 21 (G) Shear along XY according to Z
4. 전단 (Shear) Shear Matrix 로표현하는객체의전단 (Shear) 22
4. 전단 (Shear) Shear Matrix 로표현하는객체의전단 (Shear) 23
4. 전단 (Shear) Shear Matrix 로표현하는객체의전단 (Shear) 24
5. 복합변환 2D 공간에서객체의회전을위한기준점의종류 (A) 기준점 - 원점 (B) 기준점 - 임의의한점 (Point) (C) 기준점 - 객체의중심점 25
5. 복합변환 Y 2D 에서의복합변환 P(x, y) T y (0,0) P (x, y ) T x X (A) Translation (B) Rotation 26 (C) Translation
5. 복합변환 Matrix 의연산순서와 OpenGL 코드에서의함수호출순서 Coordinate Transformation [OpenGL Function] P = I R T S P Object Transformation glloadidentity(); glrotatef(135.0, 0.0, 1.0, 0.0); gltranslatef(1.0, 0.0, 1.0); glscalef(1.0, 3.0, 1.0); glvertex3f(1.0, 1.0, 1.0); 27
5. 복합변환 2D 공간에서의 Matrix 의연산순서에따른서로다른결과 (A) Translation Rotation 28 (B) Rotation Translation
5. 복합변환 복합변환을구현한결과 코드 3-7 (A) Original (B) glscalef(1.0, 3.0, 1.0); 29 (C) gltranslatef(1.0, 0.0, 0.0); (D) glrotatef(135.0, 0.0, 1.0, 0.0);
5. 복합변환 glloadidentity 함수의 Prototype 30
6. 반사변환 2D 공간에서 3 가지종류의반사 (Reflection) (A) Y 축을기준으로반사 (B) X 축을기준으로반사 31
6. 반사변환 2D 공간에서 3 가지종류의반사 (Reflection) (C) 원점을기준으로반사 32
6. 반사변환 2D 공간에서 Y = X 축을기준으로하는반사 (Reflection) 변환의과정 (A) Y=X 축을 Y 축으로회전 (B) X 축을기준으로반사 (C) Y=X 축을원래위치로회전 33
6. 반사변환 거울에서반사변환 (Reflection Transformation) 을구 현하기위한방법 34
6. 반사변환 3D 공간에서의 Reflection 구현결과 코드 3-8 35
6. 반사변환 glclearstencil 함수의 Prototype glcleardepth 함수의 Prototype 36
6. 반사변환 glclear 함수의 Prototype 37
6. 반사변환 glcolormask 함수의 Prototype 38
6. 반사변환 glstencilfunc 함수의 Prototype 39
6. 반사변환 glstencilop 함수의 Prototype 40
7. 구조변형변환 Bending Diagram 41
7. 구조변형변환 Twisting Transformation 42
7. 구조변형변환 구조변형변환 Twisting 의구현결과 코드 3-9 43
02 계층구조 (Hierarchy Structure) Modeling 1. Matrix Stack 2. 태양계 (Solar System) Modeling 3. 로봇팔 (Robot Arm) Modeling 44
02 1. Matrix Stack Matrix Stack 45
02 1. Matrix Stack glpushmatrix 함수와 glpopmatrix 함수의 Prototype 46
02 1. Matrix Stack Matrix Stack 의응용 47
02 1. Matrix Stack Matrix Stack 의복합적인사용형태 48
02 2. 태양계 (Solar System) Modeling Solar System 의계층구조도 49
02 2. 태양계 (Solar System) Modeling 계층구조를가지는 Solar System 의구현결과 코드 3-12 50
02 2. 태양계 (Solar System) Modeling glcolor3f 함수의 Prototype 51
02 2. 태양계 (Solar System) Modeling RGB Color (A) 외부 (Outside) (B) 내부 (Inside) 52
02 2. 태양계 (Solar System) Modeling glcolor* 함수의 Prototype 53
02 2. 태양계 (Solar System) Modeling glcolor* 함수에적용될접미사 54
02 3. 로봇팔 (Robot Arm) Modeling Robot Arm 을 Modeling 하기위한 Matrix Stack 의구조 55
02 3. 로봇팔 (Robot Arm) Modeling Robot Arm 의구현결과 코드 3-14 56
02 3. 로봇팔 (Robot Arm) Modeling 회전의중심점인 Pivot 의위치에따른객체의회전방향 (A) 객체의왼쪽끝 (B) 객체의중심 (C) 객체의오른쪽끝 57
02 3. 로봇팔 (Robot Arm) Modeling 3D 공간에서객체의 Scale, Pivot 의위치및이동에따른영향 Original glutsolidcube(1.0); Y -Z -X X (0, 0, 0) Z -Y Scale glscalef(2.0, 0.4, 1.0); (A) 객체의 Scale (B) Robot Arm 을위한 Pivot 의위치와이동 58
02 3. 로봇팔 (Robot Arm) Modeling 전신 (Full-body) Modeling 을위한골격의구조 59
03 Camera 시점변환 (Viewpoint Transformation) 1. 좌표계와시점변환 2. 직교좌표계 3. 극좌표계 4. 파일럿시점좌표계 60
03 1. 좌표계와시점변환 시점좌표계 (VCS) 를구성하기위한좌표계들의종류 61
03 1. 좌표계와시점변환 glmatrixmode 함수에대한 Prototype 62
03 2. 직교좌표계 glulookat 함수를구성하는매개변수 (Parameter) 들의의미 63
03 2. 직교좌표계 glulookat 함수에대한 Prototype 64
03 2. 직교좌표계 glulookat 함수를표현하는직교좌표계 65
03 2. 직교좌표계 시점좌표계설정에따라다르게보이는차주전자 (Teapot) 의모습 glulookat(1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); glulookat(1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0); 66
03 2. 직교좌표계 시점좌표계 (VCS) 구현결과 코드 3-17 67
03 3. 극좌표계 방위각 (Azimuth) 과고도각 (Elevation) 68
03 3. 극좌표계 극좌표계시점 69
03 3. 극좌표계 Polar View 70
03 3. 극좌표계 극좌표계 (PCS) 에의해구현된결과 71
03 3. 극좌표계 시점좌표계 (VCS) 와극좌표계 (PCS) 에의해구현된결과 72 (A) VCS (View Coordinate System) (B) PCS (Polar View Coordinate System)
03 3. 극좌표계 Polar View 를이용한극좌표계 73
03 4. 파일럿시점좌표계 파일럿시점좌표계 (PVCS, Pilot View Coordinate System 74
03 4. 파일럿시점좌표계 Pilot View 75
03 4. 파일럿시점좌표계 시점좌표계 (VCS) 와파일럿시점좌표계 (PVCS) 의구현결과 (A) VCS (View Coordinate System) (B) PVCS(Pilot View Coordinate System) 76
03 4. 파일럿시점좌표계 Pilot View 를이용한 PVCS(Pilot View Coordinate System, 파일럿시점좌표계 ) PilotView(3.0, 3.0, 1.0, 0.0, 10.0, 0.0); 77