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

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

63 23 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

– 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 – 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.1Kỹ thuật đồ 1.2.2Kỹ thuật đồ 1.2.3Phân loại củ 1.2.4Các ứng dụ CHƯƠNG 2: Một số kỹ thuật ứng dụng đồ họa 3D 2.1 Các phép biến đổi hình học ba chiều 2.1.1Hệ tọa độ t 2.1.2Phép tịnh ti 2.1.3Phép tỷ lệ 2.1.4Phép biến d 2.1.5Phép quay 2.1.6Phép đối xứ 2.2 Quan sát chiều (Phép chiếu - Projection) 2.2.1Các phép c 2.2.2 CHƯƠNG 3: Giới thiệu Engine OGRE 3.1 Giới thiệu tổng quan OGRE 3.1.1Lịch sử phá 3.1.2Một số 3.1.3Cấu trúc qu 3.2 Cấu hình Engine OGRE 3.2.1Yêu cầu ph 3.2.2Các bước c Nguyễn Phi Hùng - Lớp CT901 – 3.3 Một số học câu lệnh đồ họa 3D CHƯƠNG 4: Thực nghiệm 4.1 Phát biểu toán ứng dụng 4.2 4.2.1 4.2.2 4.2.3 4.2.4 4.3 4.3.1 4.3.2 4.4 Kết luận Tài liệu tham khảo Nguyễn Phi Hùng - Lớp CT901 – Mở đầu n – chương: Chương 1: Đ 3D Chương Chương 3: T Chương 4: Nguyễn Phi Hùng - Lớp CT901 – 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 – 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 – 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) Hình ảnh mơ hình vật thể biểu diễn tập hợp điểm lưới (grid) Thay đổi thuộc tính pixel thay đổi phần hình ảnh Copy pixel từ hình ảnh sang hình ảnh khác Ví dụ hình ảnh đồ họa vector Nguyễn Phi Hùng - Lớp CT901 – 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 Kiến tạo đồ họa Kỹ thuật đồ họa Xử lý đồ họa Nguyễn Phi Hùng - Lớp CT901 – Phân loại theo hệ tọa độ 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ý đồ, đồ thị Kỹ thuật đồ họa chiều: kỹ thuật đồ họa máy tính sử dụng hệ tọa độ ba chiều, địi hỏi rát nhiều tính tốn phức tạp nhiều so với kỹ thuật đồ họa hai chiều Các lĩnh vực đồ họa máy tính: Kỹ thuật xử lý ảnh (Computer Imaging): sau trình xử lý ảnh cho ta ảnh số đối tượng, Trong trình xử lý ảnh sử dụng nhiều 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 mẫu có sẵn ta phân loại theo trúc, theo tiêu trí xác định từ trước thuật toán chọn lọc để cso thể phân tích hay tổng hợp cá ảnh gốc, ảnh gốc lưu thư viện vào thư viện ta xây dựng thuật giải phân tích tổ hợp ảnh Kỹ thuật tổng hợp ảnh (Image Synthesis): lĩnh vực xây dựng mô hình hình ảnh vật thể dựa đối tượng mối quan hệ chúng Nguyễn Phi Hùng - Lớp CT901 – if (itr->movable) mCurrentObject = itr->movable->getParentSceneNode(); Nguyễn Phi Hùng - Lớp CT901 – 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 – 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 – // 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 – ) lưu ) – ScrollBar ) Nguyễn Phi Hùng - Lớp CT901 – 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 – 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 – 4.3 4.3.1 : 4.7 Nguyễn Phi Hùng - Lớp CT901 – 4.3.2 C Nguyễn Phi Hùng - Lớp CT901 – 4.9 4.10 Nguyễn Phi Hùng - Lớp CT901 – ) Nguyễn Phi Hùng - Lớp CT901 – – – – Nguyễn Phi Hùng - Lớp CT901 – 4.4 ,g : Nguyễn Phi Hùng - Lớp CT901 – Kết luận - Tuy nhiên hạn chế điều kiện thời gian, khố 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 khoá luận tốt nghiệp ! Nguyễn Phi Hùng - Lớp CT901 – 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.] Hoà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 ... họa Xử lý đồ họa Nguyễn Phi Hùng - Lớp CT901 – Phân loại theo hệ tọa độ 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... 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... 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. 1Kỹ thuật đồ 1.2. 2Kỹ thuật đồ 1.2.3Phân loại củ 1.2.4Các ứng dụ CHƯƠNG

Ngày đăng: 30/03/2021, 19:39

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w