Đăng ký Đăng nhập
Trang chủ Nghiên cứu thư viện đồ họa opengl và ứng dụng trong mô phỏng động học của robot...

Tài liệu Nghiên cứu thư viện đồ họa opengl và ứng dụng trong mô phỏng động học của robot

.DOCX
79
1660
55

Mô tả:

LỜI CẢM ƠN Trong suốt quá trình thực hiện đồ án tốt nghiệp: “Nghiên cứu thư viện đồ họa OpenGL và ứng dụng trong mô phỏng động học của Robot”, ngoài sự cố gắng hết mình của bản thân, trong quá trình làm đồ án em đã nhận được sự giúp đỡ tận tình từ phía nhà trường, thầy cô gia đình và bạn bè. Em xin gửi lời cảm ơn sâu sắc đến ThS.Nguyễn Văn Huân mặc dù bận nhiều công việc nhưng đã dành thời gian hướng dẫn và giúp đỡ em tận tình trong quá trình làm đồ án tốt nghiệp. Em xin chân thành cảm ơn các thầy, cô trường Đại học Công nghệ thông tin và Truyền thông đã truyền đạt những kiến thức quý báu cho em trong suốt quá trình học tập. Em cũng xin cảm ơn tới gia đình và bạn bè đã luôn quan tâm, động viên, giúp đỡ và tạo điều kiện cho em để em có điều kiện tốt nhất để hoàn thành đồ án này. Trong quá trình thực hiện đồ án, mặc dù em đã có nhiều cố gắng nhưng do hạn chế về thời gian cũng như kinh nghiệm nên đồ án này chắc chắn còn mắc phải những thiếu sót, rất mong được sự góp ý kiến của các thầy cô và các bạn để ứng dụng mà đồ án đề cập được hoàn thiện hơn. Em xin chân thành cảm ơn! Thái nguyên, ngày 16 tháng 06 năm 2012 Sinh viên thực hiện Cao Thị Lâm 1 LỜI CAM ĐOAN Để hoàn thành đồ án tốt nghiệp đúng thời gian quy định và đáp ứng được yêu cầu của đề tài, bản thân em đã cố gắng tìm hiểu và nghiên cứu, học tập và làm việc trong thời gian dài. Em đã tham khảo một số tài liệu được nêu trong phần “Tài liệu tham khảo” và các mã nguồn mở được cho phép sử dụng cùng các diễn đàn mạng uy tín trên Internet. Nội dung đồ án hoàn toàn không sao chép từ các đồ án khác, không vi phạm bản quyền tác giả. Toàn bộ đồ án là do bản thân em nghiên cứu và xây dựng nên. Em xin cam đoan những lời trên là đúng, nếu có thông tin sai lệch em xin hoàn toàn chịu trách nhiệm trước hội đồng. Thái nguyên, ngày 16 tháng 06 năm 2012 Sinh viên thực hiện Cao Thị Lâm 2 MỤC LỤC LỜI CẢM ƠN..........................................................................................................1 LỜI CAM ĐOAN....................................................................................................2 DANH MỤC BẢNG................................................................................................5 DANH MỤC HÌNH VẼ...........................................................................................6 LỜI NÓI ĐẦU.........................................................................................................8 CHƯƠNG 1: TỔNG QUAN VỀ ĐỘNG HỌC VÀ THƯ VIỆN ĐỒ HỌA OPENGL................................................................................................................10 1.1 Giới thiệu chung............................................................................................10 1.2 Động học......................................................................................................10 1.2.1 Chuyển động cơ bản của vật rắn...............................................................11 1.2.2 Động học của Robot................................................................................13 1.3 Thư viện đồ họa OpenGL.............................................................................15 1.3.1 Cơ chế hoạt động của OpenGL.................................................................16 1.3.2 Đặc điểm của OpenGL.............................................................................17 1.3.3 Thư viện hỗ trợ lập trình OpenGL............................................................26 1.3.4 Các bước tổng quan khi xây dựng ứng dụng đồ hoạ với thư viện OpenGL.27 1.4 Ngôn ngữ lập trình Visual C++ và các ứng dụng của MFC..........................34 CHƯƠNG 2: PHÂN TÍCH, THIẾT KẾ BÀI TOÁN MÔ PHỎNG CHUYỂN ĐỘNG CỦA ROBOT............................................................................................35 2.1 Giới thiệu về Robot KUKA..........................................................................35 2.2 Cách tạo ra Project MFC để thực hiện quá trình mô phỏng........................35 2.3 Khởi tạo và thiết lập các gói thư viện của OpenGL....................................40 2.4 Thiết kế mô hình Robot trên Solidwork......................................................45 2.5 Tính toán động học Robot............................................................................48 3 2.5.1 Phương trình xác định vị trí khâu thao tác (bàn kẹp) của Robot (Bài toán động học thuận)................................................................................................49 2.5.2 Bài toán ngược xác định thông số động học Robot....................................51 2.6 Mô phỏng chương trình trên OpenGL.........................................................52 CHƯƠNG 3: CHƯƠNG TRÌNH MÔ PHỎNG....................................................53 3.1 Giao diện tổng quan của chương trình..........................................................53 3.2 Robot vẽ theo quỹ đạo đường gấp khúc 3D.................................................54 3.3 Robot vẽ theo quỹ đạo đường cánh hoa........................................................55 3.4 Robot vẽ theo quỹ đạo đường Ellipse...........................................................56 3.5 Robot vẽ theo quỹ đạo đường hình Sin.......................................................57 3.6 Robot vẽ theo quỹ đạo đường tròn................................................................58 3.7 Robot vẽ theo quỹ đạo đường thằng.............................................................59 KẾT LUẬN............................................................................................................61 TÀI LIỆU THAM KHẢO......................................................................................62 PHỤ LỤC...............................................................................................................63 DANH MỤC BẢNG 4 Bảng 1.1: Một số kiểu dữ liệu của OpenGL..........................................................17 Bảng 1.2: Các tham số của glBegin()....................................................................18 Bảng 1.3: Các ma trận biến đổi hiện hành.............................................................31 Bảng 2.1: Bảng thông số Denavit - Hartenberg (DH)...........................................49 5 DANH MỤC HÌNH VẼ Hình 1.1: Chuyển động tịnh tiến của thùng xe trên đoạn đường thẳng................10 Hình 1.2: Chuyển động của vật rắn quanh trục cố định........................................11 Hình 1.3: Chuyển động của điểm thuộc vật rắn quanh trục cố định.....................12 Hình 1.4: Cơ chế hoạt động của OpenGL.............................................................15 Hình 1.5: Các đối tượng đồ họa cơ bản.................................................................17 Hình 1.6: Quá trình vẽ các Vertex 2D trên OpenGL.............................................18 Hình 1.7: Quá trình Render màu sắc của vật liệu..................................................19 Hình 1.8: Quá trình tạo hiệu ứng ánh sánh cho đối tượng....................................21 Hình1.9: Quá trình Texture Mapping trên OpenGL..............................................23 Hình 1.10: Quá trình Blending màu sắc của vật liệu trên OpenGL......................24 Hình 1.11: Quá trình tạo hiệu ứng sương mù trên OpenGL.................................25 Hình 1.12: Các đối tượng 3D được xây dựng lại trên OpenGL............................29 Hình 1.13: Phép chiếu trực giao............................................................................31 Hình 1.14: Phép chiếu phối cảnh...........................................................................31 Hình 1.15: Hệ tọa độ chuẩn trong OpenGL...........................................................32 Hình 1.16: Các phép biến đổi trong OpenGL........................................................33 Hình 2.1: Bắt đầu thiết lập project MFC..............................................................35 Hình 2.2: Thiết lập 1..............................................................................................35 Hình 2.3: Thiết lập 2..............................................................................................36 Hình 2.4: Thiết lập 3..............................................................................................36 Hình 2.5: Thiết lập 4..............................................................................................37 Hình 2.6: Thiết lập 5..............................................................................................37 Hình 2.7: Hoàn thành thiết lập Project MFC.........................................................38 6 Hình 2.8: Chạy thử Project MFC...........................................................................38 Hình 2.9: Các lớp ứng dụng trong MFC................................................................39 Hình 2.10: Thiết lập các gói thư viện OpenGL.....................................................40 Hình 2.11: Chọn hàm OnCreate() để thiết lập OpenGL........................................41 Hình 2.12: Chọn hàm OnDestroy() để hủy OpenGL............................................42 Hình 2.13: Chọn hàm OnSize() để thiết lập các ứng dụng OpenGL....................43 Hình 2.14: Chọn hàm OnDraw() để vẽ các đối tượng OpenGL...........................43 Hình 2.15: Chọn hàm OnInitialUpdadte() để cập nhật sự thay đổi của hệ thống.44 Hình 2.16: Mô hình Robot.....................................................................................45 Hình 2.17: Phần đế robot.......................................................................................45 Hình 2.18: Mô hình khâu 1 của Robot..................................................................46 Hình 2.19: Mô hình khâu 2 của Robot..................................................................46 Hình 2.20: Mô hình khâu 3 của Robot..................................................................47 Hình 2.21: Mô hình và hệ tọa độ Robot ba bậc tự do...........................................48 Hình 3.1: Giao diện tổng quan chương trình.........................................................53 Hình 3.2: Robot vẽ đường gấp khúc 3D................................................................55 Hình 3.3: Robot vẽ đường cánh hoa......................................................................56 Hình 3.4: Robot vẽ đường Ellipse.........................................................................57 Hình 3.5: Robot vẽ đường hình Sin.......................................................................58 Hình 3.6: Robot vẽ đường tròn..............................................................................59 Hình 3.7: Robot vẽ đường thằng............................................................................60 7 LỜI NÓI ĐẦU Robot công nghiệp là lĩnh vực đã được nghiên cứu và phát triển mạnh trên thế giới. Ở nước ta, lĩnh vực này còn mới mẻ, ngày nay trong môi trường sản xuất hiện đại, hầu hết các quy trình được thực hiện bằng các máy chuyên dùng. Với các phương pháp này, đã làm giảm rõ rệt chi phí sản xuất các sản phẩm công nghiệp phù hợp với đa số người tiêu dùng. Tuy nhiên mỗi máy công cụ được thiết kế để thực hiện nguyên công cho trước, mỗi khi cần thay đổi kiểu mẫu sản phẩm thì toàn bộ dây chuyền sản xuất phải được cải tạo lại. Kiểu tự động hoá này là kiểu tự động hóa cứng và rất tốn kém. Do vậy mà trên thế giới có phương pháp sản xuất tiên tiến đó là chế tạo ra các loại robot được đưa vào quy trình chế tạo để thực hiện nhiều nguyên công như: chuyển tải vật tư và các thiết bị trong các dây chuyền hiện đại, hàn điểm, sơn phun và lắp ráp trong công nghiệp ô tô… Do các cơ cấu hoạt động được điều khiển bằng máy tính hoặc các bộ vi xử lý, chúng có thể tái lập dễ dàng cho nhiều nguyên công khác nhau, do đó không cần thay các máy móc này khi thay đổi kiểu mẫu sản phẩm. Đây là kiểu tự động hoá linh hoạt và mang lại hiệu quả kinh tế cao và rất cần thiết trong hoàn cảnh của đất nuớc ta hiện nay đang tiến tới công nghiệp hóa và hiện đại hoá đất nuớc. Robot công nghiệp được ứng dụng rộng rãi trong các dây chuyền sản xuất hiện đại và có sự linh hoạt cao, vì vậy việc nghiên cứu và chế tạo robot là cần thiết. Trong quá trình tính toán, thiết kế và chế tạo robot thì việc mô phỏng các hoạt động của robot là một phần rất quan trọng. Quá trình mô phỏng sẽ cho ta thấy được sự hoạt động và quá trình làm việc của robot. Với các ý nghĩa đó, trong Đồ án tốt nghiệp này em đã chọn đề tài “Nghiên cứu thư viện đồ họa OpenGL và ứng dụng trong mô phỏng động học của Robot”. Nội dung của đồ án gồm có ba chương như sau:  Chương 1: Tổng quan về động học và thư viện đồ họa OpenGL.  Chương 2: Phân tích, thiết kế bài toán mô phỏng hoạt động của Robot.  Chương 3: Chương trình mô phỏng. 8 CHƯƠNG 1: TỔNG QUAN VỀ ĐỘNG HỌC VÀ THƯ VIỆN ĐỒ HỌA OPENGL 1 Giới thiệu chung Ngày nay, Robot công nghiệp có vai trò rất quan trọng và được ứng dụng rộng rãi trong quá trình sản xuất của nền công nghiệp hiện đại. Để chế tạo ra được một mô hình robot và đem ra phục vụ cho sản xuất phải trải qua rất nhiều giai đoạn như: tìm hiểu về các loại robot và các đặc tính hoạt động của nó, tính toán một cách chính xác các khâu của các cơ cấu, các phương trình hoạt động và thiết kế các mô hình 3D sao cho tối ưu và hiệu quả nhất. Một mô hình robot hoạt động trơn tru và đáp ứng được các yêu cầu kỹ thuật đề ra đòi hỏi việc chế tạo là hết sức tỉ mỉ và chi tiết từng bước một. Trong một mô hình robot bao gồm rất nhiều phần như: cơ khí để chế tạo ra các chi tiết, điện tử để điều khiển các hoạt động và tin học để lập trình cho các cơ cấu của robot hoạt động theo các quỹ đạo và yêu cầu kỹ thuật đề ra. Một phần cũng rất quan trọng mà một mô hình robot nào cũng phải thực hiện là mô phỏng quá trình hoạt động của nó. Để lập trình mô phỏng được hoạt động của robot, sau đây em xin giới thiệu tổng quan về động học và thư viện đồ họa OpenGL. 1.2 Động học Động học khảo sát chuyển động cơ học của vật thể (chất điểm) về mặt hình học, không quan tâm đến nguyên nhân gây chuyển động và biến đổi chuyển động của chúng. Khi vật thể có kích thước rất bé so với quỹ đạo chuyển động của nó hoặc có thể bỏ qua thì ta coi đó là chất điểm chuyển động, gọi tắt là động điểm. Chuyển động xảy ra trong không gian nhưng hoàn toàn có tính tương đối phụ thuộc vào vật lấy làm mốc để theo dõi chuyển động. Vật lấy làm mốc được gọi là hệ quy chiếu. Để tính thời gian ta chọn một thời điểm tuỳ ý làm thời điểm gốc (t 0), thường chọn t0 là lúc bắt đầu khảo sát chuyển động. 9 Động học được chia làm hai phần chính là “Động học điểm” và “Động học vật rắn”. Và để mô phỏng được động học của Robot, dưới đây em xin giới thiệu tổng quan về động học vật rắn hay chuyển động cơ bản của vật rắn. Từ đó ứng dụng vào tìm hiểu động học của Robot. 1.2.1 Chuyển động cơ bản của vật rắn 1.2.1.1 Chuyển động tịnh tiến của vật rắn  Định nghĩa Chuyển động tịnh tiến của vật rắn là chuyển động mà mỗi đoạn thẳng thuộc vật đều song song với vị trí ban đầu của nó. Ví dụ: Thùng xe chuyển động tịnh tiến so với mặt đường trên đoạn đường thẳng như hình 1.1: Hình 1.1: Chuyển động tịnh tiến của thùng xe trên đoạn đường thẳng Chuyển động tịnh tiến có thể là thẳng hoặc cong, các điểm thuộc vật rắn chuyển động tịnh tiến có thể chuyển động không thẳng, không đều nên không có khái niệm điểm chuyển động tịnh tiến.  Tính chất của chuyển động tịnh tiến Trong chuyển động tịnh tiến, mọi điểm thuộc vật chuyển động giống hệt nhau. Nghĩa là tại mỗi thời điểm vận tốc và gia tốc của các điểm thuộc vật giống hệt nhau. Quỹ đạo của mọi điểm thuộc vật có thể tịnh tiến để trùng khít lên nhau. Như vậy, có thể thấy:  Khảo sát một số chuyển động tịnh tiến của vật rắn có thể thay bằng khảo sát chuyển động của một điểm thuộc vật. 10  Lấy tên chuyển động của chất điểm thuộc vật để đặt tên cho chuyển động của vật ấy.  Lấy vận tốc, gia tốc của điểm thuộc vật làm vận tốc, gia tốc của vật. 1.2.1.2 Chuyển động của vật rắn quanh trục cố định  Định nghĩa Nếu trong quá trình chuyển động vật rắn có hai điểm cố định thì vật rắn chuyển động quanh trục cố định đi qua hai điểm ấy. Trục đi qua hai điểm cố định được gọi là trục quay của vật rắn.  Phương trình chuyển động của vật rắn quay quanh trục cố định Dựng hai mặt phẳng П0 và П chứa trục quay của vật, П0 là mặt phẳng cố định còn П là mặt phẳng động gắn với vật rắn. Vị trí của mặt phẳng П xác định vị trí của vật. Gọi φ là góc giữa hai mặt phẳng φ П0 và П, như vậy là thông số xác định vị trí của vật rắn quay quanh trục cố định. Ta có phương trình chuyển động của vật rắn:  φ =  φ (t) . Quy ước: φ > 0 khi vật quay ngược chiều kim đồng hồ. Đơn vị tính góc φ là [rad]. 11 Hình 1.2: Chuyển động của vật rắn quanh trục cố định 12 1.2.1.3 Chuyển động của điểm thuộc vật rắn quanh trục cố định Xét chuyển động của điểm M thuộc vật rắn. M cách trục quay z là R=IM. Khi vật rắn quay, quỹ đạoM là đường tròn tâm I bán kính R=IM. Hình 1.3: Chuyển động của điểm thuộc vật rắn quanh trục cố định Khi đó ta có phương trình chuyển động của điểm thuộc vật được xác định như sau: Do đã biết quỹ đạo của M nên ta dùng hệ tọa độ tự nhiên để khảo sát. Chọn O là giao điểm của quỹ đạo điểm M với mặt phẳng П0 làm gốc tọa độ, chọn chiều quay ngựơc chiều kim đồng hồ làm chiều dương. Như vậy vị trí của  M được xác định bằng cung S = OM . Ta có phương trình chuyển động của M:  S   = OM = R . φ (t) . 1.2.2 Động học của Robot Về mặt động học, có thể xem tay máy như là một chuỗi động hở với một khâu cố định, gọi là giá, và các khâu động. Mỗi khâu động là một vật rắn được liên kết hoặc nối động với nhau nhờ các khớp động. Bất kỳ một Robot nào cũng bao gồm các khâu liên kết với nhau thông qua các khớp. Hai chuyển động cơ bản của các khâu thông qua khớp quay và khớp tịnh tiến. 13 Để khảo sát chuyển động của các khâu, ta thường dùng phương pháp hệ toạ độ tham chiếu hay hệ toạ độ cơ sở. Bằng cách “gắn cứng” lên mỗi khâu động thứ k một hệ trục toạ độ vuông góc (Oxyz) k - còn gọi là các hệ toạ độ tương đối và gắn cứng với giá cố định hệ trục toạ độ vuông góc (Oxyz) 0 - còn gọi là hệ toạ độ tuyết đối, hệ toạ độ tham chiếu hay hệ toạ độ cơ sở, ta có thể khảo sát chuyển động của một khâu bất kỳ trên tay máy hoặc chuyển động của một điểm bất kỳ thuộc khâu. Theo đó, toạ độ của điểm M thuộc một khâu bất kỳ, được xác định bởi bán r M 0  . Với các thành phần (hình chiếu) của nó trong hệ toạ độ kính vectơ xM cơ sở (oxyz)0 lần lượt là  0 , yM 0  , zM  0 được gọi là toạ độ tuyệt đối của điểm M. Toạ độ của điểm M thuộc khấu thứ k được xác định bởi bán kính vectơ  Ok M với các thành phần tương ứng của nó trong hệ toạ độ (oxyz), gắn cứng với khâu lần lượt là xM k yM ,  k , zM k được gọi là toạ độ tương đối của điểm. Mếu M là điểm cố định trên khâu thì toạ độ tương đối của M sẽ không thay đổi khi khâu chuyển động. Dưới dạng ma trận ta có thể biểu diễn:     0 rM 0  = R M k  = xM 0  yM 0  zM  0 0   0 =( x M , y M , z M )T x M k  y M k  zM  k  k  k =( x M , y M , z M )T Bằng cách mô tả như trên, ta có thể coi tay máy như là một chuỗi các hệ toạ độ liên tiếp có chuyển dộng tương đối với nhau. 14 Chuyển động của một tay máy thường là nhằm làm thay đổi vị trí và hướng khâu tác động cuối hay khâu cuối (end - effector) bằng cách tuần tự cho khâu cuối đi qua các điểm xác định nào đó để tạo ra các hoạt động có ích đã được hoạch định trước. Vì vậy, khi khảo sát chuyển động của tay máy, người ta thường quan tâm đến chuyển động của khâu cuối bao gồm quỹ đạo hoặc các vị trí đi qua (hay tổng quát là một đường cong trong không gian ba chiều), vận tốc và gia tốc chuyển động ... mà không quan tâm nhiều đến chuyển động của các khâu trung gian (gọi là các khâu thành viên). Từ những khái niệm nêu trên, ở nội dung động học có hai bài toán thường được đặt ra như sau: Bài toán động học thuận và bài toán động học ngược (sẽ được trình bày và tính toán chi tiết trong chương tiếp theo). Bài toán động học thuận: xác định vị trí điểm cuối và hướng tay kẹp mà tay máy đạt được khi qui luật thay đổi theo thời gian của các thông số định vị của tay máy là hàm đã biết. Bài toán này nhằm phục vụ bài toán xác định phạm vi hoạt động của tay máy, bài toán thuận trong động lực học tay máy… Bài toán động học ngược: xác định qui luật thay đổi theo thời gian của tay máy để nó nắm bắt được vị trí đã cho của đối tượng theo một hướng định trước của tay kẹp. Bài toán này nhằm phục vụ các bài toán điều khiển qũy đạo, các bài toán điều khiển tối ưu... 1.3 Thư viện đồ họa OpenGL Để hiểu một cách cụ thể về công cụ đồ họa như OpenGL thì một câu hỏi được đặt ra là: OpenGL là gì? Và tại sao lại sử dụng OpenGL cho bài toán mô phỏng? OpenGL là chữ viết tắt của Open Graphic Library, là một thư viện đồ họa tốc độ cao và độc lập với hệ thống giao diện các hệ điều hành. Tiền thân của OpenGL là IRIS GL do hãng Silicon Graphic Library Inc phát triển cho các WorkStation đồ họa tốc độ cao từ năm 1982. Sau đó từ năm 1992 thì OpenGL đã trở thành một chuẩn công nghiệp và đặc tính kỹ thuật của OpenGL do ủy ban kỹ thuật ARB (Architectural Review Board) phê chuẩn. 15 Công nghệ đồ họa đang ngày càng được ứng dụng trong cuộc sống, và ngày nay, nó đã được phát triển tương đối mạnh mẽ ở Việt Nam. Trong kỹ thuật thì việc sử dụng các ứng dụng của OpenGL cũng như DirectX vào việc mô phỏng các cơ cấu máy móc, các hoạt động của Robot công nghiệp trước khi đem thử nghiệm bằng mô hình thực là giải pháp mà rất nhiều kỹ sư cơ khí cũng như cũng như các viện nghiên cứu lựa chọn do tính ưu việt của nó trong việc thể hiện các mô hình đồ họa động trong không gian ba chiều (3D). Vì vậy trong phạm vi của đồ án này em chọn cách sử dụng OpenGL để xây dựng bài toán mô phỏng. 16 1.3.1 Cơ chế hoạt động của OpenGL Hình 1.4: Cơ chế hoạt động của OpenGL OpenGL có cơ chế hoạt động theo kiểu ống dẫn, tức là đầu ra của giai đoạn trước là đầu vào của giai đoạn sau. Từ sơ đồ thì các thành phần của cơ chế được giải thích như sau:  Display List: Là nơi lưu lại một số lệnh để xử lý sau.  Evaluator (bộ ước lượng): Xấp xỉ các đường cong và mặt phẳng hình học bằng cách đánh giá các đa thức của dữ liệu đưa vào.  Per- vertex Operations and Primitive assembly: Xử lý các primitive hình học (điểm, đoạn thẳng, đa giác) được biểu diễn bởi các vertex. Các vertex sẽ được xử lý và các primitive được cắt xén vào viewport để chuẩn bị cho khâu kế tiếp.  Rasterization: Tạo ra một chuỗi các địa chỉ bộ đệm khung và các giá trị liên quan bằng cách sử dụng mô tả 2 chiều của điểm, đoạn thẳng hay đa giác. Mỗi phần tử (fragment) được sinh ra sẽ đưa vào giai đoạn kế tiếp.  Per- fragment operations: Là các thao tác cuối cùng trên dữ liệu, trước khi lưu trữ dữ liệu dưới dạng các pixel trong bộ đệm khung. Các thao tác này bao gồm việc cập nhật (có điều kiện) cho bộ đệm khung dựa vào dữ liệu vào và dữ liệu được lưu trữ trước đó, thực hiện trộn màu cho các pixel và làm một số thao tác khác. Trong trường hợp dữ liệu vào ở dạng pixel không phải vertex, nó sẽ đưa thẳng vào giai đoạn xử lý pixel. Sau giai đoạn này, dữ liệu ở dạng pixel sẽ được 17 lưu trữ như là bộ nhớ texture để đưa vào giai đoạn Per-fragment operation hoặc đưa vào Rasterization như dữ liệu dạng Vertex. 1.3.2 Đặc điểm của OpenGL OpenGL là một thư viện đồ họa rất lớn gồm khoảng 150 hàm hỗ trợ một số tính năng cơ bản sau: 1.3.2.1 Thể hiện các đối tượng đồ họa cơ bản OpenGL không có sẵn các hàm để xây dựng các đối tượng hình học phức tạp, người dùng phải tự xây dựng chúng từ các đối tượng hình học cơ bản mà OpenGL hỗ trợ: điểm, đoạn thẳng, đa giác. Mọi đối tượng hình học đều được mô tả cơ bản từ các vertex. Vertex cũng có thể hiểu là một điểm. Khai báo một điểm, dùng hàm: glVertex{234}{sifd}[v] (Tọa độ điểm); Trong đó: {234} – Chỉ định số chiều của không gian. {sifd} – Chỉ định kiểu dữ liệu của tọa độ, ý nghĩa được chỉ định trong bảng 1.1 như sau: Bảng 1.1: Một số kiểu dữ liệu của OpenGL Kí hiệu s i f d Kiểu dữ liệu 16 – bit integer 32 – bit integer 32 – bit floating – point 64 – bit floating – point Tên kiểu của OpenGL GLshort GLint, GLsizei GLfloat, GLclampf GLdouble, GLclampd [v] – Nếu tọa độ điểm được truyền từ 1 mảng cho trước. Việc xây dựng các đối tượng hình học khác đều có thể được thực hiện như sau: glBegin(mode); /* xác định tọa độ và màu sắc các điểm của hình */ glEnd(); 18 Danh sách các mode (tham số) có thể là một trong những giá trị sau: Bảng 1.2: Các tham số của glBegin() Giá trị GL_POINTS GL_LINE GL_POLYGON GL_TRIANGLES GL_QUADS GL_LINE_STRIP GL_LINE_LOOP GL_TRIANGLE_S TRIP Ý nghĩa. Các điểm. Đoạn thẳng. Đa giác lồi. Tam giác. Tứ giác. Đường gấp khúc không khép kín. Đường gấp khúc khép kín. Một dải tam giác liên kết với nhau. GL_TRIANGLE_F AN Các tam giác liên kết theo hình quạt. GL_QUAD_STRIP Một dải các tứ giác liên kết với nhau. Dưới đây là hình minh họa cho các loại mode: Hình 1.5: Các đối tượng đồ họa cơ bản Ngoài ra còn có một số đối tượng ba chiều cơ bản như: Hình cầu, hình trụ, hình hộp ... từ đó ta xây dựng được các đối tượng ba chiều phức tạp hơn, thậm chí 19 có thể tự định nghĩa hay thiết kế các phần mềm hỗ trợ thiết kế ba chiều như AutoCAD, SolidWorks, 3D Max. Ví dụ: Các lệnh để thực hiện quá trình vẽ các điểm trong môi trường 2D của OpenGL như sau: glBegin(GL_POINTS); glVertex2f(0.0f,0.0f); glVertex2f(1.0f,0.0f); glVertex2f(0.0f,1.0f); glEnd(); Các lệnh để vẽ các điểm tạo thành hình ngũ giác trong môi trường 2D: glBegin(GL_POLYGON); glVertex2f(0.0f,0.0f); glVertex2f(3.0f,0.0f); glVertex2f(4.0f,3.0f); glVertex2f(1.5f,6.0f); glVertex2f(-1.0f,3.0f); glEnd(); Hình 1.6: Quá trình veẽ các Vertex 2D t 20
- Xem thêm -

Tài liệu liên quan