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

Báo cáo thực nghiệm thuộc học phần đồ họa máy tính mô phỏng showroom xe máy

28 5 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

Nội dung

Kỹ năng- Sử dụng thành thạo các ngôn ngữ C++ và áp dụng thư viện đồ họa hỗ trợ là OpenGL để tạo nên các mô hình cần dựng.- Kỹ năng sử dụng các phép biến đổi, chiếu phối cảnh, thiết lập v

lOMoARcPSD|39269578 TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO THỰC NGHIỆM THUỘC HỌC PHẦN ĐỒ HỌA MÁY TÍNH MÔ PHỎNG SHOWROOM XE MÁY GVHD: Ths Vũ Đức Huy Lớp: 20212IT6010001 Khoá: K14 Downloaded by SAU SAU (saudinh1@gmail.com) lOMoARcPSD|39269578 HÀ NỘI - 2022 Downloaded by SAU SAU (saudinh1@gmail.com) lOMoARcPSD|39269578 TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO THỰC NGHIỆM THUỘC HỌC PHẦN ĐỒ HỌA MÁY TÍNH MÔ PHỎNG SHOWROOM XE MÁY GVHD: Ths Vũ Đức Huy Sinh Viên: Phạm Quốc Đạt Trần Mạnh Chiến Lớp: Lê Ngọc Minh Hải Đoàn Mạnh Hùng Nguyễn Xuân Trường 20212IT6010001 Khoá: K14 Downloaded by SAU SAU (saudinh1@gmail.com) lOMoARcPSD|39269578 HÀ NỘI - 2022 Downloaded by SAU SAU (saudinh1@gmail.com) lOMoARcPSD|39269578 MỤC LỤC DANH MỤC HÌNH ẢNH .1 DANH MỤC BẢNG 2 LỜI MỞ ĐẦU 3 1.1 Tên đề tài: 3 1.2 Nội dung nghiên cứu 3 1.2.1 Kiến thức .3 1.2.2 Kỹ năng .4 Chương 1 XÁC ĐỊNH VÀ PHÂN TÍCH BÀI TOÁN .5 1.2 Bài toán 5 1.2 Mô tả các đối tượng cần thiết kế 5 1.4 Mô tả kịch bản của chương trình 6 Chương 2 CÀI ĐẶT CHƯƠNG TRÌNH 7 2.1 Kỹ thuật tạo mô hình showroom 7 2.2 Kỹ thuật tạo mô hình Xe máy .7 2.2.1 Phần đầu xe 7 2.2.2 Phần thân xe 8 2.2.3 Phần đuôi xe 8 2.3 Kỹ thuật tạo mô hình Robot .8 2.3.1 Phần đầu 9 2.3.2 Phần thân .9 2.4 Kỹ thuật điều khiển camera và phép chiếu .10 2.5 Kỹ thuật chiếu sáng 11 2.6 Kỹ thuật đổ bóng 11 2.7 Kỹ thuật dịch chuyển 11 2.8.Kỹ thuật quay 12 Downloaded by SAU SAU (saudinh1@gmail.com) lOMoARcPSD|39269578 2.9 Kỹ thuật phản chiếu 12 Chương 3 KẾT QUẢ ĐẠT ĐƯỢC 13 3.1 Mô hình showroom 13 3.2 Mô hình xe máy và robot 14 3.3 Điều khiển camera và phép chiếu .17 3.4 Chiếu sáng 18 3.5 Đổ bóng 19 3.6 Phản chiếu 19 KẾT LUẬN 20 3.1 Kết quả đạt được 20 3.2 Hướng phát triển 20 TÀI LIỆU THAM KHẢO 22 Downloaded by SAU SAU (saudinh1@gmail.com) lOMoARcPSD|39269578 DANH MỤC HÌNH Ả Hình 2.1 Sơ đồ phân cấp phần đầu xe máy .7 Hình 2.2 Sơ đồ phân cấp phần thân của robot 9 Hình 2.3 Mô phỏng chiếu phối cảnh 10Y Hình 3.1 Mô hình showroom 13 Hình 3.2 Mô hình showroom nhìn từ phía trước 13 Hình 3 3 Mô hình showroom nhìn từ phía trên 14 Hình 3.4 Mô hình xe máy nhìn từ phía trước 14 Hình 3.5 Mô hình xe máy và robot nhìn phía ngang .15 Hình 3 6 Mô hình xe máy và robot nhìn phía Sau .15 Hình 3 7 Mô hình xe máy và robot nhìn thẳng xuống 16 Hình 3 8 Mô hình xe máy và robot nhìn chéo từ phía trên 16 Hình 3.9 Camera gần vật .17 Hình 3.10 Camera xa vật .17 Hình 3.11 Mô hình showroom khi không chiếu sáng 18 Hình 3.12 Mô hình showroom khi chiếu sáng 18 Hình 3.13 Hình ảnh phản chiếu của xe xuống mặt sàn 19 Hình 3.14 Hình ảnh bóng của xe dưới mặt sàn .19 1 Downloaded by SAU SAU (saudinh1@gmail.com) lOMoARcPSD|39269578 DANH MỤC BẢNG Bảng 1.1 Bảng mô tả kịch bản 6 2 Downloaded by SAU SAU (saudinh1@gmail.com) lOMoARcPSD|39269578 LỜI MỞ ĐẦU 1.1 Tên đề tài: Mô phỏng showroom xe máy 1.2 Nội dung nghiên cứu 1.2.1 Kiến thức Sự phát triển của khoa học, kĩ thuật, nghệ thuật, kinh doanh và công nghệ luôn luôn phụ thuộc vào khả năng truyền đạt thông tin của chúng ta, hoặc thông qua các bit dữ liệu lưu trữ trong microchip hoặc thông qua giao tiếp bằng tiếng nói Câu châm ngôn từ xa xưa “một hình ảnh có giá trị hơn cả vạn lời” hay “trăm nghe không bằng một thấy” cho thấy ý nghĩa rất lớn của hình ảnh trong việc truyền tải thông tin Hình ảnh bao giờ cũng được cảm nhận nhanh và dễ dàng hơn, đặc biệt là trong trường hợp bất đồng về ngôn ngữ Do đó không có gì ngạc nhiên khi mà ngay từ khi xuất hiện máy tính , các nhà nghiên cứu đã cố gắng sử dụng nó để phát sinh các hình ảnh trên màn hình Trong suốt gần 50 năm phát triển của máy tính, khả năng phát sinh hình ảnh bằng máy tính của chúng ta đã đạt tới mức mà bây giờ hầu như tất cả các máy tính đều có khả năng đồ họa Đồ họa máy tính là một trong những lĩnh 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, đồ họa máy tính đã 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 và đa dạng của đồ họa máy tính có thể được minh họa rất trực quan thông qua việc khảo sát các ứng dụng của nó 3 Downloaded by SAU SAU (saudinh1@gmail.com) lOMoARcPSD|39269578 1.2.2 Kỹ năng - Sử dụng thành thạo các ngôn ngữ C++ và áp dụng thư viện đồ họa hỗ trợ là OpenGL để tạo nên các mô hình cần dựng - Kỹ năng sử dụng các phép biến đổi, chiếu phối cảnh, thiết lập view và chiếu sáng - Kỹ năng làm việc nhóm - Kỹ năng sáng tạo, kích thích trí tưởng tượng 4 Downloaded by SAU SAU (saudinh1@gmail.com) lOMoARcPSD|39269578 - Sử dụng hàm glutSolidTorus() đê vẽ bánh xe - Sử dụng hàm gluCylinder() và glutSolidSphere() để vẽ giảm sóc - Sử dụng hàm glBegin(GL_QUADS) để vẽ chắn bùn - Sử dụng hàm glTranslatef và glScalef để dịch chuyển và chỉnh tỷ lệ cho phù hợp - Sử dụng hàm toMau để tô màu cho các phần 2.2.2 Phần thân xe - Sử dụng hàm gluCylinder() để vẽ trục chính cho thân xe - Sử dụng hàm glBegin(GL_TRIANGLES) để vẽ phần nối bánh sau với thân xe - Sử dụng hàm glBegin(GL_POLYGON) và glBegin(GL_QUADS) để vẽ yên xe - Sử dụng hàm gluCylinder() để vẽ bầu động cơ và bình xăng - Sử dụng hàm glTranslatef và glScalef để dịch chuyển và chỉnh tỷ lệ cho phù hợp - Sử dụng hàm toMau để tô màu cho các phần 2.2.3 Phần đuôi xe - Sử dụng hàm glBegin(GL_TRIANGLES) và glBegin(GL_QUADS) để vẽ đuôi xe - Sử dụng hàm glBegin(GL_QUADS) để vẽ chắn bùn sau - Sử dụng hàm glutSolidSphere(), gluCylinder(), DrawCircle() để vẽ bô xe máy - Sử dụng hàm glTranslatef và glScalef để dịch chuyển và chỉnh tỷ lệ cho phù hợp - Sử dụng hàm toMau để tô màu cho các phần 8 Downloaded by SAU SAU (saudinh1@gmail.com) lOMoARcPSD|39269578 2.3 Kỹ thuật tạo mô hình Robot Sử dụng Display List để xây dựng Ưu điểm của nó là khi nào cần đến đối tượng Chỉ việc thực hiện gọi kết quả đã thực hiện xong Điều này làm cho chương trình chạy nhanh hơn, bài toán được xử lý tối ưu hơn Tuy nhiên, khi đã thực hiện xong display list rồi thì kết quả đó sẽ không thể bị tác động bởi các nhân tốt khác thực hiện sau đó 2.3.1 Phần đầu - Sử dụng hàm glutSolidCube() để vẽ khối rắn để làm phần đầu và phần cổ - Sử dụng hàm DrawCircle đã được định nghĩa trước để vẽ 2 mắt - Sử dụng hàm gluCylinder vẽ một hình trụ được định hướng dọc theo trục z để vẽ tai và mắt - Sử dụng hàm gluSphere vẽ một hình cầu cho phần mũi - Sử dụng hàm glTranslatef và glScalef để dịch chuyển và chỉnh tỷ lệ cho phù hợp - Sử dụng hàm toMau được định nghĩa trước với đối số truyền vào để tô màu cho các phần 2.3.2 Phần thân 9 Downloaded by SAU SAU (saudinh1@gmail.com) lOMoARcPSD|39269578 Hình 2 2 Sơ đồ phân cấp phần thân của robot - Sử dụng hàm glutSolidCube để vẽ khối rắn để làm phần thân - Sử dụng hàm gluCylinder để vẽ các hình trụ phần tay và chân - Sử dụng hàm glutSolidSphere vẽ hình cầu cho khớp nối giữa khửu tay và bắp tay, giữa bắp tay và thân; giữa chân với thân - Sử dụng hàm glTranslatef và glScalef để dịch chuyển và chỉnh tỷ lệ cho phù hợp - Sử dụng hàm toMau để tô màu cho các phần - Phần tay có bắp tay và cánh tay di chuyển phù hợp theo độ quay của đầu xe máy 2.4 Kỹ thuật điều khiển camera và phép chiếu 10 Downloaded by SAU SAU (saudinh1@gmail.com) lOMoARcPSD|39269578 Hình 2 3 Mô phỏng chiếu phối cảnh - glTranslate và glRotate sẽ thực hiện việc thay đổi ma trận model để thực hiện quá trình tịnh tiến và quay vật - Sử dụng hàm gluLookat(eye_x, eye_y, eye_z, model_x, model_y, model_z, up_x, up_y, up_z); để thiết đặt vị trí đặt của cameral trong hệ tọa độ - Sử dụng phép chiếu phối cảnh: o Vật càng gần cameral thì trông sẽ càng to hơn và càng xa cameral thì càng nhỏ hơn, o Giá trị càng tăng thì vùng chiếu càng mở rộng và vật cũng nhỏ dần o Near Far quyết định đến việc các vật ở xa được trông thấy hoặc các vật ở gần bị mất đi khi nó thay đổi giá trị 2.5 Kỹ thuật chiếu sáng - Sử dụng glEnable(GL_LIGHTING) và glEnable(GL_LIGHT0); để bật chế độ chiếu sáng trong hàm lighting - Sử dụng GLfloat light_diffuse để tạo ánh sáng khuếch tán cho đối tượng - Sử dụng GLfloat light_directional để chọn hướng ánh sáng chiếu - Sử dụng GLfloat light_ambient để chọn môi trường để chiếu sáng 11 Downloaded by SAU SAU (saudinh1@gmail.com) lOMoARcPSD|39269578 - Các hàm GLfloat light_diffuse,GLfloat light_directional, GLfloat light_ambient là các tham số chính để thiết lập ánh sáng cho màn hình - Chọn vị trí ánh sáng chiếu vào: GLfloat light_positional[] = { 10.0,10.0,10.0,1.0 }; glLightfv(GL_LIGHT0, GL_POSITION, light_positional); + Như thế này nghĩa là: ánh sáng chiếu theo chiều ngược với trục X,Y,Z của OpenGL X,Y,Z đâm ra ngoài màn hình thì ánh sáng chiếu từ ngoài màn hình vào 2.6 Kỹ thuật đổ bóng - Tạo hàm DrawShadow để thiết lập đổ bóng - Sử dụng shadowMatrix(floorShadow, floorPlane, lightPosition) để bật chế độ đổ bóng - Sử dụng floorShadow để tạo bóng trên sàn 2.7 Kỹ thuật dịch chuyển Phương pháp sử dụng là dời hệ quy chiếu: Giữ nguyên giá trị của điểm nhưng thay đổi hệ toạ độ - Sử dụng hàm glTranslatef(x, y, z) để thực hiện Câu lệnh này cho phép bạn rời hệ quy chiếu sang một vị trí mới với giá trị x, y, z được truyền vào - Khi muốn trở về vị trí cũ, sử dụng câu lệnh glLoadIdentity() để đưa hệ tọa độ trở về ban đầu - Sử dụng thêm 2 câu lệnh: glPushMatrix để cất hệ trục hiện tại vào stack, sau đó dùng gltranslate để thay đổi hệ tọa độ mới - Các thông số được thay đổi bởi sự kiện bấm phím 2.8 Kỹ thuật quay Về bản chất, cũng là cách thay đổi hệ trục tọa độ hiện hành, nhưng không phải là phép dời trục mà là phép xoay trục 12 Downloaded by SAU SAU (saudinh1@gmail.com) lOMoARcPSD|39269578 - Sử dụng câu lệnh glRotatef(angle, x, y, z); để quay - Các thông sổ được thay đổi bở sự kiện bấm phím và chuột 2.9 Kỹ thuật phản chiếu - Tạo hàm DrawFlection để thiết lập đổ bóng - Sử dụng glBlendFunc(GL_SRC_ALPHA , GL_ONE_MINUS_SRC_ ALPHA); để bật chế độ phản chiếu - Sử dụng glEnable(GL_STENCIL_TEST) để tạo khuôn phản chiếu - Sử dụng glEnable(GL_DEPTH_TEST) để tạo độ sâu của hình ảnh phản chiếu - Sử dụng glColorMask(1, 1, 1, 1) để tạo màu 2.9 Kỹ thuật dán ảnh - Vật liệu ở đây chính là một tấm ảnh dạng bitmap và chúng được gọi là texture - Kỹ thuật về texture có thể nói là đa dạng và phức tạp, vì vậy nhóm sử dụng hàm LoadTexture(), glBindTexture(), glTexImage2D() để dán ảnh giúp cho mô phỏng gần như chân thực nhất - Khi view càng gần, thì NEAREST thể hiện là sự kết hợp bởi các hình vuông nhỏ, nó giống như điểm ảnh sắp xếp với nhau trên một bức ảnh 13 Downloaded by SAU SAU (saudinh1@gmail.com) lOMoARcPSD|39269578 Hình 3 3 Mô hình showroom nhìn từ phía trên 3.2 Mô hình xe máy và robot Hình 3.4 Mô hình xe máy nhìn từ phía trước 15 Downloaded by SAU SAU (saudinh1@gmail.com)

Ngày đăng: 22/03/2024, 22:37

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN