Tìm hiểu kỹ thuật tạo bóng cứng Shadow Mapping (Đồ án tốt nghiệp)

48 149 0
Tìm hiểu kỹ thuật tạo bóng cứng Shadow Mapping (Đồ án tốt nghiệp)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tìm hiểu kỹ thuật tạo bóng cứng Shadow MappingTìm hiểu kỹ thuật tạo bóng cứng Shadow MappingTìm hiểu kỹ thuật tạo bóng cứng Shadow MappingTìm hiểu kỹ thuật tạo bóng cứng Shadow MappingTìm hiểu kỹ thuật tạo bóng cứng Shadow MappingTìm hiểu kỹ thuật tạo bóng cứng Shadow MappingTìm hiểu kỹ thuật tạo bóng cứng Shadow MappingTìm hiểu kỹ thuật tạo bóng cứng Shadow MappingTìm hiểu kỹ thuật tạo bóng cứng Shadow MappingTìm hiểu kỹ thuật tạo bóng cứng Shadow MappingTìm hiểu kỹ thuật tạo bóng cứng Shadow MappingTìm hiểu kỹ thuật tạo bóng cứng Shadow Mapping

-o0o - ISO 9001:2008 TÌM HI U K THU T T O BÓNG C NG SHADOW MAPPING Sinh viên th c hi n: Giá Mã s sinh viên: PGS.TS 1351020027 H I PHÒNG - 2013 án t t nghi p p H i Phòng Em xin g i l i c i th y cô khoa Công ngh thông i h c Dân L p H i Phòng, nh nd y d cho chúng em nh ng ki n th c b ích quý giá su t c qua, nh cho chúng em hành trang i Em xin g i l i c c t i th y n tình ch b ng d n chúng em th c hi n t t nghi p Chúng em xin g i l i c i án t t n bè, h ng ch c cho ti n n chúng em su t nh ng c gian kh , g ng viên to l n v tinh th n v t ch chúng em có th hồn thành t t án t t nghi p - CT1301 án t t nghi p p H i Phòng M CL C ÁNH SÁNG VÀ BÀI 1.1 1.1.1 1.1.2 1.1.3 tion) 10 1.1.4 11 1.1.5 13 1.1.6 tion) 14 1.2 15 1.2.1 (Z-Buffer) 15 1.2.2 Stencil Buffer) 16 1.3 ng 17 1.3.1 17 1.3.2 19 1.3.3 20 1.3.4 21 VÀ 23 2.1 23 2.1.1 23 2.1.2 23 2.1.3 25 2.2 26 2.3 27 2.4 35 2.5 36 - CT1301 án t t nghi p p H i Phòng 37 3.1 Bài toán 37 37 3.2 38 3.3 39 39 42 .45 - CT1301 án t t nghi p p H i Phòng U Trong th c t i c m nh n th gi i b ng giác quan c a M t v t th có th c c m nh n b ng xúc giác qua s s mó hay c c m nh n b ng mùi qua kh u giác , nhiên m t ch ng m c nói c m nh n v t th ng th giác qua màu s m, hình d ng, i m t c m nh , tr c quan rõ ràng nh t Vì v y n u có th xây d c v t th , hi ng th gi i th c s cung c i dùng m t cách ti p c n b ng th giác tr v mà h h a máy tính m t lãnh v c phát tri n nhanh nh t tin h c c áp d ng r ng rãi nhi u lãnh v c khác thu c v khoa h c, k ngh , y khoa, ki n trúc gi i trí c H c vi n Công ngh i tn h a 3D b ng vi c phát minh thi t b hi n th u (headu n b u tiên Nó i nhìn có th th c hình i d ng l p th 3D T h a 3D tr thành m t nh c phát tri n r c r nh t h a máy tính V i cơng ngh ph n c ng máy tính hi n nay, h n ch nv ph n c ng c h a ba chi u ph c gi i quy t, v y cơng ngh v h a ba chi c quan tâm phát tri n th gi ng d ng c h a ba chi u có th ck H tr thi t k : M t nh ng ng d ng c h a ba chi u máy tr thi t k Max, Maya, Poser, c s d ng cho công vi t k nhà c a, qu n giao thơng, d ng c , mơ hình c - CT1301 án t t nghi p p H i Phòng Giáo d o sinh h c, hóa h c, v t lý h c, mơ ph b n ng ( th c t i o) : mô ph ng tr , lái xe, lái máy bay, Gi i trí ngh thu t t k m thu t, t o mơ hình cho vi c quy ho o d ng hi u ch nh ki n trúc c a cơng trình, cho phép quan sát nhi có m t nhìn t ng quan v cơng trình t nh s a phù h h a ba chi u giúp t i trí; h tr k x n nh V quan tr ng c h a ba chi u hi n làm th th hi n hình nh c a th gi i lên hình máy tính m t cách trung th c nh t Xu t phát t v án c a em xây d ng g KI N TH H A 3D VÀ T O BÓNG 3D, b phép ki m tra, v bi u di c m phép bi m i K THU T T O BÓNG C NG SHADOW MAPPING v Shadow Mapping d ng ngu n sáng C NGHI M - CT1301 án t t nghi p p H i Phòng 1: KHÁI QUÁT V H A CHI U VÀ BÀI TOÁN T O BÓNG 1.1 Khái quát v h a chi u 1.1.1 Gi i thi u Hình c xu t hi n có chi u cao, chi u r ng chi g i chi u 3D(three-dimensional) c nh v i t Cùng v i t ng c a camera th gi i nh v trí nh vùng nhìn (là m t c c hi n th hình) Vi c chuy n t t c: th gi i sang t c th c hi n theo c th 1: Th c hi n m t phép bi o tr v v trí ng tiêu chu m nhìn (eyepoint) s t g ct , ng nhìn trùng v ng âm c a tr c Z Tr c X ch v phía ph i tr c Y ch lên phía hình H t m i s c g i H t M t (Eye Coordinate System) Phép bi it t th gi i sang t a m t m t phép bi c g i phép bi i hi n th (Viewing Transformation) C t th gi i t m c bi u di n b i t ng nh t (Homogeneous Coordinates) v i w=1 c th 2: T t m t kh i l m g m c chuy n qua t c a thi t b chu n hóa cho vùng khơng gian mà ta mu n nhìn n: có thành ph n z nh - CT1301 án t t nghi p c g p H i Phòng c con: M t phép chi u chuy n t vùng nhìn sang kh i l v it ng nh t: x 1, y 1, z n ng h p s d ng phép chi u tr c giao, vùng nhìn s có d ng m t ng song song 3D v i m t song song v i m t c a h t m ng h p s d ng phép chi i x ng, vùng nhìn s m t hình tháp c t v u mút g c t c ah t m t H t ng nh t (4 thành ph c sau phép chi c g i h t c t (Clipping Coordinate System) Phép chi u s m t phép bi ng h p phép chi u phép chi u tr c giao N u phép chi u phép chi u ph i c nh s không ph i m t phép bi n i affine (Vì w s nh n m t giá tr khác 1) c ti p theo, vùng c a không gian hi n th mà không n m kh i tiêu chu c g i kh i nhìn tiêu chu n) s b c t ng th c ch a ho c có m t ph n s ch ph n n m kh i nhìn tiêu chu n m c gi l i Ph n l i không c n quan tâm nhi u n a Sau c t g t, t ng nh t s c chuy n sang t c a thi t b b ng cách chia x,y,z cho w N u w nh n giá tr u, phép chia s ng ph i c nh mong mu n hình Vì lý c g i phép chia ph i c nh (Perspective Division) c th a 3: Phép bi i c ng nhìn (Viewport Transformation) s k t h p c a phép co giãn n tính phép t nh ti n S chuy n thành ph n x y c a t thi t b chu n hóa x 1, y sang t Pixel c a hình Thành ph n z ( z c chuy n [0,1] s cs d chi u sâu (Depth-Value) thu t toán Z-Buffer (b c s d ng cho vi nh m t s c hi n th - CT1301 án t t nghi p p H i Phòng Hình 1.1: T ng quan v hi n th 3D phép chi u - CT1301 án t t nghi p 1.1.2 Bi u di p H i Phòng m phép bi i S chuy it t th gi i sang t c a thi t b m t chu i phép bi i affine phép chi u không gian Decarts chi u Các phép bi i affine phép chi u khơng gian Decarts chi u có th c bi u di n t t nh t b i ma tr ng v i t ng nh i m 3D v i t ng nh t (x,y,z,w) s affine (x/w,y/w,z/w) M i quan h gi a t affine t ng nh t không ph i quan h 1n nh chuy n t t affine (x,y,z) c a m m sang t ng nh t w=1: (x,y,z,1) Chúng ta th a nh n r ng t t c t th gi c bi u di n b ng cách Ta s bi u di n phép bi transformations), phép quay (rotations), phép t nh ti n (translations)) b ng ma tr n mà s i thành ph n w (w=1) T nh ti n b T (Tx , Ty , Tz ) : S (S x , S y , S z ) c t { }, tr c giao t ng - CT1301 t, s n t c c chuy n v { X , Y , Z } án t t nghi p p H i Phòng / / Nhúng màu s c ánh sáng color = saturate(color); } } } / / M u màu s k t c u ph i h p v trí m nh t k t c u b ng cách s d ng m u textureColor = shaderTexture.Sample (SampleTypeWrap, input.tex); / / K t h p ánh sáng k t c u màu s c color = color * textureColor; return color; } - CT1301 33 án t t nghi p p H i Phòng a b c d e Hình 2.6: Hình (a): m nhìn Hình (b) : Khung B B f ct c chi u lên khung c trí c a Hình (c) : Hình (d): c nhìn t m t(giá tr A) (Giá tr B ) Hình (f) : c v sau phép ki m Hình (e): tra chi u sâu gi a (d) (e) - CT1301 34 án t t nghi p p H i Phòng 2.3 Chuy n t Ta ph nh chuy n t hi n th ánh sáng c am Hình 2.7: Các h t mt h t c am tv t a ma tr n bi u tiên ta ph i chuy n t h t m h t th gi i b ng ma tr n ngh hi n th ma tr n VEV ph t h t sáng b ng ma tr n hi n th c Kí hi u ma tr n VLV i o c a ma tr n bi th gi i v h t i u c a ánh Ti p theo th c hi n phép chi u thích h p (Phép chi u tr c giao) h t thi t b tiêu chu n PS Cu i th c hi n phép bi [0,1] v i ma tr n S là: - CT1301 ic [-1,1] v 35 án t t nghi p p H i Phòng y ma tr mt h t th c a ánh sáng s c am tv t hi n : T = S PS VLV VEV 2.4 Nh n xét c áp d ng th gi i có v t d ng th y tinh b m n, m c dù có th c v t th ph c t a bóng ph thu c vào c shadow map nên n u mu n bóng ch ng cao ph i t n b nh c texture m: Do trình t render v t ch n sáng v c m t cong, m t hình h c ph c t p ng nên có th su m c m: T n thêm th i gian cho trình render shadow map Th i gian xoá frame buffer Th i gian chép d li u t frame buffer sang b nh (c CPU GPU ph ng th i x lý) Ch ng bóng ph thu c vào k trình render v t ch n sáng t o shadow map k c c a v t ch n sáng c texture làm shadow map, xa g n c a b m bóng, Th i gian render bóng ph thu c vào v t h ng bóng Khơng có kh Có hi bóng lên v t th ch n sáng c - CT1301 36 án t t nghi p p H i Phòng NGI M 3.1 Bài tốn Thu - , ) nh hính ánh sáng 3.2 Phân tích thi t k 3.2.1 Microsoft Visual Studio m t ng phát tri n tích h p (IDE) t Microsoft cs d phát tri n giao di u n giao di n h a ng d ng v i Windows Forms, trang web , ng d ng web , d ch v web c mã ngu n g c v i mã s qu n lý cho t t c n n t c h tr b i Microsoft Windows , Windows Mobile ,Windows CE , NET Framework , NET Compact Framework Microsoft Silverlight Visual Studio bao g m m t trình biên t p mã h tr IntelliSense refactoring code Là công c cho phép b n vi t mã, g r i biên d ch u ngôn ng l p trình NET khác c xây d ng b ng ngôn ng bao g m C /C + + (thông qua Visual C + + ), VB.NET (thông qua Visual Basic.NET ), C # (thông qua Visual C # ), F # H tr cho ngôn ng M , Python , c a Ruby s nh i khác có s n thơng qua d ch v ngơn ng t riêng r Nó tr XML / XSLT , HTML / XHTML , JavaScript CSS - CT1301 37 án t t nghi p p H i Phòng Microsoft Visual C++ c g i MSVC) m t s n ph m Môi ng phát tri n tích h p (IDE) cho ngơn ng l p trình C, C++, C++/CLI c aMicrosoft Nó có cơng c cho phát tri n g l i mã ngu c bi t mã ngu n vi t cho Microsoft Windows API, DirectX API, vàMicrosoft.NET Framework Các ch tô sáng cú pháp, IntelliSense (ch c t ng hoàn thành vi c vi t mã) ch l i tiên ti n ch xây d ng h th n biên d ch t (header files) liên k t t nh ti n (incremental link) - ch liên k t nh ng ph n b i trình xây d ng ph n m m mà không làm l it u: Nh m t ng th i gian biên t p, biên d ch liên k nm c bi i v i nh án ph n m m l n 3.2.2 #pragma comment(lib, "opengl32.lib") #pragma comment(lib, "glu32.lib") #pragma comment(lib, "winmm.lib") camera.Init(VECTOR3D(-2.5f, 3.5f,-2.5f)); light.Init(VECTOR3D(2.0f, 3.0f, -2.0f), VECTOR3D(0.0f,-0.5f, 0.0f)); light.SetClipDistances(2.0f, 8.0f); light.UpdateMatrices(); int height; if (window.height==0) height=1; else height=window.height; glViewport(0, 0, window.width, height); - CT1301 38 án t t nghi p p H i Phòng glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(45.0f, (GLfloat)window.width/(GLfloat)height, 1.0f, 500.0f); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); window.Update(); currentInteractor->Update(); / if(window.isKeyPressed('C')) currentInteractor=&camera; if(window.isKeyPressed('L')) currentInteractor=&light; if(window.isKeyPressed('T')) objectType=TORI; if(window.isKeyPressed('B')) objectType=SPHERES; 3.3 M ts h n: n Camera o) - CT1301 39 án t t nghi p p H i Phòng (Frustum) c vòng ) ho u tiên ta thi t l p m t phép chi u ph i c nh v i tâm ngu n sáng Phép chi u chi u v t ch n sáng lên m t m t ph ng o gi a ngu n sáng v t th t o shadow map c a v t th Hình 3.1: Chi u Shadow Map - CT1301 40 án t t nghi p p H i Phòng th c hi n phép chi th t a có g c ngu n sáng tr ng v phía v t ch n sáng Tr c Z c ah t s ng tâm c a phép chi m t ph ng t o b i tr c Xnh tr c c a m t ph ng o mà chi u chuy n v t ch n sáng sang h t ngu n sáng ta có th chi u lên m t ph ng o m t cách d dàng render m t h t b t k , c n ph i bi t cg c tr c c a Trong h t ngu c g c ngu n sáng , tr c l cg il t Xlight, Ylight, Zlight, t t c vector l u thu c v h t th gi i th c Hình 3.2: H t ngu n sáng render m t h t b t k , c n ph i bi cg c tr c c a Trong h t ngu c g c ngu n sáng , tr c l cg il t Xlight, Ylight, Zlight, t t c vector l u thu c v h t th gi i th c - CT1301 41 án t t nghi p p H i Phòng S F c render m i giây V c t o bóng M t ph ng nh n bóng Kích th Hình 3.3: ct ov cb cc ab bóng bóng 512 , ph i tính tốn nhi u - CT1301 42 án t t nghi p Hình 3.4: p H i Phòng ct ov cb bóng 256 - CT1301 43 án t t nghi p Hình 3.5: p H i Phòng ct ov cb render m - CT1301 bóng 128 c 101 44 án t t nghi p p H i Phòng PH N K T LU N M i án án m t trình tìm hi t kinh nghi m c a m i ng án, sau phân tích, tìm hi u chung v sung thêm cho nhi u ki d ng c nh ng ki n c t , trình làm i iv ng c t hình, ki m m Tuy nhiên dùng b ý giá ng c c nh ng xây d ng mơ hình th án i thi u v Sau m t trì án v i s ch d n nhi t tình c a th y giáo h ng d c cách tìm hi m tv khoa h c m i Trong th án t t nghi p, m c dù b n t n l c, c g u t nhi u th i gian, c tìm hi c s ch b nh h ng t n tình c a th y giáo h ng d n anh, ch c nh v m t th c tìm ki m tài li v m t ki ab n thân, nên ch c k t qu th c s hồn h o Kính mong th y cô giáo b ng phát tri n: án c mô ph v it phát tri c m ts a b Nh ng hi n a ngành công ngh i c n ph i, mô ph ng thêm m t s thu a - CT1301 45 án t t nghi p p H i Phòng Ti ng Vi t L , Nguy n Thanh Th y ( 1999), Nh p môn X lý nh s , Nhà xu t b n Khoa h t, Hà N i Tr n Thanh Hi u ngôn ng lu n t t nghi i h c, Khoa Công ngh c Qu c gia, Hà N i nH h a, Nhà xu t b n Khoa h Nguy n H nghi i h c, Khoa Cơng ngh - i ( 2006), Giáo trình Lý thuy t, Hà N i nt t c Qu c Gia, Hà N i t Bình (2008), Giáo trình X lý nh, Nhà xu t t, Hà N i b n Khoa h Ti ng Anh Development in RealColumbia Convention 2001, http://developer.nvidia.com/attach/1308, 2003-11-01 ddison Wesley Publisher Computer Graphics 12(8), pp 270-274 - CT1301 46 án t t nghi p p H i Phòng Presentation: http://developer.nvidia.com/view.asp?IO=cedec_shadowmap 12 Everitt, CassRege, Ashu Cebenoyan, Cem (2003), Hardware Shadow Mapping, http://developer.nvidia.com/attach/5708, 2003-12-17 13 Ikrima Elhassan ( 2007), Shadow Algorithms, 20-02-2007 - CT1301 47 ... t v án c a em xây d ng g KI N TH H A 3D VÀ T O BÓNG 3D, b phép ki m tra, v bi u di c m phép bi m i K THU T T O BÓNG C NG SHADOW MAPPING v Shadow Mapping d ng ngu n sáng C NGHI M - CT1301 án t... sáng ph n x Ánh sáng t i Hình 2.2: S ph n x khơng tồn ph n c a ánh sáng Trong hình 2.2 th hi n s ph n x ánh sáng khơng tồn ph m nét c a tia ánh sáng t i th hi m nh c a tia ph n x th hi sáng th p... p p H i Phòng 2: K THU T T O BÓNG C NG SHADOW MAPPING VÀ CÁC LO I NGU N SÁNG 2.1 Các lo i ngu n sáng 2.1.1 Ngu n sáng xung quanh Ánh sáng xung quanh m c sáng trung bình, t n t i m t vùng không

Ngày đăng: 27/02/2018, 09:46

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan