1. Trang chủ
  2. » Công Nghệ Thông Tin

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

48 150 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 48
Dung lượng 6,68 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 2

Em xin g i l i c i các th y cô khoa Công ngh thông

d cho chúng em nh ng ki n th c b ích và quý giá trong su t 4

c qua, nh cho chúng em hành trang

i.

n tình ch b ng d n chúng em th c hi n t t án t t

h ng ch c cho ti n tuy n chúng em trong su t nh ng

l n v tinh th n và v t ch chúng em có th hoàn thành t t

án t t nghi p này.

Trang 3

M C L C

4

ÁNH SÁNG VÀ BÀI 6

1.1 6

1.1.1 6

1.1.2 9

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

Trang 4

37

3.1 Bài toán 37

37

3.2 .38

3.3 39

3 39

42

45

Trang 5

Trong th c t i c m nh n th gi i b ng các giác quan c a mình M t v t th có th c c m nh n b ng các xúc giác qua s s mó hay

c c m nh n b ng mùi qua kh u giác , tuy nhiên trong m t ch ng m c nào

các v t th , hi ng trong th gi i th c thì s cung c i dùng m t

h a máy tính là m t lãnh v c phát tri n nhanh nh t trong tin h c

c áp d ng r ng rãi trong nhi u lãnh v c khác nhau thu c v khoa h c,

chính vì v y các công ngh v h a ba chi c quan tâm và

H tr thi t k : M t trong nh ng ng d ng c h a ba chi u trên máy

c s d ng cho các công vi t k nhà c a,

qu n giao thông, các d ng c , các mô hình và c con

Trang 6

Giáo d o ng ( th c t i o) : mô ph ng sinh h c, hóa h c, v t lý h c, mô ph tr , lái xe, lái máy bay, các b n

Gi i trí và ngh thu t t k m thu t, t o mô hình cho

vi c quy ho o d ng và hi u ch nh ki n trúc c a các công trình, cho phép quan sát nhi có m t cái nhìn t ng quan v công

Trang 7

1: KHÁI QUÁT V H A 3 CHI U VÀ BÀI TOÁN T O BÓNG.

1.1 Khái quát v h a 3 chi u.

ch lên phía trên trong màn hình H t m i này s c g i là H t

M t (Eye Coordinate System) Phép bi i t t th gi i sang các t a

m t là m t phép bi c g i là phép bi i hi n th

di n b i t ng nh t (Homogeneous Coordinates) v i w=1

cho vùng không gian mà ta mu n nhìn

Trang 8

i affine (Vì w s nh n m t giá tr khác 1)

c ti p theo, các vùng c a không gian hi n th mà không n m trong

ng th c ch a trong ho c là có m t ph n trong

l i Ph n còn l i không c n quan tâm nhi u n a

Sau khi c t g t, các 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 1 giá tr u, thì phép chia này s ng ph i c nh mong mu n trên màn hình Vì lý

c g i là phép chia ph i c nh (Perspective Division)

c th a 3: Phép bi i c ng nhìn (Viewport Transformation) là s

k t h p c a 1 phép co giãn tuy n tính và 1 phép t nh ti n S chuy n thành

ph n x và y c a t thi t b chu n hóa 1 x 1 , 1 y 1 sang t Pixel

c s d chi u sâu (Depth-Value) trong thu t toán Z-Buffer

Trang 9

Hình 1.1: T ng quan v hi n th 3D và các phép chi u.

Trang 10

ng nh t (x,y,z,w) s affine là (x/w,y/w,z/w).

M i quan h gi a t affine và t ng nh t không ph i là quan

sang t ng nh t w=1: (x,y,z,1) Chúng ta th a nh n r ng t t ccác t th gi c bi u di n b ng cách này

{ }, tr c giao t ng t, s c chuy n v {X,Y,Z }.

Trang 11

M t cách thu n ti nh v trí c a camera o là cho sãn v trí

c m nhìn E, M m trong khung nhìn R m tham chi u) và m t

ng s ch lên phía trên trong màn hình

Trang 12

R E

R E

n V

n V

1.1.4 Phép chi u tr c giao (Orthographic Projection)

ng h p phép chi u tr c giao, vùng không gian hi n th là

m t ng song song trong h t m t Các m t c a ng song song này song song v i các m t c a h t m c và v trí c a vùng không gian

hi n th nh b i t m t xleft, xright, ybottom, ytop, zfront và

nh m t c a s trong m t ph ng chi u (ho c là b t k m t nào song song v i m t XY) mà vùng không gian

mu n nhìn) ph i th a mãn zback z zfront Kho ng giá tr c a z ph i

các giá tr chi u sâu (depth value) n n [-1,+1] Các

m g n m có giá tr chi u sâu nh

