ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
Phạm Phúc Nguyên - 19521918
Đỗ Phi Long- 19521777
ĐỒ ÁN 2
TÌM HIỂU CÁC FRAMEWORK HỖ TRỢ LÀM GAME 3D, TƯƠNG TÁC
THỰC THỂ ẢO AR
GIẢNG VIÊN HƯỚNG DẪN
ThS. Nguyễn Thị Thanh Trúc
TP. HỒ CHÍ MINH, 2022
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
Phạm Phúc Nguyên - 19521918
Đỗ Phi Long- 19521777
ĐỒ ÁN 2
TÌM HIỂU CÁC FRAMEWORK HỖ TRỢ LÀM GAME 3D, TƯƠNG TÁC
THỰC THỂ ẢO AR
GIẢNG VIÊN HƯỚNG DẪN
ThS. Nguyễn Thị Thanh Trúc
TP. HỒ CHÍ MINH, 2022
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC
Độc Lập - Tự Do - Hạnh Phúc
CÔNG NGHỆ THÔNG TIN
TP. HCM, ngày 26 tháng 12 năm 2022
NHẬN XÉT ĐỒ ÁN
Tên đồ án:
Tìm hiểu và xây dựng ứng dụng AR
Nhóm sinh viên thực hiện:
Cán bộ hướng dẫn:
PHẠM PHÚC NGUYÊN
19521918
ĐỖ PHI LONG
19521777
ThS. Nguyễn Thị Thanh Trúc
Đánh giá Khóa luận:
Về cuốn báo cáo:
Số trang
Số chương
Số bảng số liệu
Số hình vẽ
Số tài liệu tham khảo
Sản phẩm
Một số nhận xét về hình thức cuốn báo cáo:
Về nội dung nghiên cứu:
Về chương trình ứng dụng:
Về thái độ làm việc của sinh viên:
Đánh giá chung:
Điểm từng sinh viên:
PHẠM PHÚC NGUYÊN: ………../10
ĐỖ PHI LONG: ………../10
Người nhận xét
(Ký và ghi rõ họ tên)
Nguyễn Thị Thanh Trúc
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC
Độc Lập - Tự Do - Hạnh Phúc
CÔNG NGHỆ THÔNG TIN
TP. HCM, ngày 26 tháng 12 năm 2022
ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI: Tìm hiểu các framework hỗ trợ làm Game 3D, tương tác thực thể
ảo AR
Cán bộ hướng dẫn: ThS. Nguyễn Thị Thanh Trúc
Thời gian thực hiện: 19/09/2022 – 26/12/2022
Sinh viên thực hiện:
● Đỗ Phi Long - 19521777
● Phạm Phúc Nguyên - 19521918
Nội dung đề tài
1.
Mục tiêu:
Đồ án này có 2 mục tiêu chính:
Thứ nhất là tìm hiểu các framework hỗ trợ làm Game AR 3D; đánh giá
các điểm mạnh, điểm yếu của mỗi framework; tìm hiểu các giải thuật, thuật
toán sử dụng trong mỗi framework để xử lý AR; và khảo sát các game AR 3D
đã có trên thị trường mà sử dụng các framework kể trên.
Thứ hai, sau khi đã tìm hiểu tổng quát về các framework hỗ trợ làm
Game AR 3D, nhóm sẽ chọn ra một framework phù hợp và phát triển một
game AR 3D để minh họa cho những kiến thức đã nghiên cứu.
2.
Phạm vi:
Phạm vi nghiên cứu: các game engine AR 3D, các framework AR, các thuật
tốn xử lý liên quan đến AR
Phạm vi mơi trường triển khai ứng dụng: các thiết bị Android và iOS có hỗ trợ
ARCore hoặc ARKit
Phạm vi chức năng:
3.
Đối tượng sử dụng:
Người chơi muốn trải nghiệm game AR 3D dựa trên hệ thống định vị
4.
Phương pháp thực hiện:
Phương pháp nghiên cứu:
● Tìm hiểu các game engine 3D có hỗ trợ AR
● Tìm hiểu cơ sở lý thuyết, thuật tốn, kỹ thuật được sử dụng trong xử lý
AR
● Tìm hiểu các tính năng, đặc điểm của các framework AR được các game
engine 3D hỗ trợ
● Khảo sát các ứng dụng có nét tương tự trên thị trường:
o Pokemon GO
Phương pháp công nghệ:
● Áp dụng mơ hình thác nước (Waterfall)
● Mơi trường triển khai trong quá trình phát triển và kiểm thử là Android,
nền tảng phần cứng là thiết bị Samsung Galaxy S10+
5.
Nền tảng công nghệ:
Engine: Unity
Framework: AR Foundation
Môi trường: Hệ điều hành Android & iOS
6.
Kết quả mong đợi:
● Hiểu được các điểm mạnh, điểm yếu của mỗi game engine 3D AR và
của các framework AR được hỗ trợ bởi các game engine đó
● Hiểu được các đặc điểm của game 3D AR, những tính năng AR được
ứng dụng trong game 3D AR
● Có cái nhìn tổng thể và đầy đủ về AR, các cơ sở lý thuyết, thuật toán,
kỹ thuật được áp dụng trong xử lý AR
● Ứng dụng game 3D AR minh họa hoạt động tốt, ít hoặc khơng có lỗi,
tạo sự thú vị và thu hút người chơi, có tiềm năng phát triển trong tương
lai
7.
Kế hoạch làm việc:
Thời gian thực hiện từ ngày 19/09/2022 đến ngày 26/12/2022.
8.
Phân cơng cơng việc:
Cơng việc
Cơng việc
Tìm hiểu về các framework làm Game AR 3D hiện có trên thị
chung
trường
Tìm hiểu về các tính năng của mỗi framework
Tìm hiểu các giải thuật, thuật toán được sử dụng trong mỗi
framework
Khảo sát các game AR 3D được xây dựng bằng các framework đã
tìm hiểu
Đánh giá ưu/nhược điểm của mỗi framework đã tìm hiểu
Lên ý tưởng cho sản phẩm game AR 3D sẽ thực hiện và lựa chọn
framework để sử dụng
Công việc
cá nhân
Đỗ Phi Long
●
Xác nhận của CBHD
(Ký tên và ghi rõ họ tên)
Phạm Phúc Nguyên
●
TP. HCM, ngày 26 tháng 12 năm 2022
MỤC LỤC
Chương 1.
TỔNG QUAN:....................................................................................2
1.1. Mục tiêu của đồ án........................................................................................2
1.2. Đối tượng nghiên cứu....................................................................................2
1.3. Phương pháp thực hiện..................................................................................2
1.4. Khảo sát các game engine 3D và thư viện, SDK, framework AR trên thị
trường......................................................................................................................3
1.4.1.
Unity....................................................................................................3
1.4.2.
Unreal..................................................................................................7
1.4.3.
Thống kê............................................................................................10
1.4.4.
So sánh Unity và Unreal....................................................................11
Chương 2.
CƠ SỞ LÝ THUYẾT VÀ CƠNG NGHỆ.........................................20
2.1. Tìm hiểu về AR...........................................................................................20
2.1.1.
AR là gì?............................................................................................20
2.1.2.
Đặc điểm:..........................................................................................20
2.1.3.
Các loại AR:......................................................................................21
2.1.4.
Các thiết bị AR:.................................................................................22
2.1.5.
Các loại ứng dụng AR thường gặp:...................................................25
2.1.6.
Điểm khác biệt giữa AR,VR và MR:................................................28
2.2. Các cơ sở lý thuyết AR tổng quát................................................................30
2.2.1.
Device motion tracking (Theo dõi chuyển động thiết bị).................30
2.1.1.
Marker detection (Nhận dạng marker)..............................................36
2.1.1.
3D Object tracking (Nhận dạng vật thể 3D).....................................37
2.1.2.
Facial tracking (Nhận dạng khuôn mặt)............................................38
2.1.1.
2.2.
Light estimation (Ước lượng ánh sáng).......................................................40
Unity.............................................................................................................42
2.2.1.
Cấu trúc.......................................................................................................42
2.2.2.
Universal Render pipeline...........................................................................43
2.2.3.
Shader graph................................................................................................46
2.2.4.
Tìm hiểu về AR Foundation........................................................................47
2.2.5.
Kiến trúc:.....................................................................................................48
2.2.6.
Tính năng:....................................................................................................48
Chương 3.
PHÂN TÍCH U CẦU...................................................................52
3.1.
Ý tưởng sản phẩm.........................................................................................52
3.2.
Sơ đồ Use-case..............................................................................................53
3.3.
Sơ đồ trạng thái.............................................................................................54
Chương 4.
4.1.
THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG......................................55
Thiết kế hệ thống..........................................................................................55
4.1.1.
Kiến trúc hệ thống.......................................................................................55
4.1.2.
Sơ đồ lớp.....................................................................................................56
4.2.
4.2.1.
Xây dựng hệ thống........................................................................................59
Giao diện:....................................................................................................59
Chương 5.
5.1.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN........................................62
Kết quả..........................................................................................................62
5.1.1.
Về mặt nghiên cứu.......................................................................................62
5.1.2.
Về mặt sản phẩm.........................................................................................62
5.2.
Hướng phát triển...........................................................................................63
DANH MỤC HÌNH ẢNH
Hình 1.1 Logo unity....................................................................................................4
Hình 1.2 Minh họa kiến trúc.......................................................................................5
Hình 1.3 Animation dùng unity..................................................................................5
Hình 1.4 Ảnh editor unity...........................................................................................6
Hình 1.5 Unreal engine...............................................................................................7
Hình 1.6 Lumen, hệ thống ánh sáng và chiếu sáng tồn cầu theo thời gian thực
(dynamic global illumination).....................................................................................8
Hình 1.7 MetaHuman, một framework để tạo ra những mơ hình người 3D cực kỳ
chân thực.....................................................................................................................8
Hình 1.8 Nanite, hệ thống xử lý hình học ảo..............................................................9
Hình 1.9 Game được làm từ unity............................................................................11
Hình 2.1 Cách hoạt động của AR.............................................................................20
Hình 2.2 Marker base AR.........................................................................................21
Hình 2.3 Geo location base.......................................................................................22
Hình 2.4 Projection AR.............................................................................................22
Hình 2.5 Thiết bị HMD.............................................................................................23
Hình 2.6 Thiết bị HUD.............................................................................................24
Hình 2.7 AR trên thiết bị di động.............................................................................25
Hình 2.8 AR Filter....................................................................................................25
Hình 2.9 Sử dụng AR để đặt model lên hình ảnh.....................................................26
Hình 2.10 Đặt đồ nội thất vào thế giới......................................................................27
Hình 2.11 Game Pokémon go...................................................................................28
Hình 2.12 Sự khác biệt giữa AR, VR, MR...............................................................28
Hình 2.13 Cách hoạt động của FAST.......................................................................31
Hình 2.14 Cách hoạt động của BRISK.....................................................................32
Hình 2.15 Các bước xử lý của VSLAM...................................................................34
Hình 2.16 Cảm biến 3D LiDAR...............................................................................36
Hình 2.17 Các thiết kế marker của một số hệ thống nhận dạng...............................37
Hình 2.18 Các đặc điểm tương tự Haar....................................................................38
Hình 2.19 Các đặc điểm (feature) được nhận dạng trên khn mặt.........................39
Hình 2.20 Chuyển động của khuôn mặt được theo dõi dựa trên vị trí các đặc điểm 40
Hình 2.21 Một HDR cubemap..................................................................................41
Hình 2.22 Unity Object.............................................................................................43
Hình 2.23 Scriptable Render pipeline.......................................................................44
Hình 2.24 VR Game rendering.................................................................................45
Hình 2.25 HDRP render............................................................................................45
Hình 2.26 URP Render.............................................................................................46
Hình 2.27 Shader graph............................................................................................46
Hình 2.28 Shader graph lớn......................................................................................47
Hình 2.29 Kiến trúc của AR Foundation..................................................................48
Hình 2.30 AR Plane Manager...................................................................................49
Hình 2.31 AR Plane Mesh Visualizer.......................................................................49
Hình 2.32 Kết quả của Plane Visualizer...................................................................49
Hình 2.33 AR Tracked Image Manager....................................................................50
Hình 2.34 AR Tracked Object Mager.......................................................................50
Hình 2.35 AR Face Manager....................................................................................50
Hình 2.36 AR Raycast Manager...............................................................................51
Hình 3.1 Use-case.....................................................................................................53
Hình 3.2 Sơ đồ trạng thái của cá...............................................................................54
Hình 4.1 Sơ đồ kiến trúc hệ thống............................................................................55
Hình 4.2 Sơ đồ lớp của game Live Fish Tank (phần 1/2).........................................56
Hình 4.3 Sơ đồ lớp của game Live Fish Tank (phần 2/2).........................................57
Hình 4.4 Màn hình chính..........................................................................................59
Hình 4.5 Options.......................................................................................................60
Hình 4.6 Cho cá ăn....................................................................................................60
Hình 4.7 Đặt bể cá....................................................................................................60
Hình 4.8 Chọn cá......................................................................................................61
Hình 4.9 Xác định độ sáng........................................................................................61
Hình 4.10 Dưới mặt nước.........................................................................................61
DANH MỤC TỪ VIẾT TẮT
Từ viết tắt
Tên đầy đủ
AR
Augmented Reality
VR
Virtual Reality
MR
Merged Reality
API
Application Programming Interface
HMD
Head Mounted Display
HUD
Head Up Display
TÓM TẮT ĐỒ ÁN
Chương 1: Tổng quan, giới thiệu về đề tài, đối tượng nghiên cứu, khảo sát các công
nghệ, các hướng nghiên cứu liên quan.
Chương 2: Trình bày các cơ sở lý thuyết, giải thuật, thuật tốn có liên quan.
Chương 3: Trình bày, phân tích chi tiết u cầu sản phẩm.
Chương 4: Trình bày chi tiết quy trình xây dựng hệ thống, từ thiết kế đến triển
khai.
Chương 5: Kết luận và hướng phát triển trong tương lai.
1
Chương 1. TỔNG QUAN:
1.1. Mục tiêu của đồ án
Đồ án này có 2 mục tiêu chính:
Thứ nhất là tìm hiểu các framework hỗ trợ làm Game 3D AR; đánh giá các điểm
mạnh, điểm yếu của mỗi framework; tìm hiểu các giải thuật, thuật toán sử dụng
trong mỗi framework để xử lý AR; và khảo sát các game 3D AR trên thị trường
được phát triển bằng các framework kể trên.
Thứ hai, sau khi đã tìm hiểu tổng quát về các framework hỗ trợ làm Game 3D AR,
nhóm sẽ chọn ra một framework phù hợp và phát triển một game 3D AR để minh
họa cho những kiến thức đã nghiên cứu và đúc kết được.
1.2. Đối tượng nghiên cứu
Các đối tượng nghiên cứu của đồ án:
-
Các game engine 3D.
-
Các thư viện, SDK và framework để xử lý các tác vụ AR trong các game
engine 3D.
-
Các nền tảng lý thuyết công nghệ, giải thuật của các thư viện, SDK và
framework AR trong game engine 3D.
-
Các sản phẩm game 3D AR có trên thị trường: ý tưởng, điểm độc đáo, đặc
điểm thu hút người chơi, các kỹ thuật và tính năng AR được áp dụng, cấu
hình phần cứng và phần mềm.
1.3. Phương pháp thực hiện
Phương pháp làm việc:
Chương 1:
Làm việc nhóm 2 thành viên với sự hướng dẫn trực tiếp của giảng
viên hoặc hướng dẫn qua Microsoft Teams.
Phương pháp nghiên cứu:
− Nghiên cứu tài liệu chính thức của các game engine 3D và các thư viện, SDK,
framework AR trong các game engine 3D.
2
− Tham khảo ý kiến của những developer đã từng làm việc với các game engine
3D, các thư viện, SDK, framework AR trong các game engine 3D, qua những
video hoặc bài đăng đáng tin cậy trên internet.
− Nghiên cứu các trang thông tin, các tài liệu về cơ sở lý thuyết, kỹ thuật, thuật
tốn giúp hiện thực hóa các tính năng AR trong các thư viện, SDK, framework
AR.
1.4. Khảo sát các game engine 3D và thư viện, SDK, framework AR trên thị
trường
Có khá nhiều game engine 3D đang lưu hành trên thị trường và số game được phát
triển bằng các engine này còn nhiều hơn. Một số game engine 3D thương mại được
sử dụng rộng rãi nhất có thể kể đến như: Unity Engine, Unreal Engine, Godot
Engine, CryEngine,... Ngoài ra, một số công ty và studio phát triển game cho ra các
tựa game kinh điển của họ bằng các game engine 3D độc quyền như: Source Engine
của Valve, id Tech của id Software, Frostbite của EA,...
Tuy nhiên, số game engine 3D hiện có hỗ trợ phát triển game AR 3D vẫn còn rất
hạn chế. Cụ thể, các game engine hiện có hỗ trợ ổn định cho AR chỉ bao gồm Unity
Engine và Unreal Engine.
1.4.1. Unity
Unity là một game engine đa nền tảng được phát triển bởi Unity Technologies,
mà chủ yếu để phát triển video game cho máy tính, console và điện thoại. Lần đầu
tiên nó được cơng bố chạy trên hệ điều hành OS X, tại Apple's Worldwide
Developers Conference vào năm 2005, đến nay đã mở rộng 27 nền tảng.
3
Hình 1.1 Logo unity
Ra mắt đầu tiên vào năm 2005 tại sự kiện Apple’s Worldwide Developer
Conference bởi nhà sáng lập David Helgason, trải qua hơn 12 năm phát triển, nay
Unity đã có version 5.5 hoàn thiện hơn về rất nhiều mặt. Tháng 5-2012 theo cuộc
khảo sát Game Developer Megazine được công nhận là Game engine tốt nhất cho
mobile. Năm 2014 Unity thắng giải “Best Engine” tại giải UK’s annual Develop
Industry Exellence.
Giờ đây Unity đã quyết định sẽ thay đổi cách gọi các version thay vì sử dụng số thì
sẽ sử dụng năm được tung ra thị trường. Bản mới nhất lúc viết bài báo cáo này là
phiên bản 2022 LTS.
Unity có thể được sử dụng để lập trình game 2D và 3D, cung cấp tính năng
scripting như Mono và IL2CPP. Trước khi bắt đầu sử dụng C# làm ngôn ngữ lập
trình chính thì Unity sử dụng một ngơn ngữ được gọi là Boo và từ phiên bản Unity
5 (2015) thì Unity loại bỏ tình năng này và sử dụng C# là ngơn ngữ chính.
Ngồi sử dụng Unity để lập trình game thì Unity cịn được sử dụng để làm
prototype cho nhiều lĩnh vực khác nhau:
4
● Architectural: Dùng Unity để xây dựng một phiên bản ảo từ bản thiết kế,
với khả năng render chân thật của unity, người kỹ sư có thể tạo một bản mẫu
trong thế giới ảo rồi tự khám phá nó trong thế giới ảo để có cảm nhận tốt
hơn.
Hình 1.2 Minh họa kiến trúc
● Animation: Khác với các animation thông thường, khi làm sử dụng Unity
thì các animation thường là real time rendering. Việc này cho phép người
xem đi vào trong thế giới của phim và xem từ nhiều góc độ khác nhau như
xem phim VR.
Hình 1.3 Animation dùng unity
5
● Simulation: Sử dụng VR để giả lập một trường hợp có thể xảy ra trong đời
thật để huấn luyện trong các trường mà khó có thể xây dựng lại ngồi đời
thật hoặc có thể gây nguy hiểm cho người được huấn luyện.
Hình 1.4 Ảnh editor unity
● Ưu điểm
○ Rất thích hợp để phát triển các game và ứng dụng mobile, bao gồm cả
các prototype và các trải nghiệm AR/VR
○ Có số nền tảng hỗ trợ lớn nhất
○ Q trình học và phát triển đơn giản và nhanh hơn với C#
○ Cửa hàng Asset Store nhiều asset, đa dạng, phong phú
● Nhược điểm
○ Để làm cho đồ họa bóng bẩy có thể tốn nhiều thời gian và cơng sức,
do một số render pipeline không hỗ trợ Shader Graph nên các shader
phải được code một cách thủ công.
○ Kết xuất đồ họa có thể chậm nếu chưa được tối ưu hóa
6