1. Trang chủ
  2. » Tất cả

Đề tài tìm hiểu các framework hỗ trợ làm game 3d, tương tác thực thể ảo ar

82 5 0
Tài liệu đã được kiểm tra trùng lặ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

Thông tin cơ bản

Tiêu đề Đề tài tìm hiểu các framework hỗ trợ làm game 3D, tương tác thực thể ảo AR
Tác giả Đỗ Phi Long, Phạm Phúc Nguyên
Người hướng dẫn ThS. Nguyễn Thị Thanh Trúc
Trường học Đại Học Quốc Gia TP. Hồ Chí Minh
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 82
Dung lượng 23,91 MB

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

Cấu trúc

  • Chương 1. TỔNG QUAN (16)
    • 1.1. Mục tiêu của đồ án (16)
    • 1.2. Đối tượng nghiên cứu (16)
    • 1.3. Phương pháp thực hiện (16)
    • 1.4. Khảo sát các game engine 3D và thư viện, SDK, framework AR trên thị trường (17)
      • 1.4.1. Unity (17)
      • 1.4.2. Unreal (21)
      • 1.4.3. Thống kê (24)
      • 1.4.4. So sánh Unity và Unreal (26)
  • Chương 2. CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ (39)
    • 2.1. Tìm hiểu về AR (39)
      • 2.1.1. AR là gì? (39)
      • 2.1.2. Đặc điểm (39)
      • 2.1.3. Các loại AR (40)
      • 2.1.4. Các thiết bị AR (41)
      • 2.1.5. Các loại ứng dụng AR thường gặp (44)
      • 2.1.6. Điểm khác biệt giữa AR,VR và MR (47)
    • 2.2. Các cơ sở lý thuyết AR tổng quát (49)
      • 2.2.1. Device motion tracking (Theo dõi chuyển động thiết bị) (49)
      • 2.1.1. Marker detection (Nhận dạng marker) (55)
      • 2.1.2. Facial tracking (Nhận dạng khuôn mặt) (57)
      • 2.1.1. Light estimation (Ước lượng ánh sáng) (59)
    • 2.2. Unity (61)
      • 2.2.1. Cấu trúc (61)
      • 2.2.2. Universal Render pipeline (62)
      • 2.2.3. Shader graph (65)
      • 2.2.4. Tìm hiểu về AR Foundation (66)
      • 2.2.5. Kiến trúc (67)
      • 2.2.6. Tính năng (67)
  • Chương 3. PHÂN TÍCH YÊU CẦU (71)
    • 3.1. Ý tưởng sản phẩm (71)
    • 3.2. Sơ đồ Use-case (72)
    • 3.3. Sơ đồ trạng thái (73)
  • Chương 4. THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG (74)
    • 4.1. Thiết kế hệ thống (74)
      • 4.1.1. Kiến trúc hệ thống (74)
      • 4.1.2. Sơ đồ lớp (75)
    • 4.2. Xây dựng hệ thống (78)
      • 4.2.1. Giao diện (78)
  • Chương 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (81)
    • 5.1. Kết quả (81)
      • 5.1.1. Về mặt nghiên cứu (81)
      • 5.1.2. Về mặt sản phẩm (81)
    • 5.2. Hướng phát triển (82)

Nội dung

Phạm vi nghiên cứu: các game engine AR 3D, các framework AR, các thuậttoán xử lý liên quan đến ARPhạ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

Trang 1

ĐẠ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

Trang 2

ĐẠ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

Trang 3

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC

CÔNG NGHỆ THÔNG TIN

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc Lập - Tự Do - Hạnh Phúc

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:

Đánh giá Khóa luận:

Về cuốn báo cáo:

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:

Trang 4

Về thái độ làm việc của sinh viên:Đánh giá chung:

Điểm từng sinh viên:

Trang 5

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC

CÔNG NGHỆ THÔNG TIN

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

đã 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àmGame AR 3D, nhóm sẽ chọn ra một framework phù hợp và phát triển mộtgame AR 3D để minh họa cho những kiến thức đã nghiên cứu

2 Phạm vi:

Trang 6

Phạm vi nghiên cứu: các game engine AR 3D, các framework AR, các thuậttoá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

● Tìm hiểu các game engine 3D có hỗ trợ AR

● Tìm hiểu cơ sở lý thuyết, thuật toá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 gameengine 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

Trang 7

● 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ươnglai

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:

Khảo sát các game AR 3D được xây dựng bằng các framework đãtìm hiểu

Trang 8

Đánh giá ưu/nhược điểm của mỗi framework đã tìm hiểuLên ý tưởng cho sản phẩm game AR 3D sẽ thực hiện và lựa chọnframework để sử dụng

Trang 9

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

Trang 10

2.1.1 Light estimation (Ước lượng ánh sáng) 40

2.2 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 YÊ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 THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG 55

4.1 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 Xây dựng hệ thống 59

4.2.1 Giao diện: 59

Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 62

5.1 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

Trang 11

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 toà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

Trang 12

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 khuôn 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ểm40 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

Trang 13

Hình 4.9 Xác định độ sáng 61Hình 4.10 Dưới mặt nước 61

Trang 15

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 toán có liên quan.

Chương 3: Trình bày, phân tích chi tiết yê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.

Trang 16

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 để minhhọ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:

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ảngviê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

Trang 17

− Tham khảo ý kiến của những developer đã từng làm việc với các game engine3D, các thư viện, SDK, framework AR trong các game engine 3D, qua nhữngvideo 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ậttoán giúp hiện thực hóa các tính năng AR trong các thư viện, SDK, frameworkAR

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áttriể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, GodotEngine, CryEngine, Ngoài ra, một số công ty và studio phát triển game cho ra cáctựa game kinh điển của họ bằng các game engine 3D độc quyền như: Source Enginecủ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ấthạn chế Cụ thể, các game engine hiện có hỗ trợ ổn định cho AR chỉ bao gồm UnityEngine 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 đầutiên nó được công bố chạy trên hệ điều hành OS X, tại Apple's WorldwideDevelopers Conference vào năm 2005, đến nay đã mở rộng 27 nền tảng

Trang 18

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 DeveloperConference bởi nhà sáng lập David Helgason, trải qua hơn 12 năm phát triển, nayUnity đã có version 5.5 hoàn thiện hơn về rất nhiều mặt Tháng 5-2012 theo cuộckhảo sát Game Developer Megazine được công nhận là Game engine tốt nhất chomobile Năm 2014 Unity thắng giải “Best Engine” tại giải UK’s annual DevelopIndustry 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ăngscripting như Mono và IL2CPP Trước khi bắt đầu sử dụng C# làm ngôn ngữ lậptrì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

Ngoài sử dụng Unity để lập trình game thì Unity còn được sử dụng để làmprototype cho nhiều lĩnh vực khác nhau:

Trang 19

● 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ẫutrong thế giới ảo rồi tự khám phá nó trong thế giới ảo để có cảm nhận tốthơ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ườixem đ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

Trang 20

● 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 ngoài đờithật hoặc có thể gây nguy hiểm cho người được huấn luyện

○ Quá 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

Trang 21

1.4.2 Unreal

Hình 1.5 Unreal engine

Như Unity, Unreal cũng là một game engine hỗ trợ đa nền tảng, được Epic Gamesphát triển và cho ra mắt năm 1998 qua tựa game bắn súng góc nhìn thứ nhất cùngtên Mặc dù các nhà phát triển ban đầu dự định cho Unreal để phục vụ việc tạo racác game bắn súng góc nhìn thứ nhất, song game engine này đã được sử dụng đểtạo ra nhiều thể loại game khác nhau và còn được ứng dụng trong các mảng nghệthuật khác như phim và truyền hình Được viết bằng C++, Unreal có khả năngportability cao, hỗ trợ nhiều nền tảng, hệ điều hành desktop, mobile, console và XR(thực tế mở rộng)

