Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 72 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
72
Dung lượng
1,64 MB
Nội dung
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VŨ THỊ MAI HƯƠNG GIANG NGHIÊNCỨUKỸTHUẬTHIỂNTHỊHÌNHẢNHBACHIỀU LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH THÁI NGUYÊN - 2016 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VŨ THỊ MAI HƯƠNG GIANG NGHIÊNCỨUKỸTHUẬTHIỂNTHỊHÌNHẢNHBACHIỀU Chuyên ngành Mã số : Khoa học máy tính : 60480101 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS ĐỖ NĂNG TOÀN THÁI NGUYÊN - 2016 LỜI CAM ĐOAN Tôi xin cam đoan luận văn công trình nghiêncứu riêng cá nhân tôi, kết luận văn hoàn toàn kết tự thân tìm hiểu, nghiêncứu hướng dẫn giáo viên hướng dẫn PGS.TS Đỗ Năng Toàn Tôi hoàn toàn chịu trách nhiệm tính pháp lý trình nghiêncứu khoa học luận văn Thái Nguyên, 16 tháng năm 2016 Học viên Vũ Thị Mai Hương Giang LỜI CẢM ƠN Lời đầu tiên, em xin gửi lời biết ơn sâu sắc đến PGS TS Đỗ Năng Toàn người tận tình hướng dẫn, bảo, giúp đỡ em suốt trình làm luận văn Con xin gửi lời cảm ơn Ba, Mẹ, anh chị em gia đình bên để ủng hộ, động viên tạo điều kiện giúp đỡ suốt trình học tập nghiêncứu làm luận văn Học viên xin gửi lời cảm ơn đến thầy cô giáo trường Đại học Công nghệ thông tin Truyền thông - Đại học Thái Nguyên, thầy cô Viện Công nghệ thông tin truyền đạt kiến thức giúp đỡ em suốt trình học Học viên xin gửi lời cảm ơn tới Ban giám hiệu Trường Đại học Y Dược Thái Nguyên, đồng nghiệp bạn bè tạo điều kiện thuận lợi cho học viên tham gia khóa học trình hoàn thành luận văn Thái Nguyên,16 tháng năm 2016 Học viên Vũ Thị Mai Hương Giang MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN DANH MỤC HÌNH DANH MỤC TỪ VIẾT TẮT PHẦN MỞ ĐẦU CHƯƠNG I KHÁI QUÁT VỀ ĐỒ HOẠ 3D VÀ BÀI TOÁN HIỂNTHỊ 3D 1.1 Khái quát kỹthuật đồ hoạ 3D 1.1.1 Đồ họa 3D gì? 1.1.2 Lịch sử phát triển 1.1.3 Các kỹthuật đồ họa 1.1.4 Phần cứng đồ họa (Graphics HardWare) 1.1.5 Các ứng dụng đồ họa 3D 15 1.2 Bài toán hiểnthị đối tượng 3D 17 1.2.1 Phát biểu toán ứng dụng 17 1.2.2 Nguyên lý 3D (three-Dimension) 18 1.2.3 Đặc điểm kỹthuật đồ hoạ 3D 18 1.2.4 Các phương pháp hiểnthị 3D 19 CHƯƠNG 21 MỘT SỐ VẤN ĐỀ TRONG HIỂNTHỊHÌNHẢNHCHIỀU 21 2.1 Biểu diến liệu 3D 21 2.1.1 Kỹthuật biểu diễn bề mặt (Surface rendering - SR) 21 2.1.2 Kỹthuật biểu diễn thể tích (volume rendering - VR) 27 2.2 Hiểnthị 3D 33 2.2.1 Kỹthuậthiểnthị Stereo 33 2.2.2 Kỹthuậthiểnthịhìnhảnh thông qua phép chiếu 42 CHƯƠNG 3: CHƯƠNG TRÌNH THỬ NGHIỆM 48 3.1 Bài toán 48 3.2 Phân tích, lựa chọn công cụ 48 3.2.1 Phân tích 48 3.2.2 Lựa chọn công cụ 49 3.3 Chương trình thử nghiệm 56 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 61 TÀI LIỆU THAM KHẢO 63 DANH MỤC HÌNHHình 1 Ảnh đồ hoạ điểm HìnhKỹthuật đồ họa điểm Hình Mô hình đồ họa vector Hình 4.Các thành phần cứng hệ đồ hoạ tương tác Hình Cấu tạo hình CRT 10 Hình Tổ chức bảng tra màu LUT (Look Up Table) 13 Hình Phép chiếu Stereo 18 Hình Các cách mô tả đối tượng 3D 19 Hình Các góc nhìn khác mô hình 3D 19 Hình 10 Các phương pháp hiểnthị 3D 20 HìnhHìnhảnh 3D biểu diễn theo phương pháp SR 21 Hình 2 Minh họa thuật toán Marching square 22 Hình 16 trường hợp Marching Square 22 Hình Minh họa tạo bề mặt từ đường viền 23 Hình Xây dựng bề mặt theo giá trị đỉnh 24 Hình Các trường hợp mặt qua khối lập phương thuật toán Marching Cubes 24 Hình Một trường hợp lỗi Marching Cubes 25 Hình Chia khối lập phương thành khối tứ diện 26 Hình Hai trường hợp mặt phẳng qua khối tứ diện 26 Hình 10 Minh họa thuật toán Dividing Cubes để vẽ đường mặt phẳng 26 Hình 11 Minh họa thuật toán Dividing Cubes không gian bachiều 27 Hình 12 Hìnhảnh 3D biểu diễn theo phương pháp VR 27 Hình 13 Minh họa kỹthuật object –order 28 Hình 14 Minh họa kỹthuật image –order 28 Hình 15 Mô hình Blinn / Kajiya 30 Hình 16 Sơ đồ tổng quan rendering MIP 32 Hình 17 Tạo cảnh 3D lập thể 34 Hình 18 Kính Anaglyph 3D 37 Hình 19 Thiết bị Head - gắn kết 38 Hình 20 Kính màu Anaglyph 3D 39 Hình 21 Quá trình thu nhận ảnh người 40 Hình 22 Quan sát đối tượng mắt (mắt phải) 41 Hình 23 Dùng hai camera để tạo hai hìnhảnh đối tượng 41 Hình 24 Ví dụ minh họa phép chiếu phối cảnh 42 Hình 25 Điểm triệt tiêu 42 Hình 26 Phép chiếu phối cảnh tâm chiếu 43 Hình 27 Phép chiếu phối cảnh tâm chiếu 44 Hình 28 Phép chiếu phối cảnh tâm chiếu 46 Hình 29 Kính xem ảnh stereo cho người mắt 47 Hình 30 Hiểnthị stereo với người hai mắt 47 HìnhHìnhảnh Stereo hiểnthị 59 HìnhHìnhảnh Stereo xoay trái 59 Hình 3 Hìnhảnh Stereo xoay phải 60 DANH MỤC TỪ VIẾT TẮT STT Ký hiệu Tiếng Anh Tiếng Việt 2D Two - dimensional Không gian hai chiều 3D Three - dimensional Không gian bachiều CPU Central Processing Unit Bộ xử lí trung tâm GPU Graphic Processing Unit Bộ xử lí đồ họa SR Surface rendering Biểu diễn bề mặt VR Volum rendering Biểu diễn thể tích CRT Cathode ray tube Màn hình CRT MC Marching Cube s Thuật toán Marching Cubes MT Marching Tetrahedra 10 11 12 MIP MinIP LCD Phương pháp tạo bố cục cho projection ảnh Minimum intensity Phương pháp tạo bố cục cho projection ảnh Liquid Crystal Display Màn hình DICOM COmmunications in Medicine Standars 14 COP Tetrahedra Maximum intensity Digital Imaging and 13 Thuật toán Marching Centre Of Projection Tiêu chuẩn ảnh số truyền thông y tế Tâm chiếu PHẦN MỞ ĐẦU Hiện nay, ngành công nghệ thông tin ngày xâm nhập vào lĩnh vực đời sống xã hội ứng dụng tiến Tin học ngày làm cho thứ trở nên đại dễ sử dụng Cùng với đà phát triển đó, phải kể đến phát triển công nghệ ba chiều, công nghệ sử dụng cách phổ biến nay, tức hìnhảnh dựng nên cách sống động thật với trợ giúp phần mềm đồ họa vi tính Do nhu cầu người ngày tăng, việc mô giới thực điều phải thực Từ ứng dụng thiết kế bachiều phục vụ cho việc chế tạo máy móc thiết bị, xây dựng nhà công trình kiến trúc, đến ứng dụng mô thử nghiệm tính công nghiệp chế tạo xe hơi, máy bay,…Điều cho thấy công nghệ bachiều thiếu sống Tuy nhiên, tất kỹthuật làm cho người có cảm giác dường cảnh xem thực, người cảm nhận chiều thứ ba đối tượng Hiểnthịbachiều hay gọi hiểnthị Stereo kỹthuật biểu diễn đối tượng giới bachiều lên mặt phẳng hai chiều mà làm cho người cảm nhận chiều thứ ba Thông thường, để quan sát hìnhảnh Stereo cần phải có thiết bị phần cứng hỗ trợ như: Card hình hỗ trợ stereo, kính quan sát stereo, thiết bị Emitter truyền tín hiệu từ card hình đến kính quan sát Trong lĩnh vực biểu diễn, hiểnthịhìnhảnh 3D có hai phần tạo mô hình bề mặt (Modeling) tạo chuyển động cho mô hình (Animation) Hiểnthịhìnhảnhbachiều coi bước khởi đầu cho hệ thống mô thực ảo, góp phần tạo nên hệ thống mô hoàn chỉnh Ví dụ tạo hìnhảnhbachiều phong cảnh rộng lớn, hìnhảnhbachiều đối tượng sống chí hìnhảnhbachiều vật thể chuyển động Các mô hình cho ảnhbachiều tổng hợp hoàn toàn ảo, tạo mô hình 3D máy tính,…Đây lĩnh vực thu hút quan tâm nhiều giới nghiêncứu lĩnh vực công nghệ thông tin chục năm qua Hiểnthịhìnhảnhbachiều đích hướng tới kỹthuật công nghệ thông tin đại nhằm giúp người tương tác cách thân thiện với máy tính, lĩnh vực xu hướng tất yếu thời đại mới, đáp ứng nhu cầu đa dạng người xã hội ngày Từ lý với gợi ý Thầy hướng dẫn học viên lựa chọn đề tài “Nghiên cứukỹthuậthiểnthịhìnhảnh chiều” Đối tượng phạm vi nghiêncứu - Đối tượng nghiên cứu: Mô hình đối tượng 3D máy tính - Phạm vi nghiên cứu: Đối tượng riêng lẻ hay đơn đối tượng Phương pháp nghiêncứu - Phương pháp nghiêncứu lý thuyết: Tìm hiểu, tổng hợp tài liệu, phân tích, đánh giá phương pháp - Phương pháp thực nghiệm: xây dựng chương trình cụ thể để thử nghiệm, phân tích, đánh giá kết đạt Luận văn gồm ba phần chính: Chương 1: KHÁI QUÁT VỀ ĐỒ HOẠ 3D VÀ BÀI TOÁN HIỂNTHỊ 3D Chương khái quát đồ họa 3D, Nguyên lý 3D toán hiểnthị đối tượng 3D Chương 2: MỘT SỐ VẤN ĐỀ TRONG HIỂNTHỊHÌNHẢNHCHIỀU Chương giới thiệu số vấn đề hiểnthịhìnhảnhba chiều, bao gồm việc biểu diễn liệu 3D hiểnthị 3D Chương 3: CHƯƠNG TRÌNH THỬ NGHIỆM Microsoft Visual C++ (còn gọi MSVC) loại ngôn ngữ lập trình Đây dạng ngôn ngữ đa mẫu hình tự có kiểu tĩnh hỗ trợ lập trình thủ tục, liệu trừu trượng, lập trình hướng đối tượng, lập trình đa hình Từ thập niên 1990, C++ trở thành ngôn ngữ thương mại phổ biến Các chức Visual C++ tô sáng cú pháp, IntelliSense (chức tự động hoàn thành việc viết mã) chức gỡ lỗi tiên tiến Ví dụ, cho phép gỡ lỗi từ xa sử dụng máy tính khác cho phép gỡ lỗi cách duyệt qua dòng lệnh thời điểm Chức "biên tập tiếp tục" cho phép thay đổi mã nguồn dịch lại chương trình trình gỡ lỗi, mà không cần phải khởi động lại chương trình gỡ lỗi Đặc trưng biên dịch xây dựng hệ thống, tính tiền biên dịch tập tin đầu đề (header files) liên kết tịnh tiến (incremental link) - liên kết phần bị thay đổi trình xây dựng phần mềm mà không làm lại từ đầu: Những đặc trưng tính thuyên giảm tổng thời gian biên tập, biên dịch liên kết chương trình phần mềm, đặc biệt đề án phần mềm lớn So với C, C++ tăng cường thêm nhiều tính năng, bao gồm: khai báo mệnh đề, chuyển kiểu giống hàm, new/delete, bool, kiểu tham chiếu, const, hàm nội tuyến (inline), đối số mặc định, tải hàm, vùng tên (namespace), lớp (bao gồm tất chức liên quan tới lớp kế thừa, hàm thành viên (phương pháp), hàm ảo, lớp trừu tượng, cấu từ) Một số thành phần C++ sau thêm vào C, bao gồm const, inline, khai báo biến vòng lặp for giải kiểu C++ (sử dụng ký hiệu //) Tuy nhiên, C bổ sung thêm số tính C++, ví dụ macro với số đối số động Các mô tả mã trình bày tập trung vào khía cạnh âm stereo [9],[10] Đoạn mã ví dụ phù hợp với vài quy ước địa phương 50 Việc chạy cửa sổ chế độ toàn hình Theo quy ước ứng dụng chạy cửa sổ trừ tùy chọn “-f” dòng lệnh quy định Chế độ toàn hình hỗ trợ phiên gần thư viện GLUT Quyết định sử dụng chế độ toàn hình thực với đoạn mã sau: glutCreateWindow("Pulsar model"); glutReshapeWindow(600,400); if (fullscreen) glutFullScreen(); Nó hữu ích để chạy ứng dụng chế độ stereo chế độ mono, quy ước chạy mono trừ dòng lệnh chuyển đổi "-s" cung cấp Các thông tin sử dụng trợ giúp đầy đủ ví dụ trình bày có sẵn cách chạy ứng dụng với tùy chọn "-h" dòng lệnh, ví dụ: > pulsar -h Cách sử dụng: pulsar [h] [-f] [-s] [-c] -h this text -f full screen -s stereo -c show construction lines Key Strokes Arrow keys rotate left/ right/ up/ down Left mouse rotate Middle mouse roll c toggle construction lines i translate up k translate down j translate left l translate right [ roll clockwise 51 ] roll anti clockwise q quit Âm nổi: Điều mà cần phải thực để hỗ trợ âm stereo khởi tạo thư viện GLUT cho hoạt động âm Nếu thẻ/ drive bạn không hỗ trợ âm stereo việc hiểnthị thất bại glutInit(&argc,argv); if (!stereo) glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB |GLUT_DEPTH); else glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB |GLUT_DEPTH | GLUT_STEREO); Trong chế độ stereo định nghĩa hai đệm cụ thể GL_BACK_LEFT GL_BACK_RIGHT Các đệm thích hợp chọn trước hoạt động ảnh hưởng đến việc thực hiện, điều sử dụng thường xuyên glDrawBuffer () Vì vậy, ví dụ sau để xóa hai đệm: glDrawBuffer(GL_BACK_LEFT); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); if (stereo) { glDrawBuffer(GL_BACK_RIGHT); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); } Lưu ý số thẻ (ví dụ: Powerstorm 4D51T) tối ưu hóa để xóa hai đệm bên trái bên phải GL_BACK xóa bỏ, điều thực nhanh đáng kể Trong trường hợp để xóa đệm ta làm sau: glDrawBuffer(GL_BACK); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 52 3.2.2.1 Phép chiếu Tất lại đưa hình học vào đệm thích hợp Có nhiều cách, tùy thuộc vào ứng dụng cụ thể viết, ví dụ ta thấy trình xử lý hiểnthị () Các ý tưởng chủ yếu để chọn đệm thích hợp đưa cảnh với phép chiếu thích hợp 3.2.2.2 Phương pháp Toe-in Một phương pháp phổ biến gọi phương pháp "toe-in", phương pháp nơi mà máy ảnh cho mắt bên trái mắt bên phải hướng tới tiêu điểm gluPerspective () sử dụng glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(camera.aperture,screenwidth/(double)screenheight,0.1,10000.0); if (stereo) { CROSSPROD(camera.vd,camera.vu,right); Normalise(&right); right.x *= camera.eyesep / 2.0; right.y *= camera.eyesep / 2.0; right.z *= camera.eyesep / 2.0; glMatrixMode(GL_MODELVIEW); glDrawBuffer(GL_BACK_RIGHT); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); gluLookAt(camera.vp.x + right.x, camera.vp.y + right.y, camera.vp.z + right.z, focus.x,focus.y,focus.z, camera.vu.x,camera.vu.y,camera.vu.z); MakeLighting(); MakeGeometry(); glMatrixMode(GL_MODELVIEW); glDrawBuffer(GL_BACK_LEFT); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); gluLookAt(camera.vp.x - right.x, camera.vp.y - right.y, camera.vp.z - right.z, focus.x,focus.y,focus.z, camera.vu.x,camera.vu.y,camera.vu.z); 53 MakeLighting(); MakeGeometry(); } else { glMatrixMode(GL_MODELVIEW); glDrawBuffer(GL_BACK); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); gluLookAt(camera.vp.x, camera.vp.y, camera.vp.z, focus.x,focus.y,focus.z, camera.vu.x,camera.vu.y,camera.vu.z); MakeLighting(); MakeGeometry(); } /* glFlush(); This isn't necessary for double buffers */ glutSwapBuffers(); 3.2.2.3 Phương pháp Các phương pháp Toe-in đem lại cho cặp âm stereo hoàn toàn không đúng, Phương pháp cho thấy phương sai dọc đáng ý cho đối tượng thuộc lĩnh vực bên xem Các phương pháp sử dụng gọi "trục song song hình cụt không đối xứng chiếu quan điểm" Trong trường hợp vector cho camera song song glFrustum () sử dụng để mô tả chiếu phối cảnh /* Misc stuff */ ratio = camera.screenwidth / (double)camera.screenheight; radians = DTOR * camera.aperture / 2; wd2 = near * tan(radians); ndfl = near / camera.focallength; if (stereo) { /* Derive the two eye positions */ CROSSPROD(camera.vd,camera.vu,r); Normalise(&r); r.x *= camera.eyesep / 2.0; r.y *= camera.eyesep / 2.0; 54 r.z *= camera.eyesep / 2.0; glMatrixMode(GL_PROJECTION); glLoadIdentity(); left = - ratio * wd2 - 0.5 * camera.eyesep * ndfl; right = ratio * wd2 - 0.5 * camera.eyesep * ndfl; top = wd2; bottom = - wd2; glFrustum(left,right,bottom,top,near,far); glMatrixMode(GL_MODELVIEW); glDrawBuffer(GL_BACK_RIGHT); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); gluLookAt(camera.vp.x + r.x,camera.vp.y + r.y,camera.vp.z + r.z, camera.vp.x + r.x + camera.vd.x, camera.vp.y + r.y + camera.vd.y, camera.vp.z + r.z + camera.vd.z, camera.vu.x,camera.vu.y,camera.vu.z); MakeLighting(); MakeGeometry(); glMatrixMode(GL_PROJECTION); glLoadIdentity(); left = - ratio * wd2 + 0.5 * camera.eyesep * ndfl; right = ratio * wd2 + 0.5 * camera.eyesep * ndfl; top = wd2; bottom = - wd2; glFrustum(left,right,bottom,top,near,far); glMatrixMode(GL_MODELVIEW); glDrawBuffer(GL_BACK_LEFT); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); gluLookAt(camera.vp.x - r.x,camera.vp.y - r.y,camera.vp.z - r.z, camera.vp.x - r.x + camera.vd.x, camera.vp.y - r.y + camera.vd.y, camera.vp.z - r.z + camera.vd.z, camera.vu.x,camera.vu.y,camera.vu.z); MakeLighting(); MakeGeometry(); } else { glMatrixMode(GL_PROJECTION); glLoadIdentity(); left = - ratio * wd2; right = ratio * wd2; top = wd2; 55 bottom = - wd2; glFrustum(left,right,bottom,top,near,far); glMatrixMode(GL_MODELVIEW); glDrawBuffer(GL_BACK); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); gluLookAt(camera.vp.x,camera.vp.y,camera.vp.z, camera.vp.x + camera.vd.x, camera.vp.y + camera.vd.y, camera.vp.z + camera.vd.z, camera.vu.x,camera.vu.y,camera.vu.z); MakeLighting(); MakeGeometry(); } /* glFlush(); This isn't necessary for double buffers */ glutSwapBuffers(); Lưu ý thích hợp để sử dụng vị trí mắt trái không chế độ stereo Trong trường hợp mã đơn giản hóa Nó phù hợp di chuyển mono stereo điểm hai mắt sử dụng mono 3.3 Chương trình thử nghiệm + Input: Đầu vào không gian 3D, liệu mô hình 3D đầu vào bao gồm: tạo không gian gồm có mặt sàn, có để tạo thành rừng + Output: Vẫn không gian giới 3D ấy, có thêm hiệu ứng stereo, tức đeo kính hỗ trợ stereo thấy xuất hai hìnhảnh đè lên nhau, nhìn vào thấy hai hìnhảnh bị nhòe Còn không đeo kính nhìn mắt thường hìnhảnhhìnhảnh stereo, mà hìnhảnh stereo chế độ mono + Chương trình cài đặt: Bước 1: Vẽ cảnh (Scene) gồm nhiều static void drawtree(float x, float y, float z) { glBegin(GL_QUADS); 56 glTexCoord2f(0.0,0.0); glVertex3f(x-1.5,y+0.0,z); glTexCoord2f(1.0,0.0); glVertex3f(x+1.5,y+0.0,z); glTexCoord2f(1.0,1.0); glVertex3f(x+1.5,y+3.0,z); glTexCoord2f(0.0,1.0); glVertex3f(x-1.5,y+3.0,z); glTexCoord2f(0.0,0.0); glVertex3f(x,y+0.0,z-1.5); glTexCoord2f(1.0,0.0); glVertex3f(x,y+0.0,z+1.5); glTexCoord2f(1.0,1.0); glVertex3f(x,y+3.0,z+1.5); glTexCoord2f(0.0,1.0); glVertex3f(x,y+3.0,z-1.5); glEnd(); } Bước 2: Vẽ hìnhảnh cho mắt trái glMatrixMode(GL_MODELVIEW); glDrawBuffer(GL_BACK_LEFT); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); gluLookAt(camera.vp.x - right.x, camera.vp.y - right.y, camera.vp.z - right.z, focus.x,focus.y,focus.z, camera.vu.x,camera.vu.y,camera.vu.z); MakeLighting(); MakeGeometry(); Bước 3: Vẽ hìnhảnh cho mắt phải glMatrixMode(GL_MODELVIEW); glDrawBuffer(GL_BACK_RIGHT); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); 57 gluLookAt(camera.vp.x + right.x, camera.vp.y + right.y, camera.vp.z + right.z, focus.x,focus.y,focus.z, camera.vu.x,camera.vu.y,camera.vu.z); MakeLighting(); MakeGeometry(); Bước 4: Kết hợp hai hìnhảnh bước bước tạo hìnhảnh Stereo + Kết sau cài đặt Áp dụng kỹthuật trình bày Chương cho phép người sử dụng xem cách hiểnthịhìnhảnh stereo góc độ khác cách dùng phím quy ước (phím tắt) h - Bật/ tắt trợ giúp t - Tăng kích thước đốm lửa T - Giảm kích thước đốm lửa r - Tăng bán kính đốm lửa R - Giảm bán kính đốm lửa f - Bật/ tắt sương mù s - Bật/ tắt độ bóng Phím mũi tên - Xoay a - Phóng to z - Thu nhỏ (Không kiểm soát điều khiển) Các hìnhảnh sau kết thử nghiệm với liệu CT demo Hìnhảnhhìnhảnh chế độ mono, hìnhảnhchiều mà chiều mono 58 HìnhHìnhảnh Stereo hiểnthị Một số góc độ hiểnthị khác hìnhảnh Stereo: HìnhHìnhảnh Stereo xoay trái 59 Hình 3 Hìnhảnh Stereo xoay phải + Đánh giá kết đạt Đã cài đặt thuật toán hiểnthị Stereo Đã cài đặt thuật toán hiểnthị Mono Máy tính chưa cài đặt hỗ trợ stereo nên hìnhảnh chưa hiểnthị chế độ stereo, hìnhảnhchiều mono 60 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Hiểnthịhìnhảnhbachiều xu hướng tất yếu thời đại mới, đáp ứng nhu cầu đa dạng người xã hội ngày Luận văn tập trung vào nghiêncứu số vấn đề hiểnthịhìnhảnhbachiều đạt số kết bước đầu sau: - Trình bày tổng quan đồ họa 3D, nguyên lý hiểnthị 3D, phương pháp hiểnthị 3D toán hiểnthị đối tượng 3D - Hệ thống hóa số vấn đề hiểnthịhìnhảnhba chiều, bao gồm: + Biểu diễn liệu 3D (biểu diễn bề mặt biểu diễn thể tích) + Hiểnthị 3D: Trong phần này, học viên đưa kỹthuật để ứng dụng vào chương trình thử nghiệm chương 3, là: kỹthuậthiểnthị Stereo kỹthuậthiểnthịhìnhảnh thông qua phép chiếu - Cài đặt thử nghiệm kỹthuậthiểnthịhìnhảnh stereo: + Trong chương này, học viên đưa toán ứng dụng cụ thể, sử dụng thư viện đồ họa OpenGL thư viện liên quan GLUT để giải toán “hiển thị đối tượng 3D” + Trong chương trình thử nghiệm, học viên mô tả chi tiết Input, Output toán, mô tả bước cài đặt chương trình + Đưa kết cuối sau cài đặt thử nghiệm kỹthuậthiểnthịhìnhảnh stereo Hạn chế Những nghiêncứu tập trung vào lý thuyết phần mềm, chưa tích hợp với phần cứng Hướng phát triển Trong thời gian tới, tác giả tiếp tục phát triển vấn đề nghiêncứu luận văn là: 61 - Tìm hiểu sâu việc kết nối với phần cứng - Tìm hiểu cụ thể xây dựng ứng dụng cụ thể Sau thời gian tìm hiểu, nghiêncứu làm luận văn, dẫn trực tiếp PGS.TS Đỗ Năng Toàn, Thầy tận tình bảo hướng dẫn tìm hướng nghiên cứu, tìm kiếm tài liệu, giải vấn đề… nhờ hoàn thành luận văn cao học Ngoài ra, trình học tập, nghiêncứu thực đề tài nhận nhiều quan tâm, góp ý, hỗ trợ quý báu quý thầy cô, đồng nghiệp, bạn bè người thân Tuy nhiên, hạn chế mặt thời gian thân hạn chế mặt kiến thức nên chưa có kết thực hoàn hảo Kính mong thầy cô bạn đồng nghiệp bảo giúp đỡ 62 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Lê Tấn Hùng, Huỳnh Quyết Thắng (2000), Kỹthuật đồ họa, Nxb Khoa học Kỹthuật [2] Đỗ Năng Toàn, Giáo trình Xử lý ảnh, Học viện Công Nghệ Bưu Chính Viễn Thông, 2010 [3] Huỳnh Quyết Thắng, Lê Tấn Hùng (2006), “Ứng dụng thư viện BK_GRAPHICS xây dựng phần mềm xử lý ảnh y học V_DOCTOR theo chuẩn DICOM” [4] Lê Hải Khôi, Đỗ Năng Toàn, Phạm Thế Anh, Trịnh Xuân Hùng, Một số vấn đề chọn lọc Công nghệ thông tin, Hải Phòng 2005 Tiếng Anh [5] Σκοπέω , Henry George Liddell, Robert Scott, A Greek-English Lexicon [6] Howard, IP; Rogers, BJ (1995) Binocular vision and stereopsis New York: Oxford University Press [7] How to Freeview Stereo images (3D) Greg Erker 2009/08/21 [8] Frank H Durgin and Dennis R Proffitt University of Virginia thomas J Olson, 2002, “Comparing Depth from Binocular Disparity with Depth from Motion” [9] Paul Bourke, November 1999, Updated May 2002, “3D Stereo Rendering Using OpenGL (and GLUT)” [10] [Gunnewiek and Vandewalle 2010] Rene Klein Gunnewiek and Patrick Vandewalle "How to Display 3D Content Realistically." Technical Report, Philips Research Laboratories, VPQM, 2010 [11] [McAllister 2006] David F McAllister "Display Technology: Stereo & 3D Display Technologies." Encyclopedia of Imaging Science and Technology, Edited by Joseph P Hornak, Wiley, 2006 63 [12] Visualization Toolkit, Insight Segmentation and Registration Toolkit, VolView : www.kitware.org [13] Ahmad Farshoukh Adel Fakih, 3D Reconstruction of Scoliotic Spines from 2D Plain Radiographs [14] Christian Wengert, 3D reconstruction from endoscopic video sequences , http://www.vision.ee.ethz.ch/~cwengert/ 64 [...]... họa 3 chiều: là 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 toán và phức tạp hơn nhiều so với kỹthuật đồ họa 2 chiều - Các lĩnh vực của đồ họa máy tính: + Kỹthuật xử lý ảnh (Computer Imaging): Sau quá trình xử lý ảnh cho ta ảnh số của đối tượng Trong quá trình xử lý ảnh sử dụng rất nhiều các 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. .. những mô hình như thực đòi hỏi có sự phân tích tỉ mỉ, chính xác đồng thời sự mô phỏng này phải được biểu diễn trong đồ họa máy tính bachiều một cách trực quan sinh động Để làm được điều đó thì ta phải sử dụng một số kỹthuật hiển thịhìnhảnh 3 chiều để ứng dụng mô phỏng mô hình 3D Một trong những kỹthuật đó là kỹthuậthiểnthị Stereo, hiểnthị 3 chiều hay còn gọi là hiểnthị Stereo là một kỹ thuật. .. sang hìnhảnh khác hìnhảnh và sự vật ở nhiều góc độ khác nhau bằng cách thay đổi điểm nhìn và góc nhìn 1.1.3.3 Phân loại của đồ họa máy tính (Phân loại theo hệ tọa độ) - Kỹthuật đồ họa: + Kỹthuật đồ họa 2 chiều + Kỹthuật đồ họa 3 chiều - Kỹthuật đồ họa 2 chiều: là 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 rất nhiều trong kỹthuật xử lý bản đồ, đồ thị - Kỹ thuật. .. bị hiểnthị 3D: - Kính stereo - Stereoscopic displays* - Màn hình 3D - Holograms Hình 1 8 Hình 1 9 Các cách mô tả đối tượng 3D Các góc nhìn khác nhau của mô hình 3D 19 Hình 1 10 Các phương pháp hiểnthị 3D 20 CHƯƠNG 2 MỘT SỐ VẤN ĐỀ TRONG HIỂNTHỊHÌNHẢNH 3 CHIỀU Nội dung chính của chương này sẽ trình bày một số vấn đề trong hiểnthịhìnhảnh ba chiều, bao gồm việc biểu diễn dữ liệu 3D và hiển thị. .. khác nhau để thu được hìnhảnh đặc trưng của đối tượng [1] 5 Hình 1 2 Kỹthuật đồ họa điểm 1.1.3.2 Kỹthuật đồ họa Vector Mô hình đồ họa Các tham số tô trát Tô trát Thiết bị ra Hình 1 3 Mô hình đồ họa vector - Mô hìnhhình học (geometrical model) của đối tượng - Xác định các thuộc tính của mô hìnhhình học này - Quá trình tô trát (rendering) để hiểnthị từng điểm của mô hình, hìnhảnh thực của đối tượng... mô hình, hìnhảnh của các đối tượng được hiểnthị thông qua từng pixel (từng mẫu rời rạc) - Đặc điểm: Có thể thay đổi thuộc tính của từng điểm ảnh rời rạc + Xoá đi từng pixel của mô hình và hìnhảnh các đối tượng + Các mô hìnhhìnhảnh được hiểnthị như một lưới điểm (grid) các pixel rời rạc + Từng pixel đều có vị trí xác định, được hiểnthị với một giá trị rời rạc (số nguyên) các thông số hiển thị. .. suốt chiều dài ống, chịu sự điều khiển của các mạch điện bên ngoài và bị hút về cực dương (Anode) ở đầu kia của ống, cuối cùng đập mạnh lên màn hình huỳnh quang phủ photpho tạo ra một chấm sáng màn hiểnthịhình Đối với các màn hình màu thì các chấm phát sáng này được cấu tạo bởi một bộ ba điểm màu RGB Âm cực Hệ điều chỉnh tiêu điểm Súng điện tử màn hiểnthịhình phủ phot pho (bộ ba điểm màu RGB) Hình. .. 0001 100110100001 100110100001 G 33 y' điểm ảnhhiểnthị tại x' , y' Red Green Blue Vùng nhớ đệm Bảng tra màu Màn hiểnthịhìnhHình 1 6 Tổ chức của bảng tra màu LUT (Look Up Table) Bộ điều khiển video của hệ hiểnthị raster thường kèm theo bảng tra màu (LUT) Bảng tra màu có nhiều cổng vào tương ứng với nhiều điểm ảnh Mỗi giá trị của điểm ảnh không dùng để điểu khiển trực tiếp các tia điện tử mà chỉ số... (1,1,1) 1.1.5 Các ứng dụng cơ bản của đồ họa 3D Kỹ thuậthìnhảnh 3 chiềuhiện đại đã được áp dụng trong một số lĩnh vực đạt hiệu quả cao như xây dựng, kiến trúc, ngành công nghiệp giải trí, ứng dụng y tế Trong thập kỷ qua, các kỹthuật dựa trên máy tính đã dẫn đầu trong ngành công nghiệp hiểnthị 3D Mặc dù hìnhảnh 3D bằng cách sử dụng những cái gọi là kỹthuật lập thể có thể đôi khi còn nhiều hơn so... Graphics) - Hìnhảnh và mô hình của các vật thể - Không thay đổi thuộc tính của từng được biểu diễn bởi tập hợp các điểm điểm trực tiếp của lưới (grid) - Thay đổi thuộc tính của các pixel sẽ - Xử lý với từng thành phần hình học dẫn đến thay đổi từng phần và từng cơ sở của nó và thực hiện quá trình tô 6 vùng của hìnhảnh trát và hiểnthị lại - Copy được các pixel từ một hìnhảnh - Quan sát hìnhảnh và mô hình ... dụng số kỹ thuật hiển thị hình ảnh chiều để ứng dụng mô mô hình 3D Một kỹ thuật kỹ thuật hiển thị Stereo, hiển thị chiều hay gọi hiển thị Stereo kỹ thuật biểu diễn đối tượng giới ba chiều lên... Ví dụ tạo hình ảnh ba chiều phong cảnh rộng lớn, hình ảnh ba chiều đối tượng sống chí hình ảnh ba chiều vật thể chuyển động Các mô hình cho ảnh ba chiều tổng hợp hoàn toàn ảo, tạo mô hình 3D máy... độ) - Kỹ thuật đồ họa: + Kỹ thuật đồ họa chiều + 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