Trang 13

Hình 1.3:Vùng không gian hi n th c a phép chi u tr c giao

Phép chi u tr c b ng cách th c hi n các phép bi i sau theo th t :

Trang 14

Thành ph i, b i vì phép chi u tr c giao là m t phép

bi i affine Phép chi c s d ng trong các ng d ng c n các

1.1.5 Phép chi u ph i c nh (Perspective Projection)

(b ng m t m t) trong th gi i 3D T t c m trên m ng th

ánh x vào cùng m m trên màn hình, ta c n ph m nào s

Trang 15

Hình 1.4: Vùng không gian hi n th c a phép chi u ph i c nh cân

x ng (Symmetrical Perspective Projection)

Trang 16

1.2 B m và các phép ki m tra.

Màn hình là m t m ng hình vuông c a các

v các pixel này, ta c n ph i bi c màu s c c a chúng là gì,

Buffer)

b m (Buffer) Các b m khác nhau s li u khác nhau

Trang 17

1.2.1 B m chi u sâu (Z-Buffer).

Khái ni m: Là b m l u tr giá tr chi u sâu cho t

c dùng trong vi các b m t n Gi s m sau các phép chi u

Chính vì v y nên ta g i b m này là Z-buffer

Depth test: V i m i pixel trên màn hình, b m chi u sâu l u kho ng

sâu thì c coi là qua Depth test (depth test pass) và giá tr chi u sâu c a c thay th cho giá tr l u trong b m N u giá tr chi u sâu

ki m tra chi u sâu (Depth test Fail)

1.2.2 B m khuôn (Stencil Buffer).

a m t v t th qua g

Stencil Test: Phép ki m tra Stencil ch c th c hi m

luôn pass) Phép ki m tra Stencil s so sánh giá tr l

m t Pixel v i m t giá tr tham chi u theo m t hàm so sánh cho tr OpenGL cung c p các hàm nh là GL_NEVER, GL_ALWAYS, GL_LESS,GL_LEQUAL, GL_EQUAL, GL_GEQUAL, GL_GREATER hay làGL_NOTEQUAL Gi s hàm so sánh là GL_LESS, m

c coi là qua phép ki m tra (pass) n u nh giá tr tham chi u

Ngoài ra OpenGL còn h tr m t hàm là:

Trang 18

nh d li u trong stencil Buffer s i th nào n u

i gi nguyên giá tr hi , thay th i 0, thay th

i m t giá tr tham chi m giá tr

Trang 19

Hình 1.5: Bóng cung c p thông tin v v i c a v t th V i

nh bên trái ta không th bi c v trí c a con r i l t 3

nh bên ph i ta th y v kho ng cách c a chúng so v i m t xa d n

Hình 1.6:Bóng cung c p thông tin v d ng hình h c c a m t ti p nh n Hình bên trái ta không th bi c d ng hình h c c a m t ti p nh n, còn m t bên ph i thì d dàng th c.

Trang 20

Hình 1.7:Bóng cung c p thông tin v d ng hình h c c a con r i Hình bên trái con r i c gi a nó c m cái vòng, và bên ph i nó

c chi u sáng (0) Chúng ch hi n th duy nh t ph n bóng c a bóng Các thu t toán t o bóng m m hi n th vùng n

i x lý tính toán ph n m.(K t qu t s phân b ánh sáng b t quy t c trong vùng n a bóng)

Trang 22