Một trong những điểm mạnh nhất của Unreal so với các game engine khác là khảnăng xử lý, kết xuất đồ họa cực kỳ xuất sắc Hình ảnh 3D của các vật thể tronggame có độ chi tiết và chân thực đến mức ngỡ ngàng, và cứ sau mỗi phiên bảnUnreal lại có những cải tiến mới đến hệ thống xử lý đồ họa của mình Ngoài ra,Unreal là một trong số ít những game engine hỗ trợ visual scripting làm một phần

Trang 22

trong workflow chính: kết hợp giữa code C++ và hệ thống visual scriptingBlueprint.

Phiên bản mới nhất của Unreal, Unreal Engine 5, được phát hành vào tháng 4 năm

2022 Một số hình ảnh được dựng hình bằng Unreal Engine 5 cho thấy các cải tiếnđáng kinh ngạc về mặt hình ảnh và độ chi tiết:

Hình 1.6 Lumen, hệ thống ánh sáng và chiếu sáng toàn cầu theo thời gian thực (dynamic global illumination)

Trang 23

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

Hình 1.8 Nanite, hệ thống xử lý hình học ảo

Đáng chú ý, mỗi viên đá và vụn trong ảnh trên đều là các mô hình có cấu trúc hìnhhọc phức tạp được đặt trong phân cảnh, mỗi khối hình 3D có thể được chia làmnhiều hình tam giác phẳng để GPU render dễ hơn Tuy nhiên, trong một phân cảnh

có quá nhiều hình phải render như trên thì kết quả trong game chỉ đạt 5-10 FPS là

Trang 24

tối đa, dù GPU có mạnh đi nữa Nên trong thực tế các nhà thiết kế khi đặt các môhình 3D vào phân cảnh thì tùy theo yêu cầu hình ảnh trong phân cảnh đó mà sẽ tănghoặc giảm độ chi tiết của các mô hình, làm giảm chất lượng hình ảnh cuối cùng Đểcải thiện tình trạng đó, hệ thống Nanite sẽ tự điều chỉnh mức độ chi tiết của các môhình có format mô hình Nanite trong phân cảnh, khi ta zoom vào mô hình thì độ chitiết của mô hình tăng lên và làm tăng số hình tam giác trong cảnh, khi zoom ra thì

độ chi tiết giảm xuống và kéo theo giảm số hình tam giác GPU cần render, giúptăng hiệu suất mà không đánh đổi chất lượng hình ảnh

Một số tựa game nổi bật được phát triển bằng Unreal Engine có thể nói qua:Fortnite, series BioShock, series Borderlands, Street Fighter 5, Sea of Thieves; vàmột số tựa game sắp ra mắt được phát triển dựa trên Unreal Engine 5 như BlackMyth: Wukong

● Ưu điểm

○ Hướng đến đạt được chất lượng đồ họa cao nhất

○ Người phát triển có thể tùy chỉnh các shader mà không cần code

Trang 25

○ Tính đến quý 1 năm 2016, trong top 1000 game mobile miễn phí thì

số lượng game được phát triển bằng Unity chiếm tới 34% Đến nay,con số này đã lên đến 71%

○ Số người sử dụng Unity (nhà phát triển và người chơi) lên đến 2.7 tỷngười

○ Unity Asset Store có hơn 65 nghìn asset

○ Ước tính chiếm 48% thị phần

○ Doanh thu của Unity tăng 43% trong năm 2020

○ Vốn hóa thị trường của Unity Technologies xấp xỉ $27.8 tỷ USD

Hình 1.9 Game được làm từ unity

● Unreal:

○ Hơn 2 triệu game được phát triển dựa trên Unreal

○ Unreal Marketplace có hơn 16 nghìn asset

○ Cộng đồng nhà phát triển vượt hơn 7 triệu người

○ Ước tính chiếm 13% thị phần

