งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Computer Graphics : บทที่ 2 - Transformation - 3D Viewing.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Computer Graphics : บทที่ 2 - Transformation - 3D Viewing."— ใบสำเนางานนำเสนอ:

1 Computer Graphics : บทที่ 2 - Transformation - 3D Viewing

2 Transformation –World Coordinates  Camera Coordinates –Camera Coordinates  Screen Coordinates(2D) x y z x y z x y z World CoordinatesCamera CoordinatesScreen Coordinates 2

3 World Coordinates พิกัดใน 3 มิติ – กำหนดตำแหน่งของต้นกำเนิดแสง ตำแหน่งกล้อง ตำแหน่งวัตถุ – หน่วยเป็นอะไรก็ได้ แต่ต้องเหมือนกัน เช่น เมตร เซนติเมตร กิโลเมตร x y z World Coordinates 3

4 ประเภทของพิกัด กฎมือขวา กฎมือซ้าย – นิ้วโป้ง = x, นิ้วชี้ = y, นิ้วกลาง = z OpenGL  กฎมือขวา DirectX  กฎมือซ้าย x y z x y z กฎมือขวากฎมือซ้าย 4

5 ประเภทของพิกัด ความแตกต่างของ กฎมือขวา กับ กฎมือซ้าย – หลักการในการมอง การคำนวณ โดยทั่วไปเหมือนกัน –Cross Product ต่างกัน – ข้อมูลของวัตถุ ( ตำแหน่งของ vertex) ในพิกัดหนึ่ง ถ้า จะนำไปแสดงในอีกพิกัดหนึ่งต้องเปลี่ยนก่อนแสดง ภาพ 5

6 Camera Coordinates เป็นพิกัดที่เอากล้องเป็นศูนย์กลางในการคิด – แกน X,Y ของกล้องคือแกน X,Y ของ Screen – ด้านลึกคือแกน Z x y z x y z Camera Coordinates 6

7 Screen Coordinates พิกัดบน Screen – เป็นพิกัดที่เกิดหลังจากกระบวนการ Projection จุดไหนไกล  กลาง screen – ค่า Z จำเป็นในการคำนวณความลึก ( ใกล้ - ไกล )  Z- Buffer x y z x y z x y z Camera Coordinates Screen Coordinates 7

8 ประเภทของพิกัด –OpenGL  ด้านที่วิ่งเข้าหาตัวค่าเป็น + –DirectX  ด้านที่วิ่งออกจากตัว ( ด้านลึก ) ค่าเป็น - x y z x y z OpenGL DirectX 8

9 Model Coordinates => Local Coordinates ของวัตถุ – จุด origin(0,0) จะอยู่ในตัววัตถุ x y z x y z Model Coordinates World Coordinates x y z 9

10 ขั้นตอนของ Coordinates Transformation Model Coordinates  Screen Coordinates x y z x y z Model Coordinates World Coordinates x y z Camera Coordinates x y z Screen Coordinates 10

11 Affine Transformation => Homogeneous Coordinates Transformation – สามารถจัดการการย้าย การหมุน การย่อขยาย วัตถุ ด้วย เมตริกขนาด 4 × 4 ( x, y, z, w ) พิกัดใน 3 มิติ  ( x/w, y/w, z/w )(โดยปรกติ w = 1 ) 11

12 Rotation หมุนรอบจุด (0,0) 12

13 Rotation หมุนรอบแกนที่กำหนดทวนเข็มนาฬิกา หมุนรอบแกนที่กำหนดทวนเข็มนาฬิกา xyz + 13

14 Rotation หมุนรอบแกน Z  เหมือนกับการหมุนใน 2 มิติ หมุนรอบแกน Z  เหมือนกับการหมุนใน 2 มิติ x’ = x cos(  ) – y sin(  ) x’ = x cos(  ) – y sin(  ) y’ = x sin(  ) + y cos(  ) y’ = x sin(  ) + y cos(  ) z’ = z z’ = z x y z + glRotatef(q, 0,0,1) 14

15 Rotation หมุนรอบแกน y (z -> y, y -> x, x->z) หมุนรอบแกน y (z -> y, y -> x, x->z) z’ = z cos(q) – x sin(q) z’ = z cos(q) – x sin(q) x’ = z sin(q) + x cos(q) x’ = z sin(q) + x cos(q) y’ = y y’ = y zxy + glRotatef(q, 0,1,0) xyz + 15

16 Rotation หมุนรอบแกน x (z -> x, y -> z, x->y) หมุนรอบแกน x (z -> x, y -> z, x->y) y’ = y cos(q) – z sin(q) y’ = y cos(q) – z sin(q) z’ = y sin(q) + z cos(q) z’ = y sin(q) + z cos(q) x’ = x x’ = x yzx + glRotatef(q, 1,0,0) xyz + 16

