1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tìm hiểu một số kỹ thuật đồ họa 3d và ứng dụng

61 4 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

Định dạng
Số trang 61
Dung lượng 8,45 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG………………… Luận văn Tìm hiểu số kỹ thuật đồ họa 3D ứng dụng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – Trước hết em xin chân thành thầy Ngô Trường Giang giáo viên hướng dẫn em tình thực tập Thầy giúp em nhiều cung cấp cho em nhiều tài liệu quan trọng phục vụ cho trình tìm hiểu đề tài “Tìm hiểu ” Thứ hai, Em xin chân thành cảm ơn thầy cô môn công nghệ thông tin bảo bảo em trình học rèn luyện năm học vừa qua Đồng thời em cảm ơn bạn sinh viên lớp CT901 gắn bó với em q trình rèn luyện trường Cuối em xin chân thành cảm ơn ban giám hiệu trường Đại Học Dân Lập Hải Phòng tạo điều kiện cho em có kiến thức, thư viện trường nơi mà sinh viên trường thu thập tài liệu trợ giúp cho giảng lớp Đồng thời thầy cô trường giảng dạy cho sinh viên kinh nghiệm sống Với kiến thức kinh nghiệm giúp em cho cơng việc sống sau Em xin chân thành cảm ơn! Hải Phòng, tháng 07 năm 2009 Sinh viên Nguyễn Phi Hùng - Lớp CT901 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – MỤC LỤC Mở đầu CHƯƠNG 1: Tổng quan kỹ thuật đồ họa 1.1 Các khái niệm tổng quan kỹ thuật đồ họa máy tính 1.2 Các kỹ thuật đồ họa 1.2.1 Kỹ thuật đồ họa điểm 1.2.2 Kỹ thuật đồ họa vector 1.2.3 Phân loại đồ họa máy tính 1.2.4 Các ứng dụng tiêu biểu kỹ thuật đồ họa 11 CHƯƠNG 2: Một số kỹ thuật ứng dụng đồ họa 3D 13 2.1 Các phép biến đổi hình học ba chiều 13 2.1.1 Hệ tọa độ 13 2.1.2 Phép tịnh tiến 13 2.1.3 Phép tỷ lệ 14 2.1.4 Phép biến dạng 14 2.1.5 Phép quay chiều 14 2.1.6 Phép đối xứng 15 2.2 Quan sát chiều (Phép chiếu - Projection) 16 2.2.1 Các phép chiếu 16 2.2.2 23 CHƯƠNG 3: Giới thiệu Engine OGRE 29 3.1 Giới thiệu tổng quan OGRE 29 3.1.1 Lịch sử phát triển 29 3.1.2 Một số khái niệm đặc điểm OGRE 30 3.1.3 Cấu trúc quản lý cảnh OGRE 31 3.2 Cấu hình Engine OGRE 34 3.2.1 Yêu cầu phần mềm 34 3.2.2 Các bước cài đặt chạy thử nghiệm 34 Nguyễn Phi Hùng - Lớp CT901 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – 3.3 Một số học câu lệnh đồ họa 3D 36 CHƯƠNG 4: Thực nghiệm 39 4.1 Phát biểu toán ứng dụng 39 4.2 40 4.2.1 40 4.2.2 (Select) 44 4.2.3 45 4.2.4 47 4.3 53 4.3.1 53 4.3.2 54 4.4 Kết luận 58 59 Tài liệu tham khảo 60 Nguyễn Phi Hùng - Lớp CT901 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – Mở đầu n – chương: Chương 1: Đ Chương 3D Chương 3: T Chương 4: Nguyễn Phi Hùng - Lớp CT901 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – CHƯƠNG 1: Tổng quan kỹ thuật đồ họa 1.1 Các khái niệm tổng quan kỹ thuật đồ họa máy tính Definition (ISO): Phương pháp công nghệ chuyển đổi liệu từ thiết bị đồ hoạ sang máy tính Computer Graphics phương tiện đa mạnh giao tiếp người máy tính Computer Graphics (Kỹ thuật đồ hoạ máy tính) thơng tin mà ng tập hợp cơng cụ (mơ hình lý thuyết phần mềm) khác nhau: kiến tạo, xây dựng, luu trữ, xử lý mơ hình (model) hình ảnh (image) đối tượng Các mơ hình (model) hình ảnh kết thu từ lĩnh vực khác nhiều ngành khoa học (vật lý, toán học, thiên văn học…) Computer graphics xử lý tất vấn đề tạo ảnh nhờ máy tính 1.2 Các kỹ thuật đồ họa 1.2.1 Kỹ thuật đồ họa điểm Các mơ hình , hình ảnh đối tượng hiển thị thông qua pixel (từng mẫu rời rạc) Đặc điểm: thay đổi thuộc tính Xố pixel mơ hình hình ảnh đối tượng Các mơ hình hình ảnh hiển thị lưới điểm (grid) pixel rời rạc Từng pixel có vị trí xác định, hiển thị với giá trị rời rạc (số nguyên) thông số hiển thị (màu sắc độ sáng) Nguyễn Phi Hùng - Lớp CT901 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – Tập hợp tất pixel grid cho mơ hinh, hình ảnh đối tượng mà muốn hiển thị Hình 1.1 Ảnh đồ họa điểm Phương pháp để tạo pixel Phương pháp dùng phần mềm để vẽ trực tiếp pixel Dựa lý thuyết mô (lý thuyết Fractal, v.v) để xây dựng nên hình ảnh mơ vật Phương pháp rời rạc hóa (số hóa) hình ảnh thực đối tượng Có thể sửa đổi (image editing) xử lý (image processing) mảng pixel thu theo phương pháp khác đ thu hình ảnh đặc trưng đối tượng 1.2.2 Kỹ thuật đồ họa vector Hình 1.2 Mơ hình đồ họa vector Nguyễn Phi Hùng - Lớp CT901 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – Mơ hình hình học (geometrical model) cho mơ hình hình ảnh đối tượng Xác định thuộc tính mơ hình hình học Q trình tơ trát (rendering) để hiển thị điểm mơ hình, hình ảnh thực đối tượng Có thể định nghĩa đồ họa vector: Đồ họa vector = geometrical model + rendering So sánh đồ họa điểm đồ họa vector Đồ họa điểm(Raster Graphics) Ðồ hoạ vector(Vector Graphics) Hình ảnh mơ hình vật Khơng thay đổi thuộc tính thể biểu diễn tập hợp điểm trực tiếp điểm lưới (grid) Xử lý với th Thay đổi thuộc tính pixel học sở thực thay đổi phần phần hình q trình tơ trát hiển thị lại hình ảnh Quan s Copy pixel từ hình hình ảnh vật nhiều ảnh sang hình ảnh khác góc độ khác thay hình ảnh mơ hình đổi điểm nhìn góc nhìn Ví dụ hình ảnh đồ họa vector Nguyễn Phi Hùng - Lớp CT901 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – Hình 1.3 Ví dụ đồ họa vector 1.2.3 Phân loại đồ họa máy tính Phân loại theo lĩnh vực hoạt động đồ họa máy tính CAD/CAM System Kiến tạo đồ họa Đồ họa minh họa Đồ họa hoạt hình nghệ thuật Kỹ thuật đồ họa Xử lý ảnh Xử lý đồ họa Kỹ thuật nhận dạng Kỹ thuật phân tích tạo ảnh Nguyễn Phi Hùng - Lớp CT901 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – if (itr->movable) mCurrentObject = itr->movable->getParentSceneNode(); Nguyễn Phi Hùng - Lớp CT901 46 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – t if (mLMouseDown && mCurrentObject) { CEGUI::Point mousePos = CEGUI::MouseCursor::getSingleton().getPosition(); Ray mouseRay = mCamera->getCameraToViewportRay( mousePos.d_x/(mWindow->getWidth()), mousePos.d_y/(mWindow->getHeight())); mRaySceneQuery->setRay(mouseRay); mRaySceneQuery->setSortByDistance(false); RaySceneQueryResult &result = mRaySceneQuery->execute(); RaySceneQueryResult::iterator itr; for (itr = result.begin(); itr != result.end(); itr++) if (itr->worldFragment) { mCurrentObject->setPosition(itr->worldFragment->singleIntersection); break; } // if } // if 4.2.4 skeleton mesh Nguyễn Phi Hùng - Lớp CT901 47 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – file cfg file cua1.cfg // Create Door SceneNode* mDoorNode = mgr->getRootSceneNode()-> createChildSceneNode("Cua"); // Load cfg file ConfigFile cfg; cfg.load( "cua1.cfg" ); availableMeshes = cfg.getMultiSetting("Mesh"); Entity* mEntity; // Load doi tuong for(int i=0; i < availableMeshes.size(); i++) { mEntity = mgr->createEntity(availableMeshes[i], availableMeshes[i] + ".mesh"); mDoorNode->attachObject(mEntity); } Nguyễn Phi Hùng - Lớp CT901 48 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – // Open button CEGUI::WindowManager *winm = CEGUI::WindowManager::getSingletonPtr(); CEGUI::Window *sheet = winm->createWindow("DefaultGUISheet", "CEGUIDemo/Sheet"); CEGUI::Window *quit = winm->createWindow("TaharezLook/Button", "Open"); open->setText("Mo cua"); open->setSize(CEGUI::UVector2(CEGUI::UDim(0.15, 0),CEGUI::UDim(0.05, 0))); open->setPosition(CEGUI::UVector2(CEGUI::UDim(0.5,0),CEGUI::UDim(0.5,0))); open->setVisible(false); sheet->addChildWindow(quit); mSystem->setGUISheet(sheet); Nguyễn Phi Hùng - Lớp CT901 49 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – ) lưu ) – ScrollBar ) Nguyễn Phi Hùng - Lớp CT901 50 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – CEGUI::Window* radio = winm->createWindow("TaharezLook/RadioButton", "rOn" + StringConverter::toString(i)); radio->setText((CEGUI::utf8*)"Báº-t"); ((CEGUI::RadioButton*)radio)->setSelected(true); ((CEGUI::RadioButton*)radio)->setMaxSize( CEGUI::UVector2(CEGUI::UDim(1, 0), CEGUI::UDim(1, 0))); , Top, Width, Height ((CEGUI::RadioButton*)radio)->setArea( CEGUI::UDim(0.5, 0), CEGUI::UDim(0.2, 0), CEGUI::UDim(0.2, 0), CEGUI::UDim(0.25, 0)); ) ((CEGUI::RadioButton*)radio)->setGroupID(i); n ((CEGUI::RadioButton*)radio)->setID(0); ScrollBar CEGUI::Window* horibar = winm->createWindow( "TaharezLook/HorizontalScrollbar", "cuongdo" + StringConverter::toString(i)); horibar->setMaxSize( CEGUI::UVector2(CEGUI::UDim(1, 0), CEGUI::UDim(1, 0))); horibar->setArea( CEGUI::UDim(0.15, 0), CEGUI::UDim(0.75, 0), CEGUI::UDim(0.8, 0), CEGUI::UDim(0.2, 0)); horibar->setProperty("PageSize","0"); horibar->setProperty("StepSize","1"); horibar->setProperty("OverlapSize","0"); horibar->setProperty("DocumentSize","2"); horibar->setProperty("ScrollPosition","1"); horibar->setProperty("InheritsAlpha","False"); Nguyễn Phi Hùng - Lớp CT901 51 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – bool handleLightOnOff(const CEGUI::EventArgs& e) { CEGUI::uint gr = ((CEGUI::RadioButton*)((const CEGUI::WindowEventArgs&)e).window)-> getSelectedButtonInGroup()->getGroupID(); CEGUI::uint id = ((CEGUI::RadioButton*)((const CEGUI::WindowEventArgs&)e).window)-> getSelectedButtonInGroup()->getID(); if (id == 0) mgr->getLight(stLight[gr])->setVisible(true); if (id == 1) mgr->getLight(stLight[gr])->setVisible(false); return true; } ScrollBar bool handleLightChanged(const CEGUI::EventArgs& e) { CEGUI::uint l = ((CEGUI::Scrollbar*)((const CEGUI::WindowEventArgs&)e).window)->getName().length(); CEGUI::String numl = ((CEGUI::Scrollbar*)((const CEGUI::WindowEventArgs&)e).window)->getName(); ::String -> Ogre::String String num; char h[20]; sprintf(h,numl.c_str()); num = h; ::String -> CEGUI::int l = StringConverter::parseInt(num.substr(7,l)); String copyl; copyl = "copyLight" + stLight[l]; float scrollval = ((CEGUI::Scrollbar*)((const CEGUI::WindowEventArgs&)e).window)->getScrollPosition() - 1; mgr->getLight(stLight[l])->setDiffuseColour( mgr->getLight(copyl)->getDiffuseColour() + ColourValue(scrollval, scrollval, scrollval)); mgr->getLight(stLight[l])->setSpecularColour( mgr->getLight(copyl)->getSpecularColour() + ColourValue(scrollval, scrollval, scrollval)); return true; } Nguyễn Phi Hùng - Lớp CT901 52 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – 4.3 4.3.1 : 4.7 Nguyễn Phi Hùng - Lớp CT901 53 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – 4.3.2 C Nguyễn Phi Hùng - Lớp CT901 54 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – 4.9 4.10 Nguyễn Phi Hùng - Lớp CT901 55 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – ) Nguyễn Phi Hùng - Lớp CT901 56 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – – – – Nguyễn Phi Hùng - Lớp CT901 57 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – 4.4 ,g : Nguyễn Phi Hùng - Lớp CT901 58 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – Kết luận - Tuy nhiên hạn chế điều kiện thời gian, khoá luận khơng thể tránh khỏi thiếu xót Kính mong đóng góp ý kiến thầy bạn để em hồn thiện đề tài nghiên cứu đợt làm khố luận tốt nghiệp ! Nguyễn Phi Hùng - Lớp CT901 59 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com – Tài liệu tham khảo [1.] James D.Foley, Andrie van Dam, Steven K.Feiner, Jonhn F Hughes, Computer Graphics Principles and Practice, Addison Wesley, 1994 [2.] Hồng Kiếm, Dương Anh Ðức, Lê Ðình Duy, Vu Hải Quân Giáo trình sở Ðồ hoạ Máy tính, NXB Giáo dục, 2000 [3.] Lê Tấn Hùng, Huỳnh Quyết Thắng Kỹ thuật đồ hoạ máy tính, NXB khoa học kỹ thuật, 2002 [4.] Steven Harrington, Computer Graphics A Programming Approach, McGraw Hill International Edition, 1987 [5.] Pro OGRE 3D Programming Nguyễn Phi Hùng - Lớp CT901 60 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... độ Kỹ thuật đồ họa chiều Kỹ thuật đồ họa Kỹ thuật đồ họa chiều Kỹ thuật đồ họa chiều: kỹ thuật đồ họa máy tính sử dụng hệ tọa độ hai chiều (hệ tọa độ thẳng), sử dụng nhiều kỹ thuật xử lý đồ, đồ. .. Phát biểu toán ứng dụng Qua tìm hiểu lý thuyết số kỹ thuật đồ họa 3D, vận dụng kiến thức để sử dụng thành thạo kỹ thuật đồ họa 3D thư viện đồ họa 3D mã nguồn mở, qua viết ứng dụng 3D quản lý bất... 1: Tổng quan kỹ thuật đồ họa 1.1 Các khái niệm tổng quan kỹ thuật đồ họa máy tính 1.2 Các kỹ thuật đồ họa 1.2.1 Kỹ thuật đồ họa điểm 1.2.2 Kỹ thuật đồ họa vector

Ngày đăng: 01/11/2022, 20:03

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

TÀI LIỆU LIÊN QUAN

w