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

Xây dựng ứng dụng mô phỏng chụp ảnh kĩ thuật số VR bằng OpenGL

69 0 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

Tiêu đề Xây Dựng Ứng Dụng Mô Phỏng Chụp Ảnh Kĩ Thuật Số VR Bằng OpenGL
Tác giả Nguyễn Thành Đô
Người hướng dẫn ThS. Nguyễn Thị Thanh Tâm
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Công nghệ Đa phương tiện
Thể loại Đồ án tốt nghiệp đại học
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 69
Dung lượng 14,8 MB

Nội dung

Ứng dụng chụp ảnh kĩ thuật số thực tại ảo là một ứng dụng cho phép người dùng luyện tập chụp ảnh kĩ thuật số với các điều chỉnh thiết lập DSLR và nhiều địa điểm chụp.. Ứng dụng chụp ảnh

Trang 1

BO THONG TIN VA TRUYEN THONG

HỌC VIEN CONG NGHỆ BUU CHÍNH

VIEN THONG

KHOA LUAN

TOT NGHIEP DAI HOC

XAY DUNG UNG DUNG

MO PHONG CHUP ANH

KY THUAT SO VR BANG

OPENGL

Người hướng dan: ThS.

Nguyễn Thị Thanh Tâm

Sinh viên thực hiện:

Trang 2

Hà Nội - 2023

Trang 3

HỌC VIEN CÔNG NGHỆ BƯU CHÍNH VIỄN THONG

KHOA ĐA PHƯƠNG TIỆN

C1

ĐỎ ÁN

TÓT NGHIỆP ĐẠI HỌC

Người hướng dan: ThS Nguyễn Thị Thanh Tâm

Sinh viên thực hiện: Nguyễn Thành Đô

Lớp: DI9PTDPT

Hệ đào tạo: Đại học chính quy

Hà Nội, 11/2023

Trang 4

HỌC VIEN CÔNG NGHỆ BƯU CHÍNH VIÊN CONG HOA XÃ HỘI CHỦ NGHĨA VIET

THÔNG NAM

KHOA ĐA PHƯƠNG TIEN Độc lập — Tự do - Hanh phúc

DE TÀI DO ÁN TOT NGHIỆP ĐẠI HỌC

Họ và tên sinh viên: Nguyễn Thành Đô

Lớp: DI9PTĐPT Khoá: 2019-2023

Ngành đào tạo: Công nghệ Da phương tiện

Hệ đào tạo: Đại học chính quy

1 Tên đồ án/khoá luận tốt nghiệp: Xây dựng ứng dụng mô phỏng chụp ảnh ki

thuật số VR bằng OpenGL

2 Lý do chọn dé tài:

Do sự bùng nỗ về sức mạnh của các thiết bị phần cứng mới cũng như các thuậttoán và khả năng truyền tin tương đối mạnh mẽ hiện nay đã thúc day sự phát triển của

các thiết bị thực tại ảo Hiện nay công nghệ thực tại ảo xuất hiện trong rất nhiều lĩnh

vực trong cuộc sống như: Du lịch, Giải trí, Marketing, Y tế, Quốc phòng, và quantrọng nhất đó là Giáo dục Nhờ có thực tại ảo mà một số các công việc phức tạp đòi

hỏi tiền bạc và an toàn cho người học được cải thiện rất nhiều giúp giảm chi phí và

nâng cao hiệu quả học tập Ứng dụng chụp ảnh kĩ thuật số thực tại ảo là một ứng dụng

cho phép người dùng luyện tập chụp ảnh kĩ thuật số với các điều chỉnh thiết lập DSLR

và nhiều địa điểm chụp Người dùng ứng dụng có thể tập sử dụng các loại máy anhDSLR đến nhiều nơi với các địa điểm đa dạng giúp người dùng dễ dàng lựa chọn máyanh DSLR ngoài thực tế mình muốn mua giúp tiết kiệm chi phí và không phải matcông sức di chuyền trong khi ta chi cần phải sử dung một bộ VR và thời gian tùy ý,không bị giới hạn bởi các yếu tố đời thực

Ngoài ra ứng dụng chụp ảnh kĩ thuật số VR này sẽ giúp người phát triển hiểu sâu

về các thuật toán xử lí đồ họa sao cho tối ưu và hién thị hình ảnh tốt, các thuật toán về

sinh địa hình, xử lí chúng và trên hêt có thê nghiên cứu vê câu tạo mat người và may

Trang 5

anh kĩ thuật sô đê qua đó có thê hiéu sâu về các đặc tính của kính VR, có thê có các giải pháp khăc phục các nhược diém cô hữu của kính VR đôi với người sử dụng (chóng mặt, buôn nôn, ).

Chính vì vậy, Em đã lựa chọn dé tài “ Xây dựng ứng dụng mô phỏng chụp ảnh kĩ

thuật số VR băng OpenGL” Chương trình sẽ có các chức năng như thay đổi các phụ

kiện của máy anh DSLR, thay đổi thời tiết, sinh địa hình, giúp người dung có thé

tập sử dụng các thiết lập của máy ảnh DSLR.

Nội dung chính của đồ an:

Đô án được chia làm các chương như sau:

Chương 1: Tổng quan về dé tài Chương này miêu ta bài toán và các chức năng của hệ

thống.

Chương 2: Cơ sở lí thuyết Chương này miêu tả các giải pháp, công nghệ sử dụng cho

các bài toàn đã nêu ở chương I.

Chương 3: Phân tích và thiết kế hệ thống Chương này sẽ đưa ra phương pháp xây

dựng hệ thống, biểu đồ Usecase, biểu đồ lớp và biểu đồ tuần tự cho từng chức năng

của hệ thống.

Chương 4: Xây dựng ứng dụng mô phỏng chụp ảnh kỹ thuật số VR băng OpenGL

Chương này xây dung các tính năng của hệ thống va đưa ra kết quả của việc xây dựng

hệ thống

Kết luận

Cơ sở dữ liệu ban dau:

Ngày giao đề tài: ⁄ /2023

Ngày nộp quyễn: /2023

GIẢNG VIÊN HƯỚNG DẪN SINH VIÊN THỰC HIỆN

Trang 6

(Ky, ghi rõ họ tên) (Ky, ghi rõ họ tên)

TRƯỞNG KHOA

(Ky, ghi rõ họ tên)

Trang 7

LỜI MỞ ĐẦU