17 Rotation หมุนรอบแกนใดๆ หมุนรอบแกนใดๆ glRotatef(q, nx,ny,nz) 17

18 ตัวอย่าง หมุนรอบแกน Y ด้วยมุม 90 องศาตามเข็มนาฬิกา x y z (-5,6,3) (-5,2,3) (-3,6,3) (-3,2,3) (3,6,3) (3,2,3) (3,6,5) (3,2,5) 18

19 Translation ( Tx,Ty,Tz ) 19

20 ตัวอย่าง ( Tx,Ty,Tz ) = ( 8,-2,0 ) x y z (-5,6,3) (-5,2,3) (-3,6,3) (-3,2,3) (3,4,3) (3,0,3) (5,4,3) (5,0,3) 20

21 Scaling ( Sx,Sy,Sz ) 21

22 ตัวอย่าง ( Sx,Sy,Sz ) = ( 2, 0.5, 1 ) x y z (-5,6,3) (-5,2,3) (-3,6,3) (-3,2,3) (-10,3,3) (-10,1,3) (-6,3,3) (-6,1,3) 22

23 ตัวอย่าง x y z x y z x y z RotationTranslation 23

24 ตัวอย่าง x y z x y z x y z RotationTranslation Rotation อันไหนทำก่อนจะอยู่ขวา 24

25 ตัวอย่าง RotationTranslation x y z x y z x y z x y z Rotation 25

26 ตัวอย่าง x y z x y z x y z Rotation Translation Rotation 26

27 ตัวอย่าง x y z x y z x y z Rotation Translation Rotation 27

28 Affine Transformation x y z x y z x y z 28

29 Coordinates Transformation Model  Camera – วัตถุอยู่ที่ตำแหน่ง ( -10,0,4 )พิกัดอยู่ทิศทาง เดียวกับ world co. – กล้องหมุนรอบแกน Y 90 องศา ตำแหน่ง (8,2,3) x y z x y x y z (-10,0,4) (8,2,3) z 29

30 Coordinates Transformation Model  World Translation (0,0,0)  (-10,0,4) x y z x y x y z (-10,0,4) (8,2,3) z 30

31 Coordinates Transformation World  Camera x y z x y x y z (-10,0,4) (8,2,3) z 31

32 Coordinates Transformation World  Camera x y z x y x z (-18,-2,1) z 32

33 Coordinates Transformation Model  World World  Camera x y z x y x y z (-10,0,4) (8,2,3) z 33

34 Coordinates Transformation Model  World World  Camera x y z (0,0,0) 34

35 3D Viewing 3D  เหมือนการถ่ายรูป3D  เหมือนการถ่ายรูป 35

36 3D Viewing ซับซ้อนกว่า 2 มิติ ซับซ้อนกว่า 2 มิติ เรื่องยากคือทำอย่างไรที่จะวาดภาพ 3 มิติลงบนจอ 2 มิติ เรื่องยากคือทำอย่างไรที่จะวาดภาพ 3 มิติลงบนจอ 2 มิติ การมองวัตถุ 3 มิติในมุมมองที่ต่างกัน  ภาพที่ได้บนจอ 2 มิติต่างกัน การมองวัตถุ 3 มิติในมุมมองที่ต่างกัน  ภาพที่ได้บนจอ 2 มิติต่างกัน position, orientation, field of view ต่างกันภาพต่างกันposition, orientation, field of view ต่างกันภาพต่างกัน 36

37 Different Views 37

38 The Viewing Process สิ่งที่จำเป็นในการสร้างภาพ – กำหนด scene geometry – กำหนด view (camera) วาดวัตถุ 3 มิติลงบนระนาบ 2 มิติ (Transform the 3D objects onto a 2D plane ) กำหนด real-world window บนระนาบ 2 มิติ real-world window  viewport(2D viewing) 38

39 การกำหนด Camera การกำหนด View : – ตำแหน่งของ กล้องใน world co-ordinate – ทิศทางที่ส่อง กล้อง – มุมของกล้อง ( ขึ้น ลง ) – ขนาดของ view 39

40 ProjectionsProjections หลังกำหนด view แล้ว  ฉายภาพลงบนจอ 2 มิติ (2D Viewplane) หลังกำหนด view แล้ว  ฉายภาพลงบนจอ 2 มิติ (2D Viewplane) การฉายภาพของวัตถุ 3 มิติลงบนจอ 2 มิติ เรียกว่า Planar Geometric Projections การฉายภาพของวัตถุ 3 มิติลงบนจอ 2 มิติ เรียกว่า Planar Geometric Projections มี 2 ประเภท : มี 2 ประเภท : –Perspective Projection –Parallel Projections 40