s c t vào c a s (màn hình) và ch m vào v t th trong không gian (g n nh t

Trang 24

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 là m c sáng trung bình, t n t i trong m t vùng

chúng ta Nó bao g m m t t p các tia sáng song song, b t k c a

Trang 25

ph n x th hi sáng th p Nói chung, khi b m t là không ph n x

toàn ph c a ánh sáng ph n x (hay t m g i là tia ph n x ) luôn

c a ánh sáng t i (hay g i là tia t c a tia ph n x còn t l v i góc gi a tia t i v i vector pháp tuy n c a b m t,

n u góc này càng nh ng ph n x càng cao, n u góc này l n thì

khuy ch tán và t m b qua hi ng ph n x toàn ph cho ti n trong

vi c tính toán ta t ng c a tia t i th c s , v y bây gi ng c a tia

Trang 26

N u g a tia t i v i vector pháp tuy n c a b m t thì thu c vào tia t i a và vector pháp tuy n c a m t n theo công th c:

=

n a

n a

z0-plz), hay tia t i: a = (plx - x0, ply - y0,plz - z0)

Trang 27

V y v i ngu n sáng nh h ng, chúng ta c n tính tia t i cho m i i m trên m t, t k t h p v i vector pháp tuy n c a m t tính c c ngsáng t i m n u tính toán tr c ti p thì có th m t khá nhi u th i gian

do ph i tính vector a và tính Cos( ) thông qua công th c (2.1) v i t t c các

m trên m t Nên nh r ng trong tình h ng ngu n sáng m thì chúng ta

bu c lòng ph i tính Cos( ) thông qua công th c (2.1) vì vector a s thay ikhi m t hay ngu n sáng thay i (tr khi m t song n u m t nh vàngu n sáng c nh thì suy ra chúng ta ch c n tính c ng sáng m t

Trang 28

Hình 2.3: Chi u Shadow Map

2.3 Thu t toán.

sáng ra màn hình

sâu trong Z-buffer vào trong b sâu Các giá tr

float4 position : SV_POSITION;

float4 depthPosition : TEXTURE0;

Trang 29

// Tính toán v trí c nh so v i t th gi i, xem và chi u.

output.position = mul(input.position, worldMatrix);

output.position = mul(output.position, viewMatrix);

output.position = mul(output.position, projectionMatrix);

các giá tr v trí trong m t giá tr u vào th tính toán giá tr chi u sâu.

output.depthPosition = output.position;

return output;

}

Trang 30

float4 position : SV_POSITION;

float4 depthPosition : TEXTURE0;

// L y giá tr chi u sâu c m nh.

depthValue = input.depthPosition.z / input.depthPosition.w;

toàn b khung c nh t v trí c m nhìn(camera)

Trang 31

T này chính là t nh giá tr sâu khi th c hi n depth test Gi s m này khi chuy n sang s là

Trang 32

Hình 2.5: A > c chi u sáng

+Code: chuy n t sang h t c a ánh sáng

// Tính toán v trí c a các nh xem b i ngu n sáng.

output.lightViewPosition = mul(input.position, worldMatrix);

Trang 33

// Tính toán v trí c nh theo t th gi i.

worldPosition = mul(input.position, worldMatrix);

nh v trí ánh sáng d a trên v trí c a ánh sáng và v trí c a

nh theo t th gi i.

output.lightPos = lightPosition.xyz - worldPosition.xyz;

// Chu n hóa các vector tho v trí ánh sáng.

nh màu khu ch tán cu i cùng d a trên các màu

Trang 34

/ / Nhúng màu s c ánh sáng.

color = saturate(color);

} }

Trang 36

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

[0,1] v i ma tr n S là:

Trang 37

m: T n thêm th i gian cho quá trình render shadow map.

Th i gian xoá frame buffer

Th i gian sao chép d li u t frame buffer sang b nh chính (c CPU

Trang 38

Microsoft Visual Studio là m t ng phát tri n tích h p (IDE)

t Microsoft c s d phát tri n giao di u khi n và giao di n

h a ng d ng cùng v i Windows Forms, các trang web , các

ng d ng web , và các d ch v web trong c mã ngu n g c cùng v i mã s

Windows , Windows Mobile ,Windows CE , NET Framework , NET Compact Framework và 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 và biên d ch

u ngôn ng l p trình NET khác nhau

c xây d ng b ng các 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

# ), và F # H tr cho các ngôn ng M , Python , và 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ó

Trang 39

Microsoft Visual C++ c g i là MSVC) là m t s n ph m Môi

ng phát tri n tích h p (IDE) cho các ngôn ng l p trình C, C++,

và C++/CLI c aMicrosoft Nó có các công c cho phát tri n và g l i mã

Windows API, DirectX API, vàMicrosoft.NET Framework

t ng hoàn thành vi c vi t mã) và các ch l i tiên ti n

t (header files) và liên k t t nh ti n (incremental link) - ch liên

k t nh ng ph n b i trong quá trình xây d ng ph n m m mà không làm

án ph n m m l n

#pragma comment(lib, "opengl32.lib")

#pragma comment(lib, "glu32.lib")

#pragma comment(lib, "winmm.lib")

Trang 41

Phép chi u này chi u v t ch n sáng lên trên m t m t ph ng o

gi a ngu n sáng và v t th t o ra shadow map c a v t th

Hình 3.1: Chi u Shadow Map

Trang 42

th c hi n phép chi t h t a

có g c là ngu n sáng và tr ng v phía v t ch n sáng Tr c Z

m t ph ng t o b i 2 tr c X- nh các tr c c a m t ph ng o mà

t ngu n sáng ta có th chi u nó lên m t ph ng o m t cách ddàng

Trang 43

Hình 3.3: c t o v c b bóng là 512

, ph i tính toán nhi u.

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 c c a b bóng

Trang 44

Hình 3.4: c t o v c b bóng là 256

.

Trang 45

Hình 3.5: c t o v c b bóng là 128 c

Trang 46

PH N K T LU N

án, sau khi phân tích, tìm hi u chung v

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

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm