LOI MO DAU Ngày nay đồ họa máy tính được ứng dụng trong rất nhiều lĩnh vực khoa học, kỹ thuật và các dịch vụ đời sông đều nhờ có sự đa dạng của dé hoa máy tính.. Đồ họa máy tính là một l
Trang 1_ BQO GIAO DUC VA DAO TAO _ TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN HỌC PHẢN: KỸ THUẬT ĐỎ HỌA MÁY TÍNH
Đề tài 36: THIẾT KẺ PHÒNG CHO BÉ TRAI
Pham Hong Phúc Anh | DCCNTT12.10.13
Nguyễn Thị Thương DCCNTT12.10.13
Trang 2
BO GIAO DUC VA DAO TAO „ TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á KHOA: CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN HỌC PHẢN: KỸ THUẬT ĐỎ HỌA MÁY TÍNH
Nhóm : 13
Đề tài 36: Thiết kế phòng cho bé trai
Mã sinh viên
Phạm Hồng Phúc Anh | 20213747 Nguyễn Đức Nhanh 20213956 Nguyễn Thị Thương 20210905
Trang 3
MUC LUC
MỤC LỤC HÌNH ẢNH - 2S T21 121111112111111215 115121122 1E 22 ren ree
PHẦN CÔNG CÔNG VIỆC - ST T51 1211111121111 2 E2 HH Hee
1.2.5 Các ứng dụng tiêu biểu của kỹ thuật đồ họa n nn HH Hee reeeree
1.3 Các giải thuật đồ họa cơ bản - S19 211211 1211211 1121112112121 1 212 y0
1.4 Tống quan về openGLL + + s219215112112111111121111 2121112212121 122cc
1.5 Quan sát ba chiều (phép chiếu — Projection)) -s- + 2111121152111 1511 xx6
1.5.1 Các phép chiẾu - ác scS 2 1 1112 22112112111 1121 1211 1n u21 re
1.5.2 Phép chiếu trực giao (Orthographics projection) -s- c2 mrrrre
1.5.3 chiếu trục lượng (AxonoIm€fTI) - c1 121 vn 1 110111112101 111101111 H1 key
2.2.8 Den HOC cece ceccccceecccceccceccesseceveseccesssccvessevestseceeseeceesescesseeeeeauseeeauseveetsseestseventansseees
2.2.9, KE SACh i cece ceecccccccccccccsecevescccescececssceccseccesseccveaececesececenseceetseceetseccesseccreaesereseevenses
Trang 4;” 0» $6 cccccccccecsssscsssescsusecsussusucsnsuesuesssesssusussusecsusessusavsusavsussesusavsusevssssesseasessvavsnsnanees
QQAL Cita Chine ccceccccccccccccsssesecsvesessessessesesesessessessssussussuesessessssresesuesesstesessestsseseeaveeseeees
2.3 Thiết lập các nguồn sng ccccccccccccccccesessessessesecssesessesecssessessesssstsseseesecesseseesess
Trang 5MUC LUC HiNH ANH
Hinh 1.2 Ứng dụng đồ họa máy tính vào giao diện người dùng 11
Hinh1.3 Ung dung d6 hoa may tinh vao théng tin 11
Hinh1.5 Ung dung đồ họa máy tính vào giáo dục và đào tạo 12
Hinh1.7 Ưng dụng dé hoa máy tính vào quá trình tự động hóa 13
Hìnhl.8 | Mô hình nguyên lý của tiến trình biểu diễn đối tượng 3D l6
Trang 6PHAN CONG CONG VIEC
Họ va tên người thực
sách
Thiết kế và lập trình hệ thống ánh
sáng môi trường và đèn trân
đôi tượng 3D đề tăng tính chân thực | Nguyên Đức Nhanh
Texture và hoàn Xây dựng mô hình 3D và việt code Phạm H ồng Phúc Anl
hơn như cửa số, cửa ra vào, thảm
Trang 7
LOI MO DAU
Ngày nay đồ họa máy tính được ứng dụng trong rất nhiều lĩnh vực khoa học, kỹ thuật và các dịch vụ đời sông đều nhờ có sự đa dạng của dé hoa máy tính Công nghệ
đồ họa đã mang lại cho con Tgười chúng ta vô vàn sự tiện nghi, những trải nghiệm mới
lạ và chân thực, có thê nói đồ họa máy tính đã trở thành một trong những công cụ không thê thiếu trong công việc cũng như sinh hoạt và giải trí của mỗi người và mang đến cho chúng ta những trải nghiệm mà trước đây chưa từng có vỉ vậy nghiên cứu về
dé họa máy tính có tầm quan trọng vô củng đặc biệt trong rất nhiều lĩnh vực khác nhau
Đồ họa máy tính là phương pháp và công nghệ dùng trong việc chuyển đôi qua lại
giữa dữ liệu và hình ảnh bằng máy tính Đồ họa máy tính là một lĩnh vực của khoa học
máy tính nghiên cứu về toán học, các thuật toán cũng như các kỹ thuật may tinh dé cho phép tạo ra, hiến thị và điều khiến hình ảnh, video trên mản hình máy tính Đồ họa máy tính có liên quan ít nhiều đến một số lĩnh vực như đại số, hình học giải tích, hình học họa hình, lập trình máy tính, kỹ thuật máy tính, Việc mô tả dữ liệu thông qua các hình ảnh và màu sắc đa dạng của nó, các chương trình đồ họa thườn thu hút người
sử dụng bởi tính thân thiện, dễ dùng kích thích khả năng sáng tạo và nâng cao năng
suất làm việc Là sinh viên chúng em được tiếp xúc, tìm hiểu và làm quen với một số
kỹ thuật đồ họa trên máy tính thông qua tài liệu, bài giảng trên lớp Với những kiến thức đã học nhóm chúng em quyết định chọn đề tài “Thiết kế phòng cho bé trai”
Trong quá trình làm bài báo cáo, do trình độ chuyên môn và năng lực của nhóm còn nhiều hạn chế nên không tránh khỏi những sai sót, vì vậy rất mong nhận được sự đóng góp của thầy cô và các bạn để bài báo cáo hoàn thiện hơn
Qua đây, nhóm chúng em cũng xin chân thành cảm ơn cô “Đỗ Thị Huyền” đã nhiệt tình hướng dẫn, chỉ bảo nhóm em trong quá trình hoc tập
Em xIn chân thành cảm ơn!
Trang 8Chương 1: Cơ sở lý thuyết về kỹ thuật đồ họa máy tính
1.1 Các khái niệm cơ ban ve do họa máy tính:
Đồ họa máy tính là một lĩnh vực của khoa học máy tính nghiên cứu VỀ cơ SỞ
toán học, các thuật toán cũng như các kỹ thuật để cho phép tạo, hiển thị và
điều khiến hình ảnh trên màn hình máy tính
Đồ họa máy tính gồm:
e - Thiết kế phần cứng
® Các thuật toán để phát sinh các đường
e_ Các phần mềm được sử dụng cho người lập trình hệ thông và người lập
© Các chương trình ứng dụng tạo ảnh bằng máy tính
Defñnition (ISO): Phương pháp và công nghệ chuyên đôi sữ liệu từ thiết bị
đồ họa sang máy tính
Computer Graphics: là phương tiện đa năng và mạnh nhất của giao tiếp giữa con người và máy tính
Computer Graphics (Kỹ thuât đồ họa máy tính) là một lĩnh vực của công nghệ thông tin mà ở đó nghiên cứu, xây dựng và tập hợp các công cụ (mô hình lý thuyết và phần mêm) khác nhau: kiến tạo, xây dựng, lưu trữ, xứ lý các mé hinh (model) va hinh anh (image) cua đối tượng Các mô hình (model) và hình ảnh này có thể là kết quả thu được từ những lĩnh vực khác nhau của rất nhiều ngành khoa học (vật lý, toán học, thiên văn học, ) 1.2 Các kỹ thuật đồ họa
1.2.1 Đồ họa rester:
Khái niệm thiết kế đồ họa raster (đồ họa hoặc hình ảnh Bitmap) la mot trong
những kỹ thuật hiển thị hình ảnh lâu đời và phố biến nhất với nền tảng kỹ
thuật lấy từ công nghệ màn hình tivi đã tồn tại rất lâu trước khi máy tính
điện tử ra đời Với kỹ thuật này, tất cả các hình ảnh đều được làm nên từ các
ô vuông có màu nhỏ li tỉ được gọi là pixel (phan tử ảnh)
Tùy thuộc vào độ phân giải, một hình ảnh có thể chứa hàng nghìn đến hàng
triệu pixel, giống như một bức tường được xây lên từ nhiều viên gạch vậy
Ưu điểm lớn nhất của kỹ thuật raster là các hình ảnh raster có thê hiển thị các chỉ tiết rõ ràng, dep voi mau sac da dang, hài hòa Tuy nhiên, hình ảnh raster có thê sẽ bị “vỡ” hoặc mờ nếu phóng to hoặc bị nén quá nhiều Dung lượng các file ảnh raster cũng khá lớn nếu có độ phân giải cao
Trang 91.2.2.Kỹ thuật đồ họa vector:
- Đề họa vector là kỹ thuật tạo dựng hình ảnh bằng các đường kẻ quy định bởi các công thức toán học lần đầu tiên được sử dung cho man hinh may tính trong những năm 60 và 70 cua thé ki 20 Tuy khong phé bién bang ky thuật đồ họa raster và đã từng có một thời gian gần như bị “xóa số” bởi raster, đồ họa vector đang được ưa chuộng trở lại
t bira Hình! L Mô hình đồ họa vector
1.2.3.D6 hoa 3D
- D6hoa 3D 1a ky thuat dé hoa dang duoc tap trung phat triển nhất trong thời diém hién tai, voi su quan tam va tiém nang cua các ứng dụng như không gian ao hay hinh chiéu ba chiéu Nha thiét ké dé hoa phải thực hiện rất nhiều bước khác nhau và áp dụng nhiều kỹ thuật tạo dựng hình ảnh phức tạp để có được một đôi tượng hinh anh 3D dung nghia
- Day là bước mất thời gian và phức tạp nhất vì một vật thê 3D có nhiều bề mặt khác nhau với các chất liệu khác nhau, độ trong suốt hay mờ đục, màu sắc, mức độ bắt sáng hay phản sáng khác nhau Đề tạo được một vật thê 3D thật nhất có thể, nhiều kỹ thuật toán học được áp dụng để tính toán và mô phỏng cách ánh sáng chiếu và phản chiếu vào các loại mặt phắng khác nhau như ray tracing hay radiosity,
1.2.4 D6 hoa 2D
- D6 hoa 2D hay đồ hoạ hai chiều là những hình ảnh phẳng không có chiều
sâu Chúng chủ yếu được sử dụng trong minh họa, thiết kế đồ họa và một số
loại hoạt hình nhất định Hãy nghĩ đến những bộ phim hoạt hình bạn đã xem
9
Trang 101.2.5
khi còn nhỏ hoặc các biểu tượng trên màn hình của bạn; đây là những ví dụ
về dé hoa 2D Chúng dựa vào các hình dạng hình học cơ bản và hệ tọa độ
XY gồm chiều cao và chiều rộng
Ky thuat dé hoa 2 chiều: là kỹ thuật dé hoa máy tính sử dụng hệ tọa độ hai chiêu (hệ tọa độ thăng), sử dung rat nhiéu trong ky thuật xử ly ban do, do thi
Các lĩnh vực của dé hoa máy tính:
Ky thuat xu ly anh (Computer Imaging): sau qua trinh xu ly anh cho ta ảnh
số của đối tượng, trong quá trình xử lý ảnh sử dụng rất nhiều các kỹ thuật phức tạp: kỹ thuật khôi phục ảnh, kỹ thuật làm nối ảnh, kỹ thuật xác định biên ảnh
Kỹ thuật nhận dạng (Pattern Recognition): từ những ảnh mẫu có sẵn ta phân loại theo các trúc, hoặc theo các tiêu chí được xác định từ trước và bằng các thuật toán chọn lọc dé có thé phan tích hay tông hợp các ảnh gốc, các ảnh sốc này được lưu trong một thư viện và căn cứ vào thư viện này ta xây dựng được các thuật giải phân tích và tổ hợp ảnh
Kỹ thuật tổng hợp ảnh (Image Synthesis): là lĩnh vực xây dựng mô hình và hình ảnh của các vật thể dựa trên các đối tượng và mối quan hệ giữa chúng
Manufacture System): ky thuat dé hoa tập hợp các công cu, các kỹ thuật trợ
giúp cho thiết kế các chỉ tiết và các hệ thống khác nhau: hệ thống cơ, hệ thống điện ,hệ thống điện tử,
Đồ họa minh họa (Pressentation Graphics): gồm các cong cu giup hiển thị các số liệu thí nghiệm một cách trực quan, dựa trên các mâu đồ thị hoặc các thuật toán có sắn
Đồ họa hoạt hình và nghệ thuật: bao gồm các công cụ giúp cho các họa sĩ,
các nhà thiết kế phim hoạt hình chuyên nghiệp làm về các kỹ sảo hoạt hình,
vẽ tranh, vi du; phan mém studio, 3D studio ma
Các ứng dụng tiêu biểu của kỹ thuật đồ họa
Đồ họa máy tính là một trong những linh vực lý thú nhất và phát triển nhanh nhất của tin học Ngay từ khi xuất hiện nó đã có sức lôi cuốn mãnh
liệt, cuốn hút rất nhiều người ở nhiều lĩnh vực khác nhau như khoa học nghệ
thuật, kinh doanh, quản lý, Tính hấp dẫn của nó có thê được minh họa rất trực quan thông qua các ứng dụng của nó
Xây dựng giao diện tương tác người dùng (User Interface): Giao diện đồ họa thực sự là cuộc cách mạng mang lại sự thuận tiện và thoái mái cho
người dùng ứng dụng Giao diện WYSIWYG và WIMP đang được đa số người dùng ưa thích nhờ tính thân thiện, dé sử dụng nó
10
Trang 11
= “ae 5
Hình 1.2 Ứng dụng đề họa máy tính vào giao điện người dùng
- Tạo các biểu đồ trong thương mại, khoa học, kỹ thuật Ộ Các ứng dụng này thường được dùng đề tóm lược các đữ liệu về tài chính, thông kê, kinh tế, khoa học, giúp cho nghiên cứu, quản lý, một cách có hiệu quả
Trang 12
Hình 1.4 Ứng dụng đồ họa máy tính vào bản đồ
- _ Giáo dục và đảo tạo:
Tình 1.5 Ứng dụng đồ họa máy tính vào giáo duc vat đào tao
12
Trang 13
- Diéu khién cac qua trinh tự động hóa:
Tình 1.7 Ứng dụng đồ họa máy tính vào quá trình tự động hóa
1.3 Các giải thuật đồ họa cơ bản
® Các plải thuật dé họa cơ bản là những thật toán được sử dụng để thực hiện các thao tác cơ bản trên hình ảnh và video, ví dụ như:
® _ Biên đôi hình học:
Biên đối tịnh tiên: Di chuyên đôi tượng dọc theo một vector
13
Trang 14Bién déi xoay: Xoay đối tượng quanh một điểm trụ
Biến đổi thu phóng: thay đôi kích thước của đối tượng
Biến đôi cắt xén: Loại bỏ các phần không mong muốn của đối tượng
© Chiếu sáng
Mô hinh phong: Mô hình hóa cách ánh sáng phản xạ xa từ bề mặt
Mô hình Blinn-phong: Cải tiến mô hình Phong bằng cách tính toán
hướng phản xạ cục bộ
Mô hình Cook-Torrance: Mô hình hóa cách ánh sảng tương tác với các
bề mặt phức tạp hơn
Tô màu bằng màu phẳng: Gán một màu duy nhất cho toàn bộ đối tượng:
Tô màu dốc màu: Gán các màu khác nhau cho các điểm khác nhau trên đối tuong theo mot Gradient
Tô màu theo ánh sáng kết cấu: Gán màu sắc cho đối tượng dựa trên một kết cấu
e Hién thi Thuật toán Bresenham: Vẽ các đường thắng
Thuật toán DDA: Vẽ các đường thắng với độ chính xác cao hơn Thuật toán quét bảng: Hiển thị các hình ảnh raster
1.4 Tổng quan về openGL
OpenGL (Open Graphics Library) là một API đa nền tảng, đa ngôn ngữ cho kết xuất đồ họa vector 2D và 3D API thường được sử dụng để tương tác với bộ xử ly dé hoa (GPU), nhằm đạt được tốc độ kết xuất phần cứng
Đặc tả OpenGL mô tả một API trừu tượng đề vẽ đồ họa 2D và 3D Mặc dù
API co thé duoc triển khai hoàn toàn trong phần mềm, nhưng nó được thiết
kế để triển khai hầu hết hoặc hoàn toàn trong phần cứng
API được định nghĩa là một tập hợp các hàm có thê được gọi bởi chương trình khách, cùng với một tập hợp các hăng số nguyên được đặt tên (ví dụ, hằng số GL_TEXTURE _2D, tương ứng với số thập phân 3553) Mặc dù các định nghĩa hàm bề ngoài tương tự như các định nghĩa của ngôn ngữ lập trình
C, chúng không phụ thuộc vào ngôn ngữ Vì vậy, OpenGL có nhiều
language bindings, một số liên kết đáng chú ý nhất là WebGL rảng buộc
JavaScript (API, dya trén OpenGL ES 2.0, cho két xuat 3D tr trong trình duyét web); C binding WGL, GLX va CGL; C binding cung cap boi iOS; va Java, C bindings cung cap béi Android
Ngoài việc không phụ thuộc vào ngôn ngữ, OpenGL cũng đa nền tảng Đặc
tả kỹ thuật không nói gì về chủ đề lấy và quản lý ngữ cảnh OpenGL, để lại điều này như một chi tiết của windowing system Vi ly do tương tự,
OpenGL hoàn toàn quan tâm đến việc hiển thị, không cung cấp API nảo liên
14
Trang 15quan đến đầu vảo, âm thanh hoặc windowing.OpenGL được thiết kế nhằm thỏa mãn mục đích chính sau:
- _ Che giấu sự tương tác phức tạp với các bộ máy xúc tiến 3 chiều bằng cách đưa ra một giao diện lập trình thống nhất
- Che giấu các sự khác biệt giữa các phần cứng 3 chiều bằng cách bắt buộc các phần cứng tương thích OpenGL phải hỗ trợ tất cả các chức năng của
giao diện OpenGL Nếu cần, các chức năng chưa được hỗ trợ đầy đủ bởi
- Cae bước xây dựng hình chiếu:
Đối tượng trong không gian với tọa độ thực được cắt theo một không
gian xác định gọi là view volume
e© View volume duoc chiéu lên mặt phẳng chiếu Diện tích bởi view
volume trên mặt phẳng chiếu đó cho chúng ta khung nhìn
® - Là việc ánh sáng phản xạ khung nhìn vào trone một công nhìn bất kỳ cho
trước trên màn hình đề hiển thị hình ảnh
TỌA ĐỘ TỌA ĐỘ THEO KHUNG TOA DO THUC 3D VUNG CAT NHIN THIET BI
CAT THEO VIEW PHEP CHIEU PHEP BIEN DOI VAO
——> VOLUME F—> TRENMAT |—>_ CÓNGNHNCỦA |——
PHANG CHIEU TOA DO THIET BI
Tình 1.8 Mô hình nguyên lý của tiễn trình biểu điển đối tượng 3D
1.5.2 Phép chiếu trực giao (Orthographics projection)
- La phép chiéu song song va tia chiếu vuông ĐÓC với mặt phẳng chiếu Về mặt toán học, phép chiếu trực giao là phép chiếu với một trong các mặt phẳng tọa độ =0
- _ Thường dùng mặt phẳng z=0, ngoài ra x=0 và y=0
15
Trang 16- _ Ứng với mỗi mặt phẳng chiếu ta có một ma trận tương ứng
1.5.3 chiếu trục lượng (Axonometric)
- _ Phép chiếu trục lượng là phép chiếu thu được sau khi quay đối tượng sao
cho ba mặt của đối tượng trông thấy rõ nhất (thường mặt phẳng chiếu là
- Cac doan thang song song của mô hình 3D sau phép chiếu hội tụ tại một điểm gọi là điểm triệt tiêu (vanishing point)
-_ Phan loại phép chiếu phối cảnh dựa vào tam chiéu — centre of projection va
mat phang chiéu — projection plane
16
Trang 17Một tâm chiêu Hai tâm chiêu Ba tâm chiêu
point Perspective 2 point Perspective 3 point Perspective
Tình 1.10 Pháp biến đôi phối cảnh
Chương 2: Thiết kế sản phẩm đồ họa 3D với openGL,
2.1 Xây dựng ý tưởng thiết kế:
Đề thiết kế một phòng ngủ 3D sử dụng OpenGL, nhóm đã tiền hành bước đầu tiên
là xây dựng ý tưởng thiết kế Các thành phần đồ họa bao gồm: Căn phòng, cửa số, cửa chính, tủ quan ao, bong dén, dén hoc, tivi, giuvong, tam tham, quat tran, chau cay, ghế, bàn học , bộ, tủ sách Quá trình này bao gồm các nội dung chính sau:
- Khung cơ bản: Đầu tiên, chúng ta sẽ xây dựng khung cơ bản của căn phòng ngủ Căn phòng sẽ có chiều cao, chiều rộng và chiều dài cụ thể, tạo nên một không gian 3D
- Quạt trần: Sẽ có một quạt trần được đặt trên củng của căn phòng Quạt trần sẽ được mô phỏng bằng cách sử đụng môt cái trụ để giữ thăng bằng cho các cánh quạt
- _ Hệ thông chiếu sáng: căn phòng ngủ sẽ được trang bị hệ thống chiếu sáng Đèn
sẽ được mô phóng bằng cách sử dụng một hình cầu và ánh sáng sẽ được mô phỏng bằng cách sử dụng kỹ thuật ánh sáng trong đồ họa
17
Trang 18- Giuong ngu: Trong can phong sé co mot chiếc giường ngủ được mô phỏng bằng hình chữ nhật Chúng ta có thêm các chi tiết như chăn, gối, sấu bông để thêm tính thực tế
- _ Ngoài những chỉ tiết trên chúng ta cũng có thể sử dụng thêm các chỉ tiết khác như kệ sách, bàn học, cửa sô, tủ quan áo, cây cảnh, tIvi,
- _ Chúng ta sẽ thêm các chí tiết hiệu ứng như phản xạ, ánh sáng để mô hình 3D chân thật hơn
Trang 19// dau giuong
glPushMatrix();
maudovat(0.824, 0.706, 0.549, 0.412, 0.353, 0.2745); ølTranslatef{28, 4.0, -10.0);
Trang 20glPushMatrix();
maudovat(0.5, 0.2, 0.2, 0.25, 0.1, 0.1); ølTranslatef{20.0, 3, -10.0);