Do sự bùng nỗ về sức mạnh của các thiết bị phần cứng mới cũng như các thuậttoán và khả năng truyền tin tương đối mạnh mẽ hiện nay đã thúc day sự phát triển của cácthiết bị thực tại ảo Hiện nay công nghệ thực tại ảo xuất hiện trong rất nhiều lĩnh vựctrong cuộc sống như: Du lịch, Giải trí, Marketing, Y tế, Quốc phòng, và quan trọngnhất đó là Giáo dục Nhờ có thực tại ảo mà một số các công việc phức tạp đòi hỏi tiền bạc

và an toàn cho người học được cải thiện rất nhiều giúp giảm chi phi và nâng cao hiệu quahọc tập Ứng dụng chụp ảnh kĩ thuật số thực tại ảo là một ứng dụng cho phép người dùng

luyện tập chụp ảnh kĩ thuật số với các điều chỉnh thiết lập DSLR và nhiều địa điểm chụp Người dùng ứng dụng có thể tập sử dụng các loại máy ảnh DSLR đến nhiều nơi với các địa điểm da dạng giúp người dùng dé dàng lựa chọn máy ảnh DSLR ngoài thực tế mình

muốn mua giúp tiết kiệm chi phí và không phải mat công sức di chuyên trong khi ta chỉcần phải sử dụng một bộ VR và thời gian tùy ý, không bị giới hạn bởi các yếu tố đời thực

Ngoài ra ứng dụng chụp ảnh kĩ thuật số VR này sẽ giúp người phát triển hiểu sâu

về các thuật toán xử lí đồ họa sao cho tối ưu và hiển thị hình ảnh tốt, các thuật toán vềsinh địa hình, xử lí chúng và trên hết có thé nghiên cứu về cấu tạo mắt người và máy ảnh

kĩ thuật số dé qua đó có thể hiểu sâu về các đặc tinh của kính VR, có thé có các giải phápkhắc phục các nhược điểm cố hữu của kính VR đối với người sử dụng (chóng mặt, buồn

nôn, ).

Chính vì vậy, Em đã lựa chọn dé tài “ Xây dựng ứng dụng mô phỏng chụp ảnh ki

thuật số VR bang OpenGL” Chương trình sẽ có các chức năng như thay đồi các phụ kiện

của máy ảnh DSLR, thay đổi thời tiết, sinh địa hình, giúp người dùng có thé tập sửdụng các thiết lập của máy ảnh DSLR

Nguyễn Thành Đô i

Trang 8

LỜI CÁM ƠN

Trước tiên, em xin gửi lời cảm ơn chân thành đến giảng viên hướng dẫn của em, côNguyễn Thị Thanh Tâm, người đã luôn tạo điều kiện và hỗ trợ em trong suốt quá trìnhthực hiện dự án Những kiến thức, hướng dẫn và góp ý của cô đã giúp em hoàn thành

được sản phẩm một cách hoàn chỉnh nhất.

Đồng thời, xin cảm ơn các anh chi, bạn bè, người than đã chia sẻ những kinh nghiệm

quý giá và cung cấp những hình ảnh, tài nguyên, tư liệu quan trọng đã hỗ trợ em rất nhiều

trong quá trình xây dung sản phẩm

Cuối cùng, em xin được gửi lời cảm ơn tới toàn thé thầy cô giáo đã và đang công táctại Học viện Công nghệ Bưu Chính Viễn thông nói chung và các thầy cô trong khoa Da

Phương Tiện nói riêng đã tận tình chỉ bảo và truyền đạt lại cho em và các bạn sinh viên

những kiến thức quý báu làm hành trang dé có thé phát triển trên con đường tri thức trong

tương lai.

Nguyễn Thành Đô ii

Trang 9

LỜI MỞ ĐẦU - 2 2 SE 1211212212112112112111 11211211111 211.11 1121221111221 1211 re.

MỤC LỤC - 2-55-2122 2222212212212212112112112112111111121121121111111111211.11.11 0111112122111 re

DANH MỤC CAC BẢNG - 2-52 52 21221521571121211211211211211211111211211 1111111111121 21111011DANH MỤC CÁC HÌNH VE\.uu.cecesssscsscececscsesecscsvscececsvsveucscsvsvsucacsvavsucecscavsucecevavsrcasavavsreacaravavsucasavaveneecenCHƯƠNG 1: TONG QUAN VE DE TẢI 5 SE SE2SE2E2EEEEEEE2E1217111511211211111211211111111111 11 11 te

1.1 Đặt vấn đề s- 2s 2t 22t 2112712211211 11211211 111121111 111111111.

0ã 08 a5

1.3 BG cuc 46 ẽ Ă

2.1 Giới thiệu về máy ảnh kỹ thuật số Digital Single lens Reflex 5 S25 ssssskrsserseersske

2.1.1 Giới thiệu về máy ảnh kỹ thuật SỐ 2 51952 S£+E£EE£EEEEE2EE2EEEEE21221211717127171 211.1 xe2.1.2 Giới thiệu về máy ảnh Digital Single-Lens Reflex 2- 2: ©52S£+E£2EE2EEeEEerEerxrrzrxrr

2.2.1 Tổng quan về OpenL 2- ¿+2£+S<9EE9EE9EEEEE2E12215212712112112112112111111711211 211211111 cư2.2.2 Các thành phần chính của Open(LL ¿- + + ++E+E2EE2EE£EE£EEEEEEEEEEEEEE12212212717121.22 xe

2.2.3 Ly do lựa chon OpeniL - - c + 32 1121131111111 11111911191 1111 11011 11110111111 HH ng Hy

2.3 Giới thiệu về ngôn ngữ lập trình C-+-E + s2S22E%2E5EEEEEEE121121715712112112111111121111 21111 ree

2.3.1 Tổng quan VỀ C-+-E -¿- 2 + +s9Ek9E1211212157151121121111121111111111111111111111211 111111111 cee2.3.2 Lịch sử và phát triỀn của C-++ ¿- ¿5s 2k 2x 2122112112712211111121121121121111111112211211 212 ce

2.3.3 Cac dic 000 T8 Đ

2.4 Giới thiệu về Visual Sfuđi ¿- + + 2x 2x21 2112212212712121121121121121111111111121121111 11112 re

2.8.1 Tổng quan về Kết xuất dura trên vật lý -+- + 2+ +E9EEEEE2E121521571271211211111211 2111 1E xe

2.8.2 Mô hình bề mặt Microfacet c.ccccccccccscsssssscssescsesesecsesesecscsesueecscsvevsucacavevsusacsvavsueacseavevevavavaeeeee

2.8.3 Bao toan i30) 110

