1. Trang chủ
  2. » Công Nghệ Thông Tin

XÂY DỰNG MÔ HÌNH XỬ LÝ SONG SONG, ĐA MÀN HÌNH TRONG KỸ THUẬT ĐỒ HỌA 3D

12 149 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 12
Dung lượng 464,12 KB

Nội dung

XÂY DỰNG HÌNH XỬ SONG SONG, ĐA MÀN HÌNH TRONG KỸ THUẬT ĐỒ HỌA 3D Nguyễn Văn Trường, Nguyễn Công Định Trung tâm Công nghệ phỏng, Học viện KTQS Tóm tắt Trên sở thư viện đồ họa chuyên dụng ta hiển thị nhanh cải thiện chất lượng cảnh đồ họa 3D nhờ thuật toán chọn lọc, xếp phân loại số thuật toán khác Bài báo đề cập đến hình xử theo chế độ đa nhiệm song song, đa hình hiển thị hình ứng dụng thư viện mã nguồn mở OpenSG cho phép tối ưu liệu tăng tốc độ hiển thị đồ hoạ 3D liệu lớn hỗ trợ phát triển nhanh ứng dụng đồ hoạ chất lượng cao Từ khóa: song song, đa luồng, đa hình, đồ họa 3D, phỏng, thực ảo Đa nhiệm, hiển thị đa luồng nhiều hình hiển thị theo phương pháp truyền thống: Phương pháp truyền thống hiển thị cảnh đồ họa 3D thời gian thực sử dụng ba pha riêng biệt APP, CULL, DRAW: APP làm nhiệm vụ cập nhật liệu động, bao gồm vị trí camera, vị trí đối tượng chuyển động, CULL phụ thuộc vào APP làm nhiệm vụ lọc cảnh xếp đối tượng theo độ ưu tiên khung nhìn để tăng tốc độ hiển thị cảnh đồng thời tùy thuộc vào việc cập nhật vị trí camera, tạo liệu hiển thị theo kiểu danh sách để pha DRAW vẽ cảnh lên hình Quá trình vẽ trình duyệt qua danh sách thông báo cho OpenGL xử ta xem hình Hình 1: Ba pha hiển thị đồ họa thời gian thực Hình - Chia pha thành nhiệm vụ song song cho hệ thống có nhiều hình hiển thị đồ họa Trong hệ thống có nhiều hình hiển thị đồ họa, CULL DRAW trở nên cần thiết pha sản sinh danh sách hiển thị thực vẽ hình khung nhìn khác Tuy nhiên hệ thống cần pha APP chung để cập nhật liệu Dưới trình tự yêu cầu cần thực theo quan điểm đa nhiệm cho nhiều hình hiển thị Với hình máy đơn cần xử pha theo thời kỳ (APP, CULL0, DRAW0, CULL1, DRAW1, CULL2, DRAW2…) Theo trình tự cần nhiều thời gian để thực khung hình qua trình tự thực pha Để phân nhiệm ta định hai nhiệm vụ sau miêu tả hình 2: ƒ ƒ Nhiệm vụ thực pha APP nhiệm vụ CULL / DRAW cho hình Với hệ thống đa xử lý, tất nhiệm vụ thực song song xử riêng biệt Hơn nữa, CULL / DRAW chia phần để chạy song song hệ thống Có hai hình thực hệ thống xử song song: ƒ ƒ Chia cắt nhiệm vụ lớn thành nhiều nhiệm vụ nhỏ độc lập để thực song song nhiệm vụ máy để giảm bớt thời gian xử Thực nhiệm vụ lớn song song máy cho đồng thời gian hệ thống Với hai hình ta tách pha CULL/DRAW từ pha APP, sau tiếp tục chia pha CULL DRAW thành nhiều nhiệm vụ chạy song song riêng biệt theo hình thứ Ghép CULL/DRAW thành nhiệm vụ kép cho hệ thống hiển thị theo hình thứ hai Nhưng xuất vài vấn đề giai đoạn chạy song song Trước hết, pha phải xử liệu kỳ Nghĩa pha APP phải kết thúc làm việc liệu trước pha CULL Tương tự pha DRAW bắt đầu xử liệu mà pha CULL chưa làm việc xong Tuy nhiên, APP không cần phải đợi hai pha CULL DRAW làm việc xong mà xử liệu khung hình hệ thống vận hành theo hình tả Bên cạnh liệu dùng chung hai giai đoạn phải bảo vệ dùng đệm Bên cạnh liệu ghi pha giai đoạn đọc pha chạy song song hệ thống Điều đòi hỏi cần có hệ thống quản liệu lớn để xử liệu 3D Đây hình hãng SGI đưa có hiệu sản phẩm đồ họa hãng hình Nhưng vài năm gần trở lên lạc hậu vài sau: ƒ ƒ Vấn đề thời gian thực, sản phẩm yêu cầu độ hiển thị khung hình 60 Hz nghĩa khung hình cần 16.667 mili giây để pha thực xong nhiệm vụ Vào năm 90, SGI phát triển kỹ thuật đồ họa thời gian thực với xử đạt yêu cầu hệ thống máy tính có tốc độ thấp so với Trong tốc độ đồ họa phụ thuộc nhiều vào hai pha APP CULL Hơn nữa, hệ thống băng thông rộng phát triển giảm bớt thời gian liên thông pha máy chủ máy trạm, với kỹ thuật xử đa luồng có kết khả quan ƒ Một vấn đề cuối cần thiết yêu cầu thiết bị phải đáp ứng tương tác người dùng Vì yêu cầu hình ảnh trực quan sinh động với tốc độ hiển thị thời gian thực Hình - hình xử song song "Truyền thống" Cách tiếp cận Các ứng dụng đồ họa 3D chất lượng cao chạy phần cứng thời mong muốn có số khung hình 60 cần phải có thời gian xử pha Pre - CULL (Có thể hiểu pha APP – theo hình cũ) CULL nằm khoảng mili-giây đến 3,5 mili-giây để thực khung hình Xét hệ thống xử đơn, hình hiển thị Với yêu cầu giảm bớt thời gian pha Pre – CULL CULL, sơ đồ pha có dạng hình Hình - Bộ xử đơn, hình hiển thị theo hình pha Pre – CULL CULL Qua sơ đồ ta thấy tất pha nằm khung hình, độ trễ giảm khung hình Nhưng pha DRAW chiếm nửa thời gian thực khung hình Các ứng dụng đồ họa có lợi từ đồ thị khung cảnh, mà pha CULL loại bỏ đối tượng không thuộc khung hình cần hiển thị để đưa vào nhánh đồ thị nhằm tối ưu hóa liệu Xét hình đa xử với nhiều hình hiển thị Cần phải tận dụng hết lợi ích hệ thống đa xử việc sử dụng luồng chạy pha Pre - CULL, pha CULL/DRAW hệ thống Để làm điều giả thiết hai khía cạnh quản liệu : 1) Dữ liệu ghi pha Pre –CULL có thuộc tính toàn cục 2) Dữ liệu sinh pha CULL mang tính cục tiếp cận cặp nhiệm vụ CULL/DRAW 3 Ứng dụng thiết kế hình xử song song hình tổng quát thiết kế theo sơ đồ chung hình 5: Luồng Chính Luồng thực Pre - CULL Khai báo hệ CPU đảm nhiệm nhiệm vụ CULL / DRAW Có thể chạy luồng đơn, luồng riêng biệt phụ thuộc vào hình xử chọn từ mục trước Điều xác định hostname hệ thống, tham số định CPU hệ thống làm việc với để hiển thị cảnh Rendering Surface(Trả lại Bề mặt) Đây kết hiển thị đồ họa hình máy tính xác định tham số sau: Tên máy trạm nơi thực kết hiển thị đồ họa Host Màn hình hiển thị Display Viewport khung hình hiển thị bên bàn hình hạn chế hình Viewport ảnh hiển thị Hình hình xử song song tổng quát Có hai hình mục trước đề cập để thực hình đa nhiệm (multi-task), đa hình hiển thị đồ họa (multi – display) Sự khác chỗ có định ghép hai pha CULL/DRAW thành hay không Ở đưa hai phương pháp phương pháp có đặc tính riêng hình A hình ghép hai pha CULL/DRAW thành nhiệm vụ kép miêu tả theo sơ đồ hình Hình 6: Ba pha hiển thị đồ họa thời gian thực theo hình A hình giả thiết khung hình thực theo thứ tự, dùng luồng cho nhiệm vụ kép CULL/DRAW Thời gian tiến trình B C thực theo sơ đồ hình Pha Pre – Cull cập nhật liệu động đồ thị khung cảnh Dữ liệu động bao gồm vị trí camera, định vị đối tượng chuyển động bên cảnh, số khung hình thời gian trôi qua, đồng phương tiện quản liệu khác Dữ liệu giả thiết liệu toàn cục, cấp phát lấy ứng dụng Như vậy, pha CULL phải đợi Pre – CULL kết thúc tiến trình Khi pha Pre – Cull thực xong báo hiệu cho pha CULL thực CULL đọc liệu động cập nhật, sinh liệu để hiển thị, liệu mang tính cục không cho ứng dụng tiếp cận lấy từ pha DRAW Dữ liệu xử phân kỳ Pha DRAW duyệt qua danh sách hiển thị cảnh đồ họa Hìnhđồ miêu tả quan hệ liệu pha hình A hình B hình tách riêng luồng riêng biệt cho hai pha CULL / DRAW hình Hình 8: Ba pha hiển thị đồ họa thời gian thực theo hình B Dữ liệu cho hình tả theo sơ đồ hình sau Hìnhđồ miêu tả quan hệ liệu pha hình B Sơ đồ khác với sơ đồ hình A dùng luồng cho nhiệm vụ kép CULL/DRAW Ở pha DRAW không duyệt liệu cung cấp pha CULL cách trực tiếp mà qua hai đệm Dữ liệu phát sinh từ pha CULL ghi vào đệm Buffer pha vẽ đọc liệu từ đệm Buffer Khi đồng hai pha CULL DRAW trỏ tới đệm trao đổi Cách tiếp cận yêu cầu phân cảnh pha CULL cần có hai đệm cục bộ, phải bổ sung việc đồng hai pha CULL DRAW Ứng dụng thư viện OpenSG xây dựng sản phẩm Hiện có nhiều thư viện đồ họa 3D tích hợp thuật toán xử song song cảnh đồ họa 3D thời gian thực cho phép xây dựng sản phẩm với liệu lớn Nổi bật thư viện OpenSG www.opensg.org OpenSG hệ thống thư viện mã nguồn mở (LGPL) cho phép sử dụng tự Thư viện chạy hệ điều hành IRIX, Windows Linux Yêu cầu sức mạnh tính toán ứng dụng gần vô hạn - yêu cầu lập trình tính toán chuyên ngành yêu cầu chất lượng cao hiển thị liệu Để làm điều cần phải có sức mạnh siêu máy tính nhóm máy xử theo chế song song Nhưng siêu máy tính đắt tiền nhiều lần Việc dùng nhiều máy tính theo chế song song ngày quan tâm xây dựng sản phẩm Dưới hình ứng dụng máy theo chế song song Hình 10 – hình máy tính theo có chế xử song song hiển thị hình Trongđồ cần ba máy: Máy trạm chạy ứng dụng thực hai pha APP CULL (cập nhật liệu, điều khiển tương tác người máy, thực tính toán chuyên ngành.) Hai máy chủ thực pha DRAW nghĩa hiển thị cảnh thông qua hai camera khác hai mắt nguời Với thư viện OpenSG ta thực xử song song 48 máy Hình 11 Một cảnh trả lại hai cửa sổ độc lập Hình ảnh hiển thị cửa sổ: cửa sổ nhỏ cho phép tương tác (sự chuyển động chuột hay bàn phím) Hai cửa sổ lại hiển thị cảnh thể hiển thị cửa sổ Để làm điều cần hai chương trình khác ( Client & Server) Dưới toàn mã chương trình rút gọn Chương trình chạy máy trạm // all needed include files #include #include #include #include #include #include #include OSG_USING_NAMESPACE using namespace std; SimpleSceneManager *mgr; NodePtr scene; int setupGLUT( int *argc, char *argv[] ); int main(int argc, char **argv) { #if OSG_MINOR_VERSION > ChangeList::setReadWriteDefault(); #endif osgInit(argc,argv); int winid = setupGLUT(&argc, argv); //this time we'll have not a GLUTWindow here, but this one MultiDisplayWindowPtr multiWindow = MultiDisplayWindow::create(); //set some necessary values beginEditCP(multiWindow); // we connect via multicast multiWindow->setConnectionType("Multicast"); // we want two rendering servers multiWindow->getServers().push_back("Server1"); multiWindow->getServers().push_back("Server2"); endEditCP(multiWindow); //any scene here scene = makeTorus(.5, 2, 16, 16); // and the ssm as always mgr = new SimpleSceneManager; mgr->setWindow(multiWindow); mgr->setRoot (scene); mgr->showAll(); multiWindow->init(); glutMainLoop(); return 0; } void display(void) { //redrawing as usual mgr->redraw(); //the changelist should be cleared - else things //could be copied multiple times OSG::Thread::getCurrentChangeList()->clearAll(); // to ensure a black navigation window glClear(GL_COLOR_BUFFER_BIT); glutSwapBuffers(); } void reshape(int w, int h) { glutPostRedisplay(); } void mouse(int button, int state, int x, int y) { if (state) mgr->mouseButtonRelease(button, x, y); else mgr->mouseButtonPress(button, x, y); glutPostRedisplay(); } void motion(int x, int y) { mgr->mouseMove(x, y); glutPostRedisplay(); } int setupGLUT(int *argc, char *argv[]) { glutInit(argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); int winid = glutCreateWindow("OpenSG"); glutReshapeFunc(reshape); glutDisplayFunc(display); glutMouseFunc(mouse); glutMotionFunc(motion); return winid; } Chương trình chạy máy chủ #include #include #include #include #include OSG_USING_NAMESPACE using namespace std; GLUTWindowPtr window; RenderAction *ract; ClusterServer *server; void display(); void reshape( int width, int height ); int main(int argc,char **argv) { int winid; // initialize Glut glutInit(&argc, argv); glutInitDisplayMode( GLUT_RGB |GLUT_DEPTH | GLUT_DOUBLE); if (!argv[1]){ cout setId(winid); window->init(); //create a new server that will be connected via multicast //argv[1] is the name of the server (at least it should be ) server = new ClusterServer(window,argv[1],"Multicast",""); server->start(); glutMainLoop(); return 0; } void display() { //simply execute the render action server->render(ract); //and delete the change list OSG::Thread::getCurrentChangeList()->clearAll(); } void reshape( int width, int height ) { window->resize( width, height ); } Một số kết Sử dụng hình trên, xây dựng thành công hình song song, đa hình hiển thị nhiều máy Số khung hình đạt 60 fps bảo đảm việc tương tác qua lại người dùng, đáp ứng yêu cầu đạt thiết bị tập lái (Hiện ứng dụng sản phẩm hệ thống tập lái xe BMP-1 TTCN thực Cảnh đồ họa 3D hiển thị hình 12) Hình 12 Cảnh chiều cabin tập lái xe BMP-1 Kết luận Với cách tiếp cận báo sử dụng lợi phần cứng để xây dựng hình đa nhiệm, song song, đa luồng đa hình hiển thị đồ họa hình nêu ứng dụng tốt sản phẩm mà cần có liệu lớn đòi hỏi tương tác thời gian thực • Tuy vậy, việc hoàn thiện hình nêu cần đầu tư thêm nhiều thời gian công sức, tập hợp lực lượng đông đảo cán chyên môn tham gia đội ngũ chuyên gia chuyên ngành Tài liệu tham khảo [1] Open Scenegraph, (Robert Osfield) 2004 www.openscenegraph.org [2] Open SG, (Dirk Reiners) 2000 www.opensg.org [3] Silicon Graphics Inc SGI OpenGL Optimizer Whitepaper http://www.sgi.com/software/optimizer/whitepaper.pdf, 1998 [4] Net Juggler Guide, (Allard, J et al) http://netjuggler.sourceforge.net 2001 [5] MPI: The Complete Reference, (Snir, M et al) MIT Press, 1996 [6] osgVRPN: http://mew.cx/osg/ [7] VRPN: http://www.cs.unc.edu/Research/vrpn/ [8] OpenThread: http://openthread.sourceforge.net 2004 [9] Open Producer : http://Producer.sourceforge.net 2004 ... 8: Ba pha hiển thị đồ họa thời gian thực theo mô hình B Dữ liệu cho mô hình mô tả theo sơ đồ hình sau Hình Sơ đồ miêu tả quan hệ liệu pha mô hình B Sơ đồ khác với sơ đồ mô hình A dùng luồng cho... TTCN Mô thực Cảnh mô đồ họa 3D hiển thị hình 12) Hình 12 Cảnh chiều cabin tập lái xe BMP-1 Kết luận Với cách tiếp cận báo sử dụng lợi phần cứng để xây dựng mô hình đa nhiệm, song song, đa luồng đa. .. chế hình Viewport ảnh hiển thị Hình Mô hình xử lý song song tổng quát Có hai mô hình mục trước đề cập để thực mô hình đa nhiệm (multi-task), đa hình hiển thị đồ họa (multi – display) Sự khác chỗ

