Bài giảng Đồ họa và hiện thực ảo - Bài 5: Nguyên lý về 3D và phép chiếu - Projection - Lê Tấn Hùng
Bạn đang xem tài liệu "Bài giảng Đồ họa và hiện thực ảo - Bài 5: Nguyên lý về 3D và phép chiếu - Projection - 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_do_hoa_va_hien_thuc_ao_bai_5_nguyen_ly_ve_3d_va_ph.pdf
Nội dung text: Bài giảng Đồ họa và hiện thực ảo - Bài 5: Nguyên lý về 3D và phép chiếu - Projection - Lê Tấn Hùng
- Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595 Nguyên lý về 3D Bài 5 Nguyên lý về 3D và z Ðồ họa3 chiều - 3D computer graphics bao gồmviệcbổ phép chiếu-Projection xung kích thướcvề chiềusâucủa đốitượng, cho phép ta biểudiễn chúng trong thế giớithựcmột cách chính xác và sinh động hơn. z Tuy nhiên các thiếtbị truy xuấthiệntại đềulà2 chiều, Do vậyviệcbiểudiễn đượcthực thi thông qua phép tô chát Lê Tấn Hùng 0913030731 – render để gây ảo giác illusion vềđộsâu hunglt@it-hut.edu.vn z 3D Graphics là việcchyểnthế giớitự nhiên dướidạng cácmôhìnhbiểudiễntrêncácthiếtbị hiểnthị thông qua kỹ thuật tô chát (rendering). 1 2 Ðặc điểmcủakỹ thuật đồ hoạ 3D Các phương pháp hiểnthị 3D Có các đốitượng phức tapj hơncácđốitượng z Vớicácthiếtbị hiểnthị 2D: trong không gian 2D – 3D viewing positions – Bao bởicácmặtphẳng hay các bề mặt – Kỹ thuậtchiếu - projection: orthographic/perspective – Có các thành phần trong và ngoài – Kỹ thuật đánh dấu độ sâu - depth cueing z Các phép biến đổihìnhhọcphứctạp – Nét khuất - visible line/surface identification z Các phép biến đổihệ toạđộphứctạphơn – Tô chát bề mặt-surface rendering – Cắt lát - exploded/cutaway scenes, cross-sections z Thường xuyên phảibổ xung thêm phép chiếutừ không gian 3D vào không gian 2D z Thiếtbị hiểnthị 3D: z Luôn phảixácđịnh các bề mặthiểnthị – Kính stereo - Stereoscopic displays* – Màn hình 3D - Holograms 3 4 Perspective and Exploded/cutaway scenes Depth of Field Stereo Projections Shadows as depth cues z In OpenGL we can produce stereo views by creating two side-by-side viewports with slightly different viewing angles. z The lookat point stays the same but the location of the eye moves. z Human eyes are about 3 inches apart, therefore a good value for D is 1.5 Different views of a 3D model 5 6 1
- Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595 Stereo Projections 3D GRAPHICS PIPELINE WORLD SCENE/OBJECT Modelling coordinates: - world coordinate system, 3D MODELLING - object coordinate system VIEWING 3D CLIPPING Camera coordinates PROJECTION Screen/Window coordinates RASTERIZATION Device coordinates eye=(0,-1,2.5) eye=(0.5,-1,2.5) 2D PIXELMAP DISPLAY 7 8 3D - Modelling Clipping 3D x2 + y2 + z2 = r2 view frustrum Polygonal Implicit 3D Modelling x = sin4θ y = cos2θ outside view so must be clipped Parametric Particles 9 10 Viewing and Projection Rasterization 3d models camera setup viewport 11 12 2
- Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595 Phép chiếu Các bước xây dựng hình chiếu täa ®é thùc täa ®é theo vïng täa ®é thiÕt khung nh×n Định nghĩavề phép chiếu 3D c¾t bÞ Mộtcáchtổng quát, phép chiếu là phép chuyển đổinhững điểmcủa đốitượng trong hệ thống tọa độ nchiều thành PhÐp biÕn ®æi vμo những điểm trong hệ thống tọa độ có số chiềunhỏ hơnn C¾t theo view PhÐp chiÕu trªn . cæng nh×n cña volum mÆt ph¼ng chiÕu Định nghĩavề hình chiếu täa ®é thiÕt bÞ Ảnh của đốitượng trên mặtphẳng chiếu được hình thành từ z 1. đốitượng trong không gian 3Dvớitọa độ thực đượccắt theo một không phép chiếubởicácđường thẳng gọilàtiachiếu (projector) gian xác định gọilà view volume. xuất phát từ một điểmgọilàtâmchiếu (center of z 2. view volume đượcchiếulênmặtphẳng chiếu. Diệntích choánbởiview projection) đi qua các điểmcủa đốitượng giao vớimặt volume trên mặtphẳng chiếu đó sẽ cho chúng ta khung nhìn. chiếu (projection plan). z 3. là việc ánh xạ khung nhìnvàotrongmộtcổng nhìnbấtkỳ cho trướctrên mànhình để hiểnthị hình ảnh 13 14 Phép chiếu song song Parallel Projections Phép chiếu song song - Parallel Projections là phép chiếumàở đócáctia chiếu song song với nhau hay xuất phát từ điểm vô cùng Phân loại phép chiếu song song dựatrên hướng của tia chiếu Direction Of Projection và mặtphẳng chiếu -projection plane A A B z Points on the object are projected to the B viewing plane along parallel lines ’ ’ D z Preserves relative dimensions of the D object but does not give a realistic C ’ C presentation projectio centre of ’ n plane projection at infinity 15 16 Taxonomy of Projections Phép chiếu trực giao (Orthographic z Orthographic Projections projection) là phép chiếu song song và – Multiview Orthographic tia chiếu vuông góc với mặt phẳng chiếu thường dùng mặt phẳng z=0 Ứng với mỗi mặt phẳng chiếu ta có 1 ma trận chiếu tương ứng ⎡1 0 0 0⎤ ⎡0 0 0 0⎤ ⎡1 0 0 0⎤ ⎢ ⎥ 0 0 0 0 ⎢ ⎥ ⎢0 1 0 0⎥ ⎢ ⎥ 0 1 0 0 ⎢ ⎥ [Ty ] = [T ] = ⎢ ⎥ [T ] = ⎢0 0 1 0⎥ x ⎢0 0 1 0⎥ z ⎢0 0 0 0⎥ ⎢ ⎥ 0 0 0 1 ⎢ ⎥ ⎢ ⎥ ⎣ ⎦ ⎣0 0 0 1⎦ ⎣0 0 0 1⎦ 17 18 3
- Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595 Phép chiếutrụclượng (Axonometric) Trimetric z Phép chiếutrụclượng là phép chiếumàhìnhchiếuthuđược z Phép chiếu Trimetric [ U ] :là ma trận vector đơnvị z Là phép chiếu hình thành từ việc quay tự do đốitượng trên mộttrục của các trụcx, y, zbấtbiến hay tấtcả các trụccủahệ tọa độ và chiếu đốitượng đóbằng phép chiếu song song lên mặtphẳng chiếu (thường là mặtphẳng z = 0) [ T ] : là ma trậnchiếutổng hợp vuông góc với tia chiếu tương ứng z trên cơ sở tỉ lệ co - SF của ảnh đốitượng trên mỗitrụclàkhácnhau. SF- tỉ lệ co theo các trụclà: ' ' 2 2 ⎡xx yx 0 1⎤ fx = x'x +y'x ⎡1 0 0 1⎤ ⎢ ' ' ⎥ ⎢ ⎥ ⎢xy yy 0 1⎥ 2 2 [U ] = 0 1 0 1 [T] = fy = x' y +y' y ⎢ ⎥ ⎢ ' ' ⎥ xz yz 0 1 ⎣⎢0 0 1 1⎦⎥ ⎢ ⎥ 2 2 ⎣⎢ 0 0 0 1⎦⎥ fz = x'z +y'z 19 20 Phép chiếu Dimetric Là phép chiếu Trimetric với 2 hệ số tỉ lệ co bằng nhau, giá trị thứ 3 [T ] = [Ry][Rx][Pz] còn lạilàtuỳ ý. 2 '2 '2 2 2 2 ⎡cosφ 0 − sinφ 0⎤ ⎡1 0 0 0⎤ ⎡1 0 0 0⎤ f = (x + y ) = sin φ +cos φsin ϕ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ z z z 0 1 0 0 0 cosϕ sinϕ 0 0 1 0 0 = ⎢ ⎥ . ⎢ ⎥ . ⎢ ⎥ ⎢sinφ 0 cosφ 0⎥ ⎢0 − sinϕ cosϕ 0⎥ ⎢0 0 0 0⎥ 2 '2 '2 2 ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ f = (x + y ) = cos ϕ ⎣ 0 0 0 1⎦ ⎣0 0 0 1⎦ ⎣0 0 0 1⎦ y y y f •Quay đốitượng quanh trụcytheo −1 z ⎡cosφ sinφ sinϕ 0 0⎤ φ = sin (± ) một góc φ, 2 ⎢ 0 cosϕ 0 0⎥ 2 − f [T ] = ⎢ ⎥ z ⎢sinφ − cosφ sinϕ 0 0⎥ •Quay quanh x theo một góc ψ ⎢ ⎥ −1 f z ⎣ 0 0 0 1⎦ •Chiếutrênmặtphẳng z = 0 vớitâm ϕ = sin (± ) chiếutại điểmvôhạn 2 21 22 Phép chiếuIsometric z Là phép chiếutrụclượng 2 2 1 − 2sin ϕ mà ở đóhệ số co cạnh sin φ = 2 1 − sin ϕ trên 3 trụclàbằng nhau sin 2 ϕ z Góc quay tương ứng là sin 2 φ = 35.26 và 45 1− sin 2 ϕ . sin2 ϕ 1/3 z Ðược ứng dụng nhiều sin2 φ = = =1/2 trong việcxâydựng các 1−sin2 ϕ 1−1/3 góc quan sát chuẩncho 1 sin ϕ = ± đốitượng trong các hệ 3 soạnthảo đồ họa ϕ = ±35.260 φ = ±450 f = cos2 ϕ = 2 / 3 = 0.8165 23 24 4
- Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595 Taxonomy of Projections Parallel Projections z Oblique Projections orthographic oblique 25 26 axonometric isometric Taxonomy of Projections Phép chiếuxiên-Oblique z Oblique Projections z Phép chiếu Cavalier – Combine the properties of Orthographic and Axonometric z Phép chiếu Cabinet – Preserves the object face; and – Gives a better sense of the 3D nature. 27 28 Phép chiếu Cavalier G Phép chiếu cavalier là phép chiếuxiênđượctạo thành khi các – f = 0, β = 900 phép tia chiếu làm thành vớimặtphẳng chiếumộtgóc450 chiếusẽ trở thành phépchiếutrực giao. – Còn vớif = 1 kích ⎡ 1 0 0 0⎤ a = f cosα thướccủahình chiếu ⎢ ⎥ bằng kích thướccủa 0 1 0 0 b = f sinα đốitượng => cavalier [T '' ] = ⎢ ⎥ ⎢− a − b 0 0⎥ – Phépchiếu Cavalier ⎢ ⎥ ⎡ 1 0 0 0⎤ cho phépgiá trị của α 0 0 0 1 ⎣ ⎦ ⎢ 0 1 0 0⎥ biến đổimộtcách tự [T ] = ⎢ ⎥ do α = 300 và 450 ⎢− f cosα − f sinα 0 0⎥ ⎢ ⎥ ⎣ 0 0 0 1⎦ 29 30 5
- Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595 Phép chiếu Cabinet Oblique Projections – Phép chiếuxiênvớihệ số co tỉ lệ f = 1/2 f β = cos −1 ( ) 12 + f 2 1 = cos −1 ( 2 ) = 63.4350 12 + (1 2) 2 D/2 D D Cabinet Projection D Cavalier Project 31 32 Phép chiếuphốicảnh Perspective Projection Vanishing points z Phép chiếu phốicảnh là phép chiếumàcáctiachiếu không song song với nhau mà xuấtpháttừ 1 điểmgọilàtâmchiếu.Phép chiếu z Each set of parallel lines (=direction) meets at a phốicảnh tạorahiệu ứng về luậtxagầntạocảmgiácvềđộsâu của different point: The vanishing point for this direction đốitượng trong thế giớithật mà phép chiếu song song không lộttả được. z Sets of parallel lines on the same plane lead to z Các đoạnthẳng song song của mô hình 3D sau phép chiếuhộitụ tại1 collinear vanishing points: the horizon for that plane điểmgọilàđiểmtriệt tiêu - vanishing point z z Phân loại phép chiếu phốicảnh dựa vào tâm chiếu-Centre Of Easy examples Projection (COP) và mặtphẳng chiếu projection plane – corridor – higher = further away z Good way to spot faked images 33 34 Điểm triệt tiêu Vanishing point Perspective Projections 3-point perspective z Nếu điểm triệt tiêu nằm trên trục tọa độ thì điểm đó được gọi là điểm triệt tiêu quy tắc - principle vanishing point z The number of principal vanishing points is determined 1-point perspective by the number of principal axes cut by the projection plane. z If the plane only cut the z axis (most common), there is only 1 vanishing point. z 2-points sometimes used in architecture and engineering. 3-points seldom used add little extra realism 2-point perspective 35 36 6
- Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595 Phép chiếuphốicảnh Phép biến đổiphốicảnh ⎡1 0 0 0⎤ ⎢0 1 0 0⎥ [Tr] = ⎢ ⎥ ⎢0 0 1 r⎥ ⎢ ⎥ ⎣0 0 0 1⎦ ⎡ x y z ⎤ [x' y' z' 1] = 1 ⎣⎢rz +1 rz +1 rz +1 ⎦⎥ z Phépchiếuphốica?nhcủa các điểmtrênđốitượng lên trên mặtphẳng 2D thu được từ phépchiếutrựcgiaovà phépbiến đổiphốicảnh 37 38 Perspective Projections Perspective Projections z Projecting a 3D Point z Tham số: – centre of projection (COP) z We use similar triangles to project the point onto the plane – field of view (θ, φ) in the line of the eye. – projection direction – x’/x = N/-z (z in the negative direction) – up direction – y’/y = N/-z – Once projected onto a 2D plane the z coordinate is not needed. (x’,y’) (x,y,z) Nz 39 40 near plane Perspective Projections Perspective Projection Details Consider a perspective projection with the viewpoint at the origin and a viewing direction oriented along the positive -z axis and the view-plane located at z = -d ⎡ x ⎤ y y y = P ⇒ y = ⎡xP ⎤ ⎢ z d ⎥ ⎡ x ⎤ P ⎢ ⎥ z d z d ⎢ y ⎥ y ⎢ y ⎥ ⎢ P ⎥ = ⎢ ⎥ ↔ ⎢ ⎥ a similar construction for xp ⎢ z ⎥ ⎢ z d ⎥ ⎢ − z ⎥ d P ⇒ ⎢ ⎥ ⎢ − d ⎥ ⎢ ⎥ ⎣ 1 ⎦ ⎢ ⎥ ⎣z d ⎦ y ⎡ x ⎤ 1 ⎡ x ⎤ ⎡1 0 0 0⎤⎡x⎤ ⎣ ⎦ ⎡xP ⎤ ⎢ z d ⎥ ⎡ x ⎤ ⎡1 0 0 0⎤⎡x⎤ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ y ⎥ ⎢0 1 0 0⎥⎢ y⎥ yP y y 0 1 0 0 y ⎢ ⎥ ⎢ ⎥ yp ⎢ ⎥ = ⎢ ⎥ ↔ ⎢ ⎥ = ⎢ ⎥⎢ ⎥ = ⎢ ⎥ -z ⎢− z⎥ ⎢0 0 −1 0⎥⎢ z⎥ ⎢ zP ⎥ ⎢ z d ⎥ ⎢ − z ⎥ ⎢0 0 −1 0⎥⎢ z⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ PROJECTION perspective ⎢ ⎥ ⎢ − d ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ 1 0 0 0 0 1 ⎣ 1 ⎦ ⎢ ⎥ ⎣z d⎦ ⎣0 0 1 d 0⎦⎣1⎦ ⎣ ⎦ ⎣ ⎦⎣ ⎦ matrix division ⎣ 1 ⎦ Flip z to transform to a left handed co-ordinate system ⇒ increasing z values mean increasing divide by homogenous ordinate to distance from the viewer. map back to 3D space 41 42 7
- Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595 Phép chiếuphốicảnh 1 tâm phép chiếuphốicảnh 1 tâm Giả sử khi mặtphẳng được đặttại z = 0 và tâm phép chiếu y y’ nằmtrêntrục z , cách trụcz mộtkhoảng zc = -1/r. Nếu đốitượng cũng nằmtrênmặtphẳng z = 0 thì đốitượng D’ C’ ⎡1 0 0 0⎤ ⎡1 0 0 0⎤ ⎡1 0 0 0⎤ H G sẽ cho hình ảnh thật. ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ H’ G’ 0 1 0 0 0 1 0 0 0 1 0 0 DC ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ Phương trình biến đổi: = = E F ⎢0 0 1 r⎥ ⎢0 0 0 0⎥ ⎢0 0 0 r⎥ x [ x y z 1 ][ Tr ] = [ x y z rz+1 ] ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ A’ E’ F’ B x ⎣0 0 0 1⎦ ⎣0 0 0 1⎦ ⎣0 0 0 1⎦ A B ma trậnbiến đổimột điểmphốicảnh [ Tr ] có dạng: z ⎡1 0 0 0⎤ ⎡ 1 0 0 0 ⎤ ⎢ ⎥ 0 1 0 0 x y ⎢ ⎥ x y z 1 ⎢ ⎥ = x y 0 rz+1 ⎡ ⎤ ⎢ 0 1 0 0 ⎥ [] [ ][]x' y' z' 1 =⎢ 0 1⎥ [ Tr ] = ⎢0 0 0 r⎥ ⎣rz+1 rz+1 ⎦ ⎢ 0 0 1 r ⎥ ⎢ ⎥ ⎢ ⎥ 0 0 0 1 ⎣ 0 0 0 1 ⎦ ⎣ ⎦ 43 44 ⎡ x y z ⎤ []x' y' z' 1 = 1 Y’Phép chiếuphốicảnh 2 tâm ⎢ ⎥ VP (y=10) ⎣( px + qy +1) ( px + qy +1) ( px + qy +1) ⎦ VP ≡ y = 10 D’, H’C’, G’ D’ H’ C’,G’ VP( x = 10) z [ Tc ] = [ Tpq ][ Tz ] VP X=10 ⎡1 0 0 p⎤ ⎡1 0 0 0⎤ ⎡1 0 0 p⎤ A’, E’B’, F’ ⎢0 1 0 q⎥ ⎢0 1 0 0⎥ ⎢0 1 0 q⎥ A’, E’B’, F’x’ = ⎢ ⎥ ⎢ ⎥ = ⎢ ⎥ ⎢0 0 1 0⎥ ⎢0 0 0 0⎥ ⎢0 0 0 0⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎣0 0 0 1⎦ ⎣0 0 0 1⎦ ⎣0 0 0 1⎦ z 2 tâm chiếu: z [ -1/p 0 0 1 ] ⎡1 0 0 p⎤ ⎡1 0 0 p⎤ ⎢ ⎥ z [ 0 -1/q 0 1 ] 0 1 0 q ⎢0 1 0 q⎥ [T ] = ⎢ ⎥ []x y z 1 ⎢ ⎥ = [x y z ( px + qy +1) ] pq ⎢0 0 1 0⎥ ⎢0 0 1 0⎥ z VP (Vanishing point) tương ứng trên 2 trụcxvàylà ⎢ ⎥ ⎢ ⎥ ⎣0 0 0 1⎦ điểm: [ 1/p 0 0 1 ] và [ 0 1/q 0 1 ]. ⎣0 0 0 1⎦ 45 46 ⎡ x y z ⎤ []x' y' z' 1 = ⎢ 1⎥ Phép chiếuphốicảnh 3 tâm chiếu ⎣( px + qy + rz +1) ( px + qy + rz +1) ( px + qy + rz +1) ⎦ y' z [ Tpqr ] = [Tp ][Tq ][Tr ] VP ( y = 10) y' ⎡1 0 0 p⎤ ⎡1 0 0 0⎤ ⎡1 0 0 0⎤ ⎡1 0 0 p⎤ H' ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ 0 1 0 0 0 1 0 q 0 1 0 0 0 1 0 q D' = ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ = ⎢ ⎥ D' ⎢0 0 1 0 ⎥ ⎢0 0 1 0⎥ ⎢0 0 1 r ⎥ ⎢0 0 1 r ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ H' C' G' ⎣0 0 0 1 ⎦ ⎣0 0 0 1⎦ ⎣0 0 0 1⎦ ⎣0 0 0 1 ⎦ G' E' C' ⎡1 0 0 p⎤ ⎢ ⎥ VP ( x = 10 ) 0 1 0 q VP ( z = 10 ) F' []x y z 1 ⎢ ⎥ = [x y z ( px + qy + rz +1) ] A' ⎢0 0 1 r ⎥ x' ⎢ ⎥ z' 0 0 0 1 x' ⎣ ⎦ A', E' F' B' B' 47 48 8
- Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595 Đặc tính của phép chiếu phối cảnh z 3 tâm chiếu: 1. Parallel lines in 3D will – trên trụcxtại điểm [ -1/p 0 0 1 ], meet at a vanishing point – ytại điểm [ 0 -1/q 0 1 ] 2. Lines that pass behind the – ztại điểm [ 0 0 -1/r 1 ]. eye of the camera cause a z VP sẽ tương ứng vớicácgiátrị : catastropic “passage through infinity”. – [ 1/p 0 0 1 ], [ 0 1/q 0 1 ] [ 0 0 1/r 1 ] z [ Tc ] = [ Tpqr ][ Tz ] 3. Perspective projections usually produce ⎡1 0 0 p⎤ ⎡1 0 0 0⎤ ⎡1 0 0 p⎤ geometrically realistic ⎢0 1 0 q⎥ ⎢0 1 0 0⎥ ⎢0 1 0 q⎥ pictures. = ⎢ ⎥.⎢ ⎥ = ⎢ ⎥ ⎢0 0 1 r ⎥ ⎢0 0 0 0⎥ ⎢0 0 0 r ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎣0 0 0 1⎦ ⎣0 0 0 1⎦ ⎣0 0 0 1⎦ 49 50 Taxonomy of Projections Classical Projections z Perspective – Three Point M.C. Escher: Ascending and Descending Angel Figure 5.3 51 52 Phân loại các phép chiếu Viewing in OpenGL PhÐp chiÕu h×nh häc ph¼ng z OpenGL has multiple matrix stacks - transformation functions right-multiply the top of the stack PhÐp chiÕu song PhÐp chiÕu phèi c¶nh song z Two most important stacks: GL_MODELVIEW and GL_PROJECTION PhÐp chiÕu Trùc giao Mét ®iÓm z Points get multiplied by the modelview matrix first, and Xiªn then the projection matrix Axonometric z GL_MODELVIEW: Object->Camera ChiÕu Hai ®iÓm b»ng Cavalier z GL_PROJECTION: Camera->Screen Trimetric z glViewport(0,0,w,h): Screen->Device ChiÕu Cabinet Ba ®iÓm ®øng ChiÕu Dimetric c¹nh PhÐp chiÕu Isometric kh¸c 53 54 9
- Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595 OpenGL Example Stereo Projections void SetUpViewing() { z Faking depth in a 2D image // The viewport isn’t a matrix, it’s just state glViewport( 0, 0, window_width, window_height ); z Based on natural stereoscopic eye-brain system. // Set up camera->screen transformation first z Objects are not viewed with just one eye, but two glMatrixMode( GL_PROJECTION ); glLoadIdentity(); eyes. gluPerspective( 60, 1, 1, 1000 ); // fov, aspect, near, far z Each eye looks at the object from a slightly // Set up the model->camera transformation different location. glMatrixMode( GL_MODELVIEW ); gluLookAt( 3, 3, 2, // eye point 0, 0, 0, // look at point 0, 0, 1 ); // up vector glRotatef( theta, 0, 0, 1 ); // rotate the model glScalef( zoom, zoom, zoom ); // scale the model } 55 56 Stereo Projections 57 10