Nguyễn Thành Đô iv

Trang 10

2.8.4 Phương trình phản Xạ c2 221112111211 1211 1911101111111 111 119111 HH HH HH ng TH HH

2.8.5 BRIDF - 2-22 212 127112112711211211211211211211 1111111011101 eerrde

2.8.6 Các loại Texture trong Kết xuất dựa trên vật 2=.CHƯƠNG 3: PHAN TÍCH VA THIET K 2 2 £+SE+SE+EE9EEEEEE2EE2E122122171711211211211211 2121 2e

3.2 Biểu đồ thiết kế các lỚp +52 2 SSE9EEEE12E12121571211211211111112111111112112111112111 11111 xe

3.3 Biểu đồ hoạt GONG GHdỶÝẢÝẳẢẢ

3.3.1 Chức năng điều khiển nhân vật - ¿2 2+2 +E£EE9EE2EE2EEEEEEE2E12112171112112112171 111 y6

3.4 Biểu đỗ tuần tự ¿- ¿2222k 2x 211211211211211211211271211211 2112111 1111112121211 21112211 reg

3.4.2 Chức năng Thay đổi thông số €aImera - 2-2: £2S£2S££SE£EE£EEEEE2EE2E122122171211222221221 227k.3.4.3 Chức năng thiết lập vật thỂ - - 5-52 +SE221 E1 E21921211211211211271111121121121121111 11112111 Xe

CHƯƠNG 4: TRIÊN KHAI VÀ XÂY DUNG UNG DỤNG 2-©22+2E22E2E2E2EE22EE2212EEeEEerkee

4.1 Cài đặt triển khai hệ thống, -¿- 2-2 +S+E2E22E12E19E1E711711211211211211711112112112112111111111 21 1g rrờn

4.1.1 Cấu hình phần cứng + +52 £+S+E£EE9EE2E12E2157121211211211111211211111111111 1111111 rre4.1.2 Chuan bị tài nguyên - - 2-5252 2E EEE12112112111211211211111121121111111112111 11 1rre

4.2 Một số van đề khó khăn và cách giải QUYẾT - +- 2 2S +EÊEEEEE2E2EEEEEEEEE1217121712112121 11 Xe

KET LUAN i oceccsccssscsscssesscsssssssvsssscsussucsessssussussvssvsscsussussvssssussussussssissussussessesissessessessssussssessesississeeseeseeeeen

Nguyễn Thành Đô iv

Trang 11

DANH MỤC CAC BANG

Bảng 1 Giá trị màu các ánh sáng phản xạ (FO) của bỀ mặt ¿- 2 2+2s+SE9EEt2E2E122122122121 7122222 rxe

Bảng 2 Mô tả các chức năng và nhiệm vụ của chÚng - -‹- - + 3111311131119 11 91118 11111811181 81 ng rời

Bảng 3 Thống kê về dự án - 2 5£ +SSE9SE2E£2E£EEEEE2E12E7152121121121711111211111111112111111111111 112121

Nguyễn Thành Đô v

Trang 12

DANH MỤC CÁC HÌNH VE

Hình 1 May anh Digital Single-lens R€fÏ€X - - c2 22 121112111911 1911 5111911 91119 HH KH kg kh

Hinh 2 M6 hinh mot hé may anh 808530 0n da A

Hinh 2 Logo OpenGL ce eeceeceeseeeseesseesecseeseeeeceseceeceecsaeceseceseceeeeeeeeceneeeneeeneeeneeseeesneeseeeeenaeeeenaeeeeea

Hình 3 Chu trình kết xuất trong OpenGL ceccccccsccsscsssessessessessessssssessessessessessusssessessessessessessnsssessessesseeseeeeHình 4 Chu trình kết xuất từ các dữ liệu trong OpenGL - 2 2 s+x+EE£+EtEEE2EE2EE2EEE2E2EE2EExzxerrree

Hình 6 Biểu thị ánh xạ của VAO với VBO và EBO cccccccsscsecescsesesecscsesusececsvsucececsvsrsusecsvsvsusacevaveusaceveves

Hình 7 Giá tri stride va offset trong vertex DUIÍẨGT - - - +2 19119111911 911 111911

Hình 8 Mô tả luồng nhận và xử lí dữ liệu và kết xuất hình ảnh trong OpenGL 2-2: s2 25+:

Hình 10 Mô tả một cube texture được tạo bởi 6 ảnh - 2 11112221111 12231 11119211 1111021111 khen ngư

Hình 11 Mô tả kết quả lay mẫu của phương pháp Nearest -2- 2-52 2 +EeEE9EE2EE2E£EEEEEEEEEErEerkerkrrredHình 12 Mô tả kết quả lấy mẫu của phương pháp Lin€ar - 2-2 2c £+S£2E£+E££EE£EE£EEEEEE2EEEEESExerkerxeeHình 13 So sánh kết quả kết xuất của phương pháp Nearest và Linear 2-2 2+ +2x+£++£++EezxerxzxecezHình 14 Mô tả kết quả các thiết lập wrapping cho †€XẦUTE - 2 2 s+SE‡EE2E22EE2E122127171712121 22 crxe

Hinh 15 Logo ng6n ngtt C+t 1