Ngày đăng: 11/10/2017, 15:08

HÌNH ẢNH LIÊN QUAN

XÂY DỰNG MÔ HÌNH XỬ LÝ - XÂY DỰNG MÔ HÌNH XỬ LÝ SONG SONG, ĐA MÀN HÌNH TRONG KỸ THUẬT ĐỒ HỌA 3D
XÂY DỰNG MÔ HÌNH XỬ LÝ (Trang 1)
SONG SONG, ĐA MÀN HÌNH TRONG KỸ THUẬT ĐỒ HỌA 3D Nguyễn Văn Trường, Nguyễn Công Định  - XÂY DỰNG MÔ HÌNH XỬ LÝ SONG SONG, ĐA MÀN HÌNH TRONG KỸ THUẬT ĐỒ HỌA 3D
3 D Nguyễn Văn Trường, Nguyễn Công Định (Trang 1)
Hình 3- Mô hình xử lý song song "Truy ền thố ng" - XÂY DỰNG MÔ HÌNH XỬ LÝ SONG SONG, ĐA MÀN HÌNH TRONG KỸ THUẬT ĐỒ HỌA 3D
Hình 3 Mô hình xử lý song song "Truy ền thố ng" (Trang 3)
Hình 4- Bộ xử lý đơn, một màn hình hiển thị theo mô hình pha Pre –CULL và CULL Qua sơđồ trên ta thấy tất cả các pha đều nằm trong một khung hình, và như vậy độ  tr ễ  có th ể - XÂY DỰNG MÔ HÌNH XỬ LÝ SONG SONG, ĐA MÀN HÌNH TRONG KỸ THUẬT ĐỒ HỌA 3D
Hình 4 Bộ xử lý đơn, một màn hình hiển thị theo mô hình pha Pre –CULL và CULL Qua sơđồ trên ta thấy tất cả các pha đều nằm trong một khung hình, và như vậy độ tr ễ có th ể (Trang 3)
Hình 7. Sơ đồ miêu tả quan hệ dữ liệu giữa các pha ở mô hìn hA - XÂY DỰNG MÔ HÌNH XỬ LÝ SONG SONG, ĐA MÀN HÌNH TRONG KỸ THUẬT ĐỒ HỌA 3D
Hình 7. Sơ đồ miêu tả quan hệ dữ liệu giữa các pha ở mô hìn hA (Trang 5)
Mô hình B - XÂY DỰNG MÔ HÌNH XỬ LÝ SONG SONG, ĐA MÀN HÌNH TRONG KỸ THUẬT ĐỒ HỌA 3D
h ình B (Trang 5)
Dưới đây là mô hình ứng dụng 3 máy theo cơ chế song song. - XÂY DỰNG MÔ HÌNH XỬ LÝ SONG SONG, ĐA MÀN HÌNH TRONG KỸ THUẬT ĐỒ HỌA 3D
i đây là mô hình ứng dụng 3 máy theo cơ chế song song (Trang 6)
Hình 11. Một cảnh trả lại trong hai cửa sổ độc lập - XÂY DỰNG MÔ HÌNH XỬ LÝ SONG SONG, ĐA MÀN HÌNH TRONG KỸ THUẬT ĐỒ HỌA 3D
Hình 11. Một cảnh trả lại trong hai cửa sổ độc lập (Trang 7)
Sử dụng mô hình trên, chúng tôi đã xây dựng thành công mô hình song song, đa màn hình hiển thị  trên nhiều máy - XÂY DỰNG MÔ HÌNH XỬ LÝ SONG SONG, ĐA MÀN HÌNH TRONG KỸ THUẬT ĐỒ HỌA 3D
d ụng mô hình trên, chúng tôi đã xây dựng thành công mô hình song song, đa màn hình hiển thị trên nhiều máy (Trang 11)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w