Bài giảng Computer graphics and virtual reality - Bài 5: Nguyên lý về 3D và phép chiếu - Projection - Lê Tấn Hùng
Nguyên lý về 3D
z Ðồ họa 3 chiều - 3D computer graphics bao gồm việc bổ
xung kích thước về chiều sâu của đối tượng, cho phép ta
biểu diễn chúng trong thế giới thực một cách chính xác
và sinh động hơn.
z Tuy nhiên các thiết bị truy xuất hiện tại đều là 2 chiều, Do
vậy việc biểu diễn được thực thi thông qua phép tô chát
– render để gây ảo giác illusion về độ sâu
z 3D Graphics là việc chyển thế giới tự nhiên dưới dạng
các mô hình biểu diễn trên các thiết bị hiển thị thông qua
kỹ thuật tô chát (rendering).
i là tuỳ ý. •Quay đối tượng quanh trục y theo một góc φ, •Quay quanh x theo một góc ψ •Chiếu trên mặt phẳng z = 0 với tâm chiếu tại điểm vô hạn 22 ϕ2222 cos)( '' =+= yyy yxf ϕφφ 222222 sincossin)( '' +=+= zzz yxf )(sin 2 1 zf±= −ϕ )(sin 2 1 2 z z f f − ±= −φ 23 Phép chiếu Isometric z Là phép chiếu trục lượng mà ở đó hệ số co cạnh trên 3 trục là bằng nhau z Góc quay tương ứng là 35.26 và 45 z Ðược ứng dụng nhiều trong việc xây dựng các góc quan sát chuẩn cho đối tượng trong các hệ soạn thảo đồ họa ϕ ϕφ 2 2 2 1 sin sinsin −= ϕ ϕφ 2 2 2 1 21 sin sinsin − −= 3 1±=ϕsin 045 026.35 ±= ±= φ ϕ 21 311 31 1 2 2 2 / / / sin sinsin =−=−= ϕ ϕφ 8165.03/2cos2 === ϕf 24 . Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595 5 25 Taxonomy of Projections z Oblique Projections 26 Parallel Projections axonometric orthographic oblique isometric 27 Taxonomy of Projections z Oblique Projections – Combine the properties of Orthographic and Axonometric – Preserves the object face; and – Gives a better sense of the 3D nature. 28 Phép chiếu xiên - Oblique z Phép chiếu Cavalier z Phép chiếu Cabinet 29 Phép chiếu Cavalier GPhép chiếu cavalier là phép chiếu xiên được tạo thành khi các tia chiếu làm thành với mặt phẳng chiếu một góc 450 ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ −−= 1000 00 0010 0001 ]''[ ba T α α sinfb f = = cos a ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ −−= 1000 00sincos 0010 0001 ][ αα ffT 30 – f = 0, β = 900 phép chiếu sẽ trở thành phép chiếu trực giao. – Còn với f = 1 kích thước của hình chiếu bằng kích thước của đối tượng => cavalier – Phép chiếu Cavalier cho phép giá trị của α biến đổi một cách tự do α = 300 và 450 Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595 6 31 Phép chiếu Cabinet – Phép chiếu xiên với hệ số co tỉ lệ f = 1/2 0 22 1 22 1 435.63) )21(1 2 1 (cos ) 1 (cos = + = + = − − f fβ 32 Oblique Projections D/2 D D D Cavalier ProjectCabinet Projection 33 Phép chiếu phối cảnh Perspective Projection z Phép chiếu phối cảnh là phép chiếu mà các tia chiếu không song song với nhau mà xuất phát từ 1 điểm gọi là tâm chiếu.Phép chiếu phối cảnh tạo ra hiệu ứng về luật xa gần tạo cảm giác về độ sâu của đối tượng trong thế giới thật mà phép chiếu song song không lột tả được. z Các đoạn thẳng song song của mô hình 3D sau phép chiếu hội tụ tại 1 điểm gọi là điểm triệt tiêu - vanishing point z Phân loại phép chiếu phối cảnh dựa vào tâm chiếu - Centre Of Projection (COP) và mặt phẳng chiếu projection plane 34 Vanishing points z Each set of parallel lines (=direction) meets at a different point: The vanishing point for this direction z Sets of parallel lines on the same plane lead to collinear vanishing points: the horizon for that plane z Easy examples – corridor – higher = further away z Good way to spot faked images 35 Điểm triệt tiêu Vanishing point 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 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 36 Perspective Projections 3-point perspective 2-point perspective 1-point perspective Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595 7 37 Phép chiếu phối cảnh 38 Phép biến đổi phối cảnh z Phép chiếu phối ca?nh của các điểm trên đối tượng lên trên mặt phẳng 2D thu được từ phép chiếu trực giao và phép biến đổi phối cảnh ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = 1000 100 0010 0001 ][ r Tr ⎥⎦ ⎤⎢⎣ ⎡ +++= 1111]1'''[ rz z rz y rz xzyx 39 Perspective Projections z Tham số: – centre of projection (COP) – field of view (θ, φ) – projection direction – up direction 40 Perspective Projections z Projecting a 3D Point z We use similar triangles to project the point onto the plane in the line of the eye. – x’/x = N/-z (z in the negative direction) – y’/y = N/-z – Once projected onto a 2D plane the z coordinate is not needed. near plane N z (x,y,z) (x’,y’) 41 Perspective Projections 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 y yp dz yy d y z y P P =⇒= -z d ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ −=⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ −↔ ⎥⎥ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎢⎢ ⎣ ⎡ − = ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ 10100 0100 0010 0001 1 1 z y x ddz z y x d dz y dz x z y x P P P divide by homogenous ordinate to map back to 3D space a similar construction for xp⇒ 42 Perspective Projection Details ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ −↔ ⎥⎥ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎢⎢ ⎣ ⎡ − = ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ dz z y x d dz y dz x z y x P P P 1 1 ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ −=⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ − 10000 0100 0010 0001 1 z y x z y x Flip z to transform to a left handed co-ordinate system ⇒ increasing z values mean increasing distance from the viewer. PROJECTION matrix perspective division Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595 8 43 Phép chiếu phối cảnh 1 tâm Giả sử khi mặt phẳng được đặt tại z = 0 và tâm phép chiếu nằm trên trục z , cách trục z một khoảng zc = -1/r. Nếu đối tượng cũng nằm trên mặt phẳng z = 0 thì đối tượng sẽ cho hình ảnh thật. Phương trình biến đổi: [ x y z 1 ][ Tr ] = [ x y z rz+1 ] ma trận biến đổi một điểm phối cảnh [ Tr ] có dạng: ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = 1000 100 0010 0001 ][ r Tr 44 y H G D C E F x A B z y’ D’ C’ H’ G’ A’ E’ F’ B x phép chiếu phối cảnh 1 tâm ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = 1000 000 0010 0001 1000 0000 0010 0001 1000 100 0010 0001 rr [ ] [ ]10 1000 000 0010 0001 1 += ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ rzyx r zyx [ ] ⎥⎦ ⎤⎢⎣ ⎡ ++= 10111''' rz y rz xzyx 45 Phép chiếu phối cảnh 2 tâm ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = 1000 0100 010 001 ][ q p Tpq [ ] [ ])1( 1000 0100 010 001 1 ++= ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ qypxzyx q p zyx Y’ VP ≡ y = 10 D’ H’ C’,G’ VP X=10 A’, E’B’, F’x’ VP (y=10) D’, H’C’, G’ VP( x = 10) A’, E’B’, F’ 46 z [ Tc ] = [ Tpq ][ Tz ] z 2 tâm chiếu: z [ -1/p 0 0 1 ] z [ 0 -1/q 0 1 ] z VP (Vanishing point) tương ứng trên 2 trục x và y là điểm: [ 1/p 0 0 1 ] và [ 0 1/q 0 1 ]. [ ] ⎥⎦ ⎤⎢⎣ ⎡ ++++++= 1)1()1()1(1''' qypx z qypx y qypx xzyx ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = 1000 0000 010 001 1000 0000 0010 0001 1000 0100 010 001 q p q p 47 Phép chiếu phối cảnh 3 tâm chiếu z [ Tpqr ] = [Tp ][Tq ][Tr ] ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = 1000 100 010 001 1000 100 0010 0001 1000 0100 010 0001 1000 0100 0010 001 r q p r q p [ ] [ ])1( 1000 100 010 001 1 +++= ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ rzqypxzyx r q p zyx 48 [ ] ⎥⎦ ⎤⎢⎣ ⎡ +++++++++= 1)1()1()1(1''' rzqypx z rzqypx y rzqypx xzyx y' x' D' H' C' G' A', E' F' B' VP ( y = 10) VP ( x = 10 ) VP ( z = 10 ) y' x'z' A' B' C' D' H' G' F' E' Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595 9 49 z 3 tâm chiếu: – trên trục x tại điểm [ -1/p 0 0 1 ], – y tại điểm [ 0 -1/q 0 1 ] – z tại điểm [ 0 0 -1/r 1 ]. z VP sẽ tương ứng với các giá trị : – [ 1/p 0 0 1 ], [ 0 1/q 0 1 ] [ 0 0 1/r 1 ] z [ Tc ] = [ Tpqr ][ Tz ] ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = 1000 000 010 001 1000 0000 0010 0001 . 1000 100 010 001 r q p r q p 50 Đặc tính của phép chiếu phối cảnh 1. Parallel lines in 3D will meet at a vanishing point 2. Lines that pass behind the eye of the camera cause a catastropic “passage through infinity”. 3. Perspective projections usually produce geometrically realistic pictures. 51 Taxonomy of Projections z Perspective – Three Point M.C. Escher: Ascending and Descending 52 Classical Projections Angel Figure 5.3 53 Phân loại các phép chiếu PhÐp chiÕu h×nh häc ph¼ng PhÐp chiÕu song song PhÐp chiÕu phèi c¶nh Mét ®iÓm Ba ®iÓm Hai ®iÓm Trùc giao PhÐp chiÕu Xiªn Cavalier Cabinet PhÐp chiÕu kh¸c ChiÕu ®øng ChiÕu c¹nh Axonometric Trimetric Dimetric Isometric ChiÕu b»ng 54 Viewing in OpenGL z OpenGL has multiple matrix stacks - transformation functions right-multiply the top of the stack z Two most important stacks: GL_MODELVIEW and GL_PROJECTION z Points get multiplied by the modelview matrix first, and then the projection matrix z GL_MODELVIEW: Object->Camera z GL_PROJECTION: Camera->Screen z glViewport(0,0,w,h): Screen->Device Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595 10 55 OpenGL Example void SetUpViewing() { // The viewport isn’t a matrix, it’s just state... glViewport( 0, 0, window_width, window_height ); // Set up camera->screen transformation first glMatrixMode( GL_PROJECTION ); glLoadIdentity(); gluPerspective( 60, 1, 1, 1000 ); // fov, aspect, near, far // Set up the model->camera transformation 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 } 56 Stereo Projections z Faking depth in a 2D image z Based on natural stereoscopic eye-brain system. z Objects are not viewed with just one eye, but two eyes. z Each eye looks at the object from a slightly different location. 57 Stereo Projections
File đính kèm:
- bai_giang_computer_graphics_and_virtual_reality_bai_5_nguyen.pdf