Hình 16 Các tinh chat của hướng đối tuQng e.ccecceccccsessessesssssessessessessessesssssssssessessessessssssssessetsessesseeaseeeHình 17 Mô tả bề mặt gồ ghé VA DE ii PP ằ (1lHình 18 Mô tả các vector pháp tuyến của bề mặt 2-2 + +sSE+EE2EE2E£EEEEEEE12E12171712112117171 211 ce.Hình 19 Hình kết xuất bởi các giá trị rouglhiness - - ¿ ¿52+SE+EE£EE9EEEEE2112112112212717171211211 211 tre.Hình 20 Mô tả năng lượng phản xa và suy giảm trong bề mặt gỗ ghỀ - 2-2: 252 2+E+E+£E£EEzEzEeredHình 21 Minh họa các giá trị trong phương trình kết Xuất - 2 2 2 s+SE+2E2E2EE2EE2EEEEEEEErErrrrrrrred

Hình 22 Thông lượng bức xạ của các bước SÓNE - 2c 2 3211911211911 119111111 11111111 nh nh Hiệp Hình 23 Mô ta góc œ trong không g1an - c2 1911121131111911 91119111911 011 01110111111 HH HT ven

Hình 24 Mô tả các đại lượng œ và 0 trong không Ø14H c6 0632113511351 351111 1111111111111 11 ke

Hình 25 Mô tả các đại lượng trong công thức tinh lượng DUC Xạ - 5c 22c SE +* E+svEssersreererrexrs

Nguyễn Thành Đô vỉ

Trang 13

Hình 26 Mô tả vector pháp tuyến (n) tại vị trí p trong bán cầu © - + s+2s+S++E£2ESEEEEE2EE2EEEeEkerkrreeHình 27 Các giá trị kết xuất của độ nhám - 2-2 2 +SE+SE£EEEEE2E1221571E7171211211211221271712121 21.2 tre.

Hình 28 Mô tả vector nhìn và vector phản Xạ - - c1 1121112111911 1911 111111111111 1111 1 H1 ng ng ngư

Hình 29 Mô tả hình kết xuất bởi các giá trị rouglhiness - 2 2 2 s2x+2E£2Et2E2EE2E12212712121121221 22 xe2

Hình 34 Mô tả họat động điều khiển nhân vật - 2-2 2 2 +E£SE9EE2EE2EEEEEEEEEE2E12171712212112171 211.21 cxe

Hình 37 Biéu đồ tuần tự chức năng điều khiển nhân vật 2-2 2 +E+SE+EE+EE£E£EEEEE2EEEEEEEEErEkrrkrrreeHình 38 Biểu đồ tuần tự chức năng thay đổi thông số camera 2-2: 2+ 2E2+E++EE2EE£EEEEEEeErzrerrrree

Hình 43 Cửa số tạo địa hình và camera xuất hình ¿- + k9 x‡EEk£EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEErkrkrkrrree

Nguyễn Thành Đô vỉ

Trang 14

DANH MỤC CAC TU VIET TAT

Cấu trúc dit liệu hiển thi của bối cảnh

Nguyễn Thành Đô vi

Trang 15

CHƯƠNG 1: TONG QUAN VE DE TÀI

1.1 Dat van dé

Do sự bung nỗ về sức mạnh của các thiết bi phần cứng mới cũng như các thuậttoán và khả năng truyền tin tương đối mạnh mẽ hiện nay đã thúc đây sự phát triển của cácthiết bị thực tại ảo Hiện nay công nghệ thực tại ảo xuất hiện trong rất nhiều lĩnh vựctrong cuộc sông như: Du lịch, Giải tri, Marketing, Y tế, Quốc phòng, và quan trọngnhất đó là Giáo đục Nhờ có thực tại ảo mà một số các công việc phức tạp đòi hỏi tiền bạc

và an toàn cho người học được cải thiện rất nhiều giúp giảm chi phí và nâng cao hiệu qua

học tập.

Với những yếu tố đã nêu cùng với mong muốn nghiên cứu và phát triển một sản

phẩm thực tại ảo hoan chỉnh phục vụ đồ án tốt nghiệp này đã đặt ra một van dé: Làm thénào dé tao ra một sản pham thực tại ảo chất lượng, hấp dẫn và thu hút, tối ưu và được sựquan tâm của nhiều người

1.2 Mục tiêu đề tài

Trong phần này, em sẽ trình bày về mục tiêu và phạm vi của đề tài với gameengine và ứng dụng thực tại ảo, nhằm có một cái nhìn tổng quan về các engine gamecũng như các sản pham thực tại ảo hiện nay, đánh giá các ưu điểm và hạn chế của chúng

Hiện nay, đối với ngành công nghiệp đồ họa, dé phát triển các sản phẩm game hay

thực tại ảo, chúng ta dé dang có thé tạo được sản phẩm thông qua các game Engine Ta

có thé không cần bận tâm đến các phan lõi như kết xuất, vật lí, quản lí tài nguyên cơ bản

như texture, vật liệu, , mà chỉ cần tạo đến các chức năng, tương tác mà chúng ta muốn,

qua đó tạo đến sản phẩm cuối cùng.

Nhưng do họ là các game engine lớn, họ phục vụ nhiều nhu cầu như làm game cả2D lẫn 3D, nhiều loại trình đồ bỏng trong | chương trình khi tao ra sản phẩm cuối, một

số thao tác với các tài nguyên có san sẽ khó hoặc rất khó, thậm chí ta phải viết lại từ đầu

và theo khuôn mẫu của họ Do vậy dé phù hợp với việt giả lập máy ảnh Digital

single-lens reflect, sử dụng rất nhiều về xử lí khung hình hậu kì nên em tạo ra một engine mới

chỉ phục vụ 1 loại đỗ bóng chính là Physically based rendering

Không chỉ vậy đề tài không chỉ giúp em xây dựng các hệ thống như kết xuất hìnhảnh, xử lí logic, quản lí tài nguyên, cài đặt những thuật toán tối ưu cho việc kết xuất

Nguyễn Thành Đô |

Trang 16

hình ảnh, và hiéu rd một phần nguyên lý của máy ảnh kỹ thuật số, mô phỏng chúng ra sao

trong máy tính.

1.3 BO cục đồ án

Đồ án gồm tất cả 4 chương, mỗi chương có các phần nhỏ hơn tập trung trình bày một nộidung cụ thể liên quan đến sản phẩm cuối cùng Các phần tiếp theo của báo cáo đồ án tốtnghiệp này được tổ chức như sau

Chương 1: Tổng quan về đề tài Chương này miêu tả bài toán và các chức năng của hệ

thống

Chương 2: Cơ sở lí thuyết Chương này miêu tả các giải pháp, công nghệ sử dụng chocác bai toàn đã nêu ở chương I Cụ thể em sẽ giới thiệu sơ lược về OpenGL, các dữliệu trong OpenGL, cách cấu hình và sử dụng chúng, cách sử dụng các thư việnOpenVR, GL Math và đóng góp của chúng trong chương trình, Sơ bộ về phương pháp

đồ bóng Dựa trên vật ly và cách cài đặt trong OpenGL, Perlin Noise và ứng dụng

trong xây dựng, mô phỏng địa hình.

Chương 3: Phân tích và thiết kế hệ thống Chương này sẽ đưa ra phương pháp xây

dựng hệ thống, biểu đồ Usecase, biểu đồ lớp và biểu đồ tuần tự, biểu đồ hoạt động

cho từng chức năng của hệ thông

Chương 4: Xây dựng ứng dụng mô phỏng chụp ảnh kỹ thuật số VR bằng OpenGL.Chương nay xây dựng các tinh năng của hệ thống va đưa ra kết qua của việc xây dựng

hệ thống

Nguyễn Thành Đô 2

Trang 17

Đồ án tốt nghiệp đại học Chương 2: Cơ sở lý thuyết

CHƯƠNG 2: CƠ SỞ LÝ THUYET

2.1 Giới thiệu về máy ảnh kỹ thuật số Digital Single lens Reflex

2.1.1 Giới thiệu về máy ảnh kỹ thuật số

Máy ảnh kỹ thuật số (hay còn gọi là máy ảnh số) là máy ảnh điện tử, có dùng pin

và linh kiện điện dé hoat dong dé tạo ra bức anh, tự động trong việc thu nhận hình ảnh

cũng như xử lý.

Thay vì dùng phim, máy ảnh số sẽ dùng cảm biến hình ảnh, nhiệm vụ của cảmbiến là thu nhận ánh sáng và chuyền đổi tín hiệu hình ảnh thu thập được thành một bứcảnh, chất lượng ảnh đẹp hay xấu phụ thuộc nhiều vào cảm biến ảnh bên cạnh những yếu

tô khác.

2.1.2 Giới thiệu về máy ảnh Digital Single-Lens

Reflex

Hình I Máy anh Digital Single-lens Reflex

May ảnh kỹ thuật số Digital Single-Lens Reflex (DSLR) là một loại máy anh kỹthuật số sử dụng một gương phan xa dé hiên thị hình anh từ ống kính lên kính ngắm, chophép người dùng xem chính xác cảnh mà họ sắp chụp

Máy ảnh DSLR thường được coi là loại máy ảnh kỹ thuật số cao cấp hơn so vớicác loại máy ảnh khác, chăng hạn như máy ảnh compact và máy ảnh mirrorless Chúng

Nguyễn Thành Đô 3

Trang 18

Đồ án tốt nghiệp đại học Chương 2: Cơ sở lý thuyết

cung cấp khả năng kiểm soát sáng tạo nhiều hơn, chất lượng hình ảnh cao hơn và khảnăng tương thích với nhiều loại ống kính và thiết bị khác

Các thành phần của máy ảnh Digital Single-Lens Reflex:

Trang 19

Đồ án tốt nghiệp đại học Chương 2: Cơ sở lý thuyết

2.2 Giới thiệu về OpenGL

OpenGL được phát triển bởi Khronos Group, một t6 chức phi lợi nhuận tập hợp các công

ty công nghệ lớn OpenGL là một tiêu chuẩn kỹ thuật được sử dụng trong nhiều ứng dụng

đồ họa, bao gồm trò chơi điện tử, phần mềm hỗ trợ thiết kế, mô phỏng khoa học, và thực

té ảo.

2.2.2 Các thành phần chính của OpenGL

OpenGL cung cấp một cách tiêu chuẩn để truy cập vào phần cứng đồ họa của máy

tính OpenGL bao gồm một số thành phần quan trọng, bao gồm:

@ Primitive: Primitive là các đôi tượng cơ bản được sử dung dé tạo ra các hình dạng

trong OpenGL Các primitive phô biến bao gồm điểm, đường, hình đa giác và cáchình khối

Nguyễn Thành Đô 5

Trang 20

Đồ án tốt nghiệp đại học Chương 2: Cơ sở lý thuyết

Vertex Arrays/

Buffer Objects

Per-Fragment Framebuffer

Operations

@ Buffer: Buffer là vùng lưu trữ dữ liệu được sử dung dé lưu trữ dữ liệu cho các

primitive Các buffer phổ biến bao gồm vertex buffer, index buffer và texture

Trang 21

Đồ án tốt nghiệp đại học Chương 2: Cơ sở lý thuyết

@ Shader: Shader là các chương trình máy tính được sử dụng dé tính toán các thuộc

tính của các primitive, chăng hạn như mau sac, độ sang và bóng đô Shaders có thê

được sử dụng đê tạo ra các hiệu ứng đô họa nâng cao

Attribute 2 Attribute 3

Attribute 4

Attribute 5 Attribute 6

Attribute 7

au

Hình 5 Truyền dữ liệu vào shader trong OpenGL

@ Ngoài ra còn các thành phần khác như Texture, Sampling, RenderBuffer,

2.2.2.1 Tổng quan các đối tượng trong OpenGL

OpenGL quản lí các tài nguyên là các thực thé có id

Trong OpenGL các đối tượng được khai báo qua câu lệnh:

glGen<name>(n, id) Trong đó

name: có thê là VertexArrays, Buffers, FramBuffer, Textures,

n: là số lượng đối tượng khai báo.

id: là con trỏ trỏ đên vi trí lưu id của đôi tượng.

Trang 22

Đồ án tốt nghiệp đại học Chương 2: Cơ sở lý thuyết

1 Đối tượng Vertex Arrays, Vertex Buffer và Element Buffer

Vertex Arrays là một đối tượng co bản liên kết đến các Vertex Buffer.

Vertex Buffer là đối tượng dùng dé lưu trữ thông tin của của các cạnh như vị trí, màu sắc, vector pháp tuyến hay bat cứ thông tin tùy biến nào.

Khi vẽ một hình ta có thể sử dụng một đỉnh nhiều lần cũng tức là đỉnh đó được lưu lặp lại nhiều lần trong Vertex Buffer, điều đó không tối ưu về mặt bộ nhớ Element Buffer là một đối tượng như Vertex Buffer được gắn vào Vertex

Array, lưu trữ thứ tự kết xuất của các đỉnh trong Vertex Buffer điều này giúp giảm

dữ liệu phải xử lí ở cả CPU lẫn GPU.

VAO 1 VBO 1

attribute pointer 0 pos[0] pos[1] pos[2] pos[3] _, pos[n]

attribute pointer 1

attribute pointer 2 element buffer object

VAO 2

attribute pointer 0 attribute pointer 1

attribute pointer 2 index data

attribute pointer 15

EBO 2

element buffer object index data

Hình 6 Biểu thi ánh xạ của VAO với VBO và EBO

Dưới đây là minh họa khai báo một Vertex Arrays (Ta có thé loại bỏ các dòng khai báo và cau hình của Element Buffer nếu không can):

vertices[] = { };

Nguyễn Thành Đô 8

Trang 23

Đồ án tốt nghiệp đại học Chương 2: Cơ sở lý thuyết

rays Object glGenVertexArrays(1, &

// Khởi tao Ve x Buffer Object

Ta khai báo các thuộc tinh của một đỉnh khi truyền dữ liệu từ CPU sang

GPU qua câu lệnh:

glVertexAttribPointer(index, size, type, normalized, stride, pointer) Trong do:

index: vi trí của thuộc tính.

size: là số lượng gia tri thé hiện thuộc tinh đó (gia sử như thuộc tính vi trí đôi với game 2D thì là 2, còn đối với game 2.5D hay 3D, hay có thể là màu sắc

thì là 3).

Nguyễn Thành Đô 9

Trang 24

Đồ án tốt nghiệp đại học Chương 2: Cơ sở lý thuyết

type: là kiểu d& liệu đầu vào (có thể là GL_INT,GL_UNSIGNED_INT, GL_FLOAT, GL DOUBLE, ).

stride: là số bước, có thé hiểu đơn giản là kế tiếp bao nhiêu giá trị

trong Vertex Buffer thì là giá trị của một Đỉnh mới.

pointer: hay còn gọi là Offset là phan bù dé đến giá trị cần lấy.

VERTEX 1 VERTEX 2 VERTEX 3

POSITION: STRIDE: 12 ————>

= OFFSET: 0

Hinh 7 Gia tri stride va offset trong vertex buffer

Ta truyền dit liệu vào các buffer thông qua ham:

glBufferData(target, size, data, usage)

Trong đó:

target: chi dinh dén GL_ARRAY BUFFER hay

GL_ELEMENT ARRAY BUFFER tương ứng với VBO hay EBO.

size: là kích cỡ của mang đữ liệu đầu vao.

data: là con trỏ trỏ đến vị trí di liệu

Trang 25

Đồ án tốt nghiệp đại học Chương 2: Cơ sở lý thuyết

2.2.2.2 Shader va OpenGL Shading Language

2.2.2.2.1 Shader

Shader trong OpenGL là một chương trình nhỏ được chạy trên GPU dé xử lý các

đỉnh và điểm ảnh của một đối tượng 3D Shader được sử dụng để kiểm soát hình dang,

mau sắc, ánh sáng va các hiệu ứng khác của đối tượng 3D

Các chương trình này được chạy cho từng phan cụ thé của đường ống dé họa Về

cơ ban, shader giống như là các chương trình chuyển đổi đầu vào thành đầu ra Nó là các

chương trình rất biệt lập ở chỗ chúng không được phép giao tiếp với nhau, chỉ giao tiếp

Vertex processing

Trang 26

Đồ án tốt nghiệp đại học Chương 2: Cơ sở lý thuyết

Như hình 8, trong các quy trình màu xanh lá cây, ta có thể tác động, xử lí đến các

gia tri của chúng, còn các quy trình màu xanh dương là việc tính toán của máy tính.

2.2.2.2.2 OpenGL Shading Language

OpenGL Shading Language (viér tat GLSL) là một ngôn ngữ có cấu trúc gần giống

C, tương tác với phần cứng đồ họa của máy tinh dé có thé xử lý, tính toán đữ liệu của cácpha xử lí đỉnh (vertex), miếng (fragment) được mô tả ở Hình 2.9

Có hai loại shader chính: vertex shader va fragment shader.

Vertex shader được chạy trên mỗi đỉnh của đôi tượng 3D va được su dụng dé tính toán vi trí, màu sắc và các thuộc tính khác của điêm anh.

Fragment shader được chạy trên mỗi diém anh của đôi tượng 3D và được sử dụng

dé tính toán màu sắc cuôi cùng của diém ảnh.

Ngoài ra còn có geometry shader là một loại shader được sử dụng trong OpenGL

dé tạo ra các đối tượng 3D phức tạp hơn những gì có thé được tao ra bằng vertex shader

va fragment shader GS được chạy sau vertex shader và trước fragment shader.

Đối với phiên bản OpenGL 4.5 trở lên ta có thể sử dụng Tessellation shader, đượcthực hiện ngay sau Vertex Shader, dé tạo ra nhiều đỉnh từ dữ liệu gốc qua các phép nội

suy và ngoại suy dé có thé tạo ra các đối tượng 3D phức tạp hiệu quả hơn như địa hình.

2.2.2.3 Texture

Texture cũng là một đối tượng trong OpenGL như Vertex Arrays và Buffer Array.

Texture là một hình ảnh 2D (cũng có thể là 1D hay 3D, thông thường là 2D) được

sử dụng đề thêm chỉ tiết cho một đối tượng Texture thường chứa thông tin về màu sắc

(RGB hoặc RGBA), độ trong suốt, hoặc các dạng dữ liệu khác như độ sâu (depth) hoặc

normal vectors Texture có thể được áp dụng lên bề mặt của các đối tượng để tạo ra các

hiệu ứng như gỗ, kim loại, da, v.v.

Các cạnh của Texture nằm trong phạm vi từ 0 đến 1 theo trục x và y ( thêm trục z

nếu thông tin dữ liệu ảnh là mảng 3 chiều hay chỉ mỗi trục x nếu thông tin dữ liệu ảnh là

1 chiều) Việc truy xuất màu sắc texture qua các cạnh gọi là lấy mẫu Cạnh bắt đầu từ (0,0) tức là vị trí góc trái đưới và kết thúc tại (1,1) tức vị trí góc phải trên.

Nguyễn Thành Đô 12

Trang 27

Đồ án tốt nghiệp đại học Chương 2: Cơ sở lý thuyết

Hình 9 Mô tả tọa độ các gốc cua texture

2.2.2.3.1 Các loại Texture

2.2.2.3.1.1 Texture 2d

Texture 2d là dang phổ biến cua texture, texture này lưu dữ liệu như các bức anh

ta thường thấy hàng ngày.

2.2.2.3.1.2 Texture Cube

Texture cube thường được tạo bởi 6 bức ảnh khác nhau và chúng liên kết thành

một hình như dưới đây Texture cube là một hình lập phương, mỗi mặt của hình lập

phương thé hiện một anh 2D (hoặc cũng có thé là một texture 2d) Ta cũng có thé tạo môi

trường, không gian cho chương trình.

Nguyễn Thành Đô 13

Trang 28

Đồ án tốt nghiệp đại học Chương 2: Cơ sở lý thuyết

2.2.2.3.1.3 Texture 3D

Texture 3D có dữ liệu màu sắc và thông tin khác được t6 chức theo chiều sâu,

thường được sử dụng trong các hiệu ứng 3D và khối tạo hình.

2.2.2.3.1.4 Render Texture:

Render Texture là một trường hop đặc biệt, texture nay có thể là một trong 3 loại

texture trên, dir liệu của nó không được tải từ cái file hình ảnh như jpeg, png, hdr,

mà nó được lay ứừ chính những khung hình kết xuất được ra màn hình Từ đó ta

có thê tạo nhiều các hiệu ứng trong quá trình xử lí hậu ky (Post processing)

2.2.2.3.2 Thiết lập hiển thị cho Texture

2.2.2.3.2.1 Texture Filtering

Kích cỡ của bức ảnh khi tải vào là cố định, vay trong thế giới 3 chiều của chúng tanhiều khi dé kết xuất hiển thị bức ảnh đó ở nhiều độ phân giải khác nhau, không thể luôntrùng khớp với độ phân giải đầu vào, điển hình trong các trường hợp ảnh cần hiên thị lớn

hơn so với ảnh gốc Trong trường hợp nay, máy tinh sẽ tính toán lay ra màu hién thị của texture, điểm này gọi là texel (cách gọi tắt của Texture element).

Dé hiển thị các điểm này (Texel) OpenGL cung cấp 2 phương pháp:

Nguyễn Thành Đô 14

Trang 29

Đồ án tốt nghiệp đại học Chương 2: Cơ sở lý thuyết

Nearest (láng giéng gần nhất hay lọc điểm): là phương pháp mặc định nếu không

cầu hình cho texture, OpenGL sẽ lựa chọn ra texel có tâm gần nhất với tọa độ của texture.

Hình 11 Mô tả kết quả lấy mẫu của phương pháp Nearest.

Linear (lọc tuyến tính hay còn gọi là Bilinear): là nhận một giá trị nội suy từ các

texel lân cận của tọa độ texture, tính xấp xỉ màu giữa các texel màu khác xung quanh nó.

Khoảng cách từ tọa độ texture đến tâm của texel càng nhỏ thì texel đó càng đóng góp

nhiều vào màu được lẫy mẫu.

Hình 12 Mô tả kết quả lấy mẫu của phương pháp Linear.

GL_NEAREST GL_LINEAR

Hình 13 So sánh kết quả kết xuất của phương pháp Nearest va Linear.

Phương pháp lấy láng giềng (Nearest) tạo ra các răng cưa do nó lấy 1 pixel xác

định, ngăn bão hòa với các màu gần đó, ngược lại lọc tuyến tính (Linear hay Bilinear) lại

cho kết quả màu mượt, mịn hơn do nó tính độ đóng góp của các màu lân cận Trong các

ứng dụng 3D người ta thường sử dụng lọc tuyến tính giúp hình ảnh mượt, không có các

Nguyễn Thành Đô 15

Trang 30

Đồ án tốt nghiệp đại học Chương 2: Cơ sở lý thuyết

răng cưa, ngược lại với các ứng dụng sử dụng đồ hoa Pixel thì phương pháp lay lánggiéng lại là lựa chọn chủ yếu

2.2.2.3.2.2 Texture Wrapping

Các cạnh cua texture thông thường nằm trong khoảng (0,0) đến (1,1) vậy khi mà

các cạnh này vượt quá các ngưỡng đó ta sẽ có các thiết lập thuật toán hién thị texture choriêng các điểm đó theo các kiểu mà OpenGL hỗ trợ: lặp lại (repeat), lặp gương (mirrorrepeat), hiển thị theo cạnh của texture (Clamp to edge), hiển thị theo viền của texture

(Clamp to border).

GL_REPEAT GL_MIRRORED_REPEAT GL_CLAMP_TO_EDGE GL_CLAMP_TO_BORDER

Hình 14 Mô ta kết quả các thiết lập wrapping cho texture

Ta có thé thiết lập riêng các cài đặt theo từng trục (s,t đối với ảnh mang 2 chiều và

s, t, r nếu là ảnh mảng 3 chiều) Dưới đây là ví dụ cho thiết lập lặp gương theo 2 trục s va

t (kết quả thu được như hình thứ 2 của ảnh trên)

glTexParameteri(GL TEXTURE 2D,GL TEXTURE_WRAP_S,GL MIRRORED_REPEAT);

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_MIRRORED_ REPEAT);

Ngoài ra trong trường hop sử dung Clamp to Border ta có thé mong muốn đổi màu

đường biên sang màu khác ta có thể sử dụng lệnh sau:

float borderColor[] = { 1.0f, 1.0f, 0.0f, 1.0f };

glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_BORDER_COLOR, borderColor);

