Bài giảng Các giải thuật sinh các thực thể cơ sở - Bài 4, Phần 1: Các phép biến đổi đồ hoạ - Lê Tấn Hùng
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Các giải thuật sinh các thực thể cơ sở - Bài 4, Phần 1: Các phép biến đổi đồ hoạ - Lê Tấn Hùng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
        Tài liệu đính kèm:
 bai_giang_cac_giai_thuat_sinh_cac_thuc_the_co_so_bai_4_cac_p.pdf bai_giang_cac_giai_thuat_sinh_cac_thuc_the_co_so_bai_4_cac_p.pdf
Nội dung text: Bài giảng Các giải thuật sinh các thực thể cơ sở - Bài 4, Phần 1: Các phép biến đổi đồ hoạ - Lê Tấn Hùng
- Bài 4 Các phép biến đổi Đồ hoạ Affine Transformations I KHái niệm cơ bản Le Tan Hung Email: hunglt@it-hut.edu.vn II Các phép biến đổi III Hệ tọa độ đồng nhất (c) SE/FIT/HUT 2002 1
- Mô hình hoá - Modelling  mô hình - model :  Modeling - Mô hình hoá  Thực thể cơ sở - primitives object  như circles, lines polygons hay cubes  Cảnh - A scene  mô hình hoá cảnh - Scene Modeling A scene with several instances of the object (c) SE/FIT/HUT 2002 2
- Ví dụ  At each frame of the animation, the object is transformed, in this case by a rotation. It could also be transformed by changing its size (scaling), or its shape (deforming), or its location (translation).  Further animation effects can be achieved by not changing the object, but the way it is viewed (i.e. the window to viewport transformation) at each frame (e.g. by zooming). (c) SE/FIT/HUT 2002
- Phép biến đổi - Transformations  Trong kỹ thuật đồ hoạ 3 bước: modeling, rendering, displaying  Với Modeling: modeling world viewing coordinate Modeling coordinate Viewing coordinate (eye coordinate) transformation transformation  Phép biến đổi - Transformation  Biến đổi mô hình hoá - Modeling transformations  Biến đổitạo góc nhìn - Viewing transformations  Biến đổitạoHoạtcảnh - Animation (c) SE/FIT/HUT 2002 4
- Transformations - Modeling world (c) SE/FIT/HUT 2002 5
- Viewing Transformations - Viewing  Viewing  Transformations - Viewing CAMERA OBJECT  Trong phép biến đổi này :  Một mô hình có thể quan sát trên các góc cạnh khác nhau (e.g. faraway, near, looking down, looking up) WORLD (c) SE/FIT/HUT 2002 6
- Phép biến đổiAffine Affine Transformations?  Phép biến đổi Affine  Ví dụ: phép biến đổitọa độ vớichỉ 2 điểm đầucuốicủa đoạnthẳng tạo thành 2 điểmmớimàkhinối chúng với nhau tạothànhđoạnthẳng mới.  Các điểmnằmtrênđoạnthẳng sẽ có kếtquả là điểm nằmtrênđoạnthẳng mớivới cùng phép biến đổi thông qua phép nộisuy. (c) SE/FIT/HUT 2002 7
- Phân loại - Transformations Example: OBJECT TRANSFORMATION  Có 2 cách nhìn trên phép biến đổi .4, 2  Object Transformation:  Coordinate 1,1 Transformation Example: COORDINATE TRANSFORMATION  Mỗi phương pháp có ưu nhược điểm riêng về bản chất tương đồng nhau (1,1) (1,1) (c) SE/FIT/HUT 2002
- Modeling Transformations Transform objects/points Transform coordinate system (c) SE/FIT/HUT 2002 9
- 2D Object Transformations  A 2D object transformation alters each point P into a new point Q using a specific formula or algorithm.  It therefore alters the co-ordinates of P (Px,Py) into new values which specify point Q (Qx,Qy)  This can be expressed using some function T, that maps co-ordinate pairs into co-ordinate pairs: (c) SE/FIT/HUT 2002
- Matrix Representation  If affine transformation T maps P onto Q, then Q is related to P as follows:    where a, b, c, d, tx and ty are all constants, and ad = bc  This gives rise to the following matrix representation:  Q   a b   P   t   x   x   x   i.e.   =     +    Q y   c d   P y   t y  (c) SE/FIT/HUT 2002
- Các phép biến đổihìnhhọc hai chiều  Phương pháp biểudiễn đốitượng P = [ x y ]  Phép biến đổivị trí điểm a b T =   c d  Thực thi phép biến đổi đúng trên 1 điểm ảnh sẽđúng trên toàn bộđối tượng y pW pM x z (c) SE/FIT/HUT 2002 12
- y Phép biến đổi  Phép bấtbiến z x  Phép biến đổitỉ lệ - Scaling  A scaling changes the size of an object with two scale factors, Sx and Sy  Phép biếndạng  A shearing shears an object in a particular direction, (in 2D, it’s either in the x or in the y direction (c) SE/FIT/HUT 2002 13
- Phép quay- Rotation y ( x’, y’ ) ρ ( x, y ) ρ θ α x (c) SE/FIT/HUT 2002 14
- Thuộc tính cơ bản của phép biến đổi Affine Transformations  Preservation of lines:  Affine transformations map lines to lines;  Preservation of parallelism  Preservation of proportional distances  Affine transformations change volume by | Det(M) |; (c) SE/FIT/HUT 2002 15
- Kếthợpcácphépbiến đổi Composition of Affine Transforms  Any affine transformation can be decomposed into elementary transformations.  Mọi phép biến đổiphứctạp đềucó thể tạo thành từ các phép biến đổicơ sở như:  Dịch chuyển-Translation  Tỉ lệ - Scaling  Quay- Rotation  Biếndạng - Shearing (c) SE/FIT/HUT 2002
- Affine transformations preserve affine combinations  It is rare that we want to perform just one elementary transformation.  Usually an application requires that we build a complex transformation out of several elementary ones  e.g. translate an object, rotate it, and scale it, all in one move  These individual transformations combine into one overall transformation  This is called the composition of transformations.  The composition of two or more affine transformations is also an affine transformation (c) SE/FIT/HUT 2002
- Thuộc tính T  Tác động lên tập các điểm đặc trưng của đối tượng tạo thành phép biến đổi cho đối tượng  We have defined each transformation by their effects on single points  In practice these will be applied to multiple points to transfer entire scenes or objects made up of many defining points (c) SE/FIT/HUT 2002 18
- Điểm gốc - Pivotal points Cho phép quay và tỉ lệ Rotation and Scaling  The simple versions of rotation and scaling have been based around the origin.  This means that when we rotate or scale, the object will also move, with respect to the origin  Translate all points through (-c1,-c2)  Rotate all points about the origin by  Translate all points back through (c1,c2) (c1,c2) (0,0) (c) SE/FIT/HUT 2002
- Pivotal points  Often we wish to rotate or scale with respect to some pivotal point, not the origin  Most significantly, we often wish to rotate or scale an object about its centre, or midpoint  In this way, the object’s location does not change  To do this, we relate the rotation or scaling about the pivotal point V, to an elementary rotation or scaling about the origin  We first translate all points so that V coincides with the origin  We then rotate or about the origin  then all points are translated back, so that V is restored to its original location (c) SE/FIT/HUT 2002
- Hệ toạ độ đồng nhất  Vấn đề gặp phải:  An affine transformation is composed of a linear transformation followed by a translation  Unfortunately, the translation portion is not a matrix multiplication but must instead be added as an extra term, or vector  What we need is a “trick”, so that translations can be represented in matrix multiplication form  This then means that they can be easily composed with other transformations, by simply multiplying the matrices together (c) SE/FIT/HUT 2002
- Tọa độ đồng nhất Homogeneous Transform  x' = ax + by + n  y' = bx + dy + m  Phương pháp biểudiễnmở rộng thông qua tọa độ đồng nhấtcủa các vector vị trí  Với ứng dụng của phép chiếuhìnhhọcmàởđótọa độ điểm đượcmôtả dướima trận [ x* y* h]  với x = x*/h, y = y*/h, z = z*/h và h là mộtsố thựctuỳ ý (c) SE/FIT/HUT 2002 22
- Ưu điểmcủaHệ tọa độ đồng nhất Homogeneous Transform  Ðưa ra cái nhìn hợpnhấtcủa các phép biến đổidưới phép nhân ma trận, hỗ trợ cho việcxử lý bằng cả phầncứng và phầnmềm  Kếthợp các các phép biến đổitạo thành ma trậntíchđơngiảnduy nhất. Tránh nhầmlẫnvề thứ tự của các phép nhân khi sử dụng.  Order matters: AB is generally not the same as BA  Cho phép kếthợpvớicả các phép biến đổi đặcbiệt không tuyến tính khác(non-affine) như:  Phép chiếuphốicảnh - Perspective projections!  Uốn - Bends, Vuốt tapers v.v.v (c) SE/FIT/HUT 2002 23
- Phép biến đổivớitọa độ đồng nhất  Ma trậnbiến đổi đồng nhất a b 0   [T ] =  c d 0  Phép tịnh tiến m n 1 1 0 0   [x' y' 1] = [x y 1] 0 1 0 = [x + m y + n 1] m n 1 (tx, ty, tz) (c) SE/FIT/HUT 2002 24
- Phép tỉ lệ S1 0 0 [x' y' 1] = [x y 1] 0 S2 0 = [x.S1 y.S2 1]    0 0 1 (c) SE/FIT/HUT 2002 25
- Phép quay y ( x’, y’ ) = [x.cosφ − y.sinφ x.sinφ + y.cosφ 1] ρ ( x, y ) ρ θ α x (c) SE/FIT/HUT 2002 26
- Phép biến đổitổng hợp (c) SE/FIT/HUT 2002 27
- Phép chuyển đổi (c) SE/FIT/HUT 2002 28
- Windows and Viewports  Mapping involves scaling and translation (moving).  Both the world window and viewport can be any aligned rectangle.  Usually the viewport is set to take up the entire screen window. (c) SE/FIT/HUT 2002 29
- Phép biến đổitheoma trận  Ma trận chuyểnvị theo Window  Xvmax- Xvmin  0 0 Xwmax- Xwmin   Ma trậnbiến đổitỉ lệ  Yv max−Yv min  [S1] =  0 0  Ywmax−Ywmin   0 0 1    Ma trận chuyểnvị theo tọa độ viewport (c) SE/FIT/HUT 2002 30
- Ma trậnbiến đổitổng hợpcủa phép chuyển đổi tọa độ [T] = [T1]x[S1]x[T2]  Xvmax- Xvmin  0 0  Xwmax- Xwmin   Yvmax−Yvmin  [T] =  0 0  Ywmax−Ywmin  Xvmax- Xvmin Yvmax−Yvmin Xvmin− Xwmin Yvmin−Ywmin 1  Xwmax- Xwmin Ywmax−Ywmin  (c) SE/FIT/HUT 2002 31
- Coordinate Transforms (c) SE/FIT/HUT 2002
- Coordinate Transforms x u u’ (1,1) (1,1) v v’ Object defined in Local Coordinate System y Object after transformation in Global Coordinate System (c) SE/FIT/HUT 2002 33
- Identity as a Coordinate Transform x x u u’ (1,1) (1,1) v y v’ y 1 0 0   Q = 0 1 0P 0 0 1 (c) SE/FIT/HUT 2002 34
- Translation x u 1 0 tx x u’ Q = 0 1 tyP (1,1)   (1+tx,1+ty) 0 0 1  v y v’ y 1 0 tx0 tx 1 0 tx1 1+ tx 1 0 tx0  tx  0 1 ty0 = ty 0 1 ty0 =  ty                 0 1 ty1 = 1+ ty 0 0 1 1 1  0 0 1 1  1  0 0 1 1  1  origin (c) SE/FIT/HUT 2002 35
- 0 Rotation   O = 0 x   u x 1 u’ (1,1) v’ v y y cosθ − sinθ 0 cosθ  − sinθ    v = sinθ  u =  cosθ  Q = sinθ cosθ 0P      1   1   0 0 1     (c) SE/FIT/HUT 2002 36
- Scaling u x u x (sx*1,sy*1) (1,1) v y y v sx 0 0 0 sx  0  Q =  0 sy 0P     u = sy   O = 0 v =  0     0 0 1  1    1  1    (c) SE/FIT/HUT 2002 37
- Composite Transformations x x x1(1− cosθ ) + y1 sinθ  u y (1− cosθ ) − y sinθ  O =  1 1    (1,1)  1  u’ v ’ cosθ + x1(1−cosθ)+ y1 sinθ v y sinθ + y (1−cosθ)− y sinθ  y v =  1 1   1  cosθ − sinθ x (1− cosθ ) + y sinθ   1 1  −sinθ + x1(1−cosθ)+ y1 sinθ M =  sinθ cosθ y1(1− cosθ ) − x1 sinθ  u =     cosθ + y1(1−cosθ)− y1 sinθ  0 0 1     1  (c) SE/FIT/HUT 2002 38
- Modeling Transformations  To make full use of the computational optimisation made possible by composite transforms, we only want to apply the transformations to points at the very end  i.e. the transformation operation (multiplying point p by transform matrix is the very last thing we do in the modelling phase) Specify Specify points Send to Transformations in local coords (composite if necessary) Pipeline (c) SE/FIT/HUT 2002 39
- + + This of course shouldn’t = mean all objects need to share the same transformations (c) SE/FIT/HUT 2002 40
- + + + + transform transform transform Obviously we want something more versatile = (c) SE/FIT/HUT 2002 41




