Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 59 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
59
Dung lượng
16,05 MB
Nội dung
BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: XÂY DỰNG CHƯƠNG TRÌNH MÔ PHỎNG KHU HIỆU BỘ TRƯỜNG ĐẠI HỌC HÀNG HẢI TRỢ GIÚP CHO VIỆC TÌM ĐƯỜNG TRONG KHÔNG GIAN 3D GIẢNG VIÊN HƯỚNG DẪN: ThS NGUYỄN HẠNH PHÚC GIẢNG VIÊN PHẢN BIỆN: ThS PHẠM TRUNG MINH TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC ĐỀ TÀI: XÂY DỰNG CHƯƠNG TRÌNH MÔ PHỎNG KHU HIỆU BỘ TRƯỜNG ĐẠI HỌC HÀNG HẢI TRỢ GIÚP CHO VIỆC TÌM ĐƯỜNG TRONG KHÔNG GIAN 3D GIẢNG VIÊN HƯỚNG DẪN: ThS NGUYỄN HẠNH PHÚC MỤC LỤC DANH MỤC CÁC HÌNH VẼ TRONG BÁO Hình ảnh Hình 2.2.1 Hình 2.2.2 Trang 9 Hình 2.2.3 10 Hình 2.3.1 Hình 2.4.1 Hình 2.4.2 Hình 2.4.3 Hình 2.4.4 11 11 12 13 13 Hình 2.4.5 Hình 2.4.6 Hình 2.4.7 Hình 2.4.8 Hình 2.4.9 Hình 2.4.10 Hình 2.4.11 Hình 2.4.12 Hình 2.4.13 Hình 3.2.1 Hình 3.2.2 14 15 21 21 21 22 22 23 23 33 33 Hình 3.2.3 Hình 3.2.4 35 36 Hình 3.2.5 37 Hình 3.2.6 38 Hình 3.2.7 Hình 3.2.8 39 40 Hình 3.2.9 Hình 3.2.10 41 42 Hình 3.2.11 44 Hình 3.2.12 Hình 3.2.13 Hình 3.2.14 45 46 46 Hình 3.2.15 Hình 3.2.16 48 49 Hình 3.2.17 50 Hình 3.2.18 51 Hình 3.2.19 51 Hình 3.3.1 53 HÌnh 3.3.2 53 Hình 3.3.3 54 Hình 3.3.4 54 HÌnh 3.3.5 55 Hình 3.3.6 55 Hình 3.3.7 56 Hình 3.4.1 60 Hình 3.4.2 61 ỨNG DỤNG OPEN GL XÂY DỰNG CHƯƠNG TRÌNH MÔ PHỎNG MỘT SỐ TÒA NHÀ KHU HIỆU BỘ CHƯƠNG MỞ ĐẦU Giới thiệu 1.1 Thời kỳ 1956-1958 (Trường Sơ cấp Hàng hải) Ngày 01/4/1956, Trường sơ cấp Lái tàu thành lập Nhà máy nước đá, đường Cù Chính Lan Thành phố Hải Phòng (nay trụ sở Công ty vận tải thủy số 3) Đồng chí Kiều Công Quế, giám đốc Cảng Hải Phòng, kiêm Hiệu trưởng; đồng chí Nguyễn Văn Quế làm Phó Hiệu trưởng thường trực Khóa đầu có 120 học sinh Ngày 01/7/1956, số Bến Bính Trường sơ cấp Máy tàu thành lập Đồng chí Nguyễn Văn Tiên làm Hiệu Trưởng Đầu năm 1957, sáp nhập Trường Sơ cấp Lái tàu Trường Sơ cấp Máy tàu thành trường Sơ cấp Hàng hải, trụ sở số Bến Bính Hải Phòng Đồng chí Nguyễn Văn Tiên bổ nhiệm quyền Hiệu trưởng 1.2 Thời kỳ 1959-1961 (Trường Trung cấp Hàng hải) Đầu năm 1959, Trường Sơ cấp Hàng hải nâng lên thành Trường Trung cấp Hàng hải trực thuộc Tổng cục Giao thông thủy trụ sở số Bến Bính Hải Phòng Đồng chí Lê Văn Cường bổ nhiệm làm Hiệu trưởng, đồng thời giữ chức Bí thư Đảng ủy; đ/c Nguyễn Văn Tiên làm phó Hiệu trưởng (các đ/c Đặng Văn Qua, Đào Văn Quang sau thay đ/c Lê Văn Cường làm Hiệu trưởng) Tháng 9/1959 Trường chuyển địa điểm số Trần Phú Hải Phòng, thành lập phận Điện tàu thủy tạm thời nằm Ban Máy tàu thủy đ/c Lê Xuân Khảm phụ trách 1.3 Thời kỳ 1962-1975 (Trường Hàng hải Việt Nam) Tháng 5/1962 Nhà trường thành lập Ban Điện tàu thủy đ/c Phan Xuân Ngọc làm trưởng ban Trường chuyển trụ sở từ số Trần Phú tiếp quản Trường Học sinh Miền Nam số 19 21 Cầu Rào Đồng chí Lê Văn Cường làm Hiệu trưởng đến hết năm 1960 Tháng 1/1963 Trường đón đoàn chuyên gia Liên Xô gồm người thuộc chuyên ngành: Kinh tế vận tải, Hàng hải, Máy tàu, Điện tàu thủy sang giúp bồi dưỡng giáo viên xây dựng mục tiêu đào tạo Năm 1965 Trường sơ tán Xã ngoại thành thuộc Huyện Tiên Lãng Hải Phòng Thành lập Ban Vỏ tàu thủy đ/c Nguyễn Văn Phiêu phụ trách Mở thêm lớp Sơ cấp Thương vụ, Sơ cấp Hàng giang học 18 tháng Mở thí điểm lớp Đại học Tại chức ngành Hàng hải như: Lái tàu, Máy tàu, Điện tàu thủy (gọi lớp Đại học Chống Mỹ) Đến năm 1966, thức thành lập Khoa Đại học Hàng hải Huyện Quỳnh Phụ, Tỉnh Thái Bình, đ/c Nguyễn Minh Thuyết phụ trách ngành Lái tàu; đ/c Nguyễn Diên Niên phụ trách ngành Máy tàu thủy; đ/c Phan Xuân Ngọc phụ trách ngành Điện tàu thủy Năm 1968, Nhà trường mở thêm lớp đào tạo giáo viên ngành Hàn tàu Năm 1970, hợp tổ Vỏ tàu, Hàn tàu, Sửa chữa máy thành Ban Cơ khí thủy Từ 1971-1975 Trường chuyển 338 Lạch Tray (Cầu Rào) chuẩn bị cho bước phát triển Thời kỳ 1974-1975 đ/c Đỗ Viết Sử giao quyền Hiệu trưởng; đ/c Hoàng Văn Nhuận làm Bí thư Đảng ủy thời kỳ 1975-1976 1.4 Thời kỳ 1971-1984 (Phân hiệu Đại học Giao thông đường thủy) Phân hiệu Đại học Giao thông đường thủy (GTĐT) thành lập theo Quyết định số 115/CP Chính phủ sở ngành Đại học Cơ khí thủy, Công trình thủy, Vận tải thủy Trường Đại học Giao thông vận tải (GTVT) Khoa Đại học Hàng hải, đ/c Vũ Lăng bổ nhiệm Phân Hiệu trưởng Năm 1973 Trường Chính phủ giao đào tạo 10 ngành học Tháng 01/1973 Bộ GTVT giao nhiệm vụ cho Trường Hàng hải Việt Nam đón ngành học thuộc Khoa Hàng hải từ Phân hiệu GTĐT về, chiêu sinh khóa mới, chuẩn bị thành lập Trường Đại học Hàng hải Tháng năm 1974 ngành thuộc khoa Hàng hải từ Phân hiệu bàn giao xong Trường Hàng hải chuyển từ nơi sơ tán số 338 Lạch Tray, Hải Phòng 1.5 Thời kỳ 1976-1983 (Trường Đại học Hàng hải) Ngày 27/10/1976 Thủ tướng Chính phủ Quyết định số 426/TTG nâng Trường Hàng hải Việt Nam lên thành Trường Đại học Hàng hải, đ/c Trần Thiện Vụ trưởng Vụ Giáo dục Bộ GTVT kiêm Hiệu trưởng Nhà trường, đ/c Trần Ngọc Ân làm Bí thư Đảng ủy Trường thành lập khoa Tại chức-bổ túc, mở lớp bồi dưỡng sĩ quan cấp trưởng, mở thêm ngành Điện tàu thủy Tháng 01 năm 1977 Bộ GTVT bổ nhiệm đ/c Trần Hữu Nghị Trưởng khoa Máy tàu; đ/c Nguyễn Hữu Lý Trưởng khoa Lái tàu, đ/c Phan Xuân Ngọc Trưởng khoa Điện Tháng 4/1979 đ/c Lê Đức Toàn bổ nhiệm làm Hiệu trưởng 1.6 Thời kỳ xây dựng trưởng thành 1984-2000 Tháng 3/1984 Bộ GTVT Quyết định số 419QĐ/TCCB nhập trường ĐHGTĐT vào Trường Đại học Hàng hải Trường Đại học Hàng hải giữ nguyên phiên hiệu, dấu tài khoản; Đ/c Lê Đức Toàn cử làm Hiệu trưởng Tháng 8/1989 Bộ GTVT chuẩn y mục tiêu, chương trình, nội dung đào tạo ngành học Trường gồm: 10 ngành Đại học năm, 01 ngành Đại học năm ngành Trung học đào tạo năm Tháng 9/1992, Nhà trường Bộ Giáo dục Đào tạo cho mở đào tạo Cao học ngành Bảo đảm an toàn Hàng hải, Thiết bị lượng tàu thuyền, Điện tàu thủy, Đóng tàu, Xây dựng công trình thủy, Kinh tế vận tải thuỷ…Tháng năm 1997 PGS-TS Trần Đắc Sửu bổ nhiệm làm Hiệu trưởng thay đ/c Lê Đức Toàn Năm 1998 mở thêm ngành đào tạo hệ đại học: Điện tự động công nghiệp, Kinh tế ngoại thương, Xây dựng dân dụng công nghiệp 1.7 Trường Đại học Hàng hải phát triển hội nhập (từ năm 2000 đến nay) Năm 2004, Đ/c Đặng Văn Uy Phó Hiệu trưởng bổ nhiệm chức vụ Hiệu trưởng thay đ/c Trần Đắc Sửu Bộ GTVT điều động đảm nhiệm chức vụ Cục trưởng Cục Đường sông Việt Nam, đ/c Phạm Tiến Tỉnh Thảnh ủy cử làm Bí thư Đảng ủy Tháng 9/2005 Đại hội Đảng lần thứ XXIV nhiệm kỳ 2005 - 2008 đ/c Đặng Văn Uy bầu làm Bí thư Năm 2012, Đ/c Lương Công Nhớ Phó Hiệu trưởng bổ nhiệm chức vụ Hiệu trưởng thay đ/c Đặng Văn Uy Mục đích đề tài - Sử dụng OpenGL mô khu hiệu khu nhà khác giúp đưa hình ảnh trường tới gần người - Mô giới thiệu trường Đại Học Hàng Hải,Chỉ đường,Quảng bá CHƯƠNG CƠ SỞ LÝ THUYẾT Giới thiệu Open GL: Được phát triển Silicon Graphic, Inc., giao diện phần phần mềm hướng thủ tục theo chuẩn công nghiệp hộ trợ đồ họa chiều Cung cấp khoảng 120 tác vụ để vẽ primitive nhiều mode khác Với OpenGL, bạn tạo ảnh chiều tĩnh động với chất lượng cao Là giao diện phần mềm độc lập với phần cứng (hardware – independent software interface) hộ trợ cho lập trình đồ họa Để làm điều này, OpenGL không thực tác vụ thuộc hệ điều hành không nhận liệu nhập người dùng (người dùng giao tiếp với OpenGL thông qua OpenGL API) Nó lớp trung gian người dùng phần cứng Nghĩa giao tiếp trực tiếp với driver thiết bị đồ họa OpenGL - Open Graphics Library tiêu chuẩn kỹ thuật đồ họa có mục đích định giao diện lập trình ứng dụng API đồ họa chiều OpenGL dùng ứng dụng đồ họa chiều Giao diện lập trình chứa khoảng 250 hàm để vẽ cảnh phức tạp từ hàm đơn giản Nó dùng rộng rãi trò chơi điện tử Ngoài dùng ứng dụng CAD, thực tế ảo, mô khoa học, mô thông tin, phát triển trò chơi Lập trình đại 2.1 Giới thiệu GLSL Ngôn ngữ OpenGL Shading (viết tắt: GLSL GLslang ), cấp cao ngôn ngữ bóng dựa cú pháp ngôn ngữ lập trình C Nó tạo ARB OpenGL để cung cấp cho nhà phát triển kiểm soát trực tiếp đường ống dẫn đồ họa mà không cần phải sử dụng ngôn ngữ lắp ráp ARB ngôn ngữ phần cứng cụ thể Sơ đồ tổng quan trình truyền liệu: Hình 2.2.1 Sơ đồ trình dựng hình: 10 Hình 2.2.2 Thay chức cố định API: Card đồ họa gần cung cấp cho lập trình viên khả xác định chức hai giai đoạn mô tả trên: Shaders đỉnh viết cho giai đoạn chuyển đổi Vertex Fragment shaders thay Fragment Texturing chức cố định màu đối tượng Vertex: Bộ xử lý đỉnh chịu trách nhiệm để chạy shaders đỉnh Đầu vào cho Shader đỉnh liệu đỉnh, cụ thể vị trí, màu sắc, normals nó, vv, tùy thuộc vào ứng dụng OpenGL gửi /*OpenGL mã sau gửi cho vi xử lý đỉnh màu sắc vị trí đỉnh cho đỉnh*/ glBegin( ); glColor3f(0.2,0.4,0.6); glVertex3f(-1.0,1.0,2.0); glColor3f(0.2,0.4,0.8); glVertex3f(1.0,-1.0,2.0); glEnd(); 45 Hình 3.2.13 - Khu sân Tennis nhà gửi xe giảng viên: Được tạo 12489 đỉnh lưu file gồm: 24_TENISS_STN_CT_GXGV_SB_CacCua_MaiNha_STN_C T_GXGV_SB_Plane.XML 24_TENISS_STN_CT_GXGV_SB_STN_CT_GXGV_SB_Plan e.XML 24_TENISS_STN_CT_GXGV_SB_ThepMatCao_STN_CT_G XGV_SB_Plane.XML Hình 3.2.14 - Sân vận động hàng hải: Được tạo 15093 đỉnh lưu file bao gồm: 23_SanVanDongHangHai_CotTru_SanVanDongHangHai_P lane_CotTru.XML 46 23_SanVanDongHangHai_MaiNha_CacCua_SanVanDongH angHai_Plane_MaiNha.XML 23_SanVanDongHangHai_Nen_SanVanDongHangHai_Plan e.XML … 012 47 8238 8239 8240 8241 8242 8243 8244 8245 8246 23_SanVanDongHangHai_SanVanDongHangHai_Plane.XM L 23_SanVanDongHangHai_ThepMatCao_SanVanDongHang Hai_Plane.XML 23_SanVanDongHangHai_TuongRao_SanVanDongHangHai _Plane.XML Hình 3.2.15 - Thư viện: Được tạo 22950 đỉnh lưu file bao gồm: 21_NhaAnSinhVien_BacThang_NhaAnSinhVien.XML 21_NhaAnSinhVien_Cua_NhaAnSinhVien.XML 21_NhaAnSinhVien_LanCan.XML 21_NhaAnSinhVien_Nen_NhaAnSinhVien.XML 21_NhaAnSinhVien_NhaAnSinhVien.XML 21_NhaAnSinhVien_TranNha_NhaAnSinhVien.XML 48 Hình 3.2.16 - Nhà C1: Được tạo 39478 đỉnh lưu file bao gồm: 28_KhuNhaHocTiengAnh_TranNHa_KhuNhaHocTiengAnh_T ranhNha.XML 28_KhuNhaHocTiengAnh_TienSanh_KhuNhaHocTiengAnh_Ti enSanh.XML 28_KhuNhaHocTiengAnh_Nen_KhuNhaHocTiengAnh_Nen.X ML 28_KhuNhaHocTiengAnh_KhuNhaHocTiengAnh_Main.XML 28_KhuNhaHocTiengAnh_CacCua_KhuNhaHocTiengAnh_Ca cCua.XML 49 Hình 3.2.17 - Khuân viên: Được tạo 46447 đỉnh 15 file bao gồm: 16_NenDat.XML 16_NenDat_Gach_16_NenDat_GachDo.XML 29_DuongNoiDuaCacNha_MaiNha_MaiNhaCua.XML 29_DuongNoiDuaCacNha_Nen_NenDuongNoiCacNha.XML 29_DuongNoiDuaCacNha_NenCo_NenCo.XML 29_DuongNoiDuaCacNha_Vien_VanhBonCay.XML 29_ToanBoHangGiao_TuongGiao.XML 30_BanhLai_BanhLai.XML 30_BanhLai_Nen_NenBanhLai.XML 31_DaiPhunNuoc_DaiTuongNiemMain.XML 31_DaiPhunNuoc_DaySic_DaySic.XML 50 31_DaiPhunNuoc_MaiNhaDong_MaiNhaDong.XML 31_DaiPhunNuoc_Nen_LongBe.XML 32_CongTruong_CongTruong.XML 33_CacBienBao_BienTruong.XML Hình 3.2.18 Ghép nhà ta khu Hiệu Bộ hoàn thiện - Dữ liệu tải chương trình với dung lượng 185MB: Dữ liệu ảnh: Hình 3.2.19 Dữ liệu đỉnh: 51 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1E-06 -1 -1E-06 -1 -1E-06 -1 -1E-06 0.0001 0.9999 0.9999 0.9999 0.9999 0.0001 0.0001 0.0001 013 123 Chương trình: 52 Hình 3.3.1 -Một số hình ảnh chương trình Hình 3.3.2 53 Hình 3.3.3 Hình 3.3.4 54 Hình 3.3.5 Hình 3.3.6 55 Hình 3.3.7 Chỉ đường: Ý tưởng: Người dùng lựa chọn địa điểm cần tới, chương trình tìm kiếm CSDL đường tạo hiển thị thành đồ họa cho người dùng theo Cách thứ hoạt động: Sau người dùng lựa chọn địa cần tới, chương trình tự động tìm kiếm điểm kiểm soát gần không cắt vật thể nào, từ điểm chương trình tìm kiếm sở lệu đường xây dựng từ trước tiến hành vạch đường cho người dùng Để tìm điểm kiểm soát gần chương trình phải duyệt qua tất mặt phẳng môi trường xem có cắt mặt phẳng không Code thực chức này: //chức tìm keiesm điểm cắt với mẳt phẳng glm::vec4 GetPointCat(glm::vec3 PointPlan[],glm::vec3 PointLine[]) { glm::mat3 TempM=glm::mat3( glm::vec3(PointLine[0].xPointLine[1].x,PointPlan[1].x-PointPlan[0].x,PointPlan[2] PointPlan[0].x), glm::vec3(PointLine[0].yPointLine[1].y,PointPlan[1].y-PointPlan[0].y,PointPlan[2] PointPlan[0].y), 56 glm::vec3(PointLine[0].zPointLine[1].z,PointPlan[1].z-PointPlan[0].z,PointPlan[2] PointPlan[0].z) ); glm::vec3 TempT=glm::vec3( PointLine[0].x-PointPlan[0].x, PointLine[0].y-PointPlan[0].y, PointLine[0].z-PointPlan[0].z); glm::vec3 TVU=TempT*glm::inverse(TempM); return glm::vec4(PointLine[0]+(PointLine[1]PointLine[0])*TVU.x,TVU.x); // neu t >=0 end = 0) return true; return false; } bool PointInTriangle { glm::vec3 glm::vec3 glm::vec3 (glm::vec3 TriangleVectors[], glm::v A = TriangleVectors[0]; B = TriangleVectors[1]; C = TriangleVectors[2]; if(SameSide(P,A,B,C)&&SameSide(P,B,A,C)&&SameSide B)) { glm::vec3 VC1 = glm::cross (A-B, A-C); if (glm::abs (glm::dot (A-P, VC1))