2.2.3 Ly do lua chon OpenGL

OpenGL là một thư viện phat triển game, các ứng dung đồ họa đa nền tang vàđược sử dụng rộng rãi trong ngành công nghiệp game và các ứng dụng đỗ hao Nó có khanăng hỗ trợ phát triển game 2D và 3D với các tính năng như đồ họa tuyệt vời với nhiều

Nguyễn Thành Đô 16

Trang 31

Đồ án tốt nghiệp đại học Chương 2: Cơ sở lý thuyết

tùy biến cho người phát triển đặc biệt trong cả các phần tiền, hậu kì và ngay khi kết xuất

Bjarne Stroustrup đã bat đầu làm việc với khái niệm lớp trong 1979 Y tưởng tao

ra một ngôn ngữ mới bắt nguồn từ kinh nghiệm lập trình khi mà ông viết luận án tiến sĩ.Stroustrup nhận ra rằng Simula có nhiều tinh năng hữu dụng cho việc phát triển một phan

mềm lớn nhưng nó đã quá chậm trong ứng dụng thực tẾ, trong khi đó, BCPL lại nhanh

nhưng ở cấp quá thấp và không tiện cho việc phát trién phần mềm lớn Đến khi làm việc

ở Bell Labs, thì ông gặp phải vấn đề trong việc phân tích nhân Unix với việc tính toánphân tán Dùng lại kinh nghiệm lúc làm luận án tiến sĩ, Stroustrup cài thêm các tính nănggiống như Simula vào trong C dé nâng cao C được chọn là vì đó là ngôn ngữ tông quát,nhanh và năng động Lan đầu tiên, các chức năng như là lớp, lớp dẫn xuất, kiểm tra kiểu