○ Vốn hóa thị trường của công ty phát hành (Epic Games) xấp xỉ $17 tỷUSD

Trang 26

WebGL, Embedded Linux, QNX,…

Unity trên các nền tảng Windows, macOS và Linux

●Hỗ trợ các nền tảng:Windows PC, PS5, PS4, Xbox Series X, Xbox Series S, Xbox One, Nintendo Switch,Google Stadia, macOS,iOS, Android, ARKit, ARCore, OpenXR, SteamVR, Oculus, Linux, SteamDeck

●Tương tự Unity, Unreal

có thể chạy trên các nền tảng Windows, macOS

và Linux

Unity cũng có Visual Scripting – giống với Blueprint củaUnreal, nhưng Visual Scripting chạy chậm hơn đáng kể

so với Blueprint trong Unreal và code C# trong Unity

Trang 27

Dễ sử dụng ●Unity dễ sử dụng hơn so với Unreal do C# quen thuộc

hơn với đa số developer và với bản chất là ngôn ngữ bậc cao thì cũng dễ làm việc hơn so với C++

●Editor và workflow của Unity cũng dễ làm quen hơn

so với Unreal

mảng đồ họa sắc nét và chân thực, nhưng ở những phiên bản mới đây Unity bổ sung các render pipeline mới có chất lượng hình ảnh cải tiến rất nhiều

●Unreal Engine 5 cũng ra mắt các hệ thống ánh sáng Lumen và hệ thống hình học ảo (virtualized geometry system) Nanite, giúp các phân cảnh nhìn thấy được có

độ chi tiết lớn hơn rất nhiều, ánh sáng chân thực hơn (dynamic global illumination)

●Xét chung, Unity đang dần bắt kịp với Unreal về đồ họa nhưng hiện tại Unreal vẫn cho chất lượng hình ảnh tốt, chi tiết và chân thực hơn một chút

Tài liệu và hướng dẫn ●Tài liệu trên web của Unity được đầu tư kỹ lưỡng hơn

và cập nhật liên tục hơn so với Unreal

●Có nhiều video hướng dẫn về Unity trên các nền tảng chia sẻ video, nhiều khóa học trên các trang dạy học online (có cả trang do Unity duy trì) hơn so với các video, khóa học về Unreal

có thể tìm kiếm giải pháp cho các vấn đề gặp phải dễ dàng hơn khi sử dụng Unity so với Unreal

Trang 28

●Cả Unity và Unreal đều có hệ thống cửa hàng asset – developer có thể mua asset (model 3D, hình ảnh, nhạc, hiệu ứng,…) từ cửa hàng để sử dụng trong dự áncủa mình và không cần tự tạo các asset hoặc phải thuêcác bên thứ ba.

●Do Unity có cộng đồng lớn mạnh hơn nên số lượng và

độ đa dạng của các asset trên cửa hàng của Unity cũnglớn hơn nhiều

nhau tùy nhu cầu sử dụng:

●Với cá nhân sử dụng không vì mục đích thương mại hoặc doanh thu từ sản phẩm thương mại ít hơn $100.000 USD trong vòng 12

tháng gần nhất: Miễn

phí

●Các phiên bản thương mại bao gồm thêm nhiềutính năng khác:

mọi sản phẩm thương mại

có doanh thu hơn $1 triệu USD phải trả phí bản quyền 5% doanh thu

Trang 29

Về mảng AR, số thư viện và SDK hỗ trợ Unity nhiều hơn đáng kể so với số hỗ trợ

Unreal Tuy vậy, có 2 SDK được hỗ trợ bởi cả hai engine là ARKit và ARCore:

trợ bởi các thiết bị sử dụng iOS phiên bản 11.0 trở đi và bộ xử lýA9 trở đi

Có nhiều tính năng được hỗ trợ bởi AR Foundation:

Device tracking Plane detection (cả

mặt phẳng ngang và đứng)

Light estimation 2D Image tracking 3D Object tracking Face tracking Participant tracking Occlusion

sử dụng máy quét LiDAR chỉ

có ở những dòng iPhone 12 trở lên

chỉ hỗ trợ các thiết bị iOS 11.0trở đi

Trang 30

Các ưu điểm khác:

Depth API – áp dụng

máy quét LiDAR trongcamera của các thiết bị iPhone để nhận diện khoảng cách rất chính xác

Scene Geometry –

Dựng mô hình chính xác của không gian thực được nhìn thấy bởi thiết bị, mang đến các khả năng Occlusion

và mô phỏng vật lý chocác vật thể ảo

Motion Capture –

Theo dõi và lưu lại chuyển động của cơ thểngười

trợ bởi hầu hết các thiết bị sử dụng Android phiên bản 8.0 trở đi và các thiết

bị sử dụng iOS 11.0 trở đi, có tương thích với ARKit

Có nhiều tính năng được hỗ trợ bởi AR Foundation:

Device tracking Plane detection (cả

mặt phẳng ngang và đứng)

Không có các tính năng:

3D Object tracking – Nhận

diện và theo dõi chuyển động vật thể thực

Trang 31

hình ảnh toàn cầu của

Google Street View để

cho phép đặt các vật

thể AR ở các vị trí khác

nhau trên thế giới, khi

thiết bị của người dùng

Trang 32

một vị trí, cùng chia sẻ một không gian AR.

Một số ví dụ điển hình về các thư viện và SDK được hỗ trợ bởi Unity:

Plane detection:

nhận dạng các mặt phẳng ngang và đứng trong không gian

Light estimation:

ước tính nhiệt độ màusắc trung bình và độ sáng của không gian thực tế

Face tracking: nhận

diện và theo dõi chuyển động khuôn mặt người

2D image tracking:

Chỉ được hỗ trợ bởi Unity, không được

hỗ trợ bởi bất kỳ framework nào khác

Trang 33

3D của cơ thể người

nhận diện được trong

Trang 34

Hỗ trợ nhiều nền tảng: AR Foundation

hoạt động trên nền các AR SDK native của mỗi nền tảng hệ điều hành, khi chạy trên Android thì AR Foundation sẽ sử dụng ARCore, ARKitvới iOS, OpenXR với Microsoft HoloLens,

phí, bị giới hạn số lượng Model Target

và Area Target có thể tạo là 20 target mỗi loại và chỉ được

sử dụng để tạo nguyên mẫu

Premium plan: Phí

thỏa thuận, khởi điểm 500 Model Target và Area Target mỗi loại, sau

đó có thể mua thêm giới hạn target

Image Targets, Cylinder Targets, Multi Targets, VuMarks: Có thể

nhận diện và overlay các vật thể AR lên trên các hình ảnh phẳng, hình ảnh cong (bao bì trên vỏ lon),

tổ hợp nhiều hình ảnhsắp xếp thành hình dạng phổ biến, và khảnăng tạo, nhận dạng marker tùy chỉnh (customized markers)

Model Targets:

● Không có khả năng nhận diện các mặt phẳng đứng như tường, màn hình đứng,

● Phiên bản miễn phí bị giới hạn khá nhiều so với bản Premium

● Không có hỗ trợ cho Unreal Engine

Trang 35

Nhận diện các vật thể thực và overlay nội dung AR lên trên chúng.

Area Targets: Scan

môi trường xung quanh và tạo ra một bản sao, từ đó có khả năng nhận dạng vị trí khi thiết bị quan sát môi trường thực

Ground Plane: Nhận

diện được các mặt phẳng ngang như mặt bàn, bề mặt sàn nhà,

Có hỗ trợ cho các dòng thiết bị Android và iOS cũ,

dù các thiết bị đó không có ARCore hayARKit

Miễn phí, giới hạn thời gian

Bản Pro 3D trả phí

1 lần: 2490 Euro,

Image Recognition:

Nhận diện hình ảnh đơn, nhiều hình ảnh cùng lúc

Plane Detection:

