1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu lập trình đồ họa và xây dựng game 3d cho mobile

74 1 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 74
Dung lượng 0,94 MB

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

Nội dung

Có thӇ dӉ dàng nhұn thҩy, các thiӃt bӏ sӕ GL ÿӝQJ QKѭ 6PDUWSKRQH L3KRQH$QGURLG« WDEOHW L3DG L3DG PLQLFiF ORҥi máy tính bҧng NKiF« Gҫn trӣ thành vұt bҩWO\WKkQÿӕi vӟi mӛLQJѭӡi, chúng ta sӱ

Trang 2

NHҰN XÉT CӪ$*,È29,Ç1+Ѭ ӞNG DҮN

*LiRYLrQKѭӟQJGүQ

Trang 3

NHҰN XÉT CӪA HӜ,Ĉ ӖNG XÉT DUYӊT

+ӝLÿӗQJ[pWGX\ӋW

Trang 4

Mөc lөc

NHҰN XÉT CӪ$*,È29,Ç1+Ѭ ӞNG DҮN 2

NHҰN XÉT CӪA HӜ,Ĉ ӖNG XÉT DUYӊT 3

MӢ ĈҪU 6

&KѭѫQJ&Ѫ6 Ӣ LÝ THUYӂT 7

1 Khái niӋ Pÿ ӗ hӑa máy tính 7

2 Sӵ phát triӇ n cӫDÿ ӗ hӑDGLÿ ӝng 9

3 Khái niӋ PFѫE ҧn vӅ 3D 12

3.1 HӋ tӑ Dÿ ӝ 3 chiӅ u 12

3.2 9HUWH[ ÿ Ӎ nh) 15

3.3 Edge (cҥ nh) 15

3.4 7ULDQJOH 4XDG 7DPJLiFYjFiFKuQKÿDJLiF 16

3.5 Normal Vector (Vector pháp tuyӃ n) 16

3.6 Pixel 17

3.7 Texture & Texel 17

3.8 Fragment 17

3.9 Phép chiӃ u song song và phép chiӃ u phӕ i cҧ nh 18

3.10 Các kênh màu (Color channel) 19

4 &iFWKѭYL Ӌ Qÿ ӗ hӑa DirectX, OpenGL và OpenGL ES 2 20

5 Rendering Pipeline (quy trình trình chiӃ u hình ҧ nh) 30

6 Shader 33

7 Các khái niӋ m toán hӑ F'FѫE ҧn 35

8 Ma trұ n MVP 40

9 Texture 43

10 0{KuQKÿ ӕLWѭ ӧng (Model) 44

11 Ngôn ngӳ GLSL 45

12 Cҩ u trúc cӫa mӝ WWUzFKѫL JDPH 48

13 Giӟi thiӋ u vӅ Game Engine 49

&KѭѫQJ3+Æ17Ë&+9¬;Æ<' Ӵ1*Ĉ ӄ TÀI 51

1 Giӟi thiӋ Xÿ Ӆ tài và nӝ i dung game 51

2 Các thành phҫn gӗm có trong game 53

3 ThiӃ t kӃ các lӟSÿ ӕLWѭ ӧng 55

4 ChuyӇ QJDPHWUrQPi\WtQKVDQJÿL Ӌn thoҥi 65

5 Mӝt vài hình ҧnh demo game 69

Trang 5

KӂT LUҰ19¬+Ѭ ӞNG PHÁT TRIӆN 73 TÀI LIӊU THAM KHҦO 74

Trang 6

MӢ ĈҪU

Ngày nay, sӵ phát triӇn bùng nә cӫa các thiӃt bӏ GLÿӝQJÿmFyWiFÿӝng không nhӓ

tӟL ÿӡi sӕng chúng ta Có thӇ dӉ dàng nhұn thҩy, các thiӃt bӏ sӕ GL ÿӝQJ QKѭ

6PDUWSKRQH L3KRQH$QGURLG« WDEOHW L3DG L3DG PLQLFiF ORҥi máy tính bҧng NKiF« Gҫn trӣ thành vұt bҩWO\WKkQÿӕi vӟi mӛLQJѭӡi, chúng ta sӱ dөng chúng

hҫXQKѭNKҳp mӑLQѫLYjPӑLO~FNKLÿLKӑc, tҥi công sӣNKLÿLFKѫLYӟi bҥn bè, ӣ

QKj«

Chính vì sӵ phә biӃn này, kèm theo sӵ phát triӇQYѭӧt bұc vӅ công nghӋ phҫn cӭng

lүn phҫn mӅm cӫa các thiӃt bӏ GLÿӝQJÿmELӃn nhӳng chiӃFÿLӋn thoҥi chӍ có màn

hình trҳQJÿHQQJKHJӑi nhҳQWLQQJj\[ѭDWUӣ WKjQKQKѭQJFӛ máy mҥnh mӁ vӟi

cҩu hình mҥnh, hӋ ÿLӅXKjQKÿDQKLӋPÿDWiFYө, kӃt nӕLLQWHUQHWWKѭӡng trӵc 24/24

vӟi các công nghӋ 3G, wifi

Nhӡ vұy mà nhu cҫu giҧi trí trên các thiӃt bӏ FNJQJQJj\PӝWWăQJÿӗng thӡi vӟi sӵ

cҥnh tranh cӫa các hãng sҧn xuҩt thiӃt bӏ GLÿӝQJÿmFXQJFҩp cho giӟi lұp trình rҩt

nhiӅu công cө ÿӇ hӛ trӧ phát triӇn các sҧn phҭm công nghӋ, giҧi trí trên các thiӃt bӏ

GLÿӝng, rҩt nhiӅu chӧ ӭng dөQJÿѭӧFÿҫXWѭSKiWWULӇQÿӇ ÿҧm bҧRÿҫu ra cho các

sҧn phҭm ӭng dөQJ GL ÿӝng, giúp các lұp trình viên dӉ dàng kiӃP ÿѭӧc tiӅn tӯ

nhӳng sҧn phҭm cӫa mình và dӉ GjQJ ÿѭD Vҧn phҭm cӫD PuQK UD ÿӃn thӏ WUѭӡng

quӕc tӃ mӝt cách nhanh chóng, mà không cҫn phҧLORQJKƭnhiӅu cho viӋc quҧng bá

sҧn phҭPKD\ÿDXÿҫu các chiӃQOѭӧc kinh doanh phӭc tҥp

ĈӇ nҳm bҳt xu thӃ công nghӋ thӃ giӟi và tұn dөQJFѫKӝi lӟn này, em cҧm thҩy cҫn

thiӃt phҧi nghiên cӭXVkXYjROƭQKYӵc phát triӇn ӭng dөQJGLÿӝQJÿҫy hҩp dүn này,

vì thӃ nên em chӑQÿӅ tài Nghiên cӭu lұSWUuQKÿ ӗ hӑa và xây dӵng Game 3D

lұSWUuQKÿӗ hӑa, game, các công nghӋ ÿҵQJ VDXÿyYj OjPVDRÿӇ xây dӵng cho

mình mӝt bӝ công cө mà tӯ ÿyFyWhӇ sӱ dөQJÿӇ xây dӵng bҩt cӭ mӝt game nào tùy

thích cho các thiӃt bӏ GLÿӝQJ L3KRQHL3DG$QGURLGSKRQH« Yjӭng dөng nhӳng

kiӃn thӭc này xây dӵng mӝWJDPH'ÿѫQJLҧn lҩ\ÿӅ tài biӇQÿҧo ViӋt Nam vӟi tên

i: Game Bҧ o vӋ +RjQJ6D7Uѭ ӡng Sa

Trang 7

&KѭѫQJ &Ѫ6 Ӣ LÝ THUYӂT

Ĉӗ hӑa máy tính là mӝWOƭQKYӵc cӫa khoa hӑc máy tính nghiên cӭu vӅ FѫVӣ toán

hӑc, các thuұWWRiQFNJQJQKѭFiFNƭWKXұWÿӇ cho phép tҥo, hiӇn thӏ Yj ÿLӅu khiӇn

hình ҧQKWUrQPjQKuQKPi\WtQKĈӗ hӑa máy tính có liên quan ít nhiӅXÿӃn mӝt sӕ

OƭQKYӵFQKѭÿҥi sӕ, hình hӑc giҧi tích, hình hӑc hӑa hình, quang hӑFYjNƭWKXұt

Pi\WtQKÿһc biӋt là chӃ tҥo phҫn cӭng (các loҥi màn hình, các thiӃt bӏ xuҩt, nhұp,

các vӍ mҥFKÿӗ hӑa )

7KHR QJKƭD UӝQJ KѫQ ÿӗ hӑD Pi\ WtQK Oj SKѭѫQJ SKiS Yj F{QJ QJKӋ dùng trong

viӋc chuyӇQÿәi qua lҥi giӳa dӳ liӋu và hình ҧnh trên màn hình bҵQJPi\WtQKĈӗ

hӑDPi\WtQKKD\NƭWKXұWÿӗ hӑDPi\WtQKFzQÿѭӧc hiӇXGѭӟi dҥQJSKѭѫQJSKiS

YjNƭWKXұt tҥo hình ҧnh tӯ các mô hình toán hӑc mô tҧ FiFÿӕLWѭӧng hay dӳ liӋu lҩy

ÿѭӧc tӯ các ÿӕL Wѭӧng trong thӵc tӃ Thuұt ngӳ ÿӗ hӑa máy tính" (computer

JUDSKLFV ÿѭӧFÿӅ xuҩt bӣi mӝWFKX\rQJLDQJѭӡL0ƭWrQOj:LOOLDP)HWWHUYjRQăP

.KLÿy{QJÿDQJQJKLrQFӭu xây dӵng mô hình buӗng lái máy bay cho hãng

%RHLQJ :LOOLDP )HWWHU ÿm Gӵa trên các hình ҧnh 3 chiӅu cӫD P{ KuQK QJѭӡi phi

công trong buӗQJ OiL ÿӇ xây dӵng nên mô hình buӗng lái tӕL ѭX FKR Pi\ ED\

%RHLQJĈk\OjSKѭѫQJSKiSQJKLrQFӭu rҩt mӟi vào thӡLNuÿy3KѭѫQJSKiSQj\

cho phép các nhà thiӃt kӃ quan sát mӝt cách trӵc quan vӏ trí cӫD QJѭӡi lái trong

khoang buӗQJOiL:LOOLDP)HWWHUÿmÿһWWrQFKRSKѭѫQJSKiSFӫa mình là computer

graphics

Lӏch sӱ cӫD ÿӗ hӑa máy tính vào thұS QLrQ  FzQ ÿѭӧF ÿiQK Gҩu bӣi dӵ án

6NHWFK3DGÿѭӧc phát triӇn tҥi Hӑc viӋn Công nghӋ Massachusetts (MIT) bӣi Ivan

Sutherland Các thành tӵX WKX ÿѭӧF ÿm ÿѭӧc báo cáo tҥi hӝi nghӏ Fall Joint

&RPSXWHUYjÿk\FNJQJFKtQKOà sӵ kiӋn lҫQÿҫXWLrQQJѭӡi ta có thӇ tҥo mӟi, hiӇn thӏ

YjWKD\ÿәLÿѭӧc dӳ liӋu hình ҧnh trӵc tiӃp trên màn hình máy tính trong thӡi gian

thӵc HӋ thӕQJ 6NHWFKSDG Qj\ ÿѭӧF GQJ ÿӇ thiӃt kӃ hӋ thӕng mҥFK ÿLӋn và bao

gӗm nhӳng thành phҫn sau:

x Màn hình CRT

x Bút sáng và mӝt bàn phím bao gӗm các phím chӭFQăQJ

x Máy tính chӭDFKѭѫQJWUuQK[ӱ lí các thông tin

Vӟi hӋ thӕQJQj\QJѭӡi sӱ dөng có thӇ vӁ trӵc tiӃSFiFVѫÿӗ mҥFKÿLӋn lên màn

KuQKWK{QJTXDE~WViQJFKѭѫQJWUuQKVӁ phân tích và tính toán các thông sӕ cҫn

thiӃt cӫa mҥFKÿLӋQGRQJѭӡi dùng vӁ nên

Kӻ thuұWÿӗ hӑDÿѭӧc liên tөc hoàn thiӋn vào thұp niên 1970 vӟi sӵ xuҩt hiӋn cӫa

các chuҭQÿӗ hӑDOjPWăQJFѭӡng khҧ QăQJJLDRWLӃp và tái sӱ dөng cӫa phҫn mӅm

Trang 8

Sӵ phát triӇQYѭӧt bұc cӫa công nghӋ YL ÿLӋn tӱ và phҫn cӭng máy tính vào thұp

niên 1980 làm xuҩt hiӋn hàng loҥt các vӍ mҥch hӛ trӧ cho viӋc truy xuҩWÿӗ hӑa ÿL

cùng vӟi sӵ giҧPJLiÿiQJNӇ cӫDPi\WtQKFiQKkQOjPÿӗ hӑDQJj\FjQJÿLVkXvào cuӝc sӕng thӵc tӃ

Ĉӗ hӑa máy tính có rҩt nhiӅu ӭng dөQJWURQJPi\WtQKYuѭӟFWtQKÿӃn 80% thông

tin xӱ lí là hình ҧnh Mӝt sӕ ӭng dөng tiêu biӇu cӫDÿӗ hӑDPi\WtQKQKѭlà:

x Tҥo mô hình, hoҥt cҧnh (game, giҧi trí, )

x Hӛ trӧ thiӃt kӃ ÿӗ hӑa

x Mô phӓng hình ҧnh, chuҭQÿRiQKuQKҧnh (trong y tӃ)

x Huҩn luyӋQÿjRWҥo ҧo (quân sӵ, hành không, )

Trang 9

2 Sӵ phát triӇn cӫDÿ ӗ hӑDGLÿ ӝng

Ngày nay, vӟi sӵ phát triӇn cӫa các thiӃt bӏ GLÿӝng, sӭc mҥQKÿӗ hӑa cӫa các ӭng

dөQJWUrQGLÿӝng ngày mӝt phát triӇn

Ngay tӯ thӡLNuÿҫu tiên, khi mà các thiӃt bӏ GL ÿӝng còn sӱ dөng màn hình trҳng

ÿHQWKuFiFӭng dөQJÿӗ hӑDFKRÿLӋn thoҥLFNJQJÿmEҳWÿҫXÿѭӧFÿҫXWѭSKiWWULӇn,

tӯ mөFÿtFKEDQÿҫu là tҥRUDFiFWUzFKѫLJLҧLWUtÿѫQJLҧQQKѭ6QDNHWUrQFiFPi\GLÿӝng cӫa Nokia

Dҫn dҫn vӅ sau, khi công nghӋ WKD\ÿәi, chҩWOѭӧQJPjQKuQKÿLӋn thoҥi ngày mӝt

cҧi tiӃQOƭQKYӵFÿӗ hӑDGLÿӝng lҥi trӛi dұy vӟi các ӭng dөng game có chҩWOѭӧng

FDRKѫQErQFҥQKÿyÿӗ hӑDFNJQJJySSKҫQÿHPOҥi sӵ bóng bҭy, hiӋQÿҥi cho các

sҧn phҭPGLÿӝQJKѫQ

*DPHGLÿӝng vào thӡi kì màn hình trҳQJÿHQ QăP

Các game 2D J2ME vào thӡLNuQăP

Trang 10

9jRQăPJDPH'Eҳt ÿҫu xuҩt hiӋn mһc dù chҩWOѭӧng không cao

1ăPJDPHGLÿӝng vүQFKѭDFyVӵ ÿӝt phá ngoài viӋFÿӝ phân giҧi màn hình

ÿѭӧFWăQJFDRKѫQJL~SKLӇn thӏ hình ҧnh chi tiӃWKѫQ

1ăPL3KRQHEҳWÿҫu xuҩt hiӋQNpRWKHRÿyOjVӭc mҥnh vӅ ÿӗ hӑDÿѭӧc nâng cao, chҩWOѭӧng màn hình cҧm ӭQJÿӝWSKiÿHPOҥi sӵ WKD\ÿәi rõ rӋt cho bӝ mһt nӅn JDPHGLÿӝng

Trang 11

Angry Birds, sҧn phҭPÿҫu tiên trên thӃ giӟi mӣ màn cho kӍ nguyên mӟi trong kinh

doanh ӭng dөQJGLÿӝng Rovio ± hãng sҧn xuҩt Angry Birds là mӝt minh chӭng

cho viӋc mӝt công ty nhӓ ÿѭӧc thành lұp chӍ tӯ ÿӃQQJѭӡi có thӇ nhanh chóng

kiӃPÿѭӧc hàng triӋXÿ{ODYjWUӣ thành mӝt tұSÿRjQOӟn chӍ sau mӝWÿrP0ӣ ra

mӝt thӡLNuQJѭӡLQJѭӡi, nhà nhà ôm giҩFPѫWULӋu phú tӯ kinh doanh ӭng dөng di

ÿӝng

Sӭc mҥQK ÿӗ hӑa cӫa các thiӃt bӏ ÿL GӝQJQJj\ FjQJÿѭӧc cҧi thiӋQYj YjRQăP

2011, Infinity Blade 2 là mӝt trong sӕ rҩt nhiӅu game mang chҩWOѭӧQJÿӗ hӑa cӫa

FiFJDPHWUrQPi\WtQKÿӃQÿLӋn thoҥLGLÿӝng

Trang 12

3 Khái niӋPFѫE ҧn vӅ 3D

ĈӇ bҳWÿҫu tìm hiӇu vӅ lұp trình 3D trên máy tính lүn trên thiӃt bӏ ÿLÿӝng, chúng ta

cҫn nҳm rõ các khái niӋPÿӗ hӑDFѫEҧn trong lұSWUuQK'ÿk\OjQKӳng kiӃn thӭc

nӅn tҧQJÿӇ có thӇ tiӃSWKXÿѭӧc nhӳng kiӃn thӭc chuyên môn vӅ sau

Mӝt HӋ tӑDÿӝ Descartes [iFÿӏnh vӏ trí cӫa mӝWÿLӇm (point) trên mӝt mһt phҷng

SODQH FKRWUѭӟc bҵng mӝt cһp sӕ tӑDÿӝ [\ 7URQJÿy[Yj\OjJLiWUӏ ÿѭӧc

[iFÿӏnh bӣLÿѭӡng thҷQJFyKѭӟng vuông góc vӟLQKDX FQJÿѫQYӏ ÿR  

ÿѭӡng thҷQJÿyJӑi là trөc tӑDÿӝ (coordinate axis) (hoһFÿѫQJLҧn là trөc); trөc

nҵm ngang gӑi là trөc hoành, trөFÿӭng gӑi là trөFWXQJÿLӇm giao nhau cӫa 2

ÿѭӡng gӑi là gӕc tӑDÿӝ (origin) và nó có giá trӏ là (0, 0)

HӋ tӑD ÿӝ Qj\ Oj ê Wѭӣng cӫa nhà toán hӑc và triӃt hӑF QJѭӡi Pháp René

Descartes thӇ hiӋQYjRQăPWURQJKDLEjLYLӃt cӫa ông Trong phҫn hai cӫa

EjL3KѭѫQJSKiSOXұn (Descartes) (tiӃng Pháp: Discours de la méthode, tӵa Pour

êWѭӣng mӟi vӅ viӋF [iF ÿӏnh vӏ trí cӫa mӝW ÿLӇm hay vұt thӇ trên mӝt bӅ mһt

bҵng cách dùng hai trөFJLDRQKDXÿӇ ÿR&zQWURQJEjL/D*pRPpWULH{QJSKiW

triӇQVkXKѫQNKiLQLӋm trên

'HVFDUWHVOjQJѭӡLÿmFyF{QJKӧp nhҩWÿҥi sӕ và hình hӑc Euclide Công trình

này cӫa ông có ҧQKKѭӣQJÿӃn sӵ phát triӇn cӫa ngành hình hӑc giҧi tích, tích

phân, và khoa hӑc bҧQÿӗ

1JRjL UD ê Wѭӣng vӅ hӋ tӑD ÿӝ có thӇ ÿѭӧc mӣ rӝng ra không gian ba chiӅu

(three-dimensional space) bҵng cách sӱ dөng 3 tӑDÿӝ Descartes (nói cách khác

là thêm mӝt trөc tӑDÿӝ vào mӝt hӋ tӑDÿӝ Descartes) Mӝt cách tәng quát, mӝt hӋ

tӑD ÿӝ n-chiӅu có thӇ ÿѭӧc xây dӵng bҵng cách sӱ dөng n tӑD ÿӝ Descartes

WѭѫQJÿѭѫQJYӟi n-trөc)

Trang 13

HӋ tӑ Dÿ ӝ trên mһt phҷng 2 chiӅu (2D)

Là 2 trө chӑQYHFWѫÿѫQYӏ i, j sao cho

ÿӝ dài cӫa 2 véc-WѫQj\Eҵng nhau

Là 3 trөc vuông góc nhau tӯQJÿ{LP ӑn 3

véc-WѫÿѫQYӏ LMNVDRFKRÿӝ dài cӫa 3 véc-WѫQj\Eҵng nhau

TronJÿӗ hӑDPi\WtQKYjGLÿӝng, tӗn tҥi 2 loҥi hӋ tӑDÿӝ không gian 3 chiӅu HӋ

tӑDÿӝ tay phҧi và tay trái HӋ tӑDÿӝ tay phҧi (right handed coordinate system)

ÿѭӧc sӱ dөng trong OpenGL và hӋ tӑDÿӝ tay trái (left handed coordinate system)

ÿѭӧc sӱ dөng trong DirectX

Trang 14

HӋ tӑ Dÿ ӝ 3 chiӅu trong OpenGL

Trong OpenGL thì mӝWÿLӇPWURQJNK{QJJLDQ'ÿѭӧFÿһt trong mӝt vùng có

giӟi hҥn giá trӏ tӑDÿӝ tӯ ÿӃQQKѭWURQJKuQKErQGѭӟi, gӑi là NDC (Normal Device Coordination)

1'&ÿѭӧc tә chӭc theo hӋ tӑDÿӝ tay trái và có giӟi hҥn tӯ ÿLӇm (-1, -1, - ... phҧi nghiên cӭXVkXYjROƭQKYӵc phát triӇn ӭng dөQJGLÿӝQJÿҫy hҩp dүn này,

vì thӃ nên em chӑQÿӅ tài Nghiên cӭu lұSWUuQKÿ ӗ hӑa xây dӵng Game 3D

lұSWUuQKÿӗ hӑa, game, ... ÿҵQJ VDXÿyYj OjPVDRÿӇ xây dӵng cho

mình mӝt bӝ cơng cө mà tӯ ÿyFyWhӇ sӱ dөQJÿӇ xây dӵng bҩt cӭ mӝt game tùy

thích cho thiӃt bӏ GLÿӝQJ L3KRQHL3DG$QGURLGSKRQH« Yjӭng...

thuұt tốn xây dӵng khӕi hình hӑc

x

2SHQ*/WѭѫQJWKtFKKRjQtoán vӟi nhӳng phiên bҧQWUѭӟc

Direct3D ( D3D)

MӝW FiFK ÿӇ D3D cho phép nhӳng

Ngày đăng: 26/06/2021, 13:14

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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

w