Nguyên lý về 3D và Phép chiếu-Projection
Khoa CNTT – DHBK Hanoihunglt@it-hut.edu.vn86825951(c) SE/FIT/HUT 20021Bài 5Nguyên lý về 3D vàPhép chiếu-ProjectionLê Tấn Hùng0913030731hunglt@it-hut.edu.vn(c) SE/FIT/HUT 20022Nguyên lý về 3DÐồ họa3 chiều - 3D computer graphics bao gồmviệcbổxungkíchthướ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.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 –render để gây ảo giác illusionvềđộsâu3D Graphics là việcchyểnthế giớitự nhiên dướidạng các môhình biểudiễn trên các thiếtbị hiểnthị thông qua kỹ thuậttôchát (rendering).(c) SE/FIT/HUT 20023Ðặc điểmcủakỹ thuật đồ hoạ 3DCó các đốitượng phứctapjhơn các đốitượng trongkhông gian 2DBao bởi các mặtphẳng hay các bề mặtCó các thành phần trong và ngoàiCác phép biến đổihìnhhọcphứctạpCác phép biến đổihệ toạđộphứctạphơnThường xuyên phảibổ xung thêm phép chiếutừkhông gian 3D vào không gian 2DLuôn phảixácđịnh các bề mặthiểnthị(c) SE/FIT/HUT 20024Các phương pháp hiểnthị 3DVớicácthiếtbị hiểnthị 2D:3D viewing positionsKỹ thuậtchiếu - projection: orthographic/perspectiveKỹ thuật đánh dấu độ sâu - depth cueingNét khuất - visible line/surface identificationTô chát bề mặt-surface renderingCắt lát - exploded/cutaway scenes, cross-sectionsThiếtbị hiểnthị 3D:Kính stereo - Stereoscopic displays*Màn hình 3D - Holograms(c) SE/FIT/HUT 20025Different views of a 3D modelShadows as depth cuesPerspective and Depth of FieldExploded/cutaway scenes(c) SE/FIT/HUT 200263D GRAPHICS PIPELINEWORLD SCENE/OBJECT3D MODELLING3D CLIPPINGPROJECTIONRASTERIZATION 2D PIXELMAP DISPLAYModelling coordinates:- world coordinate system, - object coordinate systemCamera coordinatesScreen/Window coordinatesDevice coordinatesVIEWING Khoa CNTT DHBK Hanoihunglt@it-hut.edu.vn86825952(c) SE/FIT/HUT 200273D - Modelling3D ModellingParametricPolygonalParticlesImplicit2222rzyx =++24cossin==yx(c) SE/FIT/HUT 20028Clipping 3Dview frustrumoutside view somust be clipped(c) SE/FIT/HUT 20029Viewing and Projectionviewport3d modelscamera setup(c) SE/FIT/HUT 200210Rasterization(c) SE/FIT/HUT 200211Phộp chiunh nghav phộp chiuMt cỏch tng quỏt, phộp chiu l phộp chuyn inhng imca itng trong h thng ta nchiu thnh nhngim trong h thng ta cú s chiunh hnn. nh nghav hỡnh chiunh ca itng trờn mtphng chiu c hỡnh thnh tphộp chiubi cỏc ng thng gi l tia chiu (projector) xut phỏt t mt imgiltõmchiu (center of projection) i qua cỏc imca itng giao vimtchiu (projectionplan).(c) SE/FIT/HUT 200212Cỏc bcxõydng hỡnh chiu1. itng trong khụng gian 3Dvita thc ccttheomt khụng gianxỏc nh gilviewvolume. 2. view volume cchiulờnmtphng chiu. Din tớch choỏn biviewvolumetrờn mtphng chiu ús cho chỳng ta khung nhỡn. 3. l vicỏnhx khung nhỡn vo trong mtcng nhỡn btk cho trctrờnmnhỡnh hinth hỡnh nhCắt theo viewvolumPhép chiếu trênmặt phẳng chiếuPhép biến đổi vocổng nhìn củatọa độ thiết bịtọa độ thực3Dtọa độ theo vùngcắtkhung nhìntọa độ thiếtbị Khoa CNTT – DHBK Hanoihunglt@it-hut.edu.vn86825953(c) SE/FIT/HUT 200213(c) SE/FIT/HUT 200214Phép chiếu song songParallel Projections Phép chiếu song song - Parallel Projections là phépchiếumàởđó các tia chiếusong songvớinhauhay xuấtphát từđiểmvôcùng Phân loạiphépchiếusong songdựatrênhướng của tiachiếu Direction Of Projection và mặtphẳng chiếu-projection plane Phép chiếutrực giao (Orthographic projection) là phépchiếu song song và tia chiếu vuông góc vớimặtphẳngchiếuthường dùng mặtphẳng z=0 Ứng vớimỗimặtphẳng chiếutacó1 ma trậnchiếutương ứng⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=1000000000100001][zT⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=1000010000000001][yT⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=1000010000100000][xT(c) SE/FIT/HUT 200215Phép chiếutrụclượng (Axonometric)Phép chiếutrụclượng là phép chiếumàhìnhchiếu thu đượcPhép chiếu TrimetricLà phép chiếu hình thành từ việcquaytự do đốitượng trên mộttrụchaytấtcả các trụccủahệ tọa độ và chiếu đốitượng đóbằng phép chiếu songsong lên mặtphẳng chiếu (thường là mặtphẳng z = 0) vuông góc vớitiachiếutrên cơ sở tỉ lệ co - SF của ảnh đốitượng trên mỗitrụclàkhácnhau.⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=1000101010][110010101001][''''''zzyyxxyxyxyxTU(c) SE/FIT/HUT 200216Trimetric[ U ] :là ma trận vector đơnvị củacác trụcx, y, zbấtbiến[ T ] : là ma trậnchiếutổng hợptương ứngSF- tỉ lệ co theo các trụclà:2x2xx'y'xf +=2y2yy'y'xf +=2z2zz'y'xf +=(c) SE/FIT/HUT 200217Phép chiếuDimetric]][][[][ PzRxRyT =⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡−⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡−=1000000000100001100000000001100000001000.cossinsincos.cossinsincosϕϕϕϕφφφφ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡−=100000sincossin00cos000sinsincos][ϕφφϕϕφφTLà phép chiếu Trimetric với 2 hệsố tỉ lệ co bằng nhau, giá trị thứ 3 còn lạilàtuỳ ý.•Quay đốitượng quanh trụcytheomột góc φ,•Quay quanh x theo một góc ψ•Chiếutrênmặtphẳng z = 0 vớitâmchiếutại điểmvôhạn(c) SE/FIT/HUT 200218ϕ2222cos)(''=+=yyyyxfϕφφ222222sincossin)(''+=+=zzzyxf)(sin21zf±=−ϕ)(sin212zzff−±=−φ Khoa CNTT – DHBK Hanoihunglt@it-hut.edu.vn86825954(c) SE/FIT/HUT 200219Phép chiếu IsometricLà phép chiếutrụclượngmà ởđóhệ số co cạnh trên3 trụclàbằng nhauGóc quay tương ứng là35.26 và 45Ðược ứng dụng nhiềutrongviệcxâydựng các góc quansát chuẩnchođốitượngtrong các hệ soạnthảo đồhọaϕϕφ2221 sinsinsin−=ϕϕφ222121sinsinsin−−=31±=ϕsin045026.35±=±=φϕ21311311222///sinsinsin =−=−=ϕϕφ8165.03/2cos2===ϕf(c) SE/FIT/HUT 200220. (c) SE/FIT/HUT 200221Parallel Projectionsaxonometricorthographicobliqueisometric(c) SE/FIT/HUT 200222Phép chiếuxiên-ObliquePhép chiếu CavalierPhép chiếu Cabinet(c) SE/FIT/HUT 200223Phép chiếu Cavalier` Phép chiếu cavalier là phép chiếuxiênđượctạo thành khi các tiachiếu làm thành vớimặtphẳng chiếumột góc 450⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡−−=10000000100001]''[baTααsinfbf== cos a⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡−−=100000sincos00100001][ααffT(c) SE/FIT/HUT 200224f = 0, β = 900phép chiếusẽ trở thành phép chiếutrựcgiao. Còn với f = 1 kích thướccủahìnhchiếubằng kíchthướccủa đốitượng => cavalierPhép chiếu Cavalier chophép giá trị của α biếnđổimột cách tự do α = 300và 450 Khoa CNTT – DHBK Hanoihunglt@it-hut.edu.vn86825955(c) SE/FIT/HUT 200225Phép chiếuCabinetPhép chiếuxiênvớihệ số co tỉ lệ f = 1/2 0221221435.63))21(121(cos)1(cos=+=+=−−ffβ(c) SE/FIT/HUT 200226Oblique ProjectionsD/2DDDCavalier ProjectCabinet Projection(c) SE/FIT/HUT 200227Phép chiếuphốicảnhPerspective ProjectionPhép chiếu phốicảnh là phép chiếu mà các tia chiếu không song song vớinhau mà xuất phát từ 1 điểmgọi là tâm chiếu.Phép chiếuphốicảnh tạorahiệu ứng về luậtxagầntạocảmgiácvềđộsâu của đốitượng trong thế giớithật mà phép chiếu song song không lộttảđược.Các đoạnthẳng song song củamôhình3D sauphépchiếuhộitụ tại1 điểmgọilàđiểmtriệt tiêu - vanishing pointPhân loại phép chiếu phốicảnh dựavàotâmchiếu-Centre Of Projection(COP) và mặtphẳng chiếu projection plane(c) SE/FIT/HUT 200228Vanishing pointsEach set of parallel lines (=direction) meets at a different point: The vanishing point for this directionSets of parallel lines on the same plane lead to collinear vanishing points: the horizon for that planeEasy examples corridorhigher = further awayGood way to spot faked images(c) SE/FIT/HUT 200229Điểm triệt tiêuVanishing pointNế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 pointThe number of principal vanishing points is determined by the number of principal axes cut by the projection plane. If the plane only cut the z axis (most common), there is only 1 vanishing point. 2-points sometimes used in architecture and engineering. 3-points seldom used … add little extra realism(c) SE/FIT/HUT 200230Perspective Projections3-point perspective2-point perspective1-point perspective Khoa CNTT – DHBK Hanoihunglt@it-hut.edu.vn86825956(c) SE/FIT/HUT 200231Phép chiếuphốicảnh(c) SE/FIT/HUT 200232Phép biến đổiphốicảnhPhép chiếuphốica?nhcủa cácđiểmtrênđốitượng lên trênmặtphẳng 2D thu đượctừphép chiếutrựcgiaovàphépbiến đổiphốicảnh⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=100010000100001][rTr⎥⎦⎤⎢⎣⎡+++= 1111]1'''[rzzrzyrzxzyx(c) SE/FIT/HUT 200233Perspective ProjectionsTham số:centre of projection (COP)field of view (θ, φ)projection directionup direction(c) SE/FIT/HUT 200234Perspective ProjectionsConsider a perspective projection with the viewpoint at the originand a viewing direction oriented along the positive -z axis and theview-plane located at z = -dyypdzyydyzyPP=⇒=-zd⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡−=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡−↔⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡−=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡1010001000010000111zyxddzzyxddzydzxzyxPPPdivide by homogenous ordinate tomap back to 3D spacea similar construction for xp⇒(c) SE/FIT/HUT 200235Perspective Projection Details⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡−↔⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡−=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡dzzyxddzydzxzyxPPP11⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡−=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡−100000100001000011zyxzyxFlip z to transform to a left handed co-ordinatesystem ⇒ increasing z values mean increasingdistance from the viewer.PROJECTIONmatrixperspectivedivision(c) SE/FIT/HUT 200236Phép chiếuphốicảnh 1 tâmGiả sử khi mặtphẳng được đặttại z = 0 và tâm phép chiếunằmtrêntrục z , cách trụcz một khoảng zc = -1/r.Nếu đốitượng cũng nằm trên mặtphẳng z = 0 thì đốitượng sẽ chohình ảnh thật. Phương trình biến đổi: [ x y z 1 ][ Tr ] = [ x y z rz+1 ] ma trậnbiến đổimột điểmphốicảnh [ Tr ] có dạng:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=100010000100001][rTr Khoa CNTT – DHBK Hanoihunglt@it-hut.edu.vn86825957(c) SE/FIT/HUT 200237yH GDCE F xA Bzy’D’ C’H’ G’A’ E’ F’ B xphép chiếuphốicảnh 1 tâm⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=1000000001000011000000000100001100010000100001rr[] [ ]101000000001000011 +=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡rzyxrzyx[]⎥⎦⎤⎢⎣⎡++= 10111'''rzyrzxzyx(c) SE/FIT/HUT 200238Phép chiếuphốicảnh 2 tâm⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=10000100010001][qpTpq[] [ ])1(100001000100011 ++=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡qypxzyxqpzyxY’VP ≡ y = 10D’ H’C’,G’VPX=10A’, E’B’, F’x’VP (y=10)D’, H’C’, G’VP( x = 10)A’, E’B’, F’(c) SE/FIT/HUT 200239[ Tc ] = [ Tpq ][ Tz ]2 tâm chiếu:[ -1/p0 0 1 ][ 0 -1/q0 1 ] VP(Vanishing point) tương ứng trên2 trụcxvàylàđiểm: [ 1/p0 0 1 ] và[ 0 1/q0 1 ].[]⎥⎦⎤⎢⎣⎡++++++= 1)1()1()1(1'''qypxzqypxyqypxxzyx⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=10000000010001100000000010000110000100010001qpqp(c) SE/FIT/HUT 200240Phép chiếuphốicảnh 3 tâm chiếu[ Tpqr ] = [Tp ][Tq ][Tr ]⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=1000100010001100010000100001100001000100001100001000010001rqprqp[] [ ])1(10001000100011 +++=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡rzqypxzyxrqpzyx(c) SE/FIT/HUT 200241[]⎥⎦⎤⎢⎣⎡+++++++++= 1)1()1()1(1'''rzqypxzrzqypxyrzqypxxzyxy'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'(c) SE/FIT/HUT 2002423 tâm chiếu: trên trụcxtại điểm[ -1/p0 0 1 ],ytại điểm[ 0 -1/q0 1 ]ztại điểm[ 0 0 -1/r1 ]. 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 ][ Tc ] = [ Tpqr ][ Tz ]⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=10000000100011000000000100001.1000100010001rqprqp Khoa CNTT DHBK Hanoihunglt@it-hut.edu.vn86825958(c) SE/FIT/HUT 200243Phõn loi cỏc phộp chiuPhép chiếu hình họcphẳngPhép chiếu songsongPhép chiếu phối cảnhMột điểmBa điểmHai điểmTrực giaoPhép chiếuXiênCavalierCabinetPhép chiếukhácChiếuđứngChiếucạnhAxonometricTrimetricDimetricIsometricChiếubằng . 20021Bài 5Nguyên lý về 3D v Phép chiếu-ProjectionLê Tấn Hùng0913030731hunglt@it-hut.edu.vn(c) SE/FIT/HUT 2002 2Nguyên lý về 3D Ðồ họa3 chiều - 3D computer. SE/FIT/HUT 20022 2Phép chiếuxiên-Oblique Phép chiếu Cavalier Phép chiếu Cabinet(c) SE/FIT/HUT 20022 3Phép chiếu Cavalier` Phép chiếu cavalier là phép chiếuxiênđượctạo