41 Perspective Projections x y z 41

42 Perspective Projection 42

43 Perspective Projection วัตถุที่อยู่ไกลจะเล็กเหมือนกับ Real World วัตถุที่อยู่ไกลจะเล็กเหมือนกับ Real World สิ่งที่ต้องกำหนด : สิ่งที่ต้องกำหนด : – จุดศูนย์กลางที่จะทำการ Projection –Plane ของการ Projection Projection: เชื่อมวัตถุให้ไปรวมกันที่จุดศูนย์กลางของ Projection Projection: เชื่อมวัตถุให้ไปรวมกันที่จุดศูนย์กลางของ Projection projection plane camera 43

44 Parallel(Orthographic) Projection No effect เกี่ยวกันความใกล้ไกล – ไม่สนใจว่า ระยะทางจากกล้องถึงวัตถุNo effect เกี่ยวกันความใกล้ไกล – ไม่สนใจว่า ระยะทางจากกล้องถึงวัตถุ จุดศูนย์กลางของ Projection  Infinity จุดศูนย์กลางของ Projection  Infinity Projection calculation  ไม่สนใจแกน ZProjection calculation  ไม่สนใจแกน Z 44

45 Field of View กำหนดขนาดของโลก 3 มิติ กำหนดขนาดของโลก 3 มิติ x y z yz q field of view center of projection 45

46 Projection Transformation สิ่งที่ต้องกำหนด สิ่งที่ต้องกำหนด –Perspective or Orthographic –Field of view and image aspect ratio –Near and far clipping planes 46

47 Near and Far Clipping Planes ภาพที่อยู่ระหว่าง near กับ far เท่านั้นที่จะถูก วาด ภาพที่อยู่ระหว่าง near กับ far เท่านั้นที่จะถูก วาด Near plane + far plane + field of view = Viewing FrustumNear plane + far plane + field of view = Viewing Frustum x y z Near plane Far plane 47

48 Viewing Frustum วัตถุที่อยู่นอก frustum จะถูก clip ออก วัตถุที่อยู่นอก frustum จะถูก clip ออก x y z Near plane Far plane Viewing Frustum 48

49 Projection Transformation Projection –Projection – map the object from 3D space to 2D screen map the object from 3D space to 2D screen x y z x y z Perspective: gluPerspective() Parallel: glOrtho() 49

50 Perspective Projections glFrustrum(xmin, xmax, ymin, ymax, zmin, zmax); 50

51 Perspective Projections gluPerspective(fov, aspect, near, far); 51

52 Perspective Projections 52

53 fov = 122°fov = 84° fov = 54°fov = 10° Lens Configurations 53

54 Perspective Projection Parameters: –centre of projection (COP) –field of view (q, f) –projection direction –up direction 54

55 Perspective Projection x y z Z = -1 Z = 1 (-1, -1) (1, 1) eye nearfar (top view) 55

56 Perspective Projection (-1, -1, 1) (1, 1, -1) Canonical View Volume x y z 56

57 Parallel Projection xyz (x,y,z) (Xp, Yp) 57

58 Parallel Projection (2) OpenGL: ทุกอย่าง  canonical view volumeOpenGL: ทุกอย่าง  canonical view volume (-1, -1, 1) (1, 1, -1) Canonical View Volume glOrtho(xmin, xmax, ymin, ymax, near, far) (xmin, ymin, near) (xmax, ymax, far) 58

59 Projection Transformation In OpenGL:In OpenGL: –Set the matrix mode to GL_PROJECTION –Perspective projection: gluPerspective(fovy, aspect, near, far) orgluPerspective(fovy, aspect, near, far) or glFrustum(left, right, bottom, top, near, far)glFrustum(left, right, bottom, top, near, far) –Orthographic: glOrtho(left, right, bottom, top, near, far)glOrtho(left, right, bottom, top, near, far) 59

60 Projection Transformation void display() { glClear(GL_COLOR_BUFFER_BIT); glClear(GL_COLOR_BUFFER_BIT); glMatrixMode(GL_PROJETION); glMatrixMode(GL_PROJETION); glLoadIdentity(); glLoadIdentity(); gluPerspective(fove, aspect, near, far); gluPerspective(fove, aspect, near, far); glMatrixMode(GL_MODELVIEW); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glLoadIdentity(); gluLookAt(0,0,1,0,0,0,0,1,0); gluLookAt(0,0,1,0,0,0,0,1,0); display_all(); // your display routine display_all(); // your display routine} 60


ดาวน์โหลด ppt Computer Graphics : บทที่ 2 - Transformation - 3D Viewing.

งานนำเสนอที่คล้ายกัน


Ads by Google