mạnh, nội tuyến, và đối số mặc định đã được thêm vao trong C Lần xuất bản đầu tiên

vào thị trường xảy ra trong tháng 11/1985 Được ISO công nhận vào năm 1998,

Nguyễn Thành Đô 17

Trang 32

Đồ án tốt nghiệp đại học Chương 2: Cơ sở lý thuyết

2.3.3 Các đặc điểm nổi bật

Hình 16 Các tính chất của hướng đối tượng

® Lập trình hướng đối tượng (OOP) và Lập trình hướng cấu trúc: Cho phép cấu trúc

ứng dụng theo mô hình cấu trúc vă theo mô hình lớp và đối tượng, tạo ra mã nguôn có cấu trúc theo các quy định của lập trình hướng đối tượng từ đó giúp dự

án linh hoạt va dé bảo tri.

@ C++ có thể chạy trên nhiều nền tang khác nhau như Windows, Mac OS, một số

biến thể của UNIX và các biến thé của hệ điều hành Linux.

e@ Tu quản lí tài nguyên: lập trình viên phải tự quản lí bộ nhớ một cách thủ công,

mặc dù có thể gặp khó khăn khi quản lý bộ nhớ nhưng nếu quản lý tốt ta sẽ có

được chương trình có hiệu năng tôt hơn rât nhiêu so với các ngôn ngữ bậc cao.

