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 7 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 đề Mô phỏng Showroom Xe Máy
Tác giả Phạm Quốc Đạt, Trần Mạnh Chiến, Lê Ngọc Minh Hải, Đoàn Mạnh Hùng, Nguyễn Xuân Trường
Người hướng dẫn Ths. Vũ Đức Huy
Trường học Trường Đại học Công nghiệp Hà Nội
Chuyên ngành Công nghệ thông tin
Thể loại Báo cáo thực nghiệm
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 28
Dung lượng 1,42 MB

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

Trang 1

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

Trang 2

HÀ NỘI - 2022

Trang 3

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

Trang 4

HÀ NỘI - 2022

Trang 5

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

Trang 6

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

Trang 7

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

Trang 8

DANH MỤC BẢNG

Bảng 1.1 Bảng mô tả kịch bản 6

Trang 9

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ó

Trang 11

Chương 1 XÁC ĐỊNH VÀ PHÂN TÍCH BÀI TOÁN

1.2 Mô tả các đối tượng cần thiết kế

1.2.1 Thiết kế mô hình showroom

- Gồm các khối hình chữ nhật ghép lại với nhau thành hình hộp bao gồm mặt đáy, 4 mặt cạch

- Trong đó, một mặt cạnh sẽ có khoảng trống để tạo cửa ra vào

1.2.2 Thiết kế mô hình xe máy

- Gồm có các khối hình như: Hình trụ,hình cầu,hình hộp chữ nhật, để

mô phỏng mô hình xe máy

- Các bộ phận của mô hình có vị trí phù hợp để đứng thẳng được trên mặt sàn

1.2.3 Thiết kế mô hình robot

- Gồm có các khối hình như: hình tròn, hình trụ, hình chữ nhật, để mô phỏng hình người ngồi trên xe máy

- Các bộ phận của mô hình có vị trí phù hợp khi được thiết kế ngồi trên

xe máy

Trang 12

1.3 Mô tả bố cục khung cảnh chung

Hình 1.1 Bốố c nh chung c a showroom xe máy ả ủ

1.4 Mô tả kịch bản của chương trình

Bảng 1.1 Bảng mô tả kịch bản

Trang 13

Chương 2 CÀI ĐẶT CHƯƠNG TRÌNH

2.1 Kỹ thuật tạo mô hình showroom

- Sử dụng hàm glBegin(GL_QUADS) để vẽ các mặt trong showroom:

mặt bên trái, mặt bên phải, mặt đáy, mặt trước

- Sử dụng hàm GlBindTexture() để dán các poster lên tường của

Hình 2.1 Sơ đồ phân cấp phần đầu xe máy

- Sử dụng hàm glBegin(GL_QUADS) để vẽ phần đầu và đèn xe

- Sử dụng hàm GlBindTexture() để dán ảnh cho đèn xe và mặt đo vận tốccho xe

- Sử dụng hàm gluCylinder vẽ một hình trụ làm tay lái và phanh xe

Trang 14

- 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 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ệ

Trang 15

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

Trang 16

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

Trang 17

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

Trang 18

- 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

- 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

Trang 19

- 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

Trang 20

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

Trang 21

Hình 3.5 Mô hình xe máy và robot nhìn phía ngang

Hình 3 6 Mô hình xe máy và robot nhìn phía Sau

Trang 22

Hình 3 7 Mô hình xe máy và robot nhìn thẳng xuống

Hình 3 8 Mô hình xe máy và robot nhìn chéo từ phía trên

Trang 23

3.3 Điều khiển camera và phép chiếu

Hình 3.9 Camera gần vật

Hình 3.10 Camera xa vật

Trang 24

3.4 Chiếu sáng

Hình 3.11 Mô hình showroom khi không chiếu sáng

Hình 3.12 Mô hình showroom khi chiếu sáng

Trang 26

KẾT LUẬN

3.1 Kết quả đạt được

Trong quá trình xây dựng chương trình Mô hình Showroom xe máy, các thành viên trong nhóm đã tổng hợp được rất nhiều kiến thức của môn đồ hoạ máy tính để áp dụng vào xây dựng chương trình Thông qua quá trình làm việc nhóm các thành viên trong trong nhóm đã đoàn kết với nhau hơn, tinh thần làm việc tập thể được nâng cao hơn, rèn luyện kỹ năng làm việc nhóm Nhưng do kiến thức và kinh nghiệm còn hạn chế nên nhóm rất mong nhận được sự đóng góp ý kiến của thầy giáo và các bạn để bài thực nghiệm của nhóm xây dựng được hoàn thiện hơn Nhóm xin chân thành cảm ơn thầy Vũ Đức Huy đã nhiệt tình hướng dẫn nhóm trong suốt quá trình thực hiện đề tài này, được sự nhiệt tình hướng dẫn của thầy nhóm đã hoàn thành được đề tài

và hiểu hơn về môn học

3.2 Hướng phát triển

Sử dụng thư viện OpenGL với các hàm có sẵn để có thể dễ dàng vẽ các hình ảnh đồ họa trong Win32 Console application Trước đây, trong khác phiên bản từ Visual C++ 6.0 trở về trước, cũng như các phiên bản Turbo C, Borland C để vẽ hình có thể sử dụng thư viện graphics.h tuy nhiên ở những phiên bản Visual Studio sau này, thư viện graphics.h đã bị loại bỏ và cũng không còn được hỗ trợ Bởi vì bên cạnh thư viện graphics.h đã lỗi thời, nổi lên các thư viện đồ hoạ tốt hơn và cũng dễ dàng sử dụng hơn, điển hình trong

đó là thư viện OpenGL Đơn giản hóa việc tương tác giữa các mô hình không gian 3 chiều bằng một giao diện lập trình thống nhất

OpenGL hỗ trợ tối đa các chức năng của giao diện OpenGL bằng cách épbuộc các phần cứng 3 chiều khác nhau phải tương thích Ngay cả khi không thể ép phần cứng hỗ trợ hoàn toàn, OpenGL có thể yêu cầu hệ thống sử dụng thêm sức mạnh phần mềm để xử lý

Trang 27

Tiêu chuẩn OpenGL nhận các nguyên hàm hình học như điểm, đường thẳng và đa giác rồi chuyển thành các điểm đồ họa (pixel) trên màn hình Quátrình này được thực hiện thông qua luồng ống dẫn đồ họa (thuật ngữ graphics pipeline) Một tên gọi khác của OpenGL cũng được giới kỹ thuật chia sẻ đó là

bộ máy trạng thái OpenGL

Trang 28

TÀI LIỆU THAM KHẢO

[1] Edward Angel, Dave Shreiner (2019), Interactive Computer Graphics,

Addison-Wesley, 6th Edition

[2] Peter Shirley, Steve Marschner (2009), Fundamentals Of Computer

Graphics, A K Peters/CRC, 3 Edition.

[3] Dave Shreiner, Graham Sellers, John M Kessenich, Bill M Licea-Kane

(2013), OpenGL Programming Guide, Addison-Wesley, 8th Edition.

[4] Foley,Van Dam (1995), Computer Graphics Principles And Practice In C,

Ed Addison Wesley, 2Nd Edition

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

w