nhận diện vật thể

(Object Tracking) có độ

chính xác thấp

Trang 36

và các mặt phẳng ngẫu nhiên (dốc đẩy

xe, cầu thang,…)

Object Tracking:

Nhận diện và theo dõichuyển động của các vật thể thực, nhưng từphiên bản SDK 8 còn

có thêm khả năng nhận diện các cấu trúc

lớn hơn (Scene

Recognition) như:

căn phòng, bề mặt củatòa nhà, sân trống,…

Dịch vụ nhận diện trên đám mây (Cloud Recognition Service): Sử dụng

dịch vụ đám mây để nhận diện thay vì khả năng nhận diện của thiết bị người dùng

quyền cao, nhiều tính năng bị giới hạn hoặc không được tích hợp trong các phiên bản ít tiền hơn

nhỏ, ít bản cập nhật và tính năng mới

Trang 37

Tính năng này đặc biệt hữu dụng trên cácthiết bị cũ, có khả năng xử lý hình ảnh kém, hoặc khi bộ đối tượng hình ảnh cần nhận dạng lớn.

Có bộ công cụ (tool)

hỗ trợ cho công việc

tạo ra các đối tượng theo dõi (image target, object target), chuyển đổi định dạng,quản lý các đối tượng

và bộ sưu tập các đối tượng, có cả plugin tích hợp trực tiếp vào Unity Editor

Plugin cho Android

Plugin cho iOS

Ngoài các ví dụ nêu trên, Unity còn hỗ trợ các thư viện và SDK khác như: Kudan

AR SDK, MAXST AR SDK, ZapWorks Universal AR SDK, EasyAR Sense UnityPlugin,…

Như Unity, Unreal cũng có một AR framework thống nhất, tương thích với cảARCore trên các thiết bị Android và ARKit trên các thiết bị iOS Tất nhiên, khi ứng

Trang 38

dụng chạy thực tế trên thiết bị người dùng thì vẫn sẽ có các khả năng và giới hạncủa AR SDK tương ứng với hệ điều hành của thiết bị đó.

Các thư viện và

SDK hỗ trợ

Unreal Engine

Trang 39

Chương 2 CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ

2.1 Tìm hiểu về AR

2.1.1 AR là gì?

AR được định nghĩa là công nghệ thực tế ảo tăng cường Công nghệ AR dùng để

mô phỏng 1 vật thể ảo, khiến chúng xuất hiện trong thế giới thật và con người vớivật thể đó có thể tương tác với nhau trong môi trường thế giới thật Điểm đặc biệtcủa AR là các vật thể có sự tương tác qua lại giữa cả 2 môi trường ảo và thật

AR sử dụng vòng phản hồi giữa người dùng và hệ thống máy tính Người dùngquan sát màn hình AR và điều khiển quan điểm Hệ thống theo dõi quan điểm củangười dùng, đăng ký tư thế trong thế giới thực với nội dung ảo và trình bày trựcquan hóa

Hình 2.10 Cách hoạt động của AR 2.1.2 Đặc điểm:

● Tự hoạt động một mình mà không cần thêm thiết bị hỗ trợ nào khác cả

● AR có thể hoạt động cùng thiết bị hỗ trợ khác và người dùng vẫn tươngtác được với thế giới thật

● Mọi thao tác sử dụng đều sẽ được thực hiện thông qua các thiết bị di

Trang 40

● AR chủ yếu sử dụng phần mềm để xử lý các thuật toán mà không đòi hỏiphần cứng chuyên dụng.

Hình 2.11 Marker base AR

Markerless: Phức tạp hơn so với marker-based do không có sử dụng các

marker Khi này các thiết bị phải xác định được các vật thể khi nó xuất hiệntrong khung hình Sử dụng các thuật toán để nhận dạng vật thể rồi overlayhình ảnh lên các vật thể trong thế giới thật

Ngày đăng: 01/02/2023, 21:12

TỪ KHÓA LIÊN QUAN

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

w