® Cộng đồng lớn: Do lịch sử phát triển lâu đời của nó nên đã tạo ra một cộng đồng

lớn với đa dạng các thư viện mở rộng/

2.4 Giới thiệu về Visual Studio

Visual Studio là một môi trường phát triển tích hợp (IDE) được phát triển bởiMicrosoft Được sử dụng để phát triển các ứng dụng máy tính cho nhiều nền tảng khác

nhau, bao gồm Windows, macOS và Linux.

Visual Studio cung cấp một bộ các công cụ và tính năng mạnh mẽ giúp các lập

trình viên tạo ra các ứng dụng chất lượng cao Với các tính năng chính:

Nguyễn Thành Đô 18

Trang 33

Đồ án tốt nghiệp đại học Chương 2: Cơ sở lý thuyết

> Trình biên dich và trình gỡ lỗi: có các trình biên dịch và trình gỡ lỗi mạnh mẽ giúp

các lập trình viên phát triển và gỡ lỗi mã một cách dễ dàng hiệu quả

> Trình chỉnh sửa mã: Ta có thé tạo, chỉnh sửa mã với nhiều tinh năng nâng cao,

chăng hạn như hỗ trợ cho các siêu kết nối, tô sáng cú pháp và hoàn thành tự động

Giúp cho người phát triên dê dàng trong việc lập trình và quản lí mã nguôn

> Khả năng tích hợp: Visual Studio có thé tích hợp với các công cụ và dịch vụ khác

của Microsoft, chăng hạn như Azure và GitHub

> Hiệu suất tốt: IDE được tối ưu để hoạt động mượt ma và hiệu quả với các dự an

lớn, giúp tăng năng suất lập trình.

> Hỗ trợ C++ tốt: Visual studio cung cấp một số tính năng tuyệt vời cho ngôn ngữ

lập trình C++, bao gồm tính năng tự động chèn gợi ý, navigation thông minh, vànhiều công cụ refactoring code

2.5 Giới thiệu về thư viện OpenVR

OpenVR là một API phần mềm do Valve Corporation phát triển để truy cập vàocác thiết bị thực tế ảo (VR) và thực tế tăng cường (AR) OpenVR cung cấp một cách tiêuchuẩn dé các nhà phát triển ứng dụng VR va AR truy cập vào các chức năng của thiết bi

VR va AR, chang hạn như theo dõi đầu và tay, hiển thị hình ảnh và âm thanh, và tươngtác với các đối tượng trong thé giới VR

OpenVR là một API nguồn mở và miễn phí, có sẵn cho các nhà phát triển sử dụngtrong các ứng dụng của họ OpenVR được hỗ trợ bởi nhiều nhà sản xuất thiết bị VR và

AR, bao gồm HTC, Oculus, Valve và Sony

OpenVR cung cấp một số tính năng chính, bao gồm:

@ Theo dõi thiết bị kính HMD và tay cam: OpenVR cung cấp khả năng theo dõi vị

trí và hướng của đầu và tay người dùng Điều này cho phép các nhà phát triển tạo

ra các trải nghiệm VR và AR thực tế và nhập vai

Nguyễn Thành Đô 19

Trang 34

Đồ án tốt nghiệp đại học Chương 2: Cơ sở lý thuyết

Hiển thị hình anh và âm thanh: OpenVR cung cấp khả năng hiển thị hình ảnh và

âm thanh từ thiết bị VR Cho phép các nhà phát triển tạo ra các trải nghiệm VR và

AR sống động và hấp dẫn

Tương tác với các đối tượng trong thế giới VR: OpenVR cung cấp khả năng tương

tác với các đối tượng trong thé giới VR, cho phép các nhà phát triển tao ra các trải

nghiệm VR và AR để tạo ra các tương tác của người dùng cuối với môi trường ảo

xung quanh họ.

2.6 Giới thiệu về thư viện GL Math

GL Math (GLM) là một thư viện mã nguồn mở cung cấp các hàm và cấu trúc dé

thực hiện các phép tính vector và ma trận trong lập trình máy tính GLM được sử dụng

rộng rãi trong các ứng dụng đồ họa 3D, bao gồm trò chơi video, phần mềm CAD và mô

phỏng.

GLM cung cấp một số tính năng như:

Hỗ trợ cho các loại dữ liệu vector và ma trận: GLM hỗ trợ các loại dữ liệu vector

và ma trận phô biến, chăng hạn như vec3, vec4, mat3 và mat4.

Các hàm và cấu trúc cho các phép tính vector và ma trận: GLM cung cấp các hàm

và cấu trúc cho các phép tính vector và ma trận phổ biến, chăng hạn như phép

cộng, phép trừ, phép nhân, phép chia, phép nhân ma trận và phép chuyên đôi.

Hỗ trợ cho các phép tính hình học: GLM cung cấp hỗ trợ cho các phép tính hìnhhọc phổ biến, chăng hạn như phép tính khoảng cách, phép tính góc và phép tính

diện tích.

Hỗ trợ cho các phép tính tọa độ: GLM cung cấp hỗ trợ cho các phép tính tọa độ

phô biến, chăng hạn như phép chuyền đôi giữa hệ tọa độ Descartes và hệ tọa độ

cực.

Kết hợp và được tối ưu khi sử dụng với OpenGL Shading Language (GLSL) của

OpenGL khi tính toán các dir liệu.

Nguyễn Thành Đô 20

Ngày đăng: 27/03/2024, 21:06

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

TÀI LIỆU LIÊN QUAN

w